From 3cbc6e03eafa32ac25f5d6bedd8c7019568f7d7c Mon Sep 17 00:00:00 2001 From: Afif Elghraoui Date: Wed, 24 Jun 2015 19:27:30 -0700 Subject: [PATCH] Imported Upstream version 0.8.3+ds1 --- htslib/INSTALL | 79 - htslib/LICENSE | 69 - htslib/Makefile | 386 - htslib/NEWS | 50 - htslib/README | 5 - htslib/bgzf.c | 1124 -- htslib/bgzip.c | 284 - htslib/config.h | 3 - htslib/config.mk | 72 - htslib/config.mk.in | 72 - htslib/configure | 4012 ------ htslib/configure.ac | 93 - htslib/cram/cram.h | 63 - htslib/cram/cram_codecs.c | 1846 --- htslib/cram/cram_codecs.h | 165 - htslib/cram/cram_decode.c | 2775 ---- htslib/cram/cram_decode.h | 112 - htslib/cram/cram_encode.c | 3068 ---- htslib/cram/cram_encode.h | 105 - htslib/cram/cram_index.c | 557 - htslib/cram/cram_index.h | 98 - htslib/cram/cram_io.c | 4202 ------ htslib/cram/cram_io.h | 596 - htslib/cram/cram_samtools.c | 147 - htslib/cram/cram_samtools.h | 97 - htslib/cram/cram_stats.c | 450 - htslib/cram/cram_stats.h | 59 - htslib/cram/cram_structs.h | 809 -- htslib/cram/files.c | 76 - htslib/cram/mFILE.c | 634 - htslib/cram/mFILE.h | 88 - htslib/cram/md5.c | 295 - htslib/cram/md5.h | 54 - htslib/cram/misc.h | 110 - htslib/cram/open_trace_file.c | 351 - htslib/cram/open_trace_file.h | 115 - htslib/cram/os.h | 308 - htslib/cram/pooled_alloc.c | 170 - htslib/cram/pooled_alloc.h | 56 - htslib/cram/rANS_byte.h | 336 - htslib/cram/rANS_static.c | 841 -- htslib/cram/rANS_static.h | 44 - htslib/cram/sam_header.c | 1218 -- htslib/cram/sam_header.h | 444 - htslib/cram/string_alloc.c | 153 - htslib/cram/string_alloc.h | 69 - htslib/cram/thread_pool.c | 811 -- htslib/cram/thread_pool.h | 210 - htslib/cram/vlen.c | 432 - htslib/cram/vlen.h | 48 - htslib/cram/zfio.c | 185 - htslib/cram/zfio.h | 54 - htslib/faidx.5 | 147 - htslib/faidx.c | 475 - htslib/hfile.c | 547 - htslib/hfile_internal.h | 76 - htslib/hfile_irods.c | 243 - htslib/hfile_net.c | 99 - htslib/hts.c | 1665 --- htslib/htsfile.1 | 71 - htslib/htsfile.c | 168 - htslib/htslib.mk | 150 - htslib/htslib.pc.in | 10 - htslib/htslib/bgzf.h | 315 - htslib/htslib/faidx.h | 135 - htslib/htslib/hfile.h | 212 - htslib/htslib/hts.h | 456 - htslib/htslib/hts_defs.h | 47 - htslib/htslib/kfunc.h | 75 - htslib/htslib/khash.h | 619 - htslib/htslib/khash_str2int.h | 133 - htslib/htslib/klist.h | 121 - htslib/htslib/knetfile.h | 101 - htslib/htslib/kseq.h | 253 - htslib/htslib/ksort.h | 285 - htslib/htslib/kstring.h | 270 - htslib/htslib/regidx.h | 147 - htslib/htslib/sam.h | 426 - htslib/htslib/synced_bcf_reader.h | 301 - htslib/htslib/tbx.h | 77 - htslib/htslib/vcf.h | 883 -- htslib/htslib/vcf_sweep.h | 39 - htslib/htslib/vcfutils.h | 112 - htslib/htslib_vars.mk | 39 - htslib/kfunc.c | 280 - htslib/knetfile.c | 632 - htslib/kstring.c | 254 - htslib/regidx.c | 338 - htslib/sam.5 | 68 - htslib/sam.c | 1882 --- htslib/synced_bcf_reader.c | 1257 -- htslib/tabix.1 | 180 - htslib/tabix.c | 519 - htslib/tbx.c | 320 - htslib/test/auxf#values.sam | 5 - htslib/test/auxf.fa | 2 - htslib/test/auxf.fa.fai | 1 - htslib/test/c1#bounds.sam | 4 - htslib/test/c1#clip.sam | 8 - htslib/test/c1#pad1.sam | 10 - htslib/test/c1#pad2.sam | 14 - htslib/test/c1#pad3.sam | 14 - htslib/test/c1.fa | 2 - htslib/test/c1.fa.fai | 1 - htslib/test/ce#1.sam | 2 - htslib/test/ce#2.sam | 3 - htslib/test/ce#5.sam | 11 - htslib/test/ce#5b.sam | 12 - htslib/test/ce#large_seq.sam | 3 - htslib/test/ce#tag_depadded.sam | 11 - htslib/test/ce#tag_padded.sam | 11 - htslib/test/ce#unmap.sam | 6 - htslib/test/ce#unmap1.sam | 20 - htslib/test/ce#unmap2.sam | 29 - htslib/test/ce.fa | 20803 ---------------------------- htslib/test/ce.fa.fai | 7 - htslib/test/compare_sam.pl | 172 - htslib/test/fieldarith.c | 72 - htslib/test/fieldarith.sam | 15 - htslib/test/hfile.c | 204 - htslib/test/sam.c | 187 - htslib/test/test-regidx.c | 116 - htslib/test/test-vcf-api.c | 282 - htslib/test/test-vcf-api.out | 28 - htslib/test/test-vcf-sweep.c | 112 - htslib/test/test-vcf-sweep.out | 4 - htslib/test/test.pl | 202 - htslib/test/test_view.c | 239 - htslib/test/test_view.pl | 71 - htslib/test/xx#blank.sam | 0 htslib/test/xx#large_aux.sam | 4 - htslib/test/xx#large_aux2.sam | 11 - htslib/test/xx#minimal.sam | 10 - htslib/test/xx#pair.sam | 7 - htslib/test/xx#rg.sam | 13 - htslib/test/xx#triplet.sam | 7 - htslib/test/xx#unsorted.sam | 8 - htslib/test/xx.fa | 5 - htslib/test/xx.fa.fai | 2 - htslib/vcf.5 | 120 - htslib/vcf.c | 3212 ----- htslib/vcf_sweep.c | 182 - htslib/vcfutils.c | 675 - htslib/version.h | 1 - 144 files changed, 69867 deletions(-) delete mode 100644 htslib/INSTALL delete mode 100644 htslib/LICENSE delete mode 100644 htslib/Makefile delete mode 100644 htslib/NEWS delete mode 100644 htslib/README delete mode 100644 htslib/bgzf.c delete mode 100644 htslib/bgzip.c delete mode 100644 htslib/config.h delete mode 100644 htslib/config.mk delete mode 100644 htslib/config.mk.in delete mode 100755 htslib/configure delete mode 100644 htslib/configure.ac delete mode 100644 htslib/cram/cram.h delete mode 100644 htslib/cram/cram_codecs.c delete mode 100644 htslib/cram/cram_codecs.h delete mode 100644 htslib/cram/cram_decode.c delete mode 100644 htslib/cram/cram_decode.h delete mode 100644 htslib/cram/cram_encode.c delete mode 100644 htslib/cram/cram_encode.h delete mode 100644 htslib/cram/cram_index.c delete mode 100644 htslib/cram/cram_index.h delete mode 100644 htslib/cram/cram_io.c delete mode 100644 htslib/cram/cram_io.h delete mode 100644 htslib/cram/cram_samtools.c delete mode 100644 htslib/cram/cram_samtools.h delete mode 100644 htslib/cram/cram_stats.c delete mode 100644 htslib/cram/cram_stats.h delete mode 100644 htslib/cram/cram_structs.h delete mode 100644 htslib/cram/files.c delete mode 100644 htslib/cram/mFILE.c delete mode 100644 htslib/cram/mFILE.h delete mode 100644 htslib/cram/md5.c delete mode 100644 htslib/cram/md5.h delete mode 100644 htslib/cram/misc.h delete mode 100644 htslib/cram/open_trace_file.c delete mode 100644 htslib/cram/open_trace_file.h delete mode 100644 htslib/cram/os.h delete mode 100644 htslib/cram/pooled_alloc.c delete mode 100644 htslib/cram/pooled_alloc.h delete mode 100644 htslib/cram/rANS_byte.h delete mode 100644 htslib/cram/rANS_static.c delete mode 100644 htslib/cram/rANS_static.h delete mode 100644 htslib/cram/sam_header.c delete mode 100644 htslib/cram/sam_header.h delete mode 100644 htslib/cram/string_alloc.c delete mode 100644 htslib/cram/string_alloc.h delete mode 100644 htslib/cram/thread_pool.c delete mode 100644 htslib/cram/thread_pool.h delete mode 100644 htslib/cram/vlen.c delete mode 100644 htslib/cram/vlen.h delete mode 100644 htslib/cram/zfio.c delete mode 100644 htslib/cram/zfio.h delete mode 100644 htslib/faidx.5 delete mode 100644 htslib/faidx.c delete mode 100644 htslib/hfile.c delete mode 100644 htslib/hfile_internal.h delete mode 100644 htslib/hfile_irods.c delete mode 100644 htslib/hfile_net.c delete mode 100644 htslib/hts.c delete mode 100644 htslib/htsfile.1 delete mode 100644 htslib/htsfile.c delete mode 100644 htslib/htslib.mk delete mode 100644 htslib/htslib.pc.in delete mode 100644 htslib/htslib/bgzf.h delete mode 100644 htslib/htslib/faidx.h delete mode 100644 htslib/htslib/hfile.h delete mode 100644 htslib/htslib/hts.h delete mode 100644 htslib/htslib/hts_defs.h delete mode 100644 htslib/htslib/kfunc.h delete mode 100644 htslib/htslib/khash.h delete mode 100644 htslib/htslib/khash_str2int.h delete mode 100644 htslib/htslib/klist.h delete mode 100644 htslib/htslib/knetfile.h delete mode 100644 htslib/htslib/kseq.h delete mode 100644 htslib/htslib/ksort.h delete mode 100644 htslib/htslib/kstring.h delete mode 100644 htslib/htslib/regidx.h delete mode 100644 htslib/htslib/sam.h delete mode 100644 htslib/htslib/synced_bcf_reader.h delete mode 100644 htslib/htslib/tbx.h delete mode 100644 htslib/htslib/vcf.h delete mode 100644 htslib/htslib/vcf_sweep.h delete mode 100644 htslib/htslib/vcfutils.h delete mode 100644 htslib/htslib_vars.mk delete mode 100644 htslib/kfunc.c delete mode 100644 htslib/knetfile.c delete mode 100644 htslib/kstring.c delete mode 100644 htslib/regidx.c delete mode 100644 htslib/sam.5 delete mode 100644 htslib/sam.c delete mode 100644 htslib/synced_bcf_reader.c delete mode 100644 htslib/tabix.1 delete mode 100644 htslib/tabix.c delete mode 100644 htslib/tbx.c delete mode 100644 htslib/test/auxf#values.sam delete mode 100644 htslib/test/auxf.fa delete mode 100644 htslib/test/auxf.fa.fai delete mode 100644 htslib/test/c1#bounds.sam delete mode 100644 htslib/test/c1#clip.sam delete mode 100644 htslib/test/c1#pad1.sam delete mode 100644 htslib/test/c1#pad2.sam delete mode 100644 htslib/test/c1#pad3.sam delete mode 100644 htslib/test/c1.fa delete mode 100644 htslib/test/c1.fa.fai delete mode 100644 htslib/test/ce#1.sam delete mode 100644 htslib/test/ce#2.sam delete mode 100644 htslib/test/ce#5.sam delete mode 100644 htslib/test/ce#5b.sam delete mode 100644 htslib/test/ce#large_seq.sam delete mode 100644 htslib/test/ce#tag_depadded.sam delete mode 100644 htslib/test/ce#tag_padded.sam delete mode 100644 htslib/test/ce#unmap.sam delete mode 100644 htslib/test/ce#unmap1.sam delete mode 100644 htslib/test/ce#unmap2.sam delete mode 100644 htslib/test/ce.fa delete mode 100644 htslib/test/ce.fa.fai delete mode 100755 htslib/test/compare_sam.pl delete mode 100644 htslib/test/fieldarith.c delete mode 100644 htslib/test/fieldarith.sam delete mode 100644 htslib/test/hfile.c delete mode 100644 htslib/test/sam.c delete mode 100644 htslib/test/test-regidx.c delete mode 100644 htslib/test/test-vcf-api.c delete mode 100644 htslib/test/test-vcf-api.out delete mode 100644 htslib/test/test-vcf-sweep.c delete mode 100644 htslib/test/test-vcf-sweep.out delete mode 100755 htslib/test/test.pl delete mode 100644 htslib/test/test_view.c delete mode 100755 htslib/test/test_view.pl delete mode 100644 htslib/test/xx#blank.sam delete mode 100644 htslib/test/xx#large_aux.sam delete mode 100644 htslib/test/xx#large_aux2.sam delete mode 100644 htslib/test/xx#minimal.sam delete mode 100644 htslib/test/xx#pair.sam delete mode 100644 htslib/test/xx#rg.sam delete mode 100644 htslib/test/xx#triplet.sam delete mode 100644 htslib/test/xx#unsorted.sam delete mode 100644 htslib/test/xx.fa delete mode 100644 htslib/test/xx.fa.fai delete mode 100644 htslib/vcf.5 delete mode 100644 htslib/vcf.c delete mode 100644 htslib/vcf_sweep.c delete mode 100644 htslib/vcfutils.c delete mode 100644 htslib/version.h diff --git a/htslib/INSTALL b/htslib/INSTALL deleted file mode 100644 index ba65bd3..0000000 --- a/htslib/INSTALL +++ /dev/null @@ -1,79 +0,0 @@ -Basic Installation -================== - -To build and install HTSlib, 'cd' to the htslib-1.x directory containing -the package's source and type the following commands: - - ./configure - make - make install - -The './configure' command checks your build environment and allows various -optional functionality to be enabled (see Configuration below). If you -don't want to select any optional functionality, you may wish to omit -configure and just type 'make; make install' as for previous versions -of HTSlib. However if the build fails you should run './configure' as -it can diagnose the common reasons for build failures. - -The 'make' command builds the HTSlib library and and various useful -utilities: bgzip, htsfile, and tabix. If compilation fails you should -run './configure' as it can diagnose problems with your build environment -that cause build failures. - -The 'make install' command installs the libraries, library header files, -utilities, several manual pages, and a pkgconfig file to /usr/local. -The installation location can be changed by configuring with --prefix=DIR -or via 'make prefix=DIR install' (see Installation Locations below). - - -Configuration -============= - -By default, './configure' examines your build environment, checking for -requirements such as the zlib development files, and arranges for a plain -HTSlib build. The following configure options can be used to enable -various features and specify further optional external requirements: - ---with-irods[=DIR] - Specifies the location of the iRODS client library to use to enable - access to data objects stored in iRODS () via file - paths like 'irods:DATAOBJ'. DIR is the base of an iRODS source tree - such that the library is present as DIR/lib/core/obj/libRodsAPI.* and - headers are present under DIR/lib/api/include and so on. If '=DIR' is - omitted, $IRODS_HOME will be used as a base directory. - -The configure script also accepts the usual options and environment variables -for tuning installation locations and compilers: type './configure --help' -for details. For example, - - ./configure CC=icc --prefix=/opt/icc-compiled - -would specify that HTSlib is to be built with icc and installed into bin, -lib, etc subdirectories under /opt/icc-compiled. - - -Installation Locations -====================== - -By default, 'make install' installs HTSlib libraries under /usr/local/lib, -HTSlib header files under /usr/local/include, utility programs under -/usr/local/bin, etc. (To be precise, the header files are installed within -a fixed 'htslib' subdirectory under the specified .../include location.) - -You can specify a different location to install HTSlib by configuring -with --prefix=DIR or specify locations for particular parts of HTSlib by -configuring with --libdir=DIR and so on. Type './configure --help' for -the full list of such install directory options. - -Alternatively you can specify different locations at install time by -typing 'make prefix=DIR install' or 'make libdir=DIR install' and so on. -Consult the list of prefix/exec_prefix/etc variables near the top of the -Makefile for the full list of such variables that can be overridden. - -You can also specify a staging area by typing 'make DESTDIR=DIR install', -possibly in conjunction with other --prefix or prefix=DIR settings. -For example, - - make DESTDIR=/tmp/staging prefix=/opt - -would install into bin, lib, etc subdirectories under /tmp/staging/opt. diff --git a/htslib/LICENSE b/htslib/LICENSE deleted file mode 100644 index 03db010..0000000 --- a/htslib/LICENSE +++ /dev/null @@ -1,69 +0,0 @@ -[Files in this distribution outwith the cram/ subdirectory are distributed -according to the terms of the following MIT/Expat license.] - -The MIT/Expat License - -Copyright (C) 2012-2014 Genome Research Ltd. - -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. - - -[Files within the cram/ subdirectory in this distribution are distributed -according to the terms of the following Modified 3-Clause BSD license.] - -The Modified-BSD License - -Copyright (C) 2012-2014 Genome Research Ltd. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the names Genome Research Ltd and Wellcome Trust Sanger Institute - nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR ITS CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -[The use of a range of years within a copyright notice in this distribution -should be interpreted as being equivalent to a list of years including the -first and last year specified and all consecutive years between them. - -For example, a copyright notice that reads "Copyright (C) 2005, 2007-2009, -2011-2012" should be interpreted as being identical to a notice that reads -"Copyright (C) 2005, 2007, 2008, 2009, 2011, 2012" and a copyright notice -that reads "Copyright (C) 2005-2012" should be interpreted as being identical -to a notice that reads "Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012".] diff --git a/htslib/Makefile b/htslib/Makefile deleted file mode 100644 index 5120b24..0000000 --- a/htslib/Makefile +++ /dev/null @@ -1,386 +0,0 @@ -# Makefile for htslib, a C library for high-throughput sequencing data formats. -# -# Copyright (C) 2013-2015 Genome Research Ltd. -# -# Author: John Marshall -# -# 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. - -CC = gcc -AR = ar -RANLIB = ranlib - -CPPFLAGS = -I. -# TODO: probably update cram code to make it compile cleanly with -Wc++-compat -CFLAGS = -g -Wall -O2 -EXTRA_CFLAGS_PIC = -fpic -LDFLAGS = -LDLIBS = - -# For now these don't work too well as samtools also needs to know to -# add -lbz2 and -llzma if linking against the static libhts.a library. -# TODO This needs configury and adding to htslib.pc.in. -# -# # Bzip2 support; optionally used by CRAM. -# HAVE_LIBBZ2 := $(shell echo -e "\#include \012int main(void){return 0;}" > .test.c && $(CC) $(CFLAGS) $(CPPFLAGS) -o .test .test.c -lbz2 2>/dev/null && echo yes) -# ifeq "$(HAVE_LIBBZ2)" "yes" -# CPPFLAGS += -DHAVE_LIBBZ2 -# LDLIBS += -lbz2 -# endif -# -# # Lzma support; optionally used by CRAM. -# HAVE_LIBLZMA := $(shell echo -e "\#include \012int main(void){return 0;}" > .test.c && $(CC) $(CFLAGS) $(CPPFLAGS) -o .test .test.c -llzma 2>/dev/null && echo yes) -# ifeq "$(HAVE_LIBLZMA)" "yes" -# CPPFLAGS += -DHAVE_LIBLZMA -# LDLIBS += -llzma -# endif - -prefix = /usr/local -exec_prefix = $(prefix) -bindir = $(exec_prefix)/bin -includedir = $(prefix)/include -libdir = $(exec_prefix)/lib -datarootdir = $(prefix)/share -mandir = $(datarootdir)/man -man1dir = $(mandir)/man1 -man5dir = $(mandir)/man5 -pkgconfigdir= $(libdir)/pkgconfig - -MKDIR_P = mkdir -p -INSTALL = install -p -INSTALL_PROGRAM = $(INSTALL) -INSTALL_DATA = $(INSTALL) -m 644 -INSTALL_DIR = $(MKDIR_P) -m 755 - -BUILT_PROGRAMS = \ - bgzip \ - htsfile \ - tabix - -BUILT_TEST_PROGRAMS = \ - test/fieldarith \ - test/hfile \ - test/sam \ - test/test-regidx \ - test/test_view \ - test/test-vcf-api \ - test/test-vcf-sweep - -all: lib-static lib-shared $(BUILT_PROGRAMS) $(BUILT_TEST_PROGRAMS) - -HTSPREFIX = -include htslib_vars.mk - -lib-static: libhts.a - -# $(shell), :=, and ifeq/.../endif are GNU Make-specific. If you don't have -# GNU Make, comment out the parts of this conditional that don't apply. -PLATFORM := $(shell uname -s) -ifeq "$(PLATFORM)" "Darwin" -SHLIB_FLAVOUR = dylib -lib-shared: libhts.dylib -else -SHLIB_FLAVOUR = so -lib-shared: libhts.so -endif - - -PACKAGE_VERSION = 1.2.1 -LIBHTS_SOVERSION = 1 - - -# $(NUMERIC_VERSION) is for items that must have a numeric X.Y.Z string -# even if this is a dirty or untagged Git working tree. -NUMERIC_VERSION = $(PACKAGE_VERSION) - -# If building from a Git repository, replace $(PACKAGE_VERSION) with the Git -# description of the working tree: either a release tag with the same value -# as $(PACKAGE_VERSION) above, or an exact description likely based on a tag. -# Much of this is also GNU Make-specific. If you don't have GNU Make and/or -# are not building from a Git repository, comment out this conditional. -ifneq "$(wildcard .git)" "" -original_version := $(PACKAGE_VERSION) -PACKAGE_VERSION := $(shell git describe --always --dirty) - -# Unless the Git description matches /\d*\.\d*(\.\d*)?/, i.e., is exactly a tag -# with a numeric name, revert $(NUMERIC_VERSION) to the original version number -# written above, but with the patchlevel field bumped to 255. -ifneq "$(subst ..,.,$(subst 0,,$(subst 1,,$(subst 2,,$(subst 3,,$(subst 4,,$(subst 5,,$(subst 6,,$(subst 7,,$(subst 8,,$(subst 9,,$(PACKAGE_VERSION))))))))))))" "." -empty := -NUMERIC_VERSION := $(subst $(empty) ,.,$(wordlist 1,2,$(subst ., ,$(original_version))) 255) -endif - -# Force version.h to be remade if $(PACKAGE_VERSION) has changed. -version.h: $(if $(wildcard version.h),$(if $(findstring "$(PACKAGE_VERSION)",$(shell cat version.h)),,force)) -endif - -version.h: - echo '#define HTS_VERSION "$(PACKAGE_VERSION)"' > $@ - -print-version: - @echo $(PACKAGE_VERSION) - - -.SUFFIXES: .c .o .pico - -.c.o: - $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< - -.c.pico: - $(CC) $(CFLAGS) $(CPPFLAGS) $(EXTRA_CFLAGS_PIC) -c -o $@ $< - - -LIBHTS_OBJS = \ - kfunc.o \ - knetfile.o \ - kstring.o \ - bgzf.o \ - faidx.o \ - hfile.o \ - hfile_net.o \ - hts.o \ - regidx.o \ - sam.o \ - synced_bcf_reader.o \ - vcf_sweep.o \ - tbx.o \ - vcf.o \ - vcfutils.o \ - cram/cram_codecs.o \ - cram/cram_decode.o \ - cram/cram_encode.o \ - cram/cram_index.o \ - cram/cram_io.o \ - cram/cram_samtools.o \ - cram/cram_stats.o \ - cram/files.o \ - cram/mFILE.o \ - cram/md5.o \ - cram/open_trace_file.o \ - cram/pooled_alloc.o \ - cram/rANS_static.o \ - cram/sam_header.o \ - cram/string_alloc.o \ - cram/thread_pool.o \ - cram/vlen.o \ - cram/zfio.o - -cram_h = cram/cram.h $(cram_samtools_h) $(cram_sam_header_h) $(cram_structs_h) $(cram_io_h) cram/cram_encode.h cram/cram_decode.h cram/cram_stats.h cram/cram_codecs.h cram/cram_index.h -cram_io_h = cram/cram_io.h $(cram_misc_h) -cram_misc_h = cram/misc.h cram/os.h -cram_sam_header_h = cram/sam_header.h cram/string_alloc.h cram/pooled_alloc.h htslib/khash.h htslib/kstring.h -cram_samtools_h = cram/cram_samtools.h $(htslib_sam_h) $(cram_sam_header_h) -cram_structs_h = cram/cram_structs.h cram/thread_pool.h cram/string_alloc.h htslib/khash.h -cram_open_trace_file_h = cram/open_trace_file.h cram/mFILE.h -hfile_internal_h = hfile_internal.h $(htslib_hfile_h) - - -# To be effective, config.mk needs to appear after most Makefile variables are -# set but before most rules appear, so that it can both use previously-set -# variables in its own rules' prerequisites and also update variables for use -# in later rules' prerequisites. - -# sinclude is GNU Make-specific. If you don't have GNU Make or another make -# that understands sinclude, change this to 'include' if you are using the -# configure script or just comment the line out if you are not. -sinclude config.mk - - -libhts.a: $(LIBHTS_OBJS) - @-rm -f $@ - $(AR) -rc $@ $(LIBHTS_OBJS) - -$(RANLIB) $@ - - -# The target here is libhts.so, as that is the built file that other rules -# depend upon and that is used when -lhts appears in other program's recipes. -# As a byproduct invisible to make, libhts.so.NN is also created, as it is the -# file used at runtime (when $LD_LIBRARY_PATH includes the build directory). - -libhts.so: $(LIBHTS_OBJS:.o=.pico) - $(CC) -shared -Wl,-soname,libhts.so.$(LIBHTS_SOVERSION) -pthread $(LDFLAGS) -o $@ $(LIBHTS_OBJS:.o=.pico) $(LDLIBS) -lz -lm - ln -sf $@ libhts.so.$(LIBHTS_SOVERSION) - -# Similarly this also creates libhts.NN.dylib as a byproduct, so that programs -# when run can find this uninstalled shared library (when $DYLD_LIBRARY_PATH -# includes this project's build directory). - -libhts.dylib: $(LIBHTS_OBJS) - $(CC) -dynamiclib -install_name $(libdir)/libhts.$(LIBHTS_SOVERSION).dylib -current_version $(NUMERIC_VERSION) -compatibility_version $(LIBHTS_SOVERSION) $(LDFLAGS) -o $@ $(LIBHTS_OBJS) $(LDLIBS) -lz - ln -sf $@ libhts.$(LIBHTS_SOVERSION).dylib - - -bgzf.o bgzf.pico: bgzf.c $(htslib_hts_h) $(htslib_bgzf_h) $(htslib_hfile_h) htslib/khash.h -kstring.o kstring.pico: kstring.c htslib/kstring.h -knetfile.o knetfile.pico: knetfile.c htslib/knetfile.h -hfile.o hfile.pico: hfile.c $(htslib_hfile_h) $(hfile_internal_h) -hfile_irods.o hfile_irods.pico: hfile_irods.c $(hfile_internal_h) -hfile_net.o hfile_net.pico: hfile_net.c $(hfile_internal_h) htslib/knetfile.h -hts.o hts.pico: hts.c version.h $(htslib_hts_h) $(htslib_bgzf_h) $(cram_h) $(htslib_hfile_h) htslib/khash.h htslib/kseq.h htslib/ksort.h -vcf.o vcf.pico: vcf.c $(htslib_vcf_h) $(htslib_bgzf_h) $(htslib_tbx_h) $(htslib_hfile_h) htslib/khash.h htslib/kseq.h htslib/kstring.h -sam.o sam.pico: sam.c $(htslib_sam_h) $(htslib_bgzf_h) $(cram_h) $(htslib_hfile_h) htslib/khash.h htslib/kseq.h htslib/kstring.h -tbx.o tbx.pico: tbx.c $(htslib_tbx_h) $(htslib_bgzf_h) htslib/khash.h -faidx.o faidx.pico: faidx.c $(htslib_bgzf_h) $(htslib_faidx_h) $(htslib_hfile_h) htslib/khash.h -synced_bcf_reader.o synced_bcf_reader.pico: synced_bcf_reader.c $(htslib_synced_bcf_reader_h) htslib/kseq.h htslib/khash_str2int.h -vcf_sweep.o vcf_sweep.pico: vcf_sweep.c $(htslib_vcf_sweep_h) $(htslib_bgzf_h) -vcfutils.o vcfutils.pico: vcfutils.c $(htslib_vcfutils_h) -kfunc.o kfunc.pico: kfunc.c htslib/kfunc.h -regidx.o regidx.pico: regidx.c $(htslib_hts_h) $(HTSPREFIX)htslib/kstring.h $(HTSPREFIX)htslib/kseq.h $(HTSPREFIX)htslib/khash_str2int.h $(htslib_regidx_h) - -cram/cram_codecs.o cram/cram_codecs.pico: cram/cram_codecs.c $(cram_h) -cram/cram_decode.o cram/cram_decode.pico: cram/cram_decode.c $(cram_h) cram/os.h cram/md5.h -cram/cram_encode.o cram/cram_encode.pico: cram/cram_encode.c $(cram_h) cram/os.h cram/md5.h -cram/cram_index.o cram/cram_index.pico: cram/cram_index.c $(htslib_hfile_h) $(cram_h) cram/os.h cram/zfio.h -cram/cram_io.o cram/cram_io.pico: cram/cram_io.c $(cram_h) cram/os.h cram/md5.h $(cram_open_trace_file_h) cram/rANS_static.h $(htslib_hfile_h) -cram/cram_samtools.o cram/cram_samtools.pico: cram/cram_samtools.c $(cram_h) $(htslib_sam_h) -cram/cram_stats.o cram/cram_stats.pico: cram/cram_stats.c $(cram_h) cram/os.h -cram/files.o cram/files.pico: cram/files.c $(cram_misc_h) -cram/mFILE.o cram/mFILE.pico: cram/mFILE.c cram/os.h cram/mFILE.h cram/vlen.h -cram/md5.o cram/md5.pico: cram/md5.c cram/md5.h -cram/open_trace_file.o cram/open_trace_file.pico: cram/open_trace_file.c $(cram_open_trace_file_h) $(cram_misc_h) $(htslib_hfile_h) -cram/pooled_alloc.o cram/pooled_alloc.pico: cram/pooled_alloc.c cram/pooled_alloc.h -cram/rANS_static.o cram/rANS_static.pico: cram/rANS_static.c cram/rANS_static.h cram/rANS_byte.h -cram/sam_header.o cram/sam_header.pico: cram/sam_header.c $(cram_sam_header_h) cram/string_alloc.h -cram/string_alloc.o cram/string_alloc.pico: cram/string_alloc.c cram/string_alloc.h -cram/thread_pool.o cram/thread_pool.pico: cram/thread_pool.c cram/thread_pool.h -cram/vlen.o cram/vlen.pico: cram/vlen.c cram/vlen.h cram/os.h -cram/zfio.o cram/zfio.pico: cram/zfio.c cram/os.h cram/zfio.h - - -bgzip: bgzip.o libhts.a - $(CC) -pthread $(LDFLAGS) -o $@ bgzip.o libhts.a $(LDLIBS) -lz - -htsfile: htsfile.o libhts.a - $(CC) -pthread $(LDFLAGS) -o $@ htsfile.o libhts.a $(LDLIBS) -lz - -tabix: tabix.o libhts.a - $(CC) -pthread $(LDFLAGS) -o $@ tabix.o libhts.a $(LDLIBS) -lz - -bgzip.o: bgzip.c $(htslib_bgzf_h) $(htslib_hts_h) -htsfile.o: htsfile.c $(htslib_hfile_h) $(htslib_hts_h) $(htslib_sam_h) $(htslib_vcf_h) -tabix.o: tabix.c $(htslib_tbx_h) $(htslib_sam_h) $(htslib_vcf_h) htslib/kseq.h $(htslib_bgzf_h) $(htslib_hts_h) - - -# For tests that might use it, set $REF_PATH explicitly to use only reference -# areas within the test suite (or set it to ':' to use no reference areas). -check test: $(BUILT_TEST_PROGRAMS) - test/fieldarith test/fieldarith.sam - test/hfile - test/sam test/ce.fa - test/test-regidx - cd test && REF_PATH=: ./test_view.pl - cd test && ./test.pl - -test/fieldarith: test/fieldarith.o libhts.a - $(CC) -pthread $(LDFLAGS) -o $@ test/fieldarith.o libhts.a $(LDLIBS) -lz - -test/hfile: test/hfile.o libhts.a - $(CC) $(LDFLAGS) -o $@ test/hfile.o libhts.a $(LDLIBS) -lz - -test/sam: test/sam.o libhts.a - $(CC) -pthread $(LDFLAGS) -o $@ test/sam.o libhts.a $(LDLIBS) -lz - -test/test-regidx: test/test-regidx.o libhts.a - $(CC) -pthread $(LDFLAGS) -o $@ test/test-regidx.o libhts.a $(LDLIBS) -lz - -test/test_view: test/test_view.o libhts.a - $(CC) -pthread $(LDFLAGS) -o $@ test/test_view.o libhts.a $(LDLIBS) -lz - -test/test-vcf-api: test/test-vcf-api.o libhts.a - $(CC) -pthread $(LDFLAGS) -o $@ test/test-vcf-api.o libhts.a $(LDLIBS) -lz - -test/test-vcf-sweep: test/test-vcf-sweep.o libhts.a - $(CC) -pthread $(LDFLAGS) -o $@ test/test-vcf-sweep.o libhts.a $(LDLIBS) -lz - -test/fieldarith.o: test/fieldarith.c $(htslib_sam_h) -test/hfile.o: test/hfile.c $(htslib_hfile_h) $(htslib_hts_defs_h) -test/test-regidx.o: test/test-regidx.c $(htslib_regidx_h) -test/sam.o: test/sam.c $(htslib_sam_h) $(htslib_faidx_h) htslib/kstring.h -test/test_view.o: test/test_view.c $(cram_h) $(htslib_sam_h) -test/test-vcf-api.o: test/test-vcf-api.c $(htslib_hts_h) $(htslib_vcf_h) htslib/kstring.h -test/test-vcf-sweep.o: test/test-vcf-sweep.c $(htslib_vcf_sweep_h) - - -install: libhts.a $(BUILT_PROGRAMS) installdirs install-$(SHLIB_FLAVOUR) install-pkgconfig - $(INSTALL_PROGRAM) $(BUILT_PROGRAMS) $(DESTDIR)$(bindir) - $(INSTALL_DATA) htslib/*.h $(DESTDIR)$(includedir)/htslib - $(INSTALL_DATA) libhts.a $(DESTDIR)$(libdir)/libhts.a - $(INSTALL_DATA) htsfile.1 tabix.1 $(DESTDIR)$(man1dir) - $(INSTALL_DATA) faidx.5 sam.5 vcf.5 $(DESTDIR)$(man5dir) - -installdirs: - $(INSTALL_DIR) $(DESTDIR)$(bindir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/htslib $(DESTDIR)$(libdir) $(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) $(DESTDIR)$(pkgconfigdir) - -# After installation, the real file in $(libdir) will be libhts.so.X.Y.Z, -# with symlinks libhts.so (used via -lhts during linking of client programs) -# and libhts.so.NN (used by client executables at runtime). - -install-so: libhts.so installdirs - $(INSTALL_DATA) libhts.so $(DESTDIR)$(libdir)/libhts.so.$(PACKAGE_VERSION) - ln -sf libhts.so.$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libhts.so - ln -sf libhts.so.$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libhts.so.$(LIBHTS_SOVERSION) - -install-dylib: libhts.dylib installdirs - $(INSTALL_PROGRAM) libhts.dylib $(DESTDIR)$(libdir)/libhts.$(PACKAGE_VERSION).dylib - ln -sf libhts.$(PACKAGE_VERSION).dylib $(DESTDIR)$(libdir)/libhts.dylib - ln -sf libhts.$(PACKAGE_VERSION).dylib $(DESTDIR)$(libdir)/libhts.$(LIBHTS_SOVERSION).dylib - -# Substitute these pseudo-autoconf variables only at install time -# so that "make install prefix=/prefix/path" etc continue to work. -install-pkgconfig: installdirs - sed -e 's#@includedir@#$(includedir)#g;s#@libdir@#$(libdir)#g;s#@PACKAGE_VERSION@#$(PACKAGE_VERSION)#g' htslib.pc.in > $(DESTDIR)$(pkgconfigdir)/htslib.pc - chmod 644 $(DESTDIR)$(pkgconfigdir)/htslib.pc - -# A pkg-config file (suitable for copying to $PKG_CONFIG_PATH) that provides -# flags for building against the uninstalled library in this build directory. -htslib-uninstalled.pc: htslib.pc.in - sed -e 's#@includedir@#'`pwd`'#g;s#@libdir@#'`pwd`'#g' htslib.pc.in > $@ - - -testclean: - -rm -f test/*.tmp test/*.tmp.* - -mostlyclean: testclean - -rm -f *.o *.pico cram/*.o cram/*.pico test/*.o test/*.dSYM version.h - -clean: mostlyclean clean-$(SHLIB_FLAVOUR) - -rm -f libhts.a $(BUILT_PROGRAMS) $(BUILT_TEST_PROGRAMS) - -distclean: clean - -rm -f config.cache config.log config.mk config.status - -rm -f TAGS *-uninstalled.pc - -clean-so: - -rm -f libhts.so libhts.so.* - -clean-dylib: - -rm -f libhts.dylib libhts.*.dylib - - -tags: - ctags -f TAGS *.[ch] cram/*.[ch] htslib/*.h - - -force: - - -.PHONY: all check clean distclean force install install-pkgconfig installdirs -.PHONY: lib-shared lib-static mostlyclean print-version tags test testclean -.PHONY: clean-so install-so -.PHONY: clean-dylib install-dylib diff --git a/htslib/NEWS b/htslib/NEWS deleted file mode 100644 index c135613..0000000 --- a/htslib/NEWS +++ /dev/null @@ -1,50 +0,0 @@ -Noteworthy changes in release 1.2.1 (3 February 2015) - -* Reinstated hts_file_type() and FT_* macros, which were available until 1.1 - but briefly removed in 1.2. This function is deprecated and will be removed - in a future release -- you should use hts_detect_format() etc instead - - -Noteworthy changes in release 1.2 (2 February 2015) - -* HTSlib now has a configure script which checks your build environment - and allows for selection of optional extras. See INSTALL for details - -* By default, reference sequences are fetched from the EBI CRAM Reference - Registry and cached in your $HOME cache directory. This behaviour can - be controlled by setting REF_PATH and REF_CACHE enviroment variables - (see the samtools(1) man page for details) - -* Numerous CRAM improvements: - - Support for CRAM v3.0, an upcoming revision to CRAM supporting - better compression and per-container checksums - - EOF checking for v2.1 and v3.0 (similar to checking BAM EOF blocks) - - Non-standard values for PNEXT and TLEN fields are now preserved - - hts_set_fai_filename() now provides a reference file when encoding - - Generated read names are now numbered from 1, rather than being - labelled 'slice:record-in-slice' - - Multi-threading and speed improvements - -* New htsfile command for identifying file formats, and corresponding - file format detection APIs - -* New tabix --regions FILE, --targets FILE options for filtering via BED files - -* Optional iRODS file access, disabled by default. Configure with --with-irods - to enable accessing iRODS data objects directly via 'irods:DATAOBJ' - -* All occurences of 2^29 in the source have been eliminated, so indexing - and querying against reference sequences larger than 512Mbp works (when - using CSI indices) - -* Support for plain GZIP compression in various places - -* VCF header editing speed improvements - -* Added seq_nt16_int[] (equivalent to the samtools API's bam_nt16_nt4_table) - -* Reinstated faidx_fetch_nseq(), which was accidentally removed from 1.1. - Now faidx_fetch_nseq() and faidx_nseq() are equivalent; eventually - faidx_fetch_nseq() will be deprecated and removed [#156] - -* Fixed bugs #141, #152, #155, #158, #159, and various memory leaks diff --git a/htslib/README b/htslib/README deleted file mode 100644 index 4225bec..0000000 --- a/htslib/README +++ /dev/null @@ -1,5 +0,0 @@ -HTSlib is an implementation of a unified C library for accessing common file -formats, such as SAM, CRAM, VCF, and BCF, used for high-throughput sequencing -data. It is the core library used by samtools and bcftools. - -See INSTALL for building and installation instructions. diff --git a/htslib/bgzf.c b/htslib/bgzf.c deleted file mode 100644 index 5306458..0000000 --- a/htslib/bgzf.c +++ /dev/null @@ -1,1124 +0,0 @@ -/* The MIT License - - Copyright (c) 2008 Broad Institute / Massachusetts Institute of Technology - 2011, 2012 Attractive Chaos - Copyright (C) 2009, 2013, 2014 Genome Research Ltd - - 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. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "htslib/hts.h" -#include "htslib/bgzf.h" -#include "htslib/hfile.h" - -#define BGZF_CACHE -#define BGZF_MT - -#define BLOCK_HEADER_LENGTH 18 -#define BLOCK_FOOTER_LENGTH 8 - - -/* BGZF/GZIP header (speciallized from RFC 1952; little endian): - +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ - | 31|139| 8| 4| 0| 0|255| 6| 66| 67| 2|BLK_LEN| - +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ - BGZF extension: - ^ ^ ^ ^ - | | | | - FLG.EXTRA XLEN B C - - BGZF format is compatible with GZIP. It limits the size of each compressed - block to 2^16 bytes and adds and an extra "BC" field in the gzip header which - records the size. - -*/ -static const uint8_t g_magic[19] = "\037\213\010\4\0\0\0\0\0\377\6\0\102\103\2\0\0\0"; - -#ifdef BGZF_CACHE -typedef struct { - int size; - uint8_t *block; - int64_t end_offset; -} cache_t; -#include "htslib/khash.h" -KHASH_MAP_INIT_INT64(cache, cache_t) -#endif - -typedef struct -{ - uint64_t uaddr; // offset w.r.t. uncompressed data - uint64_t caddr; // offset w.r.t. compressed data -} -bgzidx1_t; - -struct __bgzidx_t -{ - int noffs, moffs; // the size of the index, n:used, m:allocated - bgzidx1_t *offs; // offsets - uint64_t ublock_addr; // offset of the current block (uncompressed data) -}; - -void bgzf_index_destroy(BGZF *fp); -int bgzf_index_add_block(BGZF *fp); - -static inline void packInt16(uint8_t *buffer, uint16_t value) -{ - buffer[0] = value; - buffer[1] = value >> 8; -} - -static inline int unpackInt16(const uint8_t *buffer) -{ - return buffer[0] | buffer[1] << 8; -} - -static inline void packInt32(uint8_t *buffer, uint32_t value) -{ - buffer[0] = value; - buffer[1] = value >> 8; - buffer[2] = value >> 16; - buffer[3] = value >> 24; -} - -static BGZF *bgzf_read_init(hFILE *hfpr) -{ - BGZF *fp; - uint8_t magic[18]; - ssize_t n = hpeek(hfpr, magic, 18); - if (n < 0) return NULL; - - fp = (BGZF*)calloc(1, sizeof(BGZF)); - if (fp == NULL) return NULL; - - fp->is_write = 0; - fp->is_compressed = (n==2 && magic[0]==0x1f && magic[1]==0x8b); - fp->uncompressed_block = malloc(BGZF_MAX_BLOCK_SIZE); - fp->compressed_block = malloc(BGZF_MAX_BLOCK_SIZE); - fp->is_compressed = (n==18 && magic[0]==0x1f && magic[1]==0x8b) ? 1 : 0; - fp->is_gzip = ( !fp->is_compressed || ((magic[3]&4) && memcmp(&magic[12], "BC\2\0",4)==0) ) ? 0 : 1; -#ifdef BGZF_CACHE - fp->cache = kh_init(cache); -#endif - return fp; -} - -// get the compress level from the mode string: compress_level==-1 for the default level, -2 plain uncompressed -static int mode2level(const char *__restrict mode) -{ - int i, compress_level = -1; - for (i = 0; mode[i]; ++i) - if (mode[i] >= '0' && mode[i] <= '9') break; - if (mode[i]) compress_level = (int)mode[i] - '0'; - if (strchr(mode, 'u')) compress_level = -2; - return compress_level; -} -static BGZF *bgzf_write_init(const char *mode) -{ - BGZF *fp; - fp = (BGZF*)calloc(1, sizeof(BGZF)); - fp->is_write = 1; - int compress_level = mode2level(mode); - if ( compress_level==-2 ) - { - fp->is_compressed = 0; - return fp; - } - fp->is_compressed = 1; - fp->uncompressed_block = malloc(BGZF_MAX_BLOCK_SIZE); - fp->compressed_block = malloc(BGZF_MAX_BLOCK_SIZE); - fp->compress_level = compress_level < 0? Z_DEFAULT_COMPRESSION : compress_level; // Z_DEFAULT_COMPRESSION==-1 - if (fp->compress_level > 9) fp->compress_level = Z_DEFAULT_COMPRESSION; - if ( strchr(mode,'g') ) - { - // gzip output - fp->is_gzip = 1; - fp->gz_stream = (z_stream*)calloc(1,sizeof(z_stream)); - fp->gz_stream->zalloc = NULL; - fp->gz_stream->zfree = NULL; - if ( deflateInit2(fp->gz_stream, fp->compress_level, Z_DEFLATED, 15|16, 8, Z_DEFAULT_STRATEGY)!=Z_OK ) return NULL; - } - return fp; -} - -BGZF *bgzf_open(const char *path, const char *mode) -{ - BGZF *fp = 0; - assert(compressBound(BGZF_BLOCK_SIZE) < BGZF_MAX_BLOCK_SIZE); - if (strchr(mode, 'r')) { - hFILE *fpr; - if ((fpr = hopen(path, mode)) == 0) return 0; - fp = bgzf_read_init(fpr); - if (fp == 0) { hclose_abruptly(fpr); return NULL; } - fp->fp = fpr; - } else if (strchr(mode, 'w') || strchr(mode, 'a')) { - hFILE *fpw; - if ((fpw = hopen(path, mode)) == 0) return 0; - fp = bgzf_write_init(mode); - fp->fp = fpw; - } - else { errno = EINVAL; return 0; } - - fp->is_be = ed_is_big(); - return fp; -} - -BGZF *bgzf_dopen(int fd, const char *mode) -{ - BGZF *fp = 0; - assert(compressBound(BGZF_BLOCK_SIZE) < BGZF_MAX_BLOCK_SIZE); - if (strchr(mode, 'r')) { - hFILE *fpr; - if ((fpr = hdopen(fd, mode)) == 0) return 0; - fp = bgzf_read_init(fpr); - if (fp == 0) { hclose_abruptly(fpr); return NULL; } // FIXME this closes fd - fp->fp = fpr; - } else if (strchr(mode, 'w') || strchr(mode, 'a')) { - hFILE *fpw; - if ((fpw = hdopen(fd, mode)) == 0) return 0; - fp = bgzf_write_init(mode); - fp->fp = fpw; - } - else { errno = EINVAL; return 0; } - - fp->is_be = ed_is_big(); - return fp; -} - -BGZF *bgzf_hopen(hFILE *hfp, const char *mode) -{ - BGZF *fp = NULL; - assert(compressBound(BGZF_BLOCK_SIZE) < BGZF_MAX_BLOCK_SIZE); - if (strchr(mode, 'r')) { - fp = bgzf_read_init(hfp); - if (fp == NULL) return NULL; - } else if (strchr(mode, 'w') || strchr(mode, 'a')) { - fp = bgzf_write_init(mode); - } - else { errno = EINVAL; return 0; } - - fp->fp = hfp; - fp->is_be = ed_is_big(); - return fp; -} - -static int bgzf_compress(void *_dst, int *dlen, void *src, int slen, int level) -{ - uint32_t crc; - z_stream zs; - uint8_t *dst = (uint8_t*)_dst; - - // compress the body - zs.zalloc = NULL; zs.zfree = NULL; - zs.next_in = (Bytef*)src; - zs.avail_in = slen; - zs.next_out = dst + BLOCK_HEADER_LENGTH; - zs.avail_out = *dlen - BLOCK_HEADER_LENGTH - BLOCK_FOOTER_LENGTH; - if (deflateInit2(&zs, level, Z_DEFLATED, -15, 8, Z_DEFAULT_STRATEGY) != Z_OK) return -1; // -15 to disable zlib header/footer - if (deflate(&zs, Z_FINISH) != Z_STREAM_END) return -1; - if (deflateEnd(&zs) != Z_OK) return -1; - *dlen = zs.total_out + BLOCK_HEADER_LENGTH + BLOCK_FOOTER_LENGTH; - // write the header - memcpy(dst, g_magic, BLOCK_HEADER_LENGTH); // the last two bytes are a place holder for the length of the block - packInt16(&dst[16], *dlen - 1); // write the compressed length; -1 to fit 2 bytes - // write the footer - crc = crc32(crc32(0L, NULL, 0L), (Bytef*)src, slen); - packInt32((uint8_t*)&dst[*dlen - 8], crc); - packInt32((uint8_t*)&dst[*dlen - 4], slen); - return 0; -} - -static int bgzf_gzip_compress(BGZF *fp, void *_dst, int *dlen, void *src, int slen, int level) -{ - uint8_t *dst = (uint8_t*)_dst; - z_stream *zs = fp->gz_stream; - int flush = slen ? Z_NO_FLUSH : Z_FINISH; - zs->next_in = (Bytef*)src; - zs->avail_in = slen; - zs->next_out = dst; - zs->avail_out = *dlen; - if ( deflate(zs, flush) == Z_STREAM_ERROR ) return -1; - *dlen = *dlen - zs->avail_out; - return 0; -} - -// Deflate the block in fp->uncompressed_block into fp->compressed_block. Also adds an extra field that stores the compressed block length. -static int deflate_block(BGZF *fp, int block_length) -{ - int comp_size = BGZF_MAX_BLOCK_SIZE; - int ret; - if ( !fp->is_gzip ) - ret = bgzf_compress(fp->compressed_block, &comp_size, fp->uncompressed_block, block_length, fp->compress_level); - else - ret = bgzf_gzip_compress(fp, fp->compressed_block, &comp_size, fp->uncompressed_block, block_length, fp->compress_level); - - if ( ret != 0 ) - { - fp->errcode |= BGZF_ERR_ZLIB; - return -1; - } - fp->block_offset = 0; - return comp_size; -} - -// Inflate the block in fp->compressed_block into fp->uncompressed_block -static int inflate_block(BGZF* fp, int block_length) -{ - z_stream zs; - zs.zalloc = NULL; - zs.zfree = NULL; - zs.next_in = (Bytef*)fp->compressed_block + 18; - zs.avail_in = block_length - 16; - zs.next_out = (Bytef*)fp->uncompressed_block; - zs.avail_out = BGZF_MAX_BLOCK_SIZE; - - if (inflateInit2(&zs, -15) != Z_OK) { - fp->errcode |= BGZF_ERR_ZLIB; - return -1; - } - if (inflate(&zs, Z_FINISH) != Z_STREAM_END) { - inflateEnd(&zs); - fp->errcode |= BGZF_ERR_ZLIB; - return -1; - } - if (inflateEnd(&zs) != Z_OK) { - fp->errcode |= BGZF_ERR_ZLIB; - return -1; - } - return zs.total_out; -} - -static int inflate_gzip_block(BGZF *fp, int cached) -{ - int ret = Z_OK; - do - { - if ( !cached && fp->gz_stream->avail_out!=0 ) - { - fp->gz_stream->avail_in = hread(fp->fp, fp->compressed_block, BGZF_BLOCK_SIZE); - if ( fp->gz_stream->avail_in<=0 ) return fp->gz_stream->avail_in; - if ( fp->gz_stream->avail_in==0 ) break; - fp->gz_stream->next_in = fp->compressed_block; - } - else cached = 0; - do - { - fp->gz_stream->next_out = (Bytef*)fp->uncompressed_block + fp->block_offset; - fp->gz_stream->avail_out = BGZF_MAX_BLOCK_SIZE - fp->block_offset; - ret = inflate(fp->gz_stream, Z_NO_FLUSH); - if ( ret==Z_BUF_ERROR ) continue; // non-critical error - if ( ret<0 ) return -1; - unsigned int have = BGZF_MAX_BLOCK_SIZE - fp->gz_stream->avail_out; - if ( have ) return have; - } - while ( fp->gz_stream->avail_out == 0 ); - } - while (ret != Z_STREAM_END); - return BGZF_MAX_BLOCK_SIZE - fp->gz_stream->avail_out; -} - -// Returns: 0 on success (BGZF header); -1 on non-BGZF GZIP header; -2 on error -static int check_header(const uint8_t *header) -{ - if ( header[0] != 31 || header[1] != 139 || header[2] != 8 ) return -2; - return ((header[3] & 4) != 0 - && unpackInt16((uint8_t*)&header[10]) == 6 - && header[12] == 'B' && header[13] == 'C' - && unpackInt16((uint8_t*)&header[14]) == 2) ? 0 : -1; -} - -#ifdef BGZF_CACHE -static void free_cache(BGZF *fp) -{ - khint_t k; - khash_t(cache) *h = (khash_t(cache)*)fp->cache; - if (fp->is_write) return; - for (k = kh_begin(h); k < kh_end(h); ++k) - if (kh_exist(h, k)) free(kh_val(h, k).block); - kh_destroy(cache, h); -} - -static int load_block_from_cache(BGZF *fp, int64_t block_address) -{ - khint_t k; - cache_t *p; - khash_t(cache) *h = (khash_t(cache)*)fp->cache; - k = kh_get(cache, h, block_address); - if (k == kh_end(h)) return 0; - p = &kh_val(h, k); - if (fp->block_length != 0) fp->block_offset = 0; - fp->block_address = block_address; - fp->block_length = p->size; - memcpy(fp->uncompressed_block, p->block, BGZF_MAX_BLOCK_SIZE); - if ( hseek(fp->fp, p->end_offset, SEEK_SET) < 0 ) - { - // todo: move the error up - fprintf(stderr,"Could not hseek to %"PRId64"\n", p->end_offset); - exit(1); - } - return p->size; -} - -static void cache_block(BGZF *fp, int size) -{ - int ret; - khint_t k; - cache_t *p; - khash_t(cache) *h = (khash_t(cache)*)fp->cache; - if (BGZF_MAX_BLOCK_SIZE >= fp->cache_size) return; - if ((kh_size(h) + 1) * BGZF_MAX_BLOCK_SIZE > (uint32_t)fp->cache_size) { - /* A better way would be to remove the oldest block in the - * cache, but here we remove a random one for simplicity. This - * should not have a big impact on performance. */ - for (k = kh_begin(h); k < kh_end(h); ++k) - if (kh_exist(h, k)) break; - if (k < kh_end(h)) { - free(kh_val(h, k).block); - kh_del(cache, h, k); - } - } - k = kh_put(cache, h, fp->block_address, &ret); - if (ret == 0) return; // if this happens, a bug! - p = &kh_val(h, k); - p->size = fp->block_length; - p->end_offset = fp->block_address + size; - p->block = (uint8_t*)malloc(BGZF_MAX_BLOCK_SIZE); - memcpy(kh_val(h, k).block, fp->uncompressed_block, BGZF_MAX_BLOCK_SIZE); -} -#else -static void free_cache(BGZF *fp) {} -static int load_block_from_cache(BGZF *fp, int64_t block_address) {return 0;} -static void cache_block(BGZF *fp, int size) {} -#endif - -int bgzf_read_block(BGZF *fp) -{ - uint8_t header[BLOCK_HEADER_LENGTH], *compressed_block; - int count, size = 0, block_length, remaining; - - // Reading an uncompressed file - if ( !fp->is_compressed ) - { - count = hread(fp->fp, fp->uncompressed_block, BGZF_MAX_BLOCK_SIZE); - if ( count==0 ) - { - fp->block_length = 0; - return 0; - } - if (fp->block_length != 0) fp->block_offset = 0; - fp->block_address += count; - fp->block_length = count; - return 0; - } - - // Reading compressed file - int64_t block_address; - block_address = htell(fp->fp); - if ( fp->is_gzip && fp->gz_stream ) // is this is a initialized gzip stream? - { - count = inflate_gzip_block(fp, 0); - if ( count<0 ) - { - fp->errcode |= BGZF_ERR_ZLIB; - return -1; - } - fp->block_length = count; - fp->block_address = block_address; - return 0; - } - if (fp->cache_size && load_block_from_cache(fp, block_address)) return 0; - count = hread(fp->fp, header, sizeof(header)); - if (count == 0) { // no data read - fp->block_length = 0; - return 0; - } - int ret; - if ( count != sizeof(header) || (ret=check_header(header))==-2 ) - { - fp->errcode |= BGZF_ERR_HEADER; - return -1; - } - if ( ret==-1 ) - { - // GZIP, not BGZF - uint8_t *cblock = (uint8_t*)fp->compressed_block; - memcpy(cblock, header, sizeof(header)); - count = hread(fp->fp, cblock+sizeof(header), BGZF_BLOCK_SIZE - sizeof(header)) + sizeof(header); - int nskip = 10; - - // Check optional fields to skip: FLG.FNAME,FLG.FCOMMENT,FLG.FHCRC,FLG.FEXTRA - // Note: Some of these fields are untested, I did not have appropriate data available - if ( header[3] & 0x4 ) // FLG.FEXTRA - { - nskip += unpackInt16(&cblock[nskip]) + 2; - } - if ( header[3] & 0x8 ) // FLG.FNAME - { - while ( nskiperrcode |= BGZF_ERR_HEADER; - return -1; - } - nskip++; - } - if ( header[3] & 0x10 ) // FLG.FCOMMENT - { - while ( nskiperrcode |= BGZF_ERR_HEADER; - return -1; - } - nskip++; - } - if ( header[3] & 0x2 ) nskip += 2; // FLG.FHCRC - - fp->is_gzip = 1; - fp->gz_stream = (z_stream*) calloc(1,sizeof(z_stream)); - int ret = inflateInit2(fp->gz_stream, -15); - if (ret != Z_OK) - { - fp->errcode |= BGZF_ERR_ZLIB; - return -1; - } - fp->gz_stream->avail_in = count - nskip; - fp->gz_stream->next_in = cblock + nskip; - count = inflate_gzip_block(fp, 1); - if ( count<0 ) - { - fp->errcode |= BGZF_ERR_ZLIB; - return -1; - } - fp->block_length = count; - fp->block_address = block_address; - if ( fp->idx_build_otf ) return -1; // cannot build index for gzip - return 0; - } - size = count; - block_length = unpackInt16((uint8_t*)&header[16]) + 1; // +1 because when writing this number, we used "-1" - compressed_block = (uint8_t*)fp->compressed_block; - memcpy(compressed_block, header, BLOCK_HEADER_LENGTH); - remaining = block_length - BLOCK_HEADER_LENGTH; - count = hread(fp->fp, &compressed_block[BLOCK_HEADER_LENGTH], remaining); - if (count != remaining) { - fp->errcode |= BGZF_ERR_IO; - return -1; - } - size += count; - if ((count = inflate_block(fp, block_length)) < 0) return -1; - if (fp->block_length != 0) fp->block_offset = 0; // Do not reset offset if this read follows a seek. - fp->block_address = block_address; - fp->block_length = count; - if ( fp->idx_build_otf ) - { - bgzf_index_add_block(fp); - fp->idx->ublock_addr += count; - } - cache_block(fp, size); - return 0; -} - -ssize_t bgzf_read(BGZF *fp, void *data, size_t length) -{ - ssize_t bytes_read = 0; - uint8_t *output = (uint8_t*)data; - if (length <= 0) return 0; - assert(fp->is_write == 0); - while (bytes_read < length) { - int copy_length, available = fp->block_length - fp->block_offset; - uint8_t *buffer; - if (available <= 0) { - if (bgzf_read_block(fp) != 0) return -1; - available = fp->block_length - fp->block_offset; - if (available <= 0) break; - } - copy_length = length - bytes_read < available? length - bytes_read : available; - buffer = (uint8_t*)fp->uncompressed_block; - memcpy(output, buffer + fp->block_offset, copy_length); - fp->block_offset += copy_length; - output += copy_length; - bytes_read += copy_length; - } - if (fp->block_offset == fp->block_length) { - fp->block_address = htell(fp->fp); - fp->block_offset = fp->block_length = 0; - } - fp->uncompressed_address += bytes_read; - return bytes_read; -} - -ssize_t bgzf_raw_read(BGZF *fp, void *data, size_t length) -{ - return hread(fp->fp, data, length); -} - -#ifdef BGZF_MT - -typedef struct { - struct bgzf_mtaux_t *mt; - void *buf; - int i, errcode, toproc, compress_level; -} worker_t; - -typedef struct bgzf_mtaux_t { - int n_threads, n_blks, curr, done; - volatile int proc_cnt; - void **blk; - int *len; - worker_t *w; - pthread_t *tid; - pthread_mutex_t lock; - pthread_cond_t cv; -} mtaux_t; - -static int worker_aux(worker_t *w) -{ - int i, stop = 0; - // wait for condition: to process or all done - pthread_mutex_lock(&w->mt->lock); - while (!w->toproc && !w->mt->done) - pthread_cond_wait(&w->mt->cv, &w->mt->lock); - if (w->mt->done) stop = 1; - w->toproc = 0; - pthread_mutex_unlock(&w->mt->lock); - if (stop) return 1; // to quit the thread - w->errcode = 0; - for (i = w->i; i < w->mt->curr; i += w->mt->n_threads) { - int clen = BGZF_MAX_BLOCK_SIZE; - if (bgzf_compress(w->buf, &clen, w->mt->blk[i], w->mt->len[i], w->compress_level) != 0) - w->errcode |= BGZF_ERR_ZLIB; - memcpy(w->mt->blk[i], w->buf, clen); - w->mt->len[i] = clen; - } - __sync_fetch_and_add(&w->mt->proc_cnt, 1); - return 0; -} - -static void *mt_worker(void *data) -{ - while (worker_aux((worker_t*)data) == 0); - return 0; -} - -int bgzf_mt(BGZF *fp, int n_threads, int n_sub_blks) -{ - int i; - mtaux_t *mt; - pthread_attr_t attr; - if (!fp->is_write || fp->mt || n_threads <= 1) return -1; - mt = (mtaux_t*)calloc(1, sizeof(mtaux_t)); - mt->n_threads = n_threads; - mt->n_blks = n_threads * n_sub_blks; - mt->len = (int*)calloc(mt->n_blks, sizeof(int)); - mt->blk = (void**)calloc(mt->n_blks, sizeof(void*)); - for (i = 0; i < mt->n_blks; ++i) - mt->blk[i] = malloc(BGZF_MAX_BLOCK_SIZE); - mt->tid = (pthread_t*)calloc(mt->n_threads, sizeof(pthread_t)); // tid[0] is not used, as the worker 0 is launched by the master - mt->w = (worker_t*)calloc(mt->n_threads, sizeof(worker_t)); - for (i = 0; i < mt->n_threads; ++i) { - mt->w[i].i = i; - mt->w[i].mt = mt; - mt->w[i].compress_level = fp->compress_level; - mt->w[i].buf = malloc(BGZF_MAX_BLOCK_SIZE); - } - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); - pthread_mutex_init(&mt->lock, 0); - pthread_cond_init(&mt->cv, 0); - for (i = 1; i < mt->n_threads; ++i) // worker 0 is effectively launched by the master thread - pthread_create(&mt->tid[i], &attr, mt_worker, &mt->w[i]); - fp->mt = mt; - return 0; -} - -static void mt_destroy(mtaux_t *mt) -{ - int i; - // signal all workers to quit - pthread_mutex_lock(&mt->lock); - mt->done = 1; mt->proc_cnt = 0; - pthread_cond_broadcast(&mt->cv); - pthread_mutex_unlock(&mt->lock); - for (i = 1; i < mt->n_threads; ++i) pthread_join(mt->tid[i], 0); // worker 0 is effectively launched by the master thread - // free other data allocated on heap - for (i = 0; i < mt->n_blks; ++i) free(mt->blk[i]); - for (i = 0; i < mt->n_threads; ++i) free(mt->w[i].buf); - free(mt->blk); free(mt->len); free(mt->w); free(mt->tid); - pthread_cond_destroy(&mt->cv); - pthread_mutex_destroy(&mt->lock); - free(mt); -} - -static void mt_queue(BGZF *fp) -{ - mtaux_t *mt = fp->mt; - assert(mt->curr < mt->n_blks); // guaranteed by the caller - memcpy(mt->blk[mt->curr], fp->uncompressed_block, fp->block_offset); - mt->len[mt->curr] = fp->block_offset; - fp->block_offset = 0; - ++mt->curr; -} - -static int mt_flush_queue(BGZF *fp) -{ - int i; - mtaux_t *mt = fp->mt; - // signal all the workers to compress - pthread_mutex_lock(&mt->lock); - for (i = 0; i < mt->n_threads; ++i) mt->w[i].toproc = 1; - mt->proc_cnt = 0; - pthread_cond_broadcast(&mt->cv); - pthread_mutex_unlock(&mt->lock); - // worker 0 is doing things here - worker_aux(&mt->w[0]); - // wait for all the threads to complete - while (mt->proc_cnt < mt->n_threads); - // dump data to disk - for (i = 0; i < mt->n_threads; ++i) fp->errcode |= mt->w[i].errcode; - for (i = 0; i < mt->curr; ++i) - if (hwrite(fp->fp, mt->blk[i], mt->len[i]) != mt->len[i]) { - fp->errcode |= BGZF_ERR_IO; - break; - } - mt->curr = 0; - return (fp->errcode == 0)? 0 : -1; -} - -static int lazy_flush(BGZF *fp) -{ - if (fp->mt) { - if (fp->block_offset) mt_queue(fp); - return (fp->mt->curr < fp->mt->n_blks)? 0 : mt_flush_queue(fp); - } - else return bgzf_flush(fp); -} - -#else // ~ #ifdef BGZF_MT - -int bgzf_mt(BGZF *fp, int n_threads, int n_sub_blks) -{ - return 0; -} - -static inline int lazy_flush(BGZF *fp) -{ - return bgzf_flush(fp); -} - -#endif // ~ #ifdef BGZF_MT - -int bgzf_flush(BGZF *fp) -{ - if (!fp->is_write) return 0; -#ifdef BGZF_MT - if (fp->mt) { - if (fp->block_offset) mt_queue(fp); // guaranteed that assertion does not fail - return mt_flush_queue(fp); - } -#endif - while (fp->block_offset > 0) { - if ( fp->idx_build_otf ) - { - bgzf_index_add_block(fp); - fp->idx->ublock_addr += fp->block_offset; - } - int block_length = deflate_block(fp, fp->block_offset); - if (block_length < 0) return -1; - if (hwrite(fp->fp, fp->compressed_block, block_length) != block_length) { - fp->errcode |= BGZF_ERR_IO; // possibly truncated file - return -1; - } - fp->block_address += block_length; - } - return 0; -} - -int bgzf_flush_try(BGZF *fp, ssize_t size) -{ - if (fp->block_offset + size > BGZF_BLOCK_SIZE) return lazy_flush(fp); - return 0; -} - -ssize_t bgzf_write(BGZF *fp, const void *data, size_t length) -{ - if ( !fp->is_compressed ) - return hwrite(fp->fp, data, length); - - const uint8_t *input = (const uint8_t*)data; - ssize_t remaining = length; - assert(fp->is_write); - while (remaining > 0) { - uint8_t* buffer = (uint8_t*)fp->uncompressed_block; - int copy_length = BGZF_BLOCK_SIZE - fp->block_offset; - if (copy_length > remaining) copy_length = remaining; - memcpy(buffer + fp->block_offset, input, copy_length); - fp->block_offset += copy_length; - input += copy_length; - remaining -= copy_length; - if (fp->block_offset == BGZF_BLOCK_SIZE) { - if (lazy_flush(fp) != 0) return -1; - } - } - return length - remaining; -} - -ssize_t bgzf_raw_write(BGZF *fp, const void *data, size_t length) -{ - return hwrite(fp->fp, data, length); -} - -int bgzf_close(BGZF* fp) -{ - int ret, block_length; - if (fp == 0) return -1; - if (fp->is_write && fp->is_compressed) { - if (bgzf_flush(fp) != 0) return -1; - fp->compress_level = -1; - block_length = deflate_block(fp, 0); // write an empty block - if (hwrite(fp->fp, fp->compressed_block, block_length) < 0 - || hflush(fp->fp) != 0) { - fp->errcode |= BGZF_ERR_IO; - return -1; - } -#ifdef BGZF_MT - if (fp->mt) mt_destroy(fp->mt); -#endif - } - if ( fp->is_gzip ) - { - if (!fp->is_write) (void)inflateEnd(fp->gz_stream); - else (void)deflateEnd(fp->gz_stream); - free(fp->gz_stream); - } - ret = hclose(fp->fp); - if (ret != 0) return -1; - bgzf_index_destroy(fp); - free(fp->uncompressed_block); - free(fp->compressed_block); - free_cache(fp); - free(fp); - return 0; -} - -void bgzf_set_cache_size(BGZF *fp, int cache_size) -{ - if (fp) fp->cache_size = cache_size; -} - -int bgzf_check_EOF(BGZF *fp) -{ - uint8_t buf[28]; - off_t offset = htell(fp->fp); - if (hseek(fp->fp, -28, SEEK_END) < 0) { - if (errno == ESPIPE) { hclearerr(fp->fp); return 2; } - else return -1; - } - if ( hread(fp->fp, buf, 28) != 28 ) return -1; - if ( hseek(fp->fp, offset, SEEK_SET) < 0 ) return -1; - return (memcmp("\037\213\010\4\0\0\0\0\0\377\6\0\102\103\2\0\033\0\3\0\0\0\0\0\0\0\0\0", buf, 28) == 0)? 1 : 0; -} - -int64_t bgzf_seek(BGZF* fp, int64_t pos, int where) -{ - int block_offset; - int64_t block_address; - - if (fp->is_write || where != SEEK_SET) { - fp->errcode |= BGZF_ERR_MISUSE; - return -1; - } - block_offset = pos & 0xFFFF; - block_address = pos >> 16; - if (hseek(fp->fp, block_address, SEEK_SET) < 0) { - fp->errcode |= BGZF_ERR_IO; - return -1; - } - fp->block_length = 0; // indicates current block has not been loaded - fp->block_address = block_address; - fp->block_offset = block_offset; - return 0; -} - -int bgzf_is_bgzf(const char *fn) -{ - uint8_t buf[16]; - int n; - hFILE *fp; - if ((fp = hopen(fn, "r")) == 0) return 0; - n = hread(fp, buf, 16); - if ( hclose(fp) < 0 ) return -1; - if (n != 16) return 0; - return memcmp(g_magic, buf, 16) == 0? 1 : 0; -} - -int bgzf_getc(BGZF *fp) -{ - int c; - if (fp->block_offset >= fp->block_length) { - if (bgzf_read_block(fp) != 0) return -2; /* error */ - if (fp->block_length == 0) return -1; /* end-of-file */ - } - c = ((unsigned char*)fp->uncompressed_block)[fp->block_offset++]; - if (fp->block_offset == fp->block_length) { - fp->block_address = htell(fp->fp); - fp->block_offset = 0; - fp->block_length = 0; - } - fp->uncompressed_address++; - return c; -} - -#ifndef kroundup32 -#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) -#endif - -int bgzf_getline(BGZF *fp, int delim, kstring_t *str) -{ - int l, state = 0; - unsigned char *buf = (unsigned char*)fp->uncompressed_block; - str->l = 0; - do { - if (fp->block_offset >= fp->block_length) { - if (bgzf_read_block(fp) != 0) { state = -2; break; } - if (fp->block_length == 0) { state = -1; break; } - } - for (l = fp->block_offset; l < fp->block_length && buf[l] != delim; ++l); - if (l < fp->block_length) state = 1; - l -= fp->block_offset; - if (str->l + l + 1 >= str->m) { - str->m = str->l + l + 2; - kroundup32(str->m); - str->s = (char*)realloc(str->s, str->m); - } - memcpy(str->s + str->l, buf + fp->block_offset, l); - str->l += l; - fp->block_offset += l + 1; - if (fp->block_offset >= fp->block_length) { - fp->block_address = htell(fp->fp); - fp->block_offset = 0; - fp->block_length = 0; - } - } while (state == 0); - if (str->l == 0 && state < 0) return state; - fp->uncompressed_address += str->l; - if ( delim=='\n' && str->l>0 && str->s[str->l-1]=='\r' ) str->l--; - str->s[str->l] = 0; - return str->l; -} - -void bgzf_index_destroy(BGZF *fp) -{ - if ( !fp->idx ) return; - free(fp->idx->offs); - free(fp->idx); - fp->idx = NULL; - fp->idx_build_otf = 0; -} - -int bgzf_index_build_init(BGZF *fp) -{ - bgzf_index_destroy(fp); - fp->idx = (bgzidx_t*) calloc(1,sizeof(bgzidx_t)); - if ( !fp->idx ) return -1; - fp->idx_build_otf = 1; // build index on the fly - return 0; -} - -int bgzf_index_add_block(BGZF *fp) -{ - fp->idx->noffs++; - if ( fp->idx->noffs > fp->idx->moffs ) - { - fp->idx->moffs = fp->idx->noffs; - kroundup32(fp->idx->moffs); - fp->idx->offs = (bgzidx1_t*) realloc(fp->idx->offs, fp->idx->moffs*sizeof(bgzidx1_t)); - if ( !fp->idx->offs ) return -1; - } - fp->idx->offs[ fp->idx->noffs-1 ].uaddr = fp->idx->ublock_addr; - fp->idx->offs[ fp->idx->noffs-1 ].caddr = fp->block_address; - return 0; -} - -int bgzf_index_dump(BGZF *fp, const char *bname, const char *suffix) -{ - if (bgzf_flush(fp) != 0) return -1; - - assert(fp->idx); - char *tmp = NULL; - if ( suffix ) - { - int blen = strlen(bname); - int slen = strlen(suffix); - tmp = (char*) malloc(blen + slen + 1); - if ( !tmp ) return -1; - memcpy(tmp,bname,blen); - memcpy(tmp+blen,suffix,slen+1); - } - - FILE *idx = fopen(tmp?tmp:bname,"wb"); - if ( tmp ) free(tmp); - if ( !idx ) return -1; - - // Note that the index contains one extra record when indexing files opened - // for reading. The terminating record is not present when opened for writing. - // This is not a bug. - - int i; - if ( fp->is_be ) - { - uint64_t x = fp->idx->noffs - 1; - fwrite(ed_swap_8p(&x), 1, sizeof(x), idx); - for (i=1; iidx->noffs; i++) - { - x = fp->idx->offs[i].caddr; fwrite(ed_swap_8p(&x), 1, sizeof(x), idx); - x = fp->idx->offs[i].uaddr; fwrite(ed_swap_8p(&x), 1, sizeof(x), idx); - } - } - else - { - uint64_t x = fp->idx->noffs - 1; - fwrite(&x, 1, sizeof(x), idx); - for (i=1; iidx->noffs; i++) - { - fwrite(&fp->idx->offs[i].caddr, 1, sizeof(fp->idx->offs[i].caddr), idx); - fwrite(&fp->idx->offs[i].uaddr, 1, sizeof(fp->idx->offs[i].uaddr), idx); - } - } - fclose(idx); - return 0; -} - - -int bgzf_index_load(BGZF *fp, const char *bname, const char *suffix) -{ - char *tmp = NULL; - if ( suffix ) - { - int blen = strlen(bname); - int slen = strlen(suffix); - tmp = (char*) malloc(blen + slen + 1); - if ( !tmp ) return -1; - memcpy(tmp,bname,blen); - memcpy(tmp+blen,suffix,slen+1); - } - - FILE *idx = fopen(tmp?tmp:bname,"rb"); - if ( tmp ) free(tmp); - if ( !idx ) return -1; - - fp->idx = (bgzidx_t*) calloc(1,sizeof(bgzidx_t)); - uint64_t x; - if ( fread(&x, 1, sizeof(x), idx) != sizeof(x) ) return -1; - - fp->idx->noffs = fp->idx->moffs = 1 + (fp->is_be ? ed_swap_8(x) : x); - fp->idx->offs = (bgzidx1_t*) malloc(fp->idx->moffs*sizeof(bgzidx1_t)); - fp->idx->offs[0].caddr = fp->idx->offs[0].uaddr = 0; - - int i; - if ( fp->is_be ) - { - int ret = 0; - for (i=1; iidx->noffs; i++) - { - ret += fread(&x, 1, sizeof(x), idx); fp->idx->offs[i].caddr = ed_swap_8(x); - ret += fread(&x, 1, sizeof(x), idx); fp->idx->offs[i].uaddr = ed_swap_8(x); - } - if ( ret != sizeof(x)*2*(fp->idx->noffs-1) ) return -1; - } - else - { - int ret = 0; - for (i=1; iidx->noffs; i++) - { - ret += fread(&x, 1, sizeof(x), idx); fp->idx->offs[i].caddr = x; - ret += fread(&x, 1, sizeof(x), idx); fp->idx->offs[i].uaddr = x; - } - if ( ret != sizeof(x)*2*(fp->idx->noffs-1) ) return -1; - } - fclose(idx); - return 0; - -} - -int bgzf_useek(BGZF *fp, long uoffset, int where) -{ - if ( !fp->is_compressed ) - { - if (hseek(fp->fp, uoffset, SEEK_SET) < 0) - { - fp->errcode |= BGZF_ERR_IO; - return -1; - } - fp->block_length = 0; // indicates current block has not been loaded - fp->block_address = uoffset; - fp->block_offset = 0; - bgzf_read_block(fp); - fp->uncompressed_address = uoffset; - return 0; - } - - if ( !fp->idx ) - { - fp->errcode |= BGZF_ERR_IO; - return -1; - } - - // binary search - int ilo = 0, ihi = fp->idx->noffs - 1; - while ( ilo<=ihi ) - { - int i = (ilo+ihi)*0.5; - if ( uoffset < fp->idx->offs[i].uaddr ) ihi = i - 1; - else if ( uoffset >= fp->idx->offs[i].uaddr ) ilo = i + 1; - else break; - } - int i = ilo-1; - if (hseek(fp->fp, fp->idx->offs[i].caddr, SEEK_SET) < 0) - { - fp->errcode |= BGZF_ERR_IO; - return -1; - } - fp->block_length = 0; // indicates current block has not been loaded - fp->block_address = fp->idx->offs[i].caddr; - fp->block_offset = 0; - if ( bgzf_read_block(fp) < 0 ) return -1; - if ( uoffset - fp->idx->offs[i].uaddr > 0 ) - { - fp->block_offset = uoffset - fp->idx->offs[i].uaddr; - assert( fp->block_offset <= fp->block_length ); // todo: skipped, unindexed, blocks - } - fp->uncompressed_address = uoffset; - return 0; -} - -long bgzf_utell(BGZF *fp) -{ - return fp->uncompressed_address; // currently maintained only when reading -} - diff --git a/htslib/bgzip.c b/htslib/bgzip.c deleted file mode 100644 index 2eeff3d..0000000 --- a/htslib/bgzip.c +++ /dev/null @@ -1,284 +0,0 @@ -/* bgzip.c -- Block compression/decompression utility. - - Copyright (C) 2008, 2009 Broad Institute / Massachusetts Institute of Technology - Copyright (C) 2010, 2013, 2014 Genome Research Ltd. - - 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 notices 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. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "htslib/bgzf.h" -#include "htslib/hts.h" - -static const int WINDOW_SIZE = 64 * 1024; - -static void error(const char *format, ...) -{ - va_list ap; - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - exit(EXIT_FAILURE); -} - -static int write_open(const char *fn, int is_forced) -{ - int fd = -1; - char c; - if (!is_forced) { - if ((fd = open(fn, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, 0666)) < 0 && errno == EEXIST) { - fprintf(stderr, "[bgzip] %s already exists; do you wish to overwrite (y or n)? ", fn); - if ( scanf("%c", &c) != 1 ) c = 'n'; - if (c != 'Y' && c != 'y') { - fprintf(stderr, "[bgzip] not overwritten\n"); - exit(EXIT_FAILURE); - } - } - } - if (fd < 0) { - if ((fd = open(fn, O_WRONLY | O_CREAT | O_TRUNC, 0666)) < 0) { - fprintf(stderr, "[bgzip] %s: Fail to write\n", fn); - exit(EXIT_FAILURE); - } - } - return fd; -} - -static int bgzip_main_usage(void) -{ - fprintf(stderr, "\n"); - fprintf(stderr, "Version: %s\n", hts_version()); - fprintf(stderr, "Usage: bgzip [OPTIONS] [FILE] ...\n"); - fprintf(stderr, "Options:\n"); - fprintf(stderr, " -b, --offset INT decompress at virtual file pointer (0-based uncompressed offset)\n"); - fprintf(stderr, " -c, --stdout write on standard output, keep original files unchanged\n"); - fprintf(stderr, " -d, --decompress decompress\n"); - fprintf(stderr, " -f, --force overwrite files without asking\n"); - fprintf(stderr, " -h, --help give this help\n"); - fprintf(stderr, " -i, --index compress and create BGZF index\n"); - fprintf(stderr, " -I, --index-name FILE name of BGZF index file [file.gz.gzi]\n"); - fprintf(stderr, " -r, --reindex (re)index compressed file\n"); - fprintf(stderr, " -s, --size INT decompress INT bytes (uncompressed size)\n"); - fprintf(stderr, "\n"); - return 1; -} - -int main(int argc, char **argv) -{ - int c, compress, pstdout, is_forced, index = 0, reindex = 0; - BGZF *fp; - void *buffer; - long start, end, size; - char *index_fname = NULL; - - static struct option loptions[] = - { - {"help",0,0,'h'}, - {"offset",1,0,'b'}, - {"stdout",0,0,'c'}, - {"decompress",0,0,'d'}, - {"force",0,0,'f'}, - {"index",0,0,'i'}, - {"index-name",1,0,'I'}, - {"reindex",0,0,'r'}, - {"size",1,0,'s'}, - {0,0,0,0} - }; - - compress = 1; pstdout = 0; start = 0; size = -1; end = -1; is_forced = 0; - while((c = getopt_long(argc, argv, "cdh?fb:s:iI:r",loptions,NULL)) >= 0){ - switch(c){ - case 'd': compress = 0; break; - case 'c': pstdout = 1; break; - case 'b': start = atol(optarg); compress = 0; pstdout = 1; break; - case 's': size = atol(optarg); pstdout = 1; break; - case 'f': is_forced = 1; break; - case 'i': index = 1; break; - case 'I': index_fname = optarg; break; - case 'r': reindex = 1; compress = 0; break; - case 'h': - case '?': return bgzip_main_usage(); - } - } - if (size >= 0) end = start + size; - if (end >= 0 && end < start) { - fprintf(stderr, "[bgzip] Illegal region: [%ld, %ld]\n", start, end); - return 1; - } - if (compress == 1) { - struct stat sbuf; - int f_src = fileno(stdin); - int f_dst = fileno(stdout); - - if ( argc>optind ) - { - if ( stat(argv[optind],&sbuf)<0 ) - { - fprintf(stderr, "[bgzip] %s: %s\n", strerror(errno), argv[optind]); - return 1; - } - - if ((f_src = open(argv[optind], O_RDONLY)) < 0) { - fprintf(stderr, "[bgzip] %s: %s\n", strerror(errno), argv[optind]); - return 1; - } - - if (pstdout) - f_dst = fileno(stdout); - else - { - char *name = malloc(strlen(argv[optind]) + 5); - strcpy(name, argv[optind]); - strcat(name, ".gz"); - f_dst = write_open(name, is_forced); - free(name); - if (f_dst < 0) return 1; - } - } - else if (!pstdout && isatty(fileno((FILE *)stdout)) ) - return bgzip_main_usage(); - else if ( index && !index_fname ) - { - fprintf(stderr, "[bgzip] Index file name expected when writing to stdout\n"); - return 1; - } - - fp = bgzf_fdopen(f_dst, "w"); - if ( index ) bgzf_index_build_init(fp); - buffer = malloc(WINDOW_SIZE); - while ((c = read(f_src, buffer, WINDOW_SIZE)) > 0) - if (bgzf_write(fp, buffer, c) < 0) error("Could not write %d bytes: Error %d\n", c, fp->errcode); - // f_dst will be closed here - if ( index ) - { - if ( index_fname ) bgzf_index_dump(fp, index_fname, NULL); - else bgzf_index_dump(fp, argv[optind], ".gz.gzi"); - } - if (bgzf_close(fp) < 0) error("Close failed: Error %d", fp->errcode); - if (argc > optind && !pstdout) unlink(argv[optind]); - free(buffer); - close(f_src); - return 0; - } - else if ( reindex ) - { - if ( argc>optind ) - { - fp = bgzf_open(argv[optind], "r"); - if ( !fp ) error("[bgzip] Could not open file: %s\n", argv[optind]); - } - else - { - if ( !index_fname ) error("[bgzip] Index file name expected when reading from stdin\n"); - fp = bgzf_fdopen(fileno(stdin), "r"); - if ( !fp ) error("[bgzip] Could not read from stdin: %s\n", strerror(errno)); - } - - buffer = malloc(BGZF_BLOCK_SIZE); - bgzf_index_build_init(fp); - int ret; - while ( (ret=bgzf_read(fp, buffer, BGZF_BLOCK_SIZE))>0 ) ; - free(buffer); - if ( ret<0 ) error("Is the file gzipped or bgzipped? The latter is required for indexing.\n"); - - if ( index_fname ) - bgzf_index_dump(fp, index_fname, NULL); - else - bgzf_index_dump(fp, argv[optind], ".gzi"); - - if ( bgzf_close(fp)<0 ) error("Close failed: Error %d\n",fp->errcode); - return 0; - } - else - { - struct stat sbuf; - int f_dst; - - if ( argc>optind ) - { - if ( stat(argv[optind],&sbuf)<0 ) - { - fprintf(stderr, "[bgzip] %s: %s\n", strerror(errno), argv[optind]); - return 1; - } - char *name; - int len = strlen(argv[optind]); - if ( strcmp(argv[optind]+len-3,".gz") ) - { - fprintf(stderr, "[bgzip] %s: unknown suffix -- ignored\n", argv[optind]); - return 1; - } - fp = bgzf_open(argv[optind], "r"); - if (fp == NULL) { - fprintf(stderr, "[bgzip] Could not open file: %s\n", argv[optind]); - return 1; - } - - if (pstdout) { - f_dst = fileno(stdout); - } - else { - name = strdup(argv[optind]); - name[strlen(name) - 3] = '\0'; - f_dst = write_open(name, is_forced); - free(name); - } - } - else if (!pstdout && isatty(fileno((FILE *)stdin)) ) - return bgzip_main_usage(); - else - { - f_dst = fileno(stdout); - fp = bgzf_fdopen(fileno(stdin), "r"); - if (fp == NULL) { - fprintf(stderr, "[bgzip] Could not read from stdin: %s\n", strerror(errno)); - return 1; - } - } - buffer = malloc(WINDOW_SIZE); - if ( start>0 ) - { - if ( bgzf_index_load(fp, argv[optind], ".gzi") < 0 ) error("Could not load index: %s.gzi\n", argv[optind]); - if ( bgzf_useek(fp, start, SEEK_SET) < 0 ) error("Could not seek to %d-th (uncompressd) byte\n", start); - } - while (1) { - if (end < 0) c = bgzf_read(fp, buffer, WINDOW_SIZE); - else c = bgzf_read(fp, buffer, (end - start > WINDOW_SIZE)? WINDOW_SIZE:(end - start)); - if (c == 0) break; - if (c < 0) error("Could not read %d bytes: Error %d\n", (end - start > WINDOW_SIZE)? WINDOW_SIZE:(end - start), fp->errcode); - start += c; - if ( write(f_dst, buffer, c) != c ) error("Could not write %d bytes\n", c); - if (end >= 0 && start >= end) break; - } - free(buffer); - if (bgzf_close(fp) < 0) error("Close failed: Error %d\n",fp->errcode); - if (!pstdout) unlink(argv[optind]); - return 0; - } - return 0; -} diff --git a/htslib/config.h b/htslib/config.h deleted file mode 100644 index 6d32bf5..0000000 --- a/htslib/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#define _USE_KNETFILE -#define BGZF_CACHE -#define BGZF_MT diff --git a/htslib/config.mk b/htslib/config.mk deleted file mode 100644 index c4452d2..0000000 --- a/htslib/config.mk +++ /dev/null @@ -1,72 +0,0 @@ -# Optional configure Makefile overrides for htslib. -# -# Copyright (C) 2015 Genome Research Ltd. -# -# Author: John Marshall -# -# 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. - -# This is config.mk. Generated from config.mk.in by configure. -# -# If you use configure, this file overrides variables and augments rules -# in the Makefile to reflect your configuration choices. If you don't run -# configure, the main Makefile contains suitable conservative defaults. - -prefix = /usr/local -exec_prefix = ${prefix} -bindir = ${exec_prefix}/bin -includedir = ${prefix}/include -libdir = ${exec_prefix}/lib -datarootdir = ${prefix}/share -mandir = ${datarootdir}/man - -CC = gcc -RANLIB = ranlib - -CFLAGS = -g -O2 -LDFLAGS = -LDLIBS = - - -# ifeq/.../endif, +=, and target-specific variables are GNU Make-specific. -# If you don't have GNU Make, comment out this conditional and note that -# to enable iRODS you will need to implement the following elsewhere. -ifeq "iRODS-disabled" "iRODS-enabled" - -IRODS_HOME ?= /disabled - -EXTRA_CPPFLAGS_IRODS = \ - -I$(IRODS_HOME)/lib/api/include \ - -I$(IRODS_HOME)/lib/core/include \ - -I$(IRODS_HOME)/lib/md5/include \ - -I$(IRODS_HOME)/lib/sha1/include \ - -I$(IRODS_HOME)/server/core/include \ - -I$(IRODS_HOME)/server/drivers/include \ - -I$(IRODS_HOME)/server/icat/include - -LDFLAGS += -L$(IRODS_HOME)/lib/core/obj -LDLIBS += -lRodsAPIs -lgssapi_krb5 - -LIBHTS_OBJS += hfile_irods.o - -hfile.o hfile.pico: CPPFLAGS += -DHAVE_IRODS - -hfile_irods.o hfile_irods.pico: CPPFLAGS += $(EXTRA_CPPFLAGS_IRODS) - -endif diff --git a/htslib/config.mk.in b/htslib/config.mk.in deleted file mode 100644 index e058ee5..0000000 --- a/htslib/config.mk.in +++ /dev/null @@ -1,72 +0,0 @@ -# Optional configure Makefile overrides for htslib. -# -# Copyright (C) 2015 Genome Research Ltd. -# -# Author: John Marshall -# -# 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. - -# This is @configure_input@ -# -# If you use configure, this file overrides variables and augments rules -# in the Makefile to reflect your configuration choices. If you don't run -# configure, the main Makefile contains suitable conservative defaults. - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -includedir = @includedir@ -libdir = @libdir@ -datarootdir = @datarootdir@ -mandir = @mandir@ - -CC = @CC@ -RANLIB = @RANLIB@ - -CFLAGS = @CFLAGS@ -LDFLAGS = @LDFLAGS@ -LDLIBS = @LIBS@ - - -# ifeq/.../endif, +=, and target-specific variables are GNU Make-specific. -# If you don't have GNU Make, comment out this conditional and note that -# to enable iRODS you will need to implement the following elsewhere. -ifeq "iRODS-@irods@" "iRODS-enabled" - -@define_IRODS_HOME@ - -EXTRA_CPPFLAGS_IRODS = \ - -I$(IRODS_HOME)/lib/api/include \ - -I$(IRODS_HOME)/lib/core/include \ - -I$(IRODS_HOME)/lib/md5/include \ - -I$(IRODS_HOME)/lib/sha1/include \ - -I$(IRODS_HOME)/server/core/include \ - -I$(IRODS_HOME)/server/drivers/include \ - -I$(IRODS_HOME)/server/icat/include - -LDFLAGS += -L$(IRODS_HOME)/lib/core/obj -LDLIBS += -lRodsAPIs -lgssapi_krb5 - -LIBHTS_OBJS += hfile_irods.o - -hfile.o hfile.pico: CPPFLAGS += -DHAVE_IRODS - -hfile_irods.o hfile_irods.pico: CPPFLAGS += $(EXTRA_CPPFLAGS_IRODS) - -endif diff --git a/htslib/configure b/htslib/configure deleted file mode 100755 index 9fc4bd2..0000000 --- a/htslib/configure +++ /dev/null @@ -1,4012 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for HTSlib 1.2.1. -# -# Report bugs to . -# -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -# -# Portions copyright (C) 2015 Genome Research Ltd. -# -# This configure script is free software: you are free to change and -# redistribute it. There is NO WARRANTY, to the extent permitted by law. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: samtools-help@lists.sourceforge.net about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='HTSlib' -PACKAGE_TARNAME='htslib' -PACKAGE_VERSION='1.2.1' -PACKAGE_STRING='HTSlib 1.2.1' -PACKAGE_BUGREPORT='samtools-help@lists.sourceforge.net' -PACKAGE_URL='http://www.htslib.org/' - -ac_unique_file="hts.c" -ac_subst_vars='LTLIBOBJS -LIBOBJS -define_IRODS_HOME -irods -RANLIB -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -with_irods -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures HTSlib 1.2.1 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/htslib] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of HTSlib 1.2.1:";; - esac - cat <<\_ACEOF - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-irods[=DIR] use RodsAPIs library (in DIR) to support iRODS URLs - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -HTSlib home page: . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -HTSlib configure 1.2.1 -generated by GNU Autoconf 2.68 - -Copyright (C) 2010 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. - -Portions copyright (C) 2015 Genome Research Ltd. - -This configure script is free software: you are free to change and -redistribute it. There is NO WARRANTY, to the extent permitted by law. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by HTSlib $as_me 1.2.1, which was -generated by GNU Autoconf 2.68. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - - - -# Check whether --with-irods was given. -if test "${with_irods+set}" = set; then : - withval=$with_irods; case $withval in - no) irods=disabled ;; - yes) irods=enabled ;; - *) irods=enabled; IRODS_HOME=$withval ;; - esac -else - irods=disabled -fi - - -save_LIBS=$LIBS -zlib_devel=ok - -ac_fn_c_check_header_compile "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "; -" -if test "x$ac_cv_header_zlib_h" = xyes; then : - -else - zlib_devel=missing -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5 -$as_echo_n "checking for inflate in -lz... " >&6; } -if ${ac_cv_lib_z_inflate+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char inflate (); -int -main () -{ -return inflate (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_inflate=yes -else - ac_cv_lib_z_inflate=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflate" >&5 -$as_echo "$ac_cv_lib_z_inflate" >&6; } -if test "x$ac_cv_lib_z_inflate" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBZ 1 -_ACEOF - - LIBS="-lz $LIBS" - -else - zlib_devel=missing -fi - -LIBS=$save_LIBS - -if test $zlib_devel != ok; then - as_fn_error $? "zlib development files not found - -HTSlib uses compression routines from the zlib library . -Building HTSlib requires zlib development files to be installed on the build -machine; you may need to ensure a package such as zlib1g-dev (on Debian or -Ubuntu Linux) or zlib-devel (on RPM-based Linux distributions) is installed. - -FAILED. This error must be resolved in order to build HTSlib successfully." "$LINENO" 5 -fi - -if test $irods = enabled; then - # TODO Also test whether we require libgssapi_krb5 and AC_CHECK_LIB it - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -L$IRODS_HOME/lib/core/obj" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getRodsEnvFileName in -lRodsAPIs" >&5 -$as_echo_n "checking for getRodsEnvFileName in -lRodsAPIs... " >&6; } -if ${ac_cv_lib_RodsAPIs_getRodsEnvFileName+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lRodsAPIs -lgssapi_krb5 -lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char getRodsEnvFileName (); -int -main () -{ -return getRodsEnvFileName (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_RodsAPIs_getRodsEnvFileName=yes -else - ac_cv_lib_RodsAPIs_getRodsEnvFileName=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_RodsAPIs_getRodsEnvFileName" >&5 -$as_echo "$ac_cv_lib_RodsAPIs_getRodsEnvFileName" >&6; } -if test "x$ac_cv_lib_RodsAPIs_getRodsEnvFileName" = xyes; then : - case $with_irods in - yes) define_IRODS_HOME='# Uses $(IRODS_HOME) from the environment' ;; - *) define_IRODS_HOME="IRODS_HOME = $with_irods" ;; - esac -else - as_fn_error $? "iRODS development files not found - -Support for iRODS URLs requires the libRodsAPI client library and headers. -Configure with --with-irods=DIR (or just --with-irods if \$IRODS_HOME has -been exported with a suitable value), where DIR is the base of an iRODS tree -such that the library is present as DIR/lib/core/obj/libRodsAPI.* and headers -are present under DIR/lib/api/include and so on." "$LINENO" 5 -fi - - LDFLAGS=$save_LDFLAGS -else - define_IRODS_HOME='IRODS_HOME ?= /disabled' -fi - - - -ac_config_files="$ac_config_files config.mk" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -:mline -/\\$/{ - N - s,\\\n,, - b mline -} -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.h` - - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by HTSlib $as_me 1.2.1, which was -generated by GNU Autoconf 2.68. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Report bugs to . -HTSlib home page: ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -HTSlib config.status 1.2.1 -configured by $0, generated by GNU Autoconf 2.68, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2010 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.mk") CONFIG_FILES="$CONFIG_FILES config.mk" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - - -eval set X " :F $CONFIG_FILES " -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - - - - esac - -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/htslib/configure.ac b/htslib/configure.ac deleted file mode 100644 index 77ce99c..0000000 --- a/htslib/configure.ac +++ /dev/null @@ -1,93 +0,0 @@ -# Configure script for htslib, a C library for high-throughput sequencing data. -# -# Copyright (C) 2015 Genome Research Ltd. -# -# Author: John Marshall -# -# 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. - -dnl Process this file with autoconf to produce a configure script -AC_INIT([HTSlib], m4_esyscmd_s([make print-version]), - [samtools-help@lists.sourceforge.net], [], [http://www.htslib.org/]) -AC_PREREQ(2.63) dnl This version introduced 4-argument AC_CHECK_HEADER -AC_CONFIG_SRCDIR(hts.c) - -dnl Copyright notice to be copied into the generated configure script -AC_COPYRIGHT([Portions copyright (C) 2015 Genome Research Ltd. - -This configure script is free software: you are free to change and -redistribute it. There is NO WARRANTY, to the extent permitted by law.]) - -AC_PROG_CC -AC_PROG_RANLIB - -AC_ARG_WITH([irods], - [AS_HELP_STRING([[--with-irods[=DIR]]], - [use RodsAPIs library (in DIR) to support iRODS URLs])], - [case $withval in - no) irods=disabled ;; - yes) irods=enabled ;; - *) irods=enabled; IRODS_HOME=$withval ;; - esac], - [irods=disabled]) - -save_LIBS=$LIBS -zlib_devel=ok -dnl Set a trivial non-empty INCLUDES to avoid excess default includes tests -AC_CHECK_HEADER([zlib.h], [], [zlib_devel=missing], [;]) -AC_CHECK_LIB(z, inflate, [], [zlib_devel=missing]) -LIBS=$save_LIBS - -if test $zlib_devel != ok; then - AC_MSG_ERROR([zlib development files not found - -HTSlib uses compression routines from the zlib library . -Building HTSlib requires zlib development files to be installed on the build -machine; you may need to ensure a package such as zlib1g-dev (on Debian or -Ubuntu Linux) or zlib-devel (on RPM-based Linux distributions) is installed. - -FAILED. This error must be resolved in order to build HTSlib successfully.]) -fi - -if test $irods = enabled; then - # TODO Also test whether we require libgssapi_krb5 and AC_CHECK_LIB it - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -L$IRODS_HOME/lib/core/obj" - AC_CHECK_LIB([RodsAPIs], [getRodsEnvFileName], - [case $with_irods in - yes) define_IRODS_HOME='# Uses $(IRODS_HOME) from the environment' ;; - *) define_IRODS_HOME="IRODS_HOME = $with_irods" ;; - esac], - [AC_MSG_ERROR([iRODS development files not found - -Support for iRODS URLs requires the libRodsAPI client library and headers. -Configure with --with-irods=DIR (or just --with-irods if \$IRODS_HOME has -been exported with a suitable value), where DIR is the base of an iRODS tree -such that the library is present as DIR/lib/core/obj/libRodsAPI.* and headers -are present under DIR/lib/api/include and so on.])], - [-lgssapi_krb5 -lpthread]) - LDFLAGS=$save_LDFLAGS -else - define_IRODS_HOME='IRODS_HOME ?= /disabled' -fi -AC_SUBST([irods]) -AC_SUBST([define_IRODS_HOME]) - -AC_CONFIG_FILES(config.mk) -AC_OUTPUT diff --git a/htslib/cram/cram.h b/htslib/cram/cram.h deleted file mode 100644 index 02f7774..0000000 --- a/htslib/cram/cram.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright (c) 2012-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/*! \file - * CRAM interface. - * - * Consider using the higher level hts_*() API for programs that wish to - * be file format agnostic (see htslib/hts.h). - * - * This API should be used for CRAM specific code. The specifics of the - * public API are implemented in cram_io.h, cram_encode.h and cram_decode.h - * although these should not be included directly (use this file instead). - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _CRAM_H_ -#define _CRAM_H_ - -#include "cram/cram_samtools.h" -#include "cram/sam_header.h" -#include "cram_structs.h" -#include "cram_io.h" -#include "cram_encode.h" -#include "cram_decode.h" -#include "cram_stats.h" -#include "cram_codecs.h" -#include "cram_index.h" - -#endif - -#ifdef __cplusplus -} -#endif diff --git a/htslib/cram/cram_codecs.c b/htslib/cram/cram_codecs.c deleted file mode 100644 index c6bfb16..0000000 --- a/htslib/cram/cram_codecs.c +++ /dev/null @@ -1,1846 +0,0 @@ -/* -Copyright (c) 2012-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * FIXME: add checking of cram_external_type to return NULL on unsupported - * {codec,type} tuples. - */ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include -#include -#include - -#include "cram/cram.h" - -static char *codec2str(enum cram_encoding codec) { - switch (codec) { - case E_NULL: return "NULL"; - case E_EXTERNAL: return "EXTERNAL"; - case E_GOLOMB: return "GOLOMB"; - case E_HUFFMAN: return "HUFFMAN"; - case E_BYTE_ARRAY_LEN: return "BYTE_ARRAY_LEN"; - case E_BYTE_ARRAY_STOP: return "BYTE_ARRAY_STOP"; - case E_BETA: return "BETA"; - case E_SUBEXP: return "SUBEXP"; - case E_GOLOMB_RICE: return "GOLOMB_RICE"; - case E_GAMMA: return "GAMMA"; - } - - return "(unknown)"; -} - -/* - * --------------------------------------------------------------------------- - * Block bit-level I/O functions. - * All defined static here to promote easy inlining by the compiler. - */ - -#if 0 -/* Get a single bit, MSB first */ -static signed int get_bit_MSB(cram_block *block) { - unsigned int val; - - if (block->byte > block->alloc) - return -1; - - val = block->data[block->byte] >> block->bit; - if (--block->bit == -1) { - block->bit = 7; - block->byte++; - //printf("(%02X)", block->data[block->byte]); - } - - //printf("-B%d-", val&1); - - return val & 1; -} -#endif - -/* - * Count number of successive 0 and 1 bits - */ -static int get_one_bits_MSB(cram_block *block) { - int n = 0, b; - do { - b = block->data[block->byte] >> block->bit; - if (--block->bit == -1) { - block->bit = 7; - block->byte++; - } - n++; - } while (b&1); - - return n-1; -} - -static int get_zero_bits_MSB(cram_block *block) { - int n = 0, b; - do { - b = block->data[block->byte] >> block->bit; - if (--block->bit == -1) { - block->bit = 7; - block->byte++; - } - n++; - } while (!(b&1)); - - return n-1; -} - -#if 0 -/* Stores a single bit */ -static void store_bit_MSB(cram_block *block, unsigned int bit) { - if (block->byte >= block->alloc) { - block->alloc = block->alloc ? block->alloc*2 : 1024; - block->data = realloc(block->data, block->alloc); - } - - if (bit) - block->data[block->byte] |= (1 << block->bit); - - if (--block->bit == -1) { - block->bit = 7; - block->byte++; - block->data[block->byte] = 0; - } -} -#endif - -#if 0 -/* Rounds to the next whole byte boundary first */ -static void store_bytes_MSB(cram_block *block, char *bytes, int len) { - if (block->bit != 7) { - block->bit = 7; - block->byte++; - } - - while (block->byte + len >= block->alloc) { - block->alloc = block->alloc ? block->alloc*2 : 1024; - block->data = realloc(block->data, block->alloc); - } - - memcpy(&block->data[block->byte], bytes, len); - block->byte += len; -} -#endif - -/* Local optimised copy for inlining */ -static inline unsigned int get_bits_MSB(cram_block *block, int nbits) { - unsigned int val = 0; - int i; - -#if 0 - // Fits within the current byte */ - if (nbits <= block->bit+1) { - val = (block->data[block->byte]>>(block->bit-(nbits-1))) & ((1<bit -= nbits) == -1) { - block->bit = 7; - block->byte++; - } - return val; - } - - // partial first byte - val = block->data[block->byte] & ((1<<(block->bit+1))-1); - nbits -= block->bit+1; - block->bit = 7; - block->byte++; - - // whole middle bytes - while (nbits >= 8) { - val = (val << 8) | block->data[block->byte++]; - nbits -= 8; - } - - val <<= nbits; - val |= (block->data[block->byte]>>(block->bit-(nbits-1))) & ((1<bit -= nbits; - return val; -#endif - -#if 0 - /* Inefficient implementation! */ - //printf("{"); - for (i = 0; i < nbits; i++) - //val = (val << 1) | get_bit_MSB(block); - GET_BIT_MSB(block, val); -#endif - -#if 1 - /* Combination of 1st two methods */ - if (nbits <= block->bit+1) { - val = (block->data[block->byte]>>(block->bit-(nbits-1))) & ((1<bit -= nbits) == -1) { - block->bit = 7; - block->byte++; - } - return val; - } - - switch(nbits) { -// case 15: GET_BIT_MSB(block, val); -// case 14: GET_BIT_MSB(block, val); -// case 13: GET_BIT_MSB(block, val); -// case 12: GET_BIT_MSB(block, val); -// case 11: GET_BIT_MSB(block, val); -// case 10: GET_BIT_MSB(block, val); -// case 9: GET_BIT_MSB(block, val); - case 8: GET_BIT_MSB(block, val); - case 7: GET_BIT_MSB(block, val); - case 6: GET_BIT_MSB(block, val); - case 5: GET_BIT_MSB(block, val); - case 4: GET_BIT_MSB(block, val); - case 3: GET_BIT_MSB(block, val); - case 2: GET_BIT_MSB(block, val); - case 1: GET_BIT_MSB(block, val); - break; - - default: - for (i = 0; i < nbits; i++) - //val = (val << 1) | get_bit_MSB(block); - GET_BIT_MSB(block, val); - } -#endif - - //printf("=0x%x}", val); - - return val; -} - -/* - * Can store up to 24-bits worth of data encoded in an integer value - * Possibly we'd want to have a less optimal store_bits function when dealing - * with nbits > 24, but for now we assume the codes generated are never - * that big. (Given this is only possible with 121392 or more - * characters with exactly the correct frequency distribution we check - * for it elsewhere.) - */ -static int store_bits_MSB(cram_block *block, unsigned int val, int nbits) { - /* fprintf(stderr, " store_bits: %02x %d\n", val, nbits); */ - - /* - * Use slow mode until we tweak the huffman generator to never generate - * codes longer than 24-bits. - */ - unsigned int mask; - - if (block->byte+4 >= block->alloc) { - if (block->byte) { - block->alloc *= 2; - block->data = realloc(block->data, block->alloc + 4); - if (!block->data) - return -1; - } else { - block->alloc = 1024; - block->data = realloc(block->data, block->alloc + 4); - if (!block->data) - return -1; - block->data[0] = 0; // initialise first byte of buffer - } - } - - /* fits in current bit-field */ - if (nbits <= block->bit+1) { - block->data[block->byte] |= (val << (block->bit+1-nbits)); - if ((block->bit-=nbits) == -1) { - block->bit = 7; - block->byte++; - block->data[block->byte] = 0; - } - return 0; - } - - block->data[block->byte] |= (val >> (nbits -= block->bit+1)); - block->bit = 7; - block->byte++; - block->data[block->byte] = 0; - - mask = 1<<(nbits-1); - do { - if (val & mask) - block->data[block->byte] |= (1 << block->bit); - if (--block->bit == -1) { - block->bit = 7; - block->byte++; - block->data[block->byte] = 0; - } - mask >>= 1; - } while(--nbits); - - return 0; -} - -/* - * Returns the next 'size' bytes from a block, or NULL if insufficient - * data left.This is just a pointer into the block data and not an - * allocated object, so do not free the result. - */ -static char *cram_extract_block(cram_block *b, int size) { - char *cp = (char *)b->data + b->idx; - b->idx += size; - if (b->idx > b->uncomp_size) - return NULL; - - return cp; -} - -/* - * --------------------------------------------------------------------------- - * EXTERNAL - */ -int cram_external_decode_int(cram_slice *slice, cram_codec *c, - cram_block *in, char *out, int *out_size) { - int i; - char *cp; - cram_block *b = NULL; - - /* Find the external block */ - if (slice->block_by_id) { - if (!(b = slice->block_by_id[c->external.content_id])) - return *out_size?-1:0; - } else { - for (i = 0; i < slice->hdr->num_blocks; i++) { - b = slice->block[i]; - if (b && b->content_type == EXTERNAL && - b->content_id == c->external.content_id) { - break; - } - } - if (i == slice->hdr->num_blocks || !b) - return -1; - } - - cp = (char *)b->data + b->idx; - // E_INT and E_LONG are guaranteed single item queries - b->idx += itf8_get(cp, (int32_t *)out); - *out_size = 1; - - return 0; -} - -int cram_external_decode_char(cram_slice *slice, cram_codec *c, - cram_block *in, char *out, - int *out_size) { - int i; - char *cp; - cram_block *b = NULL; - - /* Find the external block */ - if (slice->block_by_id) { - if (!(b = slice->block_by_id[c->external.content_id])) - return *out_size?-1:0; - } else { - for (i = 0; i < slice->hdr->num_blocks; i++) { - b = slice->block[i]; - if (b && b->content_type == EXTERNAL && - b->content_id == c->external.content_id) { - break; - } - } - if (i == slice->hdr->num_blocks || !b) - return -1; - } - - cp = cram_extract_block(b, *out_size); - if (!cp) - return -1; - - memcpy(out, cp, *out_size); - return 0; -} - -static int cram_external_decode_block(cram_slice *slice, cram_codec *c, - cram_block *in, char *out_, - int *out_size) { - int i; - char *cp; - cram_block *b = NULL; - cram_block *out = (cram_block *)out_; - - /* Find the external block */ - if (slice->block_by_id) { - if (!(b = slice->block_by_id[c->external.content_id])) - return *out_size?-1:0; - } else { - for (i = 0; i < slice->hdr->num_blocks; i++) { - b = slice->block[i]; - if (b && b->content_type == EXTERNAL && - b->content_id == c->external.content_id) { - break; - } - } - if (i == slice->hdr->num_blocks || !b) - return -1; - } - - cp = cram_extract_block(b, *out_size); - if (!cp) - return -1; - - BLOCK_APPEND(out, cp, *out_size); - return 0; -} - -void cram_external_decode_free(cram_codec *c) { - if (c) - free(c); -} - -cram_codec *cram_external_decode_init(char *data, int size, - enum cram_external_type option, - int version) { - cram_codec *c; - char *cp = data; - - if (!(c = malloc(sizeof(*c)))) - return NULL; - - c->codec = E_EXTERNAL; - if (option == E_INT || option == E_LONG) - c->decode = cram_external_decode_int; - else if (option == E_BYTE_ARRAY || option == E_BYTE) - c->decode = cram_external_decode_char; - else - c->decode = cram_external_decode_block; - c->free = cram_external_decode_free; - - cp += itf8_get(cp, &c->external.content_id); - - if (cp - data != size) { - fprintf(stderr, "Malformed external header stream\n"); - free(c); - return NULL; - } - - c->external.type = option; - - return c; -} - -int cram_external_encode_int(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - uint32_t *i32 = (uint32_t *)in; - - itf8_put_blk(c->out, *i32); - return 0; -} - -int cram_external_encode_char(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - BLOCK_APPEND(c->out, in, in_size); - return 0; -} - -void cram_external_encode_free(cram_codec *c) { - if (!c) - return; - free(c); -} - -int cram_external_encode_store(cram_codec *c, cram_block *b, char *prefix, - int version) { - char tmp[99], *tp = tmp; - int len = 0; - - if (prefix) { - size_t l = strlen(prefix); - BLOCK_APPEND(b, prefix, l); - len += l; - } - - tp += itf8_put(tp, c->e_external.content_id); - len += itf8_put_blk(b, c->codec); - len += itf8_put_blk(b, tp-tmp); - BLOCK_APPEND(b, tmp, tp-tmp); - len += tp-tmp; - - return len; -} - -cram_codec *cram_external_encode_init(cram_stats *st, - enum cram_external_type option, - void *dat, - int version) { - cram_codec *c; - - c = malloc(sizeof(*c)); - if (!c) - return NULL; - c->codec = E_EXTERNAL; - c->free = cram_external_encode_free; - if (option == E_INT || option == E_LONG) - c->encode = cram_external_encode_int; - else if (option == E_BYTE_ARRAY || option == E_BYTE) - c->encode = cram_external_encode_char; - else - abort(); - c->store = cram_external_encode_store; - - c->e_external.content_id = (size_t)dat; - - return c; -} - -/* - * --------------------------------------------------------------------------- - * BETA - */ -int cram_beta_decode_int(cram_slice *slice, cram_codec *c, cram_block *in, char *out, int *out_size) { - int32_t *out_i = (int32_t *)out; - int i, n; - - if (c->beta.nbits) { - for (i = 0, n = *out_size; i < n; i++) - out_i[i] = get_bits_MSB(in, c->beta.nbits) - c->beta.offset; - } else { - for (i = 0, n = *out_size; i < n; i++) - out_i[i] = -c->beta.offset; - } - - return 0; -} - -int cram_beta_decode_char(cram_slice *slice, cram_codec *c, cram_block *in, char *out, int *out_size) { - int i, n; - - if (c->beta.nbits) { - for (i = 0, n = *out_size; i < n; i++) - out[i] = get_bits_MSB(in, c->beta.nbits) - c->beta.offset; - } else { - for (i = 0, n = *out_size; i < n; i++) - out[i] = -c->beta.offset; - } - - return 0; -} - -void cram_beta_decode_free(cram_codec *c) { - if (c) - free(c); -} - -cram_codec *cram_beta_decode_init(char *data, int size, - enum cram_external_type option, - int version) { - cram_codec *c; - char *cp = data; - - if (!(c = malloc(sizeof(*c)))) - return NULL; - - c->codec = E_BETA; - if (option == E_INT || option == E_LONG) - c->decode = cram_beta_decode_int; - else if (option == E_BYTE_ARRAY || option == E_BYTE) - c->decode = cram_beta_decode_char; - else - abort(); - c->free = cram_beta_decode_free; - - cp += itf8_get(cp, &c->beta.offset); - cp += itf8_get(cp, &c->beta.nbits); - - if (cp - data != size) { - fprintf(stderr, "Malformed beta header stream\n"); - free(c); - return NULL; - } - - return c; -} - -int cram_beta_encode_store(cram_codec *c, cram_block *b, - char *prefix, int version) { - int len = 0; - - if (prefix) { - size_t l = strlen(prefix); - BLOCK_APPEND(b, prefix, l); - len += l; - } - - len += itf8_put_blk(b, c->codec); - len += itf8_put_blk(b, itf8_size(c->e_beta.offset) - + itf8_size(c->e_beta.nbits)); // codec length - len += itf8_put_blk(b, c->e_beta.offset); - len += itf8_put_blk(b, c->e_beta.nbits); - - return len; -} - -int cram_beta_encode_int(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - int *syms = (int *)in; - int i, r = 0; - - for (i = 0; i < in_size; i++) - r |= store_bits_MSB(c->out, syms[i] + c->e_beta.offset, - c->e_beta.nbits); - - return r; -} - -int cram_beta_encode_char(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - unsigned char *syms = (unsigned char *)in; - int i, r = 0; - - for (i = 0; i < in_size; i++) - r |= store_bits_MSB(c->out, syms[i] + c->e_beta.offset, - c->e_beta.nbits); - - return r; -} - -void cram_beta_encode_free(cram_codec *c) { - if (c) free(c); -} - -cram_codec *cram_beta_encode_init(cram_stats *st, - enum cram_external_type option, - void *dat, - int version) { - cram_codec *c; - int min_val, max_val, len = 0; - - c = malloc(sizeof(*c)); - if (!c) - return NULL; - c->codec = E_BETA; - c->free = cram_beta_encode_free; - if (option == E_INT) - c->encode = cram_beta_encode_int; - else - c->encode = cram_beta_encode_char; - c->store = cram_beta_encode_store; - - if (dat) { - min_val = ((int *)dat)[0]; - max_val = ((int *)dat)[1]; - } else { - min_val = INT_MAX; - max_val = INT_MIN; - int i; - for (i = 0; i < MAX_STAT_VAL; i++) { - if (!st->freqs[i]) - continue; - if (min_val > i) - min_val = i; - max_val = i; - } - if (st->h) { - khint_t k; - - for (k = kh_begin(st->h); k != kh_end(st->h); k++) { - if (!kh_exist(st->h, k)) - continue; - - i = kh_key(st->h, k); - if (min_val > i) - min_val = i; - if (max_val < i) - max_val = i; - } - } - } - - assert(max_val >= min_val); - c->e_beta.offset = -min_val; - max_val -= min_val; - while (max_val) { - len++; - max_val >>= 1; - } - c->e_beta.nbits = len; - - return c; -} - -/* - * --------------------------------------------------------------------------- - * SUBEXP - */ -int cram_subexp_decode(cram_slice *slice, cram_codec *c, cram_block *in, char *out, int *out_size) { - int32_t *out_i = (int32_t *)out; - int n, count; - int k = c->subexp.k; - - for (count = 0, n = *out_size; count < n; count++) { - int i = 0, tail; - int val; - - /* Get number of 1s */ - //while (get_bit_MSB(in) == 1) i++; - i = get_one_bits_MSB(in); - - /* - * Val is - * i > 0: 2^(k+i-1) + k+i-1 bits - * i = 0: k bits - */ - if (i) { - tail = i + k-1; - val = 0; - while (tail) { - //val = val<<1; val |= get_bit_MSB(in); - GET_BIT_MSB(in, val); - tail--; - } - val += 1 << (i + k-1); - } else { - tail = k; - val = 0; - while (tail) { - //val = val<<1; val |= get_bit_MSB(in); - GET_BIT_MSB(in, val); - tail--; - } - } - - out_i[count] = val - c->subexp.offset; - } - - return 0; -} - -void cram_subexp_decode_free(cram_codec *c) { - if (c) - free(c); -} - -cram_codec *cram_subexp_decode_init(char *data, int size, - enum cram_external_type option, - int version) { - cram_codec *c; - char *cp = data; - - if (!(c = malloc(sizeof(*c)))) - return NULL; - - c->codec = E_SUBEXP; - c->decode = cram_subexp_decode; - c->free = cram_subexp_decode_free; - - cp += itf8_get(cp, &c->subexp.offset); - cp += itf8_get(cp, &c->subexp.k); - - if (cp - data != size) { - fprintf(stderr, "Malformed subexp header stream\n"); - free(c); - return NULL; - } - - return c; -} - -/* - * --------------------------------------------------------------------------- - * GAMMA - */ -int cram_gamma_decode(cram_slice *slice, cram_codec *c, cram_block *in, char *out, int *out_size) { - int32_t *out_i = (int32_t *)out; - int i, n; - - for (i = 0, n = *out_size; i < n; i++) { - int nz = 0; - int val; - //while (get_bit_MSB(in) == 0) nz++; - nz = get_zero_bits_MSB(in); - val = 1; - while (nz > 0) { - //val <<= 1; val |= get_bit_MSB(in); - GET_BIT_MSB(in, val); - nz--; - } - - out_i[i] = val - c->gamma.offset; - } - - return 0; -} - -void cram_gamma_decode_free(cram_codec *c) { - if (c) - free(c); -} - -cram_codec *cram_gamma_decode_init(char *data, int size, - enum cram_external_type option, - int version) { - cram_codec *c; - char *cp = data; - - if (!(c = malloc(sizeof(*c)))) - return NULL; - - c->codec = E_GAMMA; - c->decode = cram_gamma_decode; - c->free = cram_gamma_decode_free; - - cp += itf8_get(cp, &c->gamma.offset); - - if (cp - data != size) { - fprintf(stderr, "Malformed gamma header stream\n"); - free(c); - return NULL; - } - - return c; -} - -/* - * --------------------------------------------------------------------------- - * HUFFMAN - */ - -static int code_sort(const void *vp1, const void *vp2) { - const cram_huffman_code *c1 = (const cram_huffman_code *)vp1; - const cram_huffman_code *c2 = (const cram_huffman_code *)vp2; - - if (c1->len != c2->len) - return c1->len - c2->len; - else - return c1->symbol - c2->symbol; -} - -void cram_huffman_decode_free(cram_codec *c) { - if (!c) - return; - - if (c->huffman.codes) - free(c->huffman.codes); - free(c); -} - -int cram_huffman_decode_char0(cram_slice *slice, cram_codec *c, - cram_block *in, char *out, int *out_size) { - int i, n; - - /* Special case of 0 length codes */ - for (i = 0, n = *out_size; i < n; i++) { - out[i] = c->huffman.codes[0].symbol; - } - return 0; -} - -int cram_huffman_decode_char(cram_slice *slice, cram_codec *c, - cram_block *in, char *out, int *out_size) { - int i, n, ncodes = c->huffman.ncodes; - const cram_huffman_code * const codes = c->huffman.codes; - - for (i = 0, n = *out_size; i < n; i++) { - int idx = 0; - int val = 0, len = 0, last_len = 0; - - for (;;) { - int dlen = codes[idx].len - last_len; - if (dlen <= 0 || (in->alloc - in->byte)*8 + in->bit + 7 < dlen) - return -1; - - //val <<= dlen; - //val |= get_bits_MSB(in, dlen); - //last_len = (len += dlen); - - last_len = (len += dlen); - for (; dlen; dlen--) GET_BIT_MSB(in, val); - - idx = val - codes[idx].p; - if (idx >= ncodes || idx < 0) - return -1; - - if (codes[idx].code == val && codes[idx].len == len) { - out[i] = codes[idx].symbol; - break; - } - } - } - - return 0; -} - -int cram_huffman_decode_int0(cram_slice *slice, cram_codec *c, - cram_block *in, char *out, int *out_size) { - int32_t *out_i = (int32_t *)out; - int i, n; - const cram_huffman_code * const codes = c->huffman.codes; - - /* Special case of 0 length codes */ - for (i = 0, n = *out_size; i < n; i++) { - out_i[i] = codes[0].symbol; - } - return 0; -} - -int cram_huffman_decode_int(cram_slice *slice, cram_codec *c, - cram_block *in, char *out, int *out_size) { - int32_t *out_i = (int32_t *)out; - int i, n, ncodes = c->huffman.ncodes; - const cram_huffman_code * const codes = c->huffman.codes; - - for (i = 0, n = *out_size; i < n; i++) { - int idx = 0; - int val = 0, len = 0, last_len = 0; - - // Now one bit at a time for remaining checks - for (;;) { - int dlen = codes[idx].len - last_len; - if (dlen <= 0 || (in->alloc - in->byte)*8 + in->bit + 7 < dlen) - return -1; - - //val <<= dlen; - //val |= get_bits_MSB(in, dlen); - //last_len = (len += dlen); - - last_len = (len += dlen); - for (; dlen; dlen--) GET_BIT_MSB(in, val); - - idx = val - codes[idx].p; - if (idx >= ncodes || idx < 0) - return -1; - - if (codes[idx].code == val && codes[idx].len == len) { - out_i[i] = codes[idx].symbol; - break; - } - } - } - - return 0; -} - -/* - * Initialises a huffman decoder from an encoding data stream. - */ -cram_codec *cram_huffman_decode_init(char *data, int size, - enum cram_external_type option, - int version) { - int32_t ncodes, i, j; - char *cp = data, *data_end = &data[size]; - cram_codec *h; - cram_huffman_code *codes; - int32_t val, last_len, max_len = 0; - - cp += itf8_get(cp, &ncodes); - h = calloc(1, sizeof(*h)); - if (!h) - return NULL; - - h->free = cram_huffman_decode_free; - - h->huffman.ncodes = ncodes; - codes = h->huffman.codes = malloc(ncodes * sizeof(*codes)); - if (!codes) { - free(h); - return NULL; - } - - /* Read symbols and bit-lengths */ - for (i = 0; i < ncodes && cp < data_end; i++) { - cp += itf8_get(cp, &codes[i].symbol); - } - - if (cp >= data_end) { - fprintf(stderr, "Malformed huffman header stream\n"); - free(h); - return NULL; - } - cp += itf8_get(cp, &i); - if (i != ncodes) { - fprintf(stderr, "Malformed huffman header stream\n"); - free(h); - return NULL; - } - - if (ncodes == 0) { - /* NULL huffman stream */ - return h; - } - - for (i = 0; i < ncodes && cp < data_end; i++) { - cp += itf8_get(cp, &codes[i].len); - if (max_len < codes[i].len) - max_len = codes[i].len; - } - if (cp - data != size || max_len >= ncodes) { - fprintf(stderr, "Malformed huffman header stream\n"); - free(h); - return NULL; - } - - /* Sort by bit length and then by symbol value */ - qsort(codes, ncodes, sizeof(*codes), code_sort); - - /* Assign canonical codes */ - val = -1, last_len = 0; - for (i = 0; i < ncodes; i++) { - val++; - if (codes[i].len > last_len) { - while (codes[i].len > last_len) { - val <<= 1; - last_len++; - } - } - codes[i].code = val; - } - - /* - * Compute the next starting point, offset by the i'th value. - * For example if codes 10, 11, 12, 13 are 30, 31, 32, 33 then - * codes[10..13].p = 30 - 10. - */ - last_len = 0; - for (i = j = 0; i < ncodes; i++) { - if (codes[i].len > last_len) { - j = codes[i].code - i; - last_len = codes[i].len; - } - codes[i].p = j; - } - -// puts("==HUFF LEN=="); -// for (i = 0; i <= last_len+1; i++) { -// printf("len %d=%d prefix %d\n", i, h->huffman.lengths[i], h->huffman.prefix[i]); -// } -// puts("===HUFFMAN CODES==="); -// for (i = 0; i < ncodes; i++) { -// int j; -// printf("%d: %d %d %d ", i, codes[i].symbol, codes[i].len, codes[i].code); -// j = codes[i].len; -// while (j) { -// putchar(codes[i].code & (1 << --j) ? '1' : '0'); -// } -// printf(" %d\n", codes[i].code); -// } - - h->codec = E_HUFFMAN; - if (option == E_BYTE || option == E_BYTE_ARRAY) { - if (h->huffman.codes[0].len == 0) - h->decode = cram_huffman_decode_char0; - else - h->decode = cram_huffman_decode_char; - } else if (option == E_BYTE_ARRAY_BLOCK) { - abort(); - } else { - if (h->huffman.codes[0].len == 0) - h->decode = cram_huffman_decode_int0; - else - h->decode = cram_huffman_decode_int; - } - - return (cram_codec *)h; -} - -int cram_huffman_encode_char0(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - return 0; -} - -int cram_huffman_encode_char(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - int i, code, len, r = 0; - unsigned char *syms = (unsigned char *)in; - - do { - int sym = *syms++; - if (sym >= -1 && sym < MAX_HUFF) { - i = c->e_huffman.val2code[sym+1]; - assert(c->e_huffman.codes[i].symbol == sym); - code = c->e_huffman.codes[i].code; - len = c->e_huffman.codes[i].len; - } else { - /* Slow - use a lookup table for when sym < MAX_HUFF? */ - for (i = 0; i < c->e_huffman.nvals; i++) { - if (c->e_huffman.codes[i].symbol == sym) - break; - } - if (i == c->e_huffman.nvals) - return -1; - - code = c->e_huffman.codes[i].code; - len = c->e_huffman.codes[i].len; - } - - r |= store_bits_MSB(c->out, code, len); - } while (--in_size); - - return r; -} - -int cram_huffman_encode_int0(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - return 0; -} - -int cram_huffman_encode_int(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - int i, code, len, r = 0; - int *syms = (int *)in; - - do { - int sym = *syms++; - - if (sym >= -1 && sym < MAX_HUFF) { - i = c->e_huffman.val2code[sym+1]; - assert(c->e_huffman.codes[i].symbol == sym); - code = c->e_huffman.codes[i].code; - len = c->e_huffman.codes[i].len; - } else { - /* Slow - use a lookup table for when sym < MAX_HUFFMAN_SYM? */ - for (i = 0; i < c->e_huffman.nvals; i++) { - if (c->e_huffman.codes[i].symbol == sym) - break; - } - if (i == c->e_huffman.nvals) - return -1; - - code = c->e_huffman.codes[i].code; - len = c->e_huffman.codes[i].len; - } - - r |= store_bits_MSB(c->out, code, len); - } while (--in_size); - - return r; -} - -void cram_huffman_encode_free(cram_codec *c) { - if (!c) - return; - - if (c->e_huffman.codes) - free(c->e_huffman.codes); - free(c); -} - -/* - * Encodes a huffman tree. - * Returns number of bytes written. - */ -int cram_huffman_encode_store(cram_codec *c, cram_block *b, char *prefix, - int version) { - int i, len = 0; - cram_huffman_code *codes = c->e_huffman.codes; - /* - * Up to code length 127 means 2.5e+26 bytes of data required (worst - * case huffman tree needs symbols with freqs matching the Fibonacci - * series). So guaranteed 1 byte per code. - * - * Symbols themselves could be 5 bytes (eg -1 is 5 bytes in itf8). - * - * Therefore 6*ncodes + 5 + 5 + 1 + 5 is max memory - */ - char *tmp = malloc(6*c->e_huffman.nvals+16); - char *tp = tmp; - - if (!tmp) - return -1; - - if (prefix) { - size_t l = strlen(prefix); - BLOCK_APPEND(b, prefix, l); - len += l; - } - - tp += itf8_put(tp, c->e_huffman.nvals); - for (i = 0; i < c->e_huffman.nvals; i++) { - tp += itf8_put(tp, codes[i].symbol); - } - - tp += itf8_put(tp, c->e_huffman.nvals); - for (i = 0; i < c->e_huffman.nvals; i++) { - tp += itf8_put(tp, codes[i].len); - } - - len += itf8_put_blk(b, c->codec); - len += itf8_put_blk(b, tp-tmp); - BLOCK_APPEND(b, tmp, tp-tmp); - len += tp-tmp; - - free(tmp); - - return len; -} - -cram_codec *cram_huffman_encode_init(cram_stats *st, - enum cram_external_type option, - void *dat, - int version) { - int *vals = NULL, *freqs = NULL, vals_alloc = 0, *lens, code, len; - int nvals, i, ntot = 0, max_val = 0, min_val = INT_MAX, k; - cram_codec *c; - cram_huffman_code *codes; - - c = malloc(sizeof(*c)); - if (!c) - return NULL; - c->codec = E_HUFFMAN; - - /* Count number of unique symbols */ - for (nvals = i = 0; i < MAX_STAT_VAL; i++) { - if (!st->freqs[i]) - continue; - if (nvals >= vals_alloc) { - vals_alloc = vals_alloc ? vals_alloc*2 : 1024; - vals = realloc(vals, vals_alloc * sizeof(int)); - freqs = realloc(freqs, vals_alloc * sizeof(int)); - if (!vals || !freqs) { - if (vals) free(vals); - if (freqs) free(freqs); - free(c); - return NULL; - } - } - vals[nvals] = i; - freqs[nvals] = st->freqs[i]; - assert(st->freqs[i] > 0); - ntot += freqs[nvals]; - if (max_val < i) max_val = i; - if (min_val > i) min_val = i; - nvals++; - } - if (st->h) { - khint_t k; - - for (k = kh_begin(st->h); k != kh_end(st->h); k++) { - if (!kh_exist(st->h, k)) - continue; - if (nvals >= vals_alloc) { - vals_alloc = vals_alloc ? vals_alloc*2 : 1024; - vals = realloc(vals, vals_alloc * sizeof(int)); - freqs = realloc(freqs, vals_alloc * sizeof(int)); - if (!vals || !freqs) - return NULL; - } - vals[nvals]= kh_key(st->h, k); - freqs[nvals] = kh_val(st->h, k); - assert(freqs[nvals] > 0); - ntot += freqs[nvals]; - if (max_val < i) max_val = i; - if (min_val > i) min_val = i; - nvals++; - } - } - - assert(nvals > 0); - - freqs = realloc(freqs, 2*nvals*sizeof(*freqs)); - lens = calloc(2*nvals, sizeof(*lens)); - if (!lens || !freqs) - return NULL; - - /* Inefficient, use pointers to form chain so we can insert and maintain - * a sorted list? This is currently O(nvals^2) complexity. - */ - for (;;) { - int low1 = INT_MAX, low2 = INT_MAX; - int ind1 = 0, ind2 = 0; - for (i = 0; i < nvals; i++) { - if (freqs[i] < 0) - continue; - if (low1 > freqs[i]) - low2 = low1, ind2 = ind1, low1 = freqs[i], ind1 = i; - else if (low2 > freqs[i]) - low2 = freqs[i], ind2 = i; - } - if (low2 == INT_MAX) - break; - - freqs[nvals] = low1 + low2; - lens[ind1] = nvals; - lens[ind2] = nvals; - freqs[ind1] *= -1; - freqs[ind2] *= -1; - nvals++; - } - nvals = nvals/2+1; - - /* Assign lengths */ - for (i = 0; i < nvals; i++) { - int code_len = 0; - for (k = lens[i]; k; k = lens[k]) - code_len++; - lens[i] = code_len; - freqs[i] *= -1; - //fprintf(stderr, "%d / %d => %d\n", vals[i], freqs[i], lens[i]); - } - - - /* Sort, need in a struct */ - if (!(codes = malloc(nvals * sizeof(*codes)))) - return NULL; - for (i = 0; i < nvals; i++) { - codes[i].symbol = vals[i]; - codes[i].len = lens[i]; - } - qsort(codes, nvals, sizeof(*codes), code_sort); - - /* - * Generate canonical codes from lengths. - * Sort by length. - * Start with 0. - * Every new code of same length is +1. - * Every new code of new length is +1 then <<1 per extra length. - * - * /\ - * a/\ - * /\/\ - * bcd/\ - * ef - * - * a 1 0 - * b 3 4 (0+1)<<2 - * c 3 5 - * d 3 6 - * e 4 14 (6+1)<<1 - * f 5 15 - */ - code = 0; len = codes[0].len; - for (i = 0; i < nvals; i++) { - while (len != codes[i].len) { - code<<=1; - len++; - } - codes[i].code = code++; - - if (codes[i].symbol >= -1 && codes[i].symbol < MAX_HUFF) - c->e_huffman.val2code[codes[i].symbol+1] = i; - - //fprintf(stderr, "sym %d, code %d, len %d\n", - // codes[i].symbol, codes[i].code, codes[i].len); - } - - free(lens); - free(vals); - free(freqs); - - c->e_huffman.codes = codes; - c->e_huffman.nvals = nvals; - - c->free = cram_huffman_encode_free; - if (option == E_BYTE || option == E_BYTE_ARRAY) { - if (c->e_huffman.codes[0].len == 0) - c->encode = cram_huffman_encode_char0; - else - c->encode = cram_huffman_encode_char; - } else { - if (c->e_huffman.codes[0].len == 0) - c->encode = cram_huffman_encode_int0; - else - c->encode = cram_huffman_encode_int; - } - c->store = cram_huffman_encode_store; - - return c; -} - -/* - * --------------------------------------------------------------------------- - * BYTE_ARRAY_LEN - */ -int cram_byte_array_len_decode(cram_slice *slice, cram_codec *c, - cram_block *in, char *out, - int *out_size) { - /* Fetch length */ - int32_t len, one = 1; - - c->byte_array_len.len_codec->decode(slice, c->byte_array_len.len_codec, in, (char *)&len, &one); - //printf("ByteArray Len=%d\n", len); - - if (c->byte_array_len.value_codec) { - c->byte_array_len.value_codec->decode(slice, - c->byte_array_len.value_codec, - in, out, &len); - } else { - return -1; - } - - *out_size = len; - - return 0; -} - -void cram_byte_array_len_decode_free(cram_codec *c) { - if (!c) return; - - if (c->byte_array_len.len_codec) - c->byte_array_len.len_codec->free(c->byte_array_len.len_codec); - - if (c->byte_array_len.value_codec) - c->byte_array_len.value_codec->free(c->byte_array_len.value_codec); - - free(c); -} - -cram_codec *cram_byte_array_len_decode_init(char *data, int size, - enum cram_external_type option, - int version) { - cram_codec *c; - char *cp = data; - int32_t encoding; - int32_t sub_size; - - if (!(c = malloc(sizeof(*c)))) - return NULL; - - c->codec = E_BYTE_ARRAY_LEN; - c->decode = cram_byte_array_len_decode; - c->free = cram_byte_array_len_decode_free; - - cp += itf8_get(cp, &encoding); - cp += itf8_get(cp, &sub_size); - c->byte_array_len.len_codec = cram_decoder_init(encoding, cp, sub_size, - E_INT, version); - cp += sub_size; - - cp += itf8_get(cp, &encoding); - cp += itf8_get(cp, &sub_size); - c->byte_array_len.value_codec = cram_decoder_init(encoding, cp, sub_size, - option, version); - cp += sub_size; - - if (cp - data != size) { - fprintf(stderr, "Malformed byte_array_len header stream\n"); - free(c); - return NULL; - } - - return c; -} - -int cram_byte_array_len_encode(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - int32_t i32 = in_size; - int r = 0; - - r |= c->e_byte_array_len.len_codec->encode(slice, - c->e_byte_array_len.len_codec, - (char *)&i32, 1); - r |= c->e_byte_array_len.val_codec->encode(slice, - c->e_byte_array_len.val_codec, - in, in_size); - return r; -} - -void cram_byte_array_len_encode_free(cram_codec *c) { - if (!c) - return; - - if (c->e_byte_array_len.len_codec) - c->e_byte_array_len.len_codec->free(c->e_byte_array_len.len_codec); - - if (c->e_byte_array_len.val_codec) - c->e_byte_array_len.val_codec->free(c->e_byte_array_len.val_codec); - - free(c); -} - -int cram_byte_array_len_encode_store(cram_codec *c, cram_block *b, - char *prefix, int version) { - int len = 0, len2, len3; - cram_codec *tc; - cram_block *b_len, *b_val; - - if (prefix) { - size_t l = strlen(prefix); - BLOCK_APPEND(b, prefix, l); - len += l; - } - - tc = c->e_byte_array_len.len_codec; - b_len = cram_new_block(0, 0); - len2 = tc->store(tc, b_len, NULL, version); - - tc = c->e_byte_array_len.val_codec; - b_val = cram_new_block(0, 0); - len3 = tc->store(tc, b_val, NULL, version); - - len += itf8_put_blk(b, c->codec); - len += itf8_put_blk(b, len2+len3); - BLOCK_APPEND(b, BLOCK_DATA(b_len), BLOCK_SIZE(b_len)); - BLOCK_APPEND(b, BLOCK_DATA(b_val), BLOCK_SIZE(b_val)); - - cram_free_block(b_len); - cram_free_block(b_val); - - return len + len2 + len3; -} - -cram_codec *cram_byte_array_len_encode_init(cram_stats *st, - enum cram_external_type option, - void *dat, - int version) { - cram_codec *c; - cram_byte_array_len_encoder *e = (cram_byte_array_len_encoder *)dat; - - c = malloc(sizeof(*c)); - if (!c) - return NULL; - c->codec = E_BYTE_ARRAY_LEN; - c->free = cram_byte_array_len_encode_free; - c->encode = cram_byte_array_len_encode; - c->store = cram_byte_array_len_encode_store; - - c->e_byte_array_len.len_codec = cram_encoder_init(e->len_encoding, - NULL, E_INT, - e->len_dat, - version); - c->e_byte_array_len.val_codec = cram_encoder_init(e->val_encoding, - NULL, E_BYTE_ARRAY, - e->val_dat, - version); - - return c; -} - -/* - * --------------------------------------------------------------------------- - * BYTE_ARRAY_STOP - */ -static int cram_byte_array_stop_decode_char(cram_slice *slice, cram_codec *c, - cram_block *in, char *out, - int *out_size) { - int i; - cram_block *b = NULL; - char *cp, ch; - - if (slice->block_by_id) { - if (!(b = slice->block_by_id[c->byte_array_stop.content_id])) - return *out_size?-1:0; - } else { - for (i = 0; i < slice->hdr->num_blocks; i++) { - b = slice->block[i]; - if (b && b->content_type == EXTERNAL && - b->content_id == c->byte_array_stop.content_id) { - break; - } - } - if (i == slice->hdr->num_blocks || !b) - return -1; - } - - if (b->idx >= b->uncomp_size) - return -1; - - cp = (char *)b->data + b->idx; - while ((ch = *cp) != (char)c->byte_array_stop.stop) { - if (cp - (char *)b->data >= b->uncomp_size) - return -1; - *out++ = ch; - cp++; - } - - *out_size = cp - (char *)(b->data + b->idx); - b->idx = cp - (char *)b->data + 1; - - return 0; -} - -int cram_byte_array_stop_decode_block(cram_slice *slice, cram_codec *c, - cram_block *in, char *out_, - int *out_size) { - cram_block *b = NULL; - cram_block *out = (cram_block *)out_; - char *cp, *out_cp, *cp_end; - char stop; - - if (slice->block_by_id) { - if (!(b = slice->block_by_id[c->byte_array_stop.content_id])) - return *out_size?-1:0; - } else { - int i; - for (i = 0; i < slice->hdr->num_blocks; i++) { - b = slice->block[i]; - if (b && b->content_type == EXTERNAL && - b->content_id == c->byte_array_stop.content_id) { - break; - } - } - if (i == slice->hdr->num_blocks || !b) - return -1; - } - - if (b->idx >= b->uncomp_size) - return -1; - cp = (char *)b->data + b->idx; - cp_end = (char *)b->data + b->uncomp_size; - out_cp = (char *)BLOCK_END(out); - - stop = c->byte_array_stop.stop; - if (cp_end - cp < out->alloc - out->byte) { - while (*cp != stop && cp != cp_end) - *out_cp++ = *cp++; - BLOCK_SIZE(out) = out_cp - (char *)BLOCK_DATA(out); - } else { - char *cp_start; - for (cp_start = cp; *cp != stop && cp != cp_end; cp++) - ; - BLOCK_APPEND(out, cp_start, cp - cp_start); - BLOCK_GROW(out, cp - cp_start); - } - - *out_size = cp - (char *)(b->data + b->idx); - b->idx = cp - (char *)b->data + 1; - - return 0; -} - -void cram_byte_array_stop_decode_free(cram_codec *c) { - if (!c) return; - - free(c); -} - -cram_codec *cram_byte_array_stop_decode_init(char *data, int size, - enum cram_external_type option, - int version) { - cram_codec *c; - unsigned char *cp = (unsigned char *)data; - - if (!(c = malloc(sizeof(*c)))) - return NULL; - - c->codec = E_BYTE_ARRAY_STOP; - c->decode = (option == E_BYTE_ARRAY_BLOCK) - ? cram_byte_array_stop_decode_block - : cram_byte_array_stop_decode_char; - c->free = cram_byte_array_stop_decode_free; - - c->byte_array_stop.stop = *cp++; - if (CRAM_MAJOR_VERS(version) == 1) { - c->byte_array_stop.content_id = cp[0] + (cp[1]<<8) + (cp[2]<<16) - + (cp[3]<<24); - cp += 4; - } else { - cp += itf8_get(cp, &c->byte_array_stop.content_id); - } - - if ((char *)cp - data != size) { - fprintf(stderr, "Malformed byte_array_stop header stream\n"); - free(c); - return NULL; - } - - return c; -} - -int cram_byte_array_stop_encode(cram_slice *slice, cram_codec *c, - char *in, int in_size) { - BLOCK_APPEND(c->out, in, in_size); - BLOCK_APPEND_CHAR(c->out, c->e_byte_array_stop.stop); - return 0; -} - -void cram_byte_array_stop_encode_free(cram_codec *c) { - if (!c) - return; - free(c); -} - -int cram_byte_array_stop_encode_store(cram_codec *c, cram_block *b, - char *prefix, int version) { - int len = 0; - char buf[20], *cp = buf; - - if (prefix) { - size_t l = strlen(prefix); - BLOCK_APPEND(b, prefix, l); - len += l; - } - - cp += itf8_put(cp, c->codec); - - if (CRAM_MAJOR_VERS(version) == 1) { - cp += itf8_put(cp, 5); - *cp++ = c->e_byte_array_stop.stop; - *cp++ = (c->e_byte_array_stop.content_id >> 0) & 0xff; - *cp++ = (c->e_byte_array_stop.content_id >> 8) & 0xff; - *cp++ = (c->e_byte_array_stop.content_id >> 16) & 0xff; - *cp++ = (c->e_byte_array_stop.content_id >> 24) & 0xff; - } else { - cp += itf8_put(cp, 1 + itf8_size(c->e_byte_array_stop.content_id)); - *cp++ = c->e_byte_array_stop.stop; - cp += itf8_put(cp, c->e_byte_array_stop.content_id); - } - - BLOCK_APPEND(b, buf, cp-buf); - len += cp-buf; - - return len; -} - -cram_codec *cram_byte_array_stop_encode_init(cram_stats *st, - enum cram_external_type option, - void *dat, - int version) { - cram_codec *c; - - c = malloc(sizeof(*c)); - if (!c) - return NULL; - c->codec = E_BYTE_ARRAY_STOP; - c->free = cram_byte_array_stop_encode_free; - c->encode = cram_byte_array_stop_encode; - c->store = cram_byte_array_stop_encode_store; - - c->e_byte_array_stop.stop = ((int *)dat)[0]; - c->e_byte_array_stop.content_id = ((int *)dat)[1]; - - return c; -} - -/* - * --------------------------------------------------------------------------- - */ - -char *cram_encoding2str(enum cram_encoding t) { - switch (t) { - case E_NULL: return "NULL"; - case E_EXTERNAL: return "EXTERNAL"; - case E_GOLOMB: return "GOLOMB"; - case E_HUFFMAN: return "HUFFMAN"; - case E_BYTE_ARRAY_LEN: return "BYTE_ARRAY_LEN"; - case E_BYTE_ARRAY_STOP: return "BYTE_ARRAY_STOP"; - case E_BETA: return "BETA"; - case E_SUBEXP: return "SUBEXP"; - case E_GOLOMB_RICE: return "GOLOMB_RICE"; - case E_GAMMA: return "GAMMA"; - } - return "?"; -} - -static cram_codec *(*decode_init[])(char *data, - int size, - enum cram_external_type option, - int version) = { - NULL, - cram_external_decode_init, - NULL, - cram_huffman_decode_init, - cram_byte_array_len_decode_init, - cram_byte_array_stop_decode_init, - cram_beta_decode_init, - cram_subexp_decode_init, - NULL, - cram_gamma_decode_init, -}; - -cram_codec *cram_decoder_init(enum cram_encoding codec, - char *data, int size, - enum cram_external_type option, - int version) { - if (decode_init[codec]) { - return decode_init[codec](data, size, option, version); - } else { - fprintf(stderr, "Unimplemented codec of type %s\n", codec2str(codec)); - return NULL; - } -} - -static cram_codec *(*encode_init[])(cram_stats *stx, - enum cram_external_type option, - void *opt, - int version) = { - NULL, - cram_external_encode_init, - NULL, - cram_huffman_encode_init, - cram_byte_array_len_encode_init, - cram_byte_array_stop_encode_init, - cram_beta_encode_init, - NULL, //cram_subexp_encode_init, - NULL, - NULL, //cram_gamma_encode_init, -}; - -cram_codec *cram_encoder_init(enum cram_encoding codec, - cram_stats *st, - enum cram_external_type option, - void *dat, - int version) { - if (st && !st->nvals) - return NULL; - - if (encode_init[codec]) { - cram_codec *r; - if ((r = encode_init[codec](st, option, dat, version))) - r->out = NULL; - return r; - } else { - fprintf(stderr, "Unimplemented codec of type %s\n", codec2str(codec)); - abort(); - } -} - -/* - * Returns the content_id used by this codec, also in id2 if byte_array_len. - * Returns -1 for the CORE block and -2 for unneeded. - * id2 is only filled out for BYTE_ARRAY_LEN which uses 2 codecs. - */ -int cram_codec_to_id(cram_codec *c, int *id2) { - int bnum1, bnum2 = -2; - - switch (c->codec) { - case E_HUFFMAN: - bnum1 = c->huffman.ncodes == 1 ? -2 : -1; - break; - case E_GOLOMB: - case E_BETA: - case E_SUBEXP: - case E_GOLOMB_RICE: - case E_GAMMA: - bnum1 = -1; - break; - case E_EXTERNAL: - bnum1 = c->external.content_id; - break; - case E_BYTE_ARRAY_LEN: - bnum1 = cram_codec_to_id(c->byte_array_len.len_codec, NULL); - bnum2 = cram_codec_to_id(c->byte_array_len.value_codec, NULL); - break; - case E_BYTE_ARRAY_STOP: - bnum1 = c->byte_array_stop.content_id; - break; - case E_NULL: - bnum1 = -2; - break; - default: - fprintf(stderr, "Unknown codec type %d\n", c->codec); - bnum1 = -1; - } - - if (id2) - *id2 = bnum2; - return bnum1; -} diff --git a/htslib/cram/cram_codecs.h b/htslib/cram/cram_codecs.h deleted file mode 100644 index e047901..0000000 --- a/htslib/cram/cram_codecs.h +++ /dev/null @@ -1,165 +0,0 @@ -/* -Copyright (c) 2012-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _CRAM_ENCODINGS_H_ -#define _CRAM_ENCODINGS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -struct cram_codec; - -/* - * Slow but simple huffman decoder to start with. - * Read a bit at a time, keeping track of {length, value} - * eg. 1 1 0 1 => {1,1}, {2,3}, {3,6}, {4,13} - * - * Keep track of this through the huffman code table. - * For fast scanning we have an index of where the first code of length X - * appears. - */ -typedef struct { - int32_t symbol; - int32_t p; // next code start value, minus index to codes[] - int32_t code; - int32_t len; -} cram_huffman_code; - -typedef struct { - int ncodes; - cram_huffman_code *codes; -} cram_huffman_decoder; - -#define MAX_HUFF 128 -typedef struct { - cram_huffman_code *codes; - int nvals; - int val2code[MAX_HUFF+1]; // value to code lookup for small values -} cram_huffman_encoder; - -typedef struct { - int32_t offset; - int32_t nbits; -} cram_beta_decoder; - -typedef struct { - int32_t offset; -} cram_gamma_decoder; - -typedef struct { - int32_t offset; - int32_t k; -} cram_subexp_decoder; - -typedef struct { - int32_t content_id; - enum cram_external_type type; -} cram_external_decoder; - -typedef struct { - struct cram_codec *len_codec; - struct cram_codec *value_codec; -} cram_byte_array_len_decoder; - -typedef struct { - unsigned char stop; - int32_t content_id; -} cram_byte_array_stop_decoder; - -typedef struct { - enum cram_encoding len_encoding; - enum cram_encoding val_encoding; - void *len_dat; - void *val_dat; - struct cram_codec *len_codec; - struct cram_codec *val_codec; -} cram_byte_array_len_encoder; - -/* - * A generic codec structure. - */ -typedef struct cram_codec { - enum cram_encoding codec; - cram_block *out; - void (*free)(struct cram_codec *codec); - int (*decode)(cram_slice *slice, struct cram_codec *codec, - cram_block *in, char *out, int *out_size); - int (*encode)(cram_slice *slice, struct cram_codec *codec, - char *in, int in_size); - int (*store)(struct cram_codec *codec, cram_block *b, char *prefix, - int version); - union { - cram_huffman_decoder huffman; - cram_external_decoder external; - cram_beta_decoder beta; - cram_gamma_decoder gamma; - cram_subexp_decoder subexp; - cram_byte_array_len_decoder byte_array_len; - cram_byte_array_stop_decoder byte_array_stop; - - cram_huffman_encoder e_huffman; - cram_external_decoder e_external; - cram_byte_array_stop_decoder e_byte_array_stop; - cram_byte_array_len_encoder e_byte_array_len; - cram_beta_decoder e_beta; - }; -} cram_codec; - -char *cram_encoding2str(enum cram_encoding t); - -cram_codec *cram_decoder_init(enum cram_encoding codec, char *data, int size, - enum cram_external_type option, - int version); -cram_codec *cram_encoder_init(enum cram_encoding codec, cram_stats *st, - enum cram_external_type option, void *dat, - int version); - -//int cram_decode(void *codes, char *in, int in_size, char *out, int *out_size); -//void cram_decoder_free(void *codes); - -//#define GET_BIT_MSB(b,v) (void)(v<<=1, v|=(b->data[b->byte] >> b->bit)&1, (--b->bit == -1) && (b->bit = 7, b->byte++)) - -#define GET_BIT_MSB(b,v) (void)(v<<=1, v|=(b->data[b->byte] >> b->bit)&1, b->byte += (--b->bit<0), b->bit&=7) - -/* - * Returns the content_id used by this codec, also in id2 if byte_array_len. - * Returns -1 for the CORE block and -2 for unneeded. - * id2 is only filled out for BYTE_ARRAY_LEN which uses 2 codecs. - */ -int cram_codec_to_id(cram_codec *c, int *id2); - -#ifdef __cplusplus -} -#endif - -#endif /* _CRAM_ENCODINGS_H_ */ diff --git a/htslib/cram/cram_decode.c b/htslib/cram/cram_decode.c deleted file mode 100644 index 1d6281e..0000000 --- a/htslib/cram/cram_decode.c +++ /dev/null @@ -1,2775 +0,0 @@ -/* -Copyright (c) 2012-2014 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * - In-memory decoding of CRAM data structures. - * - Iterator for reading CRAM record by record. - */ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cram/cram.h" -#include "cram/os.h" -#include "cram/md5.h" - -//Whether CIGAR has just M or uses = and X to indicate match and mismatch -//#define USE_X - -/* ---------------------------------------------------------------------- - * CRAM compression headers - */ - -/* - * Decodes the Tag Dictionary record in the preservation map - * Updates the cram compression header. - * - * Returns number of bytes decoded on success - * -1 on failure - */ -int cram_decode_TD(char *cp, cram_block_compression_hdr *h) { - char *op = cp; - unsigned char *dat; - cram_block *b; - int32_t blk_size; - int nTL, i, sz; - - if (!(b = cram_new_block(0, 0))) - return -1; - h->TD_blk = b; - - /* Decode */ - cp += itf8_get(cp, &blk_size); - if (!blk_size) { - h->nTL = 0; - h->TL = NULL; - cram_free_block(b); - return cp - op; - } - - BLOCK_APPEND(b, cp, blk_size); - cp += blk_size; - sz = cp - op; - - // Force nul termination if missing - if (BLOCK_DATA(b)[BLOCK_SIZE(b)-1]) - BLOCK_APPEND_CHAR(b, '\0'); - - /* Set up TL lookup table */ - dat = BLOCK_DATA(b); - - // Count - for (nTL = i = 0; i < BLOCK_SIZE(b); i++) { - nTL++; - while (dat[i]) - i++; - } - - // Copy - h->nTL = nTL; - if (!(h->TL = calloc(h->nTL, sizeof(unsigned char *)))) - return -1; - for (nTL = i = 0; i < BLOCK_SIZE(b); i++) { - h->TL[nTL++] = &dat[i]; - while (dat[i]) - i++; - } - - return sz; -} - -/* - * Decodes a CRAM block compression header. - * Returns header ptr on success - * NULL on failure - */ -cram_block_compression_hdr *cram_decode_compression_header(cram_fd *fd, - cram_block *b) { - char *cp, *cp_copy; - cram_block_compression_hdr *hdr = calloc(1, sizeof(*hdr)); - int i; - int32_t map_size, map_count; - - if (!hdr) - return NULL; - - if (b->method != RAW) { - if (cram_uncompress_block(b)) { - free(hdr); - return NULL; - } - } - - cp = (char *)b->data; - - if (CRAM_MAJOR_VERS(fd->version) == 1) { - cp += itf8_get(cp, &hdr->ref_seq_id); - cp += itf8_get(cp, &hdr->ref_seq_start); - cp += itf8_get(cp, &hdr->ref_seq_span); - cp += itf8_get(cp, &hdr->num_records); - cp += itf8_get(cp, &hdr->num_landmarks); - if (!(hdr->landmark = malloc(hdr->num_landmarks * sizeof(int32_t)))) { - free(hdr); - return NULL; - } - for (i = 0; i < hdr->num_landmarks; i++) { - cp += itf8_get(cp, &hdr->landmark[i]); - } - } - - hdr->preservation_map = kh_init(map); - - memset(hdr->rec_encoding_map, 0, - CRAM_MAP_HASH * sizeof(hdr->rec_encoding_map[0])); - memset(hdr->tag_encoding_map, 0, - CRAM_MAP_HASH * sizeof(hdr->tag_encoding_map[0])); - - if (!hdr->preservation_map) { - cram_free_compression_header(hdr); - return NULL; - } - - /* Initialise defaults for preservation map */ - hdr->mapped_qs_included = 0; - hdr->unmapped_qs_included = 0; - hdr->unmapped_placed = 0; - hdr->qs_included = 0; - hdr->read_names_included = 0; - hdr->AP_delta = 1; - memcpy(hdr->substitution_matrix, "CGTNAGTNACTNACGNACGT", 20); - - /* Preservation map */ - cp += itf8_get(cp, &map_size); cp_copy = cp; - cp += itf8_get(cp, &map_count); - for (i = 0; i < map_count; i++) { - pmap_t hd; - khint_t k; - int r; - - cp += 2; - switch(CRAM_KEY(cp[-2],cp[-1])) { - case CRAM_KEY('M','I'): - hd.i = *cp++; - k = kh_put(map, hdr->preservation_map, "MI", &r); - if (-1 == r) { - cram_free_compression_header(hdr); - return NULL; - } - - kh_val(hdr->preservation_map, k) = hd; - hdr->mapped_qs_included = hd.i; - break; - - case CRAM_KEY('U','I'): - hd.i = *cp++; - k = kh_put(map, hdr->preservation_map, "UI", &r); - if (-1 == r) { - cram_free_compression_header(hdr); - return NULL; - } - - kh_val(hdr->preservation_map, k) = hd; - hdr->unmapped_qs_included = hd.i; - break; - - case CRAM_KEY('P','I'): - hd.i = *cp++; - k = kh_put(map, hdr->preservation_map, "PI", &r); - if (-1 == r) { - cram_free_compression_header(hdr); - return NULL; - } - - kh_val(hdr->preservation_map, k) = hd; - hdr->unmapped_placed = hd.i; - break; - - case CRAM_KEY('R','N'): - hd.i = *cp++; - k = kh_put(map, hdr->preservation_map, "RN", &r); - if (-1 == r) { - cram_free_compression_header(hdr); - return NULL; - } - - kh_val(hdr->preservation_map, k) = hd; - hdr->read_names_included = hd.i; - break; - - case CRAM_KEY('A','P'): - hd.i = *cp++; - k = kh_put(map, hdr->preservation_map, "AP", &r); - if (-1 == r) { - cram_free_compression_header(hdr); - return NULL; - } - - kh_val(hdr->preservation_map, k) = hd; - hdr->AP_delta = hd.i; - break; - - case CRAM_KEY('R','R'): - hd.i = *cp++; - k = kh_put(map, hdr->preservation_map, "RR", &r); - if (-1 == r) { - cram_free_compression_header(hdr); - return NULL; - } - - kh_val(hdr->preservation_map, k) = hd; - fd->no_ref = !hd.i; - break; - - case CRAM_KEY('S','M'): - hdr->substitution_matrix[0][(cp[0]>>6)&3] = 'C'; - hdr->substitution_matrix[0][(cp[0]>>4)&3] = 'G'; - hdr->substitution_matrix[0][(cp[0]>>2)&3] = 'T'; - hdr->substitution_matrix[0][(cp[0]>>0)&3] = 'N'; - - hdr->substitution_matrix[1][(cp[1]>>6)&3] = 'A'; - hdr->substitution_matrix[1][(cp[1]>>4)&3] = 'G'; - hdr->substitution_matrix[1][(cp[1]>>2)&3] = 'T'; - hdr->substitution_matrix[1][(cp[1]>>0)&3] = 'N'; - - hdr->substitution_matrix[2][(cp[2]>>6)&3] = 'A'; - hdr->substitution_matrix[2][(cp[2]>>4)&3] = 'C'; - hdr->substitution_matrix[2][(cp[2]>>2)&3] = 'T'; - hdr->substitution_matrix[2][(cp[2]>>0)&3] = 'N'; - - hdr->substitution_matrix[3][(cp[3]>>6)&3] = 'A'; - hdr->substitution_matrix[3][(cp[3]>>4)&3] = 'C'; - hdr->substitution_matrix[3][(cp[3]>>2)&3] = 'G'; - hdr->substitution_matrix[3][(cp[3]>>0)&3] = 'N'; - - hdr->substitution_matrix[4][(cp[4]>>6)&3] = 'A'; - hdr->substitution_matrix[4][(cp[4]>>4)&3] = 'C'; - hdr->substitution_matrix[4][(cp[4]>>2)&3] = 'G'; - hdr->substitution_matrix[4][(cp[4]>>0)&3] = 'T'; - - hd.p = cp; - cp += 5; - - k = kh_put(map, hdr->preservation_map, "SM", &r); - if (-1 == r) { - cram_free_compression_header(hdr); - return NULL; - } - kh_val(hdr->preservation_map, k) = hd; - break; - - case CRAM_KEY('T','D'): { - int sz = cram_decode_TD(cp, hdr); // tag dictionary - if (sz < 0) { - cram_free_compression_header(hdr); - return NULL; - } - - hd.p = cp; - cp += sz; - - k = kh_put(map, hdr->preservation_map, "TD", &r); - if (-1 == r) { - cram_free_compression_header(hdr); - return NULL; - } - kh_val(hdr->preservation_map, k) = hd; - break; - } - - default: - fprintf(stderr, "Unrecognised preservation map key %c%c\n", - cp[-2], cp[-1]); - // guess byte; - cp++; - break; - } - } - if (cp - cp_copy != map_size) { - cram_free_compression_header(hdr); - return NULL; - } - - /* Record encoding map */ - cp += itf8_get(cp, &map_size); cp_copy = cp; - cp += itf8_get(cp, &map_count); - for (i = 0; i < map_count; i++) { - char *key = cp; - int32_t encoding; - int32_t size; - cram_map *m = malloc(sizeof(*m)); // FIXME: use pooled_alloc - - if (!m) { - cram_free_compression_header(hdr); - return NULL; - } - - cp += 2; - cp += itf8_get(cp, &encoding); - cp += itf8_get(cp, &size); - - // Fill out cram_map purely for cram_dump to dump out. - m->key = (key[0]<<8)|key[1]; - m->encoding = encoding; - m->size = size; - m->offset = cp - (char *)b->data; - m->codec = NULL; - - if (m->encoding == E_NULL) - continue; - - //printf("%s codes for %.2s\n", cram_encoding2str(encoding), key); - - /* - * For CRAM1.0 CF and BF are Byte and not Int. - * Practically speaking it makes no difference unless we have a - * 1.0 format file that stores these in EXTERNAL as only then - * does Byte vs Int matter. - * - * Neither this C code nor Java reference implementations did this, - * so we gloss over it and treat them as int. - */ - - if (key[0] == 'B' && key[1] == 'F') { - if (!(hdr->codecs[DS_BF] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'C' && key[1] == 'F') { - if (!(hdr->codecs[DS_CF] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'R' && key[1] == 'I') { - if (!(hdr->codecs[DS_RI] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'R' && key[1] == 'L') { - if (!(hdr->codecs[DS_RL] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'A' && key[1] == 'P') { - if (!(hdr->codecs[DS_AP] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'R' && key[1] == 'G') { - if (!(hdr->codecs[DS_RG] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'M' && key[1] == 'F') { - if (!(hdr->codecs[DS_MF] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'N' && key[1] == 'S') { - if (!(hdr->codecs[DS_NS] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'N' && key[1] == 'P') { - if (!(hdr->codecs[DS_NP] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'T' && key[1] == 'S') { - if (!(hdr->codecs[DS_TS] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'N' && key[1] == 'F') { - if (!(hdr->codecs[DS_NF] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'T' && key[1] == 'C') { - if (!(hdr->codecs[DS_TC] = cram_decoder_init(encoding, cp, size, - E_BYTE, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'T' && key[1] == 'N') { - if (!(hdr->codecs[DS_TN] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'F' && key[1] == 'N') { - if (!(hdr->codecs[DS_FN] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'F' && key[1] == 'C') { - if (!(hdr->codecs[DS_FC] = cram_decoder_init(encoding, cp, size, - E_BYTE, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'F' && key[1] == 'P') { - if (!(hdr->codecs[DS_FP] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'B' && key[1] == 'S') { - if (!(hdr->codecs[DS_BS] = cram_decoder_init(encoding, cp, size, - E_BYTE, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'I' && key[1] == 'N') { - if (!(hdr->codecs[DS_IN] = cram_decoder_init(encoding, cp, size, - E_BYTE_ARRAY, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'S' && key[1] == 'C') { - if (!(hdr->codecs[DS_SC] = cram_decoder_init(encoding, cp, size, - E_BYTE_ARRAY, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'D' && key[1] == 'L') { - if (!(hdr->codecs[DS_DL] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'B' && key[1] == 'A') { - if (!(hdr->codecs[DS_BA] = cram_decoder_init(encoding, cp, size, - E_BYTE, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'B' && key[1] == 'B') { - if (!(hdr->codecs[DS_BB] = cram_decoder_init(encoding, cp, size, - E_BYTE_ARRAY, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'R' && key[1] == 'S') { - if (!(hdr->codecs[DS_RS] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'P' && key[1] == 'D') { - if (!(hdr->codecs[DS_PD] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'H' && key[1] == 'C') { - if (!(hdr->codecs[DS_HC] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'M' && key[1] == 'Q') { - if (!(hdr->codecs[DS_MQ] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'R' && key[1] == 'N') { - if (!(hdr->codecs[DS_RN] = cram_decoder_init(encoding, cp, size, - E_BYTE_ARRAY_BLOCK, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'Q' && key[1] == 'S') { - if (!(hdr->codecs[DS_QS] = cram_decoder_init(encoding, cp, size, - E_BYTE, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'Q' && key[1] == 'Q') { - if (!(hdr->codecs[DS_QQ] = cram_decoder_init(encoding, cp, size, - E_BYTE_ARRAY, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'T' && key[1] == 'L') { - if (!(hdr->codecs[DS_TL] = cram_decoder_init(encoding, cp, size, - E_INT, - fd->version))) { - cram_free_compression_header(hdr); - return NULL; - } - } else if (key[0] == 'T' && key[1] == 'M') { - } else if (key[0] == 'T' && key[1] == 'V') { - } else - fprintf(stderr, "Unrecognised key: %.2s\n", key); - - cp += size; - - m->next = hdr->rec_encoding_map[CRAM_MAP(key[0], key[1])]; - hdr->rec_encoding_map[CRAM_MAP(key[0], key[1])] = m; - } - if (cp - cp_copy != map_size) { - cram_free_compression_header(hdr); - return NULL; - } - - /* Tag encoding map */ - cp += itf8_get(cp, &map_size); cp_copy = cp; - cp += itf8_get(cp, &map_count); - for (i = 0; i < map_count; i++) { - int32_t encoding; - int32_t size; - cram_map *m = malloc(sizeof(*m)); // FIXME: use pooled_alloc - char *key = cp+1; - - if (!m) { - cram_free_compression_header(hdr); - return NULL; - } - - m->key = (key[0]<<16)|(key[1]<<8)|key[2]; - - cp += 4; // Strictly ITF8, but this suffices - cp += itf8_get(cp, &encoding); - cp += itf8_get(cp, &size); - - m->encoding = encoding; - m->size = size; - m->offset = cp - (char *)b->data; - if (!(m->codec = cram_decoder_init(encoding, cp, size, - E_BYTE_ARRAY_BLOCK, fd->version))) { - cram_free_compression_header(hdr); - free(m); - return NULL; - } - - cp += size; - - m->next = hdr->tag_encoding_map[CRAM_MAP(key[0],key[1])]; - hdr->tag_encoding_map[CRAM_MAP(key[0],key[1])] = m; - } - if (cp - cp_copy != map_size) { - cram_free_compression_header(hdr); - return NULL; - } - - return hdr; -} - -/* - * Note we also need to scan through the record encoding map to - * see which data series share the same block, either external or - * CORE. For example if we need the BF data series but MQ and CF - * are also encoded in the same block then we need to add those in - * as a dependency in order to correctly decode BF. - * - * Returns 0 on success - * -1 on failure - */ -int cram_dependent_data_series(cram_fd *fd, - cram_block_compression_hdr *hdr, - cram_slice *s) { - int *block_used; - int core_used = 0; - int i; - static int i_to_id[] = { - DS_BF, DS_AP, DS_FP, DS_RL, DS_DL, DS_NF, DS_BA, DS_QS, - DS_FC, DS_FN, DS_BS, DS_IN, DS_RG, DS_MQ, DS_TL, DS_RN, - DS_NS, DS_NP, DS_TS, DS_MF, DS_CF, DS_RI, DS_RS, DS_PD, - DS_HC, DS_SC, DS_BB, DS_QQ, - }; - uint32_t orig_ds; - - /* - * Set the data_series bit field based on fd->required_fields - * contents. - */ - if (fd->required_fields && fd->required_fields != INT_MAX) { - hdr->data_series = 0; - - if (fd->required_fields & SAM_QNAME) - hdr->data_series |= CRAM_RN; - - if (fd->required_fields & SAM_FLAG) - hdr->data_series |= CRAM_BF; - - if (fd->required_fields & SAM_RNAME) - hdr->data_series |= CRAM_RI | CRAM_BF; - - if (fd->required_fields & SAM_POS) - hdr->data_series |= CRAM_AP | CRAM_BF; - - if (fd->required_fields & SAM_MAPQ) - hdr->data_series |= CRAM_MQ; - - if (fd->required_fields & SAM_CIGAR) - hdr->data_series |= CRAM_CIGAR; - - if (fd->required_fields & SAM_RNEXT) - hdr->data_series |= CRAM_CF | CRAM_NF | CRAM_RI | CRAM_NS |CRAM_BF; - - if (fd->required_fields & SAM_PNEXT) - hdr->data_series |= CRAM_CF | CRAM_NF | CRAM_AP | CRAM_NP | CRAM_BF; - - if (fd->required_fields & SAM_TLEN) - hdr->data_series |= CRAM_CF | CRAM_NF | CRAM_AP | CRAM_TS | - CRAM_BF | CRAM_MF | CRAM_RI | CRAM_CIGAR; - - if (fd->required_fields & SAM_SEQ) - hdr->data_series |= CRAM_SEQ; - - if (!(fd->required_fields & SAM_AUX)) - // No easy way to get MD/NM without other tags at present - fd->decode_md = 0; - - if (fd->required_fields & SAM_QUAL) - hdr->data_series |= CRAM_SEQ; - - if (fd->required_fields & SAM_AUX) - hdr->data_series |= CRAM_RG | CRAM_TL | CRAM_aux; - - if (fd->required_fields & SAM_RGAUX) - hdr->data_series |= CRAM_RG | CRAM_BF; - - // Always uncompress CORE block - if (cram_uncompress_block(s->block[0])) - return -1; - } else { - hdr->data_series = CRAM_ALL; - - for (i = 0; i < s->hdr->num_blocks; i++) { - if (cram_uncompress_block(s->block[i])) - return -1; - } - - return 0; - } - - block_used = calloc(s->hdr->num_blocks+1, sizeof(int)); - if (!block_used) - return -1; - - do { - /* - * Also set data_series based on code prerequisites. Eg if we need - * CRAM_QS then we also need to know CRAM_RL so we know how long it - * is, or if we need FC/FP then we also need FN (number of features). - * - * It's not reciprocal though. We may be needing to decode FN - * but have no need to decode FC, FP and cigar ops. - */ - if (hdr->data_series & CRAM_RS) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_PD) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_HC) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_QS) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_IN) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_SC) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_BS) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_DL) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_BA) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_BB) hdr->data_series |= CRAM_FC|CRAM_FP; - if (hdr->data_series & CRAM_QQ) hdr->data_series |= CRAM_FC|CRAM_FP; - - // cram_decode_seq() needs seq[] array - if (hdr->data_series & (CRAM_SEQ|CRAM_CIGAR)) hdr->data_series |= CRAM_RL; - - if (hdr->data_series & CRAM_FP) hdr->data_series |= CRAM_FC; - if (hdr->data_series & CRAM_FC) hdr->data_series |= CRAM_FN; - if (hdr->data_series & CRAM_aux) hdr->data_series |= CRAM_TL; - if (hdr->data_series & CRAM_MF) hdr->data_series |= CRAM_CF; - if (hdr->data_series & CRAM_MQ) hdr->data_series |= CRAM_BF; - if (hdr->data_series & CRAM_BS) hdr->data_series |= CRAM_RI; - if (hdr->data_series & (CRAM_MF |CRAM_NS |CRAM_NP |CRAM_TS |CRAM_NF)) - hdr->data_series |= CRAM_CF; - if (!hdr->read_names_included && hdr->data_series & CRAM_RN) - hdr->data_series |= CRAM_CF | CRAM_NF; - if (hdr->data_series & (CRAM_BA | CRAM_QS | CRAM_BB | CRAM_QQ)) - hdr->data_series |= CRAM_BF | CRAM_CF | CRAM_RL; - - orig_ds = hdr->data_series; - - // Find which blocks are in use. - for (i = 0; i < sizeof(i_to_id)/sizeof(*i_to_id); i++) { - int bnum1, bnum2, j; - cram_codec *c = hdr->codecs[i_to_id[i]]; - - if (!(hdr->data_series & (1<hdr->num_blocks; j++) { - if (s->block[j]->content_type == EXTERNAL && - s->block[j]->content_id == bnum1) { - block_used[j] = 1; - if (cram_uncompress_block(s->block[j])) { - free(block_used); - return -1; - } - } - } - break; - } - - if (bnum2 == -2 || bnum1 == bnum2) - break; - - bnum1 = bnum2; // 2nd pass - } - } - - // Tags too - if ((fd->required_fields & SAM_AUX) || - (hdr->data_series & CRAM_aux)) { - for (i = 0; i < CRAM_MAP_HASH; i++) { - int bnum1, bnum2, j; - cram_map *m = hdr->tag_encoding_map[i]; - - while (m) { - cram_codec *c = m->codec; - if (!c) - continue; - - bnum1 = cram_codec_to_id(c, &bnum2); - - for (;;) { - switch (bnum1) { - case -2: - break; - - case -1: - core_used = 1; - break; - - default: - for (j = 0; j < s->hdr->num_blocks; j++) { - if (s->block[j]->content_type == EXTERNAL && - s->block[j]->content_id == bnum1) { - block_used[j] = 1; - if (cram_uncompress_block(s->block[j])) { - free(block_used); - return -1; - } - } - } - break; - } - - if (bnum2 == -2 || bnum1 == bnum2) - break; - - bnum1 = bnum2; // 2nd pass - } - - m = m->next; - } - } - } - - // We now know which blocks are in used, so repeat and find - // which other data series need to be added. - for (i = 0; i < sizeof(i_to_id)/sizeof(*i_to_id); i++) { - int bnum1, bnum2, j; - cram_codec *c = hdr->codecs[i_to_id[i]]; - - if (!c) - continue; - - bnum1 = cram_codec_to_id(c, &bnum2); - - for (;;) { - switch (bnum1) { - case -2: - break; - - case -1: - if (core_used) { - //printf(" + data series %08x:\n", 1<data_series |= 1<hdr->num_blocks; j++) { - if (s->block[j]->content_type == EXTERNAL && - s->block[j]->content_id == bnum1) { - if (block_used[j]) { - //printf(" + data series %08x:\n", 1<data_series |= 1<tag_encoding_map[i]; - - while (m) { - cram_codec *c = m->codec; - if (!c) - continue; - - bnum1 = cram_codec_to_id(c, &bnum2); - - for (;;) { - switch (bnum1) { - case -2: - break; - - case -1: - //printf(" + data series %08x:\n", CRAM_aux); - hdr->data_series |= CRAM_aux; - break; - - default: - for (j = 0; j < s->hdr->num_blocks; j++) { - if (s->block[j]->content_type && - s->block[j]->content_id == bnum1) { - if (block_used[j]) { - //printf(" + data series %08x:\n", - // CRAM_aux); - hdr->data_series |= CRAM_aux; - } - } - } - break; - } - - if (bnum2 == -2 || bnum1 == bnum2) - break; - - bnum1 = bnum2; // 2nd pass - } - - m = m->next; - } - } - } while (orig_ds != hdr->data_series); - - free(block_used); - return 0; -} - -/* ---------------------------------------------------------------------- - * CRAM slices - */ - -/* - * Decodes a CRAM (un)mapped slice header block. - * Returns slice header ptr on success - * NULL on failure - */ -cram_block_slice_hdr *cram_decode_slice_header(cram_fd *fd, cram_block *b) { - cram_block_slice_hdr *hdr; - char *cp = (char *)b->data; - int i; - - if (b->content_type != MAPPED_SLICE && - b->content_type != UNMAPPED_SLICE) - return NULL; - - if (!(hdr = calloc(1, sizeof(*hdr)))) - return NULL; - - hdr->content_type = b->content_type; - - if (b->content_type == MAPPED_SLICE) { - cp += itf8_get(cp, &hdr->ref_seq_id); - cp += itf8_get(cp, &hdr->ref_seq_start); - cp += itf8_get(cp, &hdr->ref_seq_span); - } - cp += itf8_get(cp, &hdr->num_records); - hdr->record_counter = 0; - if (CRAM_MAJOR_VERS(fd->version) == 2) { - int32_t i32; - cp += itf8_get(cp, &i32); - hdr->record_counter = i32; - } else if (CRAM_MAJOR_VERS(fd->version) >= 3) { - cp += ltf8_get(cp, &hdr->record_counter); - } - - cp += itf8_get(cp, &hdr->num_blocks); - - cp += itf8_get(cp, &hdr->num_content_ids); - hdr->block_content_ids = malloc(hdr->num_content_ids * sizeof(int32_t)); - if (!hdr->block_content_ids) { - free(hdr); - return NULL; - } - - for (i = 0; i < hdr->num_content_ids; i++) { - cp += itf8_get(cp, &hdr->block_content_ids[i]); - } - - if (b->content_type == MAPPED_SLICE) { - cp += itf8_get(cp, &hdr->ref_base_id); - } - - if (CRAM_MAJOR_VERS(fd->version) != 1) { - memcpy(hdr->md5, cp, 16); - } else { - memset(hdr->md5, 0, 16); - } - - return hdr; -} - - -#if 0 -/* Returns the number of bits set in val; it the highest bit used */ -static int nbits(int v) { - static const int MultiplyDeBruijnBitPosition[32] = { - 1, 10, 2, 11, 14, 22, 3, 30, 12, 15, 17, 19, 23, 26, 4, 31, - 9, 13, 21, 29, 16, 18, 25, 8, 20, 28, 24, 7, 27, 6, 5, 32 - }; - - v |= v >> 1; // first up to set all bits 1 after the first 1 */ - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - - // DeBruijn magic to find top bit - return MultiplyDeBruijnBitPosition[(uint32_t)(v * 0x07C4ACDDU) >> 27]; -} -#endif - -#if 0 -static int sort_freqs(const void *vp1, const void *vp2) { - const int i1 = *(const int *)vp1; - const int i2 = *(const int *)vp2; - return i1-i2; -} -#endif - -/* ---------------------------------------------------------------------- - * Primary CRAM sequence decoder - */ - -/* - * Internal part of cram_decode_slice(). - * Generates the sequence, quality and cigar components. - */ -static int cram_decode_seq(cram_fd *fd, cram_container *c, cram_slice *s, - cram_block *blk, cram_record *cr, SAM_hdr *bfd, - int cf, char *seq, char *qual) { - int prev_pos = 0, f, r = 0, out_sz = 1; - int seq_pos = 1; - int cig_len = 0, ref_pos = cr->apos; - int32_t fn, i32; - enum cigar_op cig_op = BAM_CMATCH; - uint32_t *cigar = s->cigar; - uint32_t ncigar = s->ncigar; - uint32_t cigar_alloc = s->cigar_alloc; - uint32_t nm = 0, md_dist = 0; - int orig_aux = 0; - int decode_md = fd->decode_md && s->ref; - uint32_t ds = c->comp_hdr->data_series; - - if ((ds & CRAM_QS) && !(cf & CRAM_FLAG_PRESERVE_QUAL_SCORES)) { - memset(qual, 30, cr->len); - } - - if (decode_md) { - orig_aux = BLOCK_SIZE(s->aux_blk); - BLOCK_APPEND(s->aux_blk, "MDZ", 3); - } - - if (ds & CRAM_FN) { - if (!c->comp_hdr->codecs[DS_FN]) return -1; - r |= c->comp_hdr->codecs[DS_FN]->decode(s,c->comp_hdr->codecs[DS_FN], - blk, (char *)&fn, &out_sz); - } else { - fn = 0; - } - - ref_pos--; // count from 0 - cr->cigar = ncigar; - - if (!(ds & (CRAM_FC | CRAM_FP))) - goto skip_cigar; - - for (f = 0; f < fn; f++) { - int32_t pos = 0; - char op; - - if (ncigar+2 >= cigar_alloc) { - cigar_alloc = cigar_alloc ? cigar_alloc*2 : 1024; - s->cigar = cigar; - if (!(cigar = realloc(cigar, cigar_alloc * sizeof(*cigar)))) - return -1; - } - - if (ds & CRAM_FC) { - if (!c->comp_hdr->codecs[DS_FC]) return -1; - r |= c->comp_hdr->codecs[DS_FC]->decode(s, - c->comp_hdr->codecs[DS_FC], - blk, - &op, &out_sz); - } - - if (!(ds & CRAM_FP)) - continue; - - if (!c->comp_hdr->codecs[DS_FP]) return -1; - r |= c->comp_hdr->codecs[DS_FP]->decode(s, - c->comp_hdr->codecs[DS_FP], - blk, - (char *)&pos, &out_sz); - pos += prev_pos; - - if (pos > seq_pos) { - if (pos > cr->len+1) - return -1; - - if (s->ref && cr->ref_id >= 0) { - if (ref_pos + pos - seq_pos > bfd->ref[cr->ref_id].len) { - static int whinged = 0; - if (!whinged) - fprintf(stderr, "Ref pos outside of ref " - "sequence boundary\n"); - whinged = 1; - } else { - memcpy(&seq[seq_pos-1], &s->ref[ref_pos - s->ref_start +1], - pos - seq_pos); - } - } -#ifdef USE_X - if (cig_len && cig_op != BAM_CBASE_MATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - cig_op = BAM_CBASE_MATCH; -#else - if (cig_len && cig_op != BAM_CMATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - cig_op = BAM_CMATCH; -#endif - cig_len += pos - seq_pos; - ref_pos += pos - seq_pos; - md_dist += pos - seq_pos; - seq_pos = pos; - } - - prev_pos = pos; - - if (!(ds & CRAM_FC)) - goto skip_cigar; - - if (!(ds & CRAM_FC)) - continue; - - switch(op) { - case 'S': { // soft clip: IN - int32_t out_sz2 = 1; - - if (cig_len) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - if (ds & CRAM_IN) { - switch (CRAM_MAJOR_VERS(fd->version)) { - case 1: - r |= c->comp_hdr->codecs[DS_IN] - ? c->comp_hdr->codecs[DS_IN] - ->decode(s, c->comp_hdr->codecs[DS_IN], - blk, &seq[pos-1], &out_sz2) - : (seq[pos-1] = 'N', out_sz2 = 1, 0); - break; - - case 2: - default: - r |= c->comp_hdr->codecs[DS_SC] - ? c->comp_hdr->codecs[DS_SC] - ->decode(s, c->comp_hdr->codecs[DS_SC], - blk, &seq[pos-1], &out_sz2) - : (seq[pos-1] = 'N', out_sz2 = 1, 0); - break; - -// default: -// r |= c->comp_hdr->codecs[DS_BB] -// ? c->comp_hdr->codecs[DS_BB] -// ->decode(s, c->comp_hdr->codecs[DS_BB], -// blk, &seq[pos-1], &out_sz2) -// : (seq[pos-1] = 'N', out_sz2 = 1, 0); - } - cigar[ncigar++] = (out_sz2<<4) + BAM_CSOFT_CLIP; - cig_op = BAM_CSOFT_CLIP; - seq_pos += out_sz2; - } - break; - } - - case 'X': { // Substitution; BS - unsigned char base; -#ifdef USE_X - if (cig_len && cig_op != BAM_CBASE_MISMATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - if (ds & CRAM_BS) { - if (!c->comp_hdr->codecs[DS_BS]) return -1; - r |= c->comp_hdr->codecs[DS_BS] - ->decode(s, c->comp_hdr->codecs[DS_BS], blk, - (char *)&base, &out_sz); - seq[pos-1] = 'N'; // FIXME look up BS=base value - } - cig_op = BAM_CBASE_MISMATCH; -#else - int ref_base; - if (cig_len && cig_op != BAM_CMATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - if (ds & CRAM_BS) { - if (!c->comp_hdr->codecs[DS_BS]) return -1; - r |= c->comp_hdr->codecs[DS_BS] - ->decode(s, c->comp_hdr->codecs[DS_BS], blk, - (char *)&base, &out_sz); - if (ref_pos >= bfd->ref[cr->ref_id].len || !s->ref) { - seq[pos-1] = 'N'; - } else { - ref_base = fd->L1[(uc)s->ref[ref_pos - s->ref_start +1]]; - seq[pos-1] = c->comp_hdr-> - substitution_matrix[ref_base][base]; - if (decode_md) { - BLOCK_APPEND_UINT(s->aux_blk, md_dist); - BLOCK_APPEND_CHAR(s->aux_blk, - s->ref[ref_pos-s->ref_start +1]); - md_dist = 0; - } - } - } - cig_op = BAM_CMATCH; -#endif - nm++; - cig_len++; - seq_pos++; - ref_pos++; - break; - } - - case 'D': { // Deletion; DL - if (cig_len && cig_op != BAM_CDEL) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - if (ds & CRAM_DL) { - if (!c->comp_hdr->codecs[DS_DL]) return -1; - r |= c->comp_hdr->codecs[DS_DL] - ->decode(s, c->comp_hdr->codecs[DS_DL], blk, - (char *)&i32, &out_sz); - if (decode_md) { - BLOCK_APPEND_UINT(s->aux_blk, md_dist); - BLOCK_APPEND_CHAR(s->aux_blk, '^'); - BLOCK_APPEND(s->aux_blk, - &s->ref[ref_pos - s->ref_start +1], - i32); - md_dist = 0; - } - cig_op = BAM_CDEL; - cig_len += i32; - ref_pos += i32; - nm += i32; - //printf(" %d: DL = %d (ret %d)\n", f, i32, r); - } - break; - } - - case 'I': { // Insertion (several bases); IN - int32_t out_sz2 = 1; - - if (cig_len && cig_op != BAM_CINS) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - - if (ds & CRAM_IN) { - if (!c->comp_hdr->codecs[DS_IN]) return -1; - r |= c->comp_hdr->codecs[DS_IN] - ->decode(s, c->comp_hdr->codecs[DS_IN], blk, - &seq[pos-1], &out_sz2); - cig_op = BAM_CINS; - cig_len += out_sz2; - seq_pos += out_sz2; - nm += out_sz2; - //printf(" %d: IN(I) = %.*s (ret %d, out_sz %d)\n", f, out_sz2, dat, r, out_sz2); - } - break; - } - - case 'i': { // Insertion (single base); BA - if (cig_len && cig_op != BAM_CINS) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - if (ds & CRAM_BA) { - if (!c->comp_hdr->codecs[DS_BA]) return -1; - r |= c->comp_hdr->codecs[DS_BA] - ->decode(s, c->comp_hdr->codecs[DS_BA], blk, - (char *)&seq[pos-1], &out_sz); - } - cig_op = BAM_CINS; - cig_len++; - seq_pos++; - nm++; - break; - } - - case 'b': { // Several bases - int32_t len = 1; - - if (cig_len && cig_op != BAM_CMATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - - if (ds & CRAM_BB) { - if (!c->comp_hdr->codecs[DS_BB]) return -1; - r |= c->comp_hdr->codecs[DS_BB] - ->decode(s, c->comp_hdr->codecs[DS_BB], blk, - (char *)&seq[pos-1], &len); - } - - cig_op = BAM_CMATCH; - - cig_len+=len; - seq_pos+=len; - ref_pos+=len; - //prev_pos+=len; - break; - } - - case 'q': { // Several quality values - int32_t len = 1; - - if (cig_len && cig_op != BAM_CMATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - - if (ds & CRAM_QQ) { - if (!c->comp_hdr->codecs[DS_QQ]) return -1; - r |= c->comp_hdr->codecs[DS_QQ] - ->decode(s, c->comp_hdr->codecs[DS_QQ], blk, - (char *)&qual[pos-1], &len); - } - - cig_op = BAM_CMATCH; - - cig_len+=len; - seq_pos+=len; - ref_pos+=len; - //prev_pos+=len; - break; - } - - case 'B': { // Read base; BA, QS -#ifdef USE_X - if (cig_len && cig_op != BAM_CBASE_MISMATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } -#else - if (cig_len && cig_op != BAM_CMATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } -#endif - if (ds & CRAM_BA) { - if (!c->comp_hdr->codecs[DS_BA]) return -1; - r |= c->comp_hdr->codecs[DS_BA] - ->decode(s, c->comp_hdr->codecs[DS_BA], blk, - (char *)&seq[pos-1], &out_sz); - } - if (ds & CRAM_QS) { - if (!c->comp_hdr->codecs[DS_QS]) return -1; - r |= c->comp_hdr->codecs[DS_QS] - ->decode(s, c->comp_hdr->codecs[DS_QS], blk, - (char *)&qual[pos-1], &out_sz); - } -#ifdef USE_X - cig_op = BAM_CBASE_MISMATCH; -#else - cig_op = BAM_CMATCH; -#endif - cig_len++; - seq_pos++; - ref_pos++; - //printf(" %d: BA/QS(B) = %c/%d (ret %d)\n", f, i32, qc, r); - break; - } - - case 'Q': { // Quality score; QS - if (ds & CRAM_QS) { - if (!c->comp_hdr->codecs[DS_QS]) return -1; - r |= c->comp_hdr->codecs[DS_QS] - ->decode(s, c->comp_hdr->codecs[DS_QS], blk, - (char *)&qual[pos-1], &out_sz); - //printf(" %d: QS = %d (ret %d)\n", f, qc, r); - } - break; - } - - case 'H': { // hard clip; HC - if (cig_len && cig_op != BAM_CHARD_CLIP) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - if (ds & CRAM_HC) { - if (!c->comp_hdr->codecs[DS_HC]) return -1; - r |= c->comp_hdr->codecs[DS_HC] - ->decode(s, c->comp_hdr->codecs[DS_HC], blk, - (char *)&i32, &out_sz); - cig_op = BAM_CHARD_CLIP; - cig_len += i32; - nm += i32; - } - break; - } - - case 'P': { // padding; PD - if (cig_len && cig_op != BAM_CPAD) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - if (ds & CRAM_PD) { - if (!c->comp_hdr->codecs[DS_PD]) return -1; - r |= c->comp_hdr->codecs[DS_PD] - ->decode(s, c->comp_hdr->codecs[DS_PD], blk, - (char *)&i32, &out_sz); - cig_op = BAM_CPAD; - cig_len += i32; - nm += i32; - } - break; - } - - case 'N': { // Ref skip; RS - if (cig_len && cig_op != BAM_CREF_SKIP) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - if (ds & CRAM_RS) { - if (!c->comp_hdr->codecs[DS_RS]) return -1; - r |= c->comp_hdr->codecs[DS_RS] - ->decode(s, c->comp_hdr->codecs[DS_RS], blk, - (char *)&i32, &out_sz); - cig_op = BAM_CREF_SKIP; - cig_len += i32; - ref_pos += i32; - nm += i32; - } - break; - } - - default: - abort(); - } - } - - if (!(ds & CRAM_FC)) - goto skip_cigar; - - /* An implement match op for any unaccounted for bases */ - if ((ds & CRAM_FN) && cr->len >= seq_pos) { - if (s->ref) { - if (ref_pos + cr->len - seq_pos + 1 > bfd->ref[cr->ref_id].len) { - static int whinged = 0; - if (!whinged) - fprintf(stderr, "Ref pos outside of ref sequence boundary\n"); - whinged = 1; - } else { - memcpy(&seq[seq_pos-1], &s->ref[ref_pos - s->ref_start +1], - cr->len - seq_pos + 1); - ref_pos += cr->len - seq_pos + 1; - md_dist += cr->len - seq_pos + 1; - } - } - - if (ncigar+1 >= cigar_alloc) { - cigar_alloc = cigar_alloc ? cigar_alloc*2 : 1024; - s->cigar = cigar; - if (!(cigar = realloc(cigar, cigar_alloc * sizeof(*cigar)))) - return -1; - } -#ifdef USE_X - if (cig_len && cig_op != BAM_CBASE_MATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - cig_op = BAM_CBASE_MATCH; -#else - if (cig_len && cig_op != BAM_CMATCH) { - cigar[ncigar++] = (cig_len<<4) + cig_op; - cig_len = 0; - } - cig_op = BAM_CMATCH; -#endif - cig_len += cr->len - seq_pos+1; - } - - skip_cigar: - - if ((ds & CRAM_FN) && decode_md) { - BLOCK_APPEND_UINT(s->aux_blk, md_dist); - } - - if (cig_len) { - if (ncigar >= cigar_alloc) { - cigar_alloc = cigar_alloc ? cigar_alloc*2 : 1024; - s->cigar = cigar; - if (!(cigar = realloc(cigar, cigar_alloc * sizeof(*cigar)))) - return -1; - } - - cigar[ncigar++] = (cig_len<<4) + cig_op; - } - - cr->ncigar = ncigar - cr->cigar; - cr->aend = ref_pos; - - //printf("2: %.*s %d .. %d\n", cr->name_len, DSTRING_STR(name_ds) + cr->name, cr->apos, ref_pos); - - if (ds & CRAM_MQ) { - if (!c->comp_hdr->codecs[DS_MQ]) return -1; - r |= c->comp_hdr->codecs[DS_MQ] - ->decode(s, c->comp_hdr->codecs[DS_MQ], blk, - (char *)&cr->mqual, &out_sz); - } else { - cr->mqual = 40; - } - - if ((ds & CRAM_QS) && (cf & CRAM_FLAG_PRESERVE_QUAL_SCORES)) { - int32_t out_sz2 = cr->len; - - if (ds & CRAM_QS) { - if (!c->comp_hdr->codecs[DS_QS]) return -1; - r |= c->comp_hdr->codecs[DS_QS] - ->decode(s, c->comp_hdr->codecs[DS_QS], blk, - qual, &out_sz2); - } - } - - s->cigar = cigar; - s->cigar_alloc = cigar_alloc; - s->ncigar = ncigar; - - if (decode_md) { - char buf[7]; - BLOCK_APPEND_CHAR(s->aux_blk, '\0'); // null terminate MD:Z: - cr->aux_size += BLOCK_SIZE(s->aux_blk) - orig_aux; - buf[0] = 'N'; buf[1] = 'M'; buf[2] = 'I'; - buf[3] = (nm>> 0) & 0xff; - buf[4] = (nm>> 8) & 0xff; - buf[5] = (nm>>16) & 0xff; - buf[6] = (nm>>24) & 0xff; - BLOCK_APPEND(s->aux_blk, buf, 7); - cr->aux_size += 7; - } - - return r; -} - -/* - * Quick and simple hash lookup for cram_map arrays - */ -static cram_map *map_find(cram_map **map, unsigned char *key, int id) { - cram_map *m; - - m = map[CRAM_MAP(key[0],key[1])]; - while (m && m->key != id) - m= m->next; - - return m; -} - -//#define map_find(M,K,I) M[CRAM_MAP(K[0],K[1])];while (m && m->key != I);m= m->next - - -static int cram_decode_aux_1_0(cram_container *c, cram_slice *s, - cram_block *blk, cram_record *cr) { - int i, r = 0, out_sz = 1; - unsigned char ntags; - - if (!c->comp_hdr->codecs[DS_TC]) return -1; - r |= c->comp_hdr->codecs[DS_TC]->decode(s, c->comp_hdr->codecs[DS_TC], blk, - (char *)&ntags, &out_sz); - cr->ntags = ntags; - - //printf("TC=%d\n", cr->ntags); - cr->aux_size = 0; - cr->aux = BLOCK_SIZE(s->aux_blk); - - for (i = 0; i < cr->ntags; i++) { - int32_t id, out_sz = 1; - unsigned char tag_data[3]; - cram_map *m; - - //printf("Tag %d/%d\n", i+1, cr->ntags); - if (!c->comp_hdr->codecs[DS_TN]) return -1; - r |= c->comp_hdr->codecs[DS_TN]->decode(s, c->comp_hdr->codecs[DS_TN], - blk, (char *)&id, &out_sz); - if (out_sz == 3) { - tag_data[0] = ((char *)&id)[0]; - tag_data[1] = ((char *)&id)[1]; - tag_data[2] = ((char *)&id)[2]; - } else { - tag_data[0] = (id>>16) & 0xff; - tag_data[1] = (id>>8) & 0xff; - tag_data[2] = id & 0xff; - } - - m = map_find(c->comp_hdr->tag_encoding_map, tag_data, id); - if (!m) - return -1; - BLOCK_APPEND(s->aux_blk, (char *)tag_data, 3); - - if (!m->codec) return -1; - r |= m->codec->decode(s, m->codec, blk, (char *)s->aux_blk, &out_sz); - - cr->aux_size += out_sz + 3; - } - - return r; -} - -static int cram_decode_aux(cram_container *c, cram_slice *s, - cram_block *blk, cram_record *cr) { - int i, r = 0, out_sz = 1; - int32_t TL = 0; - unsigned char *TN; - uint32_t ds = c->comp_hdr->data_series; - - if (!(ds & (CRAM_TL|CRAM_aux))) { - cr->aux = 0; - cr->aux_size = 0; - return 0; - } - - if (!c->comp_hdr->codecs[DS_TL]) return -1; - r |= c->comp_hdr->codecs[DS_TL]->decode(s, c->comp_hdr->codecs[DS_TL], blk, - (char *)&TL, &out_sz); - if (r || TL < 0 || TL >= c->comp_hdr->nTL) - return -1; - - TN = c->comp_hdr->TL[TL]; - cr->ntags = strlen((char *)TN)/3; // optimise to remove strlen - - //printf("TC=%d\n", cr->ntags); - cr->aux_size = 0; - cr->aux = BLOCK_SIZE(s->aux_blk); - - if (!(ds & CRAM_aux)) - return 0; - - for (i = 0; i < cr->ntags; i++) { - int32_t id, out_sz = 1; - unsigned char tag_data[3]; - cram_map *m; - - //printf("Tag %d/%d\n", i+1, cr->ntags); - tag_data[0] = *TN++; - tag_data[1] = *TN++; - tag_data[2] = *TN++; - id = (tag_data[0]<<16) | (tag_data[1]<<8) | tag_data[2]; - - m = map_find(c->comp_hdr->tag_encoding_map, tag_data, id); - if (!m) - return -1; - BLOCK_APPEND(s->aux_blk, (char *)tag_data, 3); - - if (!m->codec) return -1; - r |= m->codec->decode(s, m->codec, blk, (char *)s->aux_blk, &out_sz); - cr->aux_size += out_sz + 3; - } - - return r; -} - -/* Resolve mate pair cross-references between recs within this slice */ -static void cram_decode_slice_xref(cram_slice *s, int required_fields) { - int rec; - - if (!(required_fields & (SAM_RNEXT | SAM_PNEXT | SAM_TLEN))) { - for (rec = 0; rec < s->hdr->num_records; rec++) { - cram_record *cr = &s->crecs[rec]; - - cr->tlen = 0; - cr->mate_pos = 0; - cr->mate_ref_id = -1; - } - - return; - } - - for (rec = 0; rec < s->hdr->num_records; rec++) { - cram_record *cr = &s->crecs[rec]; - - if (cr->mate_line >= 0) { - if (cr->mate_line < s->hdr->num_records) { - /* - * On the first read, loop through computing lengths. - * It's not perfect as we have one slice per reference so we - * cannot detect when TLEN should be zero due to seqs that - * map to multiple references. - * - * We also cannot set tlen correct when it spans a slice for - * other reasons. This may make tlen too small. Should we - * fix this by forcing TLEN to be stored verbatim in such cases? - * - * Or do we just admit defeat and output 0 for tlen? It's the - * safe option... - */ - if (cr->tlen == INT_MIN) { - int id1 = rec, id2 = rec; - int aleft = cr->apos, aright = cr->aend; - int tlen; - int ref = cr->ref_id; - - // number of segments starting at the same point. - int left_cnt = 0; - - do { - if (aleft > s->crecs[id2].apos) - aleft = s->crecs[id2].apos, left_cnt = 1; - else if (aleft == s->crecs[id2].apos) - left_cnt++; - if (aright < s->crecs[id2].aend) - aright = s->crecs[id2].aend; - if (s->crecs[id2].mate_line == -1) { - s->crecs[id2].mate_line = rec; - break; - } - assert(s->crecs[id2].mate_line > id2); - id2 = s->crecs[id2].mate_line; - - if (s->crecs[id2].ref_id != ref) - ref = -1; - } while (id2 != id1); - - if (ref != -1) { - tlen = aright - aleft + 1; - id1 = id2 = rec; - - /* - * When we have two seqs with identical start and - * end coordinates, set +/- tlen based on 1st/last - * bit flags instead, as a tie breaker. - */ - if (s->crecs[id2].apos == aleft) { - if (left_cnt == 1 || - (s->crecs[id2].flags & BAM_FREAD1)) - s->crecs[id2].tlen = tlen; - else - s->crecs[id2].tlen = -tlen; - } else { - s->crecs[id2].tlen = -tlen; - } - - id2 = s->crecs[id2].mate_line; - while (id2 != id1) { - if (s->crecs[id2].apos == aleft) { - if (left_cnt == 1 || - (s->crecs[id2].flags & BAM_FREAD1)) - s->crecs[id2].tlen = tlen; - else - s->crecs[id2].tlen = -tlen; - } else { - s->crecs[id2].tlen = -tlen; - } - id2 = s->crecs[id2].mate_line; - } - } else { - id1 = id2 = rec; - - s->crecs[id2].tlen = 0; - id2 = s->crecs[id2].mate_line; - while (id2 != id1) { - s->crecs[id2].tlen = 0; - id2 = s->crecs[id2].mate_line; - } - } - } - - cr->mate_pos = s->crecs[cr->mate_line].apos; - cr->mate_ref_id = s->crecs[cr->mate_line].ref_id; - - // paired - cr->flags |= BAM_FPAIRED; - - // set mate unmapped if needed - if (s->crecs[cr->mate_line].flags & BAM_FUNMAP) { - cr->flags |= BAM_FMUNMAP; - cr->tlen = 0; - } - if (cr->flags & BAM_FUNMAP) { - cr->tlen = 0; - } - - // set mate reversed if needed - if (s->crecs[cr->mate_line].flags & BAM_FREVERSE) - cr->flags |= BAM_FMREVERSE; - } else { - fprintf(stderr, "Mate line out of bounds: %d vs [0, %d]\n", - cr->mate_line, s->hdr->num_records-1); - } - - /* FIXME: construct read names here too if needed */ - } else { - if (cr->mate_flags & CRAM_M_REVERSE) { - cr->flags |= BAM_FPAIRED | BAM_FMREVERSE; - } - if (cr->mate_flags & CRAM_M_UNMAP) { - cr->flags |= BAM_FMUNMAP; - //cr->mate_ref_id = -1; - } - if (!(cr->flags & BAM_FPAIRED)) - cr->mate_ref_id = -1; - } - - if (cr->tlen == INT_MIN) - cr->tlen = 0; // Just incase - } -} - -static char *md5_print(unsigned char *md5, char *out) { - int i; - for (i = 0; i < 16; i++) { - out[i*2+0] = "0123456789abcdef"[md5[i]>>4]; - out[i*2+1] = "0123456789abcdef"[md5[i]&15]; - } - out[32] = 0; - - return out; -} - -/* - * Decode an entire slice from container blocks. Fills out s->crecs[] array. - * Returns 0 on success - * -1 on failure - */ -int cram_decode_slice(cram_fd *fd, cram_container *c, cram_slice *s, - SAM_hdr *bfd) { - cram_block *blk = s->block[0]; - int32_t bf, ref_id; - unsigned char cf; - int out_sz, r = 0; - int rec; - char *seq = NULL, *qual = NULL; - int unknown_rg = -1; - int embed_ref; - char **refs = NULL; - uint32_t ds; - - if (cram_dependent_data_series(fd, c->comp_hdr, s) != 0) - return -1; - - ds = c->comp_hdr->data_series; - - blk->bit = 7; // MSB first - - /* Look for unknown RG, added as last by Java CRAM? */ - if (bfd->nrg > 0 && - !strcmp(bfd->rg[bfd->nrg-1].name, "UNKNOWN")) - unknown_rg = bfd->nrg-1; - - if (blk->content_type != CORE) - return -1; - - if (s->crecs) - free(s->crecs); - if (!(s->crecs = malloc(s->hdr->num_records * sizeof(*s->crecs)))) - return -1; - - ref_id = s->hdr->ref_seq_id; - embed_ref = s->hdr->ref_base_id >= 0 ? 1 : 0; - - if (ref_id >= 0) { - if (embed_ref) { - cram_block *b; - if (s->hdr->ref_base_id < 0) { - fprintf(stderr, "No reference specified and " - "no embedded reference is available.\n"); - return -1; - } - if (!s->block_by_id || - !(b = s->block_by_id[s->hdr->ref_base_id])) - return -1; - cram_uncompress_block(b); - s->ref = (char *)BLOCK_DATA(b); - s->ref_start = s->hdr->ref_seq_start; - s->ref_end = s->hdr->ref_seq_start + s->hdr->ref_seq_span-1; - } else if (!fd->no_ref) { - //// Avoid Java cramtools bug by loading entire reference seq - //s->ref = cram_get_ref(fd, s->hdr->ref_seq_id, 1, 0); - //s->ref_start = 1; - - if (fd->required_fields & SAM_SEQ) - s->ref = - cram_get_ref(fd, s->hdr->ref_seq_id, - s->hdr->ref_seq_start, - s->hdr->ref_seq_start + s->hdr->ref_seq_span -1); - s->ref_start = s->hdr->ref_seq_start; - s->ref_end = s->hdr->ref_seq_start + s->hdr->ref_seq_span-1; - - /* Sanity check */ - if (s->ref_start < 0) { - fprintf(stderr, "Slice starts before base 1.\n"); - s->ref_start = 0; - } - pthread_mutex_lock(&fd->ref_lock); - pthread_mutex_lock(&fd->refs->lock); - if ((fd->required_fields & SAM_SEQ) && - s->ref_end > fd->refs->ref_id[ref_id]->length) { - fprintf(stderr, "Slice ends beyond reference end.\n"); - s->ref_end = fd->refs->ref_id[ref_id]->length; - } - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - } - } - - if ((fd->required_fields & SAM_SEQ) && - s->ref == NULL && s->hdr->ref_seq_id >= 0 && !fd->no_ref) { - fprintf(stderr, "Unable to fetch reference #%d %d..%d\n", - s->hdr->ref_seq_id, s->hdr->ref_seq_start, - s->hdr->ref_seq_start + s->hdr->ref_seq_span-1); - return -1; - } - - if (CRAM_MAJOR_VERS(fd->version) != 1 - && (fd->required_fields & SAM_SEQ) - && s->hdr->ref_seq_id >= 0 - && !fd->ignore_md5 - && memcmp(s->hdr->md5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16)) { - MD5_CTX md5; - unsigned char digest[16]; - - if (s->ref && s->hdr->ref_seq_id >= 0) { - int start, len; - - if (s->hdr->ref_seq_start >= s->ref_start) { - start = s->hdr->ref_seq_start - s->ref_start; - } else { - fprintf(stderr, "Slice starts before base 1.\n"); - start = 0; - } - - if (s->hdr->ref_seq_span <= s->ref_end - s->ref_start + 1) { - len = s->hdr->ref_seq_span; - } else { - fprintf(stderr, "Slice ends beyond reference end.\n"); - len = s->ref_end - s->ref_start + 1; - } - - MD5_Init(&md5); - if (start + len > s->ref_end - s->ref_start + 1) - len = s->ref_end - s->ref_start + 1 - start; - if (len >= 0) - MD5_Update(&md5, s->ref + start, len); - MD5_Final(digest, &md5); - } else if (!s->ref && s->hdr->ref_base_id >= 0) { - cram_block *b; - if (s->block_by_id && (b = s->block_by_id[s->hdr->ref_base_id])) { - MD5_Init(&md5); - MD5_Update(&md5, b->data, b->uncomp_size); - MD5_Final(digest, &md5); - } - } - - if ((!s->ref && s->hdr->ref_base_id < 0) - || memcmp(digest, s->hdr->md5, 16) != 0) { - char M[33]; - fprintf(stderr, "ERROR: md5sum reference mismatch for ref " - "%d pos %d..%d\n", ref_id, s->ref_start, s->ref_end); - fprintf(stderr, "CRAM: %s\n", md5_print(s->hdr->md5, M)); - fprintf(stderr, "Ref : %s\n", md5_print(digest, M)); - return -1; - } - } - - if (ref_id == -2) { - pthread_mutex_lock(&fd->ref_lock); - pthread_mutex_lock(&fd->refs->lock); - refs = calloc(fd->refs->nref, sizeof(char *)); - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - if (!refs) - return -1; - } - - for (rec = 0; rec < s->hdr->num_records; rec++) { - cram_record *cr = &s->crecs[rec]; - - //fprintf(stderr, "Decode seq %d, %d/%d\n", rec, blk->byte, blk->bit); - - cr->s = s; - - out_sz = 1; /* decode 1 item */ - if (ds & CRAM_BF) { - if (!c->comp_hdr->codecs[DS_BF]) return -1; - r |= c->comp_hdr->codecs[DS_BF] - ->decode(s, c->comp_hdr->codecs[DS_BF], blk, - (char *)&bf, &out_sz); - if (bf < 0 || - bf >= sizeof(fd->bam_flag_swap)/sizeof(*fd->bam_flag_swap)) - return -1; - bf = fd->bam_flag_swap[bf]; - cr->flags = bf; - } else { - cr->flags = bf = 0x4; // unmapped - } - - if (ds & CRAM_CF) { - if (CRAM_MAJOR_VERS(fd->version) == 1) { - /* CF is byte in 1.0, int32 in 2.0 */ - if (!c->comp_hdr->codecs[DS_CF]) return -1; - r |= c->comp_hdr->codecs[DS_CF] - ->decode(s, c->comp_hdr->codecs[DS_CF], blk, - (char *)&cf, &out_sz); - cr->cram_flags = cf; - } else { - if (!c->comp_hdr->codecs[DS_CF]) return -1; - r |= c->comp_hdr->codecs[DS_CF] - ->decode(s, c->comp_hdr->codecs[DS_CF], blk, - (char *)&cr->cram_flags, - &out_sz); - cf = cr->cram_flags; - } - } - - if (CRAM_MAJOR_VERS(fd->version) != 1 && ref_id == -2) { - if (ds & CRAM_RI) { - if (!c->comp_hdr->codecs[DS_RI]) return -1; - r |= c->comp_hdr->codecs[DS_RI] - ->decode(s, c->comp_hdr->codecs[DS_RI], blk, - (char *)&cr->ref_id, &out_sz); - if ((fd->required_fields & (SAM_SEQ|SAM_TLEN)) - && cr->ref_id >= 0) { - if (!fd->no_ref) { - if (!refs[cr->ref_id]) - refs[cr->ref_id] = cram_get_ref(fd, cr->ref_id, - 1, 0); - s->ref = refs[cr->ref_id]; - } - s->ref_start = 1; - pthread_mutex_lock(&fd->ref_lock); - pthread_mutex_lock(&fd->refs->lock); - s->ref_end = fd->refs->ref_id[cr->ref_id]->length; - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - } - } else { - cr->ref_id = 0; - } - } else { - cr->ref_id = ref_id; // Forced constant in CRAM 1.0 - } - - - if (ds & CRAM_RL) { - if (!c->comp_hdr->codecs[DS_RL]) return -1; - r |= c->comp_hdr->codecs[DS_RL] - ->decode(s, c->comp_hdr->codecs[DS_RL], blk, - (char *)&cr->len, &out_sz); - } - - if (ds & CRAM_AP) { - if (!c->comp_hdr->codecs[DS_AP]) return -1; - r |= c->comp_hdr->codecs[DS_AP] - ->decode(s, c->comp_hdr->codecs[DS_AP], blk, - (char *)&cr->apos, &out_sz); - if (c->comp_hdr->AP_delta) - cr->apos += s->last_apos; - s->last_apos= cr->apos; - } else { - cr->apos = c->ref_seq_start; - } - - if (ds & CRAM_RG) { - if (!c->comp_hdr->codecs[DS_RG]) return -1; - r |= c->comp_hdr->codecs[DS_RG] - ->decode(s, c->comp_hdr->codecs[DS_RG], blk, - (char *)&cr->rg, &out_sz); - if (cr->rg == unknown_rg) - cr->rg = -1; - } else { - cr->rg = -1; - } - - cr->name_len = 0; - - if (c->comp_hdr->read_names_included) { - int32_t out_sz2 = 1; - - // Read directly into name cram_block - cr->name = BLOCK_SIZE(s->name_blk); - if (ds & CRAM_RN) { - if (!c->comp_hdr->codecs[DS_RN]) return -1; - r |= c->comp_hdr->codecs[DS_RN] - ->decode(s, c->comp_hdr->codecs[DS_RN], blk, - (char *)s->name_blk, &out_sz2); - cr->name_len = out_sz2; - } - } - - cr->mate_pos = 0; - cr->mate_line = -1; - cr->mate_ref_id = -1; - if ((ds & CRAM_CF) && (cf & CRAM_FLAG_DETACHED)) { - if (ds & CRAM_MF) { - if (CRAM_MAJOR_VERS(fd->version) == 1) { - /* MF is byte in 1.0, int32 in 2.0 */ - unsigned char mf; - if (!c->comp_hdr->codecs[DS_MF]) return -1; - r |= c->comp_hdr->codecs[DS_MF] - ->decode(s, c->comp_hdr->codecs[DS_MF], - blk, (char *)&mf, &out_sz); - cr->mate_flags = mf; - } else { - if (!c->comp_hdr->codecs[DS_MF]) return -1; - r |= c->comp_hdr->codecs[DS_MF] - ->decode(s, c->comp_hdr->codecs[DS_MF], - blk, - (char *)&cr->mate_flags, - &out_sz); - } - } else { - cr->mate_flags = 0; - } - - if (!c->comp_hdr->read_names_included) { - int32_t out_sz2 = 1; - - // Read directly into name cram_block - cr->name = BLOCK_SIZE(s->name_blk); - if (ds & CRAM_RN) { - if (!c->comp_hdr->codecs[DS_RN]) return -1; - r |= c->comp_hdr->codecs[DS_RN] - ->decode(s, c->comp_hdr->codecs[DS_RN], - blk, (char *)s->name_blk, - &out_sz2); - cr->name_len = out_sz2; - } - } - - if (ds & CRAM_NS) { - if (!c->comp_hdr->codecs[DS_NS]) return -1; - r |= c->comp_hdr->codecs[DS_NS] - ->decode(s, c->comp_hdr->codecs[DS_NS], blk, - (char *)&cr->mate_ref_id, &out_sz); - } - -// Skip as mate_ref of "*" is legit. It doesn't mean unmapped, just unknown. -// if (cr->mate_ref_id == -1 && cr->flags & 0x01) { -// /* Paired, but unmapped */ -// cr->flags |= BAM_FMUNMAP; -// } - - if (ds & CRAM_NP) { - if (!c->comp_hdr->codecs[DS_NP]) return -1; - r |= c->comp_hdr->codecs[DS_NP] - ->decode(s, c->comp_hdr->codecs[DS_NP], blk, - (char *)&cr->mate_pos, &out_sz); - } - - if (ds & CRAM_TS) { - if (!c->comp_hdr->codecs[DS_TS]) return -1; - r |= c->comp_hdr->codecs[DS_TS] - ->decode(s, c->comp_hdr->codecs[DS_TS], blk, - (char *)&cr->tlen, &out_sz); - } else { - cr->tlen = INT_MIN; - } - } else if ((ds & CRAM_CF) && (cf & CRAM_FLAG_MATE_DOWNSTREAM)) { - if (ds & CRAM_NF) { - if (!c->comp_hdr->codecs[DS_NF]) return -1; - r |= c->comp_hdr->codecs[DS_NF] - ->decode(s, c->comp_hdr->codecs[DS_NF], blk, - (char *)&cr->mate_line, &out_sz); - cr->mate_line += rec + 1; - - //cr->name_len = sprintf(name, "%d", name_id++); - //cr->name = DSTRING_LEN(name_ds); - //dstring_nappend(name_ds, name, cr->name_len); - - cr->mate_ref_id = -1; - cr->tlen = INT_MIN; - cr->mate_pos = 0; - } else { - cr->mate_flags = 0; - cr->tlen = INT_MIN; - } - } else { - cr->mate_flags = 0; - cr->tlen = INT_MIN; - } - /* - else if (!name[0]) { - //name[0] = '?'; name[1] = 0; - //cr->name_len = 1; - //cr->name= DSTRING_LEN(s->name_ds); - //dstring_nappend(s->name_ds, "?", 1); - - cr->mate_ref_id = -1; - cr->tlen = 0; - cr->mate_pos = 0; - } - */ - - /* Auxiliary tags */ - if (CRAM_MAJOR_VERS(fd->version) == 1) - r |= cram_decode_aux_1_0(c, s, blk, cr); - else - r |= cram_decode_aux(c, s, blk, cr); - - /* Fake up dynamic string growth and appending */ - if (ds & CRAM_RL) { - cr->seq = BLOCK_SIZE(s->seqs_blk); - BLOCK_GROW(s->seqs_blk, cr->len); - seq = (char *)BLOCK_END(s->seqs_blk); - BLOCK_SIZE(s->seqs_blk) += cr->len; - - if (!seq) - return -1; - - cr->qual = BLOCK_SIZE(s->qual_blk); - BLOCK_GROW(s->qual_blk, cr->len); - qual = (char *)BLOCK_END(s->qual_blk); - BLOCK_SIZE(s->qual_blk) += cr->len; - - if (!s->ref) - memset(seq, '=', cr->len); - } - - if (!(bf & BAM_FUNMAP)) { - /* Decode sequence and generate CIGAR */ - if (ds & (CRAM_SEQ | CRAM_MQ)) { - r |= cram_decode_seq(fd, c, s, blk, cr, bfd, cf, seq, qual); - } else { - cr->cigar = 0; - cr->ncigar = 0; - cr->aend = cr->apos; - cr->mqual = 0; - } - } else { - int out_sz2 = cr->len; - - //puts("Unmapped"); - cr->cigar = 0; - cr->ncigar = 0; - cr->aend = cr->apos; - cr->mqual = 0; - - if (ds & CRAM_BA) { - if (!c->comp_hdr->codecs[DS_BA]) return -1; - r |= c->comp_hdr->codecs[DS_BA] - ->decode(s, c->comp_hdr->codecs[DS_BA], blk, - (char *)seq, &out_sz2); - } - - if ((ds & CRAM_CF) && (cf & CRAM_FLAG_PRESERVE_QUAL_SCORES)) { - out_sz2 = cr->len; - if (ds & CRAM_QS) { - if (!c->comp_hdr->codecs[DS_QS]) return -1; - r |= c->comp_hdr->codecs[DS_QS] - ->decode(s, c->comp_hdr->codecs[DS_QS], - blk, qual, &out_sz2); - } - } else { - if (ds & CRAM_RL) - memset(qual, 30, cr->len); - } - } - } - - pthread_mutex_lock(&fd->ref_lock); - if (refs) { - int i; - for (i = 0; i < fd->refs->nref; i++) { - if (refs[i]) - cram_ref_decr(fd->refs, i); - } - free(refs); - } else if (ref_id >= 0 && s->ref != fd->ref_free) { - cram_ref_decr(fd->refs, ref_id); - } - pthread_mutex_unlock(&fd->ref_lock); - - /* Resolve mate pair cross-references between recs within this slice */ - cram_decode_slice_xref(s, fd->required_fields); - - return r; -} - -typedef struct { - cram_fd *fd; - cram_container *c; - cram_slice *s; - SAM_hdr *h; - int exit_code; -} cram_decode_job; - -void *cram_decode_slice_thread(void *arg) { - cram_decode_job *j = (cram_decode_job *)arg; - - j->exit_code = cram_decode_slice(j->fd, j->c, j->s, j->h); - - return j; -} - -/* - * Spawn a multi-threaded version of cram_decode_slice(). - */ -int cram_decode_slice_mt(cram_fd *fd, cram_container *c, cram_slice *s, - SAM_hdr *bfd) { - cram_decode_job *j; - int nonblock; - - if (!fd->pool) - return cram_decode_slice(fd, c, s, bfd); - - if (!(j = malloc(sizeof(*j)))) - return -1; - - j->fd = fd; - j->c = c; - j->s = s; - j->h = bfd; - - nonblock = t_pool_results_queue_sz(fd->rqueue) ? 1 : 0; - - if (-1 == t_pool_dispatch2(fd->pool, fd->rqueue, cram_decode_slice_thread, - j, nonblock)) { - /* Would block */ - fd->job_pending = j; - } else { - fd->job_pending = NULL; - } - - // flush too - return 0; -} - - -/* ---------------------------------------------------------------------- - * CRAM sequence iterators. - */ - -/* - * Converts a cram in-memory record into a bam in-memory record. We - * pass a pointer to a bam_seq_t pointer along with the a pointer to - * the allocated size. These can initially be pointers to NULL and zero. - * - * This function will reallocate the bam buffer as required and update - * (*bam)->alloc accordingly, allowing it to be used within a loop - * efficiently without needing to allocate new bam objects over and - * over again. - * - * Returns the used size of the bam record on success - * -1 on failure. - */ -static int cram_to_bam(SAM_hdr *bfd, cram_fd *fd, cram_slice *s, - cram_record *cr, int rec, bam_seq_t **bam) { - int bam_idx, rg_len; - char name_a[1024], *name; - int name_len; - char *aux, *aux_orig; - char *seq, *qual; - - /* Assign names if not explicitly set */ - if (fd->required_fields & SAM_QNAME) { - if (cr->name_len) { - name = (char *)BLOCK_DATA(s->name_blk) + cr->name; - name_len = cr->name_len; - } else { - name = name_a; - name_len = strlen(fd->prefix); - memcpy(name, fd->prefix, name_len); - name += name_len; - *name++ = ':'; - if (cr->mate_line >= 0 && cr->mate_line < rec) - name = (char *)append_uint64((unsigned char *)name, - s->hdr->record_counter + - cr->mate_line + 1); - else - name = (char *)append_uint64((unsigned char *)name, - s->hdr->record_counter + - rec + 1); - name_len = name - name_a; - name = name_a; - } - } else { - name = "?"; - name_len = 1; - } - - /* Generate BAM record */ - if (cr->rg < -1 || cr->rg >= bfd->nrg) - return -1; - rg_len = (cr->rg != -1) ? bfd->rg[cr->rg].name_len + 4 : 0; - - if (fd->required_fields & (SAM_SEQ | SAM_QUAL)) { - if (!BLOCK_DATA(s->seqs_blk)) - return -1; - seq = (char *)BLOCK_DATA(s->seqs_blk) + cr->seq; - } else { - seq = "*"; - cr->len = 1; - } - - - if (fd->required_fields & SAM_QUAL) { - if (!BLOCK_DATA(s->qual_blk)) - return -1; - qual = (char *)BLOCK_DATA(s->qual_blk) + cr->qual; - } else { - qual = NULL; - } - - bam_idx = bam_construct_seq(bam, cr->aux_size + rg_len, - name, name_len, - cr->flags, - cr->ref_id, - cr->apos, - cr->aend, - cr->mqual, - cr->ncigar, &s->cigar[cr->cigar], - cr->mate_ref_id, - cr->mate_pos, - cr->tlen, - cr->len, - seq, - qual); - if (bam_idx == -1) - return -1; - - aux = aux_orig = (char *)bam_aux(*bam); - - /* Auxiliary strings */ - if (cr->aux_size != 0) { - memcpy(aux, BLOCK_DATA(s->aux_blk) + cr->aux, cr->aux_size); - aux += cr->aux_size; - } - - /* RG:Z: */ - if (cr->rg != -1) { - int len = bfd->rg[cr->rg].name_len; - *aux++ = 'R'; *aux++ = 'G'; *aux++ = 'Z'; - memcpy(aux, bfd->rg[cr->rg].name, len); - aux += len; - *aux++ = 0; - } - - return bam_idx + (aux - aux_orig); -} - -/* - * Here be dragons! The multi-threading code in this is crufty beyond belief. - */ -static cram_slice *cram_next_slice(cram_fd *fd, cram_container **cp) { - cram_container *c; - cram_slice *s = NULL; - - if (!(c = fd->ctr)) { - // Load first container. - do { - if (!(c = fd->ctr = cram_read_container(fd))) - return NULL; - } while (c->length == 0); - - /* - * The first container may be a result of a sub-range query. - * In which case it may still not be the optimal starting point - * due to skipped containers/slices in the index. - */ - if (fd->range.refid != -2) { - while (c->ref_seq_id != -2 && - (c->ref_seq_id < fd->range.refid || - c->ref_seq_start + c->ref_seq_span-1 < fd->range.start)) { - if (0 != cram_seek(fd, c->length, SEEK_CUR)) - return NULL; - cram_free_container(fd->ctr); - do { - if (!(c = fd->ctr = cram_read_container(fd))) - return NULL; - } while (c->length == 0); - } - - if (c->ref_seq_id != -2 && c->ref_seq_id != fd->range.refid) - return NULL; - } - - if (!(c->comp_hdr_block = cram_read_block(fd))) - return NULL; - if (c->comp_hdr_block->content_type != COMPRESSION_HEADER) - return NULL; - - c->comp_hdr = cram_decode_compression_header(fd, c->comp_hdr_block); - if (!c->comp_hdr) - return NULL; - if (!c->comp_hdr->AP_delta) { - pthread_mutex_lock(&fd->ref_lock); - fd->unsorted = 1; - pthread_mutex_unlock(&fd->ref_lock); - } - } - - if ((s = c->slice)) { - c->slice = NULL; - cram_free_slice(s); - s = NULL; - } - - if (c->curr_slice == c->max_slice) { - cram_free_container(c); - c = NULL; - } - - /* Sorry this is so contorted! */ - for (;;) { - if (fd->job_pending) { - cram_decode_job *j = (cram_decode_job *)fd->job_pending; - c = j->c; - s = j->s; - free(fd->job_pending); - fd->job_pending = NULL; - } else if (!fd->ooc) { - empty_container: - if (!c || c->curr_slice == c->max_slice) { - // new container - do { - if (!(c = fd->ctr = cram_read_container(fd))) { - if (fd->pool) { - fd->ooc = 1; - break; - } - - return NULL; - } - } while (c->length == 0); - if (fd->ooc) - break; - - /* Skip containers not yet spanning our range */ - if (fd->range.refid != -2 && c->ref_seq_id != -2) { - fd->required_fields |= SAM_POS; - - if (c->ref_seq_id != fd->range.refid) { - cram_free_container(c); - fd->ctr = NULL; - fd->ooc = 1; - fd->eof = 1; - break; - } - - if (c->ref_seq_start > fd->range.end) { - cram_free_container(c); - fd->ctr = NULL; - fd->ooc = 1; - fd->eof = 1; - break; - } - - if (c->ref_seq_start + c->ref_seq_span-1 < - fd->range.start) { - c->curr_rec = c->max_rec; - c->curr_slice = c->max_slice; - cram_seek(fd, c->length, SEEK_CUR); - cram_free_container(c); - c = NULL; - continue; - } - } - - if (!(c->comp_hdr_block = cram_read_block(fd))) - return NULL; - if (c->comp_hdr_block->content_type != COMPRESSION_HEADER) - return NULL; - - c->comp_hdr = - cram_decode_compression_header(fd, c->comp_hdr_block); - if (!c->comp_hdr) - return NULL; - - if (!c->comp_hdr->AP_delta) { - pthread_mutex_lock(&fd->ref_lock); - fd->unsorted = 1; - pthread_mutex_unlock(&fd->ref_lock); - } - } - - if (c->num_records == 0) { - cram_free_container(c); c = NULL; - goto empty_container; - } - - - if (!(s = c->slice = cram_read_slice(fd))) - return NULL; - c->curr_slice++; - c->curr_rec = 0; - c->max_rec = s->hdr->num_records; - - s->last_apos = s->hdr->ref_seq_start; - - /* Skip slices not yet spanning our range */ - if (fd->range.refid != -2 && s->hdr->ref_seq_id != -2) { - if (s->hdr->ref_seq_id != fd->range.refid) { - fd->eof = 1; - cram_free_slice(s); - c->slice = NULL; - return NULL; - } - - if (s->hdr->ref_seq_start > fd->range.end) { - fd->eof = 1; - cram_free_slice(s); - c->slice = NULL; - return NULL; - } - - if (s->hdr->ref_seq_start + s->hdr->ref_seq_span-1 < - fd->range.start) { - cram_free_slice(s); - c->slice = NULL; - cram_free_container(c); - c = NULL; - continue; - } - } - } - - /* Test decoding of 1st seq */ - if (!c || !s) - break; - - if (cram_decode_slice_mt(fd, c, s, fd->header) != 0) { - // if (cram_decode_slice(fd, c, s, fd->header) != 0) { - fprintf(stderr, "Failure to decode slice\n"); - cram_free_slice(s); - c->slice = NULL; - return NULL; - } - - if (!fd->pool || fd->job_pending) - break; - - // Push it a bit far, to qsize in queue rather than pending arrival, - // as cram tends to be a bit bursty in decode timings. - if (t_pool_results_queue_len(fd->rqueue) > fd->pool->qsize) - break; - } - - if (fd->pool) { - t_pool_result *res; - cram_decode_job *j; - -// fprintf(stderr, "Thread pool len = %d, %d\n", -// t_pool_results_queue_len(fd->rqueue), -// t_pool_results_queue_sz(fd->rqueue)); - - if (fd->ooc && t_pool_results_queue_empty(fd->rqueue)) - return NULL; - - res = t_pool_next_result_wait(fd->rqueue); - - if (!res || !res->data) { - fprintf(stderr, "t_pool_next_result failure\n"); - return NULL; - } - - j = (cram_decode_job *)res->data; - c = j->c; - s = j->s; - - fd->ctr = c; - - t_pool_delete_result(res, 1); - } - - *cp = c; - return s; -} - -/* - * Read the next cram record and return it. - * Note that to decode cram_record the caller will need to look up some data - * in the current slice, pointed to by fd->ctr->slice. This is valid until - * the next call to cram_get_seq (which may invalidate it). - * - * Returns record pointer on success (do not free) - * NULL on failure - */ -cram_record *cram_get_seq(cram_fd *fd) { - cram_container *c; - cram_slice *s; - - for (;;) { - c = fd->ctr; - if (c && c->slice && c->curr_rec < c->max_rec) { - s = c->slice; - } else { - if (!(s = cram_next_slice(fd, &c))) - return NULL; - } - - if (fd->range.refid != -2) { - if (s->crecs[c->curr_rec].ref_id < fd->range.refid) { - c->curr_rec++; - continue; - } - - if (s->crecs[c->curr_rec].ref_id != fd->range.refid) { - fd->eof = 1; - cram_free_slice(s); - c->slice = NULL; - return NULL; - } - - if (s->crecs[c->curr_rec].apos > fd->range.end) { - fd->eof = 1; - cram_free_slice(s); - c->slice = NULL; - return NULL; - } - - if (s->crecs[c->curr_rec].aend < fd->range.start) { - c->curr_rec++; - continue; - } - } - - break; - } - - fd->ctr = c; - c->slice = s; - return &s->crecs[c->curr_rec++]; -} - -/* - * Read the next cram record and convert it to a bam_seq_t struct. - * - * Returns 0 on success - * -1 on EOF or failure (check fd->err) - */ -int cram_get_bam_seq(cram_fd *fd, bam_seq_t **bam) { - cram_record *cr; - cram_container *c; - cram_slice *s; - - if (!(cr = cram_get_seq(fd))) - return -1; - - c = fd->ctr; - s = c->slice; - - return cram_to_bam(fd->header, fd, s, cr, c->curr_rec-1, bam); -} diff --git a/htslib/cram/cram_decode.h b/htslib/cram/cram_decode.h deleted file mode 100644 index 64b188e..0000000 --- a/htslib/cram/cram_decode.h +++ /dev/null @@ -1,112 +0,0 @@ -/* -Copyright (c) 2012-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/*! \file - * Include cram.h instead. - * - * This is an internal part of the CRAM system and is automatically included - * when you #include cram.h. - * - * Implements the decoding portion of CRAM I/O. Also see - * cram_codecs.[ch] for the actual encoding functions themselves. - */ - -#ifndef _CRAM_READ_H_ -#define _CRAM_READ_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ---------------------------------------------------------------------- - * CRAM sequence iterators. - */ - -/*! Read the next cram record and return it as a cram_record. - * - * Note that to decode cram_record the caller will need to look up some data - * in the current slice, pointed to by fd->ctr->slice. This is valid until - * the next call to cram_get_seq (which may invalidate it). - * - * @return - * Returns record pointer on success (do not free); - * NULL on failure - */ -cram_record *cram_get_seq(cram_fd *fd); - -/*! Read the next cram record and convert it to a bam_seq_t struct. - * - * @return - * Returns 0 on success; - * -1 on EOF or failure (check fd->err) - */ -int cram_get_bam_seq(cram_fd *fd, bam_seq_t **bam); - - -/* ---------------------------------------------------------------------- - * Internal functions - */ - -/*! INTERNAL: - * Decodes a CRAM block compression header. - * - * @return - * Returns header ptr on success; - * NULL on failure - */ -cram_block_compression_hdr *cram_decode_compression_header(cram_fd *fd, - cram_block *b); - -/*! INTERNAL: - * Decodes a CRAM (un)mapped slice header block. - * - * @return - * Returns slice header ptr on success; - * NULL on failure - */ -cram_block_slice_hdr *cram_decode_slice_header(cram_fd *fd, cram_block *b); - - -/*! INTERNAL: - * Decode an entire slice from container blocks. Fills out s->crecs[] array. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_decode_slice(cram_fd *fd, cram_container *c, cram_slice *s, - SAM_hdr *hdr); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/cram/cram_encode.c b/htslib/cram/cram_encode.c deleted file mode 100644 index 8057e9c..0000000 --- a/htslib/cram/cram_encode.c +++ /dev/null @@ -1,3068 +0,0 @@ -/* -Copyright (c) 2012-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cram/cram.h" -#include "cram/os.h" -#include "cram/md5.h" - -#define Z_CRAM_STRAT Z_FILTERED -//#define Z_CRAM_STRAT Z_RLE -//#define Z_CRAM_STRAT Z_HUFFMAN_ONLY -//#define Z_CRAM_STRAT Z_DEFAULT_STRATEGY - -static int process_one_read(cram_fd *fd, cram_container *c, - cram_slice *s, cram_record *cr, - bam_seq_t *b, int rnum); - -/* - * Returns index of val into key. - * Basically strchr(key, val)-key; - */ -static int sub_idx(char *key, char val) { - int i; - - for (i = 0; *key && *key++ != val; i++); - return i; -} - -/* - * Encodes a compression header block into a generic cram_block structure. - * - * Returns cram_block ptr on success - * NULL on failure - */ -cram_block *cram_encode_compression_header(cram_fd *fd, cram_container *c, - cram_block_compression_hdr *h) { - cram_block *cb = cram_new_block(COMPRESSION_HEADER, 0); - cram_block *map = cram_new_block(COMPRESSION_HEADER, 0); - int i, mc; - - if (!cb || !map) - return NULL; - - /* - * This is a concatenation of several blocks of data: - * header + landmarks, preservation map, read encoding map, and the tag - * encoding map. - * All 4 are variable sized and we need to know how large these are - * before creating the compression header itself as this starts with - * the total size (stored as a variable length string). - */ - - // Duplicated from container itself, and removed in 1.1 - if (CRAM_MAJOR_VERS(fd->version) == 1) { - itf8_put_blk(cb, h->ref_seq_id); - itf8_put_blk(cb, h->ref_seq_start); - itf8_put_blk(cb, h->ref_seq_span); - itf8_put_blk(cb, h->num_records); - itf8_put_blk(cb, h->num_landmarks); - for (i = 0; i < h->num_landmarks; i++) { - itf8_put_blk(cb, h->landmark[i]); - } - } - - /* Create in-memory preservation map */ - /* FIXME: should create this when we create the container */ - { - khint_t k; - int r; - - if (!(h->preservation_map = kh_init(map))) - return NULL; - - k = kh_put(map, h->preservation_map, "RN", &r); - if (-1 == r) return NULL; - kh_val(h->preservation_map, k).i = 1; - - if (CRAM_MAJOR_VERS(fd->version) == 1) { - k = kh_put(map, h->preservation_map, "PI", &r); - if (-1 == r) return NULL; - kh_val(h->preservation_map, k).i = 0; - - k = kh_put(map, h->preservation_map, "UI", &r); - if (-1 == r) return NULL; - kh_val(h->preservation_map, k).i = 1; - - k = kh_put(map, h->preservation_map, "MI", &r); - if (-1 == r) return NULL; - kh_val(h->preservation_map, k).i = 1; - - } else { - // Technically SM was in 1.0, but wasn't in Java impl. - k = kh_put(map, h->preservation_map, "SM", &r); - if (-1 == r) return NULL; - kh_val(h->preservation_map, k).i = 0; - - k = kh_put(map, h->preservation_map, "TD", &r); - if (-1 == r) return NULL; - kh_val(h->preservation_map, k).i = 0; - - k = kh_put(map, h->preservation_map, "AP", &r); - if (-1 == r) return NULL; - kh_val(h->preservation_map, k).i = c->pos_sorted; - - if (fd->no_ref || fd->embed_ref) { - // Reference Required == No - k = kh_put(map, h->preservation_map, "RR", &r); - if (-1 == r) return NULL; - kh_val(h->preservation_map, k).i = 0; - } - } - } - - /* Encode preservation map; could collapse this and above into one */ - mc = 0; - BLOCK_SIZE(map) = 0; - if (h->preservation_map) { - khint_t k; - - for (k = kh_begin(h->preservation_map); - k != kh_end(h->preservation_map); - k++) { - const char *key; - khash_t(map) *pmap = h->preservation_map; - - - if (!kh_exist(pmap, k)) - continue; - - key = kh_key(pmap, k); - BLOCK_APPEND(map, key, 2); - - switch(CRAM_KEY(key[0], key[1])) { - case CRAM_KEY('M','I'): - BLOCK_APPEND_CHAR(map, kh_val(pmap, k).i); - break; - - case CRAM_KEY('U','I'): - BLOCK_APPEND_CHAR(map, kh_val(pmap, k).i); - break; - - case CRAM_KEY('P','I'): - BLOCK_APPEND_CHAR(map, kh_val(pmap, k).i); - break; - - case CRAM_KEY('A','P'): - BLOCK_APPEND_CHAR(map, kh_val(pmap, k).i); - break; - - case CRAM_KEY('R','N'): - BLOCK_APPEND_CHAR(map, kh_val(pmap, k).i); - break; - - case CRAM_KEY('R','R'): - BLOCK_APPEND_CHAR(map, kh_val(pmap, k).i); - break; - - case CRAM_KEY('S','M'): { - char smat[5], *mp = smat; - *mp++ = - (sub_idx("CGTN", h->substitution_matrix[0][0]) << 6) | - (sub_idx("CGTN", h->substitution_matrix[0][1]) << 4) | - (sub_idx("CGTN", h->substitution_matrix[0][2]) << 2) | - (sub_idx("CGTN", h->substitution_matrix[0][3]) << 0); - *mp++ = - (sub_idx("AGTN", h->substitution_matrix[1][0]) << 6) | - (sub_idx("AGTN", h->substitution_matrix[1][1]) << 4) | - (sub_idx("AGTN", h->substitution_matrix[1][2]) << 2) | - (sub_idx("AGTN", h->substitution_matrix[1][3]) << 0); - *mp++ = - (sub_idx("ACTN", h->substitution_matrix[2][0]) << 6) | - (sub_idx("ACTN", h->substitution_matrix[2][1]) << 4) | - (sub_idx("ACTN", h->substitution_matrix[2][2]) << 2) | - (sub_idx("ACTN", h->substitution_matrix[2][3]) << 0); - *mp++ = - (sub_idx("ACGN", h->substitution_matrix[3][0]) << 6) | - (sub_idx("ACGN", h->substitution_matrix[3][1]) << 4) | - (sub_idx("ACGN", h->substitution_matrix[3][2]) << 2) | - (sub_idx("ACGN", h->substitution_matrix[3][3]) << 0); - *mp++ = - (sub_idx("ACGT", h->substitution_matrix[4][0]) << 6) | - (sub_idx("ACGT", h->substitution_matrix[4][1]) << 4) | - (sub_idx("ACGT", h->substitution_matrix[4][2]) << 2) | - (sub_idx("ACGT", h->substitution_matrix[4][3]) << 0); - BLOCK_APPEND(map, smat, 5); - break; - } - - case CRAM_KEY('T','D'): { - itf8_put_blk(map, BLOCK_SIZE(h->TD_blk)); - BLOCK_APPEND(map, - BLOCK_DATA(h->TD_blk), - BLOCK_SIZE(h->TD_blk)); - break; - } - - default: - fprintf(stderr, "Unknown preservation key '%.2s'\n", key); - break; - } - - mc++; - } - } - itf8_put_blk(cb, BLOCK_SIZE(map) + itf8_size(mc)); - itf8_put_blk(cb, mc); - BLOCK_APPEND(cb, BLOCK_DATA(map), BLOCK_SIZE(map)); - - /* rec encoding map */ - mc = 0; - BLOCK_SIZE(map) = 0; - if (h->codecs[DS_BF]) { - if (-1 == h->codecs[DS_BF]->store(h->codecs[DS_BF], map, "BF", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_CF]) { - if (-1 == h->codecs[DS_CF]->store(h->codecs[DS_CF], map, "CF", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_RL]) { - if (-1 == h->codecs[DS_RL]->store(h->codecs[DS_RL], map, "RL", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_AP]) { - if (-1 == h->codecs[DS_AP]->store(h->codecs[DS_AP], map, "AP", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_RG]) { - if (-1 == h->codecs[DS_RG]->store(h->codecs[DS_RG], map, "RG", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_MF]) { - if (-1 == h->codecs[DS_MF]->store(h->codecs[DS_MF], map, "MF", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_NS]) { - if (-1 == h->codecs[DS_NS]->store(h->codecs[DS_NS], map, "NS", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_NP]) { - if (-1 == h->codecs[DS_NP]->store(h->codecs[DS_NP], map, "NP", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_TS]) { - if (-1 == h->codecs[DS_TS]->store(h->codecs[DS_TS], map, "TS", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_NF]) { - if (-1 == h->codecs[DS_NF]->store(h->codecs[DS_NF], map, "NF", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_TC]) { - if (-1 == h->codecs[DS_TC]->store(h->codecs[DS_TC], map, "TC", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_TN]) { - if (-1 == h->codecs[DS_TN]->store(h->codecs[DS_TN], map, "TN", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_TL]) { - if (-1 == h->codecs[DS_TL]->store(h->codecs[DS_TL], map, "TL", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_FN]) { - if (-1 == h->codecs[DS_FN]->store(h->codecs[DS_FN], map, "FN", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_FC]) { - if (-1 == h->codecs[DS_FC]->store(h->codecs[DS_FC], map, "FC", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_FP]) { - if (-1 == h->codecs[DS_FP]->store(h->codecs[DS_FP], map, "FP", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_BS]) { - if (-1 == h->codecs[DS_BS]->store(h->codecs[DS_BS], map, "BS", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_IN]) { - if (-1 == h->codecs[DS_IN]->store(h->codecs[DS_IN], map, "IN", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_DL]) { - if (-1 == h->codecs[DS_DL]->store(h->codecs[DS_DL], map, "DL", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_BA]) { - if (-1 == h->codecs[DS_BA]->store(h->codecs[DS_BA], map, "BA", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_BB]) { - if (-1 == h->codecs[DS_BB]->store(h->codecs[DS_BB], map, "BB", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_MQ]) { - if (-1 == h->codecs[DS_MQ]->store(h->codecs[DS_MQ], map, "MQ", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_RN]) { - if (-1 == h->codecs[DS_RN]->store(h->codecs[DS_RN], map, "RN", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_QS]) { - if (-1 == h->codecs[DS_QS]->store(h->codecs[DS_QS], map, "QS", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_QQ]) { - if (-1 == h->codecs[DS_QQ]->store(h->codecs[DS_QQ], map, "QQ", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_RI]) { - if (-1 == h->codecs[DS_RI]->store(h->codecs[DS_RI], map, "RI", - fd->version)) - return NULL; - mc++; - } - if (CRAM_MAJOR_VERS(fd->version) != 1) { - if (h->codecs[DS_SC]) { - if (-1 == h->codecs[DS_SC]->store(h->codecs[DS_SC], map, "SC", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_RS]) { - if (-1 == h->codecs[DS_RS]->store(h->codecs[DS_RS], map, "RS", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_PD]) { - if (-1 == h->codecs[DS_PD]->store(h->codecs[DS_PD], map, "PD", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_HC]) { - if (-1 == h->codecs[DS_HC]->store(h->codecs[DS_HC], map, "HC", - fd->version)) - return NULL; - mc++; - } - } - if (h->codecs[DS_TM]) { - if (-1 == h->codecs[DS_TM]->store(h->codecs[DS_TM], map, "TM", - fd->version)) - return NULL; - mc++; - } - if (h->codecs[DS_TV]) { - if (-1 == h->codecs[DS_TV]->store(h->codecs[DS_TV], map, "TV", - fd->version)) - return NULL; - mc++; - } - itf8_put_blk(cb, BLOCK_SIZE(map) + itf8_size(mc)); - itf8_put_blk(cb, mc); - BLOCK_APPEND(cb, BLOCK_DATA(map), BLOCK_SIZE(map)); - - /* tag encoding map */ -#if 0 - mp = map; mc = 0; - if (h->tag_encoding_map) { - HashItem *hi; - HashIter *iter = HashTableIterCreate(); - if (!iter) - return NULL; - - while ((hi = HashTableIterNext(h->tag_encoding_map, iter))) { - cram_map *m = hi->data.p; - int sz; - - mp += itf8_put(mp, (hi->key[0]<<16)|(hi->key[1]<<8)|hi->key[2]); - if (-1 == (sz = m->codec->store(m->codec, mp, NULL, fd->version))) - return NULL; - mp += sz; - mc++; - } - - HashTableIterDestroy(iter); - } -#else - mc = 0; - BLOCK_SIZE(map) = 0; - if (c->tags_used) { - khint_t k; - -#define TAG_ID(a) ((#a[0]<<8)+#a[1]) - - for (k = kh_begin(c->tags_used); k != kh_end(c->tags_used); k++) { - int key; - if (!kh_exist(c->tags_used, k)) - continue; - - mc++; - itf8_put_blk(map, kh_key(c->tags_used, k)); - - // use block content id 4 - switch((key = kh_key(c->tags_used, k)) & 0xff) { - case 'Z': case 'H': - // string as byte_array_stop - if (CRAM_MAJOR_VERS(fd->version) == 1) { - BLOCK_APPEND(map, - "\005" // BYTE_ARRAY_STOP - "\005" // len - "\t" // stop-byte is also SAM separator - DS_aux_S "\000\000\000", - 7); - } else { - if (key>>8 == TAG_ID(OQ)) - BLOCK_APPEND(map, - "\005" // BYTE_ARRAY_STOP - "\002" // len - "\t" // stop-byte is also SAM separator - DS_aux_OQ_S, - 4); - else if (key>>8 == TAG_ID(BQ)) - BLOCK_APPEND(map, - "\005" // BYTE_ARRAY_STOP - "\002" // len - "\t" // stop-byte is also SAM separator - DS_aux_BQ_S, - 4); - else if (key>>8 == TAG_ID(BD)) - BLOCK_APPEND(map, - "\005" // BYTE_ARRAY_STOP - "\002" // len - "\t" // stop-byte is also SAM separator - DS_aux_BD_S, - 4); - else if (key>>8 == TAG_ID(BI)) - BLOCK_APPEND(map, - "\005" // BYTE_ARRAY_STOP - "\002" // len - "\t" // stop-byte is also SAM separator - DS_aux_BI_S, - 4); - else if ((key>>8 == TAG_ID(Q2)) || - (key>>8 == TAG_ID(U2)) || - (key>>8 == TAG_ID(QT)) || - (key>>8 == TAG_ID(CQ))) - BLOCK_APPEND(map, - "\005" // BYTE_ARRAY_STOP - "\002" // len - "\t" // stop-byte is also SAM separator - DS_aux_oq_S, - 4); - else if ((key>>8 == TAG_ID(R2)) || - (key>>8 == TAG_ID(E2)) || - (key>>8 == TAG_ID(CS)) || - (key>>8 == TAG_ID(BC)) || - (key>>8 == TAG_ID(RT))) - BLOCK_APPEND(map, - "\005" // BYTE_ARRAY_STOP - "\002" // len - "\t" // stop-byte is also SAM separator - DS_aux_os_S, - 4); - else - BLOCK_APPEND(map, - "\005" // BYTE_ARRAY_STOP - "\002" // len - "\t" // stop-byte is also SAM separator - DS_aux_oz_S, - 4); - } - break; - - case 'A': case 'c': case 'C': - // byte array len, 1 byte - BLOCK_APPEND(map, - "\004" // BYTE_ARRAY_LEN - "\011" // length - "\003" // HUFFMAN (len) - "\004" // huffman-len - "\001" // 1 symbol - "\001" // symbol=1 byte value - "\001" // 1 length - "\000" // length=0 - "\001" // EXTERNAL (val) - "\001" // external-len - DS_aux_S,// content-id - 11); - break; - - case 's': case 'S': - // byte array len, 2 byte - BLOCK_APPEND(map, - "\004" // BYTE_ARRAY_LEN - "\011" // length - "\003" // HUFFMAN (len) - "\004" // huffman-len - "\001" // 1 symbol - "\002" // symbol=2 byte value - "\001" // 1 length - "\000" // length=0 - "\001" // EXTERNAL (val) - "\001" // external-len - DS_aux_S,// content-id - 11); - break; - - case 'i': case 'I': case 'f': - // byte array len, 4 byte - BLOCK_APPEND(map, - "\004" // BYTE_ARRAY_LEN - "\011" // length - "\003" // HUFFMAN (len) - "\004" // huffman-len - "\001" // 1 symbol - "\004" // symbol=4 byte value - "\001" // 1 length - "\000" // length=0 - "\001" // EXTERNAL (val) - "\001" // external-len - DS_aux_S,// content-id - 11); - break; - - case 'B': - // Byte array of variable size, but we generate our tag - // byte stream at the wrong stage (during reading and not - // after slice header construction). So we use - // BYTE_ARRAY_LEN with the length codec being external - // too. - if ((key>>8 == TAG_ID(FZ)) || (key>>8 == TAG_ID(ZM))) - BLOCK_APPEND(map, - "\004" // BYTE_ARRAY_LEN - "\006" // length - "\001" // EXTERNAL (len) - "\001" // external-len - DS_aux_FZ_S // content-id - "\001" // EXTERNAL (val) - "\001" // external-len - DS_aux_FZ_S,// content-id - 8); - else - BLOCK_APPEND(map, - "\004" // BYTE_ARRAY_LEN - "\006" // length - "\001" // EXTERNAL (len) - "\001" // external-len - DS_aux_S // content-id - "\001" // EXTERNAL (val) - "\001" // external-len - DS_aux_S,// content-id - 8); - break; - - default: - fprintf(stderr, "Unsupported SAM aux type '%c'\n", - kh_key(c->tags_used, k) & 0xff); - } - //mp += m->codec->store(m->codec, mp, NULL, fd->version); - } - } -#endif - itf8_put_blk(cb, BLOCK_SIZE(map) + itf8_size(mc)); - itf8_put_blk(cb, mc); - BLOCK_APPEND(cb, BLOCK_DATA(map), BLOCK_SIZE(map)); - - if (fd->verbose) - fprintf(stderr, "Wrote compression block header in %d bytes\n", - (int)BLOCK_SIZE(cb)); - - BLOCK_UPLEN(cb); - - cram_free_block(map); - - return cb; -} - - -/* - * Encodes a slice compression header. - * - * Returns cram_block on success - * NULL on failure - */ -cram_block *cram_encode_slice_header(cram_fd *fd, cram_slice *s) { - char *buf; - char *cp; - cram_block *b = cram_new_block(MAPPED_SLICE, 0); - int j; - - if (!b) - return NULL; - - if (NULL == (cp = buf = malloc(16+5*(8+s->hdr->num_blocks)))) { - cram_free_block(b); - return NULL; - } - - cp += itf8_put(cp, s->hdr->ref_seq_id); - cp += itf8_put(cp, s->hdr->ref_seq_start); - cp += itf8_put(cp, s->hdr->ref_seq_span); - cp += itf8_put(cp, s->hdr->num_records); - if (CRAM_MAJOR_VERS(fd->version) == 2) - cp += itf8_put(cp, s->hdr->record_counter); - else if (CRAM_MAJOR_VERS(fd->version) >= 3) - cp += ltf8_put(cp, s->hdr->record_counter); - cp += itf8_put(cp, s->hdr->num_blocks); - cp += itf8_put(cp, s->hdr->num_content_ids); - for (j = 0; j < s->hdr->num_content_ids; j++) { - cp += itf8_put(cp, s->hdr->block_content_ids[j]); - } - if (s->hdr->content_type == MAPPED_SLICE) - cp += itf8_put(cp, s->hdr->ref_base_id); - - if (CRAM_MAJOR_VERS(fd->version) != 1) { - memcpy(cp, s->hdr->md5, 16); cp += 16; - } - - assert(cp-buf <= 16+5*(8+s->hdr->num_blocks)); - - b->data = (unsigned char *)buf; - b->comp_size = b->uncomp_size = cp-buf; - - return b; -} - - -/* - * Encodes a single read. - * - * Returns 0 on success - * -1 on failure - */ -static int cram_encode_slice_read(cram_fd *fd, - cram_container *c, - cram_block_compression_hdr *h, - cram_slice *s, - cram_record *cr, - int *last_pos) { - int r = 0; - int32_t i32; - unsigned char uc; - - //fprintf(stderr, "Encode seq %d, %d/%d FN=%d, %s\n", rec, core->byte, core->bit, cr->nfeature, s->name_ds->str + cr->name); - - //printf("BF=0x%x\n", cr->flags); - // bf = cram_flag_swap[cr->flags]; - i32 = fd->cram_flag_swap[cr->flags & 0xfff]; - r |= h->codecs[DS_BF]->encode(s, h->codecs[DS_BF], (char *)&i32, 1); - - i32 = cr->cram_flags; - r |= h->codecs[DS_CF]->encode(s, h->codecs[DS_CF], (char *)&i32, 1); - - if (CRAM_MAJOR_VERS(fd->version) != 1 && s->hdr->ref_seq_id == -2) - r |= h->codecs[DS_RI]->encode(s, h->codecs[DS_RI], (char *)&cr->ref_id, 1); - - r |= h->codecs[DS_RL]->encode(s, h->codecs[DS_RL], (char *)&cr->len, 1); - - if (c->pos_sorted) { - i32 = cr->apos - *last_pos; - r |= h->codecs[DS_AP]->encode(s, h->codecs[DS_AP], (char *)&i32, 1); - *last_pos = cr->apos; - } else { - i32 = cr->apos; - r |= h->codecs[DS_AP]->encode(s, h->codecs[DS_AP], (char *)&i32, 1); - } - - r |= h->codecs[DS_RG]->encode(s, h->codecs[DS_RG], (char *)&cr->rg, 1); - - if (c->comp_hdr->read_names_included) { - // RN codec: Already stored in block[3]. - } - - if (cr->cram_flags & CRAM_FLAG_DETACHED) { - i32 = cr->mate_flags; - r |= h->codecs[DS_MF]->encode(s, h->codecs[DS_MF], (char *)&i32, 1); - - if (!c->comp_hdr->read_names_included) { - // RN codec: Already stored in block[3]. - } - - r |= h->codecs[DS_NS]->encode(s, h->codecs[DS_NS], - (char *)&cr->mate_ref_id, 1); - - r |= h->codecs[DS_NP]->encode(s, h->codecs[DS_NP], - (char *)&cr->mate_pos, 1); - - r |= h->codecs[DS_TS]->encode(s, h->codecs[DS_TS], - (char *)&cr->tlen, 1); - } else if (cr->cram_flags & CRAM_FLAG_MATE_DOWNSTREAM) { - r |= h->codecs[DS_NF]->encode(s, h->codecs[DS_NF], - (char *)&cr->mate_line, 1); - } - - /* Aux tags */ - if (CRAM_MAJOR_VERS(fd->version) == 1) { - int j; - uc = cr->ntags; - r |= h->codecs[DS_TC]->encode(s, h->codecs[DS_TC], (char *)&uc, 1); - - for (j = 0; j < cr->ntags; j++) { - uint32_t i32 = s->TN[cr->TN_idx + j]; // id - r |= h->codecs[DS_TN]->encode(s, h->codecs[DS_TN], (char *)&i32, 1); - } - } else { - r |= h->codecs[DS_TL]->encode(s, h->codecs[DS_TL], (char *)&cr->TL, 1); - } - - // qual - // QS codec : Already stored in block[2]. - - // features (diffs) - if (!(cr->flags & BAM_FUNMAP)) { - int prev_pos = 0, j; - - r |= h->codecs[DS_FN]->encode(s, h->codecs[DS_FN], - (char *)&cr->nfeature, 1); - for (j = 0; j < cr->nfeature; j++) { - cram_feature *f = &s->features[cr->feature + j]; - - uc = f->X.code; - r |= h->codecs[DS_FC]->encode(s, h->codecs[DS_FC], (char *)&uc, 1); - i32 = f->X.pos - prev_pos; - r |= h->codecs[DS_FP]->encode(s, h->codecs[DS_FP], (char *)&i32, 1); - prev_pos = f->X.pos; - - switch(f->X.code) { - //char *seq; - - case 'X': - //fprintf(stderr, " FC=%c FP=%d base=%d\n", f->X.code, i32, f->X.base); - - uc = f->X.base; - r |= h->codecs[DS_BS]->encode(s, h->codecs[DS_BS], - (char *)&uc, 1); - break; - case 'S': - // Already done -// r |= h->codecs[DS_SC]->encode(s, h->codecs[DS_SC], -// BLOCK_DATA(s->soft_blk) + f->S.seq_idx, -// f->S.len); - -// if (IS_CRAM_3_VERS(fd)) { -// r |= h->codecs[DS_BB]->encode(s, h->codecs[DS_BB], -// BLOCK_DATA(s->seqs_blk) + f->S.seq_idx, -// f->S.len); -// } - break; - case 'I': - //seq = DSTRING_STR(s->seqs_ds) + f->S.seq_idx; - //r |= h->codecs[DS_IN]->encode(s, h->codecs[DS_IN], - // seq, f->S.len); -// if (IS_CRAM_3_VERS(fd)) { -// r |= h->codecs[DS_BB]->encode(s, h->codecs[DS_BB], -// BLOCK_DATA(s->seqs_blk) + f->I.seq_idx, -// f->I.len); -// } - break; - case 'i': - uc = f->i.base; - r |= h->codecs[DS_BA]->encode(s, h->codecs[DS_BA], - (char *)&uc, 1); - //seq = DSTRING_STR(s->seqs_ds) + f->S.seq_idx; - //r |= h->codecs[DS_IN]->encode(s, h->codecs[DS_IN], - // seq, 1); - break; - case 'D': - i32 = f->D.len; - r |= h->codecs[DS_DL]->encode(s, h->codecs[DS_DL], - (char *)&i32, 1); - break; - - case 'B': - // // Used when we try to store a non ACGTN base or an N - // // that aligns against a non ACGTN reference - - uc = f->B.base; - r |= h->codecs[DS_BA]->encode(s, h->codecs[DS_BA], - (char *)&uc, 1); - - // Already added - // uc = f->B.qual; - // r |= h->codecs[DS_QS]->encode(s, h->codecs[DS_QS], - // (char *)&uc, 1); - break; - - case 'b': - // string of bases - r |= h->codecs[DS_BB]->encode(s, h->codecs[DS_BB], - (char *)BLOCK_DATA(s->seqs_blk) - + f->b.seq_idx, - f->b.len); - break; - - case 'Q': - // Already added - // uc = f->B.qual; - // r |= h->codecs[DS_QS]->encode(s, h->codecs[DS_QS], - // (char *)&uc, 1); - break; - - case 'N': - i32 = f->N.len; - r |= h->codecs[DS_RS]->encode(s, h->codecs[DS_RS], - (char *)&i32, 1); - break; - - case 'P': - i32 = f->P.len; - r |= h->codecs[DS_PD]->encode(s, h->codecs[DS_PD], - (char *)&i32, 1); - break; - - case 'H': - i32 = f->H.len; - r |= h->codecs[DS_HC]->encode(s, h->codecs[DS_HC], - (char *)&i32, 1); - break; - - - default: - fprintf(stderr, "unhandled feature code %c\n", - f->X.code); - return -1; - } - } - - r |= h->codecs[DS_MQ]->encode(s, h->codecs[DS_MQ], - (char *)&cr->mqual, 1); - } else { - char *seq = (char *)BLOCK_DATA(s->seqs_blk) + cr->seq; - r |= h->codecs[DS_BA]->encode(s, h->codecs[DS_BA], seq, cr->len); - } - - return r ? -1 : 0; -} - - -/* - * Applies various compression methods to specific blocks, depending on - * known observations of how data series compress. - * - * Returns 0 on success - * -1 on failure - */ -static int cram_compress_slice(cram_fd *fd, cram_slice *s) { - int level = fd->level, i; - int method = 1< 5 && s->block[0]->uncomp_size > 500) - cram_compress_block(fd, s->block[0], NULL, GZIP, 1); - - if (fd->use_bz2) - method |= 1<use_rans) - method |= (1<use_lzma) - method |= (1<= 6) - methodF = method; - - - /* Specific compression methods for certain block types */ - if (cram_compress_block(fd, s->block[DS_IN], fd->m[DS_IN], //IN (seq) - method, level)) - return -1; - - if (fd->level == 0) { - /* Do nothing */ - } else if (fd->level == 1) { - if (cram_compress_block(fd, s->block[DS_QS], fd->m[DS_QS], - methodF, 1)) - return -1; - for (i = DS_aux; i <= DS_aux_oz; i++) { - if (s->block[i]) - if (cram_compress_block(fd, s->block[i], fd->m[i], - method, 1)) - return -1; - } - } else if (fd->level < 3) { - if (cram_compress_block(fd, s->block[DS_QS], fd->m[DS_QS], - method, 1)) - return -1; - if (cram_compress_block(fd, s->block[DS_BA], fd->m[DS_BA], - method, 1)) - return -1; - if (s->block[DS_BB]) - if (cram_compress_block(fd, s->block[DS_BB], fd->m[DS_BB], - method, 1)) - return -1; - for (i = DS_aux; i <= DS_aux_oz; i++) { - if (s->block[i]) - if (cram_compress_block(fd, s->block[i], fd->m[i], - method, level)) - return -1; - } - } else { - if (cram_compress_block(fd, s->block[DS_QS], fd->m[DS_QS], - method, level)) - return -1; - if (cram_compress_block(fd, s->block[DS_BA], fd->m[DS_BA], - method, level)) - return -1; - if (s->block[DS_BB]) - if (cram_compress_block(fd, s->block[DS_BB], fd->m[DS_BB], - method, level)) - return -1; - for (i = DS_aux; i <= DS_aux_oz; i++) { - if (s->block[i]) - if (cram_compress_block(fd, s->block[i], fd->m[i], - method, level)) - return -1; - } - } - - // NAME: best is generally xz, bzip2, zlib then rans1 - // It benefits well from a little bit extra compression level. - if (cram_compress_block(fd, s->block[DS_RN], fd->m[DS_RN], - method & ~(1<block[DS_NS] != s->block[0]) - if (cram_compress_block(fd, s->block[DS_NS], fd->m[DS_NS], - method, level)) - return -1; - - - /* - * Minimal compression of any block still uncompressed, bar CORE - */ - { - int i; - for (i = 1; i < DS_END; i++) { - if (!s->block[i] || s->block[i] == s->block[0]) - continue; - - // fast methods only - if (s->block[i]->method == RAW) { - cram_compress_block(fd, s->block[i], fd->m[i], - methodF, level); - } - } - } - - return 0; -} - -/* - * Encodes a single slice from a container - * - * Returns 0 on success - * -1 on failure - */ -static int cram_encode_slice(cram_fd *fd, cram_container *c, - cram_block_compression_hdr *h, cram_slice *s) { - int rec, r = 0, last_pos; - int embed_ref; - enum cram_DS_ID id; - - embed_ref = fd->embed_ref && s->hdr->ref_seq_id != -1 ? 1 : 0; - - /* - * Slice external blocks: - * ID 0 => base calls (insertions, soft-clip) - * ID 1 => qualities - * ID 2 => names - * ID 3 => TS (insert size), NP (next frag) - * ID 4 => tag values - * ID 6 => tag IDs (TN), if CRAM_V1.0 - * ID 7 => TD tag dictionary, if !CRAM_V1.0 - */ - - /* Create cram slice header */ - s->hdr->ref_base_id = embed_ref ? DS_ref : -1; - s->hdr->record_counter = c->num_records + c->record_counter; - c->num_records += s->hdr->num_records; - - s->block = calloc(DS_END, sizeof(s->block[0])); - s->hdr->block_content_ids = malloc(DS_END * sizeof(int32_t)); - if (!s->block || !s->hdr->block_content_ids) - return -1; - - // Create first fixed blocks, always external. - // CORE - if (!(s->block[0] = cram_new_block(CORE, 0))) - return -1; - - // TN block for CRAM v1 - if (CRAM_MAJOR_VERS(fd->version) == 1) { - if (h->codecs[DS_TN]->codec == E_EXTERNAL) { - if (!(s->block[DS_TN] = cram_new_block(EXTERNAL,DS_TN))) return -1; - h->codecs[DS_TN]->external.content_id = DS_TN; - } else { - s->block[DS_TN] = s->block[0]; - } - s->block[DS_TN] = s->block[DS_TN]; - } - - // Embedded reference - if (embed_ref) { - if (!(s->block[DS_ref] = cram_new_block(EXTERNAL, DS_ref))) - return -1; - s->ref_id = DS_ref; // needed? - BLOCK_APPEND(s->block[DS_ref], - c->ref + c->first_base - c->ref_start, - c->last_base - c->first_base + 1); - } - - /* - * All the data-series blocks if appropriate. - */ - for (id = DS_BF; id < DS_TN; id++) { - if (h->codecs[id] && (h->codecs[id]->codec == E_EXTERNAL || - h->codecs[id]->codec == E_BYTE_ARRAY_STOP || - h->codecs[id]->codec == E_BYTE_ARRAY_LEN)) { - switch (h->codecs[id]->codec) { - case E_EXTERNAL: - if (!(s->block[id] = cram_new_block(EXTERNAL, id))) - return -1; - h->codecs[id]->external.content_id = id; - break; - - case E_BYTE_ARRAY_STOP: - if (!(s->block[id] = cram_new_block(EXTERNAL, id))) - return -1; - h->codecs[id]->byte_array_stop.content_id = id; - break; - - case E_BYTE_ARRAY_LEN: { - cram_codec *cc; - - cc = h->codecs[id]->e_byte_array_len.len_codec; - if (cc->codec == E_EXTERNAL) { - int eid = cc->external.content_id; - if (!(s->block[eid] = cram_new_block(EXTERNAL, eid))) - return -1; - cc->external.content_id = eid; - cc->out = s->block[eid]; - } - - cc = h->codecs[id]->e_byte_array_len.val_codec; - if (cc->codec == E_EXTERNAL) { - int eid = cc->external.content_id; - if (!s->block[eid]) - if (!(s->block[eid] = cram_new_block(EXTERNAL, eid))) - return -1; - cc->external.content_id = eid; - cc->out = s->block[eid]; - } - break; - } - default: - break; - } - } else { - if (!(id == DS_BB && !h->codecs[DS_BB])) - s->block[id] = s->block[0]; - } - if (h->codecs[id]) - h->codecs[id]->out = s->block[id]; - } - - /* Encode reads */ - last_pos = s->hdr->ref_seq_start; - for (rec = 0; rec < s->hdr->num_records; rec++) { - cram_record *cr = &s->crecs[rec]; - if (cram_encode_slice_read(fd, c, h, s, cr, &last_pos) == -1) - return -1; - } - - s->block[0]->uncomp_size = s->block[0]->byte + (s->block[0]->bit < 7); - s->block[0]->comp_size = s->block[0]->uncomp_size; - - // Make sure the fixed blocks point to the correct sources - s->block[DS_IN] = s->base_blk; s->base_blk = NULL; - s->block[DS_QS] = s->qual_blk; s->qual_blk = NULL; - s->block[DS_RN] = s->name_blk; s->name_blk = NULL; - s->block[DS_SC] = s->soft_blk; s->soft_blk = NULL; - s->block[DS_aux]= s->aux_blk; s->aux_blk = NULL; - s->block[DS_aux_OQ]= s->aux_OQ_blk; s->aux_OQ_blk = NULL; - s->block[DS_aux_BQ]= s->aux_BQ_blk; s->aux_BQ_blk = NULL; - s->block[DS_aux_BD]= s->aux_BD_blk; s->aux_BD_blk = NULL; - s->block[DS_aux_BI]= s->aux_BI_blk; s->aux_BI_blk = NULL; - s->block[DS_aux_FZ]= s->aux_FZ_blk; s->aux_FZ_blk = NULL; - s->block[DS_aux_oq]= s->aux_oq_blk; s->aux_oq_blk = NULL; - s->block[DS_aux_os]= s->aux_os_blk; s->aux_os_blk = NULL; - s->block[DS_aux_oz]= s->aux_oz_blk; s->aux_oz_blk = NULL; - - // Ensure block sizes are up to date. - for (id = 1; id < DS_END; id++) { - if (!s->block[id] || s->block[id] == s->block[0]) - continue; - - if (s->block[id]->uncomp_size == 0) - BLOCK_UPLEN(s->block[id]); - } - - // Compress it all - if (cram_compress_slice(fd, s) == -1) - return -1; - - // Collapse empty blocks and create hdr_block - { - int i, j; - for (i = j = 1; i < DS_END; i++) { - if (!s->block[i] || s->block[i] == s->block[0]) - continue; - if (s->block[i]->uncomp_size == 0) { - cram_free_block(s->block[i]); - s->block[i] = NULL; - continue; - } - s->block[j] = s->block[i]; - s->hdr->block_content_ids[j-1] = s->block[i]->content_id; - j++; - } - s->hdr->num_content_ids = j-1; - s->hdr->num_blocks = j; - - if (!(s->hdr_block = cram_encode_slice_header(fd, s))) - return -1; - } - - return r ? -1 : 0; -} - -/* - * Encodes all slices in a container into blocks. - * Returns 0 on success - * -1 on failure - */ -int cram_encode_container(cram_fd *fd, cram_container *c) { - int i, j, slice_offset; - cram_block_compression_hdr *h = c->comp_hdr; - cram_block *c_hdr; - int multi_ref = 0; - int r1, r2, sn, nref; - spare_bams *spares; - - /* Cache references up-front if we have unsorted access patterns */ - pthread_mutex_lock(&fd->ref_lock); - nref = fd->refs->nref; - pthread_mutex_unlock(&fd->ref_lock); - - if (!fd->no_ref && c->refs_used) { - for (i = 0; i < nref; i++) { - if (c->refs_used[i]) - cram_get_ref(fd, i, 1, 0); - } - } - - /* To create M5 strings */ - /* Fetch reference sequence */ - if (!fd->no_ref) { - bam_seq_t *b = c->bams[0]; - char *ref; - - ref = cram_get_ref(fd, bam_ref(b), 1, 0); - if (!ref && bam_ref(b) >= 0) { - fprintf(stderr, "Failed to load reference #%d\n", bam_ref(b)); - return -1; - } - if ((c->ref_id = bam_ref(b)) >= 0) { - c->ref_seq_id = c->ref_id; - c->ref = fd->refs->ref_id[c->ref_seq_id]->seq; - c->ref_start = 1; - c->ref_end = fd->refs->ref_id[c->ref_seq_id]->length; - } else { - c->ref_seq_id = c->ref_id; // FIXME remove one var! - } - } else { - c->ref_id = bam_ref(c->bams[0]); - cram_ref_incr(fd->refs, c->ref_id); - c->ref_seq_id = c->ref_id; - } - - /* Turn bams into cram_records and gather basic stats */ - for (r1 = sn = 0; r1 < c->curr_c_rec; sn++) { - cram_slice *s = c->slices[sn]; - int first_base = INT_MAX, last_base = INT_MIN; - - assert(sn < c->curr_slice); - - /* FIXME: we could create our slice objects here too instead of - * in cram_put_bam_seq. It's more natural here and also this is - * bit is threaded so it's less work in the main thread. - */ - - for (r2 = 0; r1 < c->curr_c_rec && r2 < c->max_rec; r1++, r2++) { - cram_record *cr = &s->crecs[r2]; - bam_seq_t *b = c->bams[r1]; - - /* If multi-ref we need to cope with changing reference per seq */ - if (c->multi_seq && !fd->no_ref) { - if (bam_ref(b) != c->ref_seq_id && bam_ref(b) >= 0) { - if (c->ref_seq_id >= 0) - cram_ref_decr(fd->refs, c->ref_seq_id); - - if (!cram_get_ref(fd, bam_ref(b), 1, 0)) { - fprintf(stderr, "Failed to load reference #%d\n", - bam_ref(b)); - return -1; - } - - c->ref_seq_id = bam_ref(b); // overwritten later by -2 - assert(fd->refs->ref_id[c->ref_seq_id]->seq); - c->ref = fd->refs->ref_id[c->ref_seq_id]->seq; - c->ref_start = 1; - c->ref_end = fd->refs->ref_id[c->ref_seq_id]->length; - } - } - - process_one_read(fd, c, s, cr, b, r2); - - if (first_base > cr->apos) - first_base = cr->apos; - - if (last_base < cr->aend) - last_base = cr->aend; - } - - if (c->multi_seq) { - s->hdr->ref_seq_id = -2; - s->hdr->ref_seq_start = 0; - s->hdr->ref_seq_span = 0; - } else { - s->hdr->ref_seq_id = c->ref_id; - s->hdr->ref_seq_start = first_base; - s->hdr->ref_seq_span = last_base - first_base + 1; - } - s->hdr->num_records = r2; - } - - if (c->multi_seq && !fd->no_ref) { - if (c->ref_seq_id >= 0) - cram_ref_decr(fd->refs, c->ref_seq_id); - } - - /* Link our bams[] array onto the spare bam list for reuse */ - spares = malloc(sizeof(*spares)); - pthread_mutex_lock(&fd->bam_list_lock); - spares->bams = c->bams; - spares->next = fd->bl; - fd->bl = spares; - pthread_mutex_unlock(&fd->bam_list_lock); - c->bams = NULL; - - /* Detect if a multi-seq container */ - cram_stats_encoding(fd, c->stats[DS_RI]); - multi_ref = c->stats[DS_RI]->nvals > 1; - - if (multi_ref) { - if (fd->verbose) - fprintf(stderr, "Multi-ref container\n"); - c->ref_seq_id = -2; - c->ref_seq_start = 0; - c->ref_seq_span = 0; - } - - - /* Compute MD5s */ - for (i = 0; i < c->curr_slice; i++) { - cram_slice *s = c->slices[i]; - - if (CRAM_MAJOR_VERS(fd->version) != 1) { - if (s->hdr->ref_seq_id >= 0 && c->multi_seq == 0 && !fd->no_ref) { - MD5_CTX md5; - MD5_Init(&md5); - MD5_Update(&md5, - c->ref + s->hdr->ref_seq_start - c->ref_start, - s->hdr->ref_seq_span); - MD5_Final(s->hdr->md5, &md5); - } else { - memset(s->hdr->md5, 0, 16); - } - } - } - - c->num_records = 0; - c->num_blocks = 0; - c->length = 0; - - //fprintf(stderr, "=== BF ===\n"); - h->codecs[DS_BF] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_BF]), - c->stats[DS_BF], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== CF ===\n"); - h->codecs[DS_CF] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_CF]), - c->stats[DS_CF], E_INT, NULL, - fd->version); -// fprintf(stderr, "=== RN ===\n"); -// h->codecs[DS_RN] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_RN]), -// c->stats[DS_RN], E_BYTE_ARRAY, NULL, -// fd->version); - - //fprintf(stderr, "=== AP ===\n"); - if (c->pos_sorted) { - h->codecs[DS_AP] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_AP]), - c->stats[DS_AP], E_INT, NULL, - fd->version); - } else { - int p[2] = {0, c->max_apos}; - h->codecs[DS_AP] = cram_encoder_init(E_BETA, NULL, E_INT, p, - fd->version); - } - - //fprintf(stderr, "=== RG ===\n"); - h->codecs[DS_RG] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_RG]), - c->stats[DS_RG], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== MQ ===\n"); - h->codecs[DS_MQ] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_MQ]), - c->stats[DS_MQ], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== NS ===\n"); - h->codecs[DS_NS] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_NS]), - c->stats[DS_NS], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== MF ===\n"); - h->codecs[DS_MF] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_MF]), - c->stats[DS_MF], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== TS ===\n"); - h->codecs[DS_TS] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_TS]), - c->stats[DS_TS], E_INT, NULL, - fd->version); - //fprintf(stderr, "=== NP ===\n"); - h->codecs[DS_NP] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_NP]), - c->stats[DS_NP], E_INT, NULL, - fd->version); - //fprintf(stderr, "=== NF ===\n"); - h->codecs[DS_NF] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_NF]), - c->stats[DS_NF], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== RL ===\n"); - h->codecs[DS_RL] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_RL]), - c->stats[DS_RL], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== FN ===\n"); - h->codecs[DS_FN] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_FN]), - c->stats[DS_FN], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== FC ===\n"); - h->codecs[DS_FC] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_FC]), - c->stats[DS_FC], E_BYTE, NULL, - fd->version); - - //fprintf(stderr, "=== FP ===\n"); - h->codecs[DS_FP] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_FP]), - c->stats[DS_FP], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== DL ===\n"); - h->codecs[DS_DL] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_DL]), - c->stats[DS_DL], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== BA ===\n"); - h->codecs[DS_BA] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_BA]), - c->stats[DS_BA], E_BYTE, NULL, - fd->version); - - if (CRAM_MAJOR_VERS(fd->version) >= 3) { - cram_byte_array_len_encoder e; - - e.len_encoding = E_EXTERNAL; - e.len_dat = (void *)DS_BB_len; - //e.len_dat = (void *)DS_BB; - - e.val_encoding = E_EXTERNAL; - e.val_dat = (void *)DS_BB; - - h->codecs[DS_BB] = cram_encoder_init(E_BYTE_ARRAY_LEN, NULL, - E_BYTE_ARRAY, (void *)&e, - fd->version); - } else { - h->codecs[DS_BB] = NULL; - } - - //fprintf(stderr, "=== BS ===\n"); - h->codecs[DS_BS] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_BS]), - c->stats[DS_BS], E_BYTE, NULL, - fd->version); - - if (CRAM_MAJOR_VERS(fd->version) == 1) { - h->codecs[DS_TL] = NULL; - h->codecs[DS_RI] = NULL; - h->codecs[DS_RS] = NULL; - h->codecs[DS_PD] = NULL; - h->codecs[DS_HC] = NULL; - h->codecs[DS_SC] = NULL; - - //fprintf(stderr, "=== TC ===\n"); - h->codecs[DS_TC] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_TC]), - c->stats[DS_TC], E_BYTE, NULL, - fd->version); - - //fprintf(stderr, "=== TN ===\n"); - h->codecs[DS_TN] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_TN]), - c->stats[DS_TN], E_INT, NULL, - fd->version); - } else { - h->codecs[DS_TC] = NULL; - h->codecs[DS_TN] = NULL; - - //fprintf(stderr, "=== TL ===\n"); - h->codecs[DS_TL] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_TL]), - c->stats[DS_TL], E_INT, NULL, - fd->version); - - - //fprintf(stderr, "=== RI ===\n"); - h->codecs[DS_RI] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_RI]), - c->stats[DS_RI], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== RS ===\n"); - h->codecs[DS_RS] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_RS]), - c->stats[DS_RS], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== PD ===\n"); - h->codecs[DS_PD] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_PD]), - c->stats[DS_PD], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== HC ===\n"); - h->codecs[DS_HC] = cram_encoder_init(cram_stats_encoding(fd, c->stats[DS_HC]), - c->stats[DS_HC], E_INT, NULL, - fd->version); - - //fprintf(stderr, "=== SC ===\n"); - if (1) { - int i2[2] = {0, DS_SC}; - - h->codecs[DS_SC] = cram_encoder_init(E_BYTE_ARRAY_STOP, NULL, - E_BYTE_ARRAY, (void *)i2, - fd->version); - } else { - // Appears to be no practical benefit to using this method, - // but it may work better if we start mixing SC, IN and BB - // elements into the same external block. - cram_byte_array_len_encoder e; - - e.len_encoding = E_EXTERNAL; - e.len_dat = (void *)DS_SC_len; - - e.val_encoding = E_EXTERNAL; - e.val_dat = (void *)DS_SC; - - h->codecs[DS_SC] = cram_encoder_init(E_BYTE_ARRAY_LEN, NULL, - E_BYTE_ARRAY, (void *)&e, - fd->version); - } - } - - //fprintf(stderr, "=== IN ===\n"); - { - int i2[2] = {0, DS_IN}; - h->codecs[DS_IN] = cram_encoder_init(E_BYTE_ARRAY_STOP, NULL, - E_BYTE_ARRAY, (void *)i2, - fd->version); - } - - h->codecs[DS_QS] = cram_encoder_init(E_EXTERNAL, NULL, E_BYTE, - (void *)DS_QS, - fd->version); - { - int i2[2] = {0, DS_RN}; - h->codecs[DS_RN] = cram_encoder_init(E_BYTE_ARRAY_STOP, NULL, - E_BYTE_ARRAY, (void *)i2, - fd->version); - } - - - /* Encode slices */ - for (i = 0; i < c->curr_slice; i++) { - if (fd->verbose) - fprintf(stderr, "Encode slice %d\n", i); - if (cram_encode_slice(fd, c, h, c->slices[i]) != 0) - return -1; - } - - /* Create compression header */ - { - h->ref_seq_id = c->ref_seq_id; - h->ref_seq_start = c->ref_seq_start; - h->ref_seq_span = c->ref_seq_span; - h->num_records = c->num_records; - - h->mapped_qs_included = 0; // fixme - h->unmapped_qs_included = 0; // fixme - // h->... fixme - memcpy(h->substitution_matrix, CRAM_SUBST_MATRIX, 20); - - if (!(c_hdr = cram_encode_compression_header(fd, c, h))) - return -1; - } - - /* Compute landmarks */ - /* Fill out slice landmarks */ - c->num_landmarks = c->curr_slice; - c->landmark = malloc(c->num_landmarks * sizeof(*c->landmark)); - if (!c->landmark) - return -1; - - /* - * Slice offset starts after the first block, so we need to simulate - * writing it to work out the correct offset - */ - { - slice_offset = c_hdr->method == RAW - ? c_hdr->uncomp_size - : c_hdr->comp_size; - slice_offset += 2 + 4*(CRAM_MAJOR_VERS(fd->version) >= 3) + - itf8_size(c_hdr->content_id) + - itf8_size(c_hdr->comp_size) + - itf8_size(c_hdr->uncomp_size); - } - - c->ref_seq_id = c->slices[0]->hdr->ref_seq_id; - c->ref_seq_start = c->slices[0]->hdr->ref_seq_start; - c->ref_seq_span = c->slices[0]->hdr->ref_seq_span; - for (i = 0; i < c->curr_slice; i++) { - cram_slice *s = c->slices[i]; - - c->num_blocks += s->hdr->num_blocks + 2; - c->landmark[i] = slice_offset; - - if (s->hdr->ref_seq_start + s->hdr->ref_seq_span > - c->ref_seq_start + c->ref_seq_span) { - c->ref_seq_span = s->hdr->ref_seq_start + s->hdr->ref_seq_span - - c->ref_seq_start; - } - - slice_offset += s->hdr_block->method == RAW - ? s->hdr_block->uncomp_size - : s->hdr_block->comp_size; - - slice_offset += 2 + 4*(CRAM_MAJOR_VERS(fd->version) >= 3) + - itf8_size(s->hdr_block->content_id) + - itf8_size(s->hdr_block->comp_size) + - itf8_size(s->hdr_block->uncomp_size); - - for (j = 0; j < s->hdr->num_blocks; j++) { - slice_offset += 2 + 4*(CRAM_MAJOR_VERS(fd->version) >= 3) + - itf8_size(s->block[j]->content_id) + - itf8_size(s->block[j]->comp_size) + - itf8_size(s->block[j]->uncomp_size); - - slice_offset += s->block[j]->method == RAW - ? s->block[j]->uncomp_size - : s->block[j]->comp_size; - } - } - c->length += slice_offset; // just past the final slice - - c->comp_hdr_block = c_hdr; - - if (c->ref_seq_id >= 0) { - cram_ref_decr(fd->refs, c->ref_seq_id); - } - - /* Cache references up-front if we have unsorted access patterns */ - if (!fd->no_ref && c->refs_used) { - for (i = 0; i < fd->refs->nref; i++) { - if (c->refs_used[i]) - cram_ref_decr(fd->refs, i); - } - } - - return 0; -} - - -/* - * Adds a feature code to a read within a slice. For purposes of minimising - * memory allocations and fragmentation we have one array of features for all - * reads within the slice. We return the index into this array for this new - * feature. - * - * Returns feature index on success - * -1 on failure. - */ -static int cram_add_feature(cram_container *c, cram_slice *s, - cram_record *r, cram_feature *f) { - if (s->nfeatures >= s->afeatures) { - s->afeatures = s->afeatures ? s->afeatures*2 : 1024; - s->features = realloc(s->features, s->afeatures*sizeof(*s->features)); - if (!s->features) - return -1; - } - - if (!r->nfeature++) { - r->feature = s->nfeatures; - cram_stats_add(c->stats[DS_FP], f->X.pos); - } else { - cram_stats_add(c->stats[DS_FP], - f->X.pos - s->features[r->feature + r->nfeature-2].X.pos); - } - cram_stats_add(c->stats[DS_FC], f->X.code); - - s->features[s->nfeatures++] = *f; - - return 0; -} - -static int cram_add_substitution(cram_fd *fd, cram_container *c, - cram_slice *s, cram_record *r, - int pos, char base, char qual, char ref) { - cram_feature f; - - // seq=ACGTN vs ref=ACGT or seq=ACGT vs ref=ACGTN - if (fd->L2[(uc)base]<4 || (fd->L2[(uc)base]<5 && fd->L2[(uc)ref]<4)) { - f.X.pos = pos+1; - f.X.code = 'X'; - f.X.base = fd->cram_sub_matrix[ref&0x1f][base&0x1f]; - cram_stats_add(c->stats[DS_BS], f.X.base); - } else { - f.B.pos = pos+1; - f.B.code = 'B'; - f.B.base = base; - f.B.qual = qual; - cram_stats_add(c->stats[DS_BA], f.B.base); - cram_stats_add(c->stats[DS_QS], f.B.qual); - BLOCK_APPEND_CHAR(s->qual_blk, qual); - } - return cram_add_feature(c, s, r, &f); -} - -static int cram_add_bases(cram_fd *fd, cram_container *c, - cram_slice *s, cram_record *r, - int pos, int len, char *base) { - cram_feature f; - - f.b.pos = pos+1; - f.b.code = 'b'; - f.b.seq_idx = base - (char *)BLOCK_DATA(s->seqs_blk); - f.b.len = len; - - return cram_add_feature(c, s, r, &f); -} - -static int cram_add_base(cram_fd *fd, cram_container *c, - cram_slice *s, cram_record *r, - int pos, char base, char qual) { - cram_feature f; - f.B.pos = pos+1; - f.B.code = 'B'; - f.B.base = base; - f.B.qual = qual; - cram_stats_add(c->stats[DS_BA], base); - cram_stats_add(c->stats[DS_QS], qual); - BLOCK_APPEND_CHAR(s->qual_blk, qual); - return cram_add_feature(c, s, r, &f); -} - -static int cram_add_quality(cram_fd *fd, cram_container *c, - cram_slice *s, cram_record *r, - int pos, char qual) { - cram_feature f; - f.Q.pos = pos+1; - f.Q.code = 'Q'; - f.Q.qual = qual; - cram_stats_add(c->stats[DS_QS], qual); - BLOCK_APPEND_CHAR(s->qual_blk, qual); - return cram_add_feature(c, s, r, &f); -} - -static int cram_add_deletion(cram_container *c, cram_slice *s, cram_record *r, - int pos, int len, char *base) { - cram_feature f; - f.D.pos = pos+1; - f.D.code = 'D'; - f.D.len = len; - cram_stats_add(c->stats[DS_DL], len); - return cram_add_feature(c, s, r, &f); -} - -static int cram_add_softclip(cram_container *c, cram_slice *s, cram_record *r, - int pos, int len, char *base, int version) { - cram_feature f; - f.S.pos = pos+1; - f.S.code = 'S'; - f.S.len = len; - switch (CRAM_MAJOR_VERS(version)) { - case 1: - f.S.seq_idx = BLOCK_SIZE(s->base_blk); - BLOCK_APPEND(s->base_blk, base, len); - BLOCK_APPEND_CHAR(s->base_blk, '\0'); - break; - - case 2: - default: - f.S.seq_idx = BLOCK_SIZE(s->soft_blk); - if (base) { - BLOCK_APPEND(s->soft_blk, base, len); - } else { - int i; - for (i = 0; i < len; i++) - BLOCK_APPEND_CHAR(s->soft_blk, 'N'); - } - BLOCK_APPEND_CHAR(s->soft_blk, '\0'); - break; - -// default: -// // v3.0 onwards uses BB data-series -// f.S.seq_idx = BLOCK_SIZE(s->soft_blk); - } - return cram_add_feature(c, s, r, &f); -} - -static int cram_add_hardclip(cram_container *c, cram_slice *s, cram_record *r, - int pos, int len, char *base) { - cram_feature f; - f.S.pos = pos+1; - f.S.code = 'H'; - f.S.len = len; - cram_stats_add(c->stats[DS_HC], len); - return cram_add_feature(c, s, r, &f); -} - -static int cram_add_skip(cram_container *c, cram_slice *s, cram_record *r, - int pos, int len, char *base) { - cram_feature f; - f.S.pos = pos+1; - f.S.code = 'N'; - f.S.len = len; - cram_stats_add(c->stats[DS_RS], len); - return cram_add_feature(c, s, r, &f); -} - -static int cram_add_pad(cram_container *c, cram_slice *s, cram_record *r, - int pos, int len, char *base) { - cram_feature f; - f.S.pos = pos+1; - f.S.code = 'P'; - f.S.len = len; - cram_stats_add(c->stats[DS_PD], len); - return cram_add_feature(c, s, r, &f); -} - -static int cram_add_insertion(cram_container *c, cram_slice *s, cram_record *r, - int pos, int len, char *base) { - cram_feature f; - f.I.pos = pos+1; - if (len == 1) { - char b = base ? *base : 'N'; - f.i.code = 'i'; - f.i.base = b; - cram_stats_add(c->stats[DS_BA], b); - } else { - f.I.code = 'I'; - f.I.len = len; - f.S.seq_idx = BLOCK_SIZE(s->base_blk); - if (base) { - BLOCK_APPEND(s->base_blk, base, len); - } else { - int i; - for (i = 0; i < len; i++) - BLOCK_APPEND_CHAR(s->base_blk, 'N'); - } - BLOCK_APPEND_CHAR(s->base_blk, '\0'); - } - return cram_add_feature(c, s, r, &f); -} - -/* - * Encodes auxiliary data. - * Returns the read-group parsed out of the BAM aux fields on success - * NULL on failure or no rg present (FIXME) - */ -static char *cram_encode_aux_1_0(cram_fd *fd, bam_seq_t *b, cram_container *c, - cram_slice *s, cram_record *cr) { - char *aux, *tmp, *rg = NULL; - int aux_size = bam_blk_size(b) - - ((char *)bam_aux(b) - (char *)&bam_ref(b)); - - /* Worst case is 1 nul char on every ??:Z: string, so +33% */ - BLOCK_GROW(s->aux_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_blk); - - aux = (char *)bam_aux(b); - cr->TN_idx = s->nTN; - - while (aux[0] != 0) { - int32_t i32; - int r; - - if (aux[0] == 'R' && aux[1] == 'G' && aux[2] == 'Z') { - rg = &aux[3]; - while (*aux++); - continue; - } - if (aux[0] == 'M' && aux[1] == 'D' && aux[2] == 'Z') { - while (*aux++); - continue; - } - if (aux[0] == 'N' && aux[1] == 'M') { - switch(aux[2]) { - case 'A': case 'C': case 'c': aux+=4; break; - case 'I': case 'i': case 'f': aux+=7; break; - default: - fprintf(stderr, "Unhandled type code for NM tag\n"); - return NULL; - } - continue; - } - - cr->ntags++; - - i32 = (aux[0]<<16) | (aux[1]<<8) | aux[2]; - kh_put(s_i2i, c->tags_used, i32, &r); - if (-1 == r) - return NULL; - - if (s->nTN >= s->aTN) { - s->aTN = s->aTN ? s->aTN*2 : 1024; - if (!(s->TN = realloc(s->TN, s->aTN * sizeof(*s->TN)))) - return NULL; - } - s->TN[s->nTN++] = i32; - cram_stats_add(c->stats[DS_TN], i32); - - switch(aux[2]) { - case 'A': case 'C': case 'c': - aux+=3; //*tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - *tmp++=*aux++; - break; - - case 'S': case 's': - aux+=3; //*tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - *tmp++=*aux++; *tmp++=*aux++; - break; - - case 'I': case 'i': case 'f': - aux+=3; //*tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - break; - - case 'd': - aux+=3; //*tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - break; - - case 'Z': case 'H': - aux+=3; //*tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - while ((*tmp++=*aux++)); - *tmp++ = '\t'; // stop byte - break; - - case 'B': { - int type = aux[3], blen; - uint32_t count = (uint32_t)((((unsigned char *)aux)[4]<< 0) + - (((unsigned char *)aux)[5]<< 8) + - (((unsigned char *)aux)[6]<<16) + - (((unsigned char *)aux)[7]<<24)); - // skip TN field - aux+=3; //*tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - - // We use BYTE_ARRAY_LEN with external length, so store that first - switch (type) { - case 'c': case 'C': - blen = count; - break; - case 's': case 'S': - blen = 2*count; - break; - case 'i': case 'I': case 'f': - blen = 4*count; - break; - default: - fprintf(stderr, "Unknown sub-type '%c' for aux type 'B'\n", - type); - return NULL; - - } - - tmp += itf8_put(tmp, blen+5); - - *tmp++=*aux++; // sub-type & length - *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - - // The tag data itself - memcpy(tmp, aux, blen); tmp += blen; aux += blen; - - //cram_stats_add(c->aux_B_stats, blen); - break; - } - default: - fprintf(stderr, "Unknown aux type '%c'\n", aux[2]); - return NULL; - } - } - cram_stats_add(c->stats[DS_TC], cr->ntags); - - cr->aux = BLOCK_SIZE(s->aux_blk); - cr->aux_size = (uc *)tmp - (BLOCK_DATA(s->aux_blk) + cr->aux); - BLOCK_SIZE(s->aux_blk) = (uc *)tmp - BLOCK_DATA(s->aux_blk); - assert(s->aux_blk->byte <= s->aux_blk->alloc); - - return rg; -} - -/* - * Encodes auxiliary data. Largely duplicated from above, but done so to - * keep it simple and avoid a myriad of version ifs. - * - * Returns the read-group parsed out of the BAM aux fields on success - * NULL on failure or no rg present (FIXME) - */ -static char *cram_encode_aux(cram_fd *fd, bam_seq_t *b, cram_container *c, - cram_slice *s, cram_record *cr) { - char *aux, *orig, *tmp, *rg = NULL; - int aux_size = bam_get_l_aux(b); - cram_block *td_b = c->comp_hdr->TD_blk; - int TD_blk_size = BLOCK_SIZE(td_b), new; - char *key; - khint_t k; - - - /* Worst case is 1 nul char on every ??:Z: string, so +33% */ - BLOCK_GROW(s->aux_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_blk); - - - orig = aux = (char *)bam_aux(b); - - // Copy aux keys to td_b and aux values to s->aux_blk - while (aux - orig < aux_size && aux[0] != 0) { - uint32_t i32; - int r; - - if (aux[0] == 'R' && aux[1] == 'G' && aux[2] == 'Z') { - rg = &aux[3]; - while (*aux++); - continue; - } - if (aux[0] == 'M' && aux[1] == 'D' && aux[2] == 'Z') { - while (*aux++); - continue; - } - if (aux[0] == 'N' && aux[1] == 'M') { - switch(aux[2]) { - case 'A': case 'C': case 'c': aux+=4; break; - case 'S': case 's': aux+=5; break; - case 'I': case 'i': case 'f': aux+=7; break; - default: - fprintf(stderr, "Unhandled type code for NM tag\n"); - return NULL; - } - continue; - } - - BLOCK_APPEND(td_b, aux, 3); - - i32 = (aux[0]<<16) | (aux[1]<<8) | aux[2]; - kh_put(s_i2i, c->tags_used, i32, &r); - if (-1 == r) - return NULL; - - // BQ:Z - if (aux[0] == 'B' && aux[1] == 'Q' && aux[2] == 'Z') { - char *tmp; - if (!s->aux_BQ_blk) - if (!(s->aux_BQ_blk = cram_new_block(EXTERNAL, DS_aux_BQ))) - return NULL; - BLOCK_GROW(s->aux_BQ_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_BQ_blk); - aux += 3; - while ((*tmp++=*aux++)); - *tmp++ = '\t'; - BLOCK_SIZE(s->aux_BQ_blk) = (uc *)tmp - BLOCK_DATA(s->aux_BQ_blk); - continue; - } - - // BD:Z - if (aux[0] == 'B' && aux[1]=='D' && aux[2] == 'Z') { - char *tmp; - if (!s->aux_BD_blk) - if (!(s->aux_BD_blk = cram_new_block(EXTERNAL, DS_aux_BD))) - return NULL; - BLOCK_GROW(s->aux_BD_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_BD_blk); - aux += 3; - while ((*tmp++=*aux++)); - *tmp++ = '\t'; - BLOCK_SIZE(s->aux_BD_blk) = (uc *)tmp - BLOCK_DATA(s->aux_BD_blk); - continue; - } - - // BI:Z - if (aux[0] == 'B' && aux[1]=='I' && aux[2] == 'Z') { - char *tmp; - if (!s->aux_BI_blk) - if (!(s->aux_BI_blk = cram_new_block(EXTERNAL, DS_aux_BI))) - return NULL; - BLOCK_GROW(s->aux_BI_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_BI_blk); - aux += 3; - while ((*tmp++=*aux++)); - *tmp++ = '\t'; - BLOCK_SIZE(s->aux_BI_blk) = (uc *)tmp - BLOCK_DATA(s->aux_BI_blk); - continue; - } - - // OQ:Z: - if (aux[0] == 'O' && aux[1] == 'Q' && aux[2] == 'Z') { - char *tmp; - if (!s->aux_OQ_blk) - if (!(s->aux_OQ_blk = cram_new_block(EXTERNAL, DS_aux_OQ))) - return NULL; - BLOCK_GROW(s->aux_OQ_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_OQ_blk); - aux += 3; - while ((*tmp++=*aux++)); - *tmp++ = '\t'; - BLOCK_SIZE(s->aux_OQ_blk) = (uc *)tmp - BLOCK_DATA(s->aux_OQ_blk); - continue; - } - - // FZ:B or ZM:B - if ((aux[0] == 'F' && aux[1] == 'Z' && aux[2] == 'B') || - (aux[0] == 'Z' && aux[1] == 'M' && aux[2] == 'B')) { - int type = aux[3], blen; - uint32_t count = (uint32_t)((((unsigned char *)aux)[4]<< 0) + - (((unsigned char *)aux)[5]<< 8) + - (((unsigned char *)aux)[6]<<16) + - (((unsigned char *)aux)[7]<<24)); - char *tmp; - if (!s->aux_FZ_blk) - if (!(s->aux_FZ_blk = cram_new_block(EXTERNAL, DS_aux_FZ))) - return NULL; - BLOCK_GROW(s->aux_FZ_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_FZ_blk); - - // skip TN field - aux+=3; - - // We use BYTE_ARRAY_LEN with external length, so store that first - switch (type) { - case 'c': case 'C': - blen = count; - break; - case 's': case 'S': - blen = 2*count; - break; - case 'i': case 'I': case 'f': - blen = 4*count; - break; - default: - fprintf(stderr, "Unknown sub-type '%c' for aux type 'B'\n", - type); - return NULL; - - } - - blen += 5; // sub-type & length - tmp += itf8_put(tmp, blen); - - // The tag data itself - memcpy(tmp, aux, blen); tmp += blen; aux += blen; - - BLOCK_SIZE(s->aux_FZ_blk) = (uc *)tmp - BLOCK_DATA(s->aux_FZ_blk); - continue; - } - - // Other quality data - {Q2,E2,U2,CQ}:Z and similar - if (((aux[0] == 'Q' && aux[1] == '2') || - (aux[0] == 'U' && aux[1] == '2') || - (aux[0] == 'Q' && aux[1] == 'T') || - (aux[0] == 'C' && aux[1] == 'Q')) && aux[2] == 'Z') { - char *tmp; - if (!s->aux_oq_blk) - if (!(s->aux_oq_blk = cram_new_block(EXTERNAL, DS_aux_oq))) - return NULL; - BLOCK_GROW(s->aux_oq_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_oq_blk); - aux += 3; - while ((*tmp++=*aux++)); - *tmp++ = '\t'; - BLOCK_SIZE(s->aux_oq_blk) = (uc *)tmp - BLOCK_DATA(s->aux_oq_blk); - continue; - } - - // Other sequence data - {R2,E2,CS,BC,RT}:Z and similar - if (((aux[0] == 'R' && aux[1] == '2') || - (aux[0] == 'E' && aux[1] == '2') || - (aux[0] == 'C' && aux[1] == 'S') || - (aux[0] == 'B' && aux[1] == 'C') || - (aux[0] == 'R' && aux[1] == 'T')) && aux[2] == 'Z') { - char *tmp; - if (!s->aux_os_blk) - if (!(s->aux_os_blk = cram_new_block(EXTERNAL, DS_aux_os))) - return NULL; - BLOCK_GROW(s->aux_os_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_os_blk); - aux += 3; - while ((*tmp++=*aux++)); - *tmp++ = '\t'; - BLOCK_SIZE(s->aux_os_blk) = (uc *)tmp - BLOCK_DATA(s->aux_os_blk); - continue; - } - - - switch(aux[2]) { - case 'A': case 'C': case 'c': - aux+=3; - *tmp++=*aux++; - break; - - case 'S': case 's': - aux+=3; - *tmp++=*aux++; *tmp++=*aux++; - break; - - case 'I': case 'i': case 'f': - aux+=3; - *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - break; - - case 'd': - aux+=3; //*tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; *tmp++=*aux++; - break; - - case 'Z': case 'H': - { - char *tmp; - if (!s->aux_oz_blk) - if (!(s->aux_oz_blk = cram_new_block(EXTERNAL, DS_aux_oz))) - return NULL; - BLOCK_GROW(s->aux_oz_blk, aux_size*1.34+1); - tmp = (char *)BLOCK_END(s->aux_oz_blk); - aux += 3; - while ((*tmp++=*aux++)); - *tmp++ = '\t'; - BLOCK_SIZE(s->aux_oz_blk) = (uc *)tmp - - BLOCK_DATA(s->aux_oz_blk); - } - break; - - case 'B': { - int type = aux[3], blen; - uint32_t count = (uint32_t)((((unsigned char *)aux)[4]<< 0) + - (((unsigned char *)aux)[5]<< 8) + - (((unsigned char *)aux)[6]<<16) + - (((unsigned char *)aux)[7]<<24)); - // skip TN field - aux+=3; - - // We use BYTE_ARRAY_LEN with external length, so store that first - switch (type) { - case 'c': case 'C': - blen = count; - break; - case 's': case 'S': - blen = 2*count; - break; - case 'i': case 'I': case 'f': - blen = 4*count; - break; - default: - fprintf(stderr, "Unknown sub-type '%c' for aux type 'B'\n", - type); - return NULL; - - } - - blen += 5; // sub-type & length - tmp += itf8_put(tmp, blen); - - // The tag data itself - memcpy(tmp, aux, blen); tmp += blen; aux += blen; - - //cram_stats_add(c->aux_B_stats, blen); - break; - } - default: - fprintf(stderr, "Unknown aux type '%c'\n", aux[2]); - return NULL; - } - } - - // FIXME: sort BLOCK_DATA(td_b) by char[3] triples - - // And and increment TD hash entry - BLOCK_APPEND_CHAR(td_b, 0); - - // Duplicate key as BLOCK_DATA() can be realloced to a new pointer. - key = string_ndup(c->comp_hdr->TD_keys, - (char *)BLOCK_DATA(td_b) + TD_blk_size, - BLOCK_SIZE(td_b) - TD_blk_size); - k = kh_put(m_s2i, c->comp_hdr->TD_hash, key, &new); - if (new < 0) { - return NULL; - } else if (new == 0) { - BLOCK_SIZE(td_b) = TD_blk_size; - } else { - kh_val(c->comp_hdr->TD_hash, k) = c->comp_hdr->nTL; - c->comp_hdr->nTL++; - } - - cr->TL = kh_val(c->comp_hdr->TD_hash, k); - cram_stats_add(c->stats[DS_TL], cr->TL); - - cr->aux = BLOCK_SIZE(s->aux_blk); - cr->aux_size = (uc *)tmp - (BLOCK_DATA(s->aux_blk) + cr->aux); - BLOCK_SIZE(s->aux_blk) = (uc *)tmp - BLOCK_DATA(s->aux_blk); - assert(s->aux_blk->byte <= s->aux_blk->alloc); - - return rg; -} - - -/* - * Handles creation of a new container or new slice, flushing any - * existing containers when appropriate. - * - * Really this is next slice, which may or may not lead to a new container. - * - * Returns cram_container pointer on success - * NULL on failure. - */ -static cram_container *cram_next_container(cram_fd *fd, bam_seq_t *b) { - cram_container *c = fd->ctr; - cram_slice *s; - int i; - - /* First occurence */ - if (c->curr_ref == -2) - c->curr_ref = bam_ref(b); - - if (c->slice) { - s = c->slice; - if (c->multi_seq) { - s->hdr->ref_seq_id = -2; - s->hdr->ref_seq_start = 0; - s->hdr->ref_seq_span = 0; - } else { - s->hdr->ref_seq_id = c->curr_ref; - s->hdr->ref_seq_start = c->first_base; - s->hdr->ref_seq_span = c->last_base - c->first_base + 1; - } - s->hdr->num_records = c->curr_rec; - - if (c->curr_slice == 0) { - if (c->ref_seq_id != s->hdr->ref_seq_id) - c->ref_seq_id = s->hdr->ref_seq_id; - c->ref_seq_start = c->first_base; - } - - c->curr_slice++; - } - - /* Flush container */ - if (c->curr_slice == c->max_slice || - (bam_ref(b) != c->curr_ref && !c->multi_seq)) { - c->ref_seq_span = fd->last_base - c->ref_seq_start + 1; - if (fd->verbose) - fprintf(stderr, "Flush container %d/%d..%d\n", - c->ref_seq_id, c->ref_seq_start, - c->ref_seq_start + c->ref_seq_span -1); - - /* Encode slices */ - if (fd->pool) { - if (-1 == cram_flush_container_mt(fd, c)) - return NULL; - } else { - if (-1 == cram_flush_container(fd, c)) - return NULL; - - // Move to sep func, as we need cram_flush_container for - // the closing phase to flush the partial container. - for (i = 0; i < c->max_slice; i++) { - cram_free_slice(c->slices[i]); - c->slices[i] = NULL; - } - - c->slice = NULL; - c->curr_slice = 0; - - /* Easy approach for purposes of freeing stats */ - cram_free_container(c); - } - - c = fd->ctr = cram_new_container(fd->seqs_per_slice, - fd->slices_per_container); - if (!c) - return NULL; - c->record_counter = fd->record_counter; - c->curr_ref = bam_ref(b); - } - - c->last_pos = c->first_base = c->last_base = bam_pos(b)+1; - - /* New slice */ - c->slice = c->slices[c->curr_slice] = - cram_new_slice(MAPPED_SLICE, c->max_rec); - if (!c->slice) - return NULL; - - if (c->multi_seq) { - c->slice->hdr->ref_seq_id = -2; - c->slice->hdr->ref_seq_start = 0; - c->slice->last_apos = 1; - } else { - c->slice->hdr->ref_seq_id = bam_ref(b); - // wrong for unsorted data, will fix during encoding. - c->slice->hdr->ref_seq_start = bam_pos(b)+1; - c->slice->last_apos = bam_pos(b)+1; - } - - c->curr_rec = 0; - - return c; -} - -/* - * Converts a single bam record into a cram record. - * Possibly used within a thread. - * - * Returns 0 on success; - * -1 on failure - */ -static int process_one_read(cram_fd *fd, cram_container *c, - cram_slice *s, cram_record *cr, - bam_seq_t *b, int rnum) { - int i, fake_qual = -1; - char *cp, *rg; - char *ref, *seq, *qual; - - // FIXME: multi-ref containers - - ref = c->ref; - cr->len = bam_seq_len(b); cram_stats_add(c->stats[DS_RL], cr->len); - - //fprintf(stderr, "%s => %d\n", rg ? rg : "\"\"", cr->rg); - - // Fields to resolve later - //cr->mate_line; // index to another cram_record - //cr->mate_flags; // MF - //cr->ntags; // TC - cr->ntags = 0; //cram_stats_add(c->stats[DS_TC], cr->ntags); - if (CRAM_MAJOR_VERS(fd->version) == 1) - rg = cram_encode_aux_1_0(fd, b, c, s, cr); - else - rg = cram_encode_aux(fd, b, c, s, cr); - - //cr->aux_size = b->blk_size - ((char *)bam_aux(b) - (char *)&bam_ref(b)); - //cr->aux = DSTRING_LEN(s->aux_ds); - //dstring_nappend(s->aux_ds, bam_aux(b), cr->aux_size); - - /* Read group, identified earlier */ - if (rg) { - SAM_RG *brg = sam_hdr_find_rg(fd->header, rg); - cr->rg = brg ? brg->id : -1; - } else if (CRAM_MAJOR_VERS(fd->version) == 1) { - SAM_RG *brg = sam_hdr_find_rg(fd->header, "UNKNOWN"); - assert(brg); - } else { - cr->rg = -1; - } - cram_stats_add(c->stats[DS_RG], cr->rg); - - - cr->ref_id = bam_ref(b); cram_stats_add(c->stats[DS_RI], cr->ref_id); - cr->flags = bam_flag(b); - if (bam_cigar_len(b) == 0) - cr->flags |= BAM_FUNMAP; - cram_stats_add(c->stats[DS_BF], fd->cram_flag_swap[cr->flags & 0xfff]); - - // Non reference based encoding means storing the bases verbatim as features, which in - // turn means every base also has a quality already stored. - if (!fd->no_ref || CRAM_MAJOR_VERS(fd->version) >= 3) - cr->cram_flags = CRAM_FLAG_PRESERVE_QUAL_SCORES; - else - cr->cram_flags = 0; - //cram_stats_add(c->stats[DS_CF], cr->cram_flags); - - c->num_bases += cr->len; - cr->apos = bam_pos(b)+1; - if (c->pos_sorted) { - if (cr->apos < s->last_apos) { - c->pos_sorted = 0; - } else { - cram_stats_add(c->stats[DS_AP], cr->apos - s->last_apos); - s->last_apos = cr->apos; - } - } else { - //cram_stats_add(c->stats[DS_AP], cr->apos); - } - c->max_apos += (cr->apos > c->max_apos) * (cr->apos - c->max_apos); - - cr->name = BLOCK_SIZE(s->name_blk); - cr->name_len = bam_name_len(b); - cram_stats_add(c->stats[DS_RN], cr->name_len); - - BLOCK_APPEND(s->name_blk, bam_name(b), bam_name_len(b)); - - - /* - * This seqs_ds is largely pointless and it could reuse the same memory - * over and over. - * s->base_blk is what we need for encoding. - */ - cr->seq = BLOCK_SIZE(s->seqs_blk); - cr->qual = BLOCK_SIZE(s->qual_blk); - BLOCK_GROW(s->seqs_blk, cr->len+1); - BLOCK_GROW(s->qual_blk, cr->len); - seq = cp = (char *)BLOCK_END(s->seqs_blk); - - *seq = 0; -#ifdef ALLOW_UAC - { - // Convert seq 2 bases at a time for speed. - static const uint16_t code2base[256] = { - 15677, 16701, 17213, 19773, 18237, 21053, 21309, 22077, - 21565, 22333, 22845, 18493, 19261, 17469, 16957, 20029, - 15681, 16705, 17217, 19777, 18241, 21057, 21313, 22081, - 21569, 22337, 22849, 18497, 19265, 17473, 16961, 20033, - 15683, 16707, 17219, 19779, 18243, 21059, 21315, 22083, - 21571, 22339, 22851, 18499, 19267, 17475, 16963, 20035, - 15693, 16717, 17229, 19789, 18253, 21069, 21325, 22093, - 21581, 22349, 22861, 18509, 19277, 17485, 16973, 20045, - 15687, 16711, 17223, 19783, 18247, 21063, 21319, 22087, - 21575, 22343, 22855, 18503, 19271, 17479, 16967, 20039, - 15698, 16722, 17234, 19794, 18258, 21074, 21330, 22098, - 21586, 22354, 22866, 18514, 19282, 17490, 16978, 20050, - 15699, 16723, 17235, 19795, 18259, 21075, 21331, 22099, - 21587, 22355, 22867, 18515, 19283, 17491, 16979, 20051, - 15702, 16726, 17238, 19798, 18262, 21078, 21334, 22102, - 21590, 22358, 22870, 18518, 19286, 17494, 16982, 20054, - 15700, 16724, 17236, 19796, 18260, 21076, 21332, 22100, - 21588, 22356, 22868, 18516, 19284, 17492, 16980, 20052, - 15703, 16727, 17239, 19799, 18263, 21079, 21335, 22103, - 21591, 22359, 22871, 18519, 19287, 17495, 16983, 20055, - 15705, 16729, 17241, 19801, 18265, 21081, 21337, 22105, - 21593, 22361, 22873, 18521, 19289, 17497, 16985, 20057, - 15688, 16712, 17224, 19784, 18248, 21064, 21320, 22088, - 21576, 22344, 22856, 18504, 19272, 17480, 16968, 20040, - 15691, 16715, 17227, 19787, 18251, 21067, 21323, 22091, - 21579, 22347, 22859, 18507, 19275, 17483, 16971, 20043, - 15684, 16708, 17220, 19780, 18244, 21060, 21316, 22084, - 21572, 22340, 22852, 18500, 19268, 17476, 16964, 20036, - 15682, 16706, 17218, 19778, 18242, 21058, 21314, 22082, - 21570, 22338, 22850, 18498, 19266, 17474, 16962, 20034, - 15694, 16718, 17230, 19790, 18254, 21070, 21326, 22094, - 21582, 22350, 22862, 18510, 19278, 17486, 16974, 20046 - }; - - int l2 = cr->len / 2; - unsigned char *from = (unsigned char *)bam_seq(b); - uint16_t *cpi = (uint16_t *)cp; - cp[0] = 0; - for (i = 0; i < l2; i++) - cpi[i] = le_int2(code2base[from[i]]); - if ((i *= 2) < cr->len) - cp[i] = seq_nt16_str[bam_seqi(bam_seq(b), i)]; - } -#else - for (i = 0; i < cr->len; i++) - cp[i] = seq_nt16_str[bam_seqi(bam_seq(b), i)]; -#endif - BLOCK_SIZE(s->seqs_blk) += cr->len; - - qual = cp = (char *)bam_qual(b); - - /* Copy and parse */ - if (!(cr->flags & BAM_FUNMAP)) { - int32_t *cig_to, *cig_from; - int apos = cr->apos-1, spos = 0; - - cr->cigar = s->ncigar; - cr->ncigar = bam_cigar_len(b); - while (cr->cigar + cr->ncigar >= s->cigar_alloc) { - s->cigar_alloc = s->cigar_alloc ? s->cigar_alloc*2 : 1024; - s->cigar = realloc(s->cigar, s->cigar_alloc * sizeof(*s->cigar)); - if (!s->cigar) - return -1; - } - - cig_to = (int32_t *)s->cigar; - cig_from = (int32_t *)bam_cigar(b); - - cr->feature = 0; - cr->nfeature = 0; - for (i = 0; i < cr->ncigar; i++) { - enum cigar_op cig_op = cig_from[i] & BAM_CIGAR_MASK; - int cig_len = cig_from[i] >> BAM_CIGAR_SHIFT; - cig_to[i] = cig_from[i]; - - /* Can also generate events from here for CRAM diffs */ - - switch (cig_op) { - int l; - - // Don't trust = and X ops to be correct. - case BAM_CMATCH: - case BAM_CBASE_MATCH: - case BAM_CBASE_MISMATCH: - //fprintf(stderr, "\nBAM_CMATCH\nR: %.*s\nS: %.*s\n", - // cig_len, &ref[apos], cig_len, &seq[spos]); - l = 0; - if (!fd->no_ref && cr->len) { - int end = cig_len+apos < c->ref_end - ? cig_len : c->ref_end - apos; - char *sp = &seq[spos]; - char *rp = &ref[apos]; - char *qp = &qual[spos]; - for (l = 0; l < end; l++) { - if (rp[l] != sp[l]) { - if (!sp[l]) - break; - if (0 && CRAM_MAJOR_VERS(fd->version) >= 3) { - // Disabled for the time being as it doesn't - // seem to gain us much. - int ol=l; - while (l 1) { - if (cram_add_bases(fd, c, s, cr, spos+ol, - l-ol, &seq[spos+ol])) - return -1; - l--; - } else { - l = ol; - if (cram_add_substitution(fd, c, s, cr, - spos+l, sp[l], - qp[l], rp[l])) - return -1; - } - } else { - if (cram_add_substitution(fd, c, s, cr, spos+l, - sp[l], qp[l], rp[l])) - return -1; - } - } - } - spos += l; - apos += l; - } - - if (l < cig_len && cr->len) { - if (fd->no_ref) { - if (CRAM_MAJOR_VERS(fd->version) == 3) { - if (cram_add_bases(fd, c, s, cr, spos, - cig_len-l, &seq[spos])) - return -1; - spos += cig_len-l; - } else { - for (; l < cig_len && seq[spos]; l++, spos++) { - if (cram_add_base(fd, c, s, cr, spos, - seq[spos], qual[spos])) - return -1; - } - } - } else { - /* off end of sequence or non-ref based output */ - for (; l < cig_len && seq[spos]; l++, spos++) { - if (cram_add_base(fd, c, s, cr, spos, - seq[spos], qual[spos])) - return -1; - } - } - apos += cig_len; - } else if (!cr->len) { - /* Seq "*" */ - apos += cig_len; - spos += cig_len; - } - break; - - case BAM_CDEL: - if (cram_add_deletion(c, s, cr, spos, cig_len, &seq[spos])) - return -1; - apos += cig_len; - break; - - case BAM_CREF_SKIP: - if (cram_add_skip(c, s, cr, spos, cig_len, &seq[spos])) - return -1; - apos += cig_len; - break; - - case BAM_CINS: - if (cram_add_insertion(c, s, cr, spos, cig_len, - cr->len ? &seq[spos] : NULL)) - return -1; - if (fd->no_ref && cr->len) { - for (l = 0; l < cig_len; l++, spos++) { - cram_add_quality(fd, c, s, cr, spos, qual[spos]); - } - } else { - spos += cig_len; - } - break; - - case BAM_CSOFT_CLIP: - if (cram_add_softclip(c, s, cr, spos, cig_len, - cr->len ? &seq[spos] : NULL, - fd->version)) - return -1; - if (fd->no_ref && - !(cr->cram_flags & CRAM_FLAG_PRESERVE_QUAL_SCORES)) { - if (cr->len) { - for (l = 0; l < cig_len; l++, spos++) { - cram_add_quality(fd, c, s, cr, spos, qual[spos]); - } - } else { - for (l = 0; l < cig_len; l++, spos++) { - cram_add_quality(fd, c, s, cr, spos, -1); - } - } - } else { - spos += cig_len; - } - break; - - case BAM_CHARD_CLIP: - if (cram_add_hardclip(c, s, cr, spos, cig_len, &seq[spos])) - return -1; - break; - - case BAM_CPAD: - if (cram_add_pad(c, s, cr, spos, cig_len, &seq[spos])) - return -1; - break; - } - } - fake_qual = spos; - cr->aend = MIN(apos, c->ref_end); - cram_stats_add(c->stats[DS_FN], cr->nfeature); - } else { - // Unmapped - cr->cram_flags |= CRAM_FLAG_PRESERVE_QUAL_SCORES; - cr->cigar = 0; - cr->ncigar = 0; - cr->nfeature = 0; - cr->aend = cr->apos; - for (i = 0; i < cr->len; i++) - cram_stats_add(c->stats[DS_BA], seq[i]); - } - - /* - * Append to the qual block now. We do this here as - * cram_add_substitution() can generate BA/QS events which need to - * be in the qual block before we append the rest of the data. - */ - if (cr->cram_flags & CRAM_FLAG_PRESERVE_QUAL_SCORES) { - /* Special case of seq "*" */ - if (cr->len == 0) { - cram_stats_add(c->stats[DS_RL], cr->len = fake_qual); - BLOCK_GROW(s->qual_blk, cr->len); - cp = (char *)BLOCK_END(s->qual_blk); - memset(cp, 255, cr->len); - } else { - BLOCK_GROW(s->qual_blk, cr->len); - cp = (char *)BLOCK_END(s->qual_blk); - char *from = (char *)&bam_qual(b)[0]; - char *to = &cp[0]; - memcpy(to, from, cr->len); - //for (i = 0; i < cr->len; i++) cp[i] = from[i]; - } - BLOCK_SIZE(s->qual_blk) += cr->len; - } else { - if (cr->len == 0) { - cr->len = fake_qual >= 0 ? fake_qual : cr->aend - cr->apos + 1; - cram_stats_add(c->stats[DS_RL], cr->len); - } - } - - /* Now we know apos and aend both, update mate-pair information */ - { - int new; - khint_t k; - int sec = (cr->flags & BAM_FSECONDARY) ? 1 : 0; - - //fprintf(stderr, "Checking %"PRId64"/%.*s\t", rnum, - // cr->name_len, DSTRING_STR(s->name_ds)+cr->name); - if (cr->flags & BAM_FPAIRED) { - char *key = string_ndup(s->pair_keys, - (char *)BLOCK_DATA(s->name_blk)+cr->name, - cr->name_len); - if (!key) - return -1; - - k = kh_put(m_s2i, s->pair[sec], key, &new); - if (-1 == new) - return -1; - else if (new > 0) - kh_val(s->pair[sec], k) = rnum; - } else { - new = 1; - } - - if (new == 0) { - cram_record *p = &s->crecs[kh_val(s->pair[sec], k)]; - int aleft, aright, sign; - - aleft = MIN(cr->apos, p->apos); - aright = MAX(cr->aend, p->aend); - if (cr->apos < p->apos) { - sign = 1; - } else if (cr->apos > p->apos) { - sign = -1; - } else if (cr->flags & BAM_FREAD1) { - sign = 1; - } else { - sign = -1; - } - - //fprintf(stderr, "paired %"PRId64"\n", kh_val(s->pair[sec], k)); - - // This vs p: tlen, matepos, flags - if (bam_ins_size(b) != sign*(aright-aleft+1)) - goto detached; - - if (MAX(bam_mate_pos(b)+1, 0) != p->apos) - goto detached; - - if (((bam_flag(b) & BAM_FMUNMAP) != 0) != - ((p->flags & BAM_FUNMAP) != 0)) - goto detached; - - if (((bam_flag(b) & BAM_FMREVERSE) != 0) != - ((p->flags & BAM_FREVERSE) != 0)) - goto detached; - - - // p vs this: tlen, matepos, flags - if (p->tlen != -sign*(aright-aleft+1)) - goto detached; - - if (p->mate_pos != cr->apos) - goto detached; - - if (((p->flags & BAM_FMUNMAP) != 0) != - ((p->mate_flags & CRAM_M_UNMAP) != 0)) - goto detached; - - if (((p->flags & BAM_FMREVERSE) != 0) != - ((p->mate_flags & CRAM_M_REVERSE) != 0)) - goto detached; - - // Supplementary reads are just too ill defined - if ((cr->flags & BAM_FSUPPLEMENTARY) || - (p->flags & BAM_FSUPPLEMENTARY)) - goto detached; - - /* - * The fields below are unused when encoding this read as it is - * no longer detached. In theory they may get referred to when - * processing a 3rd or 4th read in this template?, so we set them - * here just to be sure. - * - * They do not need cram_stats_add() calls those as they are - * not emitted. - */ - cr->mate_pos = p->apos; - cr->tlen = sign*(aright-aleft+1); - cr->mate_flags = - ((p->flags & BAM_FMUNMAP) == BAM_FMUNMAP) * CRAM_M_UNMAP + - ((p->flags & BAM_FMREVERSE) == BAM_FMREVERSE) * CRAM_M_REVERSE; - - // Decrement statistics aggregated earlier - cram_stats_del(c->stats[DS_NP], p->mate_pos); - cram_stats_del(c->stats[DS_MF], p->mate_flags); - cram_stats_del(c->stats[DS_TS], p->tlen); - cram_stats_del(c->stats[DS_NS], p->mate_ref_id); - - /* Similarly we could correct the p-> values too, but these will no - * longer have any code that refers back to them as the new 'p' - * for this template is our current 'cr'. - */ - //p->mate_pos = cr->apos; - //p->mate_flags = - // ((cr->flags & BAM_FMUNMAP) == BAM_FMUNMAP) * CRAM_M_UNMAP + - // ((cr->flags & BAM_FMREVERSE) == BAM_FMREVERSE)* CRAM_M_REVERSE; - //p->tlen = p->apos - cr->aend; - - // Clear detached from cr flags - cr->cram_flags &= ~CRAM_FLAG_DETACHED; - cram_stats_add(c->stats[DS_CF], cr->cram_flags); - - // Clear detached from p flags and set downstream - cram_stats_del(c->stats[DS_CF], p->cram_flags); - p->cram_flags &= ~CRAM_FLAG_DETACHED; - p->cram_flags |= CRAM_FLAG_MATE_DOWNSTREAM; - cram_stats_add(c->stats[DS_CF], p->cram_flags); - - p->mate_line = rnum - (kh_val(s->pair[sec], k) + 1); - cram_stats_add(c->stats[DS_NF], p->mate_line); - - kh_val(s->pair[sec], k) = rnum; - } else { - detached: - //fprintf(stderr, "unpaired\n"); - - /* Derive mate flags from this flag */ - cr->mate_flags = 0; - if (bam_flag(b) & BAM_FMUNMAP) - cr->mate_flags |= CRAM_M_UNMAP; - if (bam_flag(b) & BAM_FMREVERSE) - cr->mate_flags |= CRAM_M_REVERSE; - - cram_stats_add(c->stats[DS_MF], cr->mate_flags); - - cr->mate_pos = MAX(bam_mate_pos(b)+1, 0); - cram_stats_add(c->stats[DS_NP], cr->mate_pos); - - cr->tlen = bam_ins_size(b); - cram_stats_add(c->stats[DS_TS], cr->tlen); - - cr->cram_flags |= CRAM_FLAG_DETACHED; - cram_stats_add(c->stats[DS_CF], cr->cram_flags); - cram_stats_add(c->stats[DS_NS], bam_mate_ref(b)); - } - } - - cr->mqual = bam_map_qual(b); - cram_stats_add(c->stats[DS_MQ], cr->mqual); - - cr->mate_ref_id = bam_mate_ref(b); - - if (!(bam_flag(b) & BAM_FUNMAP)) { - if (c->first_base > cr->apos) - c->first_base = cr->apos; - - if (c->last_base < cr->aend) - c->last_base = cr->aend; - } - - return 0; -} - -/* - * Write iterator: put BAM format sequences into a CRAM file. - * We buffer up a containers worth of data at a time. - * - * Returns 0 on success - * -1 on failure - */ -int cram_put_bam_seq(cram_fd *fd, bam_seq_t *b) { - cram_container *c; - - if (!fd->ctr) { - fd->ctr = cram_new_container(fd->seqs_per_slice, - fd->slices_per_container); - if (!fd->ctr) - return -1; - fd->ctr->record_counter = fd->record_counter; - } - c = fd->ctr; - - if (!c->slice || c->curr_rec == c->max_rec || - (bam_ref(b) != c->curr_ref && c->curr_ref >= -1)) { - int slice_rec, curr_rec, multi_seq = fd->multi_seq == 1; - int curr_ref = c->slice ? c->curr_ref : bam_ref(b); - - - /* - * Start packing slices when we routinely have under 1/4tr full. - * - * This option isn't available if we choose to embed references - * since we can only have one per slice. - */ - if (fd->multi_seq == -1 && c->curr_rec < c->max_rec/4+10 && - fd->last_slice && fd->last_slice < c->max_rec/4+10 && - !fd->embed_ref) { - if (fd->verbose && !c->multi_seq) - fprintf(stderr, "Multi-ref enabled for this container\n"); - multi_seq = 1; - } - - slice_rec = c->slice_rec; - curr_rec = c->curr_rec; - - if (CRAM_MAJOR_VERS(fd->version) == 1 || - c->curr_rec == c->max_rec || fd->multi_seq != 1 || !c->slice) { - if (NULL == (c = cram_next_container(fd, b))) { - if (fd->ctr) { - // prevent cram_close attempting to flush - cram_free_container(fd->ctr); - fd->ctr = NULL; - } - return -1; - } - } - - /* - * Due to our processing order, some things we've already done we - * cannot easily undo. So when we first notice we should be packing - * multiple sequences per container we emit the small partial - * container as-is and then start a fresh one in a different mode. - */ - if (multi_seq) { - fd->multi_seq = 1; - c->multi_seq = 1; - c->pos_sorted = 0; // required atm for multi_seq slices - - if (!c->refs_used) { - pthread_mutex_lock(&fd->ref_lock); - c->refs_used = calloc(fd->refs->nref, sizeof(int)); - pthread_mutex_unlock(&fd->ref_lock); - if (!c->refs_used) - return -1; - } - } - - fd->last_slice = curr_rec - slice_rec; - c->slice_rec = c->curr_rec; - - // Have we seen this reference before? - if (bam_ref(b) >= 0 && bam_ref(b) != curr_ref && !fd->embed_ref && - !fd->unsorted && multi_seq) { - - if (!c->refs_used) { - pthread_mutex_lock(&fd->ref_lock); - c->refs_used = calloc(fd->refs->nref, sizeof(int)); - pthread_mutex_unlock(&fd->ref_lock); - if (!c->refs_used) - return -1; - } else if (c->refs_used && c->refs_used[bam_ref(b)]) { - fprintf(stderr, "Unsorted mode enabled\n"); - pthread_mutex_lock(&fd->ref_lock); - fd->unsorted = 1; - pthread_mutex_unlock(&fd->ref_lock); - fd->multi_seq = 1; - } - } - - c->curr_ref = bam_ref(b); - if (c->refs_used && c->curr_ref >= 0) c->refs_used[c->curr_ref]++; - } - - if (!c->bams) { - /* First time through, allocate a set of bam pointers */ - pthread_mutex_lock(&fd->bam_list_lock); - if (fd->bl) { - spare_bams *spare = fd->bl; - c->bams = spare->bams; - fd->bl = spare->next; - free(spare); - } else { - c->bams = calloc(c->max_c_rec, sizeof(bam_seq_t *)); - if (!c->bams) - return -1; - } - pthread_mutex_unlock(&fd->bam_list_lock); - } - - /* Copy or alloc+copy the bam record, for later encoding */ - if (c->bams[c->curr_c_rec]) - bam_copy1(c->bams[c->curr_c_rec], b); - else - c->bams[c->curr_c_rec] = bam_dup(b); - - c->curr_rec++; - c->curr_c_rec++; - fd->record_counter++; - - return 0; -} diff --git a/htslib/cram/cram_encode.h b/htslib/cram/cram_encode.h deleted file mode 100644 index 9131d6e..0000000 --- a/htslib/cram/cram_encode.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -Copyright (c) 2012-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/*! \file - * Include cram.h instead. - * - * This is an internal part of the CRAM system and is automatically included - * when you #include cram.h. - * - * Implements the encoding portion of CRAM I/O. Also see - * cram_codecs.[ch] for the actual encoding functions themselves. - */ - -#ifndef _CRAM_WRITE_H_ -#define _CRAM_WRITE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ---------------------------------------------------------------------- - * CRAM sequence iterators. - */ - -/*! Write iterator: put BAM format sequences into a CRAM file. - * - * We buffer up a containers worth of data at a time. - * - * FIXME: break this into smaller pieces. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_put_bam_seq(cram_fd *fd, bam_seq_t *b); - - -/* ---------------------------------------------------------------------- - * Internal functions - */ - -/*! INTERNAL: - * Encodes a compression header block into a generic cram_block structure. - * - * @return - * Returns cram_block ptr on success; - * NULL on failure - */ -cram_block *cram_encode_compression_header(cram_fd *fd, cram_container *c, - cram_block_compression_hdr *h); - -/*! INTERNAL: - * Encodes a slice compression header. - * - * @return - * Returns cram_block on success; - * NULL on failure - */ -cram_block *cram_encode_slice_header(cram_fd *fd, cram_slice *s); - -/*! INTERNAL: - * Encodes all slices in a container into blocks. - * - * @return - * Returns 0 on success; - * -1 on failure - * - * FIXME: separate into encode_container and write_container. Ideally - * we should be able to do read_container / write_container or - * decode_container / encode_container. - */ -int cram_encode_container(cram_fd *fd, cram_container *c); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/cram/cram_index.c b/htslib/cram/cram_index.c deleted file mode 100644 index 8667223..0000000 --- a/htslib/cram/cram_index.c +++ /dev/null @@ -1,557 +0,0 @@ -/* -Copyright (c) 2013-2014 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * The index is a gzipped tab-delimited text file with one line per slice. - * The columns are: - * 1: reference number (0 to N-1, as per BAM ref_id) - * 2: reference position of 1st read in slice (1..?) - * 3: number of reads in slice - * 4: offset of container start (relative to end of SAM header, so 1st - * container is offset 0). - * 5: slice number within container (ie which landmark). - * - * In memory, we hold this in a nested containment list. Each list element is - * a cram_index struct. Each element in turn can contain its own list of - * cram_index structs. - * - * Any start..end range which is entirely contained within another (and - * earlier as it is sorted) range will be held within it. This ensures that - * the outer list will never have containments and we can safely do a - * binary search to find the first range which overlaps any given coordinate. - */ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "htslib/hfile.h" -#include "cram/cram.h" -#include "cram/os.h" -#include "cram/zfio.h" - -#if 0 -static void dump_index_(cram_index *e, int level) { - int i, n; - n = printf("%*s%d / %d .. %d, ", level*4, "", e->refid, e->start, e->end); - printf("%*soffset %"PRId64"\n", MAX(0,50-n), "", e->offset); - for (i = 0; i < e->nslice; i++) { - dump_index_(&e->e[i], level+1); - } -} - -static void dump_index(cram_fd *fd) { - int i; - for (i = 0; i < fd->index_sz; i++) { - dump_index_(&fd->index[i], 0); - } -} -#endif - -static int kget_int32(kstring_t *k, size_t *pos, int32_t *val_p) { - int sign = 1; - int32_t val = 0; - size_t p = *pos; - - while (p < k->l && (k->s[p] == ' ' || k->s[p] == '\t')) - p++; - - if (p < k->l && k->s[p] == '-') - sign = -1, p++; - - if (p >= k->l || !(k->s[p] >= '0' && k->s[p] <= '9')) - return -1; - - while (p < k->l && k->s[p] >= '0' && k->s[p] <= '9') - val = val*10 + k->s[p++]-'0'; - - *pos = p; - *val_p = sign*val; - - return 0; -} - -static int kget_int64(kstring_t *k, size_t *pos, int64_t *val_p) { - int sign = 1; - int64_t val = 0; - size_t p = *pos; - - while (p < k->l && (k->s[p] == ' ' || k->s[p] == '\t')) - p++; - - if (p < k->l && k->s[p] == '-') - sign = -1, p++; - - if (p >= k->l || !(k->s[p] >= '0' && k->s[p] <= '9')) - return -1; - - while (p < k->l && k->s[p] >= '0' && k->s[p] <= '9') - val = val*10 + k->s[p++]-'0'; - - *pos = p; - *val_p = sign*val; - - return 0; -} - -/* - * Loads a CRAM .crai index into memory. - * - * Returns 0 for success - * -1 for failure - */ -int cram_index_load(cram_fd *fd, const char *fn) { - char fn2[PATH_MAX]; - char buf[65536]; - ssize_t len; - kstring_t kstr = {0}; - hFILE *fp; - cram_index *idx; - cram_index **idx_stack = NULL, *ep, e; - int idx_stack_alloc = 0, idx_stack_ptr = 0; - size_t pos = 0; - - /* Check if already loaded */ - if (fd->index) - return 0; - - fd->index = calloc((fd->index_sz = 1), sizeof(*fd->index)); - if (!fd->index) - return -1; - - idx = &fd->index[0]; - idx->refid = -1; - idx->start = INT_MIN; - idx->end = INT_MAX; - - idx_stack = calloc(++idx_stack_alloc, sizeof(*idx_stack)); - idx_stack[idx_stack_ptr] = idx; - - sprintf(fn2, "%s.crai", fn); - if (!(fp = hopen(fn2, "r"))) { - perror(fn2); - free(idx_stack); - return -1; - } - - // Load the file into memory - while ((len = hread(fp, buf, 65536)) > 0) - kputsn(buf, len, &kstr); - if (len < 0 || kstr.l < 2) { - if (kstr.s) - free(kstr.s); - free(idx_stack); - return -1; - } - - if (hclose(fp)) { - if (kstr.s) - free(kstr.s); - free(idx_stack); - return -1; - } - - - // Uncompress if required - if (kstr.s[0] == 31 && (uc)kstr.s[1] == 139) { - size_t l; - char *s = zlib_mem_inflate(kstr.s, kstr.l, &l); - free(kstr.s); - if (!s) { - free(idx_stack); - return -1; - } - kstr.s = s; - kstr.l = l; - kstr.m = l; // conservative estimate of the size allocated - kputsn("", 0, &kstr); // ensure kstr.s is NUL-terminated - } - - - // Parse it line at a time - do { - /* 1.1 layout */ - if (kget_int32(&kstr, &pos, &e.refid) == -1) { - free(kstr.s); free(idx_stack); return -1; - } - if (kget_int32(&kstr, &pos, &e.start) == -1) { - free(kstr.s); free(idx_stack); return -1; - } - if (kget_int32(&kstr, &pos, &e.end) == -1) { - free(kstr.s); free(idx_stack); return -1; - } - if (kget_int64(&kstr, &pos, &e.offset) == -1) { - free(kstr.s); free(idx_stack); return -1; - } - if (kget_int32(&kstr, &pos, &e.slice) == -1) { - free(kstr.s); free(idx_stack); return -1; - } - if (kget_int32(&kstr, &pos, &e.len) == -1) { - free(kstr.s); free(idx_stack); return -1; - } - - e.end += e.start-1; - //printf("%d/%d..%d\n", e.refid, e.start, e.end); - - if (e.refid < -1) { - free(kstr.s); - free(idx_stack); - fprintf(stderr, "Malformed index file, refid %d\n", e.refid); - return -1; - } - - if (e.refid != idx->refid) { - if (fd->index_sz < e.refid+2) { - size_t index_end = fd->index_sz * sizeof(*fd->index); - fd->index_sz = e.refid+2; - fd->index = realloc(fd->index, - fd->index_sz * sizeof(*fd->index)); - memset(((char *)fd->index) + index_end, 0, - fd->index_sz * sizeof(*fd->index) - index_end); - } - idx = &fd->index[e.refid+1]; - idx->refid = e.refid; - idx->start = INT_MIN; - idx->end = INT_MAX; - idx->nslice = idx->nalloc = 0; - idx->e = NULL; - idx_stack[(idx_stack_ptr = 0)] = idx; - } - - while (!(e.start >= idx->start && e.end <= idx->end)) { - idx = idx_stack[--idx_stack_ptr]; - } - - // Now contains, so append - if (idx->nslice+1 >= idx->nalloc) { - idx->nalloc = idx->nalloc ? idx->nalloc*2 : 16; - idx->e = realloc(idx->e, idx->nalloc * sizeof(*idx->e)); - } - - e.nalloc = e.nslice = 0; e.e = NULL; - *(ep = &idx->e[idx->nslice++]) = e; - idx = ep; - - if (++idx_stack_ptr >= idx_stack_alloc) { - idx_stack_alloc *= 2; - idx_stack = realloc(idx_stack, idx_stack_alloc*sizeof(*idx_stack)); - } - idx_stack[idx_stack_ptr] = idx; - - while (pos < kstr.l && kstr.s[pos] != '\n') - pos++; - pos++; - } while (pos < kstr.l); - - free(idx_stack); - free(kstr.s); - - // dump_index(fd); - - return 0; -} - -static void cram_index_free_recurse(cram_index *e) { - if (e->e) { - int i; - for (i = 0; i < e->nslice; i++) { - cram_index_free_recurse(&e->e[i]); - } - free(e->e); - } -} - -void cram_index_free(cram_fd *fd) { - int i; - - if (!fd->index) - return; - - for (i = 0; i < fd->index_sz; i++) { - cram_index_free_recurse(&fd->index[i]); - } - free(fd->index); - - fd->index = NULL; -} - -/* - * Searches the index for the first slice overlapping a reference ID - * and position, or one immediately preceeding it if none is found in - * the index to overlap this position. (Our index may have missing - * entries, but we require at least one per reference.) - * - * If the index finds multiple slices overlapping this position we - * return the first one only. Subsequent calls should specifying - * "from" as the last slice we checked to find the next one. Otherwise - * set "from" to be NULL to find the first one. - * - * Returns the cram_index pointer on sucess - * NULL on failure - */ -cram_index *cram_index_query(cram_fd *fd, int refid, int pos, - cram_index *from) { - int i, j, k; - cram_index *e; - - if (refid+1 < 0 || refid+1 >= fd->index_sz) - return NULL; - - i = 0, j = fd->index[refid+1].nslice-1; - - if (!from) - from = &fd->index[refid+1]; - - for (k = j/2; k != i; k = (j-i)/2 + i) { - if (from->e[k].refid > refid) { - j = k; - continue; - } - - if (from->e[k].refid < refid) { - i = k; - continue; - } - - if (from->e[k].start >= pos) { - j = k; - continue; - } - - if (from->e[k].start < pos) { - i = k; - continue; - } - } - // i==j or i==j-1. Check if j is better. - if (from->e[j].start < pos && from->e[j].refid == refid) - i = j; - - /* The above found *a* bin overlapping, but not necessarily the first */ - while (i > 0 && from->e[i-1].end >= pos) - i--; - - /* Special case for matching a start pos */ - if (i+1 < from->nslice && - from->e[i+1].start == pos && - from->e[i+1].refid == refid) - i++; - - e = &from->e[i]; - - return e; -} - - -/* - * Skips to a container overlapping the start coordinate listed in - * cram_range. - * - * In theory we call cram_index_query multiple times, once per slice - * overlapping the range. However slices may be absent from the index - * which makes this problematic. Instead we find the left-most slice - * and then read from then on, skipping decoding of slices and/or - * whole containers when they don't overlap the specified cram_range. - * - * Returns 0 on success - * -1 on failure - */ -int cram_seek_to_refpos(cram_fd *fd, cram_range *r) { - cram_index *e; - - // Ideally use an index, so see if we have one. - if ((e = cram_index_query(fd, r->refid, r->start, NULL))) { - if (0 != cram_seek(fd, e->offset, SEEK_SET)) - if (0 != cram_seek(fd, e->offset - fd->first_container, SEEK_CUR)) - return -1; - } else { - fprintf(stderr, "Unknown reference ID. Missing from index?\n"); - return -1; - } - - if (fd->ctr) { - cram_free_container(fd->ctr); - fd->ctr = NULL; - fd->ooc = 0; - } - - return 0; -} - - -/* - * A specialised form of cram_index_build (below) that deals with slices - * having multiple references in this (ref_id -2). In this scenario we - * decode the slice to look at the RI data series instead. - * - * Returns 0 on success - * -1 on failure - */ -static int cram_index_build_multiref(cram_fd *fd, - cram_container *c, - cram_slice *s, - zfp *fp, - off_t cpos, - int32_t landmark, - int sz) { - int i, ref = -2, ref_start = 0, ref_end; - char buf[1024]; - - if (0 != cram_decode_slice(fd, c, s, fd->header)) - return -1; - - ref_end = INT_MIN; - for (i = 0; i < s->hdr->num_records; i++) { - if (s->crecs[i].ref_id == ref) { - if (ref_end < s->crecs[i].aend) - ref_end = s->crecs[i].aend; - continue; - } - - if (ref != -2) { - sprintf(buf, "%d\t%d\t%d\t%"PRId64"\t%d\t%d\n", - ref, ref_start, ref_end - ref_start + 1, - (int64_t)cpos, landmark, sz); - zfputs(buf, fp); - } - - ref = s->crecs[i].ref_id; - ref_start = s->crecs[i].apos; - ref_end = INT_MIN; - } - - if (ref != -2) { - sprintf(buf, "%d\t%d\t%d\t%"PRId64"\t%d\t%d\n", - ref, ref_start, ref_end - ref_start + 1, - (int64_t)cpos, landmark, sz); - zfputs(buf, fp); - } - - return 0; -} - -/* - * Builds an index file. - * - * fd is a newly opened cram file that we wish to index. - * fn_base is the filename of the associated CRAM file. Internally we - * add ".crai" to this to get the index filename. - * - * Returns 0 on success - * -1 on failure - */ -int cram_index_build(cram_fd *fd, const char *fn_base) { - cram_container *c; - off_t cpos, spos, hpos; - zfp *fp; - char fn_idx[PATH_MAX]; - - if (strlen(fn_base) > PATH_MAX-6) - return -1; - - sprintf(fn_idx, "%s.crai", fn_base); - if (!(fp = zfopen(fn_idx, "wz"))) { - perror(fn_idx); - return -1; - } - - cpos = htell(fd->fp); - while ((c = cram_read_container(fd))) { - int j; - - if (fd->err) { - perror("Cram container read"); - return 1; - } - - hpos = htell(fd->fp); - - if (!(c->comp_hdr_block = cram_read_block(fd))) - return 1; - assert(c->comp_hdr_block->content_type == COMPRESSION_HEADER); - - c->comp_hdr = cram_decode_compression_header(fd, c->comp_hdr_block); - if (!c->comp_hdr) - return -1; - - // 2.0 format - for (j = 0; j < c->num_landmarks; j++) { - char buf[1024]; - cram_slice *s; - int sz; - - spos = htell(fd->fp); - assert(spos - cpos - c->offset == c->landmark[j]); - - if (!(s = cram_read_slice(fd))) { - zfclose(fp); - return -1; - } - - sz = (int)(htell(fd->fp) - spos); - - if (s->hdr->ref_seq_id == -2) { - cram_index_build_multiref(fd, c, s, fp, - cpos, c->landmark[j], sz); - } else { - sprintf(buf, "%d\t%d\t%d\t%"PRId64"\t%d\t%d\n", - s->hdr->ref_seq_id, s->hdr->ref_seq_start, - s->hdr->ref_seq_span, (int64_t)cpos, - c->landmark[j], sz); - zfputs(buf, fp); - } - - cram_free_slice(s); - } - - cpos = htell(fd->fp); - assert(cpos == hpos + c->length); - - cram_free_container(c); - } - if (fd->err) { - zfclose(fp); - return -1; - } - - - return zfclose(fp); -} diff --git a/htslib/cram/cram_index.h b/htslib/cram/cram_index.h deleted file mode 100644 index 5e3b8f5..0000000 --- a/htslib/cram/cram_index.h +++ /dev/null @@ -1,98 +0,0 @@ -/* -Copyright (c) 2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _CRAM_INDEX_H_ -#define _CRAM_INDEX_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Loads a CRAM .crai index into memory. - * Returns 0 for success - * -1 for failure - */ -int cram_index_load(cram_fd *fd, const char *fn); - -void cram_index_free(cram_fd *fd); - -/* - * Searches the index for the first slice overlapping a reference ID - * and position. - * - * Returns the cram_index pointer on sucess - * NULL on failure - */ -cram_index *cram_index_query(cram_fd *fd, int refid, int pos, cram_index *frm); - -/* - * Skips to a container overlapping the start coordinate listed in - * cram_range. - * - * Returns 0 on success - * -1 on failure - */ -int cram_seek_to_refpos(cram_fd *fd, cram_range *r); - -void cram_index_free(cram_fd *fd); - -/* - * Skips to a container overlapping the start coordinate listed in - * cram_range. - * - * In theory we call cram_index_query multiple times, once per slice - * overlapping the range. However slices may be absent from the index - * which makes this problematic. Instead we find the left-most slice - * and then read from then on, skipping decoding of slices and/or - * whole containers when they don't overlap the specified cram_range. - * - * Returns 0 on success - * -1 on failure - */ -int cram_seek_to_refpos(cram_fd *fd, cram_range *r); - -/* - * Builds an index file. - * - * fd is a newly opened cram file that we wish to index. - * fn_base is the filename of the associated CRAM file. Internally we - * add ".crai" to this to get the index filename. - * - * Returns 0 on success - * -1 on failure - */ -int cram_index_build(cram_fd *fd, const char *fn_base); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/cram/cram_io.c b/htslib/cram/cram_io.c deleted file mode 100644 index 5efc92d..0000000 --- a/htslib/cram/cram_io.c +++ /dev/null @@ -1,4202 +0,0 @@ -/* -Copyright (c) 2012-2014 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * CRAM I/O primitives. - * - * - ITF8 encoding and decoding. - * - Block based I/O - * - Zlib inflating and deflating (memory) - * - CRAM basic data structure reading and writing - * - File opening / closing - * - Reference sequence handling - */ - -/* - * TODO: BLOCK_GROW, BLOCK_RESIZE, BLOCK_APPEND and itf8_put_blk all need - * a way to return errors for when malloc fails. - */ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include -#include -#include -#include -#include -#ifdef HAVE_LIBBZ2 -#include -#endif -#ifdef HAVE_LIBLZMA -#include -#endif -#include -#include -#include -#include - -#include "cram/cram.h" -#include "cram/os.h" -#include "cram/md5.h" -#include "cram/open_trace_file.h" -#include "cram/rANS_static.h" - -//#define REF_DEBUG - -#ifdef REF_DEBUG -#include -#define gettid() (int)syscall(SYS_gettid) - -#define RP(...) fprintf (stderr, __VA_ARGS__) -#else -#define RP(...) -#endif - -#include "htslib/hfile.h" -#include "htslib/bgzf.h" -#include "htslib/faidx.h" - -#define TRIAL_SPAN 50 -#define NTRIALS 3 - - -/* ---------------------------------------------------------------------- - * ITF8 encoding and decoding. - * -* Also see the itf8_get and itf8_put macros in cram_io.h - */ - -/* - * Reads an integer in ITF-8 encoding from 'cp' and stores it in - * *val. - * - * Returns the number of bytes read on success - * -1 on failure - */ -int itf8_decode(cram_fd *fd, int32_t *val_p) { - static int nbytes[16] = { - 0,0,0,0, 0,0,0,0, // 0000xxxx - 0111xxxx - 1,1,1,1, // 1000xxxx - 1011xxxx - 2,2, // 1100xxxx - 1101xxxx - 3, // 1110xxxx - 4, // 1111xxxx - }; - - static int nbits[16] = { - 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, // 0000xxxx - 0111xxxx - 0x3f, 0x3f, 0x3f, 0x3f, // 1000xxxx - 1011xxxx - 0x1f, 0x1f, // 1100xxxx - 1101xxxx - 0x0f, // 1110xxxx - 0x0f, // 1111xxxx - }; - - int32_t val = hgetc(fd->fp); - if (val == -1) - return -1; - - int i = nbytes[val>>4]; - val &= nbits[val>>4]; - - switch(i) { - case 0: - *val_p = val; - return 1; - - case 1: - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val; - return 2; - - case 2: - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val; - return 3; - - case 3: - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val; - return 4; - - case 4: // really 3.5 more, why make it different? - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<4) | (((unsigned char)hgetc(fd->fp)) & 0x0f); - *val_p = val; - } - - return 5; -} - -/* - * Encodes and writes a single integer in ITF-8 format. - * Returns 0 on success - * -1 on failure - */ -int itf8_encode(cram_fd *fd, int32_t val) { - char buf[5]; - int len = itf8_put(buf, val); - return hwrite(fd->fp, buf, len) == len ? 0 : -1; -} - -#ifndef ITF8_MACROS -/* - * As above, but decoding from memory - */ -int itf8_get(char *cp, int32_t *val_p) { - unsigned char *up = (unsigned char *)cp; - - if (up[0] < 0x80) { - *val_p = up[0]; - return 1; - } else if (up[0] < 0xc0) { - *val_p = ((up[0] <<8) | up[1]) & 0x3fff; - return 2; - } else if (up[0] < 0xe0) { - *val_p = ((up[0]<<16) | (up[1]<< 8) | up[2]) & 0x1fffff; - return 3; - } else if (up[0] < 0xf0) { - *val_p = ((up[0]<<24) | (up[1]<<16) | (up[2]<<8) | up[3]) & 0x0fffffff; - return 4; - } else { - *val_p = ((up[0] & 0x0f)<<28) | (up[1]<<20) | (up[2]<<12) | (up[3]<<4) | (up[4] & 0x0f); - return 5; - } -} - -/* - * Stores a value to memory in ITF-8 format. - * - * Returns the number of bytes required to store the number. - * This is a maximum of 5 bytes. - */ -int itf8_put(char *cp, int32_t val) { - if (!(val & ~0x00000007f)) { // 1 byte - *cp = val; - return 1; - } else if (!(val & ~0x00003fff)) { // 2 byte - *cp++ = (val >> 8 ) | 0x80; - *cp = val & 0xff; - return 2; - } else if (!(val & ~0x01fffff)) { // 3 byte - *cp++ = (val >> 16) | 0xc0; - *cp++ = (val >> 8 ) & 0xff; - *cp = val & 0xff; - return 3; - } else if (!(val & ~0x0fffffff)) { // 4 byte - *cp++ = (val >> 24) | 0xe0; - *cp++ = (val >> 16) & 0xff; - *cp++ = (val >> 8 ) & 0xff; - *cp = val & 0xff; - return 4; - } else { // 5 byte - *cp++ = 0xf0 | ((val>>28) & 0xff); - *cp++ = (val >> 20) & 0xff; - *cp++ = (val >> 12) & 0xff; - *cp++ = (val >> 4 ) & 0xff; - *cp = val & 0x0f; - return 5; - } -} -#endif - -/* 64-bit itf8 variant */ -int ltf8_put(char *cp, int64_t val) { - if (!(val & ~((1LL<<7)-1))) { - *cp = val; - return 1; - } else if (!(val & ~((1LL<<(6+8))-1))) { - *cp++ = (val >> 8 ) | 0x80; - *cp = val & 0xff; - return 2; - } else if (!(val & ~((1LL<<(5+2*8))-1))) { - *cp++ = (val >> 16) | 0xc0; - *cp++ = (val >> 8 ) & 0xff; - *cp = val & 0xff; - return 3; - } else if (!(val & ~((1LL<<(4+3*8))-1))) { - *cp++ = (val >> 24) | 0xe0; - *cp++ = (val >> 16) & 0xff; - *cp++ = (val >> 8 ) & 0xff; - *cp = val & 0xff; - return 4; - } else if (!(val & ~((1LL<<(3+4*8))-1))) { - *cp++ = (val >> 32) | 0xf0; - *cp++ = (val >> 24) & 0xff; - *cp++ = (val >> 16) & 0xff; - *cp++ = (val >> 8 ) & 0xff; - *cp = val & 0xff; - return 5; - } else if (!(val & ~((1LL<<(2+5*8))-1))) { - *cp++ = (val >> 40) | 0xf8; - *cp++ = (val >> 32) & 0xff; - *cp++ = (val >> 24) & 0xff; - *cp++ = (val >> 16) & 0xff; - *cp++ = (val >> 8 ) & 0xff; - *cp = val & 0xff; - return 6; - } else if (!(val & ~((1LL<<(1+6*8))-1))) { - *cp++ = (val >> 48) | 0xfc; - *cp++ = (val >> 40) & 0xff; - *cp++ = (val >> 32) & 0xff; - *cp++ = (val >> 24) & 0xff; - *cp++ = (val >> 16) & 0xff; - *cp++ = (val >> 8 ) & 0xff; - *cp = val & 0xff; - return 7; - } else if (!(val & ~((1LL<<(7*8))-1))) { - *cp++ = (val >> 56) | 0xfe; - *cp++ = (val >> 48) & 0xff; - *cp++ = (val >> 40) & 0xff; - *cp++ = (val >> 32) & 0xff; - *cp++ = (val >> 24) & 0xff; - *cp++ = (val >> 16) & 0xff; - *cp++ = (val >> 8 ) & 0xff; - *cp = val & 0xff; - return 8; - } else { - *cp++ = 0xff; - *cp++ = (val >> 56) & 0xff; - *cp++ = (val >> 48) & 0xff; - *cp++ = (val >> 40) & 0xff; - *cp++ = (val >> 32) & 0xff; - *cp++ = (val >> 24) & 0xff; - *cp++ = (val >> 16) & 0xff; - *cp++ = (val >> 8 ) & 0xff; - *cp = val & 0xff; - return 9; - } -} - -int ltf8_get(char *cp, int64_t *val_p) { - unsigned char *up = (unsigned char *)cp; - - if (up[0] < 0x80) { - *val_p = up[0]; - return 1; - } else if (up[0] < 0xc0) { - *val_p = (((uint64_t)up[0]<< 8) | - (uint64_t)up[1]) & (((1LL<<(6+8)))-1); - return 2; - } else if (up[0] < 0xe0) { - *val_p = (((uint64_t)up[0]<<16) | - ((uint64_t)up[1]<< 8) | - (uint64_t)up[2]) & ((1LL<<(5+2*8))-1); - return 3; - } else if (up[0] < 0xf0) { - *val_p = (((uint64_t)up[0]<<24) | - ((uint64_t)up[1]<<16) | - ((uint64_t)up[2]<< 8) | - (uint64_t)up[3]) & ((1LL<<(4+3*8))-1); - return 4; - } else if (up[0] < 0xf8) { - *val_p = (((uint64_t)up[0]<<32) | - ((uint64_t)up[1]<<24) | - ((uint64_t)up[2]<<16) | - ((uint64_t)up[3]<< 8) | - (uint64_t)up[4]) & ((1LL<<(3+4*8))-1); - return 5; - } else if (up[0] < 0xfc) { - *val_p = (((uint64_t)up[0]<<40) | - ((uint64_t)up[1]<<32) | - ((uint64_t)up[2]<<24) | - ((uint64_t)up[3]<<16) | - ((uint64_t)up[4]<< 8) | - (uint64_t)up[5]) & ((1LL<<(2+5*8))-1); - return 6; - } else if (up[0] < 0xfe) { - *val_p = (((uint64_t)up[0]<<48) | - ((uint64_t)up[1]<<40) | - ((uint64_t)up[2]<<32) | - ((uint64_t)up[3]<<24) | - ((uint64_t)up[4]<<16) | - ((uint64_t)up[5]<< 8) | - (uint64_t)up[6]) & ((1LL<<(1+6*8))-1); - return 7; - } else if (up[0] < 0xff) { - *val_p = (((uint64_t)up[1]<<48) | - ((uint64_t)up[2]<<40) | - ((uint64_t)up[3]<<32) | - ((uint64_t)up[4]<<24) | - ((uint64_t)up[5]<<16) | - ((uint64_t)up[6]<< 8) | - (uint64_t)up[7]) & ((1LL<<(7*8))-1); - return 8; - } else { - *val_p = (((uint64_t)up[1]<<56) | - ((uint64_t)up[2]<<48) | - ((uint64_t)up[3]<<40) | - ((uint64_t)up[4]<<32) | - ((uint64_t)up[5]<<24) | - ((uint64_t)up[6]<<16) | - ((uint64_t)up[7]<< 8) | - (uint64_t)up[8]); - return 9; - } -} - -int ltf8_decode(cram_fd *fd, int64_t *val_p) { - int c = hgetc(fd->fp); - int64_t val = (unsigned char)c; - if (c == -1) - return -1; - - if (val < 0x80) { - *val_p = val; - return 1; - - } else if (val < 0xc0) { - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val & (((1LL<<(6+8)))-1); - return 2; - - } else if (val < 0xe0) { - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val & ((1LL<<(5+2*8))-1); - return 3; - - } else if (val < 0xf0) { - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val & ((1LL<<(4+3*8))-1); - return 4; - - } else if (val < 0xf8) { - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val & ((1LL<<(3+4*8))-1); - return 5; - - } else if (val < 0xfc) { - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val & ((1LL<<(2+5*8))-1); - return 6; - - } else if (val < 0xfe) { - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val & ((1LL<<(1+6*8))-1); - return 7; - - } else if (val < 0xff) { - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val & ((1LL<<(7*8))-1); - return 8; - - } else { - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - val = (val<<8) | (unsigned char)hgetc(fd->fp); - *val_p = val; - } - - return 9; -} - -/* - * Pushes a value in ITF8 format onto the end of a block. - * This shouldn't be used for high-volume data as it is not the fastest - * method. - * - * Returns the number of bytes written - */ -int itf8_put_blk(cram_block *blk, int val) { - char buf[5]; - int sz; - - sz = itf8_put(buf, val); - BLOCK_APPEND(blk, buf, sz); - return sz; -} - -/* - * Decodes a 32-bit little endian value from fd and stores in val. - * - * Returns the number of bytes read on success - * -1 on failure - */ -int int32_decode(cram_fd *fd, int32_t *val) { - int32_t i; - if (4 != hread(fd->fp, &i, 4)) - return -1; - - *val = le_int4(i); - return 4; -} - -/* - * Encodes a 32-bit little endian value 'val' and writes to fd. - * - * Returns the number of bytes written on success - * -1 on failure - */ -int int32_encode(cram_fd *fd, int32_t val) { - val = le_int4(val); - if (4 != hwrite(fd->fp, &val, 4)) - return -1; - - return 4; -} - -/* As int32_decoded/encode, but from/to blocks instead of cram_fd */ -int int32_get(cram_block *b, int32_t *val) { - if (b->uncomp_size - BLOCK_SIZE(b) < 4) - return -1; - - *val = - b->data[b->byte ] | - (b->data[b->byte+1] << 8) | - (b->data[b->byte+2] << 16) | - (b->data[b->byte+3] << 24); - BLOCK_SIZE(b) += 4; - return 4; -} - -/* As int32_decoded/encode, but from/to blocks instead of cram_fd */ -int int32_put(cram_block *b, int32_t val) { - unsigned char cp[4]; - cp[0] = ( val & 0xff); - cp[1] = ((val>>8) & 0xff); - cp[2] = ((val>>16) & 0xff); - cp[3] = ((val>>24) & 0xff); - - BLOCK_APPEND(b, cp, 4); - return b->data ? 0 : -1; -} - -/* ---------------------------------------------------------------------- - * zlib compression code - from Gap5's tg_iface_g.c - * They're static here as they're only used within the cram_compress_block - * and cram_uncompress_block functions, which are the external interface. - */ -char *zlib_mem_inflate(char *cdata, size_t csize, size_t *size) { - z_stream s; - unsigned char *data = NULL; /* Uncompressed output */ - int data_alloc = 0; - int err; - - /* Starting point at uncompressed size, and scale after that */ - data = malloc(data_alloc = csize*1.2+100); - if (!data) - return NULL; - - /* Initialise zlib stream */ - s.zalloc = Z_NULL; /* use default allocation functions */ - s.zfree = Z_NULL; - s.opaque = Z_NULL; - s.next_in = (unsigned char *)cdata; - s.avail_in = csize; - s.total_in = 0; - s.next_out = data; - s.avail_out = data_alloc; - s.total_out = 0; - - //err = inflateInit(&s); - err = inflateInit2(&s, 15 + 32); - if (err != Z_OK) { - fprintf(stderr, "zlib inflateInit error: %s\n", s.msg); - free(data); - return NULL; - } - - /* Decode to 'data' array */ - for (;s.avail_in;) { - unsigned char *data_tmp; - int alloc_inc; - - s.next_out = &data[s.total_out]; - err = inflate(&s, Z_NO_FLUSH); - if (err == Z_STREAM_END) - break; - - if (err != Z_OK) { - fprintf(stderr, "zlib inflate error: %s\n", s.msg); - break; - } - - /* More to come, so realloc based on growth so far */ - alloc_inc = (double)s.avail_in/s.total_in * s.total_out + 100; - data = realloc((data_tmp = data), data_alloc += alloc_inc); - if (!data) { - free(data_tmp); - return NULL; - } - s.avail_out += alloc_inc; - } - inflateEnd(&s); - - *size = s.total_out; - return (char *)data; -} - -static char *zlib_mem_deflate(char *data, size_t size, size_t *cdata_size, - int level, int strat) { - z_stream s; - unsigned char *cdata = NULL; /* Compressed output */ - int cdata_alloc = 0; - int cdata_pos = 0; - int err; - - cdata = malloc(cdata_alloc = size*1.05+100); - if (!cdata) - return NULL; - cdata_pos = 0; - - /* Initialise zlib stream */ - s.zalloc = Z_NULL; /* use default allocation functions */ - s.zfree = Z_NULL; - s.opaque = Z_NULL; - s.next_in = (unsigned char *)data; - s.avail_in = size; - s.total_in = 0; - s.next_out = cdata; - s.avail_out = cdata_alloc; - s.total_out = 0; - s.data_type = Z_BINARY; - - err = deflateInit2(&s, level, Z_DEFLATED, 15|16, 9, strat); - if (err != Z_OK) { - fprintf(stderr, "zlib deflateInit2 error: %s\n", s.msg); - return NULL; - } - - /* Encode to 'cdata' array */ - for (;s.avail_in;) { - s.next_out = &cdata[cdata_pos]; - s.avail_out = cdata_alloc - cdata_pos; - if (cdata_alloc - cdata_pos <= 0) { - fprintf(stderr, "Deflate produced larger output than expected. Abort\n"); - return NULL; - } - err = deflate(&s, Z_NO_FLUSH); - cdata_pos = cdata_alloc - s.avail_out; - if (err != Z_OK) { - fprintf(stderr, "zlib deflate error: %s\n", s.msg); - break; - } - } - if (deflate(&s, Z_FINISH) != Z_STREAM_END) { - fprintf(stderr, "zlib deflate error: %s\n", s.msg); - } - *cdata_size = s.total_out; - - if (deflateEnd(&s) != Z_OK) { - fprintf(stderr, "zlib deflate error: %s\n", s.msg); - } - return (char *)cdata; -} - -#ifdef HAVE_LIBLZMA -/* ------------------------------------------------------------------------ */ -/* - * Data compression routines using liblzma (xz) - * - * On a test set this shrunk the main db from 136157104 bytes to 114796168, but - * caused tg_index to grow from 2m43.707s to 15m3.961s. Exporting as bfastq - * went from 18.3s to 36.3s. So decompression suffers too, but not as bad - * as compression times. - * - * For now we disable this functionality. If it's to be reenabled make sure you - * improve the mem_inflate implementation as it's just a test hack at the - * moment. - */ - -static char *lzma_mem_deflate(char *data, size_t size, size_t *cdata_size, - int level) { - char *out; - size_t out_size = lzma_stream_buffer_bound(size); - *cdata_size = 0; - - out = malloc(out_size); - - /* Single call compression */ - if (LZMA_OK != lzma_easy_buffer_encode(level, LZMA_CHECK_CRC32, NULL, - (uint8_t *)data, size, - (uint8_t *)out, cdata_size, - out_size)) - return NULL; - - return out; -} - -static char *lzma_mem_inflate(char *cdata, size_t csize, size_t *size) { - lzma_stream strm = LZMA_STREAM_INIT; - size_t out_size = 0, out_pos = 0; - char *out = NULL; - int r; - - /* Initiate the decoder */ - if (LZMA_OK != lzma_stream_decoder(&strm, 50000000, 0)) - return NULL; - - /* Decode loop */ - strm.avail_in = csize; - strm.next_in = (uint8_t *)cdata; - - for (;strm.avail_in;) { - if (strm.avail_in > out_size - out_pos) { - out_size += strm.avail_in * 4 + 32768; - out = realloc(out, out_size); - } - strm.avail_out = out_size - out_pos; - strm.next_out = (uint8_t *)&out[out_pos]; - - r = lzma_code(&strm, LZMA_RUN); - if (LZMA_OK != r && LZMA_STREAM_END != r) { - fprintf(stderr, "r=%d\n", r); - fprintf(stderr, "mem=%"PRId64"d\n", (int64_t)lzma_memusage(&strm)); - return NULL; - } - - out_pos = strm.total_out; - - if (r == LZMA_STREAM_END) - break; - } - - /* finish up any unflushed data; necessary? */ - r = lzma_code(&strm, LZMA_FINISH); - if (r != LZMA_OK && r != LZMA_STREAM_END) { - fprintf(stderr, "r=%d\n", r); - return NULL; - } - - out = realloc(out, strm.total_out); - *size = strm.total_out; - - lzma_end(&strm); - - return out; -} -#endif - -/* ---------------------------------------------------------------------- - * CRAM blocks - the dynamically growable data block. We have code to - * create, update, (un)compress and read/write. - * - * These are derived from the deflate_interlaced.c blocks, but with the - * CRAM extension of content types and IDs. - */ - -/* - * Allocates a new cram_block structure with a specified content_type and - * id. - * - * Returns block pointer on success - * NULL on failure - */ -cram_block *cram_new_block(enum cram_content_type content_type, - int content_id) { - cram_block *b = malloc(sizeof(*b)); - if (!b) - return NULL; - b->method = b->orig_method = RAW; - b->content_type = content_type; - b->content_id = content_id; - b->comp_size = 0; - b->uncomp_size = 0; - b->data = NULL; - b->alloc = 0; - b->byte = 0; - b->bit = 7; // MSB - - return b; -} - -/* - * Reads a block from a cram file. - * Returns cram_block pointer on success. - * NULL on failure - */ -cram_block *cram_read_block(cram_fd *fd) { - cram_block *b = malloc(sizeof(*b)); - if (!b) - return NULL; - - //fprintf(stderr, "Block at %d\n", (int)ftell(fd->fp)); - - if (-1 == (b->method = hgetc(fd->fp))) { free(b); return NULL; } - if (-1 == (b->content_type= hgetc(fd->fp))) { free(b); return NULL; } - if (-1 == itf8_decode(fd, &b->content_id)) { free(b); return NULL; } - if (-1 == itf8_decode(fd, &b->comp_size)) { free(b); return NULL; } - if (-1 == itf8_decode(fd, &b->uncomp_size)) { free(b); return NULL; } - - // fprintf(stderr, " method %d, ctype %d, cid %d, csize %d, ucsize %d\n", - // b->method, b->content_type, b->content_id, b->comp_size, b->uncomp_size); - - if (b->method == RAW) { - b->alloc = b->uncomp_size; - if (!(b->data = malloc(b->uncomp_size))){ free(b); return NULL; } - if (b->uncomp_size != hread(fd->fp, b->data, b->uncomp_size)) { - free(b->data); - free(b); - return NULL; - } - } else { - b->alloc = b->comp_size; - if (!(b->data = malloc(b->comp_size))) { free(b); return NULL; } - if (b->comp_size != hread(fd->fp, b->data, b->comp_size)) { - free(b->data); - free(b); - return NULL; - } - } - - if (CRAM_MAJOR_VERS(fd->version) >= 3) { - unsigned char dat[100], *cp = dat;; - uint32_t crc; - - - if (-1 == int32_decode(fd, (int32_t *)&b->crc32)) { - free(b); - return NULL; - } - - *cp++ = b->method; - *cp++ = b->content_type; - cp += itf8_put(cp, b->content_id); - cp += itf8_put(cp, b->comp_size); - cp += itf8_put(cp, b->uncomp_size); - crc = crc32(0L, dat, cp-dat); - crc = crc32(crc, b->data ? b->data : (uc *)"", b->alloc); - - if (crc != b->crc32) { - fprintf(stderr, "Block CRC32 failure\n"); - free(b->data); - free(b); - return NULL; - } - } - - b->orig_method = b->method; - b->idx = 0; - b->byte = 0; - b->bit = 7; // MSB - - return b; -} - -/* - * Writes a CRAM block. - * Returns 0 on success - * -1 on failure - */ -int cram_write_block(cram_fd *fd, cram_block *b) { - assert(b->method != RAW || (b->comp_size == b->uncomp_size)); - - if (hputc(b->method, fd->fp) == EOF) return -1; - if (hputc(b->content_type, fd->fp) == EOF) return -1; - if (itf8_encode(fd, b->content_id) == -1) return -1; - if (itf8_encode(fd, b->comp_size) == -1) return -1; - if (itf8_encode(fd, b->uncomp_size) == -1) return -1; - - if (b->method == RAW) { - if (b->uncomp_size != hwrite(fd->fp, b->data, b->uncomp_size)) - return -1; - } else { - if (b->comp_size != hwrite(fd->fp, b->data, b->comp_size)) - return -1; - } - - if (CRAM_MAJOR_VERS(fd->version) >= 3) { - unsigned char dat[100], *cp = dat;; - uint32_t crc; - - *cp++ = b->method; - *cp++ = b->content_type; - cp += itf8_put(cp, b->content_id); - cp += itf8_put(cp, b->comp_size); - cp += itf8_put(cp, b->uncomp_size); - crc = crc32(0L, dat, cp-dat); - - if (b->method == RAW) { - b->crc32 = crc32(crc, b->data ? b->data : (uc*)"", b->uncomp_size); - } else { - b->crc32 = crc32(crc, b->data ? b->data : (uc*)"", b->comp_size); - } - - if (-1 == int32_encode(fd, b->crc32)) - return -1; - } - - return 0; -} - -/* - * Frees a CRAM block, deallocating internal data too. - */ -void cram_free_block(cram_block *b) { - if (!b) - return; - if (b->data) - free(b->data); - free(b); -} - -/* - * Uncompresses a CRAM block, if compressed. - */ -int cram_uncompress_block(cram_block *b) { - char *uncomp; - size_t uncomp_size = 0; - - if (b->uncomp_size == 0) { - // blank block - b->method = RAW; - return 0; - } - - switch (b->method) { - case RAW: - return 0; - - case GZIP: - uncomp = zlib_mem_inflate((char *)b->data, b->comp_size, &uncomp_size); - if (!uncomp) - return -1; - if ((int)uncomp_size != b->uncomp_size) { - free(uncomp); - return -1; - } - free(b->data); - b->data = (unsigned char *)uncomp; - b->alloc = uncomp_size; - b->method = RAW; - break; - -#ifdef HAVE_LIBBZ2 - case BZIP2: { - unsigned int usize = b->uncomp_size; - if (!(uncomp = malloc(usize))) - return -1; - if (BZ_OK != BZ2_bzBuffToBuffDecompress(uncomp, &usize, - (char *)b->data, b->comp_size, - 0, 0)) { - free(uncomp); - return -1; - } - free(b->data); - b->data = (unsigned char *)uncomp; - b->alloc = usize; - b->method = RAW; - b->uncomp_size = usize; // Just incase it differs - break; - } -#else - case BZIP2: - fprintf(stderr, "Bzip2 compression is not compiled into this " - "version.\nPlease rebuild and try again.\n"); - return -1; -#endif - -#ifdef HAVE_LIBLZMA - case LZMA: - uncomp = lzma_mem_inflate((char *)b->data, b->comp_size, &uncomp_size); - if (!uncomp) - return -1; - if ((int)uncomp_size != b->uncomp_size) - return -1; - free(b->data); - b->data = (unsigned char *)uncomp; - b->alloc = uncomp_size; - b->method = RAW; - break; -#else - case LZMA: - fprintf(stderr, "Lzma compression is not compiled into this " - "version.\nPlease rebuild and try again.\n"); - return -1; - break; -#endif - - case RANS: { - unsigned int usize = b->uncomp_size, usize2; - uncomp = (char *)rans_uncompress(b->data, b->comp_size, &usize2); - assert(usize == usize2); - free(b->data); - b->data = (unsigned char *)uncomp; - b->alloc = usize2; - b->method = RAW; - b->uncomp_size = usize2; // Just incase it differs - //fprintf(stderr, "Expanded %d to %d\n", b->comp_size, b->uncomp_size); - break; - } - - default: - return -1; - } - - return 0; -} - -static char *cram_compress_by_method(char *in, size_t in_size, - size_t *out_size, - enum cram_block_method method, - int level, int strat) { - switch (method) { - case GZIP: - return zlib_mem_deflate(in, in_size, out_size, level, strat); - - case BZIP2: { -#ifdef HAVE_LIBBZ2 - unsigned int comp_size = in_size*1.01 + 600; - char *comp = malloc(comp_size); - if (!comp) - return NULL; - - if (BZ_OK != BZ2_bzBuffToBuffCompress(comp, &comp_size, - in, in_size, - level, 0, 30)) { - free(comp); - return NULL; - } - *out_size = comp_size; - return comp; -#else - return NULL; -#endif - } - - case LZMA: -#ifdef HAVE_LIBLZMA - return lzma_mem_deflate(in, in_size, out_size, level); -#else - return NULL; -#endif - - case RANS0: { - unsigned int out_size_i; - unsigned char *cp; - cp = rans_compress((unsigned char *)in, in_size, &out_size_i, 0); - *out_size = out_size_i; - return (char *)cp; - } - - case RANS1: { - unsigned int out_size_i; - unsigned char *cp; - - cp = rans_compress((unsigned char *)in, in_size, &out_size_i, 1); - *out_size = out_size_i; - return (char *)cp; - } - - case RAW: - break; - - default: - return NULL; - } - - return NULL; -} - - -/* - * Compresses a block using one of two different zlib strategies. If we only - * want one choice set strat2 to be -1. - * - * The logic here is that sometimes Z_RLE does a better job than Z_FILTERED - * or Z_DEFAULT_STRATEGY on quality data. If so, we'd rather use it as it is - * significantly faster. - */ -int cram_compress_block(cram_fd *fd, cram_block *b, cram_metrics *metrics, - int method, int level) { - - char *comp = NULL; - size_t comp_size = 0; - int strat; - - //fprintf(stderr, "IN: block %d, sz %d\n", b->content_id, b->uncomp_size); - - if (method == RAW || level == 0 || b->uncomp_size == 0) { - b->method = RAW; - b->comp_size = b->uncomp_size; - //fprintf(stderr, "Skip block id %d\n", b->content_id); - return 0; - } - - if (metrics) { - pthread_mutex_lock(&fd->metrics_lock); - if (metrics->trial > 0 || --metrics->next_trial <= 0) { - size_t sz_best = INT_MAX; - size_t sz_gz_rle = 0; - size_t sz_gz_def = 0; - size_t sz_rans0 = 0; - size_t sz_rans1 = 0; - size_t sz_bzip2 = 0; - size_t sz_lzma = 0; - int method_best = 0; - char *c_best = NULL, *c = NULL; - - if (metrics->revised_method) - method = metrics->revised_method; - else - metrics->revised_method = method; - - if (metrics->next_trial == 0) { - metrics->next_trial = TRIAL_SPAN; - metrics->trial = NTRIALS; - metrics->sz_gz_rle /= 2; - metrics->sz_gz_def /= 2; - metrics->sz_rans0 /= 2; - metrics->sz_rans1 /= 2; - metrics->sz_bzip2 /= 2; - metrics->sz_lzma /= 2; - } - - pthread_mutex_unlock(&fd->metrics_lock); - - if (method & (1<data, b->uncomp_size, - &sz_gz_rle, GZIP, 1, Z_RLE); - if (c && sz_best > sz_gz_rle) { - sz_best = sz_gz_rle; - method_best = GZIP_RLE; - if (c_best) - free(c_best); - c_best = c; - } else if (c) { - free(c); - } else { - sz_gz_rle = b->uncomp_size*2+1000; - } - - //fprintf(stderr, "Block %d; %d->%d\n", b->content_id, b->uncomp_size, sz_gz_rle); - } - - if (method & (1<data, b->uncomp_size, - &sz_gz_def, GZIP, level, - Z_FILTERED); - if (c && sz_best > sz_gz_def) { - sz_best = sz_gz_def; - method_best = GZIP; - if (c_best) - free(c_best); - c_best = c; - } else if (c) { - free(c); - } else { - sz_gz_def = b->uncomp_size*2+1000; - } - - //fprintf(stderr, "Block %d; %d->%d\n", b->content_id, b->uncomp_size, sz_gz_def); - } - - if (method & (1<data, b->uncomp_size, - &sz_rans0, RANS0, 0, 0); - if (c && sz_best > sz_rans0) { - sz_best = sz_rans0; - method_best = RANS0; - if (c_best) - free(c_best); - c_best = c; - } else if (c) { - free(c); - } else { - sz_rans0 = b->uncomp_size*2+1000; - } - } - - if (method & (1<data, b->uncomp_size, - &sz_rans1, RANS1, 0, 0); - if (c && sz_best > sz_rans1) { - sz_best = sz_rans1; - method_best = RANS1; - if (c_best) - free(c_best); - c_best = c; - } else if (c) { - free(c); - } else { - sz_rans1 = b->uncomp_size*2+1000; - } - } - - if (method & (1<data, b->uncomp_size, - &sz_bzip2, BZIP2, level, 0); - if (c && sz_best > sz_bzip2) { - sz_best = sz_bzip2; - method_best = BZIP2; - if (c_best) - free(c_best); - c_best = c; - } else if (c) { - free(c); - } else { - sz_bzip2 = b->uncomp_size*2+1000; - } - } - - if (method & (1<data, b->uncomp_size, - &sz_lzma, LZMA, level, 0); - if (c && sz_best > sz_lzma) { - sz_best = sz_lzma; - method_best = LZMA; - if (c_best) - free(c_best); - c_best = c; - } else if (c) { - free(c); - } else { - sz_lzma = b->uncomp_size*2+1000; - } - } - - //fprintf(stderr, "sz_best = %d\n", sz_best); - - free(b->data); - b->data = (unsigned char *)c_best; - //printf("method_best = %s\n", cram_block_method2str(method_best)); - b->method = method_best == GZIP_RLE ? GZIP : method_best; - b->comp_size = sz_best; - - pthread_mutex_lock(&fd->metrics_lock); - metrics->sz_gz_rle += sz_gz_rle; - metrics->sz_gz_def += sz_gz_def; - metrics->sz_rans0 += sz_rans0; - metrics->sz_rans1 += sz_rans1; - metrics->sz_bzip2 += sz_bzip2; - metrics->sz_lzma += sz_lzma; - if (--metrics->trial == 0) { - int best_method = RAW; - int best_sz = INT_MAX; - - // Scale methods by cost - if (fd->level <= 3) { - metrics->sz_rans1 *= 1.02; - metrics->sz_gz_def *= 1.04; - metrics->sz_bzip2 *= 1.08; - metrics->sz_lzma *= 1.10; - } else if (fd->level <= 6) { - metrics->sz_rans1 *= 1.01; - metrics->sz_gz_def *= 1.02; - metrics->sz_bzip2 *= 1.03; - metrics->sz_lzma *= 1.05; - } - - if (method & (1< metrics->sz_gz_rle) - best_sz = metrics->sz_gz_rle, best_method = GZIP_RLE; - - if (method & (1< metrics->sz_gz_def) - best_sz = metrics->sz_gz_def, best_method = GZIP; - - if (method & (1< metrics->sz_rans0) - best_sz = metrics->sz_rans0, best_method = RANS0; - - if (method & (1< metrics->sz_rans1) - best_sz = metrics->sz_rans1, best_method = RANS1; - - if (method & (1< metrics->sz_bzip2) - best_sz = metrics->sz_bzip2, best_method = BZIP2; - - if (method & (1< metrics->sz_lzma) - best_sz = metrics->sz_lzma, best_method = LZMA; - - if (best_method == GZIP_RLE) { - metrics->method = GZIP; - metrics->strat = Z_RLE; - } else { - metrics->method = best_method; - metrics->strat = Z_FILTERED; - } - - // If we see at least MAXFAIL trials in a row for a specific - // compression method with more than MAXDELTA aggregate - // size then we drop this from the list of methods used - // for this block type. -#define MAXDELTA 0.20 -#define MAXFAILS 4 - if (best_method == GZIP_RLE) { - metrics->gz_rle_cnt = 0; - metrics->gz_rle_extra = 0; - } else if (best_sz < metrics->sz_gz_rle) { - double r = (double)metrics->sz_gz_rle / best_sz - 1; - if (++metrics->gz_rle_cnt >= MAXFAILS && - (metrics->gz_rle_extra += r) >= MAXDELTA) - method &= ~(1<gz_def_cnt = 0; - metrics->gz_def_extra = 0; - } else if (best_sz < metrics->sz_gz_def) { - double r = (double)metrics->sz_gz_def / best_sz - 1; - if (++metrics->gz_def_cnt >= MAXFAILS && - (metrics->gz_def_extra += r) >= MAXDELTA) - method &= ~(1<rans0_cnt = 0; - metrics->rans0_extra = 0; - } else if (best_sz < metrics->sz_rans0) { - double r = (double)metrics->sz_rans0 / best_sz - 1; - if (++metrics->rans0_cnt >= MAXFAILS && - (metrics->rans0_extra += r) >= MAXDELTA) - method &= ~(1<rans1_cnt = 0; - metrics->rans1_extra = 0; - } else if (best_sz < metrics->sz_rans1) { - double r = (double)metrics->sz_rans1 / best_sz - 1; - if (++metrics->rans1_cnt >= MAXFAILS && - (metrics->rans1_extra += r) >= MAXDELTA) - method &= ~(1<bzip2_cnt = 0; - metrics->bzip2_extra = 0; - } else if (best_sz < metrics->sz_bzip2) { - double r = (double)metrics->sz_bzip2 / best_sz - 1; - if (++metrics->bzip2_cnt >= MAXFAILS && - (metrics->bzip2_extra += r) >= MAXDELTA) - method &= ~(1<lzma_cnt = 0; - metrics->lzma_extra = 0; - } else if (best_sz < metrics->sz_lzma) { - double r = (double)metrics->sz_lzma / best_sz - 1; - if (++metrics->lzma_cnt >= MAXFAILS && - (metrics->lzma_extra += r) >= MAXDELTA) - method &= ~(1<revised_method) - // fprintf(stderr, "%d: method from %x to %x\n", - // b->content_id, metrics->revised_method, method); - metrics->revised_method = method; - } - pthread_mutex_unlock(&fd->metrics_lock); - } else { - strat = metrics->strat; - method = metrics->method; - - pthread_mutex_unlock(&fd->metrics_lock); - comp = cram_compress_by_method((char *)b->data, b->uncomp_size, - &comp_size, method, - level, strat); - if (!comp) - return -1; - free(b->data); - b->data = (unsigned char *)comp; - b->comp_size = comp_size; - b->method = method; - } - - } else { - // no cached metrics, so just do zlib? - comp = cram_compress_by_method((char *)b->data, b->uncomp_size, - &comp_size, GZIP, level, Z_FILTERED); - if (!comp) { - fprintf(stderr, "Compression failed!\n"); - return -1; - } - free(b->data); - b->data = (unsigned char *)comp; - b->comp_size = comp_size; - b->method = GZIP; - } - - if (fd->verbose) - fprintf(stderr, "Compressed block ID %d from %d to %d by method %s\n", - b->content_id, b->uncomp_size, b->comp_size, - cram_block_method2str(b->method)); - - if (b->method == RANS1) - b->method = RANS0; // Spec just has RANS (not 0/1) with auto-sensing - - return 0; -} - -cram_metrics *cram_new_metrics(void) { - cram_metrics *m = calloc(1, sizeof(*m)); - if (!m) - return NULL; - m->trial = NTRIALS-1; - m->next_trial = TRIAL_SPAN; - m->method = RAW; - m->strat = 0; - m->revised_method = 0; - - return m; -} - -char *cram_block_method2str(enum cram_block_method m) { - switch(m) { - case RAW: return "RAW"; - case GZIP: return "GZIP"; - case BZIP2: return "BZIP2"; - case LZMA: return "LZMA"; - case RANS0: return "RANS0"; - case RANS1: return "RANS1"; - case GZIP_RLE: return "GZIP_RLE"; - case ERROR: break; - } - return "?"; -} - -char *cram_content_type2str(enum cram_content_type t) { - switch (t) { - case FILE_HEADER: return "FILE_HEADER"; - case COMPRESSION_HEADER: return "COMPRESSION_HEADER"; - case MAPPED_SLICE: return "MAPPED_SLICE"; - case UNMAPPED_SLICE: return "UNMAPPED_SLICE"; - case EXTERNAL: return "EXTERNAL"; - case CORE: return "CORE"; - case CT_ERROR: break; - } - return "?"; -} - -/* - * Extra error checking on fclose to really ensure data is written. - * Care needs to be taken to handle pipes vs real files. - * - * Returns 0 on success - * -1 on failure. - */ -int paranoid_fclose(FILE *fp) { - if (-1 == fflush(fp) && errno != EBADF) { - fclose(fp); - return -1; - } - - errno = 0; - if (-1 == fsync(fileno(fp))) { - if (errno != EINVAL) { // eg pipe - fclose(fp); - return -1; - } - } - return fclose(fp); -} - -/* ---------------------------------------------------------------------- - * Reference sequence handling - * - * These revolve around the refs_t structure, which may potentially be - * shared between multiple cram_fd. - * - * We start with refs_create() to allocate an empty refs_t and then - * populate it with @SQ line data using refs_from_header(). This is done on - * cram_open(). Also at start up we can call cram_load_reference() which - * is used with "scramble -r foo.fa". This replaces the fd->refs with the - * new one specified. In either case refs2id() is then called which - * maps ref_entry names to @SQ ids (refs_t->ref_id[]). - * - * Later, possibly within a thread, we will want to know the actual ref - * seq itself, obtained by calling cram_get_ref(). This may use the - * UR: or M5: fields or the filename specified in the original - * cram_load_reference() call. - * - * Given the potential for multi-threaded reference usage, we have - * reference counting (sorry for the confusing double use of "ref") to - * track the number of callers interested in any specific reference. - */ - -void refs_free(refs_t *r) { - RP("refs_free()\n"); - - if (--r->count > 0) - return; - - if (!r) - return; - - if (r->pool) - string_pool_destroy(r->pool); - - if (r->h_meta) { - khint_t k; - - for (k = kh_begin(r->h_meta); k != kh_end(r->h_meta); k++) { - ref_entry *e; - - if (!kh_exist(r->h_meta, k)) - continue; - if (!(e = kh_val(r->h_meta, k))) - continue; - if (e->seq) - free(e->seq); - free(e); - } - - kh_destroy(refs, r->h_meta); - } - - if (r->ref_id) - free(r->ref_id); - - if (r->fp) - bgzf_close(r->fp); - - pthread_mutex_destroy(&r->lock); - - free(r); -} - -static refs_t *refs_create(void) { - refs_t *r = calloc(1, sizeof(*r)); - - RP("refs_create()\n"); - - if (!r) - return NULL; - - if (!(r->pool = string_pool_create(8192))) - goto err; - - r->ref_id = NULL; // see refs2id() to populate. - r->count = 1; - r->last = NULL; - r->last_id = -1; - - if (!(r->h_meta = kh_init(refs))) - goto err; - - pthread_mutex_init(&r->lock, NULL); - - return r; - - err: - refs_free(r); - return NULL; -} - -/* - * Opens a reference fasta file as a BGZF stream, allowing for - * compressed files. It automatically builds a .fai file if - * required and if compressed a .gzi bgzf index too. - * - * Returns a BGZF handle on success; - * NULL on failure. - */ -static BGZF *bgzf_open_ref(char *fn, char *mode) { - BGZF *fp; - char fai_file[PATH_MAX]; - - snprintf(fai_file, PATH_MAX, "%s.fai", fn); - if (access(fai_file, R_OK) != 0) - if (fai_build(fn) != 0) - return NULL; - - if (!(fp = bgzf_open(fn, mode))) { - perror(fn); - return NULL; - } - - if (fp->is_compressed == 1 && bgzf_index_load(fp, fn, ".gzi") < 0) { - fprintf(stderr, "Unable to load .gzi index '%s.gzi'\n", fn); - bgzf_close(fp); - return NULL; - } - - return fp; -} - -/* - * Loads a FAI file for a reference.fasta. - * "is_err" indicates whether failure to load is worthy of emitting an - * error message. In some cases (eg with embedded references) we - * speculatively load, just incase, and silently ignore errors. - * - * Returns the refs_t struct on success (maybe newly allocated); - * NULL on failure - */ -static refs_t *refs_load_fai(refs_t *r_orig, char *fn, int is_err) { - struct stat sb; - FILE *fp = NULL; - char fai_fn[PATH_MAX]; - char line[8192]; - refs_t *r = r_orig; - size_t fn_l = strlen(fn); - int id = 0, id_alloc = 0; - - RP("refs_load_fai %s\n", fn); - - if (!r) - if (!(r = refs_create())) - goto err; - - /* Open reference, for later use */ - if (stat(fn, &sb) != 0) { - if (is_err) - perror(fn); - goto err; - } - - if (r->fp) - if (bgzf_close(r->fp) != 0) - goto err; - r->fp = NULL; - - if (!(r->fn = string_dup(r->pool, fn))) - goto err; - - if (fn_l > 4 && strcmp(&fn[fn_l-4], ".fai") == 0) - r->fn[fn_l-4] = 0; - - if (!(r->fp = bgzf_open_ref(r->fn, "r"))) - goto err; - - /* Parse .fai file and load meta-data */ - sprintf(fai_fn, "%.*s.fai", PATH_MAX-5, r->fn); - - if (stat(fai_fn, &sb) != 0) { - if (is_err) - perror(fai_fn); - goto err; - } - if (!(fp = fopen(fai_fn, "r"))) { - if (is_err) - perror(fai_fn); - goto err; - } - while (fgets(line, 8192, fp) != NULL) { - ref_entry *e = malloc(sizeof(*e)); - char *cp; - int n; - khint_t k; - - if (!e) - return NULL; - - // id - for (cp = line; *cp && !isspace(*cp); cp++) - ; - *cp++ = 0; - e->name = string_dup(r->pool, line); - - // length - while (*cp && isspace(*cp)) - cp++; - e->length = strtoll(cp, &cp, 10); - - // offset - while (*cp && isspace(*cp)) - cp++; - e->offset = strtoll(cp, &cp, 10); - - // bases per line - while (*cp && isspace(*cp)) - cp++; - e->bases_per_line = strtol(cp, &cp, 10); - - // line length - while (*cp && isspace(*cp)) - cp++; - e->line_length = strtol(cp, &cp, 10); - - // filename - e->fn = r->fn; - - e->count = 0; - e->seq = NULL; - - k = kh_put(refs, r->h_meta, e->name, &n); - if (-1 == n) { - free(e); - return NULL; - } - - if (n) { - kh_val(r->h_meta, k) = e; - } else { - ref_entry *re = kh_val(r->h_meta, k); - if (re && (re->count != 0 || re->length != 0)) { - /* Keep old */ - free(e); - } else { - /* Replace old */ - if (re) - free(re); - kh_val(r->h_meta, k) = e; - } - } - - if (id >= id_alloc) { - int x; - - id_alloc = id_alloc ?id_alloc*2 : 16; - r->ref_id = realloc(r->ref_id, id_alloc * sizeof(*r->ref_id)); - - for (x = id; x < id_alloc; x++) - r->ref_id[x] = NULL; - } - r->ref_id[id] = e; - r->nref = ++id; - } - - return r; - - err: - if (fp) - fclose(fp); - - if (!r_orig) - refs_free(r); - - return NULL; -} - -/* - * Indexes references by the order they appear in a BAM file. This may not - * necessarily be the same order they appear in the fasta reference file. - * - * Returns 0 on success - * -1 on failure - */ -int refs2id(refs_t *r, SAM_hdr *h) { - int i; - - if (r->ref_id) - free(r->ref_id); - if (r->last) - r->last = NULL; - - r->ref_id = calloc(h->nref, sizeof(*r->ref_id)); - if (!r->ref_id) - return -1; - - r->nref = h->nref; - for (i = 0; i < h->nref; i++) { - khint_t k = kh_get(refs, r->h_meta, h->ref[i].name); - if (k != kh_end(r->h_meta)) { - r->ref_id[i] = kh_val(r->h_meta, k); - } else { - fprintf(stderr, "Unable to find ref name '%s'\n", - h->ref[i].name); - } - } - - return 0; -} - -/* - * Generates refs_t entries based on @SQ lines in the header. - * Returns 0 on success - * -1 on failure - */ -static int refs_from_header(refs_t *r, cram_fd *fd, SAM_hdr *h) { - int i, j; - - if (!h || h->nref == 0) - return 0; - - //fprintf(stderr, "refs_from_header for %p mode %c\n", fd, fd->mode); - - /* Existing refs are fine, as long as they're compatible with the hdr. */ - if (!(r->ref_id = realloc(r->ref_id, (r->nref + h->nref) * sizeof(*r->ref_id)))) - return -1; - - /* Copy info from h->ref[i] over to r */ - for (i = 0, j = r->nref; i < h->nref; i++) { - SAM_hdr_type *ty; - SAM_hdr_tag *tag; - khint_t k; - int n; - - k = kh_get(refs, r->h_meta, h->ref[i].name); - if (k != kh_end(r->h_meta)) - // Ref already known about - continue; - - if (!(r->ref_id[j] = calloc(1, sizeof(ref_entry)))) - return -1; - - if (!h->ref[j].name) - return -1; - - r->ref_id[j]->name = string_dup(r->pool, h->ref[i].name); - r->ref_id[j]->length = 0; // marker for not yet loaded - - /* Initialise likely filename if known */ - if ((ty = sam_hdr_find(h, "SQ", "SN", h->ref[i].name))) { - if ((tag = sam_hdr_find_key(h, ty, "M5", NULL))) { - r->ref_id[j]->fn = string_dup(r->pool, tag->str+3); - //fprintf(stderr, "Tagging @SQ %s / %s\n", r->ref_id[h]->name, r->ref_id[h]->fn); - } - } - - k = kh_put(refs, r->h_meta, r->ref_id[j]->name, &n); - if (n <= 0) // already exists or error - return -1; - kh_val(r->h_meta, k) = r->ref_id[j]; - - j++; - } - r->nref = j; - - return 0; -} - -/* - * Attaches a header to a cram_fd. - * - * This should be used when creating a new cram_fd for writing where - * we have an SAM_hdr already constructed (eg from a file we've read - * in). - */ -int cram_set_header(cram_fd *fd, SAM_hdr *hdr) { - if (fd->header) - sam_hdr_free(fd->header); - fd->header = hdr; - return refs_from_header(fd->refs, fd, hdr); -} - -/* - * Converts a directory and a filename into an expanded path, replacing %s - * in directory with the filename and %[0-9]+s with portions of the filename - * Any remaining parts of filename are added to the end with /%s. - */ -void expand_cache_path(char *path, char *dir, char *fn) { - char *cp; - - while ((cp = strchr(dir, '%'))) { - strncpy(path, dir, cp-dir); - path += cp-dir; - - if (*++cp == 's') { - strcpy(path, fn); - path += strlen(fn); - fn += strlen(fn); - cp++; - } else if (*cp >= '0' && *cp <= '9') { - char *endp; - long l; - - l = strtol(cp, &endp, 10); - l = MIN(l, strlen(fn)); - if (*endp == 's') { - strncpy(path, fn, l); - path += l; - fn += l; - *path = 0; - cp = endp+1; - } else { - *path++ = '%'; - *path++ = *cp++; - } - } else { - *path++ = '%'; - *path++ = *cp++; - } - dir = cp; - } - strcpy(path, dir); - path += strlen(dir); - if (*fn && path[-1] != '/') - *path++ = '/'; - strcpy(path, fn); -} - -/* - * Make the directory containing path and any prefix directories. - */ -void mkdir_prefix(char *path, int mode) { - char *cp = strrchr(path, '/'); - if (!cp) - return; - - *cp = 0; - if (is_directory(path)) { - *cp = '/'; - return; - } - - if (mkdir(path, mode) == 0) { - chmod(path, mode); - *cp = '/'; - return; - } - - mkdir_prefix(path, mode); - mkdir(path, mode); - chmod(path, mode); - *cp = '/'; -} - -/* - * Return the cache directory to use, based on the first of these - * environment variables to be set to a non-empty value. - */ -static const char *get_cache_basedir(const char **extra) { - char *base; - - *extra = ""; - - base = getenv("XDG_CACHE_HOME"); - if (base && *base) return base; - - base = getenv("HOME"); - if (base && *base) { *extra = "/.cache"; return base; } - - base = getenv("TMPDIR"); - if (base && *base) return base; - - base = getenv("TEMP"); - if (base && *base) return base; - - return "/tmp"; -} - -/* - * Queries the M5 string from the header and attempts to populate the - * reference from this using the REF_PATH environment. - * - * Returns 0 on sucess - * -1 on failure - */ -static int cram_populate_ref(cram_fd *fd, int id, ref_entry *r) { - char *ref_path = getenv("REF_PATH"); - SAM_hdr_type *ty; - SAM_hdr_tag *tag; - char path[PATH_MAX], path_tmp[PATH_MAX], cache[PATH_MAX]; - char *local_cache = getenv("REF_CACHE"); - mFILE *mf; - - if (fd->verbose) - fprintf(stderr, "cram_populate_ref on fd %p, id %d\n", fd, id); - - if (!ref_path || *ref_path == '\0') { - /* - * If we have no ref path, we use the EBI server. - * However to avoid spamming it we require a local ref cache too. - */ - ref_path = "http://www.ebi.ac.uk:80/ena/cram/md5/%s"; - if (!local_cache || *local_cache == '\0') { - const char *extra; - const char *base = get_cache_basedir(&extra); - snprintf(cache,PATH_MAX, "%s%s/hts-ref/%%2s/%%2s/%%s", base, extra); - local_cache = cache; - if (fd->verbose) - fprintf(stderr, "Populating local cache: %s\n", local_cache); - } - } - - if (!r->name) - return -1; - - if (!(ty = sam_hdr_find(fd->header, "SQ", "SN", r->name))) - return -1; - - if (!(tag = sam_hdr_find_key(fd->header, ty, "M5", NULL))) - goto no_M5; - - if (fd->verbose) - fprintf(stderr, "Querying ref %s\n", tag->str+3); - - /* Use cache if available */ - if (local_cache && *local_cache) { - struct stat sb; - BGZF *fp; - - expand_cache_path(path, local_cache, tag->str+3); - - if (0 == stat(path, &sb) && (fp = bgzf_open(path, "r"))) { - r->length = sb.st_size; - r->offset = r->line_length = r->bases_per_line = 0; - - r->fn = string_dup(fd->refs->pool, path); - - if (fd->refs->fp) - if (bgzf_close(fd->refs->fp) != 0) - return -1; - fd->refs->fp = fp; - fd->refs->fn = r->fn; - - // Fall back to cram_get_ref() where it'll do the actual - // reading of the file. - return 0; - } - } - - /* Otherwise search */ - if ((mf = open_path_mfile(tag->str+3, ref_path, NULL))) { - size_t sz; - r->seq = mfsteal(mf, &sz); - r->length = sz; - } else { - refs_t *refs; - char *fn; - - no_M5: - /* Failed to find in search path or M5 cache, see if @SQ UR: tag? */ - if (!(tag = sam_hdr_find_key(fd->header, ty, "UR", NULL))) - return -1; - - fn = (strncmp(tag->str+3, "file:", 5) == 0) - ? tag->str+8 - : tag->str+3; - - if (fd->refs->fp) { - if (bgzf_close(fd->refs->fp) != 0) - return -1; - fd->refs->fp = NULL; - } - if (!(refs = refs_load_fai(fd->refs, fn, 0))) - return -1; - fd->refs = refs; - if (fd->refs->fp) { - if (bgzf_close(fd->refs->fp) != 0) - return -1; - fd->refs->fp = NULL; - } - - if (!fd->refs->fn) - return -1; - - if (-1 == refs2id(fd->refs, fd->header)) - return -1; - if (!fd->refs->ref_id || !fd->refs->ref_id[id]) - return -1; - - // Local copy already, so fall back to cram_get_ref(). - return 0; - } - - /* Populate the local disk cache if required */ - if (local_cache && *local_cache) { - FILE *fp; - int i; - - expand_cache_path(path, local_cache, tag->str+3); - if (fd->verbose) - fprintf(stderr, "Path='%s'\n", path); - mkdir_prefix(path, 01777); - - i = 0; - do { - sprintf(path_tmp, "%s.tmp_%d", path, /*getpid(),*/ i); - i++; - fp = fopen(path_tmp, "wx"); - } while (fp == NULL && errno == EEXIST); - if (!fp) { - perror(path_tmp); - - // Not fatal - we have the data already so keep going. - return 0; - } - - if (r->length != fwrite(r->seq, 1, r->length, fp)) { - perror(path); - } - if (-1 == paranoid_fclose(fp)) { - unlink(path_tmp); - } else { - if (0 == chmod(path_tmp, 0444)) - rename(path_tmp, path); - else - unlink(path_tmp); - } - } - - return 0; -} - -static void cram_ref_incr_locked(refs_t *r, int id) { - RP("%d INC REF %d, %d %p\n", gettid(), id, (int)(id>=0?r->ref_id[id]->count+1:-999), id>=0?r->ref_id[id]->seq:(char *)1); - - if (id < 0 || !r->ref_id[id]->seq) - return; - - if (r->last_id == id) - r->last_id = -1; - - ++r->ref_id[id]->count; -} - -void cram_ref_incr(refs_t *r, int id) { - pthread_mutex_lock(&r->lock); - cram_ref_incr_locked(r, id); - pthread_mutex_unlock(&r->lock); -} - -static void cram_ref_decr_locked(refs_t *r, int id) { - RP("%d DEC REF %d, %d %p\n", gettid(), id, (int)(id>=0?r->ref_id[id]->count-1:-999), id>=0?r->ref_id[id]->seq:(char *)1); - - if (id < 0 || !r->ref_id[id]->seq) { - assert(r->ref_id[id]->count >= 0); - return; - } - - if (--r->ref_id[id]->count <= 0) { - assert(r->ref_id[id]->count == 0); - if (r->last_id >= 0) { - if (r->ref_id[r->last_id]->count <= 0 && - r->ref_id[r->last_id]->seq) { - RP("%d FREE REF %d (%p)\n", gettid(), - r->last_id, r->ref_id[r->last_id]->seq); - free(r->ref_id[r->last_id]->seq); - r->ref_id[r->last_id]->seq = NULL; - r->ref_id[r->last_id]->length = 0; - } - } - r->last_id = id; - } -} - -void cram_ref_decr(refs_t *r, int id) { - pthread_mutex_lock(&r->lock); - cram_ref_decr_locked(r, id); - pthread_mutex_unlock(&r->lock); -} - -/* - * Used by cram_ref_load and cram_ref_get. The file handle will have - * already been opened, so we can catch it. The ref_entry *e informs us - * of whether this is a multi-line fasta file or a raw MD5 style file. - * Either way we create a single contiguous sequence. - * - * Returns all or part of a reference sequence on success (malloced); - * NULL on failure. - */ -static char *load_ref_portion(BGZF *fp, ref_entry *e, int start, int end) { - off_t offset, len; - char *seq; - - if (end < start) - end = start; - - /* - * Compute locations in file. This is trivial for the MD5 files, but - * is still necessary for the fasta variants. - */ - offset = e->line_length - ? e->offset + (start-1)/e->bases_per_line * e->line_length + - (start-1) % e->bases_per_line - : start-1; - - len = (e->line_length - ? e->offset + (end-1)/e->bases_per_line * e->line_length + - (end-1) % e->bases_per_line - : end-1) - offset + 1; - - if (bgzf_useek(fp, offset, SEEK_SET) < 0) { - perror("bgzf_useek() on reference file"); - return NULL; - } - - if (len == 0 || !(seq = malloc(len))) { - return NULL; - } - - if (len != bgzf_read(fp, seq, len)) { - perror("bgzf_read() on reference file"); - free(seq); - return NULL; - } - - /* Strip white-space if required. */ - if (len != end-start+1) { - int i, j; - char *cp = seq; - char *cp_to; - - for (i = j = 0; i < len; i++) { - if (cp[i] >= '!' && cp[i] <= '~') - cp[j++] = cp[i] & ~0x20; - } - cp_to = cp+j; - - if (cp_to - seq != end-start+1) { - fprintf(stderr, "Malformed reference file?\n"); - free(seq); - return NULL; - } - } else { - int i; - for (i = 0; i < len; i++) { - seq[i] = seq[i] & ~0x20; // uppercase in ASCII - } - } - - return seq; -} - -/* - * Load the entire reference 'id'. - * This also increments the reference count by 1. - * - * Returns ref_entry on success; - * NULL on failure - */ -ref_entry *cram_ref_load(refs_t *r, int id) { - ref_entry *e = r->ref_id[id]; - int start = 1, end = e->length; - char *seq; - - if (e->seq) { - return e; - } - - assert(e->count == 0); - - if (r->last) { -#ifdef REF_DEBUG - int idx = 0; - for (idx = 0; idx < r->nref; idx++) - if (r->last == r->ref_id[idx]) - break; - RP("%d cram_ref_load DECR %d\n", gettid(), idx); -#endif - assert(r->last->count > 0); - if (--r->last->count <= 0) { - RP("%d FREE REF %d (%p)\n", gettid(), id, r->ref_id[id]->seq); - if (r->last->seq) { - free(r->last->seq); - r->last->seq = NULL; - } - } - } - - /* Open file if it's not already the current open reference */ - if (strcmp(r->fn, e->fn) || r->fp == NULL) { - if (r->fp) - if (bgzf_close(r->fp) != 0) - return NULL; - r->fn = e->fn; - if (!(r->fp = bgzf_open_ref(r->fn, "r"))) - return NULL; - } - - RP("%d Loading ref %d (%d..%d)\n", gettid(), id, start, end); - - if (!(seq = load_ref_portion(r->fp, e, start, end))) { - return NULL; - } - - RP("%d Loaded ref %d (%d..%d) = %p\n", gettid(), id, start, end, seq); - - RP("%d INC REF %d, %d\n", gettid(), id, (int)(e->count+1)); - e->seq = seq; - e->count++; - - /* - * Also keep track of last used ref so incr/decr loops on the same - * sequence don't cause load/free loops. - */ - RP("%d cram_ref_load INCR %d => %d\n", gettid(), id, e->count+1); - r->last = e; - e->count++; - - return e; -} - -/* - * Returns a portion of a reference sequence from start to end inclusive. - * The returned pointer is owned by either the cram_file fd or by the - * internal refs_t structure and should not be freed by the caller. - * - * The difference is whether or not this refs_t is in use by just the one - * cram_fd or by multiples, or whether we have multiple threads accessing - * references. In either case fd->shared will be true and we start using - * reference counting to track the number of users of a specific reference - * sequence. - * - * Otherwise the ref seq returned is allocated as part of cram_fd itself - * and will be freed up on the next call to cram_get_ref or cram_close. - * - * To return the entire reference sequence, specify start as 1 and end - * as 0. - * - * To cease using a reference, call cram_ref_decr(). - * - * Returns reference on success, - * NULL on failure - */ -char *cram_get_ref(cram_fd *fd, int id, int start, int end) { - ref_entry *r; - char *seq; - int ostart = start; - - if (id == -1) - return NULL; - - /* FIXME: axiomatic query of r->seq being true? - * Or shortcut for unsorted data where we load once and never free? - */ - - //fd->shared_ref = 1; // hard code for now to simplify things - - pthread_mutex_lock(&fd->ref_lock); - - RP("%d cram_get_ref on fd %p, id %d, range %d..%d\n", gettid(), fd, id, start, end); - - /* - * Unsorted data implies we want to fetch an entire reference at a time. - * We just deal with this at the moment by claiming we're sharing - * references instead, which has the same requirement. - */ - if (fd->unsorted) - fd->shared_ref = 1; - - - /* Sanity checking: does this ID exist? */ - if (id >= fd->refs->nref) { - fprintf(stderr, "No reference found for id %d\n", id); - pthread_mutex_unlock(&fd->ref_lock); - return NULL; - } - - if (!fd->refs || !fd->refs->ref_id[id]) { - fprintf(stderr, "No reference found for id %d\n", id); - pthread_mutex_unlock(&fd->ref_lock); - return NULL; - } - - if (!(r = fd->refs->ref_id[id])) { - fprintf(stderr, "No reference found for id %d\n", id); - pthread_mutex_unlock(&fd->ref_lock); - return NULL; - } - - - /* - * It has an entry, but may not have been populated yet. - * Any manually loaded .fai files have their lengths known. - * A ref entry computed from @SQ lines (M5 or UR field) will have - * r->length == 0 unless it's been loaded once and verified that we have - * an on-disk filename for it. - * - * 19 Sep 2013: Moved the lock here as the cram_populate_ref code calls - * open_path_mfile and libcurl, which isn't multi-thread safe unless I - * rewrite my code to have one curl handle per thread. - */ - pthread_mutex_lock(&fd->refs->lock); - if (r->length == 0) { - if (cram_populate_ref(fd, id, r) == -1) { - fprintf(stderr, "Failed to populate reference for id %d\n", id); - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - return NULL; - } - r = fd->refs->ref_id[id]; - if (fd->unsorted) - cram_ref_incr_locked(fd->refs, id); - } - - - /* - * We now know that we the filename containing the reference, so check - * for limits. If it's over half the reference we'll load all of it in - * memory as this will speed up subsequent calls. - */ - if (end < 1) - end = r->length; - if (end >= r->length) - end = r->length; - assert(start >= 1); - - if (end - start >= 0.5*r->length || fd->shared_ref) { - start = 1; - end = r->length; - } - - /* - * Maybe we have it cached already? If so use it. - * - * Alternatively if we don't have the sequence but we're sharing - * references and/or are asking for the entire length of it, then - * load the full reference into the refs structure and return - * a pointer to that one instead. - */ - if (fd->shared_ref || r->seq || (start == 1 && end == r->length)) { - char *cp; - - if (id >= 0) { - if (r->seq) { - cram_ref_incr_locked(fd->refs, id); - } else { - ref_entry *e; - if (!(e = cram_ref_load(fd->refs, id))) { - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - return NULL; - } - - /* unsorted data implies cache ref indefinitely, to avoid - * continually loading and unloading. - */ - if (fd->unsorted) - cram_ref_incr_locked(fd->refs, id); - } - - fd->ref = NULL; /* We never access it directly */ - fd->ref_start = 1; - fd->ref_end = r->length; - fd->ref_id = id; - - cp = fd->refs->ref_id[id]->seq + ostart-1; - } else { - fd->ref = NULL; - cp = NULL; - } - - RP("%d cram_get_ref returning for id %d, count %d\n", gettid(), id, (int)r->count); - - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - return cp; - } - - /* - * Otherwise we're not sharing, we don't have a copy of it already and - * we're only asking for a small portion of it. - * - * In this case load up just that segment ourselves, freeing any old - * small segments in the process. - */ - - /* Unmapped ref ID */ - if (id < 0) { - if (fd->ref_free) { - free(fd->ref_free); - fd->ref_free = NULL; - } - fd->ref = NULL; - fd->ref_id = id; - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - return NULL; - } - - /* Open file if it's not already the current open reference */ - if (strcmp(fd->refs->fn, r->fn) || fd->refs->fp == NULL) { - if (fd->refs->fp) - if (bgzf_close(fd->refs->fp) != 0) - return NULL; - fd->refs->fn = r->fn; - if (!(fd->refs->fp = bgzf_open_ref(fd->refs->fn, "r"))) { - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - return NULL; - } - } - - if (!(fd->ref = load_ref_portion(fd->refs->fp, r, start, end))) { - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - return NULL; - } - - if (fd->ref_free) - free(fd->ref_free); - - fd->ref_id = id; - fd->ref_start = start; - fd->ref_end = end; - fd->ref_free = fd->ref; - seq = fd->ref; - - pthread_mutex_unlock(&fd->refs->lock); - pthread_mutex_unlock(&fd->ref_lock); - - return seq + ostart - start; -} - -/* - * If fd has been opened for reading, it may be permitted to specify 'fn' - * as NULL and let the code auto-detect the reference by parsing the - * SAM header @SQ lines. - */ -int cram_load_reference(cram_fd *fd, char *fn) { - if (fn) { - fd->refs = refs_load_fai(fd->refs, fn, - !(fd->embed_ref && fd->mode == 'r')); - fn = fd->refs ? fd->refs->fn : NULL; - } - fd->ref_fn = fn; - - if ((!fd->refs || (fd->refs->nref == 0 && !fn)) && fd->header) { - if (fd->refs) - refs_free(fd->refs); - if (!(fd->refs = refs_create())) - return -1; - if (-1 == refs_from_header(fd->refs, fd, fd->header)) - return -1; - } - - if (fd->header) - if (-1 == refs2id(fd->refs, fd->header)) - return -1; - - return fn ? 0 : -1; -} - -/* ---------------------------------------------------------------------- - * Containers - */ - -/* - * Creates a new container, specifying the maximum number of slices - * and records permitted. - * - * Returns cram_container ptr on success - * NULL on failure - */ -cram_container *cram_new_container(int nrec, int nslice) { - cram_container *c = calloc(1, sizeof(*c)); - enum cram_DS_ID id; - - if (!c) - return NULL; - - c->curr_ref = -2; - - c->max_c_rec = nrec * nslice; - c->curr_c_rec = 0; - - c->max_rec = nrec; - c->record_counter = 0; - c->num_bases = 0; - - c->max_slice = nslice; - c->curr_slice = 0; - - c->pos_sorted = 1; - c->max_apos = 0; - c->multi_seq = 0; - - c->bams = NULL; - - if (!(c->slices = (cram_slice **)calloc(nslice, sizeof(cram_slice *)))) - goto err; - c->slice = NULL; - - if (!(c->comp_hdr = cram_new_compression_header())) - goto err; - c->comp_hdr_block = NULL; - - for (id = DS_RN; id < DS_TN; id++) - if (!(c->stats[id] = cram_stats_create())) goto err; - - //c->aux_B_stats = cram_stats_create(); - - if (!(c->tags_used = kh_init(s_i2i))) - goto err; - c->refs_used = 0; - - return c; - - err: - if (c) { - if (c->slices) - free(c->slices); - free(c); - } - return NULL; -} - -void cram_free_container(cram_container *c) { - enum cram_DS_ID id; - int i; - - if (!c) - return; - - if (c->refs_used) - free(c->refs_used); - - if (c->landmark) - free(c->landmark); - - if (c->comp_hdr) - cram_free_compression_header(c->comp_hdr); - - if (c->comp_hdr_block) - cram_free_block(c->comp_hdr_block); - - if (c->slices) { - for (i = 0; i < c->max_slice; i++) - if (c->slices[i]) - cram_free_slice(c->slices[i]); - free(c->slices); - } - - for (id = DS_RN; id < DS_TN; id++) - if (c->stats[id]) cram_stats_free(c->stats[id]); - - //if (c->aux_B_stats) cram_stats_free(c->aux_B_stats); - - if (c->tags_used) kh_destroy(s_i2i, c->tags_used); - - free(c); -} - -/* - * Reads a container header. - * - * Returns cram_container on success - * NULL on failure or no container left (fd->err == 0). - */ -cram_container *cram_read_container(cram_fd *fd) { - cram_container c2, *c; - int i, s; - size_t rd = 0; - - fd->err = 0; - fd->eof = 0; - - memset(&c2, 0, sizeof(c2)); - if (CRAM_MAJOR_VERS(fd->version) == 1) { - if ((s = itf8_decode(fd, &c2.length)) == -1) { - fd->eof = fd->empty_container ? 1 : 2; - return NULL; - } else { - rd+=s; - } - } else { - if ((s = int32_decode(fd, &c2.length)) == -1) { - if (CRAM_MAJOR_VERS(fd->version) == 2 && - CRAM_MINOR_VERS(fd->version) == 0) - fd->eof = 1; // EOF blocks arrived in v2.1 - else - fd->eof = fd->empty_container ? 1 : 2; - return NULL; - } else { - rd+=s; - } - } - if ((s = itf8_decode(fd, &c2.ref_seq_id)) == -1) return NULL; else rd+=s; - if ((s = itf8_decode(fd, &c2.ref_seq_start))== -1) return NULL; else rd+=s; - if ((s = itf8_decode(fd, &c2.ref_seq_span)) == -1) return NULL; else rd+=s; - if ((s = itf8_decode(fd, &c2.num_records)) == -1) return NULL; else rd+=s; - - if (CRAM_MAJOR_VERS(fd->version) == 1) { - c2.record_counter = 0; - c2.num_bases = 0; - } else { - if (CRAM_MAJOR_VERS(fd->version) >= 3) { - if ((s = ltf8_decode(fd, &c2.record_counter)) == -1) - return NULL; - else - rd += s; - } else { - int32_t i32; - if ((s = itf8_decode(fd, &i32)) == -1) - return NULL; - else - rd += s; - c2.record_counter = i32; - } - - if ((s = ltf8_decode(fd, &c2.num_bases))== -1) - return NULL; - else - rd += s; - } - if ((s = itf8_decode(fd, &c2.num_blocks)) == -1) return NULL; else rd+=s; - if ((s = itf8_decode(fd, &c2.num_landmarks))== -1) return NULL; else rd+=s; - - if (!(c = calloc(1, sizeof(*c)))) - return NULL; - - *c = c2; - - if (!(c->landmark = malloc(c->num_landmarks * sizeof(int32_t))) && - c->num_landmarks) { - fd->err = errno; - cram_free_container(c); - return NULL; - } - for (i = 0; i < c->num_landmarks; i++) { - if ((s = itf8_decode(fd, &c->landmark[i])) == -1) { - cram_free_container(c); - return NULL; - } else { - rd += s; - } - } - - if (CRAM_MAJOR_VERS(fd->version) >= 3) { - uint32_t crc, i; - unsigned char *dat = malloc(50 + 5*(c->num_landmarks)), *cp = dat; - if (!dat) { - cram_free_container(c); - return NULL; - } - if (-1 == int32_decode(fd, (int32_t *)&c->crc32)) - return NULL; - else - rd+=4; - - /* Reencode first as we can't easily access the original byte stream. - * - * FIXME: Technically this means this may not be fool proof. We could - * create a CRAM file using a 2 byte ITF8 value that can fit in a - * 1 byte field, meaning the encoding is different to the original - * form and so has a different CRC. - * - * The correct implementation would be to have an alternative form - * of itf8_decode which also squirrels away the raw byte stream - * during decoding so we can then CRC that. - */ - *(unsigned int *)cp = le_int4(c->length); cp += 4; - cp += itf8_put(cp, c->ref_seq_id); - cp += itf8_put(cp, c->ref_seq_start); - cp += itf8_put(cp, c->ref_seq_span); - cp += itf8_put(cp, c->num_records); - cp += ltf8_put((char *)cp, c->record_counter); - cp += itf8_put(cp, c->num_bases); - cp += itf8_put(cp, c->num_blocks); - cp += itf8_put(cp, c->num_landmarks); - for (i = 0; i < c->num_landmarks; i++) { - cp += itf8_put(cp, c->landmark[i]); - } - - crc = crc32(0L, dat, cp-dat); - if (crc != c->crc32) { - fprintf(stderr, "Container header CRC32 failure\n"); - cram_free_container(c); - return NULL; - } - } - - c->offset = rd; - c->slices = NULL; - c->curr_slice = 0; - c->max_slice = c->num_landmarks; - c->slice_rec = 0; - c->curr_rec = 0; - c->max_rec = 0; - - if (c->ref_seq_id == -2) { - c->multi_seq = 1; - fd->multi_seq = 1; - } - - fd->empty_container = - (c->num_records == 0 && - c->ref_seq_id == -1 && - c->ref_seq_start == 0x454f46 /* EOF */) ? 1 : 0; - - return c; -} - -/* - * Writes a container structure. - * - * Returns 0 on success - * -1 on failure - */ -int cram_write_container(cram_fd *fd, cram_container *c) { - char buf_a[1024], *buf = buf_a, *cp; - int i; - - if (55 + c->num_landmarks * 5 >= 1024) - buf = malloc(55 + c->num_landmarks * 5); - cp = buf; - - if (CRAM_MAJOR_VERS(fd->version) == 1) { - cp += itf8_put(cp, c->length); - } else { - *(int32_t *)cp = le_int4(c->length); - cp += 4; - } - if (c->multi_seq) { - cp += itf8_put(cp, -2); - cp += itf8_put(cp, 0); - cp += itf8_put(cp, 0); - } else { - cp += itf8_put(cp, c->ref_seq_id); - cp += itf8_put(cp, c->ref_seq_start); - cp += itf8_put(cp, c->ref_seq_span); - } - cp += itf8_put(cp, c->num_records); - if (CRAM_MAJOR_VERS(fd->version) == 2) { - cp += itf8_put(cp, c->record_counter); - cp += ltf8_put(cp, c->num_bases); - } else if (CRAM_MAJOR_VERS(fd->version) >= 3) { - cp += ltf8_put(cp, c->record_counter); - cp += ltf8_put(cp, c->num_bases); - } - - cp += itf8_put(cp, c->num_blocks); - cp += itf8_put(cp, c->num_landmarks); - for (i = 0; i < c->num_landmarks; i++) - cp += itf8_put(cp, c->landmark[i]); - - if (CRAM_MAJOR_VERS(fd->version) >= 3) { - c->crc32 = crc32(0L, (uc *)buf, cp-buf); - cp[0] = c->crc32 & 0xff; - cp[1] = (c->crc32 >> 8) & 0xff; - cp[2] = (c->crc32 >> 16) & 0xff; - cp[3] = (c->crc32 >> 24) & 0xff; - cp += 4; - } - - if (cp-buf != hwrite(fd->fp, buf, cp-buf)) { - if (buf != buf_a) - free(buf); - return -1; - } - - if (buf != buf_a) - free(buf); - - return 0; -} - -// common component shared by cram_flush_container{,_mt} -static int cram_flush_container2(cram_fd *fd, cram_container *c) { - int i, j; - - //fprintf(stderr, "Writing container %d, sum %u\n", c->record_counter, sum); - - /* Write the container struct itself */ - if (0 != cram_write_container(fd, c)) - return -1; - - /* And the compression header */ - if (0 != cram_write_block(fd, c->comp_hdr_block)) - return -1; - - /* Followed by the slice blocks */ - for (i = 0; i < c->curr_slice; i++) { - cram_slice *s = c->slices[i]; - - if (0 != cram_write_block(fd, s->hdr_block)) - return -1; - - for (j = 0; j < s->hdr->num_blocks; j++) { - if (0 != cram_write_block(fd, s->block[j])) - return -1; - } - } - - return hflush(fd->fp) == 0 ? 0 : -1; -} - -/* - * Flushes a completely or partially full container to disk, writing - * container structure, header and blocks. This also calls the encoder - * functions. - * - * Returns 0 on success - * -1 on failure - */ -int cram_flush_container(cram_fd *fd, cram_container *c) { - /* Encode the container blocks and generate compression header */ - if (0 != cram_encode_container(fd, c)) - return -1; - - return cram_flush_container2(fd, c); -} - -typedef struct { - cram_fd *fd; - cram_container *c; -} cram_job; - -void *cram_flush_thread(void *arg) { - cram_job *j = (cram_job *)arg; - - /* Encode the container blocks and generate compression header */ - if (0 != cram_encode_container(j->fd, j->c)) { - fprintf(stderr, "cram_encode_container failed\n"); - return NULL; - } - - return arg; -} - -static int cram_flush_result(cram_fd *fd) { - int i, ret = 0; - t_pool_result *r; - - while ((r = t_pool_next_result(fd->rqueue))) { - cram_job *j = (cram_job *)r->data; - cram_container *c; - - if (!j) { - t_pool_delete_result(r, 0); - return -1; - } - - fd = j->fd; - c = j->c; - - if (0 != cram_flush_container2(fd, c)) - return -1; - - /* Free the container */ - for (i = 0; i < c->max_slice; i++) { - cram_free_slice(c->slices[i]); - c->slices[i] = NULL; - } - - c->slice = NULL; - c->curr_slice = 0; - - cram_free_container(c); - - ret |= hflush(fd->fp) == 0 ? 0 : -1; - - t_pool_delete_result(r, 1); - } - - return ret; -} - -int cram_flush_container_mt(cram_fd *fd, cram_container *c) { - cram_job *j; - - if (!fd->pool) - return cram_flush_container(fd, c); - - if (!(j = malloc(sizeof(*j)))) - return -1; - j->fd = fd; - j->c = c; - - t_pool_dispatch(fd->pool, fd->rqueue, cram_flush_thread, j); - - return cram_flush_result(fd); -} - -/* ---------------------------------------------------------------------- - * Compression headers; the first part of the container - */ - -/* - * Creates a new blank container compression header - * - * Returns header ptr on success - * NULL on failure - */ -cram_block_compression_hdr *cram_new_compression_header(void) { - cram_block_compression_hdr *hdr = calloc(1, sizeof(*hdr)); - if (!hdr) - return NULL; - - if (!(hdr->TD_blk = cram_new_block(CORE, 0))) { - free(hdr); - return NULL; - } - - if (!(hdr->TD_hash = kh_init(m_s2i))) { - cram_free_block(hdr->TD_blk); - free(hdr); - return NULL; - } - - if (!(hdr->TD_keys = string_pool_create(8192))) { - kh_destroy(m_s2i, hdr->TD_hash); - cram_free_block(hdr->TD_blk); - free(hdr); - return NULL; - } - - return hdr; -} - -void cram_free_compression_header(cram_block_compression_hdr *hdr) { - int i; - - if (hdr->landmark) - free(hdr->landmark); - - if (hdr->preservation_map) - kh_destroy(map, hdr->preservation_map); - - for (i = 0; i < CRAM_MAP_HASH; i++) { - cram_map *m, *m2; - for (m = hdr->rec_encoding_map[i]; m; m = m2) { - m2 = m->next; - if (m->codec) - m->codec->free(m->codec); - free(m); - } - } - - for (i = 0; i < CRAM_MAP_HASH; i++) { - cram_map *m, *m2; - for (m = hdr->tag_encoding_map[i]; m; m = m2) { - m2 = m->next; - if (m->codec) - m->codec->free(m->codec); - free(m); - } - } - - for (i = 0; i < DS_END; i++) { - if (hdr->codecs[i]) - hdr->codecs[i]->free(hdr->codecs[i]); - } - - if (hdr->TL) - free(hdr->TL); - if (hdr->TD_blk) - cram_free_block(hdr->TD_blk); - if (hdr->TD_hash) - kh_destroy(m_s2i, hdr->TD_hash); - if (hdr->TD_keys) - string_pool_destroy(hdr->TD_keys); - - free(hdr); -} - - -/* ---------------------------------------------------------------------- - * Slices and slice headers - */ - -void cram_free_slice_header(cram_block_slice_hdr *hdr) { - if (!hdr) - return; - - if (hdr->block_content_ids) - free(hdr->block_content_ids); - - free(hdr); - - return; -} - -void cram_free_slice(cram_slice *s) { - if (!s) - return; - - if (s->hdr_block) - cram_free_block(s->hdr_block); - - if (s->block) { - int i; - - if (s->hdr) { - for (i = 0; i < s->hdr->num_blocks; i++) { - cram_free_block(s->block[i]); - } - } - free(s->block); - } - - if (s->block_by_id) - free(s->block_by_id); - - if (s->hdr) - cram_free_slice_header(s->hdr); - - if (s->seqs_blk) - cram_free_block(s->seqs_blk); - - if (s->qual_blk) - cram_free_block(s->qual_blk); - - if (s->name_blk) - cram_free_block(s->name_blk); - - if (s->aux_blk) - cram_free_block(s->aux_blk); - - if (s->aux_OQ_blk) - cram_free_block(s->aux_OQ_blk); - - if (s->aux_BQ_blk) - cram_free_block(s->aux_BQ_blk); - - if (s->aux_FZ_blk) - cram_free_block(s->aux_FZ_blk); - - if (s->aux_oq_blk) - cram_free_block(s->aux_oq_blk); - - if (s->aux_os_blk) - cram_free_block(s->aux_os_blk); - - if (s->aux_oz_blk) - cram_free_block(s->aux_oz_blk); - - if (s->base_blk) - cram_free_block(s->base_blk); - - if (s->soft_blk) - cram_free_block(s->soft_blk); - - if (s->cigar) - free(s->cigar); - - if (s->crecs) - free(s->crecs); - - if (s->features) - free(s->features); - - if (s->TN) - free(s->TN); - - if (s->pair_keys) - string_pool_destroy(s->pair_keys); - - if (s->pair[0]) - kh_destroy(m_s2i, s->pair[0]); - if (s->pair[1]) - kh_destroy(m_s2i, s->pair[1]); - - free(s); -} - -/* - * Creates a new empty slice in memory, for subsequent writing to - * disk. - * - * Returns cram_slice ptr on success - * NULL on failure - */ -cram_slice *cram_new_slice(enum cram_content_type type, int nrecs) { - cram_slice *s = calloc(1, sizeof(*s)); - if (!s) - return NULL; - - if (!(s->hdr = (cram_block_slice_hdr *)calloc(1, sizeof(*s->hdr)))) - goto err; - s->hdr->content_type = type; - - s->hdr_block = NULL; - s->block = NULL; - s->block_by_id = NULL; - s->last_apos = 0; - if (!(s->crecs = malloc(nrecs * sizeof(cram_record)))) goto err; - s->cigar = NULL; - s->cigar_alloc = 0; - s->ncigar = 0; - - if (!(s->seqs_blk = cram_new_block(EXTERNAL, 0))) goto err; - if (!(s->qual_blk = cram_new_block(EXTERNAL, DS_QS))) goto err; - if (!(s->name_blk = cram_new_block(EXTERNAL, DS_RN))) goto err; - if (!(s->aux_blk = cram_new_block(EXTERNAL, DS_aux))) goto err; - if (!(s->base_blk = cram_new_block(EXTERNAL, DS_IN))) goto err; - if (!(s->soft_blk = cram_new_block(EXTERNAL, DS_SC))) goto err; - - s->features = NULL; - s->nfeatures = s->afeatures = 0; - -#ifndef TN_external - s->TN = NULL; - s->nTN = s->aTN = 0; -#endif - - // Volatile keys as we do realloc in dstring - if (!(s->pair_keys = string_pool_create(8192))) goto err; - if (!(s->pair[0] = kh_init(m_s2i))) goto err; - if (!(s->pair[1] = kh_init(m_s2i))) goto err; - -#ifdef BA_external - s->BA_len = 0; -#endif - - return s; - - err: - if (s) - cram_free_slice(s); - - return NULL; -} - -/* - * Loads an entire slice. - * FIXME: In 1.0 the native unit of slices within CRAM is broken - * as slices contain references to objects in other slices. - * To work around this while keeping the slice oriented outer loop - * we read all slices and stitch them together into a fake large - * slice instead. - * - * Returns cram_slice ptr on success - * NULL on failure - */ -cram_slice *cram_read_slice(cram_fd *fd) { - cram_block *b = cram_read_block(fd); - cram_slice *s = calloc(1, sizeof(*s)); - int i, n, max_id, min_id; - - if (!b || !s) - goto err; - - s->hdr_block = b; - switch (b->content_type) { - case MAPPED_SLICE: - case UNMAPPED_SLICE: - if (!(s->hdr = cram_decode_slice_header(fd, b))) - goto err; - break; - - default: - fprintf(stderr, "Unexpected block of type %s\n", - cram_content_type2str(b->content_type)); - goto err; - } - - s->block = calloc(n = s->hdr->num_blocks, sizeof(*s->block)); - if (!s->block) - goto err; - - for (max_id = i = 0, min_id = INT_MAX; i < n; i++) { - if (!(s->block[i] = cram_read_block(fd))) - goto err; - - if (s->block[i]->content_type == EXTERNAL) { - if (max_id < s->block[i]->content_id) - max_id = s->block[i]->content_id; - if (min_id > s->block[i]->content_id) - min_id = s->block[i]->content_id; - } - } - if (min_id >= 0 && max_id < 1024) { - if (!(s->block_by_id = calloc(1024, sizeof(s->block[0])))) - goto err; - - for (i = 0; i < n; i++) { - if (s->block[i]->content_type != EXTERNAL) - continue; - s->block_by_id[s->block[i]->content_id] = s->block[i]; - } - } - - /* Initialise encoding/decoding tables */ - s->cigar = NULL; - s->cigar_alloc = 0; - s->ncigar = 0; - - if (!(s->seqs_blk = cram_new_block(EXTERNAL, 0))) goto err; - if (!(s->qual_blk = cram_new_block(EXTERNAL, DS_QS))) goto err; - if (!(s->name_blk = cram_new_block(EXTERNAL, DS_RN))) goto err; - if (!(s->aux_blk = cram_new_block(EXTERNAL, DS_aux))) goto err; - if (!(s->base_blk = cram_new_block(EXTERNAL, DS_IN))) goto err; - if (!(s->soft_blk = cram_new_block(EXTERNAL, DS_SC))) goto err; - - s->crecs = NULL; - - s->last_apos = s->hdr->ref_seq_start; - - return s; - - err: - if (b) - cram_free_block(b); - if (s) { - s->hdr_block = NULL; - cram_free_slice(s); - } - return NULL; -} - - -/* ---------------------------------------------------------------------- - * CRAM file definition (header) - */ - -/* - * Reads a CRAM file definition structure. - * Returns file_def ptr on success - * NULL on failure - */ -cram_file_def *cram_read_file_def(cram_fd *fd) { - cram_file_def *def = malloc(sizeof(*def)); - if (!def) - return NULL; - - if (26 != hread(fd->fp, &def->magic[0], 26)) { - free(def); - return NULL; - } - - if (memcmp(def->magic, "CRAM", 4) != 0) { - free(def); - return NULL; - } - - if (def->major_version > 3) { - fprintf(stderr, "CRAM version number mismatch\n" - "Expected 1.x, 2.x or 3.x, got %d.%d\n", - def->major_version, def->minor_version); - free(def); - return NULL; - } - - fd->first_container += 26; - fd->last_slice = 0; - - return def; -} - -/* - * Writes a cram_file_def structure to cram_fd. - * Returns 0 on success - * -1 on failure - */ -int cram_write_file_def(cram_fd *fd, cram_file_def *def) { - return (hwrite(fd->fp, &def->magic[0], 26) == 26) ? 0 : -1; -} - -void cram_free_file_def(cram_file_def *def) { - if (def) free(def); -} - -/* ---------------------------------------------------------------------- - * SAM header I/O - */ - - -/* - * Reads the SAM header from the first CRAM data block. - * Also performs minimal parsing to extract read-group - * and sample information. - - * Returns SAM hdr ptr on success - * NULL on failure - */ -SAM_hdr *cram_read_SAM_hdr(cram_fd *fd) { - int32_t header_len; - char *header; - SAM_hdr *hdr; - - /* 1.1 onwards stores the header in the first block of a container */ - if (CRAM_MAJOR_VERS(fd->version) == 1) { - /* Length */ - if (-1 == int32_decode(fd, &header_len)) - return NULL; - - /* Alloc and read */ - if (NULL == (header = malloc(header_len+1))) - return NULL; - - *header = 0; - if (header_len != hread(fd->fp, header, header_len)) - return NULL; - - fd->first_container += 4 + header_len; - } else { - cram_container *c = cram_read_container(fd); - cram_block *b; - int i, len; - - if (!c) - return NULL; - - if (c->num_blocks < 1) { - cram_free_container(c); - return NULL; - } - - if (!(b = cram_read_block(fd))) { - cram_free_container(c); - return NULL; - } - cram_uncompress_block(b); - - len = b->comp_size + 2 + 4*(CRAM_MAJOR_VERS(fd->version) >= 3) + - itf8_size(b->content_id) + - itf8_size(b->uncomp_size) + - itf8_size(b->comp_size); - - /* Extract header from 1st block */ - if (-1 == int32_get(b, &header_len) || - b->uncomp_size - 4 < header_len) { - cram_free_container(c); - cram_free_block(b); - return NULL; - } - if (NULL == (header = malloc(header_len+1))) { - cram_free_container(c); - cram_free_block(b); - return NULL; - } - memcpy(header, BLOCK_END(b), header_len); - header[header_len]='\0'; - cram_free_block(b); - - /* Consume any remaining blocks */ - for (i = 1; i < c->num_blocks; i++) { - if (!(b = cram_read_block(fd))) { - cram_free_container(c); - return NULL; - } - len += b->comp_size + 2 + 4*(CRAM_MAJOR_VERS(fd->version) >= 3) + - itf8_size(b->content_id) + - itf8_size(b->uncomp_size) + - itf8_size(b->comp_size); - cram_free_block(b); - } - - if (c->length && c->length > len) { - // Consume padding - char *pads = malloc(c->length - len); - if (!pads) { - cram_free_container(c); - return NULL; - } - - if (c->length - len != hread(fd->fp, pads, c->length - len)) { - cram_free_container(c); - return NULL; - } - free(pads); - } - - cram_free_container(c); - } - - /* Parse */ - hdr = sam_hdr_parse_(header, header_len); - free(header); - - return hdr; -} - -/* - * Converts 'in' to a full pathname to store in out. - * Out must be at least PATH_MAX bytes long. - */ -static void full_path(char *out, char *in) { - if (*in == '/') { - strncpy(out, in, PATH_MAX); - out[PATH_MAX-1] = 0; - } else { - int len; - - // unable to get dir or out+in is too long - if (!getcwd(out, PATH_MAX) || - (len = strlen(out))+1+strlen(in) >= PATH_MAX) { - strncpy(out, in, PATH_MAX); - out[PATH_MAX-1] = 0; - return; - } - - sprintf(out+len, "/%.*s", PATH_MAX - len, in); - - // FIXME: cope with `pwd`/../../../foo.fa ? - } -} - -/* - * Writes a CRAM SAM header. - * Returns 0 on success - * -1 on failure - */ -int cram_write_SAM_hdr(cram_fd *fd, SAM_hdr *hdr) { - int header_len; - int blank_block = (CRAM_MAJOR_VERS(fd->version) >= 3); - - /* Write CRAM MAGIC if not yet written. */ - if (fd->file_def->major_version == 0) { - fd->file_def->major_version = CRAM_MAJOR_VERS(fd->version); - fd->file_def->minor_version = CRAM_MINOR_VERS(fd->version); - if (0 != cram_write_file_def(fd, fd->file_def)) - return -1; - } - - /* 1.0 requires and UNKNOWN read-group */ - if (CRAM_MAJOR_VERS(fd->version) == 1) { - if (!sam_hdr_find_rg(hdr, "UNKNOWN")) - if (sam_hdr_add(hdr, "RG", - "ID", "UNKNOWN", "SM", "UNKNOWN", NULL)) - return -1; - } - - /* Fix M5 strings */ - if (fd->refs && !fd->no_ref) { - int i; - for (i = 0; i < hdr->nref; i++) { - SAM_hdr_type *ty; - char *ref; - - if (!(ty = sam_hdr_find(hdr, "SQ", "SN", hdr->ref[i].name))) - return -1; - - if (!sam_hdr_find_key(hdr, ty, "M5", NULL)) { - char unsigned buf[16], buf2[33]; - int j, rlen; - MD5_CTX md5; - - if (!fd->refs || - !fd->refs->ref_id || - !fd->refs->ref_id[i]) { - return -1; - } - rlen = fd->refs->ref_id[i]->length; - MD5_Init(&md5); - ref = cram_get_ref(fd, i, 1, rlen); - if (NULL == ref) return -1; - rlen = fd->refs->ref_id[i]->length; /* In case it just loaded */ - MD5_Update(&md5, ref, rlen); - MD5_Final(buf, &md5); - cram_ref_decr(fd->refs, i); - - for (j = 0; j < 16; j++) { - buf2[j*2+0] = "0123456789abcdef"[buf[j]>>4]; - buf2[j*2+1] = "0123456789abcdef"[buf[j]&15]; - } - buf2[32] = 0; - if (sam_hdr_update(hdr, ty, "M5", buf2, NULL)) - return -1; - } - - if (fd->ref_fn) { - char ref_fn[PATH_MAX]; - full_path(ref_fn, fd->ref_fn); - if (sam_hdr_update(hdr, ty, "UR", ref_fn, NULL)) - return -1; - } - } - } - - if (sam_hdr_rebuild(hdr)) - return -1; - - /* Length */ - header_len = sam_hdr_length(hdr); - if (CRAM_MAJOR_VERS(fd->version) == 1) { - if (-1 == int32_encode(fd, header_len)) - return -1; - - /* Text data */ - if (header_len != hwrite(fd->fp, sam_hdr_str(hdr), header_len)) - return -1; - } else { - /* Create block(s) inside a container */ - cram_block *b = cram_new_block(FILE_HEADER, 0); - cram_container *c = cram_new_container(0, 0); - int padded_length; - char *pads; - int is_cram_3 = (CRAM_MAJOR_VERS(fd->version) >= 3); - - if (!b || !c) { - if (b) cram_free_block(b); - if (c) cram_free_container(c); - return -1; - } - - int32_put(b, header_len); - BLOCK_APPEND(b, sam_hdr_str(hdr), header_len); - BLOCK_UPLEN(b); - - // Compress header block if V3.0 and above - if (CRAM_MAJOR_VERS(fd->version) >= 3 && fd->level > 0) { - int method = 1<use_bz2) - method |= 1<use_lzma) - method |= 1<level); - } - - if (blank_block) { - c->length = b->comp_size + 2 + 4*is_cram_3 + - itf8_size(b->content_id) + - itf8_size(b->uncomp_size) + - itf8_size(b->comp_size); - - c->num_blocks = 2; - c->num_landmarks = 2; - if (!(c->landmark = malloc(2*sizeof(*c->landmark)))) { - cram_free_block(b); - cram_free_container(c); - return -1; - } - c->landmark[0] = 0; - c->landmark[1] = c->length; - - // Plus extra storage for uncompressed secondary blank block - padded_length = MIN(c->length*.5, 10000); - c->length += padded_length + 2 + 4*is_cram_3 + - itf8_size(b->content_id) + - itf8_size(padded_length)*2; - } else { - // Pad the block instead. - c->num_blocks = 1; - c->num_landmarks = 1; - if (!(c->landmark = malloc(sizeof(*c->landmark)))) - return -1; - c->landmark[0] = 0; - - padded_length = MAX(c->length*1.5, 10000) - c->length; - - c->length = b->comp_size + padded_length + - 2 + 4*is_cram_3 + - itf8_size(b->content_id) + - itf8_size(b->uncomp_size) + - itf8_size(b->comp_size); - - if (NULL == (pads = calloc(1, padded_length))) { - cram_free_block(b); - cram_free_container(c); - return -1; - } - BLOCK_APPEND(b, pads, padded_length); - BLOCK_UPLEN(b); - free(pads); - } - - if (-1 == cram_write_container(fd, c)) { - cram_free_block(b); - cram_free_container(c); - return -1; - } - - if (-1 == cram_write_block(fd, b)) { - cram_free_block(b); - cram_free_container(c); - return -1; - } - - if (blank_block) { - BLOCK_RESIZE(b, padded_length); - memset(BLOCK_DATA(b), 0, padded_length); - BLOCK_SIZE(b) = padded_length; - BLOCK_UPLEN(b); - b->method = RAW; - if (-1 == cram_write_block(fd, b)) { - cram_free_block(b); - cram_free_container(c); - return -1; - } - } - - cram_free_block(b); - cram_free_container(c); - } - - if (-1 == refs_from_header(fd->refs, fd, fd->header)) - return -1; - if (-1 == refs2id(fd->refs, fd->header)) - return -1; - - if (0 != hflush(fd->fp)) - return -1; - - RP("=== Finishing saving header ===\n"); - - return 0; -} - -/* ---------------------------------------------------------------------- - * The top-level cram opening, closing and option handling - */ - -/* - * Initialises the lookup tables. These could be global statics, but they're - * clumsy to setup in a multi-threaded environment unless we generate - * verbatim code and include that. - */ -static void cram_init_tables(cram_fd *fd) { - int i; - - memset(fd->L1, 4, 256); - fd->L1['A'] = 0; fd->L1['a'] = 0; - fd->L1['C'] = 1; fd->L1['c'] = 1; - fd->L1['G'] = 2; fd->L1['g'] = 2; - fd->L1['T'] = 3; fd->L1['t'] = 3; - - memset(fd->L2, 5, 256); - fd->L2['A'] = 0; fd->L2['a'] = 0; - fd->L2['C'] = 1; fd->L2['c'] = 1; - fd->L2['G'] = 2; fd->L2['g'] = 2; - fd->L2['T'] = 3; fd->L2['t'] = 3; - fd->L2['N'] = 4; fd->L2['n'] = 4; - - if (CRAM_MAJOR_VERS(fd->version) == 1) { - for (i = 0; i < 0x200; i++) { - int f = 0; - - if (i & CRAM_FPAIRED) f |= BAM_FPAIRED; - if (i & CRAM_FPROPER_PAIR) f |= BAM_FPROPER_PAIR; - if (i & CRAM_FUNMAP) f |= BAM_FUNMAP; - if (i & CRAM_FREVERSE) f |= BAM_FREVERSE; - if (i & CRAM_FREAD1) f |= BAM_FREAD1; - if (i & CRAM_FREAD2) f |= BAM_FREAD2; - if (i & CRAM_FSECONDARY) f |= BAM_FSECONDARY; - if (i & CRAM_FQCFAIL) f |= BAM_FQCFAIL; - if (i & CRAM_FDUP) f |= BAM_FDUP; - - fd->bam_flag_swap[i] = f; - } - - for (i = 0; i < 0x1000; i++) { - int g = 0; - - if (i & BAM_FPAIRED) g |= CRAM_FPAIRED; - if (i & BAM_FPROPER_PAIR) g |= CRAM_FPROPER_PAIR; - if (i & BAM_FUNMAP) g |= CRAM_FUNMAP; - if (i & BAM_FREVERSE) g |= CRAM_FREVERSE; - if (i & BAM_FREAD1) g |= CRAM_FREAD1; - if (i & BAM_FREAD2) g |= CRAM_FREAD2; - if (i & BAM_FSECONDARY) g |= CRAM_FSECONDARY; - if (i & BAM_FQCFAIL) g |= CRAM_FQCFAIL; - if (i & BAM_FDUP) g |= CRAM_FDUP; - - fd->cram_flag_swap[i] = g; - } - } else { - /* NOP */ - for (i = 0; i < 0x1000; i++) - fd->bam_flag_swap[i] = i; - for (i = 0; i < 0x1000; i++) - fd->cram_flag_swap[i] = i; - } - - memset(fd->cram_sub_matrix, 4, 32*32); - for (i = 0; i < 32; i++) { - fd->cram_sub_matrix[i]['A'&0x1f]=0; - fd->cram_sub_matrix[i]['C'&0x1f]=1; - fd->cram_sub_matrix[i]['G'&0x1f]=2; - fd->cram_sub_matrix[i]['T'&0x1f]=3; - fd->cram_sub_matrix[i]['N'&0x1f]=4; - } - for (i = 0; i < 20; i+=4) { - int j; - for (j = 0; j < 20; j++) { - fd->cram_sub_matrix["ACGTN"[i>>2]&0x1f][j]=3; - fd->cram_sub_matrix["ACGTN"[i>>2]&0x1f][j]=3; - fd->cram_sub_matrix["ACGTN"[i>>2]&0x1f][j]=3; - fd->cram_sub_matrix["ACGTN"[i>>2]&0x1f][j]=3; - } - fd->cram_sub_matrix["ACGTN"[i>>2]&0x1f][CRAM_SUBST_MATRIX[i+0]&0x1f]=0; - fd->cram_sub_matrix["ACGTN"[i>>2]&0x1f][CRAM_SUBST_MATRIX[i+1]&0x1f]=1; - fd->cram_sub_matrix["ACGTN"[i>>2]&0x1f][CRAM_SUBST_MATRIX[i+2]&0x1f]=2; - fd->cram_sub_matrix["ACGTN"[i>>2]&0x1f][CRAM_SUBST_MATRIX[i+3]&0x1f]=3; - } -} - -// Default version numbers for CRAM -static int major_version = 2; -static int minor_version = 1; - -/* - * Opens a CRAM file for read (mode "rb") or write ("wb"). - * The filename may be "-" to indicate stdin or stdout. - * - * Returns file handle on success - * NULL on failure. - */ -cram_fd *cram_open(const char *filename, const char *mode) { - hFILE *fp; - cram_fd *fd; - char fmode[3]= { mode[0], '\0', '\0' }; - - if (strlen(mode) > 1 && (mode[1] == 'b' || mode[1] == 'c')) { - fmode[1] = 'b'; - } - - fp = hopen(filename, fmode); - if (!fp) - return NULL; - - fd = cram_dopen(fp, filename, mode); - if (!fd) - hclose_abruptly(fp); - - return fd; -} - -/* Opens an existing stream for reading or writing. - * - * Returns file handle on success; - * NULL on failure. - */ -cram_fd *cram_dopen(hFILE *fp, const char *filename, const char *mode) { - int i; - char *cp; - cram_fd *fd = calloc(1, sizeof(*fd)); - if (!fd) - return NULL; - - fd->level = 5; - for (i = 0; mode[i]; i++) { - if (mode[i] >= '0' && mode[i] <= '9') { - fd->level = mode[i] - '0'; - break; - } - } - - fd->fp = fp; - fd->mode = *mode; - fd->first_container = 0; - - if (fd->mode == 'r') { - /* Reader */ - - if (!(fd->file_def = cram_read_file_def(fd))) - goto err; - - fd->version = fd->file_def->major_version * 256 + - fd->file_def->minor_version; - - if (!(fd->header = cram_read_SAM_hdr(fd))) - goto err; - - } else { - /* Writer */ - cram_file_def *def = calloc(1, sizeof(*def)); - if (!def) - return NULL; - - fd->file_def = def; - - def->magic[0] = 'C'; - def->magic[1] = 'R'; - def->magic[2] = 'A'; - def->magic[3] = 'M'; - def->major_version = 0; // Indicator to write file def later. - def->minor_version = 0; - memset(def->file_id, 0, 20); - strncpy(def->file_id, filename, 20); - - fd->version = major_version * 256 + minor_version; - - /* SAM header written later along with this file_def */ - } - - cram_init_tables(fd); - - fd->prefix = strdup((cp = strrchr(filename, '/')) ? cp+1 : filename); - if (!fd->prefix) - goto err; - fd->first_base = fd->last_base = -1; - fd->record_counter = 0; - - fd->ctr = NULL; - fd->refs = refs_create(); - if (!fd->refs) - goto err; - fd->ref_id = -2; - fd->ref = NULL; - - fd->decode_md = 0; - fd->verbose = 0; - fd->seqs_per_slice = SEQS_PER_SLICE; - fd->slices_per_container = SLICE_PER_CNT; - fd->embed_ref = 0; - fd->no_ref = 0; - fd->ignore_md5 = 0; - fd->use_bz2 = 0; - fd->use_rans = (CRAM_MAJOR_VERS(fd->version) >= 3); - fd->use_lzma = 0; - fd->multi_seq = -1; - fd->unsorted = 0; - fd->shared_ref = 0; - - fd->index = NULL; - fd->own_pool = 0; - fd->pool = NULL; - fd->rqueue = NULL; - fd->job_pending = NULL; - fd->ooc = 0; - fd->required_fields = INT_MAX; - - for (i = 0; i < DS_END; i++) - fd->m[i] = cram_new_metrics(); - - fd->range.refid = -2; // no ref. - fd->eof = 1; // See samtools issue #150 - fd->ref_fn = NULL; - - fd->bl = NULL; - - /* Initialise dummy refs from the @SQ headers */ - if (-1 == refs_from_header(fd->refs, fd, fd->header)) - goto err; - - return fd; - - err: - if (fd) - free(fd); - - return NULL; -} - -/* - * Seek within a CRAM file. - * - * Returns 0 on success - * -1 on failure - */ -int cram_seek(cram_fd *fd, off_t offset, int whence) { - char buf[65536]; - - fd->ooc = 0; - - if (hseek(fd->fp, offset, whence) >= 0) - return 0; - - if (!(whence == SEEK_CUR && offset >= 0)) - return -1; - - /* Couldn't fseek, but we're in SEEK_CUR mode so read instead */ - while (offset > 0) { - int len = MIN(65536, offset); - if (len != hread(fd->fp, buf, len)) - return -1; - offset -= len; - } - - return 0; -} - -/* - * Flushes a CRAM file. - * Useful for when writing to stdout without wishing to close the stream. - * - * Returns 0 on success - * -1 on failure - */ -int cram_flush(cram_fd *fd) { - if (!fd) - return -1; - - if (fd->mode == 'w' && fd->ctr) { - if(fd->ctr->slice) - fd->ctr->curr_slice++; - if (-1 == cram_flush_container_mt(fd, fd->ctr)) - return -1; - } - - return 0; -} - -/* - * Closes a CRAM file. - * Returns 0 on success - * -1 on failure - */ -int cram_close(cram_fd *fd) { - spare_bams *bl, *next; - int i; - - if (!fd) - return -1; - - if (fd->mode == 'w' && fd->ctr) { - if(fd->ctr->slice) - fd->ctr->curr_slice++; - if (-1 == cram_flush_container_mt(fd, fd->ctr)) - return -1; - } - - if (fd->pool) { - t_pool_flush(fd->pool); - - if (0 != cram_flush_result(fd)) - return -1; - - pthread_mutex_destroy(&fd->metrics_lock); - pthread_mutex_destroy(&fd->ref_lock); - pthread_mutex_destroy(&fd->bam_list_lock); - - fd->ctr = NULL; // prevent double freeing - - //fprintf(stderr, "CRAM: destroy queue %p\n", fd->rqueue); - - t_results_queue_destroy(fd->rqueue); - } - - if (fd->mode == 'w') { - /* Write EOF block */ - if (CRAM_MAJOR_VERS(fd->version) == 3) { - if (38 != hwrite(fd->fp, - "\x0f\x00\x00\x00\xff\xff\xff\xff" // Cont HDR - "\x0f\xe0\x45\x4f\x46\x00\x00\x00" // Cont HDR - "\x00\x01\x00" // Cont HDR - "\x05\xbd\xd9\x4f" // CRC32 - "\x00\x01\x00\x06\x06" // Comp.HDR blk - "\x01\x00\x01\x00\x01\x00" // Comp.HDR blk - "\xee\x63\x01\x4b", // CRC32 - 38)) - return -1; - } else { - if (30 != hwrite(fd->fp, - "\x0b\x00\x00\x00\xff\xff\xff\xff" - "\x0f\xe0\x45\x4f\x46\x00\x00\x00" - "\x00\x01\x00\x00\x01\x00\x06\x06" - "\x01\x00\x01\x00\x01\x00", 30)) - return -1; - } - } - - for (bl = fd->bl; bl; bl = next) { - int i, max_rec = fd->seqs_per_slice * fd->slices_per_container; - - next = bl->next; - for (i = 0; i < max_rec; i++) { - if (bl->bams[i]) - bam_free(bl->bams[i]); - } - free(bl->bams); - free(bl); - } - - if (hclose(fd->fp) != 0) - return -1; - - if (fd->file_def) - cram_free_file_def(fd->file_def); - - if (fd->header) - sam_hdr_free(fd->header); - - free(fd->prefix); - - if (fd->ctr) - cram_free_container(fd->ctr); - - if (fd->refs) - refs_free(fd->refs); - if (fd->ref_free) - free(fd->ref_free); - - for (i = 0; i < DS_END; i++) - if (fd->m[i]) - free(fd->m[i]); - - if (fd->index) - cram_index_free(fd); - - if (fd->own_pool && fd->pool) - t_pool_destroy(fd->pool, 0); - - free(fd); - return 0; -} - -/* - * Returns 1 if we hit an EOF while reading. - */ -int cram_eof(cram_fd *fd) { - return fd->eof; -} - - -/* - * Sets options on the cram_fd. See CRAM_OPT_* definitions in cram_structs.h. - * Use this immediately after opening. - * - * Returns 0 on success - * -1 on failure - */ -int cram_set_option(cram_fd *fd, enum cram_option opt, ...) { - int r; - va_list args; - - va_start(args, opt); - r = cram_set_voption(fd, opt, args); - va_end(args); - - return r; -} - -/* - * Sets options on the cram_fd. See CRAM_OPT_* definitions in cram_structs.h. - * Use this immediately after opening. - * - * Returns 0 on success - * -1 on failure - */ -int cram_set_voption(cram_fd *fd, enum cram_option opt, va_list args) { - refs_t *refs; - - if (!fd) - return -1; - - switch (opt) { - case CRAM_OPT_DECODE_MD: - fd->decode_md = va_arg(args, int); - break; - - case CRAM_OPT_PREFIX: - if (fd->prefix) - free(fd->prefix); - if (!(fd->prefix = strdup(va_arg(args, char *)))) - return -1; - break; - - case CRAM_OPT_VERBOSITY: - fd->verbose = va_arg(args, int); - break; - - case CRAM_OPT_SEQS_PER_SLICE: - fd->seqs_per_slice = va_arg(args, int); - break; - - case CRAM_OPT_SLICES_PER_CONTAINER: - fd->slices_per_container = va_arg(args, int); - break; - - case CRAM_OPT_EMBED_REF: - fd->embed_ref = va_arg(args, int); - break; - - case CRAM_OPT_NO_REF: - fd->no_ref = va_arg(args, int); - break; - - case CRAM_OPT_IGNORE_MD5: - fd->ignore_md5 = va_arg(args, int); - break; - - case CRAM_OPT_USE_BZIP2: - fd->use_bz2 = va_arg(args, int); - break; - - case CRAM_OPT_USE_RANS: - fd->use_rans = va_arg(args, int); - break; - - case CRAM_OPT_USE_LZMA: - fd->use_lzma = va_arg(args, int); - break; - - case CRAM_OPT_SHARED_REF: - fd->shared_ref = 1; - refs = va_arg(args, refs_t *); - if (refs != fd->refs) { - if (fd->refs) - refs_free(fd->refs); - fd->refs = refs; - fd->refs->count++; - } - break; - - case CRAM_OPT_RANGE: - fd->range = *va_arg(args, cram_range *); - return cram_seek_to_refpos(fd, &fd->range); - - case CRAM_OPT_REFERENCE: - return cram_load_reference(fd, va_arg(args, char *)); - - case CRAM_OPT_VERSION: { - int major, minor; - char *s = va_arg(args, char *); - if (2 != sscanf(s, "%d.%d", &major, &minor)) { - fprintf(stderr, "Malformed version string %s\n", s); - return -1; - } - if (!((major == 1 && minor == 0) || - (major == 2 && (minor == 0 || minor == 1)) || - (major == 3 && minor == 0))) { - fprintf(stderr, "Unknown version string; " - "use 1.0, 2.0, 2.1 or 3.0\n"); - return -1; - } - fd->version = major*256 + minor; - - if (CRAM_MAJOR_VERS(fd->version) >= 3) - fd->use_rans = 1; - break; - } - - case CRAM_OPT_MULTI_SEQ_PER_SLICE: - fd->multi_seq = va_arg(args, int); - break; - - case CRAM_OPT_NTHREADS: { - int nthreads = va_arg(args, int); - if (nthreads > 1) { - if (!(fd->pool = t_pool_init(nthreads*2, nthreads))) - return -1; - - fd->rqueue = t_results_queue_init(); - pthread_mutex_init(&fd->metrics_lock, NULL); - pthread_mutex_init(&fd->ref_lock, NULL); - pthread_mutex_init(&fd->bam_list_lock, NULL); - fd->shared_ref = 1; - fd->own_pool = 1; - } - break; - } - - case CRAM_OPT_THREAD_POOL: - fd->pool = va_arg(args, t_pool *); - if (fd->pool) { - fd->rqueue = t_results_queue_init(); - pthread_mutex_init(&fd->metrics_lock, NULL); - pthread_mutex_init(&fd->ref_lock, NULL); - pthread_mutex_init(&fd->bam_list_lock, NULL); - } - fd->shared_ref = 1; // Needed to avoid clobbering ref between threads - fd->own_pool = 0; - - //fd->qsize = 1; - //fd->decoded = calloc(fd->qsize, sizeof(cram_container *)); - //t_pool_dispatch(fd->pool, cram_decoder_thread, fd); - break; - - case CRAM_OPT_REQUIRED_FIELDS: - fd->required_fields = va_arg(args, int); - break; - - default: - fprintf(stderr, "Unknown CRAM option code %d\n", opt); - return -1; - } - - return 0; -} diff --git a/htslib/cram/cram_io.h b/htslib/cram/cram_io.h deleted file mode 100644 index 43344c2..0000000 --- a/htslib/cram/cram_io.h +++ /dev/null @@ -1,596 +0,0 @@ -/* -Copyright (c) 2012-2014 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/*! \file - * Include cram.h instead. - * - * This is an internal part of the CRAM system and is automatically included - * when you #include cram.h. - * - * Implements the low level CRAM I/O primitives. - * This includes basic data types such as byte, int, ITF-8, - * maps, bitwise I/O, etc. - */ - -#ifndef _CRAM_IO_H_ -#define _CRAM_IO_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#define ITF8_MACROS - -#include -#include - -/**@{ ---------------------------------------------------------------------- - * ITF8 encoding and decoding. - * - * Also see the itf8_get and itf8_put macros. - */ - -/*! INTERNAL: Converts two characters into an integer for use in switch{} */ -#define CRAM_KEY(a,b) (((a)<<8)|((b))) - -/*! Reads an integer in ITF-8 encoding from 'fd' and stores it in - * *val. - * - * @return - * Returns the number of bytes read on success; - * -1 on failure - */ -int itf8_decode(cram_fd *fd, int32_t *val); - -#ifndef ITF8_MACROS -/*! Reads an integer in ITF-8 encoding from 'cp' and stores it in - * *val. - * - * @return - * Returns the number of bytes read on success; - * -1 on failure - */ -int itf8_get(char *cp, int32_t *val_p); - -/*! Stores a value to memory in ITF-8 format. - * - * @return - * Returns the number of bytes required to store the number. - * This is a maximum of 5 bytes. - */ -int itf8_put(char *cp, int32_t val); - -#else - -/* - * Macro implementations of the above - */ -#define itf8_get(c,v) (((uc)(c)[0]<0x80)?(*(v)=(uc)(c)[0],1):(((uc)(c)[0]<0xc0)?(*(v)=(((uc)(c)[0]<<8)|(uc)(c)[1])&0x3fff,2):(((uc)(c)[0]<0xe0)?(*(v)=(((uc)(c)[0]<<16)|((uc)(c)[1]<<8)|(uc)(c)[2])&0x1fffff,3):(((uc)(c)[0]<0xf0)?(*(v)=(((uc)(c)[0]<<24)|((uc)(c)[1]<<16)|((uc)(c)[2]<<8)|(uc)(c)[3])&0x0fffffff,4):(*(v)=(((uc)(c)[0]&0x0f)<<28)|((uc)(c)[1]<<20)|((uc)(c)[2]<<12)|((uc)(c)[3]<<4)|((uc)(c)[4]&0x0f),5))))) - -#define itf8_put(c,v) ((!((v)&~0x7f))?((c)[0]=(v),1):(!((v)&~0x3fff))?((c)[0]=((v)>>8)|0x80,(c)[1]=(v)&0xff,2):(!((v)&~0x1fffff))?((c)[0]=((v)>>16)|0xc0,(c)[1]=((v)>>8)&0xff,(c)[2]=(v)&0xff,3):(!((v)&~0xfffffff))?((c)[0]=((v)>>24)|0xe0,(c)[1]=((v)>>16)&0xff,(c)[2]=((v)>>8)&0xff,(c)[3]=(v)&0xff,4):((c)[0]=0xf0|(((v)>>28)&0xff),(c)[1]=((v)>>20)&0xff,(c)[2]=((v)>>12)&0xff,(c)[3]=((v)>>4)&0xff,(c)[4]=(v)&0xf,5)) - -#define itf8_size(v) ((!((v)&~0x7f))?1:(!((v)&~0x3fff))?2:(!((v)&~0x1fffff))?3:(!((v)&~0xfffffff))?4:5) - -#endif - -int ltf8_get(char *cp, int64_t *val_p); -int ltf8_put(char *cp, int64_t val); - -/*! Pushes a value in ITF8 format onto the end of a block. - * - * This shouldn't be used for high-volume data as it is not the fastest - * method. - * - * @return - * Returns the number of bytes written - */ -int itf8_put_blk(cram_block *blk, int val); - -/**@}*/ -/**@{ ---------------------------------------------------------------------- - * CRAM blocks - the dynamically growable data block. We have code to - * create, update, (un)compress and read/write. - * - * These are derived from the deflate_interlaced.c blocks, but with the - * CRAM extension of content types and IDs. - */ - -/*! Allocates a new cram_block structure with a specified content_type and - * id. - * - * @return - * Returns block pointer on success; - * NULL on failure - */ -cram_block *cram_new_block(enum cram_content_type content_type, - int content_id); - -/*! Reads a block from a cram file. - * - * @return - * Returns cram_block pointer on success; - * NULL on failure - */ -cram_block *cram_read_block(cram_fd *fd); - -/*! Writes a CRAM block. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_write_block(cram_fd *fd, cram_block *b); - -/*! Frees a CRAM block, deallocating internal data too. - */ -void cram_free_block(cram_block *b); - -/*! Uncompress a memory block using Zlib. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -char *zlib_mem_inflate(char *cdata, size_t csize, size_t *size); - -/*! Uncompresses a CRAM block, if compressed. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_uncompress_block(cram_block *b); - -/*! Compresses a block. - * - * Compresses a block using one of two different zlib strategies. If we only - * want one choice set strat2 to be -1. - * - * The logic here is that sometimes Z_RLE does a better job than Z_FILTERED - * or Z_DEFAULT_STRATEGY on quality data. If so, we'd rather use it as it is - * significantly faster. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_compress_block(cram_fd *fd, cram_block *b, cram_metrics *metrics, - int method, int level); - -cram_metrics *cram_new_metrics(void); -char *cram_block_method2str(enum cram_block_method m); -char *cram_content_type2str(enum cram_content_type t); - -/* --- Accessor macros for manipulating blocks on a byte by byte basis --- */ - -/* Block size and data pointer. */ -#define BLOCK_SIZE(b) ((b)->byte) -#define BLOCK_DATA(b) ((b)->data) - -/* Returns the address one past the end of the block */ -#define BLOCK_END(b) (&(b)->data[(b)->byte]) - -/* Request block to be at least 'l' bytes long */ -#define BLOCK_RESIZE(b,l) \ - do { \ - while((b)->alloc <= (l)) { \ - (b)->alloc = (b)->alloc ? (b)->alloc*1.5 : 1024; \ - (b)->data = realloc((b)->data, (b)->alloc); \ - } \ - } while(0) - -/* Ensure the block can hold at least another 'l' bytes */ -#define BLOCK_GROW(b,l) BLOCK_RESIZE((b), BLOCK_SIZE((b)) + (l)) - -/* Append string 's' of length 'l' */ -#define BLOCK_APPEND(b,s,l) \ - do { \ - BLOCK_GROW((b),(l)); \ - memcpy(BLOCK_END((b)), (s), (l)); \ - BLOCK_SIZE((b)) += (l); \ - } while (0) - -/* Append as single character 'c' */ -#define BLOCK_APPEND_CHAR(b,c) \ - do { \ - BLOCK_GROW((b),1); \ - (b)->data[(b)->byte++] = (c); \ - } while (0) - -/* Append a single unsigned integer */ -#define BLOCK_APPEND_UINT(b,i) \ - do { \ - unsigned char *cp; \ - BLOCK_GROW((b),11); \ - cp = &(b)->data[(b)->byte]; \ - (b)->byte += append_uint32(cp, (i)) - cp; \ - } while (0) - -static inline unsigned char *append_uint32(unsigned char *cp, uint32_t i) { - uint32_t j; - - if (i == 0) { - *cp++ = '0'; - return cp; - } - - if (i < 100) goto b1; - if (i < 10000) goto b3; - if (i < 1000000) goto b5; - if (i < 100000000) goto b7; - - if ((j = i / 1000000000)) {*cp++ = j + '0'; i -= j*1000000000; goto x8;} - if ((j = i / 100000000)) {*cp++ = j + '0'; i -= j*100000000; goto x7;} - b7:if ((j = i / 10000000)) {*cp++ = j + '0'; i -= j*10000000; goto x6;} - if ((j = i / 1000000)) {*cp++ = j + '0', i -= j*1000000; goto x5;} - b5:if ((j = i / 100000)) {*cp++ = j + '0', i -= j*100000; goto x4;} - if ((j = i / 10000)) {*cp++ = j + '0', i -= j*10000; goto x3;} - b3:if ((j = i / 1000)) {*cp++ = j + '0', i -= j*1000; goto x2;} - if ((j = i / 100)) {*cp++ = j + '0', i -= j*100; goto x1;} - b1:if ((j = i / 10)) {*cp++ = j + '0', i -= j*10; goto x0;} - if (i) *cp++ = i + '0'; - return cp; - - x8: *cp++ = i / 100000000 + '0', i %= 100000000; - x7: *cp++ = i / 10000000 + '0', i %= 10000000; - x6: *cp++ = i / 1000000 + '0', i %= 1000000; - x5: *cp++ = i / 100000 + '0', i %= 100000; - x4: *cp++ = i / 10000 + '0', i %= 10000; - x3: *cp++ = i / 1000 + '0', i %= 1000; - x2: *cp++ = i / 100 + '0', i %= 100; - x1: *cp++ = i / 10 + '0', i %= 10; - x0: *cp++ = i + '0'; - - return cp; -} - -static inline unsigned char *append_sub32(unsigned char *cp, uint32_t i) { - *cp++ = i / 100000000 + '0', i %= 100000000; - *cp++ = i / 10000000 + '0', i %= 10000000; - *cp++ = i / 1000000 + '0', i %= 1000000; - *cp++ = i / 100000 + '0', i %= 100000; - *cp++ = i / 10000 + '0', i %= 10000; - *cp++ = i / 1000 + '0', i %= 1000; - *cp++ = i / 100 + '0', i %= 100; - *cp++ = i / 10 + '0', i %= 10; - *cp++ = i + '0'; - - return cp; -} - -static inline unsigned char *append_uint64(unsigned char *cp, uint64_t i) { - uint64_t j; - - if (i <= 0xffffffff) - return append_uint32(cp, i); - - if ((j = i/1000000000) > 1000000000) { - cp = append_uint32(cp, j/1000000000); - j %= 1000000000; - cp = append_sub32(cp, j); - } else { - cp = append_uint32(cp, i / 1000000000); - } - cp = append_sub32(cp, i % 1000000000); - - return cp; -} - -#define BLOCK_UPLEN(b) \ - (b)->comp_size = (b)->uncomp_size = BLOCK_SIZE((b)) - -/**@}*/ -/**@{ ---------------------------------------------------------------------- - * Reference sequence handling - */ - -/*! Loads a reference set from fn and stores in the cram_fd. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_load_reference(cram_fd *fd, char *fn); - -/*! Generates a lookup table in refs based on the SQ headers in SAM_hdr. - * - * Indexes references by the order they appear in a BAM file. This may not - * necessarily be the same order they appear in the fasta reference file. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int refs2id(refs_t *r, SAM_hdr *bfd); - -void refs_free(refs_t *r); - -/*! Returns a portion of a reference sequence from start to end inclusive. - * - * The returned pointer is owned by the cram_file fd and should not be freed - * by the caller. It is valid only until the next cram_get_ref is called - * with the same fd parameter (so is thread-safe if given multiple files). - * - * To return the entire reference sequence, specify start as 1 and end - * as 0. - * - * @return - * Returns reference on success; - * NULL on failure - */ -char *cram_get_ref(cram_fd *fd, int id, int start, int end); -void cram_ref_incr(refs_t *r, int id); -void cram_ref_decr(refs_t *r, int id); -/**@}*/ -/**@{ ---------------------------------------------------------------------- - * Containers - */ - -/*! Creates a new container, specifying the maximum number of slices - * and records permitted. - * - * @return - * Returns cram_container ptr on success; - * NULL on failure - */ -cram_container *cram_new_container(int nrec, int nslice); -void cram_free_container(cram_container *c); - -/*! Reads a container header. - * - * @return - * Returns cram_container on success; - * NULL on failure or no container left (fd->err == 0). - */ -cram_container *cram_read_container(cram_fd *fd); - -/*! Writes a container structure. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_write_container(cram_fd *fd, cram_container *h); - -/*! Flushes a container to disk. - * - * Flushes a completely or partially full container to disk, writing - * container structure, header and blocks. This also calls the encoder - * functions. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_flush_container(cram_fd *fd, cram_container *c); -int cram_flush_container_mt(cram_fd *fd, cram_container *c); - - -/**@}*/ -/**@{ ---------------------------------------------------------------------- - * Compression headers; the first part of the container - */ - -/*! Creates a new blank container compression header - * - * @return - * Returns header ptr on success; - * NULL on failure - */ -cram_block_compression_hdr *cram_new_compression_header(void); - -/*! Frees a cram_block_compression_hdr */ -void cram_free_compression_header(cram_block_compression_hdr *hdr); - - -/**@}*/ -/**@{ ---------------------------------------------------------------------- - * Slices and slice headers - */ - -/*! Frees a slice header */ -void cram_free_slice_header(cram_block_slice_hdr *hdr); - -/*! Frees a slice */ -void cram_free_slice(cram_slice *s); - -/*! Creates a new empty slice in memory, for subsequent writing to - * disk. - * - * @return - * Returns cram_slice ptr on success; - * NULL on failure - */ -cram_slice *cram_new_slice(enum cram_content_type type, int nrecs); - -/*! Loads an entire slice. - * - * FIXME: In 1.0 the native unit of slices within CRAM is broken - * as slices contain references to objects in other slices. - * To work around this while keeping the slice oriented outer loop - * we read all slices and stitch them together into a fake large - * slice instead. - * - * @return - * Returns cram_slice ptr on success; - * NULL on failure - */ -cram_slice *cram_read_slice(cram_fd *fd); - - - -/**@}*/ -/**@{ ---------------------------------------------------------------------- - * CRAM file definition (header) - */ - -/*! Reads a CRAM file definition structure. - * - * @return - * Returns file_def ptr on success; - * NULL on failure - */ -cram_file_def *cram_read_file_def(cram_fd *fd); - -/*! Writes a cram_file_def structure to cram_fd. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_write_file_def(cram_fd *fd, cram_file_def *def); - -/*! Frees a cram_file_def structure. */ -void cram_free_file_def(cram_file_def *def); - - -/**@}*/ -/**@{ ---------------------------------------------------------------------- - * SAM header I/O - */ - -/*! Reads the SAM header from the first CRAM data block. - * - * Also performs minimal parsing to extract read-group - * and sample information. - * - * @return - * Returns SAM hdr ptr on success; - * NULL on failure - */ -SAM_hdr *cram_read_SAM_hdr(cram_fd *fd); - -/*! Writes a CRAM SAM header. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_write_SAM_hdr(cram_fd *fd, SAM_hdr *hdr); - - -/**@}*/ -/**@{ ---------------------------------------------------------------------- - * The top-level cram opening, closing and option handling - */ - -/*! Opens a CRAM file for read (mode "rb") or write ("wb"). - * - * The filename may be "-" to indicate stdin or stdout. - * - * @return - * Returns file handle on success; - * NULL on failure. - */ -cram_fd *cram_open(const char *filename, const char *mode); - -/*! Opens an existing stream for reading or writing. - * - * @return - * Returns file handle on success; - * NULL on failure. - */ -cram_fd *cram_dopen(struct hFILE *fp, const char *filename, const char *mode); - -/*! Closes a CRAM file. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_close(cram_fd *fd); - -/* - * Seek within a CRAM file. - * - * Returns 0 on success - * -1 on failure - */ -int cram_seek(cram_fd *fd, off_t offset, int whence); - -/* - * Flushes a CRAM file. - * Useful for when writing to stdout without wishing to close the stream. - * - * Returns 0 on success - * -1 on failure - */ -int cram_flush(cram_fd *fd); - -/*! Checks for end of file on a cram_fd stream. - * - * @return - * Returns 0 if not at end of file - * 1 if we hit an expected EOF (end of range or EOF block) - * 2 for other EOF (end of stream without EOF block) - */ -int cram_eof(cram_fd *fd); - -/*! Sets options on the cram_fd. - * - * See CRAM_OPT_* definitions in cram_structs.h. - * Use this immediately after opening. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_set_option(cram_fd *fd, enum cram_option opt, ...); - -/*! Sets options on the cram_fd. - * - * See CRAM_OPT_* definitions in cram_structs.h. - * Use this immediately after opening. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_set_voption(cram_fd *fd, enum cram_option opt, va_list args); - -/*! - * Attaches a header to a cram_fd. - * - * This should be used when creating a new cram_fd for writing where - * we have an SAM_hdr already constructed (eg from a file we've read - * in). - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int cram_set_header(cram_fd *fd, SAM_hdr *hdr); - - -#ifdef __cplusplus -} -#endif - -#endif /* _CRAM_IO_H_ */ diff --git a/htslib/cram/cram_samtools.c b/htslib/cram/cram_samtools.c deleted file mode 100644 index 27c54e5..0000000 --- a/htslib/cram/cram_samtools.c +++ /dev/null @@ -1,147 +0,0 @@ -/* -Copyright (c) 2010-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include -#include - -#include "cram/cram.h" -#include "htslib/sam.h" - -/*--------------------------------------------------------------------------- - * Samtools compatibility portion - */ -int bam_construct_seq(bam_seq_t **bp, size_t extra_len, - const char *qname, size_t qname_len, - int flag, - int rname, // Ref ID - int pos, - int end, // aligned start/end coords - int mapq, - uint32_t ncigar, const uint32_t *cigar, - int mrnm, // Mate Ref ID - int mpos, - int isize, - int len, - const char *seq, - const char *qual) { - static const char L[256] = { - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15, 0,15,15, - 15, 1,14, 2,13,15,15, 4,11,15,15,12,15, 3,15,15, - 15,15, 5, 6, 8,15, 7, 9,15,10,15,15,15,15,15,15, - 15, 1,14, 2,13,15,15, 4,11,15,15,12,15, 3,15,15, - 15,15, 5, 6, 8,15, 7, 9,15,10,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 - }; - bam1_t *b = (bam1_t *)*bp; - uint8_t *cp; - int i, bam_len; - - //b->l_aux = extra_len; // we fill this out later - - bam_len = qname_len + 1 + ncigar*4 + (len+1)/2 + len + extra_len; - if (b->m_data < bam_len) { - b->m_data = bam_len; - kroundup32(b->m_data); - b->data = (uint8_t*)realloc(b->data, b->m_data); - if (!b->data) - return -1; - } - b->l_data = bam_len; - - b->core.tid = rname; - b->core.pos = pos-1; - b->core.bin = bam_reg2bin(pos, end); - b->core.qual = mapq; - b->core.l_qname = qname_len+1; - b->core.flag = flag; - b->core.n_cigar = ncigar; - b->core.l_qseq = len; - b->core.mtid = mrnm; - b->core.mpos = mpos-1; - b->core.isize = isize; - - cp = b->data; - - strncpy((char *)cp, qname, qname_len); - cp[qname_len] = 0; - cp += qname_len+1; - memcpy(cp, cigar, ncigar*4); - cp += ncigar*4; - - for (i = 0; i+1 < len; i+=2) { - *cp++ = (L[(uc)seq[i]]<<4) + L[(uc)seq[i+1]]; - } - if (i < len) - *cp++ = L[(uc)seq[i]]<<4; - - if (qual) - memcpy(cp, qual, len); - else - memset(cp, '\xff', len); - - return 0; -} - -bam_hdr_t *cram_header_to_bam(SAM_hdr *h) { - int i; - bam_hdr_t *header = bam_hdr_init(); - - header->l_text = ks_len(&h->text); - header->text = malloc(header->l_text+1); - memcpy(header->text, ks_str(&h->text), header->l_text); - header->text[header->l_text] = 0; - - header->n_targets = h->nref; - header->target_name = (char **)calloc(header->n_targets, - sizeof(char *)); - header->target_len = (uint32_t *)calloc(header->n_targets, 4); - - for (i = 0; i < h->nref; i++) { - header->target_name[i] = strdup(h->ref[i].name); - header->target_len[i] = h->ref[i].len; - } - - return header; -} - -SAM_hdr *bam_header_to_cram(bam_hdr_t *h) { - return sam_hdr_parse_(h->text, h->l_text); -} diff --git a/htslib/cram/cram_samtools.h b/htslib/cram/cram_samtools.h deleted file mode 100644 index f7949d0..0000000 --- a/htslib/cram/cram_samtools.h +++ /dev/null @@ -1,97 +0,0 @@ -/* -Copyright (c) 2010-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _CRAM_SAMTOOLS_H_ -#define _CRAM_SAMTOOLS_H_ - -/* Samtools compatible API */ -#define bam_blk_size(b) ((b)->l_data) -#define bam_set_blk_size(b,v) ((b)->data_len = (v)) - -#define bam_ref(b) (b)->core.tid -#define bam_pos(b) (b)->core.pos -#define bam_mate_pos(b) (b)->core.mpos -#define bam_mate_ref(b) (b)->core.mtid -#define bam_ins_size(b) (b)->core.isize -#define bam_seq_len(b) (b)->core.l_qseq -#define bam_cigar_len(b) (b)->core.n_cigar -#define bam_flag(b) (b)->core.flag -#define bam_bin(b) (b)->core.bin -#define bam_map_qual(b) (b)->core.qual -#define bam_name_len(b) (b)->core.l_qname -#define bam_name(b) bam_get_qname((b)) -#define bam_qual(b) bam_get_qual((b)) -#define bam_seq(b) bam_get_seq((b)) -#define bam_cigar(b) bam_get_cigar((b)) -#define bam_aux(b) bam_get_aux((b)) - -#define bam_dup(b) bam_copy1(bam_init1(), (b)) - -#define bam_free(b) bam_destroy1((b)) - -#define bam_reg2bin(beg,end) hts_reg2bin((beg),(end),14,5) - -#include "htslib/sam.h" - -enum cigar_op { - BAM_CMATCH_=BAM_CMATCH, - BAM_CINS_=BAM_CINS, - BAM_CDEL_=BAM_CDEL, - BAM_CREF_SKIP_=BAM_CREF_SKIP, - BAM_CSOFT_CLIP_=BAM_CSOFT_CLIP, - BAM_CHARD_CLIP_=BAM_CHARD_CLIP, - BAM_CPAD_=BAM_CPAD, - BAM_CBASE_MATCH=BAM_CEQUAL, - BAM_CBASE_MISMATCH=BAM_CDIFF -}; - -typedef bam1_t bam_seq_t; - -#include "cram/sam_header.h" - -bam_hdr_t *cram_header_to_bam(SAM_hdr *h); -SAM_hdr *bam_header_to_cram(bam_hdr_t *h); - -int bam_construct_seq(bam_seq_t **bp, size_t extra_len, - const char *qname, size_t qname_len, - int flag, - int rname, // Ref ID - int pos, - int end, // aligned start/end coords - int mapq, - uint32_t ncigar, const uint32_t *cigar, - int mrnm, // Mate Ref ID - int mpos, - int isize, - int len, - const char *seq, - const char *qual); - -#endif /* _CRAM_SAMTOOLS_H_ */ diff --git a/htslib/cram/cram_stats.c b/htslib/cram/cram_stats.c deleted file mode 100644 index 9551f00..0000000 --- a/htslib/cram/cram_stats.c +++ /dev/null @@ -1,450 +0,0 @@ -/* -Copyright (c) 2012-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cram/cram.h" -#include "cram/os.h" - -cram_stats *cram_stats_create(void) { - return calloc(1, sizeof(cram_stats)); -} - -void cram_stats_add(cram_stats *st, int32_t val) { - st->nsamp++; - - //assert(val >= 0); - - if (val < MAX_STAT_VAL && val >= 0) { - st->freqs[val]++; - } else { - khint_t k; - int r; - - if (!st->h) { - st->h = kh_init(m_i2i); - } - - k = kh_put(m_i2i, st->h, val, &r); - if (r == 0) - kh_val(st->h, k)++; - else if (r != -1) - kh_val(st->h, k) = 1; - else - ; // FIXME: handle error - } -} - -void cram_stats_del(cram_stats *st, int32_t val) { - st->nsamp--; - - //assert(val >= 0); - - if (val < MAX_STAT_VAL && val >= 0) { - st->freqs[val]--; - assert(st->freqs[val] >= 0); - } else if (st->h) { - khint_t k = kh_get(m_i2i, st->h, val); - - if (k != kh_end(st->h)) { - if (--kh_val(st->h, k) == 0) - kh_del(m_i2i, st->h, k); - } else { - fprintf(stderr, "Failed to remove val %d from cram_stats\n", val); - st->nsamp++; - } - } else { - fprintf(stderr, "Failed to remove val %d from cram_stats\n", val); - st->nsamp++; - } -} - -void cram_stats_dump(cram_stats *st) { - int i; - fprintf(stderr, "cram_stats:\n"); - for (i = 0; i < MAX_STAT_VAL; i++) { - if (!st->freqs[i]) - continue; - fprintf(stderr, "\t%d\t%d\n", i, st->freqs[i]); - } - if (st->h) { - khint_t k; - for (k = kh_begin(st->h); k != kh_end(st->h); k++) { - if (!kh_exist(st->h, k)) - continue; - - fprintf(stderr, "\t%d\t%d\n", kh_key(st->h, k), kh_val(st->h, k)); - } - } -} - -#if 1 -/* Returns the number of bits set in val; it the highest bit used */ -static int nbits(int v) { - static const int MultiplyDeBruijnBitPosition[32] = { - 1, 10, 2, 11, 14, 22, 3, 30, 12, 15, 17, 19, 23, 26, 4, 31, - 9, 13, 21, 29, 16, 18, 25, 8, 20, 28, 24, 7, 27, 6, 5, 32 - }; - - v |= v >> 1; // first up to set all bits 1 after the first 1 */ - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - - // DeBruijn magic to find top bit - return MultiplyDeBruijnBitPosition[(uint32_t)(v * 0x07C4ACDDU) >> 27]; -} -#endif - -/* - * Computes entropy from integer frequencies for various encoding methods and - * picks the best encoding. - * - * FIXME: we could reuse some of the code here for the actual encoding - * parameters too. Eg the best 'k' for SUBEXP or the code lengths for huffman. - * - * Returns the best codec to use. - */ -enum cram_encoding cram_stats_encoding(cram_fd *fd, cram_stats *st) { - enum cram_encoding best_encoding = E_NULL; - int best_size = INT_MAX, bits; - int nvals, i, ntot = 0, max_val = 0, min_val = INT_MAX, k; - int *vals = NULL, *freqs = NULL, vals_alloc = 0, *codes; - - //cram_stats_dump(st); - - /* Count number of unique symbols */ - for (nvals = i = 0; i < MAX_STAT_VAL; i++) { - if (!st->freqs[i]) - continue; - if (nvals >= vals_alloc) { - vals_alloc = vals_alloc ? vals_alloc*2 : 1024; - vals = realloc(vals, vals_alloc * sizeof(int)); - freqs = realloc(freqs, vals_alloc * sizeof(int)); - if (!vals || !freqs) { - if (vals) free(vals); - if (freqs) free(freqs); - return E_HUFFMAN; // Cannot do much else atm - } - } - vals[nvals] = i; - freqs[nvals] = st->freqs[i]; - ntot += freqs[nvals]; - if (max_val < i) max_val = i; - if (min_val > i) min_val = i; - nvals++; - } - if (st->h) { - khint_t k; - int i; - - for (k = kh_begin(st->h); k != kh_end(st->h); k++) { - if (!kh_exist(st->h, k)) - continue; - - if (nvals >= vals_alloc) { - vals_alloc = vals_alloc ? vals_alloc*2 : 1024; - vals = realloc(vals, vals_alloc * sizeof(int)); - freqs = realloc(freqs, vals_alloc * sizeof(int)); - if (!vals || !freqs) - return E_HUFFMAN; // Cannot do much else atm - } - i = kh_key(st->h, k); - vals[nvals]=i; - freqs[nvals] = kh_val(st->h, k); - ntot += freqs[nvals]; - if (max_val < i) max_val = i; - if (min_val > i) min_val = i; - nvals++; - } - } - - st->nvals = nvals; - assert(ntot == st->nsamp); - - if (nvals <= 1) { - free(vals); - free(freqs); - return E_HUFFMAN; - } - - if (fd->verbose > 1) - fprintf(stderr, "Range = %d..%d, nvals=%d, ntot=%d\n", - min_val, max_val, nvals, ntot); - - /* Theoretical entropy */ -// if (fd->verbose > 1) { -// double dbits = 0; -// for (i = 0; i < nvals; i++) { -// dbits += freqs[i] * log((double)freqs[i]/ntot); -// } -// dbits /= -log(2); -// if (fd->verbose > 1) -// fprintf(stderr, "Entropy = %f\n", dbits); -// } - - if (nvals > 1 && ntot > 256) { -#if 0 - /* - * CRUDE huffman estimator. Round to closest and round up from 0 - * to 1 bit. - * - * With and without ITF8 incase we have a few discrete values but with - * large magnitude. - * - * Note rans0/arith0 and Z_HUFFMAN_ONLY vs internal huffman can be - * compared in this way, but order-1 (eg rans1) or maybe LZ77 modes - * may detect the correlation of high bytes to low bytes in multi- - * byte values. So this predictor breaks down. - */ - double dbits = 0; // entropy + ~huffman - double dbitsH = 0; - double dbitsE = 0; // external entropy + ~huffman - double dbitsEH = 0; - int F[256] = {0}, n = 0; - double e = 0; // accumulated error bits - for (i = 0; i < nvals; i++) { - double x; int X; - unsigned int v = vals[i]; - - //Better encoding would cope with sign. - //v = ABS(vals[i])*2+(vals[i]<0); - - if (!(v & ~0x7f)) { - F[v] += freqs[i], n+=freqs[i]; - } else if (!(v & ~0x3fff)) { - F[(v>>8) |0x80] += freqs[i]; - F[ v &0xff] += freqs[i], n+=2*freqs[i]; - } else if (!(v & ~0x1fffff)) { - F[(v>>16)|0xc0] += freqs[i]; - F[(v>>8 )&0xff] += freqs[i]; - F[ v &0xff] += freqs[i], n+=3*freqs[i]; - } else if (!(v & ~0x0fffffff)) { - F[(v>>24)|0xe0] += freqs[i]; - F[(v>>16)&0xff] += freqs[i]; - F[(v>>8 )&0xff] += freqs[i]; - F[ v &0xff] += freqs[i], n+=4*freqs[i]; - } else { - F[(v>>28)|0xf0] += freqs[i]; - F[(v>>20)&0xff] += freqs[i]; - F[(v>>12)&0xff] += freqs[i]; - F[(v>>4 )&0xff] += freqs[i]; - F[ v &0x0f] += freqs[i], n+=5*freqs[i]; - } - - x = -log((double)freqs[i]/ntot)/.69314718055994530941; - X = x+0.5; - if ((int)(x+((double)e/freqs[i])+.5)>X) { - X++; - } else if ((int)(x+((double)e/freqs[i])+.5) 1.1) { - //fprintf(stderr, "=> %d < 200 ? E_HUFFMAN : E_BETA\n", nvals); - free(vals); free(freqs); - return nvals < 200 ? E_HUFFMAN : E_BETA; - } -#endif - free(vals); free(freqs); - return E_EXTERNAL; - } - - /* - * Avoid complex stats for now, just do heuristic of HUFFMAN for small - * alphabets and BETA for anything large. - */ - free(vals); free(freqs); - return nvals < 200 ? E_HUFFMAN : E_BETA; - //return E_HUFFMAN; - //return E_EXTERNAL; - - - /* We only support huffman now anyway... */ - //free(vals); free(freqs); return E_HUFFMAN; - - /* Beta */ - bits = nbits(max_val - min_val) * ntot; - if (fd->verbose > 1) - fprintf(stderr, "BETA = %d\n", bits); - if (best_size > bits) - best_size = bits, best_encoding = E_BETA; - -#if 0 - /* Unary */ - if (min_val >= 0) { - for (bits = i = 0; i < nvals; i++) - bits += freqs[i]*(vals[i]+1); - if (fd->verbose > 1) - fprintf(stderr, "UNARY = %d\n", bits); - if (best_size > bits) - best_size = bits, best_encoding = E_NULL; //E_UNARY; - } - - /* Gamma */ - for (bits = i = 0; i < nvals; i++) - bits += ((nbits(vals[i]-min_val+1)-1) + nbits(vals[i]-min_val+1)) * freqs[i]; - if (fd->verbose > 1) - fprintf(stderr, "GAMMA = %d\n", bits); - if (best_size > bits) - best_size = bits, best_encoding = E_GAMMA; - - /* Subexponential */ - for (k = 0; k < 10; k++) { - for (bits = i = 0; i < nvals; i++) { - if (vals[i]-min_val < (1<verbose > 1) - fprintf(stderr, "SUBEXP%d = %d\n", k, bits); - if (best_size > bits) - best_size = bits, best_encoding = E_SUBEXP; - } -#endif - - /* byte array len */ - - /* byte array stop */ - - /* External? Guesswork! */ - - /* Huffman */ -// qsort(freqs, nvals, sizeof(freqs[0]), sort_freqs); -// for (i = 0; i < nvals; i++) { -// fprintf(stderr, "%d = %d\n", i, freqs[i]); -// vals[i] = 0; -// } - - /* Grow freqs to 2*freqs, to store sums */ - /* Vals holds link data */ - freqs = realloc(freqs, 2*nvals*sizeof(*freqs)); - codes = calloc(2*nvals, sizeof(*codes)); - if (!freqs || !codes) - return E_HUFFMAN; // Cannot do much else atm - - /* Inefficient, use pointers to form chain so we can insert and maintain - * a sorted list? This is currently O(nvals^2) complexity. - */ - for (;;) { - int low1 = INT_MAX, low2 = INT_MAX; - int ind1 = 0, ind2 = 0; - for (i = 0; i < nvals; i++) { - if (freqs[i] < 0) - continue; - if (low1 > freqs[i]) - low2 = low1, ind2 = ind1, low1 = freqs[i], ind1 = i; - else if (low2 > freqs[i]) - low2 = freqs[i], ind2 = i; - } - if (low2 == INT_MAX) - break; - - //fprintf(stderr, "Merge ind %d (%d), %d (%d) = %d+%d, => %d=%d\n", - // ind1, vals[ind1], ind2, vals[ind2], low1, low2, - // nvals, low1+low2); - - freqs[nvals] = low1 + low2; - codes[ind1] = nvals; - codes[ind2] = nvals; - freqs[ind1] *= -1; - freqs[ind2] *= -1; - nvals++; - } - nvals = nvals/2+1; - - for (i = 0; i < nvals; i++) { - int code_len = 0; - for (k = codes[i]; k; k = codes[k]) - code_len++; - codes[i] = code_len; - freqs[i] *= -1; - //fprintf(stderr, "%d / %d => %d\n", vals[i], freqs[i], codes[i]); - } - - for (bits = i = 0; i < nvals; i++) { - bits += freqs[i] * codes[i]; - } - if (fd->verbose > 1) - fprintf(stderr, "HUFFMAN = %d\n", bits); - if (best_size >= bits) - best_size = bits, best_encoding = E_HUFFMAN; - free(codes); - - free(vals); - free(freqs); - - return best_encoding; -} - -void cram_stats_free(cram_stats *st) { - if (st->h) - kh_destroy(m_i2i, st->h); - free(st); -} diff --git a/htslib/cram/cram_stats.h b/htslib/cram/cram_stats.h deleted file mode 100644 index b471e68..0000000 --- a/htslib/cram/cram_stats.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright (c) 2012-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _CRAM_STATS_H_ -#define _CRAM_STATS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -cram_stats *cram_stats_create(void); -void cram_stats_add(cram_stats *st, int32_t val); -void cram_stats_del(cram_stats *st, int32_t val); -void cram_stats_dump(cram_stats *st); -void cram_stats_free(cram_stats *st); - -/* - * Computes entropy from integer frequencies for various encoding methods and - * picks the best encoding. - * - * FIXME: we could reuse some of the code here for the actual encoding - * parameters too. Eg the best 'k' for SUBEXP or the code lengths for huffman. - * - * Returns the best codec to use. - */ -enum cram_encoding cram_stats_encoding(cram_fd *fd, cram_stats *st); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/cram/cram_structs.h b/htslib/cram/cram_structs.h deleted file mode 100644 index ab9f5bf..0000000 --- a/htslib/cram/cram_structs.h +++ /dev/null @@ -1,809 +0,0 @@ -/* -Copyright (c) 2012-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _CRAM_STRUCTS_H_ -#define _CRAM_STRUCTS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Defines in-memory structs for the basic file-format objects in the - * CRAM format. - * - * The basic file format is: - * File-def SAM-hdr Container Container ... - * - * Container: - * Service-block data-block data-block ... - * - * Multiple blocks in a container are grouped together as slices, - * also sometimes referred to as landmarks in the spec. - */ - - -#include - -#include "cram/thread_pool.h" -#include "cram/string_alloc.h" -#include "htslib/khash.h" - -// Generic hash-map integer -> integer -KHASH_MAP_INIT_INT(m_i2i, int) - -// Generic hash-set integer -> (existance) -KHASH_SET_INIT_INT(s_i2i) - -// For brevity -typedef unsigned char uc; - -/* - * A union for the preservation map. Required for khash. - */ -typedef union { - int i; - char *p; -} pmap_t; - -// Generates static functions here which isn't ideal, but we have no way -// currently to declare the kh_map_t structure here without also declaring a -// duplicate in the .c files due to the nature of the KHASH macros. -KHASH_MAP_INIT_STR(map, pmap_t) - -struct hFILE; - -#define SEQS_PER_SLICE 10000 -#define SLICE_PER_CNT 1 - -#define CRAM_SUBST_MATRIX "CGTNAGTNACTNACGNACGT" - -#define MAX_STAT_VAL 1024 -//#define MAX_STAT_VAL 16 -typedef struct { - int freqs[MAX_STAT_VAL]; - khash_t(m_i2i) *h; - int nsamp; // total number of values added - int nvals; // total number of unique values added -} cram_stats; - -/* NB: matches java impl, not the spec */ -enum cram_encoding { - E_NULL = 0, - E_EXTERNAL = 1, - E_GOLOMB = 2, - E_HUFFMAN = 3, - E_BYTE_ARRAY_LEN = 4, - E_BYTE_ARRAY_STOP = 5, - E_BETA = 6, - E_SUBEXP = 7, - E_GOLOMB_RICE = 8, - E_GAMMA = 9 -}; - -enum cram_external_type { - E_INT = 1, - E_LONG = 2, - E_BYTE = 3, - E_BYTE_ARRAY = 4, - E_BYTE_ARRAY_BLOCK = 5, -}; - -/* External IDs used by this implementation (only assumed during writing) */ -enum cram_DS_ID { - DS_CORE = 0, - DS_aux = 1, // aux_blk - DS_aux_OQ = 2, - DS_aux_BQ = 3, - DS_aux_BD = 4, - DS_aux_BI = 5, - DS_aux_FZ = 6, // also ZM:B - DS_aux_oq = 7, // other qualities - DS_aux_os = 8, // other sequences - DS_aux_oz = 9, // other strings - DS_ref, - DS_RN, // name_blk - DS_QS, // qual_blk - DS_IN, // base_blk - DS_SC, // soft_blk - - DS_BF, // start loop - DS_CF, - DS_AP, - DS_RG, - DS_MQ, - DS_NS, - DS_MF, - DS_TS, - DS_NP, - DS_NF, - DS_RL, - DS_FN, - DS_FC, - DS_FP, - DS_DL, - DS_BA, - DS_BS, - DS_TL, - DS_RI, - DS_RS, - DS_PD, - DS_HC, - DS_BB, - DS_QQ, - - DS_TN, // end loop - - DS_RN_len, - DS_SC_len, - DS_BB_len, - DS_QQ_len, - - DS_TC, // CRAM v1.0 tags - DS_TM, // test - DS_TV, // test - - DS_END, -}; - -/* "File Definition Structure" */ -typedef struct { - char magic[4]; - uint8_t major_version; - uint8_t minor_version; - char file_id[20]; // Filename or SHA1 checksum -} cram_file_def; - -#define CRAM_MAJOR_VERS(v) ((v) >> 8) -#define CRAM_MINOR_VERS(v) ((v) & 0xff) - -struct cram_slice; - -enum cram_block_method { - ERROR = -1, - RAW = 0, - GZIP = 1, - BZIP2 = 2, - LZMA = 3, - RANS = 4, // Generic; either order - RANS0 = 4, - RANS1 = 10, // Not externalised; stored as RANS (generic) - GZIP_RLE = 11, // NB: not externalised in CRAM -}; - -enum cram_content_type { - CT_ERROR = -1, - FILE_HEADER = 0, - COMPRESSION_HEADER = 1, - MAPPED_SLICE = 2, - UNMAPPED_SLICE = 3, // CRAM V1.0 only - EXTERNAL = 4, - CORE = 5, -}; - -/* Compression metrics */ -typedef struct { - // number of trials and time to next trial - int trial; - int next_trial; - - // aggregate sizes during trials - int sz_gz_rle; - int sz_gz_def; - int sz_rans0; - int sz_rans1; - int sz_bzip2; - int sz_lzma; - - // resultant method from trials - int method; - int strat; - - // Revisions of method, to allow culling of continually failing ones. - int gz_rle_cnt; - int gz_def_cnt; - int rans0_cnt; - int rans1_cnt; - int bzip2_cnt; - int lzma_cnt; - int revised_method; - - double gz_rle_extra; - double gz_def_extra; - double rans0_extra; - double rans1_extra; - double bzip2_extra; - double lzma_extra; -} cram_metrics; - -/* Block */ -typedef struct { - enum cram_block_method method, orig_method; - enum cram_content_type content_type; - int32_t content_id; - int32_t comp_size; - int32_t uncomp_size; - uint32_t crc32; - int32_t idx; /* offset into data */ - unsigned char *data; - - // For bit I/O - size_t alloc; - size_t byte; - int bit; -} cram_block; - -struct cram_codec; /* defined in cram_codecs.h */ -struct cram_map; - -#define CRAM_MAP_HASH 32 -#define CRAM_MAP(a,b) (((a)*3+(b))&(CRAM_MAP_HASH-1)) - -/* Compression header block */ -typedef struct { - int32_t ref_seq_id; - int32_t ref_seq_start; - int32_t ref_seq_span; - int32_t num_records; - int32_t num_landmarks; - int32_t *landmark; - - /* Flags from preservation map */ - int mapped_qs_included; - int unmapped_qs_included; - int unmapped_placed; - int qs_included; - int read_names_included; - int AP_delta; - // indexed by ref-base and subst. code - char substitution_matrix[5][4]; - - // TD Dictionary as a concatenated block - cram_block *TD_blk; // Tag Dictionary - int nTL; // number of TL entries in TD - unsigned char **TL; // array of size nTL, pointer into TD_blk. - khash_t(m_s2i) *TD_hash; // Keyed on TD strings, map to TL[] indices - string_alloc_t *TD_keys; // Pooled keys for TD hash. - - khash_t(map) *preservation_map; - struct cram_map *rec_encoding_map[CRAM_MAP_HASH]; - struct cram_map *tag_encoding_map[CRAM_MAP_HASH]; - - struct cram_codec *codecs[DS_END]; - - char *uncomp; // A single block of uncompressed data - size_t uncomp_size, uncomp_alloc; - - unsigned int data_series; // See cram_fields enum below -} cram_block_compression_hdr; - -typedef struct cram_map { - int key; /* 0xe0 + 3 bytes */ - enum cram_encoding encoding; - int offset; /* Offset into a single block of memory */ - int size; /* Size */ - struct cram_codec *codec; - struct cram_map *next; // for noddy internal hash -} cram_map; - -/* Mapped or unmapped slice header block */ -typedef struct { - enum cram_content_type content_type; - int32_t ref_seq_id; /* if content_type == MAPPED_SLICE */ - int32_t ref_seq_start; /* if content_type == MAPPED_SLICE */ - int32_t ref_seq_span; /* if content_type == MAPPED_SLICE */ - int32_t num_records; - int64_t record_counter; - int32_t num_blocks; - int32_t num_content_ids; - int32_t *block_content_ids; - int32_t ref_base_id; /* if content_type == MAPPED_SLICE */ - unsigned char md5[16]; -} cram_block_slice_hdr; - -struct ref_entry; - -/* - * Container. - * - * Conceptually a container is split into slices, and slices into blocks. - * However on disk it's just a list of blocks and we need to query the - * block types to identify the start/end points of the slices. - * - * OR... are landmarks the start/end points of slices? - */ -typedef struct { - int32_t length; - int32_t ref_seq_id; - int32_t ref_seq_start; - int32_t ref_seq_span; - int64_t record_counter; - int64_t num_bases; - int32_t num_records; - int32_t num_blocks; - int32_t num_landmarks; - int32_t *landmark; - - /* Size of container header above */ - size_t offset; - - /* Compression header is always the first block? */ - cram_block_compression_hdr *comp_hdr; - cram_block *comp_hdr_block; - - /* For construction purposes */ - int max_slice, curr_slice; // maximum number of slices - int max_rec, curr_rec; // current and max recs per slice - int max_c_rec, curr_c_rec; // current and max recs per container - int slice_rec; // rec no. for start of this slice - int curr_ref; // current ref ID. -2 for no previous - int last_pos; // last record position - struct cram_slice **slices, *slice; - int pos_sorted; // boolean, 1=>position sorted data - int max_apos; // maximum position, used if pos_sorted==0 - int last_slice; // number of reads in last slice (0 for 1st) - int multi_seq; // true if packing multi seqs per cont/slice - int unsorted; // true is AP_delta is 0. - - /* Copied from fd before encoding, to allow multi-threading */ - int ref_start, first_base, last_base, ref_id, ref_end; - char *ref; - //struct ref_entry *ref; - - /* For multi-threading */ - bam_seq_t **bams; - - /* Statistics for encoding */ - cram_stats *stats[DS_END]; - - khash_t(s_i2i) *tags_used; // set of tag types in use, for tag encoding map - int *refs_used; // array of frequency of ref seq IDs - - uint32_t crc32; // CRC32 -} cram_container; - -/* - * A single cram record - */ -typedef struct { - struct cram_slice *s; // Filled out by cram_decode only - - int32_t ref_id; // fixed for all recs in slice? - int32_t flags; // BF - int32_t cram_flags; // CF - int32_t len; // RL - int32_t apos; // AP - int32_t rg; // RG - int32_t name; // RN; idx to s->names_blk - int32_t name_len; - int32_t mate_line; // index to another cram_record - int32_t mate_ref_id; - int32_t mate_pos; // NP - int32_t tlen; // TS - - // Auxiliary data - int32_t ntags; // TC - int32_t aux; // idx to s->aux_blk - int32_t aux_size; // total size of packed ntags in aux_blk -#ifndef TN_external - int32_t TN_idx; // TN; idx to s->TN; -#else - int32_t tn; // idx to s->tn_blk -#endif - int TL; - - int32_t seq; // idx to s->seqs_blk - int32_t qual; // idx to s->qual_blk - int32_t cigar; // idx to s->cigar - int32_t ncigar; - int32_t aend; // alignment end - int32_t mqual; // MQ - - int32_t feature; // idx to s->feature - int32_t nfeature; // number of features - int32_t mate_flags; // MF -} cram_record; - -// Accessor macros as an analogue of the bam ones -#define cram_qname(c) (&(c)->s->name_blk->data[(c)->name]) -#define cram_seq(c) (&(c)->s->seqs_blk->data[(c)->seq]) -#define cram_qual(c) (&(c)->s->qual_blk->data[(c)->qual]) -#define cram_aux(c) (&(c)->s->aux_blk->data[(c)->aux]) -#define cram_seqi(c,i) (cram_seq((c))[(i)]) -#define cram_name_len(c) ((c)->name_len) -#define cram_strand(c) (((c)->flags & BAM_FREVERSE) != 0) -#define cram_mstrand(c) (((c)->flags & BAM_FMREVERSE) != 0) -#define cram_cigar(c) (&((cr)->s->cigar)[(c)->cigar]) - -/* - * A feature is a base difference, used for the sequence reference encoding. - * (We generate these internally when writing CRAM.) - */ -typedef struct { - union { - struct { - int pos; - int code; - int base; // substitution code - } X; - struct { - int pos; - int code; - int base; // actual base & qual - int qual; - } B; - struct { - int pos; - int code; - int seq_idx; // index to s->seqs_blk - int len; - } b; - struct { - int pos; - int code; - int qual; - } Q; - struct { - int pos; - int code; - int len; - int seq_idx; // soft-clip multiple bases - } S; - struct { - int pos; - int code; - int len; - int seq_idx; // insertion multiple bases - } I; - struct { - int pos; - int code; - int base; // insertion single base - } i; - struct { - int pos; - int code; - int len; - } D; - struct { - int pos; - int code; - int len; - } N; - struct { - int pos; - int code; - int len; - } P; - struct { - int pos; - int code; - int len; - } H; - }; -} cram_feature; - -/* - * A slice is really just a set of blocks, but it - * is the logical unit for decoding a number of - * sequences. - */ -typedef struct cram_slice { - cram_block_slice_hdr *hdr; - cram_block *hdr_block; - cram_block **block; - cram_block **block_by_id; - - /* State used during encoding/decoding */ - int last_apos, max_apos; - - /* Array of decoded cram records */ - cram_record *crecs; - - /* An dynamically growing buffers for data pointed - * to by crecs[] array. - */ - uint32_t *cigar; - uint32_t cigar_alloc; - uint32_t ncigar; - - cram_feature *features; - int nfeatures; - int afeatures; // allocated size of features - -#ifndef TN_external - // TN field (Tag Name) - uint32_t *TN; - int nTN, aTN; // used and allocated size for TN[] -#else - cram_block *tn_blk; - int tn_id; -#endif - - // For variable sized elements which are always external blocks. - cram_block *name_blk; - cram_block *seqs_blk; - cram_block *qual_blk; - cram_block *base_blk; - cram_block *soft_blk; - cram_block *aux_blk; - cram_block *aux_OQ_blk; - cram_block *aux_BQ_blk; - cram_block *aux_BD_blk; - cram_block *aux_BI_blk; - cram_block *aux_FZ_blk; - cram_block *aux_oq_blk; - cram_block *aux_os_blk; - cram_block *aux_oz_blk; - - string_alloc_t *pair_keys; // Pooled keys for pair hash. - khash_t(m_s2i) *pair[2]; // for identifying read-pairs in this slice. - - char *ref; // slice of current reference - int ref_start; // start position of current reference; - int ref_end; // end position of current reference; - int ref_id; -} cram_slice; - -/*----------------------------------------------------------------------------- - * Consider moving reference handling to cram_refs.[ch] - */ -// from fa.fai / samtools faidx files -typedef struct ref_entry { - char *name; - char *fn; - int64_t length; - int64_t offset; - int bases_per_line; - int line_length; - int64_t count; // for shared references so we know to dealloc seq - char *seq; -} ref_entry; - -KHASH_MAP_INIT_STR(refs, ref_entry*) - -// References structure. -typedef struct { - string_alloc_t *pool; // String pool for holding filenames and SN vals - - khash_t(refs) *h_meta; // ref_entry*, index by name - ref_entry **ref_id; // ref_entry*, index by ID - int nref; // number of ref_entry - - char *fn; // current file opened - BGZF *fp; // and the hFILE* to go with it. - - int count; // how many cram_fd sharing this refs struct - - pthread_mutex_t lock; // Mutex for multi-threaded updating - ref_entry *last; // Last queried sequence - int last_id; // Used in cram_ref_decr_locked to delay free -} refs_t; - -/*----------------------------------------------------------------------------- - * CRAM index - * - * Detect format by number of entries per line. - * 5 => 1.0 (refid, start, nseq, C offset, slice) - * 6 => 1.1 (refid, start, span, C offset, S offset, S size) - * - * Indices are stored in a nested containment list, which is trivial to set - * up as the indices are on sorted data so we're appending to the nclist - * in sorted order. Basically if a slice entirely fits within a previous - * slice then we append to that slices list. This is done recursively. - * - * Lists are sorted on two dimensions: ref id + slice coords. - */ -typedef struct cram_index { - int nslice, nalloc; // total number of slices - struct cram_index *e; // array of size nslice - - int refid; // 1.0 1.1 - int start; // 1.0 1.1 - int end; // 1.1 - int nseq; // 1.0 - undocumented - int slice; // 1.0 landmark index, 1.1 landmark value - int len; // 1.1 - size of slice in bytes - int64_t offset; // 1.0 1.1 -} cram_index; - -typedef struct { - int refid; - int start; - int end; -} cram_range; - -/*----------------------------------------------------------------------------- - */ -/* CRAM File handle */ - -typedef struct spare_bams { - bam_seq_t **bams; - struct spare_bams *next; -} spare_bams; - -typedef struct cram_fd { - struct hFILE *fp; - int mode; // 'r' or 'w' - int version; - cram_file_def *file_def; - SAM_hdr *header; - - char *prefix; - int64_t record_counter; - int err; - - // Most recent compression header decoded - //cram_block_compression_hdr *comp_hdr; - //cram_block_slice_hdr *slice_hdr; - - // Current container being processed. - cram_container *ctr; - - // positions for encoding or decoding - int first_base, last_base; - - // cached reference portion - refs_t *refs; // ref meta-data structure - char *ref, *ref_free; // current portion held in memory - int ref_id; - int ref_start; - int ref_end; - char *ref_fn; // reference fasta filename - - // compression level and metrics - int level; - cram_metrics *m[DS_END]; - - // options - int decode_md; // Whether to export MD and NM tags - int verbose; - int seqs_per_slice; - int slices_per_container; - int embed_ref; - int no_ref; - int ignore_md5; - int use_bz2; - int use_rans; - int use_lzma; - int shared_ref; - unsigned int required_fields; - cram_range range; - - // lookup tables, stored here so we can be trivially multi-threaded - unsigned int bam_flag_swap[0x1000]; // cram -> bam flags - unsigned int cram_flag_swap[0x1000];// bam -> cram flags - unsigned char L1[256]; // ACGT{*} ->0123{4} - unsigned char L2[256]; // ACGTN{*}->01234{5} - char cram_sub_matrix[32][32]; // base substituion codes - - int index_sz; - cram_index *index; // array, sizeof index_sz - off_t first_container; - int eof; - int last_slice; // number of recs encoded in last slice - int multi_seq; - int unsorted; - int empty_container; // Marker for EOF block - - // thread pool - int own_pool; - t_pool *pool; - t_results_queue *rqueue; - pthread_mutex_t metrics_lock; - pthread_mutex_t ref_lock; - spare_bams *bl; - pthread_mutex_t bam_list_lock; - void *job_pending; - int ooc; // out of containers. -} cram_fd; - -// Translation of required fields to cram data series -enum cram_fields { - CRAM_BF = 0x00000001, - CRAM_AP = 0x00000002, - CRAM_FP = 0x00000004, - CRAM_RL = 0x00000008, - CRAM_DL = 0x00000010, - CRAM_NF = 0x00000020, - CRAM_BA = 0x00000040, - CRAM_QS = 0x00000080, - CRAM_FC = 0x00000100, - CRAM_FN = 0x00000200, - CRAM_BS = 0x00000400, - CRAM_IN = 0x00000800, - CRAM_RG = 0x00001000, - CRAM_MQ = 0x00002000, - CRAM_TL = 0x00004000, - CRAM_RN = 0x00008000, - CRAM_NS = 0x00010000, - CRAM_NP = 0x00020000, - CRAM_TS = 0x00040000, - CRAM_MF = 0x00080000, - CRAM_CF = 0x00100000, - CRAM_RI = 0x00200000, - CRAM_RS = 0x00400000, - CRAM_PD = 0x00800000, - CRAM_HC = 0x01000000, - CRAM_SC = 0x02000000, - CRAM_BB = 0x04000000, - CRAM_BB_len = 0x08000000, - CRAM_QQ = 0x10000000, - CRAM_QQ_len = 0x20000000, - CRAM_aux= 0x40000000, - CRAM_ALL= 0x7fffffff, -}; - -// A CIGAR opcode, but not necessarily the implications of it. Eg FC/FP may -// encode a base difference, but we don't need to know what it is for CIGAR. -// If we have a soft-clip or insertion, we do need SC/IN though to know how -// long that array is. -#define CRAM_CIGAR (CRAM_FN | CRAM_FP | CRAM_FC | CRAM_DL | CRAM_IN | \ - CRAM_SC | CRAM_HC | CRAM_PD | CRAM_RS | CRAM_RL | CRAM_BF) - -#define CRAM_SEQ (CRAM_CIGAR | CRAM_BA | CRAM_QS | CRAM_BS | \ - CRAM_RL | CRAM_AP | CRAM_BB | CRAM_QQ) - -/* BF bitfields */ -/* Corrected in 1.1. Use bam_flag_swap[bf] and BAM_* macros for 1.0 & 1.1 */ -#define CRAM_FPAIRED 256 -#define CRAM_FPROPER_PAIR 128 -#define CRAM_FUNMAP 64 -#define CRAM_FREVERSE 32 -#define CRAM_FREAD1 16 -#define CRAM_FREAD2 8 -#define CRAM_FSECONDARY 4 -#define CRAM_FQCFAIL 2 -#define CRAM_FDUP 1 - -#define DS_aux_S "\001" -#define DS_aux_OQ_S "\002" -#define DS_aux_BQ_S "\003" -#define DS_aux_BD_S "\004" -#define DS_aux_BI_S "\005" -#define DS_aux_FZ_S "\006" -#define DS_aux_oq_S "\007" -#define DS_aux_os_S "\010" -#define DS_aux_oz_S "\011" - -#define CRAM_M_REVERSE 1 -#define CRAM_M_UNMAP 2 - - -/* CF bitfields */ -#define CRAM_FLAG_PRESERVE_QUAL_SCORES (1<<0) -#define CRAM_FLAG_DETACHED (1<<1) -#define CRAM_FLAG_MATE_DOWNSTREAM (1<<2) - -#ifdef __cplusplus -} -#endif - -#endif /* _CRAM_STRUCTS_H_ */ diff --git a/htslib/cram/files.c b/htslib/cram/files.c deleted file mode 100644 index 48f5c32..0000000 --- a/htslib/cram/files.c +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright (c) 1994, 1996-1997, 2000, 2003 MEDICAL RESEARCH COUNCIL -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1 Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2 Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3 Neither the name of the MEDICAL RESEARCH COUNCIL, THE LABORATORY OF -MOLECULAR BIOLOGY nor the names of its contributors may be used to endorse or -promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include "cram/misc.h" - -#include -#include -/* Alliant's Concentrix is hugely deficient */ -/* Define things we require in this program */ -/* Methinks S_IFMT and S_IFDIR aren't defined in POSIX */ -#ifndef S_ISDIR -#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) -#endif /*!S_ISDIR*/ -#ifndef S_ISREG -#define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) -#endif /*!S_ISREG*/ - -int is_directory(char * fn) -{ - struct stat buf; - if ( stat(fn,&buf) ) return 0; - return S_ISDIR(buf.st_mode); -} - -int is_file(char * fn) -{ - struct stat buf; - if ( stat(fn,&buf) ) return 0; - return S_ISREG(buf.st_mode); -} - -int file_exists(char * fn) -{ - struct stat buf; - return ( stat(fn,&buf) == 0); -} - -int file_size(char * fn) -{ - struct stat buf; - if ( stat(fn,&buf) != 0) return 0; - return buf.st_size; -} - diff --git a/htslib/cram/mFILE.c b/htslib/cram/mFILE.c deleted file mode 100644 index 6407b76..0000000 --- a/htslib/cram/mFILE.c +++ /dev/null @@ -1,634 +0,0 @@ -/* -Copyright (c) 2005-2006, 2008-2009, 2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cram/os.h" -#include "cram/mFILE.h" -#include "cram/vlen.h" - -/* - * This file contains memory-based versions of the most commonly used - * (by io_lib) stdio functions. - * - * Actual file IO takes place either on opening or closing an mFILE. - * - * Coupled to this are a bunch of rather scary macros which can be obtained - * by including stdio_hack.h. It is recommended though that you use mFILE.h - * instead and replace fopen with mfopen (etc). This is more or less - * mandatory if you wish to use both FILE and mFILE structs in a single file. - */ - -static mFILE *m_channel[3]; /* stdin, stdout and stderr fakes */ - -/* - * Reads the entirety of fp into memory. If 'fn' exists it is the filename - * associated with fp. This will be used for more optimal reading (via a - * stat to identify the size and a single read). Otherwise we use successive - * reads until EOF. - * - * Returns a malloced buffer on success of length *size - * NULL on failure - */ -static char *mfload(FILE *fp, const char *fn, size_t *size, int binary) { - struct stat sb; - char *data = NULL; - size_t allocated = 0, used = 0; - int bufsize = 8192; - -#ifdef _WIN32 - if (binary) - _setmode(_fileno(fp), _O_BINARY); - else - _setmode(_fileno(fp), _O_TEXT); -#endif - - if (fn && -1 != stat(fn, &sb)) { - data = malloc(allocated = sb.st_size); - bufsize = sb.st_size; - } else { - fn = NULL; - } - - do { - size_t len; - if (used + bufsize > allocated) { - allocated += bufsize; - data = realloc(data, allocated); - } - len = fread(data + used, 1, allocated - used, fp); - if (len > 0) - used += len; - } while (!feof(fp) && (fn == NULL || used < sb.st_size)); - - *size = used; - - return data; -} - -/* - * Creates and returns m_channel[0]. - * We initialise this on the first attempted read, which then slurps in - * all of stdin until EOF is met. - */ -mFILE *mstdin(void) { - if (m_channel[0]) - return m_channel[0]; - - m_channel[0] = mfcreate(NULL, 0); - if (NULL == m_channel[0]) return NULL; - m_channel[0]->fp = stdin; - return m_channel[0]; -} - -static void init_mstdin(void) { - static int done_stdin = 0; - if (done_stdin) - return; - - m_channel[0]->data = mfload(stdin, NULL, &m_channel[0]->size, 1); - m_channel[0]->mode = MF_READ; - done_stdin = 1; -} - -/* - * Creates and returns m_channel[1]. This is the fake for stdout. It starts as - * an empty buffer which is physically written out only when mfflush or - * mfclose are called. - */ -mFILE *mstdout(void) { - if (m_channel[1]) - return m_channel[1]; - - m_channel[1] = mfcreate(NULL, 0); - if (NULL == m_channel[1]) return NULL; - m_channel[1]->fp = stdout; - m_channel[1]->mode = MF_WRITE; - return m_channel[1]; -} - -/* - * Stderr as an mFILE. - * The code handles stderr by returning m_channel[2], but also checking - * for stderr in fprintf (the common usage of it) to auto-flush. - */ -mFILE *mstderr(void) { - if (m_channel[2]) - return m_channel[2]; - - m_channel[2] = mfcreate(NULL, 0); - if (NULL == m_channel[2]) return NULL; - m_channel[2]->fp = stderr; - m_channel[2]->mode = MF_WRITE; - return m_channel[2]; -} - - -/* - * For creating existing mFILE pointers directly from memory buffers. - */ -mFILE *mfcreate(char *data, int size) { - mFILE *mf = (mFILE *)malloc(sizeof(*mf)); - if (NULL == mf) return NULL; - mf->fp = NULL; - mf->data = data; - mf->alloced = size; - mf->size = size; - mf->eof = 0; - mf->offset = 0; - mf->flush_pos = 0; - mf->mode = MF_READ | MF_WRITE; - return mf; -} - -/* - * Recreate an existing mFILE to house new data/size. - * It also rewinds the file. - */ -void mfrecreate(mFILE *mf, char *data, int size) { - if (mf->data) - free(mf->data); - mf->data = data; - mf->size = size; - mf->alloced = size; - mf->eof = 0; - mf->offset = 0; - mf->flush_pos = 0; -} - - -/* - * Creates a new mFILE to contain the contents of the FILE pointer. - * This mFILE is purely for in-memory operations and has no links to the - * original FILE* it came from. It also doesn't close the FILE pointer. - * Consider using mfreopen() is you need different behaviour. - * - * Returns mFILE * on success - * NULL on failure. - */ -mFILE *mfcreate_from(const char *path, const char *mode_str, FILE *fp) { - mFILE *mf; - - /* Open using mfreopen() */ - if (NULL == (mf = mfreopen(path, mode_str, fp))) - return NULL; - - /* Disassociate from the input stream */ - mf->fp = NULL; - - return mf; -} - -/* - * Converts a FILE * to an mFILE *. - * Use this for wrapper functions to turn external prototypes requring - * FILE * as an argument into internal code using mFILE *. - */ -mFILE *mfreopen(const char *path, const char *mode_str, FILE *fp) { - mFILE *mf; - int r = 0, w = 0, a = 0, b = 0, x = 0, mode = 0; - - /* Parse mode: - * r = read file contents (if truncated => don't read) - * w = write on close - * a = position at end of buffer - * x = position at same location as the original fp, don't seek on flush - */ - if (strchr(mode_str, 'r')) - r = 1, mode |= MF_READ; - if (strchr(mode_str, 'w')) - w = 1, mode |= MF_WRITE | MF_TRUNC; - if (strchr(mode_str, 'a')) - w = a = 1, mode |= MF_WRITE | MF_APPEND; - if (strchr(mode_str, 'b')) - b = 1, mode |= MF_BINARY; - if (strchr(mode_str, 'x')) - x = 1; - if (strchr(mode_str, '+')) { - w = 1, mode |= MF_READ | MF_WRITE; - if (a) - r = 1; - } - - if (r) { - mf = mfcreate(NULL, 0); - if (NULL == mf) return NULL; - if (!(mode & MF_TRUNC)) { - mf->data = mfload(fp, path, &mf->size, b); - mf->alloced = mf->size; - if (!a) - fseek(fp, 0, SEEK_SET); - } - } else if (w) { - /* Write - initialise the data structures */ - mf = mfcreate(NULL, 0); - if (NULL == mf) return NULL; - } else { - fprintf(stderr, "Must specify either r, w or a for mode\n"); - return NULL; - } - mf->fp = fp; - mf->mode = mode; - - if (x) { - mf->mode |= MF_MODEX; - } - - if (a) { - mf->flush_pos = mf->size; - fseek(fp, 0, SEEK_END); - } - - return mf; -} - -/* - * Opens a file. If we have read access (r or a+) then it loads the entire - * file into memory. If We have write access then the pathname is stored. - * We do not actually write until an mfclose, which then checks this pathname. - */ -mFILE *mfopen(const char *path, const char *mode) { - FILE *fp; - - if (NULL == (fp = fopen(path, mode))) - return NULL; - return mfreopen(path, mode, fp); -} - -/* - * Closes an mFILE. If the filename is known (implying write access) then this - * also writes the data to disk. - * - * Stdout is handled by calling mfflush which writes to stdout if appropriate. - */ -int mfclose(mFILE *mf) { - if (!mf) - return -1; - - mfflush(mf); - - if (mf->fp) - fclose(mf->fp); - - mfdestroy(mf); - - return 0; -} - -/* - * Closes the file pointer contained within the mFILE without destroying - * the in-memory data. - */ -int mfdetach(mFILE *mf) { - if (!mf) - return -1; - - mfflush(mf); - - if (mf->fp) { - fclose(mf->fp); - mf->fp = NULL; - } - - return 0; -} - -/* - * Destroys an mFILE structure but does not flush or close it - */ -int mfdestroy(mFILE *mf) { - if (!mf) - return -1; - - if (mf->data) - free(mf->data); - free(mf); - - return 0; -} - -/* - * Steals that data out of an mFILE. The mFILE itself will be closed. - * It is up to the caller to free the stolen buffer. If size_out is - * not NULL, mf->size will be stored in it. - * This is more-or-less the opposite of mfcreate(). - */ - -void *mfsteal(mFILE *mf, size_t *size_out) { - void *data; - - if (!mf) return NULL; - - data = mf->data; - - if (NULL != size_out) *size_out = mf->size; - - mfdetach(mf); - mf->data = NULL; - mfdestroy(mf); - - return data; -} - -/* - * Seek/tell functions. Nothing more than updating and reporting an - * in-memory index. NB we can seek on stdin or stdout even provided we - * haven't been flushing. - */ -int mfseek(mFILE *mf, long offset, int whence) { - switch (whence) { - case SEEK_SET: - mf->offset = offset; - break; - case SEEK_CUR: - mf->offset += offset; - break; - case SEEK_END: - mf->offset = mf->size + offset; - break; - default: - errno = EINVAL; - return -1; - } - - mf->eof = 0; - return 0; -} - -long mftell(mFILE *mf) { - return mf->offset; -} - -void mrewind(mFILE *mf) { - mf->offset = 0; - mf->eof = 0; -} - -/* - * mftruncate is not directly a translation of ftruncate as the latter - * takes a file descriptor instead of a FILE *. It performs the analogous - * role though. - * - * If offset is -1 then the file is truncated to be the current file - * offset. - */ -void mftruncate(mFILE *mf, long offset) { - mf->size = offset != -1 ? offset : mf->offset; - if (mf->offset > mf->size) - mf->offset = mf->size; -} - -int mfeof(mFILE *mf) { - return mf->eof; -} - -/* - * mFILE read/write functions. Basically these turn fread/fwrite syntax - * into memcpy statements, with appropriate memory handling for writing. - */ -size_t mfread(void *ptr, size_t size, size_t nmemb, mFILE *mf) { - size_t len; - char *cptr = (char *)ptr; - - if (mf == m_channel[0]) init_mstdin(); - - if (mf->size <= mf->offset) - return 0; - - len = size * nmemb <= mf->size - mf->offset - ? size * nmemb - : mf->size - mf->offset; - if (!size) - return 0; - - memcpy(cptr, &mf->data[mf->offset], len); - mf->offset += len; - - if (len != size * nmemb) { - mf->eof = 1; - } - - return len / size; -} - -size_t mfwrite(void *ptr, size_t size, size_t nmemb, mFILE *mf) { - if (!(mf->mode & MF_WRITE)) - return 0; - - /* Append mode => forced all writes to end of file */ - if (mf->mode & MF_APPEND) - mf->offset = mf->size; - - /* Make sure we have enough room */ - while (size * nmemb + mf->offset > mf->alloced) { - size_t new_alloced = mf->alloced ? mf->alloced * 2 : 1024; - void * new_data = realloc(mf->data, new_alloced); - if (NULL == new_data) return 0; - mf->alloced = new_alloced; - mf->data = new_data; - } - - /* Record where we need to reflush from */ - if (mf->offset < mf->flush_pos) - mf->flush_pos = mf->offset; - - /* Copy the data over */ - memcpy(&mf->data[mf->offset], ptr, size * nmemb); - mf->offset += size * nmemb; - if (mf->size < mf->offset) - mf->size = mf->offset; - - return nmemb; -} - -int mfgetc(mFILE *mf) { - if (mf == m_channel[0]) init_mstdin(); - if (mf->offset < mf->size) { - return (unsigned char)mf->data[mf->offset++]; - } - - mf->eof = 1; - return -1; -} - -int mungetc(int c, mFILE *mf) { - if (mf->offset > 0) { - mf->data[--mf->offset] = c; - return c; - } - - mf->eof = 1; - return -1; -} - -char *mfgets(char *s, int size, mFILE *mf) { - int i; - - if (mf == m_channel[0]) init_mstdin(); - *s = 0; - for (i = 0; i < size-1;) { - if (mf->offset < mf->size) { - s[i] = mf->data[mf->offset++]; - if (s[i++] == '\n') - break; - } else { - mf->eof = 1; - break; - } - } - - s[i] = 0; - return i ? s : NULL; -} - -/* - * Flushes an mFILE. If this is a real open of a file in write mode then - * mFILE->fp will be set. We then write out any new data in mFILE since the - * last flush. We cannot tell what may have been modified as we don't keep - * track of that, so we typically rewrite out the entire file contents between - * the last flush_pos and the end of file. - * - * For stderr/stdout we also reset the offsets so we cannot modify things - * we've already output. - */ -int mfflush(mFILE *mf) { - if (!mf->fp) - return 0; - - /* FIXME: only do this when opened in write mode */ - if (mf == m_channel[1] || mf == m_channel[2]) { - if (mf->flush_pos < mf->size) { - size_t bytes = mf->size - mf->flush_pos; - if (fwrite(mf->data + mf->flush_pos, 1, bytes, mf->fp) < bytes) - return -1; - if (0 != fflush(mf->fp)) - return -1; - } - - /* Stdout & stderr are non-seekable streams so throw away the data */ - mf->offset = mf->size = mf->flush_pos = 0; - } - - /* only flush when opened in write mode */ - if (mf->mode & MF_WRITE) { - if (mf->flush_pos < mf->size) { - size_t bytes = mf->size - mf->flush_pos; - if (!(mf->mode & MF_MODEX)) { - fseek(mf->fp, mf->flush_pos, SEEK_SET); - } - if (fwrite(mf->data + mf->flush_pos, 1, bytes, mf->fp) < bytes) - return -1; - if (0 != fflush(mf->fp)) - return -1; - } - if (ftell(mf->fp) != -1 && - ftruncate(fileno(mf->fp), ftell(mf->fp)) == -1) - return -1; - mf->flush_pos = mf->size; - } - - return 0; -} - -/* - * A wrapper around vsprintf() to write to an mFILE. This also uses vflen() to - * estimate how many additional bytes of storage will be required for the - * vsprintf to work. - */ -int mfprintf(mFILE *mf, char *fmt, ...) { - int ret; - size_t est_length; - va_list args; - - va_start(args, fmt); - est_length = vflen(fmt, args); - va_end(args); - while (est_length + mf->offset > mf->alloced) { - size_t new_alloced = mf->alloced ? mf->alloced * 2 : 1024; - void * new_data = realloc(mf->data, new_alloced); - if (NULL == new_data) return -1; - mf->alloced = new_alloced; - mf->data = new_data; - } - - va_start(args, fmt); - ret = vsprintf(&mf->data[mf->offset], fmt, args); - va_end(args); - - if (ret > 0) { - mf->offset += ret; - if (mf->size < mf->offset) - mf->size = mf->offset; - } - - if (mf->fp == stderr) { - /* Auto-flush for stderr */ - if (0 != mfflush(mf)) return -1; - } - - return ret; -} - -/* - * Converts an mFILE from binary to ascii mode by replacing all - * cr-nl with nl. - * - * Primarily used on windows when we've uncompressed a binary file which - * happens to be a text file (eg Experiment File). Previously we would have - * seeked back to the start and used _setmode(fileno(fp), _O_TEXT). - * - * Side effect: resets offset and flush_pos back to the start. - */ -void mfascii(mFILE *mf) { - size_t p1, p2; - - for (p1 = p2 = 1; p1 < mf->size; p1++, p2++) { - if (mf->data[p1] == '\n' && mf->data[p1-1] == '\r') { - p2--; /* delete the \r */ - } - mf->data[p2] = mf->data[p1]; - } - mf->size = p2; - - mf->offset = mf->flush_pos = 0; -} diff --git a/htslib/cram/mFILE.h b/htslib/cram/mFILE.h deleted file mode 100644 index 5ded9a5..0000000 --- a/htslib/cram/mFILE.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -Copyright (c) 2005-2006, 2008-2009 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _MFILE_H_ -#define _MFILE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - FILE *fp; - char *data; - size_t alloced; - int eof; - int mode; /* open mode in MF_?? define bit pattern */ - size_t size; - size_t offset; - size_t flush_pos; -} mFILE; - -#define MF_READ 1 -#define MF_WRITE 2 -#define MF_APPEND 4 -#define MF_BINARY 8 -#define MF_TRUNC 16 -#define MF_MODEX 32 - -mFILE *mfreopen(const char *path, const char *mode, FILE *fp); -mFILE *mfopen(const char *path, const char *mode); -int mfdetach(mFILE *mf); -int mfclose(mFILE *mf); -int mfdestroy(mFILE *mf); -int mfseek(mFILE *mf, long offset, int whence); -long mftell(mFILE *mf); -void mrewind(mFILE *mf); -void mftruncate(mFILE *mf, long offset); -int mfeof(mFILE *mf); -size_t mfread(void *ptr, size_t size, size_t nmemb, mFILE *mf); -size_t mfwrite(void *ptr, size_t size, size_t nmemb, mFILE *mf); -int mfgetc(mFILE *mf); -int mungetc(int c, mFILE *mf); -mFILE *mfcreate(char *data, int size); -mFILE *mfcreate_from(const char *path, const char *mode_str, FILE *fp); -void mfrecreate(mFILE *mf, char *data, int size); -void *mfsteal(mFILE *mf, size_t *size_out); -char *mfgets(char *s, int size, mFILE *mf); -int mfflush(mFILE *mf); -int mfprintf(mFILE *mf, char *fmt, ...); -mFILE *mstdin(void); -mFILE *mstdout(void); -mFILE *mstderr(void); -void mfascii(mFILE *mf); - -#ifdef __cplusplus -} -#endif - -#endif /* _MFILE_H_ */ diff --git a/htslib/cram/md5.c b/htslib/cram/md5.c deleted file mode 100644 index 68123c0..0000000 --- a/htslib/cram/md5.c +++ /dev/null @@ -1,295 +0,0 @@ -/* - * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. - * MD5 Message-Digest Algorithm (RFC 1321). - * - * Homepage: - * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 - * - * Author: - * Alexander Peslyak, better known as Solar Designer - * - * This software was written by Alexander Peslyak in 2001. No copyright is - * claimed, and the software is hereby placed in the public domain. - * In case this attempt to disclaim copyright and place the software in the - * public domain is deemed null and void, then the software is - * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * (This is a heavily cut-down "BSD license".) - * - * This differs from Colin Plumb's older public domain implementation in that - * no exactly 32-bit integer data type is required (any 32-bit or wider - * unsigned integer data type will do), there's no compile-time endianness - * configuration, and the function prototypes match OpenSSL's. No code from - * Colin Plumb's implementation has been reused; this comment merely compares - * the properties of the two independent implementations. - * - * The primary goals of this implementation are portability and ease of use. - * It is meant to be fast, but not as fast as possible. Some known - * optimizations are not included to reduce source code size and avoid - * compile-time configuration. - */ - -#ifndef HAVE_OPENSSL - -#include - -#include "md5.h" - -/* - * The basic MD5 functions. - * - * F and G are optimized compared to their RFC 1321 definitions for - * architectures that lack an AND-NOT instruction, just like in Colin Plumb's - * implementation. - */ -#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) -#define G(x, y, z) ((y) ^ ((z) & ((x) ^ (y)))) -#define H(x, y, z) ((x) ^ (y) ^ (z)) -#define I(x, y, z) ((y) ^ ((x) | ~(z))) - -/* - * The MD5 transformation for all four rounds. - */ -#define STEP(f, a, b, c, d, x, t, s) \ - (a) += f((b), (c), (d)) + (x) + (t); \ - (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \ - (a) += (b); - -/* - * SET reads 4 input bytes in little-endian byte order and stores them - * in a properly aligned word in host byte order. - * - * The check for little-endian architectures that tolerate unaligned - * memory accesses is just an optimization. Nothing will break if it - * doesn't work. - */ -#if defined(__i386__) || defined(__x86_64__) || defined(__vax__) -#define SET(n) \ - (*(MD5_u32plus *)&ptr[(n) * 4]) -#define GET(n) \ - SET(n) -#else -#define SET(n) \ - (ctx->block[(n)] = \ - (MD5_u32plus)ptr[(n) * 4] | \ - ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \ - ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \ - ((MD5_u32plus)ptr[(n) * 4 + 3] << 24)) -#define GET(n) \ - (ctx->block[(n)]) -#endif - -/* - * This processes one or more 64-byte data blocks, but does NOT update - * the bit counters. There are no alignment requirements. - */ -static void *body(MD5_CTX *ctx, void *data, unsigned long size) -{ - unsigned char *ptr; - MD5_u32plus a, b, c, d; - MD5_u32plus saved_a, saved_b, saved_c, saved_d; - - ptr = data; - - a = ctx->a; - b = ctx->b; - c = ctx->c; - d = ctx->d; - - do { - saved_a = a; - saved_b = b; - saved_c = c; - saved_d = d; - -/* Round 1 */ - STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7) - STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12) - STEP(F, c, d, a, b, SET(2), 0x242070db, 17) - STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22) - STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7) - STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12) - STEP(F, c, d, a, b, SET(6), 0xa8304613, 17) - STEP(F, b, c, d, a, SET(7), 0xfd469501, 22) - STEP(F, a, b, c, d, SET(8), 0x698098d8, 7) - STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12) - STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17) - STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22) - STEP(F, a, b, c, d, SET(12), 0x6b901122, 7) - STEP(F, d, a, b, c, SET(13), 0xfd987193, 12) - STEP(F, c, d, a, b, SET(14), 0xa679438e, 17) - STEP(F, b, c, d, a, SET(15), 0x49b40821, 22) - -/* Round 2 */ - STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5) - STEP(G, d, a, b, c, GET(6), 0xc040b340, 9) - STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14) - STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20) - STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5) - STEP(G, d, a, b, c, GET(10), 0x02441453, 9) - STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14) - STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20) - STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5) - STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9) - STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14) - STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20) - STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5) - STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9) - STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14) - STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20) - -/* Round 3 */ - STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4) - STEP(H, d, a, b, c, GET(8), 0x8771f681, 11) - STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16) - STEP(H, b, c, d, a, GET(14), 0xfde5380c, 23) - STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4) - STEP(H, d, a, b, c, GET(4), 0x4bdecfa9, 11) - STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16) - STEP(H, b, c, d, a, GET(10), 0xbebfbc70, 23) - STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4) - STEP(H, d, a, b, c, GET(0), 0xeaa127fa, 11) - STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16) - STEP(H, b, c, d, a, GET(6), 0x04881d05, 23) - STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4) - STEP(H, d, a, b, c, GET(12), 0xe6db99e5, 11) - STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16) - STEP(H, b, c, d, a, GET(2), 0xc4ac5665, 23) - -/* Round 4 */ - STEP(I, a, b, c, d, GET(0), 0xf4292244, 6) - STEP(I, d, a, b, c, GET(7), 0x432aff97, 10) - STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15) - STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21) - STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6) - STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10) - STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15) - STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21) - STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6) - STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10) - STEP(I, c, d, a, b, GET(6), 0xa3014314, 15) - STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21) - STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6) - STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10) - STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15) - STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21) - - a += saved_a; - b += saved_b; - c += saved_c; - d += saved_d; - - ptr += 64; - } while (size -= 64); - - ctx->a = a; - ctx->b = b; - ctx->c = c; - ctx->d = d; - - return ptr; -} - -void MD5_Init(MD5_CTX *ctx) -{ - ctx->a = 0x67452301; - ctx->b = 0xefcdab89; - ctx->c = 0x98badcfe; - ctx->d = 0x10325476; - - ctx->lo = 0; - ctx->hi = 0; -} - -void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size) -{ - MD5_u32plus saved_lo; - unsigned long used, free; - - saved_lo = ctx->lo; - if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo) - ctx->hi++; - ctx->hi += size >> 29; - - used = saved_lo & 0x3f; - - if (used) { - free = 64 - used; - - if (size < free) { - memcpy(&ctx->buffer[used], data, size); - return; - } - - memcpy(&ctx->buffer[used], data, free); - data = (unsigned char *)data + free; - size -= free; - body(ctx, ctx->buffer, 64); - } - - if (size >= 64) { - data = body(ctx, data, size & ~(unsigned long)0x3f); - size &= 0x3f; - } - - memcpy(ctx->buffer, data, size); -} - -void MD5_Final(unsigned char *result, MD5_CTX *ctx) -{ - unsigned long used, free; - - used = ctx->lo & 0x3f; - - ctx->buffer[used++] = 0x80; - - free = 64 - used; - - if (free < 8) { - memset(&ctx->buffer[used], 0, free); - body(ctx, ctx->buffer, 64); - used = 0; - free = 64; - } - - memset(&ctx->buffer[used], 0, free - 8); - - ctx->lo <<= 3; - ctx->buffer[56] = ctx->lo; - ctx->buffer[57] = ctx->lo >> 8; - ctx->buffer[58] = ctx->lo >> 16; - ctx->buffer[59] = ctx->lo >> 24; - ctx->buffer[60] = ctx->hi; - ctx->buffer[61] = ctx->hi >> 8; - ctx->buffer[62] = ctx->hi >> 16; - ctx->buffer[63] = ctx->hi >> 24; - - body(ctx, ctx->buffer, 64); - - result[0] = ctx->a; - result[1] = ctx->a >> 8; - result[2] = ctx->a >> 16; - result[3] = ctx->a >> 24; - result[4] = ctx->b; - result[5] = ctx->b >> 8; - result[6] = ctx->b >> 16; - result[7] = ctx->b >> 24; - result[8] = ctx->c; - result[9] = ctx->c >> 8; - result[10] = ctx->c >> 16; - result[11] = ctx->c >> 24; - result[12] = ctx->d; - result[13] = ctx->d >> 8; - result[14] = ctx->d >> 16; - result[15] = ctx->d >> 24; - - memset(ctx, 0, sizeof(*ctx)); -} - -#endif diff --git a/htslib/cram/md5.h b/htslib/cram/md5.h deleted file mode 100644 index 6b065a1..0000000 --- a/htslib/cram/md5.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. - * MD5 Message-Digest Algorithm (RFC 1321). - * - * Homepage: - * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 - * - * Author: - * Alexander Peslyak, better known as Solar Designer - * - * This software was written by Alexander Peslyak in 2001. No copyright is - * claimed, and the software is hereby placed in the public domain. - * In case this attempt to disclaim copyright and place the software in the - * public domain is deemed null and void, then the software is - * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See md5.c for more information. - */ - -#ifdef HAVE_OPENSSL -#include -#elif !defined(_MD5_H) -#define _MD5_H - -/* Any 32-bit or wider unsigned integer data type will do */ -typedef unsigned int MD5_u32plus; - -typedef struct { - MD5_u32plus lo, hi; - MD5_u32plus a, b, c, d; - unsigned char buffer[64]; - MD5_u32plus block[16]; -} MD5_CTX; - -extern void MD5_Init(MD5_CTX *ctx); -extern void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size); -extern void MD5_Final(unsigned char *result, MD5_CTX *ctx); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/htslib/cram/misc.h b/htslib/cram/misc.h deleted file mode 100644 index 681b28c..0000000 --- a/htslib/cram/misc.h +++ /dev/null @@ -1,110 +0,0 @@ -/* -Copyright (c) 1994-1997, 2001-2002 MEDICAL RESEARCH COUNCIL -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1 Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2 Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3 Neither the name of the MEDICAL RESEARCH COUNCIL, THE LABORATORY OF -MOLECULAR BIOLOGY nor the names of its contributors may be used to endorse or -promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* -Copyright (c) 2003-2013 Genome Research Ltd. - -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _misc_h -#define _misc_h - -#include "cram/os.h" - -#include -#include /* varargs needed for v*printf() prototypes */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This informs gcc that crash() doesn't return, so it doesn't need to - * concern itself that code paths going via crash could mean some variables - * being undefined and then issuing uninitialised variable warnings. - * This particularly affected convert. - */ -#ifdef __GNUC__ -# define __NORETURN__ __attribute__ ((__noreturn__)) -#else -# define __NORETURN__ -#endif - -/* - * Used for printf style argument checking. We can request a function such - * as vTcl_SetResult does argument checking, avoiding bugs with using - * %d and passing in a 64-bit record. - */ -#ifdef __GNUC__ -# define __PRINTF_FORMAT__(a,b) __attribute__ ((format (printf, a, b))) -#else -# define __PRINTF_FORMAT__(a,b) -#endif - -extern int is_directory(char * fn); -extern int is_file(char * fn); -extern int file_size(char * fn); - -#define MIN(A,B) ( ( (A) < (B) ) ? (A) : (B) ) -#define MAX(A,B) ( ( (A) > (B) ) ? (A) : (B) ) - -#ifdef __cplusplus -} -#endif - -#endif /*_misc_h*/ diff --git a/htslib/cram/open_trace_file.c b/htslib/cram/open_trace_file.c deleted file mode 100644 index edad293..0000000 --- a/htslib/cram/open_trace_file.c +++ /dev/null @@ -1,351 +0,0 @@ -/* -Author: James Bonfield - -Copyright (c) 2000-2001 MEDICAL RESEARCH COUNCIL -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the name of the MEDICAL RESEARCH COUNCIL, THE LABORATORY OF -MOLECULAR BIOLOGY nor the names of its contributors may be used to endorse or -promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -Copyright (c) 2008, 2009, 2013, 2014 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "cram/os.h" -#ifndef PATH_MAX -# define PATH_MAX 1024 -#endif - -#include "cram/open_trace_file.h" -#include "cram/misc.h" -#include "htslib/hfile.h" - -/* - * Tokenises the search path splitting on colons (unix) or semicolons - * (windows). - * We also explicitly add a "./" to the end of the search path - * - * Returns: A new search path with items separated by nul chars. Two nul - * chars in a row represent the end of the tokenised path. - * Returns NULL for a failure. - * - * The returned data has been malloced. It is up to the caller to free this - * memory. - */ -char *tokenise_search_path(char *searchpath) { - char *newsearch; - unsigned int i, j; - size_t len; -#ifdef _WIN32 - char path_sep = ';'; -#else - char path_sep = ':'; -#endif - - if (!searchpath) - searchpath=""; - - newsearch = (char *)malloc((len = strlen(searchpath))+5); - if (!newsearch) - return NULL; - - for (i = 0, j = 0; i < len; i++) { - /* "::" => ":". Used for escaping colons in http://foo */ - if (i < len-1 && searchpath[i] == ':' && searchpath[i+1] == ':') { - newsearch[j++] = ':'; - i++; - continue; - } - - /* Handle http:// and ftp:// too without :: */ - if (path_sep == ':') { - if ((i == 0 || (i > 0 && searchpath[i-1] == ':')) && - (!strncmp(&searchpath[i], "http:", 5) || - !strncmp(&searchpath[i], "ftp:", 4) || - !strncmp(&searchpath[i], "|http:", 6) || - !strncmp(&searchpath[i], "|ftp:", 5) || - !strncmp(&searchpath[i], "URL=http:", 9) || - !strncmp(&searchpath[i], "URL=ftp:", 8))) { - do { - newsearch[j++] = searchpath[i]; - } while (i 0) { - if (mfwrite(buf, len, 1, mf) <= 0) { - hclose_abruptly(hf); - mfdestroy(mf); - return NULL; - } - } - if (hclose(hf) < 0) { - mfdestroy(mf); - return NULL; - } - - mrewind(mf); - return mf; -} - -/* - * Searches for file in the directory 'dirname'. If it finds it, it opens - * it. This also searches for compressed versions of the file in dirname - * too. - * - * Returns mFILE pointer if found - * NULL if not - */ -static mFILE *find_file_dir(char *file, char *dirname) { - char path[PATH_MAX+1]; - size_t len = strlen(dirname); - char *cp; - - if (dirname[len-1] == '/') - len--; - - /* Special case for "./" or absolute filenames */ - if (*file == '/' || (len==1 && *dirname == '.')) { - sprintf(path, "%s", file); - } else { - /* Handle %[0-9]*s expansions, if required */ - char *path_end = path; - *path = 0; - while ((cp = strchr(dirname, '%'))) { - char *endp; - long l = strtol(cp+1, &endp, 10); - if (*endp != 's') { - strncpy(path_end, dirname, (endp+1)-dirname); - path_end += (endp+1)-dirname; - dirname = endp+1; - continue; - } - - strncpy(path_end, dirname, cp-dirname); - path_end += cp-dirname; - if (l) { - strncpy(path_end, file, l); - path_end += MIN(strlen(file), l); - file += MIN(strlen(file), l); - } else { - strcpy(path_end, file); - path_end += strlen(file); - file += strlen(file); - } - len -= (endp+1) - dirname; - dirname = endp+1; - } - strncpy(path_end, dirname, len); - path_end += MIN(strlen(dirname), len); - *path_end = 0; - if (*file) { - *path_end++ = '/'; - strcpy(path_end, file); - } - - //fprintf(stderr, "*PATH=\"%s\"\n", path); - } - - if (is_file(path)) { - return mfopen(path, "rb"); - } - - return NULL; -} - -/* - * ------------------------------------------------------------------------ - * Public functions below. - */ - -/* - * Opens a trace file named 'file'. This is initially looked for as a - * pathname relative to a file named "relative_to". This may (for - * example) be the name of an experiment file referencing the trace - * file. In this case by passing relative_to as the experiment file - * filename the trace file will be picked up in the same directory as - * the experiment file. Relative_to may be supplied as NULL. - * - * 'file' is looked for at relative_to, then the current directory, and then - * all of the locations listed in 'path' (which is a colon separated list). - * If 'path' is NULL it uses the RAWDATA environment variable instead. - * - * Returns a mFILE pointer when found. - * NULL otherwise. - */ -mFILE *open_path_mfile(char *file, char *path, char *relative_to) { - char *newsearch; - char *ele; - mFILE *fp; - - /* Use path first */ - if (!path) - path = getenv("RAWDATA"); - if (NULL == (newsearch = tokenise_search_path(path))) - return NULL; - - /* - * Step through the search path testing out each component. - * We now look through each path element treating some prefixes as - * special, otherwise we treat the element as a directory. - */ - for (ele = newsearch; *ele; ele += strlen(ele)+1) { - char *ele2; - - /* - * '|' prefixing a path component indicates that we do not - * wish to perform the compression extension searching in that - * location. - * - * NB: this has been removed from the htslib implementation. - */ - if (*ele == '|') { - ele2 = ele+1; - } else { - ele2 = ele; - } - - if (0 == strncmp(ele2, "URL=", 4)) { - if ((fp = find_file_url(file, ele2+4))) { - free(newsearch); - return fp; - } - } else if (!strncmp(ele2, "http:", 5) || - !strncmp(ele2, "ftp:", 4)) { - if ((fp = find_file_url(file, ele2))) { - free(newsearch); - return fp; - } - } else if ((fp = find_file_dir(file, ele2))) { - free(newsearch); - return fp; - } - } - - free(newsearch); - - /* Look in the same location as the incoming 'relative_to' filename */ - if (relative_to) { - char *cp; - char relative_path[PATH_MAX+1]; - strcpy(relative_path, relative_to); - if ((cp = strrchr(relative_path, '/'))) - *cp = 0; - if ((fp = find_file_dir(file, relative_path))) - return fp; - } - - return NULL; -} diff --git a/htslib/cram/open_trace_file.h b/htslib/cram/open_trace_file.h deleted file mode 100644 index ee52cb0..0000000 --- a/htslib/cram/open_trace_file.h +++ /dev/null @@ -1,115 +0,0 @@ -/* -Author: James Bonfield - -Copyright (c) 2000-2001 MEDICAL RESEARCH COUNCIL -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - . Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - . Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - . Neither the name of the MEDICAL RESEARCH COUNCIL, THE LABORATORY OF -MOLECULAR BIOLOGY nor the names of its contributors may be used to endorse or -promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -Copyright (c) 2008, 2009, 2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _OPEN_TRACE_FILE_H_ -#define _OPEN_TRACE_FILE_H_ - -#include "cram/mFILE.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Tokenises the search path splitting on colons (unix) or semicolons - * (windows). - * We also explicitly add a "./" to the end of the search path - * - * Returns: A new search path with items separated by nul chars. Two nul - * chars in a row represent the end of the tokenised path. - * Returns NULL for a failure. - * - * The returned data has been malloced. It is up to the caller to free this - * memory. - */ -char *tokenise_search_path(char *searchpath); - -/* - * Opens a trace file named 'file'. This is initially looked for as a - * pathname relative to a file named "relative_to". This may (for - * example) be the name of an experiment file referencing the trace - * file. In this case by passing relative_to as the experiment file - * filename the trace file will be picked up in the same directory as - * the experiment file. Relative_to may be supplied as NULL. - * - * 'file' is looked for at relative_to, then the current directory, and then - * all of the locations listed in 'path' (which is a colon separated list). - * If 'path' is NULL it uses the RAWDATA environment variable instead. - * - * Returns a mFILE pointer when found. - * NULL otherwise. - */ -mFILE *open_path_mfile(char *file, char *path, char *relative_to); - -/* - * Returns a mFILE containing the entire contents of the url; - * NULL on failure. - */ -mFILE *find_file_url(char *file, char *url); - - -#ifdef __cplusplus -} -#endif - -#endif /* _OPEN_TRACE_FILE_H_ */ diff --git a/htslib/cram/os.h b/htslib/cram/os.h deleted file mode 100644 index 22d8096..0000000 --- a/htslib/cram/os.h +++ /dev/null @@ -1,308 +0,0 @@ -/* -Copyright (c) 1993, 1995-2002 MEDICAL RESEARCH COUNCIL -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1 Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2 Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3 Neither the name of the MEDICAL RESEARCH COUNCIL, THE LABORATORY OF -MOLECULAR BIOLOGY nor the names of its contributors may be used to endorse or -promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* -Copyright (c) 2004, 2006, 2009-2011, 2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * File: os.h - * - * Author: - * MRC Laboratory of Molecular Biology - * Hills Road - * Cambridge CB2 2QH - * United Kingdom - * - * Description: operating system specific type definitions - * - */ - -#ifndef _OS_H_ -#define _OS_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/*----------------------------------------------------------------------------- - * Detection of endianness. The main part of this is done in autoconf, but - * for the case of MacOS FAT binaries we fall back on auto-sensing based on - * processor type too. - */ - -/* Set by autoconf */ -#define SP_LITTLE_ENDIAN - -/* Mac FAT binaries or unknown. Auto detect based on CPU type */ -#if !defined(SP_BIG_ENDIAN) && !defined(SP_LITTLE_ENDIAN) - -/* - * x86 equivalents - */ -#if defined(__i386__) || defined(__i386) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(__i686__) || defined(__i686) -# if defined(SP_BIG_ENDIAN) -# undef SP_BIG_ENDIAN -# endif -# define SP_LITTLE_ENDIAN -#endif - -/* - * DEC Alpha - */ -#if defined(__alpha__) || defined(__alpha) -# if defined(SP_LITTLE_ENDIAN) -# undef SP_LITTLE_ENDIAN -# endif -# define SP_BIG_ENDIAN -#endif - -/* - * SUN Sparc - */ -#if defined(__sparc__) || defined(__sparc) -# if defined(SP_LITTLE_ENDIAN) -# undef SP_LITTLE_ENDIAN -# endif -# define SP_BIG_ENDIAN -#endif - -/* - * PowerPC - */ -#if defined(__ppc__) || defined(__ppc) -# if defined(SP_LITTLE_ENDIAN) -# undef SP_LITTLE_ENDIAN -# endif -# define SP_BIG_ENDIAN -#endif - -/* Some catch-alls */ -#if defined(__LITTLE_ENDIAN__) || defined(__LITTLEENDIAN__) -# define SP_LITTLE_ENDIAN -#endif - -#if defined(__BIG_ENDIAN__) || defined(__BIGENDIAN__) -# define SP_BIG_ENDIAN -#endif - -#if defined(SP_BIG_ENDIAN) && defined(SP_LITTLE_ENDIAN) -# error Both BIG and LITTLE endian defined. Fix os.h and/or Makefile -#endif - -#if !defined(SP_BIG_ENDIAN) && !defined(SP_LITTLE_ENDIAN) -# error Neither BIG nor LITTLE endian defined. Fix os.h and/or Makefile -#endif - -#endif - -/*----------------------------------------------------------------------------- - * Allow for unaligned memory access. This is used in BAM code as the packed - * structure has 4-byte cigar ints after the variable length name. - * - * Consider using AX_CHECK_ALIGNED_ACCESS_REQUIRED in autoconf. - */ -#if defined(__i386__) || defined(__i386) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(__i686__) || defined(__i686) -# define ALLOW_UAC -#endif - -/*----------------------------------------------------------------------------- - * Byte swapping macros - */ - -/* - * Our new swap runs at the same speed on Ultrix, but substantially faster - * (300% for swap_int4, ~50% for swap_int2) on an Alpha (due to the lack of - * decent 'char' support). - * - * They also have the ability to swap in situ (src == dst). Newer code now - * relies on this so don't change back! - */ -#define iswap_int8(x) \ - (((x & 0x00000000000000ffLL) << 56) + \ - ((x & 0x000000000000ff00LL) << 40) + \ - ((x & 0x0000000000ff0000LL) << 24) + \ - ((x & 0x00000000ff000000LL) << 8) + \ - ((x & 0x000000ff00000000LL) >> 8) + \ - ((x & 0x0000ff0000000000LL) >> 24) + \ - ((x & 0x00ff000000000000LL) >> 40) + \ - ((x & 0xff00000000000000LL) >> 56)) - -#define iswap_int4(x) \ - (((x & 0x000000ff) << 24) + \ - ((x & 0x0000ff00) << 8) + \ - ((x & 0x00ff0000) >> 8) + \ - ((x & 0xff000000) >> 24)) - -#define iswap_int2(x) \ - (((x & 0x00ff) << 8) + \ - ((x & 0xff00) >> 8)) - -/* - * Linux systems may use byteswap.h to get assembly versions of byte-swap - * on intel systems. This can be as trivial as the bswap opcode, which works - * out at over 2-times faster than iswap_int4 above. - */ -#if 0 -#if defined(__linux__) -# include -# undef iswap_int8 -# undef iswap_int4 -# undef iswap_int2 -# define iswap_int8 bswap_64 -# define iswap_int4 bswap_32 -# define iswap_int2 bswap_16 -#endif -#endif - - -/* - * Macros to specify that data read in is of a particular endianness. - * The macros here swap to the appropriate order for the particular machine - * running the macro and return the new answer. These may also be used when - * writing to a file to specify that we wish to write in (eg) big endian - * format. - * - * This leads to efficient code as most of the time these macros are - * trivial. - */ -#ifdef SP_BIG_ENDIAN -#define le_int4(x) iswap_int4((x)) -#define le_int2(x) iswap_int2((x)) -#endif - -#ifdef SP_LITTLE_ENDIAN -#define le_int4(x) (x) -#define le_int2(x) (x) -#endif - -/*----------------------------------------------------------------------------- - * definitions, incase they're not present - */ - -#ifndef PRId64 -#define __PRI64__ "l" -#define PRId64 __PRI64__ "d" -#define PRId32 "d" -#define PRId16 "d" -#define PRId8 "d" -#define PRIu64 __PRI64__ "u" -#define PRIu32 "u" -#define PRIu16 "u" -#define PRIu8 "u" -#endif - -/*----------------------------------------------------------------------------- - * Operating system specifics. - * These ought to be done by autoconf, but are legacy code. - */ -/* - * SunOS 4.x - * Even though we use the ANSI gcc, we make use the the standard SunOS 4.x - * libraries and include files, which are non-ansi - */ -#if defined(__sun__) && !defined(__svr4__) -#define SEEK_SET 0 -#define SEEK_CUR 1 -#define SEEK_END 2 -#endif - -/* - * Microsoft Visual C++ - * Windows - */ -#if defined(_MSC_VER) -#define popen _popen -#define pclose _pclose -#define ftruncate(fd,len) _chsize(fd,len) -#endif - - -/* - * Microsoft Windows running MinGW - */ -#if defined(__MINGW32__) -/* #define mkdir(filename,mode) mkdir((filename)) */ -#define sysconf(x) 512 -#define ftruncate(fd,len) _chsize(fd,len) -#endif - -/* Generic WIN32 API issues */ -#ifdef _WIN32 -# ifndef HAVE_FSEEKO -# if __MSVCRT_VERSION__ >= 0x800 - /* if you have MSVCR80 installed then you can use these definitions: */ -# define off_t __int64 -# define fseeko _fseeki64 -# define ftello _ftelli64 -# else - /* otherwise we're stuck with 32-bit file support */ -# define off_t long -# define fseeko fseek -# define ftello ftell -# endif -# endif /* !HAVE_FSEEKO */ -#endif /* _WIN32 */ - -#ifdef __cplusplus -} -#endif - -#endif /*_OS_H_*/ diff --git a/htslib/cram/pooled_alloc.c b/htslib/cram/pooled_alloc.c deleted file mode 100644 index 0d061e7..0000000 --- a/htslib/cram/pooled_alloc.c +++ /dev/null @@ -1,170 +0,0 @@ -/* -Copyright (c) 2009 Genome Research Ltd. -Author: Rob Davies - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include -#include - -#include "cram/pooled_alloc.h" - -//#define TEST_MAIN - -#define PSIZE 1024*1024 - -pool_alloc_t *pool_create(size_t dsize) { - pool_alloc_t *p; - - if (NULL == (p = (pool_alloc_t *)malloc(sizeof(*p)))) - return NULL; - - /* Minimum size is a pointer, for free list */ - dsize = (dsize + sizeof(void *) - 1) & ~(sizeof(void *)-1); - if (dsize < sizeof(void *)) - dsize = sizeof(void *); - p->dsize = dsize; - - p->npools = 0; - p->pools = NULL; - p->free = NULL; - - return p; -} - -static pool_t *new_pool(pool_alloc_t *p) { - size_t n = PSIZE / p->dsize; - pool_t *pool; - - pool = realloc(p->pools, (p->npools + 1) * sizeof(*p->pools)); - if (NULL == pool) return NULL; - p->pools = pool; - pool = &p->pools[p->npools]; - - pool->pool = malloc(n * p->dsize); - if (NULL == pool->pool) return NULL; - - pool->used = 0; - - p->npools++; - - return pool; -} - -void pool_destroy(pool_alloc_t *p) { - size_t i; - - for (i = 0; i < p->npools; i++) { - free(p->pools[i].pool); - } - free(p->pools); - free(p); -} - -void *pool_alloc(pool_alloc_t *p) { - pool_t *pool; - void *ret; - - /* Look on free list */ - if (NULL != p->free) { - ret = p->free; - p->free = *((void **)p->free); - return ret; - } - - /* Look for space in the last pool */ - if (p->npools) { - pool = &p->pools[p->npools - 1]; - if (pool->used + p->dsize < PSIZE) { - ret = ((char *) pool->pool) + pool->used; - pool->used += p->dsize; - return ret; - } - } - - /* Need a new pool */ - pool = new_pool(p); - if (NULL == pool) return NULL; - - pool->used = p->dsize; - return pool->pool; -} - -void pool_free(pool_alloc_t *p, void *ptr) { - *(void **)ptr = p->free; - p->free = ptr; -} - -#ifdef TEST_MAIN -typedef struct { - int x, y, z; -} xyz; - -#define NP 10000 -int main(void) { - int i; - xyz *item; - xyz **items; - pool_alloc_t *p = pool_create(sizeof(xyz)); - - items = (xyz **)malloc(NP * sizeof(*items)); - - for (i = 0; i < NP; i++) { - item = pool_alloc(p); - item->x = i; - item->y = i+1; - item->z = i+2; - items[i] = item; - } - - for (i = 0; i < NP; i++) { - item = items[i]; - if (i % 3) - pool_free(p, item); - } - - for (i = 0; i < NP; i++) { - item = pool_alloc(p); - item->x = 1000000+i; - item->y = 1000000+i+1; - item->z = 1000000+i+2; - } - - for (i = 0; i < NP; i++) { - item = items[i]; - printf("%d\t%d\t%d\t%d\n", i, item->x, item->y, item->z); - pool_free(p, item); - } - - return 0; -} -#endif diff --git a/htslib/cram/pooled_alloc.h b/htslib/cram/pooled_alloc.h deleted file mode 100644 index fa3c81f..0000000 --- a/htslib/cram/pooled_alloc.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright (c) 2009 Genome Research Ltd. -Author: Rob Davies - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _POOLED_ALLOC_H_ -#define _POOLED_ALLOC_H_ - -/* - * Implements a pooled block allocator where all items are the same size, - * but we need many of them. - */ -typedef struct { - void *pool; - size_t used; -} pool_t; - -typedef struct { - size_t dsize; - size_t npools; - pool_t *pools; - void *free; -} pool_alloc_t; - -pool_alloc_t *pool_create(size_t dsize); -void pool_destroy(pool_alloc_t *p); -void *pool_alloc(pool_alloc_t *p); -void pool_free(pool_alloc_t *p, void *ptr); - - -#endif /*_POOLED_ALLOC_H_*/ diff --git a/htslib/cram/rANS_byte.h b/htslib/cram/rANS_byte.h deleted file mode 100644 index c61ed9d..0000000 --- a/htslib/cram/rANS_byte.h +++ /dev/null @@ -1,336 +0,0 @@ -/* rans_byte.h originally from https://github.com/rygorous/ryg_rans - * - * This is a public-domain implementation of several rANS variants. rANS is an - * entropy coder from the ANS family, as described in Jarek Duda's paper - * "Asymmetric numeral systems" (http://arxiv.org/abs/1311.2540). - */ - -/*-------------------------------------------------------------------------- */ - -// Simple byte-aligned rANS encoder/decoder - public domain - Fabian 'ryg' Giesen 2014 -// -// Not intended to be "industrial strength"; just meant to illustrate the general -// idea. - -#ifndef RANS_BYTE_HEADER -#define RANS_BYTE_HEADER - -#include - -#ifdef assert -#define RansAssert assert -#else -#define RansAssert(x) -#endif - -// READ ME FIRST: -// -// This is designed like a typical arithmetic coder API, but there's three -// twists you absolutely should be aware of before you start hacking: -// -// 1. You need to encode data in *reverse* - last symbol first. rANS works -// like a stack: last in, first out. -// 2. Likewise, the encoder outputs bytes *in reverse* - that is, you give -// it a pointer to the *end* of your buffer (exclusive), and it will -// slowly move towards the beginning as more bytes are emitted. -// 3. Unlike basically any other entropy coder implementation you might -// have used, you can interleave data from multiple independent rANS -// encoders into the same bytestream without any extra signaling; -// you can also just write some bytes by yourself in the middle if -// you want to. This is in addition to the usual arithmetic encoder -// property of being able to switch models on the fly. Writing raw -// bytes can be useful when you have some data that you know is -// incompressible, and is cheaper than going through the rANS encode -// function. Using multiple rANS coders on the same byte stream wastes -// a few bytes compared to using just one, but execution of two -// independent encoders can happen in parallel on superscalar and -// Out-of-Order CPUs, so this can be *much* faster in tight decoding -// loops. -// -// This is why all the rANS functions take the write pointer as an -// argument instead of just storing it in some context struct. - -// -------------------------------------------------------------------------- - -// L ('l' in the paper) is the lower bound of our normalization interval. -// Between this and our byte-aligned emission, we use 31 (not 32!) bits. -// This is done intentionally because exact reciprocals for 31-bit uints -// fit in 32-bit uints: this permits some optimizations during encoding. -#define RANS_BYTE_L (1u << 23) // lower bound of our normalization interval - -// State for a rANS encoder. Yep, that's all there is to it. -typedef uint32_t RansState; - -// Initialize a rANS encoder. -static inline void RansEncInit(RansState* r) -{ - *r = RANS_BYTE_L; -} - -// Renormalize the encoder. Internal function. -static inline RansState RansEncRenorm(RansState x, uint8_t** pptr, uint32_t freq, uint32_t scale_bits) -{ - uint32_t x_max = ((RANS_BYTE_L >> scale_bits) << 8) * freq; // this turns into a shift. - if (x >= x_max) { - uint8_t* ptr = *pptr; - do { - *--ptr = (uint8_t) (x & 0xff); - x >>= 8; - } while (x >= x_max); - *pptr = ptr; - } - return x; -} - -// Encodes a single symbol with range start "start" and frequency "freq". -// All frequencies are assumed to sum to "1 << scale_bits", and the -// resulting bytes get written to ptr (which is updated). -// -// NOTE: With rANS, you need to encode symbols in *reverse order*, i.e. from -// beginning to end! Likewise, the output bytestream is written *backwards*: -// ptr starts pointing at the end of the output buffer and keeps decrementing. -static inline void RansEncPut(RansState* r, uint8_t** pptr, uint32_t start, uint32_t freq, uint32_t scale_bits) -{ - // renormalize - RansState x = RansEncRenorm(*r, pptr, freq, scale_bits); - - // x = C(s,x) - *r = ((x / freq) << scale_bits) + (x % freq) + start; -} - -// Flushes the rANS encoder. -static inline void RansEncFlush(RansState* r, uint8_t** pptr) -{ - uint32_t x = *r; - uint8_t* ptr = *pptr; - - ptr -= 4; - ptr[0] = (uint8_t) (x >> 0); - ptr[1] = (uint8_t) (x >> 8); - ptr[2] = (uint8_t) (x >> 16); - ptr[3] = (uint8_t) (x >> 24); - - *pptr = ptr; -} - -// Initializes a rANS decoder. -// Unlike the encoder, the decoder works forwards as you'd expect. -static inline void RansDecInit(RansState* r, uint8_t** pptr) -{ - uint32_t x; - uint8_t* ptr = *pptr; - - x = ptr[0] << 0; - x |= ptr[1] << 8; - x |= ptr[2] << 16; - x |= ptr[3] << 24; - ptr += 4; - - *pptr = ptr; - *r = x; -} - -// Returns the current cumulative frequency (map it to a symbol yourself!) -static inline uint32_t RansDecGet(RansState* r, uint32_t scale_bits) -{ - return *r & ((1u << scale_bits) - 1); -} - -// Advances in the bit stream by "popping" a single symbol with range start -// "start" and frequency "freq". All frequencies are assumed to sum to "1 << scale_bits", -// and the resulting bytes get written to ptr (which is updated). -static inline void RansDecAdvance(RansState* r, uint8_t** pptr, uint32_t start, uint32_t freq, uint32_t scale_bits) -{ - uint32_t mask = (1u << scale_bits) - 1; - - // s, x = D(x) - uint32_t x = *r; - x = freq * (x >> scale_bits) + (x & mask) - start; - - // renormalize - if (x < RANS_BYTE_L) { - uint8_t* ptr = *pptr; - do x = (x << 8) | *ptr++; while (x < RANS_BYTE_L); - *pptr = ptr; - } - - *r = x; -} - -// -------------------------------------------------------------------------- - -// That's all you need for a full encoder; below here are some utility -// functions with extra convenience or optimizations. - -// Encoder symbol description -// This (admittedly odd) selection of parameters was chosen to make -// RansEncPutSymbol as cheap as possible. -typedef struct { - uint32_t x_max; // (Exclusive) upper bound of pre-normalization interval - uint32_t rcp_freq; // Fixed-point reciprocal frequency - uint32_t bias; // Bias - uint16_t cmpl_freq; // Complement of frequency: (1 << scale_bits) - freq - uint16_t rcp_shift; // Reciprocal shift -} RansEncSymbol; - -// Decoder symbols are straightforward. -typedef struct { - uint16_t start; // Start of range. - uint16_t freq; // Symbol frequency. -} RansDecSymbol; - -// Initializes an encoder symbol to start "start" and frequency "freq" -static inline void RansEncSymbolInit(RansEncSymbol* s, uint32_t start, uint32_t freq, uint32_t scale_bits) -{ - RansAssert(scale_bits <= 16); - RansAssert(start <= (1u << scale_bits)); - RansAssert(freq <= (1u << scale_bits) - start); - - // Say M := 1 << scale_bits. - // - // The original encoder does: - // x_new = (x/freq)*M + start + (x%freq) - // - // The fast encoder does (schematically): - // q = mul_hi(x, rcp_freq) >> rcp_shift (division) - // r = x - q*freq (remainder) - // x_new = q*M + bias + r (new x) - // plugging in r into x_new yields: - // x_new = bias + x + q*(M - freq) - // =: bias + x + q*cmpl_freq (*) - // - // and we can just precompute cmpl_freq. Now we just need to - // set up our parameters such that the original encoder and - // the fast encoder agree. - - s->x_max = ((RANS_BYTE_L >> scale_bits) << 8) * freq; - s->cmpl_freq = (uint16_t) ((1 << scale_bits) - freq); - if (freq < 2) { - // freq=0 symbols are never valid to encode, so it doesn't matter what - // we set our values to. - // - // freq=1 is tricky, since the reciprocal of 1 is 1; unfortunately, - // our fixed-point reciprocal approximation can only multiply by values - // smaller than 1. - // - // So we use the "next best thing": rcp_freq=0xffffffff, rcp_shift=0. - // This gives: - // q = mul_hi(x, rcp_freq) >> rcp_shift - // = mul_hi(x, (1<<32) - 1)) >> 0 - // = floor(x - x/(2^32)) - // = x - 1 if 1 <= x < 2^32 - // and we know that x>0 (x=0 is never in a valid normalization interval). - // - // So we now need to choose the other parameters such that - // x_new = x*M + start - // plug it in: - // x*M + start (desired result) - // = bias + x + q*cmpl_freq (*) - // = bias + x + (x - 1)*(M - 1) (plug in q=x-1, cmpl_freq) - // = bias + 1 + (x - 1)*M - // = x*M + (bias + 1 - M) - // - // so we have start = bias + 1 - M, or equivalently - // bias = start + M - 1. - s->rcp_freq = ~0u; - s->rcp_shift = 0; - s->bias = start + (1 << scale_bits) - 1; - } else { - // Alverson, "Integer Division using reciprocals" - // shift=ceil(log2(freq)) - uint32_t shift = 0; - while (freq > (1u << shift)) - shift++; - - s->rcp_freq = (uint32_t) (((1ull << (shift + 31)) + freq-1) / freq); - s->rcp_shift = shift - 1; - - // With these values, 'q' is the correct quotient, so we - // have bias=start. - s->bias = start; - } - - s->rcp_shift += 32; // Avoid the extra >>32 in RansEncPutSymbol -} - -// Initialize a decoder symbol to start "start" and frequency "freq" -static inline void RansDecSymbolInit(RansDecSymbol* s, uint32_t start, uint32_t freq) -{ - RansAssert(start <= (1 << 16)); - RansAssert(freq <= (1 << 16) - start); - s->start = (uint16_t) start; - s->freq = (uint16_t) freq; -} - -// Encodes a given symbol. This is faster than straight RansEnc since we can do -// multiplications instead of a divide. -// -// See RansEncSymbolInit for a description of how this works. -static inline void RansEncPutSymbol(RansState* r, uint8_t** pptr, RansEncSymbol const* sym) -{ - RansAssert(sym->x_max != 0); // can't encode symbol with freq=0 - - // renormalize - uint32_t x = *r; - uint32_t x_max = sym->x_max; - - if (x >= x_max) { - uint8_t* ptr = *pptr; - do { - *--ptr = (uint8_t) (x & 0xff); - x >>= 8; - } while (x >= x_max); - *pptr = ptr; - } - - // x = C(s,x) - // NOTE: written this way so we get a 32-bit "multiply high" when - // available. If you're on a 64-bit platform with cheap multiplies - // (e.g. x64), just bake the +32 into rcp_shift. - //uint32_t q = (uint32_t) (((uint64_t)x * sym->rcp_freq) >> 32) >> sym->rcp_shift; - - // The extra >>32 has already been added to RansEncSymbolInit - uint32_t q = (uint32_t) (((uint64_t)x * sym->rcp_freq) >> sym->rcp_shift); - *r = x + sym->bias + q * sym->cmpl_freq; -} - -// Equivalent to RansDecAdvance that takes a symbol. -static inline void RansDecAdvanceSymbol(RansState* r, uint8_t** pptr, RansDecSymbol const* sym, uint32_t scale_bits) -{ - RansDecAdvance(r, pptr, sym->start, sym->freq, scale_bits); -} - -// Advances in the bit stream by "popping" a single symbol with range start -// "start" and frequency "freq". All frequencies are assumed to sum to "1 << scale_bits". -// No renormalization or output happens. -static inline void RansDecAdvanceStep(RansState* r, uint32_t start, uint32_t freq, uint32_t scale_bits) -{ - uint32_t mask = (1u << scale_bits) - 1; - - // s, x = D(x) - uint32_t x = *r; - *r = freq * (x >> scale_bits) + (x & mask) - start; -} - -// Equivalent to RansDecAdvanceStep that takes a symbol. -static inline void RansDecAdvanceSymbolStep(RansState* r, RansDecSymbol const* sym, uint32_t scale_bits) -{ - RansDecAdvanceStep(r, sym->start, sym->freq, scale_bits); -} - -// Renormalize. -static inline void RansDecRenorm(RansState* r, uint8_t** pptr) -{ - // renormalize - uint32_t x = *r; - - if (x < RANS_BYTE_L) { - uint8_t* ptr = *pptr; - do x = (x << 8) | *ptr++; while (x < RANS_BYTE_L); - *pptr = ptr; - } - - *r = x; -} - -#endif // RANS_BYTE_HEADER diff --git a/htslib/cram/rANS_static.c b/htslib/cram/rANS_static.c deleted file mode 100644 index 19c26f3..0000000 --- a/htslib/cram/rANS_static.c +++ /dev/null @@ -1,841 +0,0 @@ -/* - * Copyright (c) 2014 Genome Research Ltd. - * Author(s): James Bonfield - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger - * Institute nor the names of its contributors may be used to endorse - * or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH - * LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * Author: James Bonfield, Wellcome Trust Sanger Institute. 2014 - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "cram/rANS_static.h" -#include "cram/rANS_byte.h" - -#define TF_SHIFT 12 -#define TOTFREQ (1<0?(a):-(a)) -#ifndef BLK_SIZE -# define BLK_SIZE 1024*1024 -#endif - -// Room to allow for expanded BLK_SIZE on worst case compression. -#define BLK_SIZE2 ((int)(1.05*BLK_SIZE)) - -/*----------------------------------------------------------------------------- - * Memory to memory compression functions. - * - * These are original versions without any manual loop unrolling. They - * are easier to understand, but can be up to 2x slower. - */ - -unsigned char *rans_compress_O0(unsigned char *in, unsigned int in_size, - unsigned int *out_size) { - unsigned char *out_buf = malloc(1.05*in_size + 257*257*3 + 9); - unsigned char *cp, *out_end; - RansEncSymbol syms[256]; - RansState rans0, rans1, rans2, rans3; - uint8_t* ptr; - int F[256] = {0}, i, j, tab_size, rle, x, fsum = 0; - int m = 0, M = 0; - uint64_t tr; - - if (!out_buf) - return NULL; - - ptr = out_end = out_buf + (int)(1.05*in_size) + 257*257*3 + 9; - - // Compute statistics - for (i = 0; i < in_size; i++) { - F[in[i]]++; - } - tr = ((uint64_t)TOTFREQ<<31)/in_size + (1<<30)/in_size; - - // Normalise so T[i] == TOTFREQ - for (m = M = j = 0; j < 256; j++) { - if (!F[j]) - continue; - - if (m < F[j]) - m = F[j], M = j; - - if ((F[j] = (F[j]*tr)>>31) == 0) - F[j] = 1; - fsum += F[j]; - } - - fsum++; - if (fsum < TOTFREQ) - F[M] += TOTFREQ-fsum; - else - F[M] -= fsum-TOTFREQ; - - //printf("F[%d]=%d\n", M, F[M]); - assert(F[M]>0); - - // Encode statistics. - cp = out_buf+9; - - for (x = rle = j = 0; j < 256; j++) { - if (F[j]) { - // j - if (rle) { - rle--; - } else { - *cp++ = j; - if (!rle && j && F[j-1]) { - for(rle=j+1; rle<256 && F[rle]; rle++) - ; - rle -= j+1; - *cp++ = rle; - } - //fprintf(stderr, "%d: %d %d\n", j, rle, N[j]); - } - - // F[j] - if (F[j]<128) { - *cp++ = F[j]; - } else { - *cp++ = 128 | (F[j]>>8); - *cp++ = F[j]&0xff; - } - RansEncSymbolInit(&syms[j], x, F[j], TF_SHIFT); - x += F[j]; - } - } - *cp++ = 0; - - //write(1, out_buf+4, cp-(out_buf+4)); - tab_size = cp-out_buf; - - RansEncInit(&rans0); - RansEncInit(&rans1); - RansEncInit(&rans2); - RansEncInit(&rans3); - - switch (i=(in_size&3)) { - case 3: RansEncPutSymbol(&rans2, &ptr, &syms[in[in_size-(i-2)]]); - case 2: RansEncPutSymbol(&rans1, &ptr, &syms[in[in_size-(i-1)]]); - case 1: RansEncPutSymbol(&rans0, &ptr, &syms[in[in_size-(i-0)]]); - case 0: - break; - } - for (i=(in_size &~3); i>0; i-=4) { - RansEncSymbol *s3 = &syms[in[i-1]]; - RansEncSymbol *s2 = &syms[in[i-2]]; - RansEncSymbol *s1 = &syms[in[i-3]]; - RansEncSymbol *s0 = &syms[in[i-4]]; - - RansEncPutSymbol(&rans3, &ptr, s3); - RansEncPutSymbol(&rans2, &ptr, s2); - RansEncPutSymbol(&rans1, &ptr, s1); - RansEncPutSymbol(&rans0, &ptr, s0); - } - - RansEncFlush(&rans3, &ptr); - RansEncFlush(&rans2, &ptr); - RansEncFlush(&rans1, &ptr); - RansEncFlush(&rans0, &ptr); - - // Finalise block size and return it - *out_size = (out_end - ptr) + tab_size; - - cp = out_buf; - - *cp++ = 0; // order - *cp++ = ((*out_size-9)>> 0) & 0xff; - *cp++ = ((*out_size-9)>> 8) & 0xff; - *cp++ = ((*out_size-9)>>16) & 0xff; - *cp++ = ((*out_size-9)>>24) & 0xff; - - *cp++ = (in_size>> 0) & 0xff; - *cp++ = (in_size>> 8) & 0xff; - *cp++ = (in_size>>16) & 0xff; - *cp++ = (in_size>>24) & 0xff; - - memmove(out_buf + tab_size, ptr, out_end-ptr); - - return out_buf; -} - -typedef struct { - struct { - int F; - int C; - } fc[256]; - unsigned char *R; -} ari_decoder; - -unsigned char *rans_uncompress_O0(unsigned char *in, unsigned int in_size, - unsigned int *out_size) { - /* Load in the static tables */ - unsigned char *cp = in + 9; - int i, j, x, out_sz, in_sz, rle; - char *out_buf; - ari_decoder D; - RansDecSymbol syms[256]; - - memset(&D, 0, sizeof(D)); - - if (*in++ != 0) // Order-0 check - return NULL; - - in_sz = ((in[0])<<0) | ((in[1])<<8) | ((in[2])<<16) | ((in[3])<<24); - out_sz = ((in[4])<<0) | ((in[5])<<8) | ((in[6])<<16) | ((in[7])<<24); - if (in_sz != in_size-9) - return NULL; - - out_buf = malloc(out_sz); - if (!out_buf) - return NULL; - - //fprintf(stderr, "out_sz=%d\n", out_sz); - - // Precompute reverse lookup of frequency. - rle = x = 0; - j = *cp++; - do { - if ((D.fc[j].F = *cp++) >= 128) { - D.fc[j].F &= ~128; - D.fc[j].F = ((D.fc[j].F & 127) << 8) | *cp++; - } - D.fc[j].C = x; - - RansDecSymbolInit(&syms[j], D.fc[j].C, D.fc[j].F); - - /* Build reverse lookup table */ - if (!D.R) D.R = (unsigned char *)malloc(TOTFREQ); - memset(&D.R[x], j, D.fc[j].F); - - x += D.fc[j].F; - - if (!rle && j+1 == *cp) { - j = *cp++; - rle = *cp++; - } else if (rle) { - rle--; - j++; - } else { - j = *cp++; - } - } while(j); - - assert(x < TOTFREQ); - - RansState rans0, rans1, rans2, rans3; - uint8_t *ptr = cp; - RansDecInit(&rans0, &ptr); - RansDecInit(&rans1, &ptr); - RansDecInit(&rans2, &ptr); - RansDecInit(&rans3, &ptr); - - int out_end = (out_sz&~3); - - RansState R[4]; - R[0] = rans0; - R[1] = rans1; - R[2] = rans2; - R[3] = rans3; - uint32_t mask = (1u << TF_SHIFT)-1; - - for (i=0; i < out_end; i+=4) { - uint32_t m[4] = {R[0] & mask, - R[1] & mask, - R[2] & mask, - R[3] & mask}; - uint8_t c[4] = {D.R[m[0]], - D.R[m[1]], - D.R[m[2]], - D.R[m[3]]}; - out_buf[i+0] = c[0]; - out_buf[i+1] = c[1]; - out_buf[i+2] = c[2]; - out_buf[i+3] = c[3]; - - // RansDecAdvanceSymbolStep(&R[0], &syms[c[0]], TF_SHIFT); - // RansDecAdvanceSymbolStep(&R[1], &syms[c[1]], TF_SHIFT); - // RansDecAdvanceSymbolStep(&R[2], &syms[c[2]], TF_SHIFT); - // RansDecAdvanceSymbolStep(&R[3], &syms[c[3]], TF_SHIFT); - R[0] = syms[c[0]].freq * (R[0]>>TF_SHIFT); - R[1] = syms[c[1]].freq * (R[1]>>TF_SHIFT); - R[2] = syms[c[2]].freq * (R[2]>>TF_SHIFT); - R[3] = syms[c[3]].freq * (R[3]>>TF_SHIFT); - - R[0] += m[0] - syms[c[0]].start; - R[1] += m[1] - syms[c[1]].start; - R[2] += m[2] - syms[c[2]].start; - R[3] += m[3] - syms[c[3]].start; - - RansDecRenorm(&R[0], &ptr); - RansDecRenorm(&R[1], &ptr); - RansDecRenorm(&R[2], &ptr); - RansDecRenorm(&R[3], &ptr); - } - - rans0 = R[0]; - rans1 = R[1]; - rans2 = R[2]; - rans3 = R[3]; - - switch(out_sz&3) { - unsigned char c; - case 0: - break; - case 1: - c = D.R[RansDecGet(&rans0, TF_SHIFT)]; - RansDecAdvanceSymbol(&rans0, &ptr, &syms[c], TF_SHIFT); - out_buf[out_end] = c; - break; - - case 2: - c = D.R[RansDecGet(&rans0, TF_SHIFT)]; - RansDecAdvanceSymbol(&rans0, &ptr, &syms[c], TF_SHIFT); - out_buf[out_end] = c; - - c = D.R[RansDecGet(&rans1, TF_SHIFT)]; - RansDecAdvanceSymbol(&rans1, &ptr, &syms[c], TF_SHIFT); - out_buf[out_end+1] = c; - break; - - case 3: - c = D.R[RansDecGet(&rans0, TF_SHIFT)]; - RansDecAdvanceSymbol(&rans0, &ptr, &syms[c], TF_SHIFT); - out_buf[out_end] = c; - - c = D.R[RansDecGet(&rans1, TF_SHIFT)]; - RansDecAdvanceSymbol(&rans1, &ptr, &syms[c], TF_SHIFT); - out_buf[out_end+1] = c; - - c = D.R[RansDecGet(&rans2, TF_SHIFT)]; - RansDecAdvanceSymbol(&rans2, &ptr, &syms[c], TF_SHIFT); - out_buf[out_end+2] = c; - break; - } - - *out_size = out_sz; - - if (D.R) free(D.R); - - return (unsigned char *)out_buf; -} - -unsigned char *rans_compress_O1(unsigned char *in, unsigned int in_size, - unsigned int *out_size) { - unsigned char *out_buf, *out_end, *cp; - unsigned int last_i, tab_size, rle_i, rle_j; - RansEncSymbol syms[256][256]; - - if (in_size < 4) - return rans_compress_O0(in, in_size, out_size); - - out_buf = malloc(1.05*in_size + 257*257*3 + 9); - if (!out_buf) - return NULL; - - out_end = out_buf + (int)(1.05*in_size) + 257*257*3 + 9; - cp = out_buf+9; - - int F[256][256], T[256], i, j; - unsigned char c; - - memset(F, 0, 256*256*sizeof(int)); - memset(T, 0, 256*sizeof(int)); - //for (last = 0, i=in_size-1; i>=0; i--) { - // F[last][c = in[i]]++; - // T[last]++; - // last = c; - //} - - for (last_i=i=0; i>2)]]++; - F[0][in[2*(in_size>>2)]]++; - F[0][in[3*(in_size>>2)]]++; - T[0]+=3; - - // Normalise so T[i] == TOTFREQ - for (rle_i = i = 0; i < 256; i++) { - int t2, m, M; - unsigned int x; - - if (T[i] == 0) - continue; - - //uint64_t p = (TOTFREQ * TOTFREQ) / t; - double p = ((double)TOTFREQ)/T[i]; - for (t2 = m = M = j = 0; j < 256; j++) { - if (!F[i][j]) - continue; - - if (m < F[i][j]) - m = F[i][j], M = j; - - //if ((F[i][j] = (F[i][j] * p) / TOTFREQ) == 0) - if ((F[i][j] *= p) == 0) - F[i][j] = 1; - t2 += F[i][j]; - } - - t2++; - if (t2 < TOTFREQ) - F[i][M] += TOTFREQ-t2; - else - F[i][M] -= t2-TOTFREQ; - - // Store frequency table - // i - if (rle_i) { - rle_i--; - } else { - *cp++ = i; - // FIXME: could use order-0 statistics to observe which alphabet - // symbols are present and base RLE on that ordering instead. - if (i && T[i-1]) { - for(rle_i=i+1; rle_i<256 && T[rle_i]; rle_i++) - ; - rle_i -= i+1; - *cp++ = rle_i; - } - } - - int *F_i_ = F[i]; - x = 0; - rle_j = 0; - for (j = 0; j < 256; j++) { - if (F_i_[j]) { - //fprintf(stderr, "F[%d][%d]=%d, x=%d\n", i, j, F_i_[j], x); - - // j - if (rle_j) { - rle_j--; - } else { - *cp++ = j; - if (!rle_j && j && F_i_[j-1]) { - for(rle_j=j+1; rle_j<256 && F_i_[rle_j]; rle_j++) - ; - rle_j -= j+1; - *cp++ = rle_j; - } - } - - // F_i_[j] - if (F_i_[j]<128) { - *cp++ = F_i_[j]; - } else { - *cp++ = 128 | (F_i_[j]>>8); - *cp++ = F_i_[j]&0xff; - } - - RansEncSymbolInit(&syms[i][j], x, F_i_[j], TF_SHIFT); - x += F_i_[j]; - } - } - *cp++ = 0; - } - *cp++ = 0; - - //write(1, out_buf+4, cp-(out_buf+4)); - tab_size = cp - out_buf; - assert(tab_size < 257*257*3); - - RansState rans0, rans1, rans2, rans3; - RansEncInit(&rans0); - RansEncInit(&rans1); - RansEncInit(&rans2); - RansEncInit(&rans3); - - uint8_t* ptr = out_end; - - int isz4 = in_size>>2; - int i0 = 1*isz4-2; - int i1 = 2*isz4-2; - int i2 = 3*isz4-2; - int i3 = 4*isz4-2; - - unsigned char l0 = in[i0+1]; - unsigned char l1 = in[i1+1]; - unsigned char l2 = in[i2+1]; - unsigned char l3 = in[i3+1]; - - // Deal with the remainder - l3 = in[in_size-1]; - for (i3 = in_size-2; i3 > 4*isz4-2; i3--) { - unsigned char c3 = in[i3]; - RansEncPutSymbol(&rans3, &ptr, &syms[c3][l3]); - l3 = c3; - } - - for (; i0 >= 0; i0--, i1--, i2--, i3--) { - unsigned char c0, c1, c2, c3; - RansEncSymbol *s3 = &syms[c3 = in[i3]][l3]; - RansEncSymbol *s2 = &syms[c2 = in[i2]][l2]; - RansEncSymbol *s1 = &syms[c1 = in[i1]][l1]; - RansEncSymbol *s0 = &syms[c0 = in[i0]][l0]; - - RansEncPutSymbol(&rans3, &ptr, s3); - RansEncPutSymbol(&rans2, &ptr, s2); - RansEncPutSymbol(&rans1, &ptr, s1); - RansEncPutSymbol(&rans0, &ptr, s0); - - l0 = c0; - l1 = c1; - l2 = c2; - l3 = c3; - } - - RansEncPutSymbol(&rans3, &ptr, &syms[0][l3]); - RansEncPutSymbol(&rans2, &ptr, &syms[0][l2]); - RansEncPutSymbol(&rans1, &ptr, &syms[0][l1]); - RansEncPutSymbol(&rans0, &ptr, &syms[0][l0]); - - RansEncFlush(&rans3, &ptr); - RansEncFlush(&rans2, &ptr); - RansEncFlush(&rans1, &ptr); - RansEncFlush(&rans0, &ptr); - - *out_size = (out_end - ptr) + tab_size; - - cp = out_buf; - *cp++ = 1; // order - - *cp++ = ((*out_size-9)>> 0) & 0xff; - *cp++ = ((*out_size-9)>> 8) & 0xff; - *cp++ = ((*out_size-9)>>16) & 0xff; - *cp++ = ((*out_size-9)>>24) & 0xff; - - *cp++ = (in_size>> 0) & 0xff; - *cp++ = (in_size>> 8) & 0xff; - *cp++ = (in_size>>16) & 0xff; - *cp++ = (in_size>>24) & 0xff; - - memmove(out_buf + tab_size, ptr, out_end-ptr); - - return out_buf; -} - -unsigned char *rans_uncompress_O1(unsigned char *in, unsigned int in_size, - unsigned int *out_size) { - /* Load in the static tables */ - unsigned char *cp = in + 9; - int i, j = -999, x, out_sz, in_sz, rle_i, rle_j; - char *out_buf; - ari_decoder D[256]; - RansDecSymbol syms[256][256]; - - memset(D, 0, 256*sizeof(*D)); - - if (*in++ != 1) // Order-1 check - return NULL; - - in_sz = ((in[0])<<0) | ((in[1])<<8) | ((in[2])<<16) | ((in[3])<<24); - out_sz = ((in[4])<<0) | ((in[5])<<8) | ((in[6])<<16) | ((in[7])<<24); - if (in_sz != in_size-9) - return NULL; - - out_buf = malloc(out_sz); - if (!out_buf) - return NULL; - - //fprintf(stderr, "out_sz=%d\n", out_sz); - - //i = *cp++; - rle_i = 0; - i = *cp++; - do { - rle_j = x = 0; - j = *cp++; - do { - if ((D[i].fc[j].F = *cp++) >= 128) { - D[i].fc[j].F &= ~128; - D[i].fc[j].F = ((D[i].fc[j].F & 127) << 8) | *cp++; - } - D[i].fc[j].C = x; - - //fprintf(stderr, "i=%d j=%d F=%d C=%d\n", i, j, D[i].fc[j].F, D[i].fc[j].C); - - if (!D[i].fc[j].F) - D[i].fc[j].F = TOTFREQ; - - RansDecSymbolInit(&syms[i][j], D[i].fc[j].C, D[i].fc[j].F); - - /* Build reverse lookup table */ - if (!D[i].R) D[i].R = (unsigned char *)malloc(TOTFREQ); - memset(&D[i].R[x], j, D[i].fc[j].F); - - x += D[i].fc[j].F; - assert(x <= TOTFREQ); - - if (!rle_j && j+1 == *cp) { - j = *cp++; - rle_j = *cp++; - } else if (rle_j) { - rle_j--; - j++; - } else { - j = *cp++; - } - } while(j); - - if (!rle_i && i+1 == *cp) { - i = *cp++; - rle_i = *cp++; - } else if (rle_i) { - rle_i--; - i++; - } else { - i = *cp++; - } - } while (i); - - // Precompute reverse lookup of frequency. - - RansState rans0, rans1, rans2, rans3; - uint8_t *ptr = cp; - RansDecInit(&rans0, &ptr); - RansDecInit(&rans1, &ptr); - RansDecInit(&rans2, &ptr); - RansDecInit(&rans3, &ptr); - - int isz4 = out_sz>>2; - int l0 = 0; - int l1 = 0; - int l2 = 0; - int l3 = 0; - int i4[] = {0*isz4, 1*isz4, 2*isz4, 3*isz4}; - - RansState R[4]; - R[0] = rans0; - R[1] = rans1; - R[2] = rans2; - R[3] = rans3; - - for (; i4[0] < isz4; i4[0]++, i4[1]++, i4[2]++, i4[3]++) { - uint32_t m[4] = {R[0] & ((1u << TF_SHIFT)-1), - R[1] & ((1u << TF_SHIFT)-1), - R[2] & ((1u << TF_SHIFT)-1), - R[3] & ((1u << TF_SHIFT)-1)}; - - uint8_t c[4] = {D[l0].R[m[0]], - D[l1].R[m[1]], - D[l2].R[m[2]], - D[l3].R[m[3]]}; - - out_buf[i4[0]] = c[0]; - out_buf[i4[1]] = c[1]; - out_buf[i4[2]] = c[2]; - out_buf[i4[3]] = c[3]; - - //RansDecAdvanceSymbolStep(&R[0], &syms[l0][c[0]], TF_SHIFT); - //RansDecAdvanceSymbolStep(&R[1], &syms[l1][c[1]], TF_SHIFT); - //RansDecAdvanceSymbolStep(&R[2], &syms[l2][c[2]], TF_SHIFT); - //RansDecAdvanceSymbolStep(&R[3], &syms[l3][c[3]], TF_SHIFT); - - R[0] = syms[l0][c[0]].freq * (R[0]>>TF_SHIFT); - R[1] = syms[l1][c[1]].freq * (R[1]>>TF_SHIFT); - R[2] = syms[l2][c[2]].freq * (R[2]>>TF_SHIFT); - R[3] = syms[l3][c[3]].freq * (R[3]>>TF_SHIFT); - - R[0] += m[0] - syms[l0][c[0]].start; - R[1] += m[1] - syms[l1][c[1]].start; - R[2] += m[2] - syms[l2][c[2]].start; - R[3] += m[3] - syms[l3][c[3]].start; - - RansDecRenorm(&R[0], &ptr); - RansDecRenorm(&R[1], &ptr); - RansDecRenorm(&R[2], &ptr); - RansDecRenorm(&R[3], &ptr); - - l0 = c[0]; - l1 = c[1]; - l2 = c[2]; - l3 = c[3]; - } - - rans0 = R[0]; - rans1 = R[1]; - rans2 = R[2]; - rans3 = R[3]; - - // Remainder - for (; i4[3] < out_sz; i4[3]++) { - unsigned char c3 = D[l3].R[RansDecGet(&rans3, TF_SHIFT)]; - out_buf[i4[3]] = c3; - RansDecAdvanceSymbol(&rans3, &ptr, &syms[l3][c3], TF_SHIFT); - l3 = c3; - } - - *out_size = out_sz; - - for (i = 0; i < 256; i++) - if (D[i].R) free(D[i].R); - - return (unsigned char *)out_buf; -} - -/*----------------------------------------------------------------------------- - * Simple interface to the order-0 vs order-1 encoders and decoders. - */ -unsigned char *rans_compress(unsigned char *in, unsigned int in_size, - unsigned int *out_size, int order) { - return order - ? rans_compress_O1(in, in_size, out_size) - : rans_compress_O0(in, in_size, out_size); -} - -unsigned char *rans_uncompress(unsigned char *in, unsigned int in_size, - unsigned int *out_size) { - return in[0] - ? rans_uncompress_O1(in, in_size, out_size) - : rans_uncompress_O0(in, in_size, out_size); -} - - -#ifdef TEST_MAIN -/*----------------------------------------------------------------------------- - * Main. - * - * This is a simple command line tool for testing order-0 and order-1 - * compression using the rANS codec. Simply compile with - * - * gcc -DTEST_MAIN -O3 -I. cram/rANS_static.c -o cram/rANS_static - * - * Usage: cram/rANS_static -o0 < file > file.o0 - * cram/rANS_static -d < file.o0 > file2 - * - * cram/rANS_static -o1 < file > file.o1 - * cram/rANS_static -d < file.o1 > file2 - */ -int main(int argc, char **argv) { - int opt, order = 0; - unsigned char in_buf[BLK_SIZE2+257*257*3]; - int decode = 0; - FILE *infp = stdin, *outfp = stdout; - struct timeval tv1, tv2; - size_t bytes = 0; - - extern char *optarg; - extern int optind; - - while ((opt = getopt(argc, argv, "o:d")) != -1) { - switch (opt) { - case 'o': - order = atoi(optarg); - break; - - case 'd': - decode = 1; - break; - } - } - - order = order ? 1 : 0; // Only support O(0) and O(1) - - if (optind < argc) { - if (!(infp = fopen(argv[optind], "rb"))) { - perror(argv[optind]); - return 1; - } - optind++; - } - - if (optind < argc) { - if (!(outfp = fopen(argv[optind], "wb"))) { - perror(argv[optind]); - return 1; - } - optind++; - } - - gettimeofday(&tv1, NULL); - - if (decode) { - // Only used in some test implementations of RC_GetFreq() - //RC_init(); - //RC_init2(); - - for (;;) { - uint32_t in_size, out_size; - unsigned char *out; - - if (4 != fread(&in_size, 1, 4, infp)) - break; - if (in_size != fread(in_buf, 1, in_size, infp)) { - fprintf(stderr, "Truncated input\n"); - exit(1); - } - out = rans_uncompress(in_buf, in_size, &out_size); - if (!out) - abort(); - - fwrite(out, 1, out_size, outfp); - free(out); - - bytes += out_size; - } - } else { - for (;;) { - uint32_t in_size, out_size; - unsigned char *out; - - in_size = fread(in_buf, 1, BLK_SIZE, infp); - if (in_size <= 0) - break; - - out = rans_compress(in_buf, in_size, &out_size, order); - - fwrite(&out_size, 1, 4, outfp); - fwrite(out, 1, out_size, outfp); - free(out); - - bytes += in_size; - } - } - - gettimeofday(&tv2, NULL); - - fprintf(stderr, "Took %ld microseconds, %5.1f MB/s\n", - (long)(tv2.tv_sec - tv1.tv_sec)*1000000 + - tv2.tv_usec - tv1.tv_usec, - (double)bytes / ((long)(tv2.tv_sec - tv1.tv_sec)*1000000 + - tv2.tv_usec - tv1.tv_usec)); - return 0; -} -#endif diff --git a/htslib/cram/rANS_static.h b/htslib/cram/rANS_static.h deleted file mode 100644 index 971099c..0000000 --- a/htslib/cram/rANS_static.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2014 Genome Research Ltd. - * Author(s): James Bonfield - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger - * Institute nor the names of its contributors may be used to endorse - * or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH - * LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - -#ifndef RANS_STATIC_H -#define RANS_STATIC_H - -unsigned char *rans_compress(unsigned char *in, unsigned int in_size, - unsigned int *out_size, int order); -unsigned char *rans_uncompress(unsigned char *in, unsigned int in_size, - unsigned int *out_size); - - -#endif /* RANS_STATIC_H */ diff --git a/htslib/cram/sam_header.c b/htslib/cram/sam_header.c deleted file mode 100644 index 3367f19..0000000 --- a/htslib/cram/sam_header.c +++ /dev/null @@ -1,1218 +0,0 @@ -/* -Copyright (c) 2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include - -#include "cram/sam_header.h" -#include "cram/string_alloc.h" - -static void sam_hdr_error(char *msg, char *line, int len, int lno) { - int j; - - for (j = 0; j < len && line[j] != '\n'; j++) - ; - fprintf(stderr, "%s at line %d: \"%.*s\"\n", msg, lno, j, line); -} - -void sam_hdr_dump(SAM_hdr *hdr) { - khint_t k; - int i; - - printf("===DUMP===\n"); - for (k = kh_begin(hdr->h); k != kh_end(hdr->h); k++) { - SAM_hdr_type *t1, *t2; - char c[2]; - - if (!kh_exist(hdr->h, k)) - continue; - - t1 = t2 = kh_val(hdr->h, k); - c[0] = kh_key(hdr->h, k)>>8; - c[1] = kh_key(hdr->h, k)&0xff; - printf("Type %.2s, count %d\n", c, t1->prev->order+1); - - do { - SAM_hdr_tag *tag; - printf(">>>%d ", t1->order); - for (tag = t1->tag; tag; tag=tag->next) { - printf("\"%.2s\":\"%.*s\"\t", - tag->str, tag->len-3, tag->str+3); - } - putchar('\n'); - t1 = t1->next; - } while (t1 != t2); - } - - /* Dump out PG chains */ - printf("\n@PG chains:\n"); - for (i = 0; i < hdr->npg_end; i++) { - int j; - printf(" %d:", i); - for (j = hdr->pg_end[i]; j != -1; j = hdr->pg[j].prev_id) { - printf("%s%d(%.*s)", - j == hdr->pg_end[i] ? " " : "->", - j, hdr->pg[j].name_len, hdr->pg[j].name); - } - printf("\n"); - } - - puts("===END DUMP==="); -} - -/* Updates the hash tables in the SAM_hdr structure. - * - * Returns 0 on success; - * -1 on failure - */ -static int sam_hdr_update_hashes(SAM_hdr *sh, - int type, - SAM_hdr_type *h_type) { - /* Add to reference hash? */ - if ((type>>8) == 'S' && (type&0xff) == 'Q') { - SAM_hdr_tag *tag; - int nref = sh->nref; - - sh->ref = realloc(sh->ref, (sh->nref+1)*sizeof(*sh->ref)); - if (!sh->ref) - return -1; - - tag = h_type->tag; - sh->ref[nref].name = NULL; - sh->ref[nref].len = 0; - sh->ref[nref].ty = h_type; - sh->ref[nref].tag = tag; - - while (tag) { - if (tag->str[0] == 'S' && tag->str[1] == 'N') { - if (!(sh->ref[nref].name = malloc(tag->len))) - return -1; - strncpy(sh->ref[nref].name, tag->str+3, tag->len-3); - sh->ref[nref].name[tag->len-3] = 0; - } else if (tag->str[0] == 'L' && tag->str[1] == 'N') { - sh->ref[nref].len = atoi(tag->str+3); - } - tag = tag->next; - } - - if (sh->ref[nref].name) { - khint_t k; - int r; - k = kh_put(m_s2i, sh->ref_hash, sh->ref[nref].name, &r); - if (-1 == r) return -1; - kh_val(sh->ref_hash, k) = nref; - } - - sh->nref++; - } - - /* Add to read-group hash? */ - if ((type>>8) == 'R' && (type&0xff) == 'G') { - SAM_hdr_tag *tag; - int nrg = sh->nrg; - - sh->rg = realloc(sh->rg, (sh->nrg+1)*sizeof(*sh->rg)); - if (!sh->rg) - return -1; - - tag = h_type->tag; - sh->rg[nrg].name = NULL; - sh->rg[nrg].name_len = 0; - sh->rg[nrg].ty = h_type; - sh->rg[nrg].tag = tag; - sh->rg[nrg].id = nrg; - - while (tag) { - if (tag->str[0] == 'I' && tag->str[1] == 'D') { - if (!(sh->rg[nrg].name = malloc(tag->len))) - return -1; - strncpy(sh->rg[nrg].name, tag->str+3, tag->len-3); - sh->rg[nrg].name[tag->len-3] = 0; - sh->rg[nrg].name_len = strlen(sh->rg[nrg].name); - } - tag = tag->next; - } - - if (sh->rg[nrg].name) { - khint_t k; - int r; - k = kh_put(m_s2i, sh->rg_hash, sh->rg[nrg].name, &r); - if (-1 == r) return -1; - kh_val(sh->rg_hash, k) = nrg; - } - - sh->nrg++; - } - - /* Add to program hash? */ - if ((type>>8) == 'P' && (type&0xff) == 'G') { - SAM_hdr_tag *tag; - int npg = sh->npg; - - sh->pg = realloc(sh->pg, (sh->npg+1)*sizeof(*sh->pg)); - if (!sh->pg) - return -1; - - tag = h_type->tag; - sh->pg[npg].name = NULL; - sh->pg[npg].name_len = 0; - sh->pg[npg].ty = h_type; - sh->pg[npg].tag = tag; - sh->pg[npg].id = npg; - sh->pg[npg].prev_id = -1; - - while (tag) { - if (tag->str[0] == 'I' && tag->str[1] == 'D') { - if (!(sh->pg[npg].name = malloc(tag->len))) - return -1; - strncpy(sh->pg[npg].name, tag->str+3, tag->len-3); - sh->pg[npg].name[tag->len-3] = 0; - sh->pg[npg].name_len = strlen(sh->pg[npg].name); - } else if (tag->str[0] == 'P' && tag->str[1] == 'P') { - // Resolve later if needed - khint_t k; - char tmp = tag->str[tag->len]; tag->str[tag->len] = 0; - k = kh_get(m_s2i, sh->pg_hash, tag->str+3); - tag->str[tag->len] = tmp; - - if (k != kh_end(sh->pg_hash)) { - int p_id = kh_val(sh->pg_hash, k); - sh->pg[npg].prev_id = sh->pg[p_id].id; - - /* Unmark previous entry as a PG termination */ - if (sh->npg_end > 0 && - sh->pg_end[sh->npg_end-1] == p_id) { - sh->npg_end--; - } else { - int i; - for (i = 0; i < sh->npg_end; i++) { - if (sh->pg_end[i] == p_id) { - memmove(&sh->pg_end[i], &sh->pg_end[i+1], - (sh->npg_end-i-1)*sizeof(*sh->pg_end)); - sh->npg_end--; - } - } - } - } else { - sh->pg[npg].prev_id = -1; - } - } - tag = tag->next; - } - - if (sh->pg[npg].name) { - khint_t k; - int r; - k = kh_put(m_s2i, sh->pg_hash, sh->pg[npg].name, &r); - if (-1 == r) return -1; - kh_val(sh->pg_hash, k) = npg; - } - - /* Add to npg_end[] array. Remove later if we find a PP line */ - if (sh->npg_end >= sh->npg_end_alloc) { - sh->npg_end_alloc = sh->npg_end_alloc - ? sh->npg_end_alloc*2 - : 4; - sh->pg_end = realloc(sh->pg_end, - sh->npg_end_alloc * sizeof(int)); - if (!sh->pg_end) - return -1; - } - sh->pg_end[sh->npg_end++] = npg; - - sh->npg++; - } - - return 0; -} - -/* - * Appends a formatted line to an existing SAM header. - * Line is a full SAM header record, eg "@SQ\tSN:foo\tLN:100", with - * optional new-line. If it contains more than 1 line then multiple lines - * will be added in order. - * - * Len is the length of the text data, or 0 if unknown (in which case - * it should be null terminated). - * - * Returns 0 on success - * -1 on failure - */ -int sam_hdr_add_lines(SAM_hdr *sh, const char *lines, int len) { - int i, lno = 1, text_offset; - char *hdr; - - if (!len) - len = strlen(lines); - - text_offset = ks_len(&sh->text); - if (EOF == kputsn(lines, len, &sh->text)) - return -1; - hdr = ks_str(&sh->text) + text_offset; - - for (i = 0; i < len; i++) { - khint32_t type; - khint_t k; - - int l_start = i, new; - SAM_hdr_type *h_type; - SAM_hdr_tag *h_tag, *last; - - if (hdr[i] != '@') { - int j; - for (j = i; j < len && hdr[j] != '\n'; j++) - ; - sam_hdr_error("Header line does not start with '@'", - &hdr[l_start], len - l_start, lno); - return -1; - } - - type = (hdr[i+1]<<8) | hdr[i+2]; - if (hdr[i+1] < 'A' || hdr[i+1] > 'z' || - hdr[i+2] < 'A' || hdr[i+2] > 'z') { - sam_hdr_error("Header line does not have a two character key", - &hdr[l_start], len - l_start, lno); - return -1; - } - - i += 3; - if (hdr[i] == '\n') - continue; - - // Add the header line type - if (!(h_type = pool_alloc(sh->type_pool))) - return -1; - if (-1 == (k = kh_put(sam_hdr, sh->h, type, &new))) - return -1; - - // Form the ring, either with self or other lines of this type - if (!new) { - SAM_hdr_type *t = kh_val(sh->h, k), *p; - p = t->prev; - - assert(p->next = t); - p->next = h_type; - h_type->prev = p; - - t->prev = h_type; - h_type->next = t; - h_type->order = p->order+1; - } else { - kh_val(sh->h, k) = h_type; - h_type->prev = h_type->next = h_type; - h_type->order = 0; - } - - // Parse the tags on this line - last = NULL; - if ((type>>8) == 'C' && (type&0xff) == 'O') { - int j; - if (hdr[i] != '\t') { - sam_hdr_error("Missing tab", - &hdr[l_start], len - l_start, lno); - return -1; - } - - for (j = ++i; j < len && hdr[j] != '\n'; j++) - ; - - if (!(h_type->tag = h_tag = pool_alloc(sh->tag_pool))) - return -1; - h_tag->str = string_ndup(sh->str_pool, &hdr[i], j-i); - h_tag->len = j-i; - h_tag->next = NULL; - if (!h_tag->str) - return -1; - - i = j; - - } else { - do { - int j; - if (hdr[i] != '\t') { - sam_hdr_error("Missing tab", - &hdr[l_start], len - l_start, lno); - return -1; - } - - for (j = ++i; j < len && hdr[j] != '\n' && hdr[j] != '\t'; j++) - ; - - if (!(h_tag = pool_alloc(sh->tag_pool))) - return -1; - h_tag->str = string_ndup(sh->str_pool, &hdr[i], j-i); - h_tag->len = j-i; - h_tag->next = NULL; - if (!h_tag->str) - return -1; - - if (h_tag->len < 3 || h_tag->str[2] != ':') { - sam_hdr_error("Malformed key:value pair", - &hdr[l_start], len - l_start, lno); - return -1; - } - - if (last) - last->next = h_tag; - else - h_type->tag = h_tag; - - last = h_tag; - i = j; - } while (i < len && hdr[i] != '\n'); - } - - /* Update RG/SQ hashes */ - if (-1 == sam_hdr_update_hashes(sh, type, h_type)) - return -1; - } - - return 0; -} - -/* - * Adds a single line to a SAM header. - * Specify type and one or more key,value pairs, ending with the NULL key. - * Eg. sam_hdr_add(h, "SQ", "ID", "foo", "LN", "100", NULL). - * - * Returns index for specific entry on success (eg 2nd SQ, 4th RG) - * -1 on failure - */ -int sam_hdr_add(SAM_hdr *sh, const char *type, ...) { - va_list args; - va_start(args, type); - return sam_hdr_vadd(sh, type, args, NULL); -} - -int sam_hdr_vadd(SAM_hdr *sh, const char *type, va_list ap, ...) { - va_list args; - SAM_hdr_type *h_type; - SAM_hdr_tag *h_tag, *last; - int new; - khint32_t type_i = (type[0]<<8) | type[1], k; - -#if defined(HAVE_VA_COPY) - va_list ap_local; -#endif - - if (EOF == kputc_('@', &sh->text)) - return -1; - if (EOF == kputsn(type, 2, &sh->text)) - return -1; - - if (!(h_type = pool_alloc(sh->type_pool))) - return -1; - if (-1 == (k = kh_put(sam_hdr, sh->h, type_i, &new))) - return -1; - kh_val(sh->h, k) = h_type; - - // Form the ring, either with self or other lines of this type - if (!new) { - SAM_hdr_type *t = kh_val(sh->h, k), *p; - p = t->prev; - - assert(p->next = t); - p->next = h_type; - h_type->prev = p; - - t->prev = h_type; - h_type->next = t; - h_type->order = p->order + 1; - } else { - h_type->prev = h_type->next = h_type; - h_type->order = 0; - } - - last = NULL; - - // Any ... varargs - va_start(args, ap); - for (;;) { - char *k, *v; - int idx; - - if (!(k = (char *)va_arg(args, char *))) - break; - v = va_arg(args, char *); - - if (EOF == kputc_('\t', &sh->text)) - return -1; - - if (!(h_tag = pool_alloc(sh->tag_pool))) - return -1; - idx = ks_len(&sh->text); - - if (EOF == kputs(k, &sh->text)) - return -1; - if (EOF == kputc_(':', &sh->text)) - return -1; - if (EOF == kputs(v, &sh->text)) - return -1; - - h_tag->len = ks_len(&sh->text) - idx; - h_tag->str = string_ndup(sh->str_pool, - ks_str(&sh->text) + idx, - h_tag->len); - h_tag->next = NULL; - if (!h_tag->str) - return -1; - - if (last) - last->next = h_tag; - else - h_type->tag = h_tag; - - last = h_tag; - } - va_end(args); - -#if defined(HAVE_VA_COPY) - va_copy(ap_local, ap); -# define ap ap_local -#endif - - // Plus the specified va_list params - for (;;) { - char *k, *v; - int idx; - - if (!(k = (char *)va_arg(ap, char *))) - break; - v = va_arg(ap, char *); - - if (EOF == kputc_('\t', &sh->text)) - return -1; - - if (!(h_tag = pool_alloc(sh->tag_pool))) - return -1; - idx = ks_len(&sh->text); - - if (EOF == kputs(k, &sh->text)) - return -1; - if (EOF == kputc_(':', &sh->text)) - return -1; - if (EOF == kputs(v, &sh->text)) - return -1; - - h_tag->len = ks_len(&sh->text) - idx; - h_tag->str = string_ndup(sh->str_pool, - ks_str(&sh->text) + idx, - h_tag->len); - h_tag->next = NULL; - if (!h_tag->str) - return -1; - - if (last) - last->next = h_tag; - else - h_type->tag = h_tag; - - last = h_tag; - } - va_end(ap); - - if (EOF == kputc('\n', &sh->text)) - return -1; - - int itype = (type[0]<<8) | type[1]; - if (-1 == sam_hdr_update_hashes(sh, itype, h_type)) - return -1; - - return h_type->order; -} - -/* - * Returns the first header item matching 'type'. If ID is non-NULL it checks - * for the tag ID: and compares against the specified ID. - * - * Returns NULL if no type/ID is found - */ -SAM_hdr_type *sam_hdr_find(SAM_hdr *hdr, char *type, - char *ID_key, char *ID_value) { - SAM_hdr_type *t1, *t2; - int itype = (type[0]<<8)|(type[1]); - khint_t k; - - /* Special case for types we have prebuilt hashes on */ - if (ID_key) { - if (type[0] == 'S' && type[1] == 'Q' && - ID_key[0] == 'S' && ID_key[1] == 'N') { - k = kh_get(m_s2i, hdr->ref_hash, ID_value); - return k != kh_end(hdr->ref_hash) - ? hdr->ref[kh_val(hdr->ref_hash, k)].ty - : NULL; - } - - if (type[0] == 'R' && type[1] == 'G' && - ID_key[0] == 'I' && ID_key[1] == 'D') { - k = kh_get(m_s2i, hdr->rg_hash, ID_value); - return k != kh_end(hdr->rg_hash) - ? hdr->rg[kh_val(hdr->rg_hash, k)].ty - : NULL; - } - - if (type[0] == 'P' && type[1] == 'G' && - ID_key[0] == 'I' && ID_key[1] == 'D') { - k = kh_get(m_s2i, hdr->pg_hash, ID_value); - return k != kh_end(hdr->pg_hash) - ? hdr->pg[kh_val(hdr->pg_hash, k)].ty - : NULL; - } - } - - k = kh_get(sam_hdr, hdr->h, itype); - if (k == kh_end(hdr->h)) - return NULL; - - if (!ID_key) - return kh_val(hdr->h, k); - - t1 = t2 = kh_val(hdr->h, k); - do { - SAM_hdr_tag *tag; - for (tag = t1->tag; tag; tag = tag->next) { - if (tag->str[0] == ID_key[0] && tag->str[1] == ID_key[1]) { - char *cp1 = tag->str+3; - char *cp2 = ID_value; - while (*cp1 && *cp1 == *cp2) - cp1++, cp2++; - if (*cp2 || *cp1) - continue; - return t1; - } - } - t1 = t1->next; - } while (t1 != t2); - - return NULL; -} - -/* - * As per SAM_hdr_type, but returns a complete line of formatted text - * for a specific head type/ID combination. If ID is NULL then it returns - * the first line of the specified type. - * - * The returned string is malloced and should be freed by the calling - * function with free(). - * - * Returns NULL if no type/ID is found. - */ -char *sam_hdr_find_line(SAM_hdr *hdr, char *type, - char *ID_key, char *ID_value) { - SAM_hdr_type *ty = sam_hdr_find(hdr, type, ID_key, ID_value); - kstring_t ks = KS_INITIALIZER; - SAM_hdr_tag *tag; - int r = 0; - - if (!ty) - return NULL; - - // Paste together the line from the hashed copy - r |= (kputc_('@', &ks) == EOF); - r |= (kputs(type, &ks) == EOF); - for (tag = ty->tag; tag; tag = tag->next) { - r |= (kputc_('\t', &ks) == EOF); - r |= (kputsn(tag->str, tag->len, &ks) == EOF); - } - - if (r) { - KS_FREE(&ks); - return NULL; - } - - return ks_str(&ks); -} - - -/* - * Looks for a specific key in a single sam header line. - * If prev is non-NULL it also fills this out with the previous tag, to - * permit use in key removal. *prev is set to NULL when the tag is the first - * key in the list. When a tag isn't found, prev (if non NULL) will be the last - * tag in the existing list. - * - * Returns the tag pointer on success - * NULL on failure - */ -SAM_hdr_tag *sam_hdr_find_key(SAM_hdr *sh, - SAM_hdr_type *type, - char *key, - SAM_hdr_tag **prev) { - SAM_hdr_tag *tag, *p = NULL; - - for (tag = type->tag; tag; p = tag, tag = tag->next) { - if (tag->str[0] == key[0] && tag->str[1] == key[1]) { - if (prev) - *prev = p; - return tag; - } - } - - if (prev) - *prev = p; - - return NULL; -} - - -/* - * Adds or updates tag key,value pairs in a header line. - * Eg for adding M5 tags to @SQ lines or updating sort order for the - * @HD line (although use the sam_hdr_sort_order() function for - * HD manipulation, which is a wrapper around this funuction). - * - * Specify multiple key,value pairs ending in NULL. - * - * Returns 0 on success - * -1 on failure - */ -int sam_hdr_update(SAM_hdr *hdr, SAM_hdr_type *type, ...) { - va_list ap; - - va_start(ap, type); - - for (;;) { - char *k, *v; - int idx; - SAM_hdr_tag *tag, *prev; - - if (!(k = (char *)va_arg(ap, char *))) - break; - v = va_arg(ap, char *); - - tag = sam_hdr_find_key(hdr, type, k, &prev); - if (!tag) { - if (!(tag = pool_alloc(hdr->tag_pool))) - return -1; - if (prev) - prev->next = tag; - else - type->tag = tag; - - tag->next = NULL; - } - - idx = ks_len(&hdr->text); - if (ksprintf(&hdr->text, "%2.2s:%s", k, v) < 0) - return -1; - tag->len = ks_len(&hdr->text) - idx; - tag->str = string_ndup(hdr->str_pool, - ks_str(&hdr->text) + idx, - tag->len); - if (!tag->str) - return -1; - } - - va_end(ap); - - return 0; -} - -#define K(a) (((a)[0]<<8)|((a)[1])) - -/* - * Reconstructs the kstring from the header hash table. - * Returns 0 on success - * -1 on failure - */ -int sam_hdr_rebuild(SAM_hdr *hdr) { - /* Order: HD then others */ - kstring_t ks = KS_INITIALIZER; - khint_t k; - - - k = kh_get(sam_hdr, hdr->h, K("HD")); - if (k != kh_end(hdr->h)) { - SAM_hdr_type *ty = kh_val(hdr->h, k); - SAM_hdr_tag *tag; - if (EOF == kputs("@HD", &ks)) - return -1; - for (tag = ty->tag; tag; tag = tag->next) { - if (EOF == kputc_('\t', &ks)) - return -1; - if (EOF == kputsn_(tag->str, tag->len, &ks)) - return -1; - } - if (EOF == kputc('\n', &ks)) - return -1; - } - - for (k = kh_begin(hdr->h); k != kh_end(hdr->h); k++) { - SAM_hdr_type *t1, *t2; - - if (!kh_exist(hdr->h, k)) - continue; - - if (kh_key(hdr->h, k) == K("HD")) - continue; - - t1 = t2 = kh_val(hdr->h, k); - do { - SAM_hdr_tag *tag; - char c[2]; - - if (EOF == kputc_('@', &ks)) - return -1; - c[0] = kh_key(hdr->h, k)>>8; - c[1] = kh_key(hdr->h, k)&0xff; - if (EOF == kputsn_(c, 2, &ks)) - return -1; - for (tag = t1->tag; tag; tag=tag->next) { - if (EOF == kputc_('\t', &ks)) - return -1; - if (EOF == kputsn_(tag->str, tag->len, &ks)) - return -1; - } - if (EOF == kputc('\n', &ks)) - return -1; - t1 = t1->next; - } while (t1 != t2); - } - - if (ks_str(&hdr->text)) - KS_FREE(&hdr->text); - - hdr->text = ks; - - return 0; -} - - -/* - * Creates an empty SAM header, ready to be populated. - * - * Returns a SAM_hdr struct on success (free with sam_hdr_free()) - * NULL on failure - */ -SAM_hdr *sam_hdr_new() { - SAM_hdr *sh = calloc(1, sizeof(*sh)); - - if (!sh) - return NULL; - - sh->h = kh_init(sam_hdr); - if (!sh->h) - goto err; - - sh->ID_cnt = 1; - sh->ref_count = 1; - - sh->nref = 0; - sh->ref = NULL; - if (!(sh->ref_hash = kh_init(m_s2i))) - goto err; - - sh->nrg = 0; - sh->rg = NULL; - if (!(sh->rg_hash = kh_init(m_s2i))) - goto err; - - sh->npg = 0; - sh->pg = NULL; - sh->npg_end = sh->npg_end_alloc = 0; - sh->pg_end = NULL; - if (!(sh->pg_hash = kh_init(m_s2i))) - goto err; - - KS_INIT(&sh->text); - - if (!(sh->tag_pool = pool_create(sizeof(SAM_hdr_tag)))) - goto err; - - if (!(sh->type_pool = pool_create(sizeof(SAM_hdr_type)))) - goto err; - - if (!(sh->str_pool = string_pool_create(8192))) - goto err; - - return sh; - - err: - if (sh->h) - kh_destroy(sam_hdr, sh->h); - - if (sh->tag_pool) - pool_destroy(sh->tag_pool); - - if (sh->type_pool) - pool_destroy(sh->type_pool); - - if (sh->str_pool) - string_pool_destroy(sh->str_pool); - - free(sh); - - return NULL; -} - - -/* - * Tokenises a SAM header into a hash table. - * Also extracts a few bits on specific data types, such as @RG lines. - * - * Returns a SAM_hdr struct on success (free with sam_hdr_free()) - * NULL on failure - */ -SAM_hdr *sam_hdr_parse_(const char *hdr, int len) { - /* Make an empty SAM_hdr */ - SAM_hdr *sh; - - sh = sam_hdr_new(); - if (NULL == sh) return NULL; - - if (NULL == hdr) return sh; // empty header is permitted - - /* Parse the header, line by line */ - if (-1 == sam_hdr_add_lines(sh, hdr, len)) { - sam_hdr_free(sh); - return NULL; - } - - //sam_hdr_dump(sh); - //sam_hdr_add(sh, "RG", "ID", "foo", "SM", "bar", NULL); - //sam_hdr_rebuild(sh); - //printf(">>%s<<", ks_str(sh->text)); - - //parse_references(sh); - //parse_read_groups(sh); - - sam_hdr_link_pg(sh); - //sam_hdr_dump(sh); - - return sh; -} - -/* - * Produces a duplicate copy of hdr and returns it. - * Returns NULL on failure - */ -SAM_hdr *sam_hdr_dup(SAM_hdr *hdr) { - if (-1 == sam_hdr_rebuild(hdr)) - return NULL; - - return sam_hdr_parse_(sam_hdr_str(hdr), sam_hdr_length(hdr)); -} - -/*! Increments a reference count on hdr. - * - * This permits multiple files to share the same header, all calling - * sam_hdr_free when done, without causing errors for other open files. - */ -void sam_hdr_incr_ref(SAM_hdr *hdr) { - hdr->ref_count++; -} - -/*! Increments a reference count on hdr. - * - * This permits multiple files to share the same header, all calling - * sam_hdr_free when done, without causing errors for other open files. - * - * If the reference count hits zero then the header is automatically - * freed. This makes it a synonym for sam_hdr_free(). - */ -void sam_hdr_decr_ref(SAM_hdr *hdr) { - sam_hdr_free(hdr); -} - -/*! Deallocates all storage used by a SAM_hdr struct. - * - * This also decrements the header reference count. If after decrementing - * it is still non-zero then the header is assumed to be in use by another - * caller and the free is not done. - * - * This is a synonym for sam_hdr_dec_ref(). - */ -void sam_hdr_free(SAM_hdr *hdr) { - if (!hdr) - return; - - if (--hdr->ref_count > 0) - return; - - if (ks_str(&hdr->text)) - KS_FREE(&hdr->text); - - if (hdr->h) - kh_destroy(sam_hdr, hdr->h); - - if (hdr->ref_hash) - kh_destroy(m_s2i, hdr->ref_hash); - - if (hdr->ref) { - int i; - for (i = 0; i < hdr->nref; i++) - if (hdr->ref[i].name) - free(hdr->ref[i].name); - free(hdr->ref); - } - - if (hdr->rg_hash) - kh_destroy(m_s2i, hdr->rg_hash); - - if (hdr->rg) { - int i; - for (i = 0; i < hdr->nrg; i++) - if (hdr->rg[i].name) - free(hdr->rg[i].name); - free(hdr->rg); - } - - if (hdr->pg_hash) - kh_destroy(m_s2i, hdr->pg_hash); - - if (hdr->pg) { - int i; - for (i = 0; i < hdr->npg; i++) - if (hdr->pg[i].name) - free(hdr->pg[i].name); - free(hdr->pg); - } - - if (hdr->pg_end) - free(hdr->pg_end); - - if (hdr->type_pool) - pool_destroy(hdr->type_pool); - - if (hdr->tag_pool) - pool_destroy(hdr->tag_pool); - - if (hdr->str_pool) - string_pool_destroy(hdr->str_pool); - - free(hdr); -} - -int sam_hdr_length(SAM_hdr *hdr) { - return ks_len(&hdr->text); -} - -char *sam_hdr_str(SAM_hdr *hdr) { - return ks_str(&hdr->text); -} - -/* - * Looks up a reference sequence by name and returns the numerical ID. - * Returns -1 if unknown reference. - */ -int sam_hdr_name2ref(SAM_hdr *hdr, const char *ref) { - khint_t k = kh_get(m_s2i, hdr->ref_hash, ref); - return k == kh_end(hdr->ref_hash) ? -1 : kh_val(hdr->ref_hash, k); -} - -/* - * Looks up a read-group by name and returns a pointer to the start of the - * associated tag list. - * - * Returns NULL on failure - */ -SAM_RG *sam_hdr_find_rg(SAM_hdr *hdr, const char *rg) { - khint_t k = kh_get(m_s2i, hdr->rg_hash, rg); - return k == kh_end(hdr->rg_hash) - ? NULL - : &hdr->rg[kh_val(hdr->rg_hash, k)]; -} - - -/* - * Fixes any PP links in @PG headers. - * If the entries are in order then this doesn't need doing, but incase - * our header is out of order this goes through the sh->pg[] array - * setting the prev_id field. - * - * Note we can have multiple complete chains. This code should identify the - * tails of these chains as these are the entries we have to link to in - * subsequent PP records. - * - * Returns 0 on sucess - * -1 on failure (indicating broken PG/PP records) - */ -int sam_hdr_link_pg(SAM_hdr *hdr) { - int i, j, ret = 0; - - hdr->npg_end_alloc = hdr->npg; - hdr->pg_end = realloc(hdr->pg_end, hdr->npg * sizeof(*hdr->pg_end)); - if (!hdr->pg_end) - return -1; - - for (i = 0; i < hdr->npg; i++) - hdr->pg_end[i] = i; - - for (i = 0; i < hdr->npg; i++) { - khint_t k; - SAM_hdr_tag *tag; - char tmp; - - for (tag = hdr->pg[i].tag; tag; tag = tag->next) { - if (tag->str[0] == 'P' && tag->str[1] == 'P') - break; - } - if (!tag) { - /* Chain start points */ - continue; - } - - tmp = tag->str[tag->len]; tag->str[tag->len] = 0; - k = kh_get(m_s2i, hdr->pg_hash, tag->str+3); - tag->str[tag->len] = tmp; - - if (k == kh_end(hdr->pg_hash)) { - ret = -1; - continue; - } - - hdr->pg[i].prev_id = hdr->pg[kh_val(hdr->pg_hash, k)].id; - hdr->pg_end[kh_val(hdr->pg_hash, k)] = -1; - } - - for (i = j = 0; i < hdr->npg; i++) { - if (hdr->pg_end[i] != -1) - hdr->pg_end[j++] = hdr->pg_end[i]; - } - hdr->npg_end = j; - - return ret; -} - -/* - * Returns a unique ID from a base name. - * - * The value returned is valid until the next call to - * this function. - */ -const char *sam_hdr_PG_ID(SAM_hdr *sh, const char *name) { - khint_t k = kh_get(m_s2i, sh->pg_hash, name); - if (k == kh_end(sh->pg_hash)) - return name; - - do { - sprintf(sh->ID_buf, "%.1000s.%d", name, sh->ID_cnt++); - k = kh_get(m_s2i, sh->pg_hash, sh->ID_buf); - } while (k == kh_end(sh->pg_hash)); - - return sh->ID_buf; -} - -/* - * Add an @PG line. - * - * If we wish complete control over this use sam_hdr_add() directly. This - * function uses that, but attempts to do a lot of tedious house work for - * you too. - * - * - It will generate a suitable ID if the supplied one clashes. - * - It will generate multiple @PG records if we have multiple PG chains. - * - * Call it as per sam_hdr_add() with a series of key,value pairs ending - * in NULL. - * - * Returns 0 on success - * -1 on failure - */ -int sam_hdr_add_PG(SAM_hdr *sh, const char *name, ...) { - va_list args; - va_start(args, name); - - if (sh->npg_end) { - /* Copy ends array to avoid us looping while modifying it */ - int *end = malloc(sh->npg_end * sizeof(int)); - int i, nends = sh->npg_end; - - if (!end) - return -1; - - memcpy(end, sh->pg_end, nends * sizeof(*end)); - - for (i = 0; i < nends; i++) { - if (-1 == sam_hdr_vadd(sh, "PG", args, - "ID", sam_hdr_PG_ID(sh, name), - "PN", name, - "PP", sh->pg[end[i]].name, - NULL)) { - free(end); - return -1; - } - } - - free(end); - } else { - if (-1 == sam_hdr_vadd(sh, "PG", args, - "ID", sam_hdr_PG_ID(sh, name), - "PN", name, - NULL)) - return -1; - } - - //sam_hdr_dump(sh); - - return 0; -} - -/* - * A function to help with construction of CL tags in @PG records. - * Takes an argc, argv pair and returns a single space-separated string. - * This string should be deallocated by the calling function. - * - * Returns malloced char * on success - * NULL on failure - */ -char *stringify_argv(int argc, char *argv[]) { - char *str, *cp; - size_t nbytes = 1; - int i, j; - - /* Allocate */ - for (i = 0; i < argc; i++) { - nbytes += strlen(argv[i]) + 1; - } - if (!(str = malloc(nbytes))) - return NULL; - - /* Copy */ - cp = str; - for (i = 0; i < argc; i++) { - j = 0; - while (argv[i][j]) { - if (argv[i][j] == '\t') - *cp++ = ' '; - else - *cp++ = argv[i][j]; - j++; - } - *cp++ = ' '; - } - *cp++ = 0; - - return str; -} diff --git a/htslib/cram/sam_header.h b/htslib/cram/sam_header.h deleted file mode 100644 index 8e0929e..0000000 --- a/htslib/cram/sam_header.h +++ /dev/null @@ -1,444 +0,0 @@ -/* -Copyright (c) 2013-2014 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/*! \file - * SAM header parsing. - * - * These functions can be shared between SAM, BAM and CRAM file - * formats as all three internally use the same string encoding for - * header fields. - */ - -/* - * TODO. - * - * - Sort order (parse to struct, enum type, updating funcs) - * - Removal of lines. - * - Updating of lines - */ - -#ifndef _SAM_HDR_H_ -#define _SAM_HDR_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include - -#include "cram/string_alloc.h" -#include "cram/pooled_alloc.h" - -#include "htslib/khash.h" -#include "htslib/kstring.h" - -// For structure assignment. Eg kstring_t s = KS_INITIALIZER; -#define KS_INITIALIZER {0,0,0} - -// For initialisation elsewhere. Eg KS_INIT(x->str); -#define KS_INIT(ks) ((ks)->l = 0, (ks)->m = 0, (ks)->s = NULL) - -// Frees the string subfield only. Assumes 's' itself is static. -#define KS_FREE(ks) do { if ((ks)->s) free((ks)->s); } while(0) - -/* - * Proposed new SAM header parsing - -1 @SQ ID:foo LN:100 -2 @SQ ID:bar LN:200 -3 @SQ ID:ram LN:300 UR:xyz -4 @RG ID:r ... -5 @RG ID:s ... - -Hash table for 2-char @keys without dup entries. -If dup lines, we form a circular linked list. Ie hash keys = {RG, SQ}. - -HASH("SQ")--\ - | - (3) <-> 1 <-> 2 <-> 3 <-> (1) - -HASH("RG")--\ - | - (5) <-> 4 <-> 5 <-> (4) - -Items stored in the hash values also form their own linked lists: -Ie SQ->ID(foo)->LN(100) - SQ->ID(bar)->LN(200) - SQ->ID(ram)->LN(300)->UR(xyz) - RG->ID(r) - */ - -/*! A single key:value pair on a header line - * - * These form a linked list and hold strings. The strings are - * allocated from a string_alloc_t pool referenced in the master - * SAM_hdr structure. Do not attempt to free, malloc or manipulate - * these strings directly. - */ -typedef struct SAM_hdr_tag_s { - struct SAM_hdr_tag_s *next; - char *str; - int len; -} SAM_hdr_tag; - -/*! The parsed version of the SAM header string. - * - * Each header type (SQ, RG, HD, etc) points to its own SAM_hdr_type - * struct via the main hash table h in the SAM_hdr struct. - * - * These in turn consist of circular bi-directional linked lists (ie - * rings) to hold the multiple instances of the same header type - * code. For example if we have 5 \@SQ lines the primary hash table - * will key on \@SQ pointing to the first SAM_hdr_type and that in turn - * will be part of a ring of 5 elements. - * - * For each SAM_hdr_type structure we also point to a SAM_hdr_tag - * structure which holds the tokenised attributes; the tab separated - * key:value pairs per line. - */ -typedef struct SAM_hdr_item_s { - struct SAM_hdr_item_s *next; // cirular - struct SAM_hdr_item_s *prev; - SAM_hdr_tag *tag; // first tag - int order; // 0 upwards -} SAM_hdr_type; - -/*! Parsed \@SQ lines */ -typedef struct { - char *name; - uint32_t len; - SAM_hdr_type *ty; - SAM_hdr_tag *tag; -} SAM_SQ; - -/*! Parsed \@RG lines */ -typedef struct { - char *name; - SAM_hdr_type *ty; - SAM_hdr_tag *tag; - int name_len; - int id; // numerical ID -} SAM_RG; - -/*! Parsed \@PG lines */ -typedef struct { - char *name; - SAM_hdr_type *ty; - SAM_hdr_tag *tag; - int name_len; - int id; // numerical ID - int prev_id; // -1 if none -} SAM_PG; - -KHASH_MAP_INIT_INT(sam_hdr, SAM_hdr_type*) -KHASH_MAP_INIT_STR(m_s2i, int) - -/*! Primary structure for header manipulation - * - * The initial header text is held in the text kstring_t, but is also - * parsed out into SQ, RG and PG arrays. These have a hash table - * associated with each to allow lookup by ID or SN fields instead of - * their numeric array indices. Additionally PG has an array to hold - * the linked list start points (the last in a PP chain). - * - * Use the appropriate sam_hdr_* functions to edit the header, and - * call sam_hdr_rebuild() any time the textual form needs to be - * updated again. - */ -typedef struct { - kstring_t text; //!< concatenated text, indexed by SAM_hdr_tag - khash_t(sam_hdr) *h; - string_alloc_t *str_pool; //!< Pool of SAM_hdr_tag->str strings - pool_alloc_t *type_pool;//!< Pool of SAM_hdr_type structs - pool_alloc_t *tag_pool; //!< Pool of SAM_hdr_tag structs - - // @SQ lines / references - int nref; //!< Number of \@SQ lines - SAM_SQ *ref; //!< Array of parsed \@SQ lines - khash_t(m_s2i) *ref_hash; //!< Maps SQ SN field to sq[] index - - // @RG lines / read-groups - int nrg; //!< Number of \@RG lines - SAM_RG *rg; //!< Array of parsed \@RG lines - khash_t(m_s2i) *rg_hash; //!< Maps RG ID field to rg[] index - - // @PG lines / programs - int npg; //!< Number of \@PG lines - int npg_end; //!< Number of terminating \@PG lines - int npg_end_alloc; //!< Size of pg_end field - SAM_PG *pg; //!< Array of parsed \@PG lines - khash_t(m_s2i) *pg_hash; //!< Maps PG ID field to pg[] index - int *pg_end; //!< \@PG chain termination IDs - - // @cond internal - char ID_buf[1024]; // temporary buffer - int ID_cnt; - int ref_count; // number of uses of this SAM_hdr - // @endcond -} SAM_hdr; - -/*! Creates an empty SAM header, ready to be populated. - * - * @return - * Returns a SAM_hdr struct on success (free with sam_hdr_free()) - * NULL on failure - */ -SAM_hdr *sam_hdr_new(void); - -/*! Tokenises a SAM header into a hash table. - * - * Also extracts a few bits on specific data types, such as @RG lines. - * - * @return - * Returns a SAM_hdr struct on success (free with sam_hdr_free()); - * NULL on failure - */ -SAM_hdr *sam_hdr_parse_(const char *hdr, int len); - - -/*! Produces a duplicate copy of hdr and returns it. - * @return - * Returns NULL on failure - */ -SAM_hdr *sam_hdr_dup(SAM_hdr *hdr); - - -/*! Increments a reference count on hdr. - * - * This permits multiple files to share the same header, all calling - * sam_hdr_free when done, without causing errors for other open files. - */ -void sam_hdr_incr_ref(SAM_hdr *hdr); - - -/*! Increments a reference count on hdr. - * - * This permits multiple files to share the same header, all calling - * sam_hdr_free when done, without causing errors for other open files. - * - * If the reference count hits zero then the header is automatically - * freed. This makes it a synonym for sam_hdr_free(). - */ -void sam_hdr_decr_ref(SAM_hdr *hdr); - - -/*! Deallocates all storage used by a SAM_hdr struct. - * - * This also decrements the header reference count. If after decrementing - * it is still non-zero then the header is assumed to be in use by another - * caller and the free is not done. - * - * This is a synonym for sam_hdr_dec_ref(). - */ -void sam_hdr_free(SAM_hdr *hdr); - -/*! Returns the current length of the SAM_hdr in text form. - * - * Call sam_hdr_rebuild() first if editing has taken place. - */ -int sam_hdr_length(SAM_hdr *hdr); - -/*! Returns the string form of the SAM_hdr. - * - * Call sam_hdr_rebuild() first if editing has taken place. - */ -char *sam_hdr_str(SAM_hdr *hdr); - -/*! Appends a formatted line to an existing SAM header. - * - * Line is a full SAM header record, eg "@SQ\tSN:foo\tLN:100", with - * optional new-line. If it contains more than 1 line then multiple lines - * will be added in order. - * - * Len is the length of the text data, or 0 if unknown (in which case - * it should be null terminated). - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int sam_hdr_add_lines(SAM_hdr *sh, const char *lines, int len); - -/*! Adds a single line to a SAM header. - * - * Specify type and one or more key,value pairs, ending with the NULL key. - * Eg. sam_hdr_add(h, "SQ", "ID", "foo", "LN", "100", NULL). - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int sam_hdr_add(SAM_hdr *sh, const char *type, ...); - -/*! Adds a single line to a SAM header. - * - * This is much like sam_hdr_add() but with the additional va_list - * argument. This is followed by specifying type and one or more - * key,value pairs, ending with the NULL key. - * - * Eg. sam_hdr_vadd(h, "SQ", args, "ID", "foo", "LN", "100", NULL). - * - * The purpose of the additional va_list parameter is to permit other - * varargs functions to call this while including their own additional - * parameters; an example is in sam_hdr_add_PG(). - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int sam_hdr_vadd(SAM_hdr *sh, const char *type, va_list ap, ...); - -/*! - * @return - * Returns the first header item matching 'type'. If ID is non-NULL it checks - * for the tag ID: and compares against the specified ID. - * - * Returns NULL if no type/ID is found - */ -SAM_hdr_type *sam_hdr_find(SAM_hdr *hdr, char *type, - char *ID_key, char *ID_value); - -/*! - * - * As per SAM_hdr_type, but returns a complete line of formatted text - * for a specific head type/ID combination. If ID is NULL then it returns - * the first line of the specified type. - * - * The returned string is malloced and should be freed by the calling - * function with free(). - * - * @return - * Returns NULL if no type/ID is found. - */ -char *sam_hdr_find_line(SAM_hdr *hdr, char *type, - char *ID_key, char *ID_value); - -/*! Looks for a specific key in a single sam header line. - * - * If prev is non-NULL it also fills this out with the previous tag, to - * permit use in key removal. *prev is set to NULL when the tag is the first - * key in the list. When a tag isn't found, prev (if non NULL) will be the last - * tag in the existing list. - * - * @return - * Returns the tag pointer on success; - * NULL on failure - */ -SAM_hdr_tag *sam_hdr_find_key(SAM_hdr *sh, - SAM_hdr_type *type, - char *key, - SAM_hdr_tag **prev); - -/*! Adds or updates tag key,value pairs in a header line. - * - * Eg for adding M5 tags to @SQ lines or updating sort order for the - * @HD line (although use the sam_hdr_sort_order() function for - * HD manipulation, which is a wrapper around this funuction). - * - * Specify multiple key,value pairs ending in NULL. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int sam_hdr_update(SAM_hdr *hdr, SAM_hdr_type *type, ...); - -/*! Reconstructs the kstring from the header hash table. - * @return - * Returns 0 on success; - * -1 on failure - */ -int sam_hdr_rebuild(SAM_hdr *hdr); - -/*! Looks up a reference sequence by name and returns the numerical ID. - * @return - * Returns -1 if unknown reference. - */ -int sam_hdr_name2ref(SAM_hdr *hdr, const char *ref); - -/*! Looks up a read-group by name and returns a pointer to the start of the - * associated tag list. - * - * @return - * Returns NULL on failure - */ -SAM_RG *sam_hdr_find_rg(SAM_hdr *hdr, const char *rg); - -/*! Fixes any PP links in @PG headers. - * - * If the entries are in order then this doesn't need doing, but incase - * our header is out of order this goes through the sh->pg[] array - * setting the prev_id field. - * - * @return - * Returns 0 on sucess; - * -1 on failure (indicating broken PG/PP records) - */ -int sam_hdr_link_pg(SAM_hdr *hdr); - - -/*! Add an @PG line. - * - * If we wish complete control over this use sam_hdr_add() directly. This - * function uses that, but attempts to do a lot of tedious house work for - * you too. - * - * - It will generate a suitable ID if the supplied one clashes. - * - It will generate multiple @PG records if we have multiple PG chains. - * - * Call it as per sam_hdr_add() with a series of key,value pairs ending - * in NULL. - * - * @return - * Returns 0 on success; - * -1 on failure - */ -int sam_hdr_add_PG(SAM_hdr *sh, const char *name, ...); - -/*! - * A function to help with construction of CL tags in @PG records. - * Takes an argc, argv pair and returns a single space-separated string. - * This string should be deallocated by the calling function. - * - * @return - * Returns malloced char * on success; - * NULL on failure - */ -char *stringify_argv(int argc, char *argv[]); - -#ifdef __cplusplus -} -#endif - -#endif /* _SAM_HDR_H_ */ diff --git a/htslib/cram/string_alloc.c b/htslib/cram/string_alloc.c deleted file mode 100644 index d543e14..0000000 --- a/htslib/cram/string_alloc.c +++ /dev/null @@ -1,153 +0,0 @@ -/* -Copyright (c) 2010 Genome Research Ltd. -Author: Andrew Whitwham - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -/* - A pooled string allocator intended to cut down on the - memory overhead of many small string allocations. - - Andrew Whitwham, September 2010. -*/ - -#include -#include -#include - -#include "string_alloc.h" - -#define MIN_STR_SIZE 1024 - - -/* creates the string pool. max_length is the initial size - a single string can be. Tha max_length can grow as - needed */ - -string_alloc_t *string_pool_create(size_t max_length) { - string_alloc_t *a_str; - - if (NULL == (a_str = (string_alloc_t *)malloc(sizeof(*a_str)))) { - return NULL; - } - - if (max_length < MIN_STR_SIZE) max_length = MIN_STR_SIZE; - - a_str->nstrings = 0; - a_str->max_length = max_length; - a_str->strings = NULL; - - return a_str; -} - - -/* internal function to do the actual memory allocation */ - -static string_t *new_string_pool(string_alloc_t *a_str) { - string_t *str; - - str = realloc(a_str->strings, (a_str->nstrings + 1) * sizeof(*a_str->strings)); - - if (NULL == str) return NULL; - - a_str->strings = str; - str = &a_str->strings[a_str->nstrings]; - - str->str = malloc(a_str->max_length);; - - if (NULL == str->str) return NULL; - - str->used = 0; - a_str->nstrings++; - - return str; -} - - -/* free allocated memory */ - -void string_pool_destroy(string_alloc_t *a_str) { - size_t i; - - for (i = 0; i < a_str->nstrings; i++) { - free(a_str->strings[i].str); - } - - free(a_str->strings); - free(a_str); -} - - -/* allocate space for a string */ - -char *string_alloc(string_alloc_t *a_str, size_t length) { - string_t *str; - char *ret; - - if (length <= 0) return NULL; - - // add to last string pool if we have space - if (a_str->nstrings) { - str = &a_str->strings[a_str->nstrings - 1]; - - if (str->used + length < a_str->max_length) { - ret = str->str + str->used; - str->used += length; - return ret; - } - } - - // increase the max length if needs be - if (length > a_str->max_length) a_str->max_length = length; - - // need a new string pool - str = new_string_pool(a_str); - - if (NULL == str) return NULL; - - str->used = length; - return str->str; -} - - -/* equivalent to strdup */ - -char *string_dup(string_alloc_t *a_str, char *instr) { - return string_ndup(a_str, instr, strlen(instr)); -} - -char *string_ndup(string_alloc_t *a_str, char *instr, size_t len) { - char *str = string_alloc(a_str, len + 1); - - if (NULL == str) return NULL; - - strncpy(str, instr, len); - str[len] = 0; - - return str; -} diff --git a/htslib/cram/string_alloc.h b/htslib/cram/string_alloc.h deleted file mode 100644 index 71ae26d..0000000 --- a/htslib/cram/string_alloc.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright (c) 2010 Genome Research Ltd. -Author: Andrew Whitwham - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _STRING_ALLOC_H_ -#define _STRING_ALLOC_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * A pooled string allocator intended to cut down on the - * memory overhead of many small string allocations. - * - * Andrew Whitwham, September 2010. - */ - -typedef struct { - char *str; - size_t used; -} string_t; - -typedef struct { - size_t max_length; - size_t nstrings; - string_t *strings; -} string_alloc_t; - -string_alloc_t *string_pool_create(size_t max_length); -void string_pool_destroy(string_alloc_t *a_str); -char *string_alloc(string_alloc_t *a_str, size_t length); -char *string_dup(string_alloc_t *a_str, char *instr); -char *string_ndup(string_alloc_t *a_str, char *instr, size_t len); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/htslib/cram/thread_pool.c b/htslib/cram/thread_pool.c deleted file mode 100644 index dea9e90..0000000 --- a/htslib/cram/thread_pool.c +++ /dev/null @@ -1,811 +0,0 @@ -/* -Copyright (c) 2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#include - -#include -#include -#include -#include -#include -#include - -#include "cram/thread_pool.h" - -//#define DEBUG -//#define DEBUG_TIME - -#define IN_ORDER - -#ifdef DEBUG -static int worker_id(t_pool *p) { - int i; - pthread_t s = pthread_self(); - for (i = 0; i < p->tsize; i++) { - if (pthread_equal(s, p->t[i].tid)) - return i; - } - return -1; -} -#endif - -/* ---------------------------------------------------------------------------- - * A queue to hold results from the thread pool. - * - * Each thread pool may have jobs of multiple types being queued up and - * interleaved, so we allow several results queue per pool. - * - * The jobs themselves are expected to push their results onto their - * appropriate results queue. - */ - -/* - * Adds a result to the end of the result queue. - * - * Returns 0 on success; - * -1 on failure - */ -static int t_pool_add_result(t_pool_job *j, void *data) { - t_results_queue *q = j->q; - t_pool_result *r; - -#ifdef DEBUG - fprintf(stderr, "%d: Adding resulting to queue %p, serial %d\n", - worker_id(j->p), q, j->serial); -#endif - - /* No results queue is fine if we don't want any results back */ - if (!q) - return 0; - - if (!(r = malloc(sizeof(*r)))) - return -1; - - r->next = NULL; - r->data = data; - r->serial = j->serial; - - pthread_mutex_lock(&q->result_m); - if (q->result_tail) { - q->result_tail->next = r; - q->result_tail = r; - } else { - q->result_head = q->result_tail = r; - } - q->queue_len++; - q->pending--; - -#ifdef DEBUG - fprintf(stderr, "%d: Broadcasting result_avail (id %d)\n", - worker_id(j->p), r->serial); -#endif - pthread_cond_signal(&q->result_avail_c); -#ifdef DEBUG - fprintf(stderr, "%d: Broadcast complete\n", worker_id(j->p)); -#endif - - pthread_mutex_unlock(&q->result_m); - - return 0; -} - -/* Core of t_pool_next_result() */ -static t_pool_result *t_pool_next_result_locked(t_results_queue *q) { - t_pool_result *r, *last; - - for (last = NULL, r = q->result_head; r; last = r, r = r->next) { - if (r->serial == q->next_serial) - break; - } - - if (r) { - if (q->result_head == r) - q->result_head = r->next; - else - last->next = r->next; - - if (q->result_tail == r) - q->result_tail = last; - - if (!q->result_head) - q->result_tail = NULL; - - q->next_serial++; - q->queue_len--; - } - - return r; -} - -/* - * Pulls a result off the head of the result queue. Caller should - * free it (and any internals as appropriate) after use. This doesn't - * wait for a result to be present. - * - * Results will be returned in strict order. - * - * Returns t_pool_result pointer if a result is ready. - * NULL if not. - */ -t_pool_result *t_pool_next_result(t_results_queue *q) { - t_pool_result *r; - -#ifdef DEBUG - fprintf(stderr, "Requesting next result on queue %p\n", q); -#endif - - pthread_mutex_lock(&q->result_m); - r = t_pool_next_result_locked(q); - pthread_mutex_unlock(&q->result_m); - -#ifdef DEBUG - fprintf(stderr, "(q=%p) Found %p\n", q, r); -#endif - - return r; -} - -t_pool_result *t_pool_next_result_wait(t_results_queue *q) { - t_pool_result *r; - -#ifdef DEBUG - fprintf(stderr, "Waiting for result %d...\n", q->next_serial); -#endif - - pthread_mutex_lock(&q->result_m); - while (!(r = t_pool_next_result_locked(q))) { - /* Possible race here now avoided via _locked() call, but incase... */ - struct timeval now; - struct timespec timeout; - - gettimeofday(&now, NULL); - timeout.tv_sec = now.tv_sec + 10; - timeout.tv_nsec = now.tv_usec * 1000; - - pthread_cond_timedwait(&q->result_avail_c, &q->result_m, &timeout); - } - pthread_mutex_unlock(&q->result_m); - - return r; -} - -/* - * Returns true if there are no items on the finished results queue and - * also none still pending. - */ -int t_pool_results_queue_empty(t_results_queue *q) { - int empty; - - pthread_mutex_lock(&q->result_m); - empty = q->queue_len == 0 && q->pending == 0; - pthread_mutex_unlock(&q->result_m); - - return empty; -} - - -/* - * Returns the number of completed jobs on the results queue. - */ -int t_pool_results_queue_len(t_results_queue *q) { - int len; - - pthread_mutex_lock(&q->result_m); - len = q->queue_len; - pthread_mutex_unlock(&q->result_m); - - return len; -} - -int t_pool_results_queue_sz(t_results_queue *q) { - int len; - - pthread_mutex_lock(&q->result_m); - len = q->queue_len + q->pending; - pthread_mutex_unlock(&q->result_m); - - return len; -} - -/* - * Frees a result 'r' and if free_data is true also frees - * the internal r->data result too. - */ -void t_pool_delete_result(t_pool_result *r, int free_data) { - if (!r) - return; - - if (free_data && r->data) - free(r->data); - - free(r); -} - -/* - * Initialises a results queue. - * - * Results queue pointer on success; - * NULL on failure - */ -t_results_queue *t_results_queue_init(void) { - t_results_queue *q = malloc(sizeof(*q)); - - pthread_mutex_init(&q->result_m, NULL); - pthread_cond_init(&q->result_avail_c, NULL); - - q->result_head = NULL; - q->result_tail = NULL; - q->next_serial = 0; - q->curr_serial = 0; - q->queue_len = 0; - q->pending = 0; - - return q; -} - -/* Deallocates memory for a results queue */ -void t_results_queue_destroy(t_results_queue *q) { -#ifdef DEBUG - fprintf(stderr, "Destroying results queue %p\n", q); -#endif - - if (!q) - return; - - pthread_mutex_destroy(&q->result_m); - pthread_cond_destroy(&q->result_avail_c); - - memset(q, 0xbb, sizeof(*q)); - free(q); - -#ifdef DEBUG - fprintf(stderr, "Destroyed results queue %p\n", q); -#endif -} - -/* ---------------------------------------------------------------------------- - * The thread pool. - */ - -#define TDIFF(t2,t1) ((t2.tv_sec-t1.tv_sec)*1000000 + t2.tv_usec-t1.tv_usec) - -/* - * A worker thread. - * - * Each thread waits for the pool to be non-empty. - * As soon as this applies, one of them succeeds in getting the lock - * and then executes the job. - */ -static void *t_pool_worker(void *arg) { - t_pool_worker_t *w = (t_pool_worker_t *)arg; - t_pool *p = w->p; - t_pool_job *j; -#ifdef DEBUG_TIME - struct timeval t1, t2, t3; -#endif - - for (;;) { - // Pop an item off the pool queue -#ifdef DEBUG_TIME - gettimeofday(&t1, NULL); -#endif - - pthread_mutex_lock(&p->pool_m); - -#ifdef DEBUG_TIME - gettimeofday(&t2, NULL); - p->wait_time += TDIFF(t2,t1); - w->wait_time += TDIFF(t2,t1); -#endif - - // If there is something on the job list and a higher priority - // thread waiting, let it handle this instead. -// while (p->head && p->t_stack_top != -1 && p->t_stack_top < w->idx) { -// pthread_mutex_unlock(&p->pool_m); -// pthread_cond_signal(&p->t[p->t_stack_top].pending_c); -// pthread_mutex_lock(&p->pool_m); -// } - - while (!p->head && !p->shutdown) { - p->nwaiting++; - - if (p->njobs == 0) - pthread_cond_signal(&p->empty_c); -#ifdef DEBUG_TIME - gettimeofday(&t2, NULL); -#endif - -#ifdef IN_ORDER - // Push this thread to the top of the waiting stack - if (p->t_stack_top == -1 || p->t_stack_top > w->idx) - p->t_stack_top = w->idx; - - p->t_stack[w->idx] = 1; - pthread_cond_wait(&w->pending_c, &p->pool_m); - p->t_stack[w->idx] = 0; - - /* Find new t_stack_top */ - { - int i; - p->t_stack_top = -1; - for (i = 0; i < p->tsize; i++) { - if (p->t_stack[i]) { - p->t_stack_top = i; - break; - } - } - } -#else - pthread_cond_wait(&p->pending_c, &p->pool_m); -#endif - -#ifdef DEBUG_TIME - gettimeofday(&t3, NULL); - p->wait_time += TDIFF(t3,t2); - w->wait_time += TDIFF(t3,t2); -#endif - p->nwaiting--; - } - - if (p->shutdown) { -#ifdef DEBUG_TIME - p->total_time += TDIFF(t3,t1); -#endif -#ifdef DEBUG - fprintf(stderr, "%d: Shutting down\n", worker_id(p)); -#endif - pthread_mutex_unlock(&p->pool_m); - pthread_exit(NULL); - } - - j = p->head; - if (!(p->head = j->next)) - p->tail = NULL; - - if (p->njobs-- >= p->qsize) - pthread_cond_signal(&p->full_c); - - if (p->njobs == 0) - pthread_cond_signal(&p->empty_c); - - pthread_mutex_unlock(&p->pool_m); - - // We have job 'j' - now execute it. - t_pool_add_result(j, j->func(j->arg)); -#ifdef DEBUG_TIME - pthread_mutex_lock(&p->pool_m); - gettimeofday(&t3, NULL); - p->total_time += TDIFF(t3,t1); - pthread_mutex_unlock(&p->pool_m); -#endif - memset(j, 0xbb, sizeof(*j)); - free(j); - } - - return NULL; -} - -/* - * Creates a worker pool of length qsize with tsize worker threads. - * - * Returns pool pointer on success; - * NULL on failure - */ -t_pool *t_pool_init(int qsize, int tsize) { - int i; - t_pool *p = malloc(sizeof(*p)); - p->qsize = qsize; - p->tsize = tsize; - p->njobs = 0; - p->nwaiting = 0; - p->shutdown = 0; - p->head = p->tail = NULL; - p->t_stack = NULL; -#ifdef DEBUG_TIME - p->total_time = p->wait_time = 0; -#endif - - p->t = malloc(tsize * sizeof(p->t[0])); - - pthread_mutex_init(&p->pool_m, NULL); - pthread_cond_init(&p->empty_c, NULL); - pthread_cond_init(&p->full_c, NULL); - - pthread_mutex_lock(&p->pool_m); - -#ifdef IN_ORDER - if (!(p->t_stack = malloc(tsize * sizeof(*p->t_stack)))) - return NULL; - p->t_stack_top = -1; - - for (i = 0; i < tsize; i++) { - t_pool_worker_t *w = &p->t[i]; - p->t_stack[i] = 0; - w->p = p; - w->idx = i; - w->wait_time = 0; - pthread_cond_init(&w->pending_c, NULL); - if (0 != pthread_create(&w->tid, NULL, t_pool_worker, w)) - return NULL; - } -#else - pthread_cond_init(&p->pending_c, NULL); - - for (i = 0; i < tsize; i++) { - t_pool_worker_t *w = &p->t[i]; - w->p = p; - w->idx = i; - pthread_cond_init(&w->pending_c, NULL); - if (0 != pthread_create(&w->tid, NULL, t_pool_worker, w)) - return NULL; - } -#endif - - pthread_mutex_unlock(&p->pool_m); - - return p; -} - -/* - * Adds an item to the work pool. - * - * FIXME: Maybe return 1,0,-1 and distinguish between job dispathed vs - * result returned. Ie rather than blocking on full queue we're permitted - * to return early on "result available" event too. - * Caller would then have a while loop around t_pool_dispatch. - * Or, return -1 and set errno to EAGAIN to indicate job not yet submitted. - * - * Returns 0 on success - * -1 on failure - */ -int t_pool_dispatch(t_pool *p, t_results_queue *q, - void *(*func)(void *arg), void *arg) { - t_pool_job *j = malloc(sizeof(*j)); - - if (!j) - return -1; - j->func = func; - j->arg = arg; - j->next = NULL; - j->p = p; - j->q = q; - if (q) { - pthread_mutex_lock(&q->result_m); - j->serial = q->curr_serial++; - q->pending++; - pthread_mutex_unlock(&q->result_m); - } else { - j->serial = 0; - } - -#ifdef DEBUG - fprintf(stderr, "Dispatching job %p for queue %p, serial %d\n", j, q, j->serial); -#endif - - pthread_mutex_lock(&p->pool_m); - - // Check if queue is full - while (p->njobs >= p->qsize) - pthread_cond_wait(&p->full_c, &p->pool_m); - - p->njobs++; - - if (p->tail) { - p->tail->next = j; - p->tail = j; - } else { - p->head = p->tail = j; - } - - // Let a worker know we have data. -#ifdef IN_ORDER - if (p->t_stack_top >= 0 && p->njobs > p->tsize - p->nwaiting) - pthread_cond_signal(&p->t[p->t_stack_top].pending_c); -#else - pthread_cond_signal(&p->pending_c); -#endif - pthread_mutex_unlock(&p->pool_m); - -#ifdef DEBUG - fprintf(stderr, "Dispatched (serial %d)\n", j->serial); -#endif - - return 0; -} - -/* - * As above but optional non-block flag. - * - * nonblock 0 => block if input queue is full - * nonblock +1 => don't block if input queue is full, but do not add task - * nonblock -1 => add task regardless of whether queue is full (over-size) - */ -int t_pool_dispatch2(t_pool *p, t_results_queue *q, - void *(*func)(void *arg), void *arg, int nonblock) { - t_pool_job *j; - -#ifdef DEBUG - fprintf(stderr, "Dispatching job for queue %p, serial %d\n", q, q->curr_serial); -#endif - - pthread_mutex_lock(&p->pool_m); - - if (p->njobs >= p->qsize && nonblock == 1) { - pthread_mutex_unlock(&p->pool_m); - errno = EAGAIN; - return -1; - } - - if (!(j = malloc(sizeof(*j)))) - return -1; - j->func = func; - j->arg = arg; - j->next = NULL; - j->p = p; - j->q = q; - if (q) { - pthread_mutex_lock(&q->result_m); - j->serial = q->curr_serial; - pthread_mutex_unlock(&q->result_m); - } else { - j->serial = 0; - } - - if (q) { - pthread_mutex_lock(&q->result_m); - q->curr_serial++; - q->pending++; - pthread_mutex_unlock(&q->result_m); - } - - // Check if queue is full - if (nonblock == 0) - while (p->njobs >= p->qsize) - pthread_cond_wait(&p->full_c, &p->pool_m); - - p->njobs++; - -// if (q->curr_serial % 100 == 0) -// fprintf(stderr, "p->njobs = %d p->qsize = %d\n", p->njobs, p->qsize); - - if (p->tail) { - p->tail->next = j; - p->tail = j; - } else { - p->head = p->tail = j; - } - -#ifdef DEBUG - fprintf(stderr, "Dispatched (serial %d)\n", j->serial); -#endif - - // Let a worker know we have data. -#ifdef IN_ORDER - // Keep incoming queue at 1 per running thread, so there is always - // something waiting when they end their current task. If we go above - // this signal to start more threads (if available). This has the effect - // of concentrating jobs to fewer cores when we are I/O bound, which in - // turn benefits systems with auto CPU frequency scaling. - if (p->t_stack_top >= 0 && p->njobs > p->tsize - p->nwaiting) - pthread_cond_signal(&p->t[p->t_stack_top].pending_c); -#else - pthread_cond_signal(&p->pending_c); -#endif - - pthread_mutex_unlock(&p->pool_m); - - return 0; -} - -/* - * Flushes the pool, but doesn't exit. This simply drains the queue and - * ensures all worker threads have finished their current task. - * - * Returns 0 on success; - * -1 on failure - */ -int t_pool_flush(t_pool *p) { - int i; - -#ifdef DEBUG - fprintf(stderr, "Flushing pool %p\n", p); -#endif - - // Drains the queue - pthread_mutex_lock(&p->pool_m); - - // Wake up everything for the final sprint! - for (i = 0; i < p->tsize; i++) - if (p->t_stack[i]) - pthread_cond_signal(&p->t[i].pending_c); - - while (p->njobs || p->nwaiting != p->tsize) - pthread_cond_wait(&p->empty_c, &p->pool_m); - - pthread_mutex_unlock(&p->pool_m); - -#ifdef DEBUG - fprintf(stderr, "Flushed complete for pool %p, njobs=%d, nwaiting=%d\n", - p, p->njobs, p->nwaiting); -#endif - - return 0; -} - -/* - * Destroys a thread pool. If 'kill' is true the threads are terminated now, - * otherwise they are joined into the main thread so they will finish their - * current work load. - * - * Use t_pool_destroy(p,0) after a t_pool_flush(p) on a normal shutdown or - * t_pool_destroy(p,1) to quickly exit after a fatal error. - */ -void t_pool_destroy(t_pool *p, int kill) { - int i; - -#ifdef DEBUG - fprintf(stderr, "Destroying pool %p, kill=%d\n", p, kill); -#endif - - /* Send shutdown message to worker threads */ - if (!kill) { - pthread_mutex_lock(&p->pool_m); - p->shutdown = 1; - -#ifdef DEBUG - fprintf(stderr, "Sending shutdown request\n"); -#endif - -#ifdef IN_ORDER - for (i = 0; i < p->tsize; i++) - pthread_cond_signal(&p->t[i].pending_c); -#else - pthread_cond_broadcast(&p->pending_c); -#endif - pthread_mutex_unlock(&p->pool_m); - -#ifdef DEBUG - fprintf(stderr, "Shutdown complete\n"); -#endif - for (i = 0; i < p->tsize; i++) - pthread_join(p->t[i].tid, NULL); - } else { - for (i = 0; i < p->tsize; i++) - pthread_kill(p->t[i].tid, SIGINT); - } - - pthread_mutex_destroy(&p->pool_m); - pthread_cond_destroy(&p->empty_c); - pthread_cond_destroy(&p->full_c); -#ifdef IN_ORDER - for (i = 0; i < p->tsize; i++) - pthread_cond_destroy(&p->t[i].pending_c); -#else - pthread_cond_destroy(&p->pending_c); -#endif - -#ifdef DEBUG_TIME - fprintf(stderr, "Total time=%f\n", p->total_time / 1000000.0); - fprintf(stderr, "Wait time=%f\n", p->wait_time / 1000000.0); - fprintf(stderr, "%d%% utilisation\n", - (int)(100 - ((100.0 * p->wait_time) / p->total_time + 0.5))); - for (i = 0; i < p->tsize; i++) - fprintf(stderr, "%d: Wait time=%f\n", i, - p->t[i].wait_time / 1000000.0); -#endif - - if (p->t_stack) - free(p->t_stack); - - free(p->t); - free(p); - -#ifdef DEBUG - fprintf(stderr, "Destroyed pool %p\n", p); -#endif -} - - -/*----------------------------------------------------------------------------- - * Test app. - */ - -#ifdef TEST_MAIN - -#include -#include - -void *doit(void *arg) { - int i, k, x = 0; - int job = *(int *)arg; - int *res; - - printf("Worker: execute job %d\n", job); - - usleep(random() % 1000000); // to coerce job completion out of order - if (0) { - for (k = 0; k < 100; k++) { - for (i = 0; i < 100000; i++) { - x++; - x += x * sin(i); - x += x * cos(x); - } - } - x *= 100; - x += job; - } else { - x = job*job; - } - - printf("Worker: job %d terminating, x=%d\n", job, x); - - free(arg); - - res = malloc(sizeof(*res)); - *res = x; - - return res; -} - -#define NTHREADS 8 - -int main(int argc, char **argv) { - t_pool *p = t_pool_init(NTHREADS*2, NTHREADS); - t_results_queue *q = t_results_queue_init(); - int i; - t_pool_result *r; - - // Dispatch jobs - for (i = 0; i < 20; i++) { - int *ip = malloc(sizeof(*ip)); - *ip = i; - printf("Submitting %d\n", i); - t_pool_dispatch(p, q, doit, ip); - - // Check for results - if ((r = t_pool_next_result(q))) { - printf("RESULT: %d\n", *(int *)r->data); - t_pool_delete_result(r, 1); - } - } - - t_pool_flush(p); - - while ((r = t_pool_next_result(q))) { - printf("RESULT: %d\n", *(int *)r->data); - t_pool_delete_result(r, 1); - } - - t_pool_destroy(p, 0); - t_results_queue_destroy(q); - - return 0; -} -#endif diff --git a/htslib/cram/thread_pool.h b/htslib/cram/thread_pool.h deleted file mode 100644 index d26c5d9..0000000 --- a/htslib/cram/thread_pool.h +++ /dev/null @@ -1,210 +0,0 @@ -/* -Copyright (c) 2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * This file implements a thread pool for multi-threading applications. - * It consists of two distinct interfaces: thread pools an results queues. - * - * The pool of threads is given a function pointer and void* data to pass in. - * This means the pool can run jobs of multiple types, albeit first come - * first served with no job scheduling. - * - * Upon completion, the return value from the function pointer is added to - * a results queue. We may have multiple queues in use for the one pool. - * - * An example: reading from BAM and writing to CRAM with 10 threads. We'll - * have a pool of 10 threads and two results queues holding decoded BAM blocks - * and encoded CRAM blocks respectively. - */ - -#ifndef _THREAD_POOL_H_ -#define _THREAD_POOL_H_ - -#include - -struct t_pool; -struct t_results_queue; - -typedef struct t_pool_job { - void *(*func)(void *arg); - void *arg; - struct t_pool_job *next; - - struct t_pool *p; - struct t_results_queue *q; - int serial; -} t_pool_job; - -typedef struct t_res { - struct t_res *next; - int serial; // sequential number for ordering - void *data; // result itself -} t_pool_result; - -struct t_pool; - -typedef struct { - struct t_pool *p; - int idx; - pthread_t tid; - pthread_cond_t pending_c; - long long wait_time; -} t_pool_worker_t; - -typedef struct t_pool { - int qsize; // size of queue - int njobs; // pending job count - int nwaiting; // how many workers waiting for new jobs - int shutdown; // true if pool is being destroyed - - // queue of pending jobs - t_pool_job *head, *tail; - - // threads - int tsize; // maximum number of jobs - t_pool_worker_t *t; - - // Mutexes - pthread_mutex_t pool_m; // used when updating head/tail - - pthread_cond_t empty_c; - pthread_cond_t pending_c; // not empty - pthread_cond_t full_c; - - // array of worker IDs free - int *t_stack, t_stack_top; - - // Debugging to check wait time - long long total_time, wait_time; -} t_pool; - -typedef struct t_results_queue { - t_pool_result *result_head; - t_pool_result *result_tail; - int next_serial; - int curr_serial; - int queue_len; // number of items in queue - int pending; // number of pending items (in progress or in pool list) - pthread_mutex_t result_m; - pthread_cond_t result_avail_c; -} t_results_queue; - - -/* - * Creates a worker pool of length qsize with tsize worker threads. - * - * Returns pool pointer on success; - * NULL on failure - */ -t_pool *t_pool_init(int qsize, int tsize); - -/* - * Adds an item to the work pool. - * - * FIXME: Maybe return 1,0,-1 and distinguish between job dispathed vs - * result returned. Ie rather than blocking on full queue we're permitted - * to return early on "result available" event too. - * Caller would then have a while loop around t_pool_dispatch. - * Or, return -1 and set errno to E_AGAIN to indicate job not yet submitted. - * - * Returns 0 on success - * -1 on failure - */ -int t_pool_dispatch(t_pool *p, t_results_queue *q, - void *(*func)(void *arg), void *arg); -int t_pool_dispatch2(t_pool *p, t_results_queue *q, - void *(*func)(void *arg), void *arg, int nonblock); - -/* - * Flushes the pool, but doesn't exit. This simply drains the queue and - * ensures all worker threads have finished their current task. - * - * Returns 0 on success; - * -1 on failure - */ -int t_pool_flush(t_pool *p); - -/* - * Destroys a thread pool. If 'kill' is true the threads are terminated now, - * otherwise they are joined into the main thread so they will finish their - * current work load. - * - * Use t_pool_destroy(p,0) after a t_pool_flush(p) on a normal shutdown or - * t_pool_destroy(p,1) to quickly exit after a fatal error. - */ -void t_pool_destroy(t_pool *p, int kill); - -/* - * Pulls a result off the head of the result queue. Caller should - * free it (and any internals as appropriate) after use. This doesn't - * wait for a result to be present. - * - * Results will be returned in strict order. - * - * Returns t_pool_result pointer if a result is ready. - * NULL if not. - */ -t_pool_result *t_pool_next_result(t_results_queue *q); -t_pool_result *t_pool_next_result_wait(t_results_queue *q); - -/* - * Frees a result 'r' and if free_data is true also frees - * the internal r->data result too. - */ -void t_pool_delete_result(t_pool_result *r, int free_data); - -/* - * Initialises a results queue. - * - * Results queue pointer on success; - * NULL on failure - */ -t_results_queue *t_results_queue_init(void); - -/* Deallocates memory for a results queue */ -void t_results_queue_destroy(t_results_queue *q); - -/* - * Returns true if there are no items on the finished results queue and - * also none still pending. - */ -int t_pool_results_queue_empty(t_results_queue *q); - -/* - * Returns the number of completed jobs on the results queue. - */ -int t_pool_results_queue_len(t_results_queue *q); - -/* - * Returns the number of completed jobs plus the number queued up to run. - */ -int t_pool_results_queue_sz(t_results_queue *q); - -#endif /* _THREAD_POOL_H_ */ diff --git a/htslib/cram/vlen.c b/htslib/cram/vlen.c deleted file mode 100644 index e451bbd..0000000 --- a/htslib/cram/vlen.c +++ /dev/null @@ -1,432 +0,0 @@ -/* -Author: James Bonfield (jkb@sanger.ac.uk) - -Copyright (c) 1995-1996 MEDICAL RESEARCH COUNCIL -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1 Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2 Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3 Neither the name of the MEDICAL RESEARCH COUNCIL, THE LABORATORY OF -MOLECULAR BIOLOGY nor the names of its contributors may be used to endorse or -promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* -Copyright (c) 2004, 2009, 2011-2012 Genome Research Ltd. - -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include -#include -#include -#include - -#include "cram/vlen.h" -#include "cram/os.h" - -#ifndef MAX -#define MAX(a,b) ((a)>(b)?(a):(b)) -#endif - -#ifndef ABS -#define ABS(a) ((a)>0?(a):-(a)) -#endif - -/* #define DEBUG_printf(a,n) printf(a,n) */ -#define DEBUG_printf(a,n) - -/* - * vlen: 27/10/95 written by James Bonfield, jkb@mrc-lmb.cam.ac.uk - * - * Given sprintf style of arguments this routine returns the maximum - * size of buffer needed to allocate to use with sprintf. It errs on - * the side of caution by being simplistic in its approach: we assume - * all numbers are of maximum length. - * - * Handles the usual type conversions (%[%diuaxXcfeEgGpns]), but not - * the 'wide' character conversions (%C and %S). - * Precision is handled in the correct formats, including %*.* - * notations. - * Additionally, some of the more dubious (but probably illegal) cases - * are supported (eg "%10%" will expand to " %" on many - * systems). - * - * We also assume that the largest integer and larger pointer are 64 - * bits, which at least covers the machines we'll need it for. - */ -int flen(char *fmt, ...) -{ - va_list args; - - va_start(args, fmt); - return vflen(fmt, args); -} - -int vflen(char *fmt, va_list ap) -{ - int len = 0; - char *cp, c; - long long l; - int i; - double d; - - /* - * This code modifies 'ap', but we do not know if va_list is a structure - * or a pointer to an array so we do not know if it is a local variable - * or not. - * C99 gets around this by defining va_copy() to make copies of ap, but - * this does not exist on all systems. - * For now, I just assume that when va_list is a pointer the system also - * provides a va_copy macro to work around this problem. The only system - * I have seen needing this so far was Linux on AMD64. - */ -#if defined(HAVE_VA_COPY) - va_list ap_local; - va_copy(ap_local, ap); -# define ap ap_local -#endif - - for(cp = fmt; *cp; cp++) { - switch(*cp) { - - /* A format specifier */ - case '%': { - char *endp; - long conv_len1=0, conv_len2=0, conv_len=0; - signed int arg_size; - - /* Firstly, strip the modifier flags (+-#0 and [space]) */ - for(; (c=*++cp);) { - if ('#' == c) - len+=2; /* Worst case of "0x" */ - else if ('-' == c || '+' == c || ' ' == c) - len++; - else - break; - } - - /* Width specifier */ - l = strtol(cp, &endp, 10); - if (endp != cp) { - cp = endp; - conv_len = conv_len1 = l; - } else if (*cp == '*') { - conv_len = conv_len1 = (int)va_arg(ap, int); - cp++; - } - - /* Precision specifier */ - if ('.' == *cp) { - cp++; - conv_len2 = strtol(cp, &endp, 10); - if (endp != cp) { - cp = endp; - } else if (*cp == '*') { - conv_len2 = (int)va_arg(ap, int); - cp++; - } - conv_len = MAX(conv_len1, conv_len2); - } - - /* Short/long identifier */ - if ('h' == *cp) { - arg_size = -1; /* short */ - cp++; - } else if ('l' == *cp) { - arg_size = 1; /* long */ - cp++; - if ('l' == *cp) { - arg_size = 2; /* long long */ - cp++; - } - } else { - arg_size = 0; /* int */ - } - - /* The actual type */ - switch (*cp) { - case '%': - /* - * Not real ANSI I suspect, but we'll allow for the - * completely daft "%10%" example. - */ - len += MAX(conv_len1, 1); - break; - - case 'd': - case 'i': - case 'u': - case 'a': - case 'x': - case 'X': - /* Remember: char and short are sent as int on the stack */ - if (arg_size == -1) - l = (long)va_arg(ap, int); - else if (arg_size == 1) - l = va_arg(ap, long); - else if (arg_size == 2) - l = va_arg(ap, long long); - else - l = (long)va_arg(ap, int); - - DEBUG_printf("%d", l); - - /* - * No number can be more than 24 characters so we'll take - * the max of conv_len and 24 (23 is len(2^64) in octal). - * All that work above and we then go and estimate ;-), - * but it's needed incase someone does %500d. - */ - len += MAX(conv_len, 23); - break; - - case 'c': - i = va_arg(ap, int); - DEBUG_printf("%c", i); - /* - * Note that %10c and %.10c act differently. - * Besides, I think precision is not really allowed for %c. - */ - len += MAX(conv_len1, i>=0x80 ?MB_CUR_MAX :1); - break; - - case 'f': - d = va_arg(ap, double); - DEBUG_printf("%f", d); - /* - * Maybe "Inf" or "NaN", but we'll not worry about that. - * Again, err on side of caution and take max of conv_len - * and max length of a double. The worst case I can - * think of is 317 characters (-1[308 zeros].000000) - * without using precision codes. That's horrid. I - * cheat and either use 317 or 15 depending on how - * large the number is as I reckon 99% of floats - * aren't that long. - */ - l = (ABS(d) > 1000000) ? 317 : 15; - l = MAX(l, conv_len1 + 2); - if (conv_len2) l += conv_len2 - 6; - len += l; - break; - - case 'e': - case 'E': - case 'g': - case 'G': - d = va_arg(ap, double); - DEBUG_printf("%g", d); - /* - * Maybe "Inf" or "NaN", but we'll not worry about that - * Again, err on side of caution and take max of conv_len - * and max length of a double (which defaults to only - * '-' + 6 + '.' + 'E[+-]xxx' == 13. - */ - len += MAX(conv_len, 13); - break; - - case 'p': - l = (long)va_arg(ap, void *); - /* - * Max pointer is 64bits == 16 chars (on alpha), - * == 20 with + "0x". - */ - DEBUG_printf("%p", (void *)l); - len += MAX(conv_len, 20); - break; - - case 'n': - /* produces no output */ - break; - - case 's': { - char *s = (char *)va_arg(ap, char *); - DEBUG_printf("%s", s); - - if (!conv_len2) { - len += MAX(conv_len, (int)strlen(s)); - } else { - len += conv_len; - } - break; - } - - default: - /* wchar_t types of 'C' and 'S' aren't supported */ - DEBUG_printf("Arg is %c\n", *cp); - } - - } - - case '\0': - break; - - default: - DEBUG_printf("%c", *cp); - len++; - } - } - - va_end(ap); - - return len+1; /* one for the null character */ -} - -#if 0 -int main() { - int l; - char buf[10000]; - - sprintf(buf, "d: %d\n", 500); - l = flen("d: %d\n", 500); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, ""); - l = flen(""); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%s\n","test"); - l = flen("%s\n", "test"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%c\n", 'a'); - l = flen("%c\n", 'a'); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%31.30f\n", -9999.99); - l = flen("%31.30f\n", -9999.99); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%f\n", -1e308); - l = flen("%f\n", -1e308); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%.9f\n", -1e308); - l = flen("%.9f\n", -1e308); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%10.20f\n", -1.999222333); - l = flen("%10.20f\n", -1.999222333); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%#g\n", -3.14159265358e-222); - l = flen("%#g\n", -3.1415927e-222); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%e\n", -123456789123456789.1); - l = flen("%e\n", -123456789123456789.1); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%c %f %d %s %c %g %ld %s\n", 'a', 3.1, 9, "one", 'b', 4.2, 9, "two"); - l = flen("%c %f %d %s %c %g %ld %s\n", 'a', 3.1, 9, "one", 'b', 4.2, 9, "two"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%*.*e %*c\n", 10, 5, 9.0, 20, 'x'); - l = flen("%*.*e %*c\n", 10, 5, 9.0, 20, 'x'); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%10c\n", 'z'); - l = flen("%10c\n", 'z'); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%.10c\n", 'z'); - l = flen("%.10c\n", 'z'); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%10d\n", 'z'); - l = flen("%10d\n", 'z'); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%.10d\n", 'z'); - l = flen("%.10d\n", 'z'); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%10%\n"); - l = flen("%10%\n"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%.10%\n"); - l = flen("%.10%\n"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%s\n", "0123456789"); - l = flen("%s\n", "0123456789"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%5s\n", "0123456789"); - l = flen("%5s\n", "0123456789"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%50s\n", "0123456789"); - l = flen("%50s\n", "0123456789"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%.5s\n", "0123456789"); - l = flen("%.5s\n", "0123456789"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%.50s\n", "0123456789"); - l = flen("%.50s\n", "0123456789"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%5.50s\n", "0123456789"); - l = flen("%5.50s\n", "0123456789"); - printf("%d %d\n\n", strlen(buf), l); - - sprintf(buf, "%50.5s\n", "0123456789"); - l = flen("%50.5s\n", "0123456789"); - printf("%d %d\n\n", strlen(buf), l); - - return 0; -} -#endif diff --git a/htslib/cram/vlen.h b/htslib/cram/vlen.h deleted file mode 100644 index 6b9b07c..0000000 --- a/htslib/cram/vlen.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -Author: James Bonfield (jkb@sanger.ac.uk) - -Copyright (c) 1995-1996 MEDICAL RESEARCH COUNCIL -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1 Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2 Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3 Neither the name of the MEDICAL RESEARCH COUNCIL, THE LABORATORY OF -MOLECULAR BIOLOGY nor the names of its contributors may be used to endorse or -promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _VLEN_H_ -#define _VLEN_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -extern int vflen(char *fmt, va_list ap); -extern int flen(char *fmt, ...); - -#ifdef __cplusplus -} -#endif - -#endif /* _VLEN_H_ */ diff --git a/htslib/cram/zfio.c b/htslib/cram/zfio.c deleted file mode 100644 index 0a0ae0c..0000000 --- a/htslib/cram/zfio.c +++ /dev/null @@ -1,185 +0,0 @@ -/* -Copyright (c) 2009-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef HAVE_CONFIG_H -#include "io_lib_config.h" -#endif - -#include -#include - -#include "cram/os.h" -#include "cram/zfio.h" - -/* ------------------------------------------------------------------------ */ -/* Some wrappers around FILE * vs gzFile *, allowing for either */ - -/* - * gzopen() works on both compressed and uncompressed data, but it has - * a significant performance hit even for uncompressed data (tested as - * 25s using FILE* to 46s via gzOpen and 66s via gzOpen when gzipped). - * - * Hence we use our own wrapper 'zfp' which is a FILE* when uncompressed - * and gzFile* when compressed. This also means we could hide bzopen in - * there too if desired. - */ - -off_t zftello(zfp *zf) { - return zf->fp ? ftello(zf->fp) : -1; -} - -int zfseeko(zfp *zf, off_t offset, int whence) { - return zf->fp ? fseeko(zf->fp, offset, whence) : -1; -} - - -/* - * A wrapper for either fgets or gzgets depending on what has been - * opened. - */ -char *zfgets(char *line, int size, zfp *zf) { - if (zf->fp) - return fgets(line, size, zf->fp); - else - return gzgets(zf->gz, line, size); -} - -/* - * A wrapper for either fputs or gzputs depending on what has been - * opened. - */ -int zfputs(char *line, zfp *zf) { - if (zf->fp) - return fputs(line, zf->fp); - else - return gzputs(zf->gz, line) ? 0 : EOF; -} - -/* - * Peeks at and returns the next character without consuming it from the - * input. (Ie a combination of getc and ungetc). - */ -int zfpeek(zfp *zf) { - int c; - - if (zf->fp) { - c = getc(zf->fp); - if (c != EOF) - ungetc(c, zf->fp); - } else { - c = gzgetc(zf->gz); - if (c != EOF) - gzungetc(c, zf->gz); - } - - return c; -} - -/* A replacement for either feof of gzeof */ -int zfeof(zfp *zf) { - return zf->fp ? feof(zf->fp) : gzeof(zf->gz); -} - -/* A replacement for either fopen or gzopen */ -zfp *zfopen(const char *path, const char *mode) { - char path2[1024]; - zfp *zf; - - if (!(zf = (zfp *)malloc(sizeof(*zf)))) - return NULL; - zf->fp = NULL; - zf->gz = NULL; - - /* Try normal fopen */ - if (mode[0] != 'z' && mode[1] != 'z' && - NULL != (zf->fp = fopen(path, mode))) { - unsigned char magic[2]; - if (2 != fread(magic, 1, 2, zf->fp)) { - free(zf); - return NULL; - } - if (!(magic[0] == 0x1f && - magic[1] == 0x8b)) { - fseeko(zf->fp, 0, SEEK_SET); - return zf; - } - - fclose(zf->fp); - zf->fp = NULL; - } - -#ifdef HAVE_POPEN - /* - * I've no idea why, by gzgets is VERY slow, maybe because it handles - * arbitrary seeks. - * popen to gzip -cd is 3 times faster though. - */ - if (*mode == 'w') { - } else { - if (access(path, R_OK) == 0) { - sprintf(path2, "gzip -cd < %.*s", 1000, path); - if (NULL != (zf->fp = popen(path2, "r"))) - return zf; - } - - sprintf(path2, "gzip -cd < %.*s.gz", 1000, path); - if (NULL != (zf->fp = popen(path2, "r"))) - return zf; - - printf("Failed on %s\n", path); - } else { - sprintf(path2, "gzip > %.*s", 1000, path); - if (NULL != (zf->fp = popen(path2, "w"))) - return zf; - } - - printf("Failed on %s\n", path); - } -#else - /* Gzopen instead */ - if ((zf->gz = gzopen(path, mode))) - return zf; - - sprintf(path2, "%.*s.gz", 1020, path); - if ((zf->gz = gzopen(path2, mode))) - return zf; -#endif - - perror(path); - - free(zf); - return NULL; -} - -int zfclose(zfp *zf) { - int r = (zf->fp) ? fclose(zf->fp) : gzclose(zf->gz); - free(zf); - return r; -} diff --git a/htslib/cram/zfio.h b/htslib/cram/zfio.h deleted file mode 100644 index 2d0580f..0000000 --- a/htslib/cram/zfio.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright (c) 2009-2013 Genome Research Ltd. -Author: James Bonfield - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger -Institute nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH LTD OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _ZFIO_H_ -#define _ZFIO_H_ - -#include -#include - -/* - * Either a gzFile or a FILE. - */ -typedef struct { - FILE *fp; - gzFile gz; -} zfp; - -off_t zftello(zfp *zf); -int zfseeko(zfp *zf, off_t offset, int whence); -char *zfgets(char *line, int size, zfp *zf); -int zfputs(char *line, zfp *zf); -zfp *zfopen(const char *path, const char *mode); -int zfclose(zfp *zf); -int zfpeek(zfp *zf); -int zfeof(zfp *zf); - -#endif /* _ZFIO_H_ */ diff --git a/htslib/faidx.5 b/htslib/faidx.5 deleted file mode 100644 index cb779a6..0000000 --- a/htslib/faidx.5 +++ /dev/null @@ -1,147 +0,0 @@ -'\" t -.TH faidx 5 "August 2013" "htslib" "Bioinformatics formats" -.SH NAME -faidx \- an index enabling random access to FASTA files -.\" -.\" Copyright (C) 2013 Genome Research Ltd. -.\" -.\" Author: John Marshall -.\" -.\" 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. -.\" -.SH SYNOPSIS -.IR file.fa .fai, -.IR file.fasta .fai -.SH DESCRIPTION -Using an \fBfai index\fP file in conjunction with a FASTA file containing -reference sequences enables efficient access to arbitrary regions within -those reference sequences. -The index file typically has the same filename as the corresponding FASTA -file, with \fB.fai\fP appended. -.P -An \fBfai index\fP file is a text file consisting of lines each with -five TAB-delimited columns: -.TS -lbl. -NAME Name of this reference sequence -LENGTH Total length of this reference sequence, in bases -OFFSET Offset within the FASTA file of this sequence's first base -LINEBASES The number of bases on each line -LINEWIDTH The number of bytes in each line, including the newline -.TE -.P -The \fBNAME\fP and \fBLENGTH\fP columns contain the same -data as would appear in the \fBSN\fP and \fBLN\fP fields of a -SAM \fB@SQ\fP header for the same reference sequence. -.P -The \fBOFFSET\fP column contains the offset within the FASTA file, in bytes -starting from zero, of the first base of this reference sequence, i.e., of -the character following the newline at the end of the "\fB>\fP" header line. -Typically the lines of a \fBfai index\fP file appear in the order in which the -reference sequences appear in the FASTA file, so \fB.fai\fP files are typically -sorted according to this column. -.P -The \fBLINEBASES\fP column contains the number of bases in each of the sequence -lines that form the body of this reference sequence, apart from the final line -which may be shorter. -The \fBLINEWIDTH\fP column contains the number of \fIbytes\fP in each of -the sequence lines (except perhaps the final line), thus differing from -\fBLINEBASES\fP in that it also counts the bytes forming the line terminator. -.SS FASTA Files -In order to be indexed with \fBsamtools faidx\fP, a FASTA file must be a text -file of the form -.LP -.RS -.RI > name -.RI [ description ...] -.br -ATGCATGCATGCATGCATGCATGCATGCAT -.br -GCATGCATGCATGCATGCATGCATGCATGC -.br -ATGCAT -.br -.RI > name -.RI [ description ...] -.br -ATGCATGCATGCAT -.br -GCATGCATGCATGC -.br -[...] -.RE -.LP -In particular, each reference sequence must be "well-formatted", i.e., all -of its sequence lines must be the same length, apart from the final sequence -line which may be shorter. -(While this sequence line length must be the same within each sequence, -it may vary between different reference sequences in the same FASTA file.) -.P -This also means that although the FASTA file may have Unix- or Windows-style -or other line termination, the newline characters present must be consistent, -at least within each reference sequence. -.P -The \fBsamtools\fP implementation uses the first word of the "\fB>\fP" header -line text (i.e., up to the first whitespace character) as the \fBNAME\fP column. -At present, there may be no whitespace between the -">" character and the \fIname\fP. -.SH EXAMPLE -For example, given this FASTA file -.LP -.RS ->one -.br -ATGCATGCATGCATGCATGCATGCATGCAT -.br -GCATGCATGCATGCATGCATGCATGCATGC -.br -ATGCAT -.br ->two another chromosome -.br -ATGCATGCATGCAT -.br -GCATGCATGCATGC -.br -.RE -.LP -formatted with Unix-style (LF) line termination, the corresponding fai index -would be -.RS -.TS -lnnnn. -one 66 5 30 31 -two 28 98 14 15 -.TE -.RE -.LP -If the FASTA file were formatted with Windows-style (CR-LF) line termination, -the fai index would be -.RS -.TS -lnnnn. -one 66 6 30 32 -two 28 103 14 16 -.TE -.RE -.SH SEE ALSO -.IR samtools (1) -.TP -http://en.wikipedia.org/wiki/FASTA_format -Further description of the FASTA format diff --git a/htslib/faidx.c b/htslib/faidx.c deleted file mode 100644 index b48fce9..0000000 --- a/htslib/faidx.c +++ /dev/null @@ -1,475 +0,0 @@ -/* faidx.c -- FASTA random access. - - Copyright (C) 2008, 2009, 2013-2015 Genome Research Ltd. - Portions copyright (C) 2011 Broad Institute. - - Author: Heng Li - -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. */ - -#include -#include -#include -#include -#include - -#include "htslib/bgzf.h" -#include "htslib/faidx.h" -#include "htslib/hfile.h" -#include "htslib/khash.h" - -typedef struct { - int32_t line_len, line_blen; - int64_t len; - uint64_t offset; -} faidx1_t; -KHASH_MAP_INIT_STR(s, faidx1_t) - -struct __faidx_t { - BGZF *bgzf; - int n, m; - char **name; - khash_t(s) *hash; -}; - -#ifndef kroundup32 -#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) -#endif - -static inline void fai_insert_index(faidx_t *idx, const char *name, int len, int line_len, int line_blen, uint64_t offset) -{ - khint_t k; - int ret; - faidx1_t t; - if (idx->n == idx->m) { - idx->m = idx->m? idx->m<<1 : 16; - idx->name = (char**)realloc(idx->name, sizeof(char*) * idx->m); - } - idx->name[idx->n] = strdup(name); - k = kh_put(s, idx->hash, idx->name[idx->n], &ret); - t.len = len; t.line_len = line_len; t.line_blen = line_blen; t.offset = offset; - kh_value(idx->hash, k) = t; - ++idx->n; -} - -faidx_t *fai_build_core(BGZF *bgzf) -{ - char *name; - int c; - int l_name, m_name; - int line_len, line_blen, state; - int l1, l2; - faidx_t *idx; - uint64_t offset; - int64_t len; - - idx = (faidx_t*)calloc(1, sizeof(faidx_t)); - idx->hash = kh_init(s); - name = 0; l_name = m_name = 0; - len = line_len = line_blen = -1; state = 0; l1 = l2 = -1; offset = 0; - while ( (c=bgzf_getc(bgzf))>=0 ) { - if (c == '\n') { // an empty line - if (state == 1) { - offset = bgzf_utell(bgzf); - continue; - } else if ((state == 0 && len < 0) || state == 2) continue; - } - if (c == '>') { // fasta header - if (len >= 0) - fai_insert_index(idx, name, len, line_len, line_blen, offset); - l_name = 0; - while ( (c=bgzf_getc(bgzf))>=0 && !isspace(c)) { - if (m_name < l_name + 2) { - m_name = l_name + 2; - kroundup32(m_name); - name = (char*)realloc(name, m_name); - } - name[l_name++] = c; - } - name[l_name] = '\0'; - if ( c<0 ) { - fprintf(stderr, "[fai_build_core] the last entry has no sequence\n"); - free(name); fai_destroy(idx); - return 0; - } - if (c != '\n') while ( (c=bgzf_getc(bgzf))>=0 && c != '\n'); - state = 1; len = 0; - offset = bgzf_utell(bgzf); - } else { - if (state == 3) { - fprintf(stderr, "[fai_build_core] inlined empty line is not allowed in sequence '%s'.\n", name); - free(name); fai_destroy(idx); - return 0; - } - if (state == 2) state = 3; - l1 = l2 = 0; - do { - ++l1; - if (isgraph(c)) ++l2; - } while ( (c=bgzf_getc(bgzf))>=0 && c != '\n'); - if (state == 3 && l2) { - fprintf(stderr, "[fai_build_core] different line length in sequence '%s'.\n", name); - free(name); fai_destroy(idx); - return 0; - } - ++l1; len += l2; - if (state == 1) line_len = l1, line_blen = l2, state = 0; - else if (state == 0) { - if (l1 != line_len || l2 != line_blen) state = 2; - } - } - } - if ( name ) - fai_insert_index(idx, name, len, line_len, line_blen, offset); - else - { - free(idx); - return NULL; - } - free(name); - return idx; -} - -void fai_save(const faidx_t *fai, FILE *fp) -{ - khint_t k; - int i; - for (i = 0; i < fai->n; ++i) { - faidx1_t x; - k = kh_get(s, fai->hash, fai->name[i]); - x = kh_value(fai->hash, k); -#ifdef _WIN32 - fprintf(fp, "%s\t%d\t%ld\t%d\t%d\n", fai->name[i], (int)x.len, (long)x.offset, (int)x.line_blen, (int)x.line_len); -#else - fprintf(fp, "%s\t%d\t%lld\t%d\t%d\n", fai->name[i], (int)x.len, (long long)x.offset, (int)x.line_blen, (int)x.line_len); -#endif - } -} - -faidx_t *fai_read(FILE *fp) -{ - faidx_t *fai; - char *buf, *p; - int len, line_len, line_blen; -#ifdef _WIN32 - long offset; -#else - long long offset; -#endif - fai = (faidx_t*)calloc(1, sizeof(faidx_t)); - fai->hash = kh_init(s); - buf = (char*)calloc(0x10000, 1); - while (!feof(fp) && fgets(buf, 0x10000, fp)) { - for (p = buf; *p && isgraph(*p); ++p); - *p = 0; ++p; -#ifdef _WIN32 - sscanf(p, "%d%ld%d%d", &len, &offset, &line_blen, &line_len); -#else - sscanf(p, "%d%lld%d%d", &len, &offset, &line_blen, &line_len); -#endif - fai_insert_index(fai, buf, len, line_len, line_blen, offset); - } - free(buf); - return fai; -} - -void fai_destroy(faidx_t *fai) -{ - int i; - for (i = 0; i < fai->n; ++i) free(fai->name[i]); - free(fai->name); - kh_destroy(s, fai->hash); - if (fai->bgzf) bgzf_close(fai->bgzf); - free(fai); -} - -int fai_build(const char *fn) -{ - char *str; - BGZF *bgzf; - FILE *fp; - faidx_t *fai; - str = (char*)calloc(strlen(fn) + 5, 1); - sprintf(str, "%s.fai", fn); - bgzf = bgzf_open(fn, "r"); - if ( !bgzf ) { - fprintf(stderr, "[fai_build] fail to open the FASTA file %s\n",fn); - free(str); - return -1; - } - if ( bgzf->is_compressed ) bgzf_index_build_init(bgzf); - fai = fai_build_core(bgzf); - if ( !fai ) - { - if ( bgzf->is_compressed && bgzf->is_gzip ) fprintf(stderr,"Cannot index files compressed with gzip, please use bgzip\n"); - free(str); - return -1; - } - if ( bgzf->is_compressed ) bgzf_index_dump(bgzf, fn, ".gzi"); - bgzf_close(bgzf); - fp = fopen(str, "wb"); - if ( !fp ) { - fprintf(stderr, "[fai_build] fail to write FASTA index %s\n",str); - fai_destroy(fai); free(str); - return -1; - } - fai_save(fai, fp); - fclose(fp); - free(str); - fai_destroy(fai); - return 0; -} - -static FILE *download_and_open(const char *fn) -{ - const int buf_size = 1 * 1024 * 1024; - uint8_t *buf; - FILE *fp; - hFILE *fp_remote; - const char *url = fn; - const char *p; - int l = strlen(fn); - for (p = fn + l - 1; p >= fn; --p) - if (*p == '/') break; - fn = p + 1; - - // First try to open a local copy - fp = fopen(fn, "r"); - if (fp) - return fp; - - // If failed, download from remote and open - fp_remote = hopen(url, "rb"); - if (fp_remote == 0) { - fprintf(stderr, "[download_from_remote] fail to open remote file %s\n",url); - return NULL; - } - if ((fp = fopen(fn, "wb")) == 0) { - fprintf(stderr, "[download_from_remote] fail to create file in the working directory %s\n",fn); - hclose_abruptly(fp_remote); - return NULL; - } - buf = (uint8_t*)calloc(buf_size, 1); - while ((l = hread(fp_remote, buf, buf_size)) > 0) - fwrite(buf, 1, l, fp); - free(buf); - fclose(fp); - if (hclose(fp_remote) != 0) - fprintf(stderr, "[download_from_remote] fail to close remote file %s\n", url); - - return fopen(fn, "r"); -} - -faidx_t *fai_load(const char *fn) -{ - char *str; - FILE *fp; - faidx_t *fai; - str = (char*)calloc(strlen(fn) + 5, 1); - sprintf(str, "%s.fai", fn); - - if (hisremote(str)) - { - fp = download_and_open(str); - if ( !fp ) - { - fprintf(stderr, "[fai_load] failed to open remote FASTA index %s\n", str); - free(str); - return 0; - } - } - else - fp = fopen(str, "rb"); - - if (fp == 0) { - fprintf(stderr, "[fai_load] build FASTA index.\n"); - fai_build(fn); - fp = fopen(str, "rb"); - if (fp == 0) { - fprintf(stderr, "[fai_load] fail to open FASTA index.\n"); - free(str); - return 0; - } - } - - fai = fai_read(fp); - fclose(fp); - - fai->bgzf = bgzf_open(fn, "rb"); - free(str); - if (fai->bgzf == 0) { - fprintf(stderr, "[fai_load] fail to open FASTA file.\n"); - return 0; - } - if ( fai->bgzf->is_compressed==1 ) - { - if ( bgzf_index_load(fai->bgzf, fn, ".gzi") < 0 ) - { - fprintf(stderr, "[fai_load] failed to load .gzi index: %s[.gzi]\n", fn); - fai_destroy(fai); - return NULL; - } - } - return fai; -} - -char *fai_fetch(const faidx_t *fai, const char *str, int *len) -{ - char *s; - int c, i, l, k, name_end; - khiter_t iter; - faidx1_t val; - khash_t(s) *h; - int beg, end; - - beg = end = -1; - h = fai->hash; - name_end = l = strlen(str); - s = (char*)malloc(l+1); - // remove space - for (i = k = 0; i < l; ++i) - if (!isspace(str[i])) s[k++] = str[i]; - s[k] = 0; l = k; - // determine the sequence name - for (i = l - 1; i >= 0; --i) if (s[i] == ':') break; // look for colon from the end - if (i >= 0) name_end = i; - if (name_end < l) { // check if this is really the end - int n_hyphen = 0; - for (i = name_end + 1; i < l; ++i) { - if (s[i] == '-') ++n_hyphen; - else if (!isdigit(s[i]) && s[i] != ',') break; - } - if (i < l || n_hyphen > 1) name_end = l; // malformated region string; then take str as the name - s[name_end] = 0; - iter = kh_get(s, h, s); - if (iter == kh_end(h)) { // cannot find the sequence name - iter = kh_get(s, h, str); // try str as the name - if (iter == kh_end(h)) { - *len = 0; - free(s); return 0; - } else s[name_end] = ':', name_end = l; - } - } else iter = kh_get(s, h, str); - if(iter == kh_end(h)) { - fprintf(stderr, "[fai_fetch] Warning - Reference %s not found in FASTA file, returning empty sequence\n", str); - free(s); - *len = -2; - return 0; - }; - val = kh_value(h, iter); - // parse the interval - if (name_end < l) { - for (i = k = name_end + 1; i < l; ++i) - if (s[i] != ',') s[k++] = s[i]; - s[k] = 0; - beg = atoi(s + name_end + 1); - for (i = name_end + 1; i != k; ++i) if (s[i] == '-') break; - end = i < k? atoi(s + i + 1) : val.len; - if (beg > 0) --beg; - } else beg = 0, end = val.len; - if (beg >= val.len) beg = val.len; - if (end >= val.len) end = val.len; - if (beg > end) beg = end; - free(s); - - // now retrieve the sequence - int ret = bgzf_useek(fai->bgzf, val.offset + beg / val.line_blen * val.line_len + beg % val.line_blen, SEEK_SET); - if ( ret<0 ) - { - *len = -1; - fprintf(stderr, "[fai_fetch] Error: fai_fetch failed. (Seeking in a compressed, .gzi unindexed, file?)\n"); - return NULL; - } - l = 0; - s = (char*)malloc(end - beg + 2); - while ( (c=bgzf_getc(fai->bgzf))>=0 && l < end - beg ) - if (isgraph(c)) s[l++] = c; - s[l] = '\0'; - *len = l; - return s; -} - -int faidx_fetch_nseq(const faidx_t *fai) -{ - return fai->n; -} - -int faidx_nseq(const faidx_t *fai) -{ - return fai->n; -} - -const char *faidx_iseq(const faidx_t *fai, int i) -{ - return fai->name[i]; -} - -int faidx_seq_len(const faidx_t *fai, const char *seq) -{ - khint_t k = kh_get(s, fai->hash, seq); - if ( k == kh_end(fai->hash) ) return -1; - return kh_val(fai->hash, k).len; -} - -char *faidx_fetch_seq(const faidx_t *fai, const char *c_name, int p_beg_i, int p_end_i, int *len) -{ - int l, c; - khiter_t iter; - faidx1_t val; - char *seq=NULL; - - // Adjust position - iter = kh_get(s, fai->hash, c_name); - if (iter == kh_end(fai->hash)) - { - *len = -2; - fprintf(stderr, "[fai_fetch_seq] The sequence \"%s\" not found\n", c_name); - return NULL; - } - val = kh_value(fai->hash, iter); - if(p_end_i < p_beg_i) p_beg_i = p_end_i; - if(p_beg_i < 0) p_beg_i = 0; - else if(val.len <= p_beg_i) p_beg_i = val.len - 1; - if(p_end_i < 0) p_end_i = 0; - else if(val.len <= p_end_i) p_end_i = val.len - 1; - - // Now retrieve the sequence - int ret = bgzf_useek(fai->bgzf, val.offset + p_beg_i / val.line_blen * val.line_len + p_beg_i % val.line_blen, SEEK_SET); - if ( ret<0 ) - { - *len = -1; - fprintf(stderr, "[fai_fetch_seq] Error: fai_fetch failed. (Seeking in a compressed, .gzi unindexed, file?)\n"); - return NULL; - } - l = 0; - seq = (char*)malloc(p_end_i - p_beg_i + 2); - while ( (c=bgzf_getc(fai->bgzf))>=0 && l < p_end_i - p_beg_i + 1) - if (isgraph(c)) seq[l++] = c; - seq[l] = '\0'; - *len = l; - return seq; -} - -int faidx_has_seq(const faidx_t *fai, const char *seq) -{ - khiter_t iter = kh_get(s, fai->hash, seq); - if (iter == kh_end(fai->hash)) return 0; - return 1; -} - diff --git a/htslib/hfile.c b/htslib/hfile.c deleted file mode 100644 index d722c13..0000000 --- a/htslib/hfile.c +++ /dev/null @@ -1,547 +0,0 @@ -/* hfile.c -- buffered low-level input/output streams. - - Copyright (C) 2013-2015 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#include -#include -#include -#include - -#include "htslib/hfile.h" -#include "hfile_internal.h" - -/* hFILE fields are used as follows: - - char *buffer; // Pointer to the start of the I/O buffer - char *begin; // First not-yet-read character / unused position - char *end; // First unfilled/unfillable position - char *limit; // Pointer to the first position past the buffer - - const hFILE_backend *backend; // Methods to refill/flush I/O buffer - - off_t offset; // Offset within the stream of buffer position 0 - int at_eof:1; // For reading, whether EOF has been seen - int has_errno; // Error number from the last failure on this stream - -For reading, begin is the first unread character in the buffer and end is the -first unfilled position: - - -----------ABCDEFGHIJKLMNO--------------- - ^buffer ^begin ^end ^limit - -For writing, begin is the first unused position and end is unused so remains -equal to buffer: - - ABCDEFGHIJKLMNOPQRSTUVWXYZ--------------- - ^buffer ^begin ^limit - ^end - -Thus if begin > end then there is a non-empty write buffer, if begin < end -then there is a non-empty read buffer, and if begin == end then both buffers -are empty. In all cases, the stream's file position indicator corresponds -to the position pointed to by begin. */ - -hFILE *hfile_init(size_t struct_size, const char *mode, size_t capacity) -{ - hFILE *fp = (hFILE *) malloc(struct_size); - if (fp == NULL) goto error; - - if (capacity == 0) capacity = 32768; - // FIXME For now, clamp input buffer sizes so mpileup doesn't eat memory - if (strchr(mode, 'r') && capacity > 32768) capacity = 32768; - - fp->buffer = (char *) malloc(capacity); - if (fp->buffer == NULL) goto error; - - fp->begin = fp->end = fp->buffer; - fp->limit = &fp->buffer[capacity]; - - fp->offset = 0; - fp->at_eof = 0; - fp->has_errno = 0; - return fp; - -error: - hfile_destroy(fp); - return NULL; -} - -void hfile_destroy(hFILE *fp) -{ - int save = errno; - if (fp) free(fp->buffer); - free(fp); - errno = save; -} - -static inline int writebuffer_is_nonempty(hFILE *fp) -{ - return fp->begin > fp->end; -} - -/* Refills the read buffer from the backend (once, so may only partially - fill the buffer), returning the number of additional characters read - (which might be 0), or negative when an error occurred. */ -static ssize_t refill_buffer(hFILE *fp) -{ - ssize_t n; - - // Move any unread characters to the start of the buffer - if (fp->begin > fp->buffer) { - fp->offset += fp->begin - fp->buffer; - memmove(fp->buffer, fp->begin, fp->end - fp->begin); - fp->end = &fp->buffer[fp->end - fp->begin]; - fp->begin = fp->buffer; - } - - // Read into the available buffer space at fp->[end,limit) - if (fp->at_eof || fp->end == fp->limit) n = 0; - else { - n = fp->backend->read(fp, fp->end, fp->limit - fp->end); - if (n < 0) { fp->has_errno = errno; return n; } - else if (n == 0) fp->at_eof = 1; - } - - fp->end += n; - return n; -} - -/* Called only from hgetc(), when our buffer is empty. */ -int hgetc2(hFILE *fp) -{ - return (refill_buffer(fp) > 0)? (unsigned char) *(fp->begin++) : EOF; -} - -ssize_t hpeek(hFILE *fp, void *buffer, size_t nbytes) -{ - size_t n = fp->end - fp->begin; - while (n < nbytes) { - ssize_t ret = refill_buffer(fp); - if (ret < 0) return ret; - else if (ret == 0) break; - else n += ret; - } - - if (n > nbytes) n = nbytes; - memcpy(buffer, fp->begin, n); - return n; -} - -/* Called only from hread(); when called, our buffer is empty and nread bytes - have already been placed in the destination buffer. */ -ssize_t hread2(hFILE *fp, void *destv, size_t nbytes, size_t nread) -{ - const size_t capacity = fp->limit - fp->buffer; - char *dest = (char *) destv; - dest += nread, nbytes -= nread; - - // Read large requests directly into the destination buffer - while (nbytes * 2 >= capacity && !fp->at_eof) { - ssize_t n = fp->backend->read(fp, dest, nbytes); - if (n < 0) { fp->has_errno = errno; return n; } - else if (n == 0) fp->at_eof = 1; - fp->offset += n; - dest += n, nbytes -= n; - nread += n; - } - - while (nbytes > 0 && !fp->at_eof) { - size_t n; - ssize_t ret = refill_buffer(fp); - if (ret < 0) return ret; - - n = fp->end - fp->begin; - if (n > nbytes) n = nbytes; - memcpy(dest, fp->begin, n); - fp->begin += n; - dest += n, nbytes -= n; - nread += n; - } - - return nread; -} - -/* Flushes the write buffer, fp->[buffer,begin), out through the backend - returning 0 on success or negative if an error occurred. */ -static ssize_t flush_buffer(hFILE *fp) -{ - const char *buffer = fp->buffer; - while (buffer < fp->begin) { - ssize_t n = fp->backend->write(fp, buffer, fp->begin - buffer); - if (n < 0) { fp->has_errno = errno; return n; } - buffer += n; - fp->offset += n; - } - - fp->begin = fp->buffer; // Leave the buffer empty - return 0; -} - -int hflush(hFILE *fp) -{ - if (flush_buffer(fp) < 0) return EOF; - if (fp->backend->flush(fp) < 0) { fp->has_errno = errno; return EOF; } - return 0; -} - -/* Called only from hputc(), when our buffer is already full. */ -int hputc2(int c, hFILE *fp) -{ - if (flush_buffer(fp) < 0) return EOF; - *(fp->begin++) = c; - return c; -} - -/* Called only from hwrite() and hputs2(); when called, our buffer is full and - ncopied bytes from the source have already been copied to our buffer. */ -ssize_t hwrite2(hFILE *fp, const void *srcv, size_t totalbytes, size_t ncopied) -{ - const char *src = (const char *) srcv; - ssize_t ret; - const size_t capacity = fp->limit - fp->buffer; - size_t remaining = totalbytes - ncopied; - src += ncopied; - - ret = flush_buffer(fp); - if (ret < 0) return ret; - - // Write large blocks out directly from the source buffer - while (remaining * 2 >= capacity) { - ssize_t n = fp->backend->write(fp, src, remaining); - if (n < 0) { fp->has_errno = errno; return n; } - fp->offset += n; - src += n, remaining -= n; - } - - // Just buffer any remaining characters - memcpy(fp->begin, src, remaining); - fp->begin += remaining; - - return totalbytes; -} - -/* Called only from hputs(), when our buffer is already full. */ -int hputs2(const char *text, size_t totalbytes, size_t ncopied, hFILE *fp) -{ - return (hwrite2(fp, text, totalbytes, ncopied) >= 0)? 0 : EOF; -} - -off_t hseek(hFILE *fp, off_t offset, int whence) -{ - off_t pos; - - if (writebuffer_is_nonempty(fp)) { - int ret = flush_buffer(fp); - if (ret < 0) return ret; - } - else { - // Convert relative offsets from being relative to the hFILE's stream - // position (at begin) to being relative to the backend's physical - // stream position (at end, due to the buffering read-ahead). - if (whence == SEEK_CUR) offset -= fp->end - fp->begin; - } - - pos = fp->backend->seek(fp, offset, whence); - if (pos < 0) { fp->has_errno = errno; return pos; } - - // Seeking succeeded, so discard any non-empty read buffer - fp->begin = fp->end = fp->buffer; - fp->at_eof = 0; - - fp->offset = pos; - return pos; -} - -int hclose(hFILE *fp) -{ - int err = fp->has_errno; - - if (writebuffer_is_nonempty(fp) && hflush(fp) < 0) err = fp->has_errno; - if (fp->backend->close(fp) < 0) err = errno; - hfile_destroy(fp); - - if (err) { - errno = err; - return EOF; - } - else return 0; -} - -void hclose_abruptly(hFILE *fp) -{ - int save = errno; - if (fp->backend->close(fp) < 0) { /* Ignore subsequent errors */ } - hfile_destroy(fp); - errno = save; -} - - -/*************************** - * File descriptor backend * - ***************************/ - -#include -#include -#include -#include - -#ifdef _WIN32 -#define HAVE_CLOSESOCKET -#endif - -/* For Unix, it doesn't matter whether a file descriptor is a socket. - However Windows insists on send()/recv() and its own closesocket() - being used when fd happens to be a socket. */ - -typedef struct { - hFILE base; - int fd; - int is_socket:1; -} hFILE_fd; - -static ssize_t fd_read(hFILE *fpv, void *buffer, size_t nbytes) -{ - hFILE_fd *fp = (hFILE_fd *) fpv; - ssize_t n; - do { - n = fp->is_socket? recv(fp->fd, buffer, nbytes, 0) - : read(fp->fd, buffer, nbytes); - } while (n < 0 && errno == EINTR); - return n; -} - -static ssize_t fd_write(hFILE *fpv, const void *buffer, size_t nbytes) -{ - hFILE_fd *fp = (hFILE_fd *) fpv; - ssize_t n; - do { - n = fp->is_socket? send(fp->fd, buffer, nbytes, 0) - : write(fp->fd, buffer, nbytes); - } while (n < 0 && errno == EINTR); - return n; -} - -static off_t fd_seek(hFILE *fpv, off_t offset, int whence) -{ - hFILE_fd *fp = (hFILE_fd *) fpv; - return lseek(fp->fd, offset, whence); -} - -static int fd_flush(hFILE *fpv) -{ - hFILE_fd *fp = (hFILE_fd *) fpv; - int ret; - do { -#ifdef HAVE_FDATASYNC - ret = fdatasync(fp->fd); -#else - ret = fsync(fp->fd); -#endif - // Ignore invalid-for-fsync(2) errors due to being, e.g., a pipe, - // and operation-not-supported errors (Mac OS X) - if (ret < 0 && (errno == EINVAL || errno == ENOTSUP)) ret = 0; - } while (ret < 0 && errno == EINTR); - return ret; -} - -static int fd_close(hFILE *fpv) -{ - hFILE_fd *fp = (hFILE_fd *) fpv; - int ret; - do { -#ifdef HAVE_CLOSESOCKET - ret = fp->is_socket? closesocket(fp->fd) : close(fp->fd); -#else - ret = close(fp->fd); -#endif - } while (ret < 0 && errno == EINTR); - return ret; -} - -static const struct hFILE_backend fd_backend = -{ - fd_read, fd_write, fd_seek, fd_flush, fd_close -}; - -static size_t blksize(int fd) -{ - struct stat sbuf; - if (fstat(fd, &sbuf) != 0) return 0; - return sbuf.st_blksize; -} - -static hFILE *hopen_fd(const char *filename, const char *mode) -{ - hFILE_fd *fp = NULL; - int fd = open(filename, hfile_oflags(mode), 0666); - if (fd < 0) goto error; - - fp = (hFILE_fd *) hfile_init(sizeof (hFILE_fd), mode, blksize(fd)); - if (fp == NULL) goto error; - - fp->fd = fd; - fp->is_socket = 0; - fp->base.backend = &fd_backend; - return &fp->base; - -error: - if (fd >= 0) { int save = errno; (void) close(fd); errno = save; } - hfile_destroy((hFILE *) fp); - return NULL; -} - -hFILE *hdopen(int fd, const char *mode) -{ - hFILE_fd *fp = (hFILE_fd*) hfile_init(sizeof (hFILE_fd), mode, blksize(fd)); - if (fp == NULL) return NULL; - - fp->fd = fd; - fp->is_socket = (strchr(mode, 's') != NULL); - fp->base.backend = &fd_backend; - return &fp->base; -} - -static hFILE *hopen_fd_stdinout(const char *mode) -{ - int fd = (strchr(mode, 'r') != NULL)? STDIN_FILENO : STDOUT_FILENO; - // TODO Set binary mode (for Windows) - return hdopen(fd, mode); -} - -int hfile_oflags(const char *mode) -{ - int rdwr = 0, flags = 0; - const char *s; - for (s = mode; *s; s++) - switch (*s) { - case 'r': rdwr = O_RDONLY; break; - case 'w': rdwr = O_WRONLY; flags |= O_CREAT | O_TRUNC; break; - case 'a': rdwr = O_WRONLY; flags |= O_CREAT | O_APPEND; break; - case '+': rdwr = O_RDWR; break; - default: break; - } - -#ifdef O_BINARY - flags |= O_BINARY; -#endif - - return rdwr | flags; -} - - -/********************* - * In-memory backend * - *********************/ - -typedef struct { - hFILE base; - const char *buffer; - size_t length, pos; -} hFILE_mem; - -static ssize_t mem_read(hFILE *fpv, void *buffer, size_t nbytes) -{ - hFILE_mem *fp = (hFILE_mem *) fpv; - size_t avail = fp->length - fp->pos; - if (nbytes > avail) nbytes = avail; - memcpy(buffer, fp->buffer + fp->pos, nbytes); - fp->pos += nbytes; - return nbytes; -} - -static off_t mem_seek(hFILE *fpv, off_t offset, int whence) -{ - hFILE_mem *fp = (hFILE_mem *) fpv; - size_t absoffset = (offset >= 0)? offset : -offset; - size_t origin; - - switch (whence) { - case SEEK_SET: origin = 0; break; - case SEEK_CUR: origin = fp->pos; break; - case SEEK_END: origin = fp->length; break; - default: errno = EINVAL; return -1; - } - - if ((offset < 0 && absoffset > origin) || - (offset >= 0 && absoffset > fp->length - origin)) { - errno = EINVAL; - return -1; - } - - fp->pos = origin + offset; - return fp->pos; -} - -static int mem_close(hFILE *fpv) -{ - return 0; -} - -static const struct hFILE_backend mem_backend = -{ - mem_read, NULL, mem_seek, NULL, mem_close -}; - -static hFILE *hopen_mem(const char *data, const char *mode) -{ - // TODO Implement write modes, which will require memory allocation - if (strchr(mode, 'r') == NULL) { errno = EINVAL; return NULL; } - - hFILE_mem *fp = (hFILE_mem *) hfile_init(sizeof (hFILE_mem), mode, 0); - if (fp == NULL) return NULL; - - fp->buffer = data; - fp->length = strlen(data); - fp->pos = 0; - fp->base.backend = &mem_backend; - return &fp->base; -} - - -/****************************** - * hopen() backend dispatcher * - ******************************/ - -hFILE *hopen(const char *fname, const char *mode) -{ - if (strncmp(fname, "http://", 7) == 0 || - strncmp(fname, "ftp://", 6) == 0) return hopen_net(fname, mode); -#ifdef HAVE_IRODS - else if (strncmp(fname, "irods:", 6) == 0) return hopen_irods(fname, mode); -#endif - else if (strncmp(fname, "data:", 5) == 0) return hopen_mem(fname + 5, mode); - else if (strcmp(fname, "-") == 0) return hopen_fd_stdinout(mode); - else return hopen_fd(fname, mode); -} - -int hisremote(const char *fname) -{ - // FIXME Make a new backend entry to return this - if (strncmp(fname, "http://", 7) == 0 || - strncmp(fname, "https://", 8) == 0 || - strncmp(fname, "ftp://", 6) == 0) return 1; -#ifdef HAVE_IRODS - else if (strncmp(fname, "irods:", 6) == 0) return 1; -#endif - else return 0; -} diff --git a/htslib/hfile_internal.h b/htslib/hfile_internal.h deleted file mode 100644 index bfce2f6..0000000 --- a/htslib/hfile_internal.h +++ /dev/null @@ -1,76 +0,0 @@ -/* hfile_internal.h -- internal parts of low-level input/output streams. - - Copyright (C) 2013-2015 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#ifndef HFILE_INTERNAL_H -#define HFILE_INTERNAL_H - -#include "htslib/hfile.h" - -struct hFILE_backend { - /* As per read(2), returning the number of bytes read (possibly 0) or - negative (and setting errno) on errors. Front-end code will call this - repeatedly if necessary to attempt to get the desired byte count. */ - ssize_t (*read)(hFILE *fp, void *buffer, size_t nbytes) HTS_RESULT_USED; - - /* As per write(2), returning the number of bytes written or negative (and - setting errno) on errors. Front-end code will call this repeatedly if - necessary until the desired block is written or an error occurs. */ - ssize_t (*write)(hFILE *fp, const void *buffer, size_t nbytes) - HTS_RESULT_USED; - - /* As per lseek(2), returning the resulting offset within the stream or - negative (and setting errno) on errors. */ - off_t (*seek)(hFILE *fp, off_t offset, int whence) HTS_RESULT_USED; - - /* Performs low-level flushing, if any, e.g., fsync(2); for writing streams - only. Returns 0 for success or negative (and sets errno) on errors. */ - int (*flush)(hFILE *fp) HTS_RESULT_USED; - - /* Closes the underlying stream (for output streams, the buffer will - already have been flushed), returning 0 for success or negative (and - setting errno) on errors, as per close(2). */ - int (*close)(hFILE *fp) HTS_RESULT_USED; -}; - -/* These are called from the hopen() dispatcher, and should call hfile_init() - to malloc a struct "derived" from hFILE and initialise it appropriately, - including setting base.backend to their own backend vector. */ -hFILE *hopen_irods(const char *filename, const char *mode); -hFILE *hopen_net(const char *filename, const char *mode); - -/* May be called by hopen_*() functions to decode a fopen()-style mode into - open(2)-style flags. */ -int hfile_oflags(const char *mode); - -/* Must be called by hopen_*() functions to allocate the hFILE struct and set - up its base. Capacity is a suggested buffer size (e.g., via fstat(2)) - or 0 for a default-sized buffer. */ -hFILE *hfile_init(size_t struct_size, const char *mode, size_t capacity); - -/* May be called by hopen_*() functions to undo the effects of hfile_init() - in the event opening the stream subsequently fails. (This is safe to use - even if fp is NULL. This takes care to preserve errno.) */ -void hfile_destroy(hFILE *fp); - -#endif diff --git a/htslib/hfile_irods.c b/htslib/hfile_irods.c deleted file mode 100644 index 6bdbf21..0000000 --- a/htslib/hfile_irods.c +++ /dev/null @@ -1,243 +0,0 @@ -/* hfile_irods.c -- iRODS backend for low-level file streams. - - Copyright (C) 2013, 2015 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#include -#include -#include - -#include "hfile_internal.h" - -#include -#include -#include -#include -#include -#include -#include - -typedef struct { - hFILE base; - int descriptor; -} hFILE_irods; - -static int status_errno(int status) -{ - switch (status) { - case SYS_NO_API_PRIV: return EACCES; - case SYS_MALLOC_ERR: return ENOMEM; - case SYS_OUT_OF_FILE_DESC: return ENFILE; - case SYS_BAD_FILE_DESCRIPTOR: return EBADF; - case CAT_NO_ROWS_FOUND: return ENOENT; - case CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME: return EEXIST; - default: return EIO; - } -} - -static void set_errno(int status) -{ - int err = abs(status) % 1000; - errno = err? err : status_errno(status); -} - -static struct { - rcComm_t *conn; - rodsEnv env; -} irods = { NULL }; - -static void irods_exit() -{ - (void) rcDisconnect(irods.conn); - irods.conn = NULL; -} - -static int irods_init() -{ - rErrMsg_t err; - int ret; - - ret = getRodsEnv(&irods.env); - if (ret < 0) goto error; - - irods.conn = rcConnect(irods.env.rodsHost, irods.env.rodsPort, - irods.env.rodsUserName, irods.env.rodsZone, - NO_RECONN, &err); - if (irods.conn == NULL) { ret = err.status; goto error; } - - if (strcmp(irods.env.rodsUserName, PUBLIC_USER_NAME) != 0) { - ret = clientLogin(irods.conn); - if (ret != 0) goto error; - } - - // In the unlikely event atexit() fails, it's better to succeed here and - // carry on and do the I/O; then eventually when the program exits, we'll - // merely disconnect from the server uncleanly, as if we had aborted. - (void) atexit(irods_exit); - - return 0; - -error: - if (irods.conn) { (void) rcDisconnect(irods.conn); } - irods.conn = NULL; - set_errno(ret); - return -1; -} - -static ssize_t irods_read(hFILE *fpv, void *buffer, size_t nbytes) -{ - hFILE_irods *fp = (hFILE_irods *) fpv; - openedDataObjInp_t args; - bytesBuf_t buf; - int ret; - - memset(&args, 0, sizeof args); - args.l1descInx = fp->descriptor; - args.len = nbytes; - - buf.buf = buffer; - buf.len = nbytes; - - ret = rcDataObjRead(irods.conn, &args, &buf); - if (ret < 0) set_errno(ret); - return ret; -} - -static ssize_t irods_write(hFILE *fpv, const void *buffer, size_t nbytes) -{ - hFILE_irods *fp = (hFILE_irods *) fpv; - openedDataObjInp_t args; - bytesBuf_t buf; - int ret; - - memset(&args, 0, sizeof args); - args.l1descInx = fp->descriptor; - args.len = nbytes; - - buf.buf = (void *) buffer; // ...the iRODS API is not const-correct here - buf.len = nbytes; - - ret = rcDataObjWrite(irods.conn, &args, &buf); - if (ret < 0) set_errno(ret); - return ret; -} - -static off_t irods_seek(hFILE *fpv, off_t offset, int whence) -{ - hFILE_irods *fp = (hFILE_irods *) fpv; - openedDataObjInp_t args; - fileLseekOut_t *out = NULL; - int ret; - - memset(&args, 0, sizeof args); - args.l1descInx = fp->descriptor; - args.offset = offset; - args.whence = whence; - - ret = rcDataObjLseek(irods.conn, &args, &out); - - if (out) { offset = out->offset; free(out); } - else offset = -1; - if (ret < 0) { set_errno(ret); return -1; } - return offset; -} - -static int irods_flush(hFILE *fpv) -{ -// FIXME rcDataObjFsync() doesn't seem to function as expected. -// For now, flush is a no-op: see https://github.com/samtools/htslib/issues/168 -#if 0 - hFILE_irods *fp = (hFILE_irods *) fpv; - openedDataObjInp_t args; - int ret; - - memset(&args, 0, sizeof args); - args.l1descInx = fp->descriptor; - - ret = rcDataObjFsync(irods.conn, &args); - if (ret < 0) set_errno(ret); - return ret; -#endif - return 0; -} - -static int irods_close(hFILE *fpv) -{ - hFILE_irods *fp = (hFILE_irods *) fpv; - openedDataObjInp_t args; - int ret; - - memset(&args, 0, sizeof args); - args.l1descInx = fp->descriptor; - - ret = rcDataObjClose(irods.conn, &args); - if (ret < 0) set_errno(ret); - return ret; -} - -static const struct hFILE_backend irods_backend = -{ - irods_read, irods_write, irods_seek, irods_flush, irods_close -}; - -hFILE *hopen_irods(const char *filename, const char *mode) -{ - hFILE_irods *fp; - rodsPath_t path; - dataObjInp_t args; - int ret; - - // Initialise the iRODS connection if this is the first use. - if (irods.conn == NULL) { if (irods_init() < 0) return NULL; } - - if (strncmp(filename, "irods:", 6) == 0) filename += 6; - else { errno = EINVAL; return NULL; } - - fp = (hFILE_irods *) hfile_init(sizeof (hFILE_irods), mode, 0); - if (fp == NULL) return NULL; - - strncpy(path.inPath, filename, MAX_NAME_LEN-1); - path.inPath[MAX_NAME_LEN-1] = '\0'; - - ret = parseRodsPath(&path, &irods.env); - if (ret < 0) goto error; - - memset(&args, 0, sizeof args); - strcpy(args.objPath, path.outPath); - args.openFlags = hfile_oflags(mode); - if (args.openFlags & O_CREAT) { - args.createMode = 0666; - addKeyVal(&args.condInput, DEST_RESC_NAME_KW,irods.env.rodsDefResource); - } - - ret = rcDataObjOpen(irods.conn, &args); - if (ret < 0) goto error; - fp->descriptor = ret; - - fp->base.backend = &irods_backend; - return &fp->base; - -error: - hfile_destroy((hFILE *) fp); - set_errno(ret); - return NULL; -} diff --git a/htslib/hfile_net.c b/htslib/hfile_net.c deleted file mode 100644 index 9506634..0000000 --- a/htslib/hfile_net.c +++ /dev/null @@ -1,99 +0,0 @@ -/* hfile_net.c -- network backend for low-level input/output streams. - - Copyright (C) 2013-2014 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#include -#include - -#include "hfile_internal.h" - -#include "htslib/knetfile.h" - -typedef struct { - hFILE base; - knetFile *netfp; -} hFILE_net; - -static int net_inited = 0; - -#ifdef _WIN32 -static void net_exit(void) -{ - knet_win32_destroy(); -} -#endif - -static int net_init(void) -{ -#ifdef _WIN32 - if (knet_win32_init() != 0) return -1; - - // In the unlikely event atexit() fails, it's better to succeed here and - // carry on and do the I/O; then eventually when the program exits, we'll - // merely have failed to clean up properly, as if we had aborted. - (void) atexit(net_exit); -#endif - - net_inited = 1; - return 0; -} - -static ssize_t net_read(hFILE *fpv, void *buffer, size_t nbytes) -{ - hFILE_net *fp = (hFILE_net *) fpv; - return knet_read(fp->netfp, buffer, nbytes); -} - -static off_t net_seek(hFILE *fpv, off_t offset, int whence) -{ - hFILE_net *fp = (hFILE_net *) fpv; - return knet_seek(fp->netfp, offset, whence); -} - -static int net_close(hFILE *fpv) -{ - hFILE_net *fp = (hFILE_net *) fpv; - return knet_close(fp->netfp); -} - -static const struct hFILE_backend net_backend = -{ - net_read, NULL, net_seek, NULL, net_close -}; - -hFILE *hopen_net(const char *filename, const char *mode) -{ - hFILE_net *fp; - - // Do any networking initialisation if this is the first use. - if (! net_inited) { if (net_init() < 0) return NULL; } - - fp = (hFILE_net *) hfile_init(sizeof (hFILE_net), mode, 0); - if (fp == NULL) return NULL; - - fp->netfp = knet_open(filename, mode); - if (fp->netfp == NULL) { hfile_destroy((hFILE *) fp); return NULL; } - - fp->base.backend = &net_backend; - return &fp->base; -} diff --git a/htslib/hts.c b/htslib/hts.c deleted file mode 100644 index 5f4d677..0000000 --- a/htslib/hts.c +++ /dev/null @@ -1,1665 +0,0 @@ -/* hts.c -- format-neutral I/O, indexing, and iterator API functions. - - Copyright (C) 2008, 2009, 2012-2015 Genome Research Ltd. - Copyright (C) 2012, 2013 Broad Institute. - - Author: Heng Li - -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. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "htslib/bgzf.h" -#include "htslib/hts.h" -#include "cram/cram.h" -#include "htslib/hfile.h" -#include "version.h" - -#include "htslib/kseq.h" -#define KS_BGZF 1 -#if KS_BGZF - // bgzf now supports gzip-compressed files, the gzFile branch can be removed - KSTREAM_INIT2(, BGZF*, bgzf_read, 65536) -#else - KSTREAM_INIT2(, gzFile, gzread, 16384) -#endif - -#include "htslib/khash.h" -KHASH_INIT2(s2i,, kh_cstr_t, int64_t, 1, kh_str_hash_func, kh_str_hash_equal) - -int hts_verbose = 3; - -const char *hts_version() -{ - return HTS_VERSION; -} - -const unsigned char seq_nt16_table[256] = { - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 1, 2, 4, 8, 15,15,15,15, 15,15,15,15, 15, 0 /*=*/,15,15, - 15, 1,14, 2, 13,15,15, 4, 11,15,15,12, 15, 3,15,15, - 15,15, 5, 6, 8,15, 7, 9, 15,10,15,15, 15,15,15,15, - 15, 1,14, 2, 13,15,15, 4, 11,15,15,12, 15, 3,15,15, - 15,15, 5, 6, 8,15, 7, 9, 15,10,15,15, 15,15,15,15, - - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15 -}; - -const char seq_nt16_str[] = "=ACMGRSVTWYHKDBN"; - -const int seq_nt16_int[] = { 4, 0, 1, 4, 2, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4 }; - -/********************** - *** Basic file I/O *** - **********************/ - -static enum htsFormatCategory format_category(enum htsExactFormat fmt) -{ - switch (fmt) { - case bam: - case sam: - case cram: - return sequence_data; - - case vcf: - case bcf: - return variant_data; - - case bai: - case crai: - case csi: - case gzi: - case tbi: - return index_file; - - case bed: - return region_list; - - case unknown_format: - case binary_format: - case text_format: - case format_maximum: - break; - } - - return unknown_category; -} - -// Decompress up to ten or so bytes by peeking at the file, which must be -// positioned at the start of a GZIP block. -static size_t decompress_peek(hFILE *fp, unsigned char *dest, size_t destsize) -{ - // Typically at most a couple of hundred bytes of input are required - // to get a few bytes of output from inflate(), so hopefully this buffer - // size suffices in general. - unsigned char buffer[512]; - z_stream zs; - ssize_t npeek = hpeek(fp, buffer, sizeof buffer); - - if (npeek < 0) return 0; - - zs.zalloc = NULL; - zs.zfree = NULL; - zs.next_in = buffer; - zs.avail_in = npeek; - zs.next_out = dest; - zs.avail_out = destsize; - if (inflateInit2(&zs, 31) != Z_OK) return 0; - - while (zs.total_out < destsize) - if (inflate(&zs, Z_SYNC_FLUSH) != Z_OK) break; - - destsize = zs.total_out; - inflateEnd(&zs); - - return destsize; -} - -// Parse "x.y" text, taking care because the string is not NUL-terminated -// and filling in major/minor only when the digits are followed by a delimiter, -// so we don't misread "1.10" as "1.1" due to reaching the end of the buffer. -static void -parse_version(htsFormat *fmt, const unsigned char *u, const unsigned char *ulim) -{ - const char *str = (const char *) u; - const char *slim = (const char *) ulim; - const char *s; - - fmt->version.major = fmt->version.minor = -1; - - for (s = str; s < slim; s++) if (!isdigit(*s)) break; - if (s < slim) { - fmt->version.major = atoi(str); - if (*s == '.') { - str = &s[1]; - for (s = str; s < slim; s++) if (!isdigit(*s)) break; - if (s < slim) - fmt->version.minor = atoi(str); - } - else - fmt->version.minor = 0; - } -} - -int hts_detect_format(hFILE *hfile, htsFormat *fmt) -{ - unsigned char s[21]; - ssize_t len = hpeek(hfile, s, 18); - if (len < 0) return -1; - - if (len >= 2 && s[0] == 0x1f && s[1] == 0x8b) { - // The stream is either gzip-compressed or BGZF-compressed. - // Determine which, and decompress the first few bytes. - fmt->compression = (len >= 18 && (s[3] & 4) && - memcmp(&s[12], "BC\2\0", 4) == 0)? bgzf : gzip; - len = decompress_peek(hfile, s, sizeof s); - } - else { - fmt->compression = no_compression; - len = hpeek(hfile, s, sizeof s); - } - if (len < 0) return -1; - - fmt->compression_level = -1; - fmt->specific = NULL; - - if (len >= 6 && memcmp(s,"CRAM",4) == 0 && s[4]>=1 && s[4]<=3 && s[5]<=1) { - fmt->category = sequence_data; - fmt->format = cram; - fmt->version.major = s[4], fmt->version.minor = s[5]; - fmt->compression = custom; - return 0; - } - else if (len >= 4 && s[3] <= '\4') { - if (memcmp(s, "BAM\1", 4) == 0) { - fmt->category = sequence_data; - fmt->format = bam; - // TODO Decompress enough to pick version from @HD-VN header - fmt->version.major = 1, fmt->version.minor = -1; - return 0; - } - else if (memcmp(s, "BAI\1", 4) == 0) { - fmt->category = index_file; - fmt->format = bai; - fmt->version.major = -1, fmt->version.minor = -1; - return 0; - } - else if (memcmp(s, "BCF\4", 4) == 0) { - fmt->category = variant_data; - fmt->format = bcf; - fmt->version.major = 1, fmt->version.minor = -1; - return 0; - } - else if (memcmp(s, "BCF\2", 4) == 0) { - fmt->category = variant_data; - fmt->format = bcf; - fmt->version.major = s[3]; - fmt->version.minor = (len >= 5 && s[4] <= 2)? s[4] : 0; - return 0; - } - else if (memcmp(s, "CSI\1", 4) == 0) { - fmt->category = index_file; - fmt->format = csi; - fmt->version.major = 1, fmt->version.minor = -1; - return 0; - } - else if (memcmp(s, "TBI\1", 4) == 0) { - fmt->category = index_file; - fmt->format = tbi; - fmt->version.major = -1, fmt->version.minor = -1; - return 0; - } - } - else if (len >= 16 && memcmp(s, "##fileformat=VCF", 16) == 0) { - fmt->category = variant_data; - fmt->format = vcf; - if (len >= 21 && s[16] == 'v') - parse_version(fmt, &s[17], &s[len]); - else - fmt->version.major = fmt->version.minor = -1; - return 0; - } - else if (len >= 4 && s[0] == '@' && - (memcmp(s, "@HD\t", 4) == 0 || memcmp(s, "@SQ\t", 4) == 0 || - memcmp(s, "@RG\t", 4) == 0 || memcmp(s, "@PG\t", 4) == 0)) { - fmt->category = sequence_data; - fmt->format = sam; - // @HD-VN is not guaranteed to be the first tag, but then @HD is - // not guaranteed to be present at all... - if (len >= 9 && memcmp(s, "@HD\tVN:", 7) == 0) - parse_version(fmt, &s[7], &s[len]); - else - fmt->version.major = 1, fmt->version.minor = -1; - return 0; - } - else { - // Various possibilities for tab-delimited text: - // .crai (gzipped tab-delimited six columns: seqid 5*number) - // .bed ([3..12] tab-delimited columns) - // .bedpe (>= 10 tab-delimited columns) - // .sam (tab-delimited >= 11 columns: seqid number seqid...) - // FIXME For now, assume it's SAM - fmt->category = sequence_data; - fmt->format = sam; - fmt->version.major = 1, fmt->version.minor = -1; - return 0; - } - - fmt->category = unknown_category; - fmt->format = unknown_format; - fmt->version.major = fmt->version.minor = -1; - fmt->compression = no_compression; - return 0; -} - -char *hts_format_description(const htsFormat *format) -{ - kstring_t str = { 0, 0, NULL }; - - switch (format->format) { - case sam: kputs("SAM", &str); break; - case bam: kputs("BAM", &str); break; - case cram: kputs("CRAM", &str); break; - case vcf: kputs("VCF", &str); break; - case bcf: - if (format->version.major == 1) kputs("Legacy BCF", &str); - else kputs("BCF", &str); - break; - case bai: kputs("BAI", &str); break; - case crai: kputs("CRAI", &str); break; - case csi: kputs("CSI", &str); break; - case tbi: kputs("Tabix", &str); break; - default: kputs("unknown", &str); break; - } - - if (format->version.major >= 0) { - kputs(" version ", &str); - kputw(format->version.major, &str); - if (format->version.minor >= 0) { - kputc('.', &str); - kputw(format->version.minor, &str); - } - } - - switch (format->compression) { - case custom: kputs(" compressed", &str); break; - case gzip: kputs(" gzip-compressed", &str); break; - case bgzf: - switch (format->format) { - case bam: - case bcf: - case csi: - case tbi: - // These are by definition BGZF, so just use the generic term - kputs(" compressed", &str); - break; - default: - kputs(" BGZF-compressed", &str); - break; - } - break; - default: break; - } - - switch (format->category) { - case sequence_data: kputs(" sequence", &str); break; - case variant_data: kputs(" variant calling", &str); break; - case index_file: kputs(" index", &str); break; - case region_list: kputs(" genomic region", &str); break; - default: break; - } - - if (format->compression == no_compression) - switch (format->format) { - case sam: - case crai: - case vcf: - case bed: - kputs(" text", &str); - break; - - default: - kputs(" data", &str); - break; - } - else - kputs(" data", &str); - - return ks_release(&str); -} - -htsFile *hts_open(const char *fn, const char *mode) -{ - htsFile *fp = NULL; - hFILE *hfile = hopen(fn, mode); - if (hfile == NULL) goto error; - - fp = hts_hopen(hfile, fn, mode); - if (fp == NULL) goto error; - - return fp; - -error: - if (hts_verbose >= 2) - fprintf(stderr, "[E::%s] fail to open file '%s'\n", __func__, fn); - - if (hfile) - hclose_abruptly(hfile); - - return NULL; -} - -htsFile *hts_hopen(struct hFILE *hfile, const char *fn, const char *mode) -{ - htsFile *fp = (htsFile*)calloc(1, sizeof(htsFile)); - if (fp == NULL) goto error; - - fp->fn = strdup(fn); - fp->is_be = ed_is_big(); - - if (strchr(mode, 'r')) { - if (hts_detect_format(hfile, &fp->format) < 0) goto error; - } - else if (strchr(mode, 'w') || strchr(mode, 'a')) { - htsFormat *fmt = &fp->format; - fp->is_write = 1; - - if (strchr(mode, 'b')) fmt->format = binary_format; - else if (strchr(mode, 'c')) fmt->format = cram; - else fmt->format = text_format; - - if (strchr(mode, 'z')) fmt->compression = bgzf; - else if (strchr(mode, 'g')) fmt->compression = gzip; - else if (strchr(mode, 'u')) fmt->compression = no_compression; - else { - // No compression mode specified, set to the default for the format - switch (fmt->format) { - case binary_format: fmt->compression = bgzf; break; - case cram: fmt->compression = custom; break; - case text_format: fmt->compression = no_compression; break; - default: abort(); - } - } - - // Fill in category (if determinable; e.g. 'b' could be BAM or BCF) - fmt->category = format_category(fmt->format); - - fmt->version.major = fmt->version.minor = -1; - fmt->compression_level = -1; - fmt->specific = NULL; - } - else goto error; - - switch (fp->format.format) { - case binary_format: - case bam: - case bcf: - fp->fp.bgzf = bgzf_hopen(hfile, mode); - if (fp->fp.bgzf == NULL) goto error; - fp->is_bin = 1; - break; - - case cram: - fp->fp.cram = cram_dopen(hfile, fn, mode); - if (fp->fp.cram == NULL) goto error; - if (!fp->is_write) - cram_set_option(fp->fp.cram, CRAM_OPT_DECODE_MD, 1); - fp->is_cram = 1; - break; - - case text_format: - case sam: - case vcf: - if (!fp->is_write) { - #if KS_BGZF - BGZF *gzfp = bgzf_hopen(hfile, mode); - #else - // TODO Implement gzip hFILE adaptor - hclose(hfile); // This won't work, especially for stdin - gzFile gzfp = strcmp(fn, "-")? gzopen(fn, "rb") : gzdopen(fileno(stdin), "rb"); - #endif - if (gzfp) fp->fp.voidp = ks_init(gzfp); - else goto error; - } - else if (fp->format.compression != no_compression) { - fp->fp.bgzf = bgzf_hopen(hfile, mode); - if (fp->fp.bgzf == NULL) goto error; - } - else - fp->fp.hfile = hfile; - break; - - default: - goto error; - } - - return fp; - -error: - if (hts_verbose >= 2) - fprintf(stderr, "[E::%s] fail to open file '%s'\n", __func__, fn); - - if (fp) { - free(fp->fn); - free(fp->fn_aux); - free(fp); - } - return NULL; -} - -int hts_close(htsFile *fp) -{ - int ret, save; - - switch (fp->format.format) { - case binary_format: - case bam: - case bcf: - ret = bgzf_close(fp->fp.bgzf); - break; - - case cram: - if (!fp->is_write) { - switch (cram_eof(fp->fp.cram)) { - case 0: - fprintf(stderr, "[E::%s] Failed to decode sequence.\n", __func__); - return -1; - case 2: - fprintf(stderr, "[W::%s] EOF marker is absent. The input is probably truncated.\n", __func__); - break; - default: /* case 1, expected EOF */ - break; - } - } - ret = cram_close(fp->fp.cram); - break; - - case text_format: - case sam: - case vcf: - if (!fp->is_write) { - #if KS_BGZF - BGZF *gzfp = ((kstream_t*)fp->fp.voidp)->f; - ret = bgzf_close(gzfp); - #else - gzFile gzfp = ((kstream_t*)fp->fp.voidp)->f; - ret = gzclose(gzfp); - #endif - ks_destroy((kstream_t*)fp->fp.voidp); - } - else if (fp->format.compression != no_compression) - ret = bgzf_close(fp->fp.bgzf); - else - ret = hclose(fp->fp.hfile); - break; - - default: - ret = -1; - break; - } - - save = errno; - free(fp->fn); - free(fp->fn_aux); - free(fp->line.s); - free(fp); - errno = save; - return ret; -} - -const htsFormat *hts_get_format(htsFile *fp) -{ - return fp? &fp->format : NULL; -} - -int hts_set_opt(htsFile *fp, enum cram_option opt, ...) { - int r; - va_list args; - - if (fp->format.format != cram) - return 0; - - va_start(args, opt); - r = cram_set_voption(fp->fp.cram, opt, args); - va_end(args); - - return r; -} - -int hts_set_threads(htsFile *fp, int n) -{ - if (fp->format.compression == bgzf) { - return bgzf_mt(fp->fp.bgzf, n, 256); - } else if (fp->format.format == cram) { - return hts_set_opt(fp, CRAM_OPT_NTHREADS, n); - } - else return 0; -} - -int hts_set_fai_filename(htsFile *fp, const char *fn_aux) -{ - free(fp->fn_aux); - if (fn_aux) { - fp->fn_aux = strdup(fn_aux); - if (fp->fn_aux == NULL) return -1; - } - else fp->fn_aux = NULL; - - if (fp->format.format == cram) - cram_set_option(fp->fp.cram, CRAM_OPT_REFERENCE, fp->fn_aux); - - return 0; -} - -// For VCF/BCF backward sweeper. Not exposing these functions because their -// future is uncertain. Things will probably have to change with hFILE... -BGZF *hts_get_bgzfp(htsFile *fp) -{ - if ( fp->is_bin ) - return fp->fp.bgzf; - else - return ((kstream_t*)fp->fp.voidp)->f; -} -int hts_useek(htsFile *fp, long uoffset, int where) -{ - if ( fp->is_bin ) - return bgzf_useek(fp->fp.bgzf, uoffset, where); - else - { - ks_rewind((kstream_t*)fp->fp.voidp); - ((kstream_t*)fp->fp.voidp)->seek_pos = uoffset; - return bgzf_useek(((kstream_t*)fp->fp.voidp)->f, uoffset, where); - } -} -long hts_utell(htsFile *fp) -{ - if ( fp->is_bin ) - return bgzf_utell(fp->fp.bgzf); - else - return ((kstream_t*)fp->fp.voidp)->seek_pos; -} - -int hts_getline(htsFile *fp, int delimiter, kstring_t *str) -{ - int ret, dret; - ret = ks_getuntil((kstream_t*)fp->fp.voidp, delimiter, str, &dret); - ++fp->lineno; - return ret; -} - -char **hts_readlist(const char *string, int is_file, int *_n) -{ - int m = 0, n = 0, dret; - char **s = 0; - if ( is_file ) - { -#if KS_BGZF - BGZF *fp = bgzf_open(string, "r"); -#else - gzFile fp = gzopen(string, "r"); -#endif - if ( !fp ) return NULL; - - kstream_t *ks; - kstring_t str; - str.s = 0; str.l = str.m = 0; - ks = ks_init(fp); - while (ks_getuntil(ks, KS_SEP_LINE, &str, &dret) >= 0) - { - if (str.l == 0) continue; - n++; - hts_expand(char*,n,m,s); - s[n-1] = strdup(str.s); - } - ks_destroy(ks); -#if KS_BGZF - bgzf_close(fp); -#else - gzclose(fp); -#endif - free(str.s); - } - else - { - const char *q = string, *p = string; - while ( 1 ) - { - if (*p == ',' || *p == 0) - { - n++; - hts_expand(char*,n,m,s); - s[n-1] = (char*)calloc(p - q + 1, 1); - strncpy(s[n-1], q, p - q); - q = p + 1; - } - if ( !*p ) break; - p++; - } - } - s = (char**)realloc(s, n * sizeof(char*)); - *_n = n; - return s; -} - -char **hts_readlines(const char *fn, int *_n) -{ - int m = 0, n = 0, dret; - char **s = 0; -#if KS_BGZF - BGZF *fp = bgzf_open(fn, "r"); -#else - gzFile fp = gzopen(fn, "r"); -#endif - if ( fp ) { // read from file - kstream_t *ks; - kstring_t str; - str.s = 0; str.l = str.m = 0; - ks = ks_init(fp); - while (ks_getuntil(ks, KS_SEP_LINE, &str, &dret) >= 0) { - if (str.l == 0) continue; - if (m == n) { - m = m? m<<1 : 16; - s = (char**)realloc(s, m * sizeof(char*)); - } - s[n++] = strdup(str.s); - } - ks_destroy(ks); - #if KS_BGZF - bgzf_close(fp); - #else - gzclose(fp); - #endif - s = (char**)realloc(s, n * sizeof(char*)); - free(str.s); - } else if (*fn == ':') { // read from string - const char *q, *p; - for (q = p = fn + 1;; ++p) - if (*p == ',' || *p == 0) { - if (m == n) { - m = m? m<<1 : 16; - s = (char**)realloc(s, m * sizeof(char*)); - } - s[n] = (char*)calloc(p - q + 1, 1); - strncpy(s[n++], q, p - q); - q = p + 1; - if (*p == 0) break; - } - } else return 0; - s = (char**)realloc(s, n * sizeof(char*)); - *_n = n; - return s; -} - -// DEPRECATED: To be removed in a future HTSlib release -int hts_file_type(const char *fname) -{ - int len = strlen(fname); - if ( !strcasecmp(".vcf.gz",fname+len-7) ) return FT_VCF_GZ; - if ( !strcasecmp(".vcf",fname+len-4) ) return FT_VCF; - if ( !strcasecmp(".bcf",fname+len-4) ) return FT_BCF_GZ; - if ( !strcmp("-",fname) ) return FT_STDIN; - - hFILE *f = hopen(fname, "r"); - if (f == NULL) return 0; - - htsFormat fmt; - if (hts_detect_format(f, &fmt) < 0) { hclose_abruptly(f); return 0; } - if (hclose(f) < 0) return 0; - - switch (fmt.format) { - case vcf: return (fmt.compression == no_compression)? FT_VCF : FT_VCF_GZ; - case bcf: return (fmt.compression == no_compression)? FT_BCF : FT_BCF_GZ; - default: return 0; - } -} - -/**************** - *** Indexing *** - ****************/ - -#define HTS_MIN_MARKER_DIST 0x10000 - -// Finds the special meta bin -// ((1<<(3 * n_lvls + 3)) - 1) / 7 + 1 -#define META_BIN(idx) ((idx)->n_bins + 1) - -#define pair64_lt(a,b) ((a).u < (b).u) - -#include "htslib/ksort.h" -KSORT_INIT(_off, hts_pair64_t, pair64_lt) - -typedef struct { - int32_t m, n; - uint64_t loff; - hts_pair64_t *list; -} bins_t; - -#include "htslib/khash.h" -KHASH_MAP_INIT_INT(bin, bins_t) -typedef khash_t(bin) bidx_t; - -typedef struct { - int32_t n, m; - uint64_t *offset; -} lidx_t; - -struct __hts_idx_t { - int fmt, min_shift, n_lvls, n_bins; - uint32_t l_meta; - int32_t n, m; - uint64_t n_no_coor; - bidx_t **bidx; - lidx_t *lidx; - uint8_t *meta; - struct { - uint32_t last_bin, save_bin; - int last_coor, last_tid, save_tid, finished; - uint64_t last_off, save_off; - uint64_t off_beg, off_end; - uint64_t n_mapped, n_unmapped; - } z; // keep internal states -}; - -static inline void insert_to_b(bidx_t *b, int bin, uint64_t beg, uint64_t end) -{ - khint_t k; - bins_t *l; - int absent; - k = kh_put(bin, b, bin, &absent); - l = &kh_value(b, k); - if (absent) { - l->m = 1; l->n = 0; - l->list = (hts_pair64_t*)calloc(l->m, sizeof(hts_pair64_t)); - } - if (l->n == l->m) { - l->m <<= 1; - l->list = (hts_pair64_t*)realloc(l->list, l->m * sizeof(hts_pair64_t)); - } - l->list[l->n].u = beg; - l->list[l->n++].v = end; -} - -static inline void insert_to_l(lidx_t *l, int64_t _beg, int64_t _end, uint64_t offset, int min_shift) -{ - int i, beg, end; - beg = _beg >> min_shift; - end = (_end - 1) >> min_shift; - if (l->m < end + 1) { - int old_m = l->m; - l->m = end + 1; - kroundup32(l->m); - l->offset = (uint64_t*)realloc(l->offset, l->m * sizeof(uint64_t)); - memset(l->offset + old_m, 0xff, 8 * (l->m - old_m)); // fill l->offset with (uint64_t)-1 - } - if (beg == end) { // to save a loop in this case - if (l->offset[beg] == (uint64_t)-1) l->offset[beg] = offset; - } else { - for (i = beg; i <= end; ++i) - if (l->offset[i] == (uint64_t)-1) l->offset[i] = offset; - } - if (l->n < end + 1) l->n = end + 1; -} - -hts_idx_t *hts_idx_init(int n, int fmt, uint64_t offset0, int min_shift, int n_lvls) -{ - hts_idx_t *idx; - idx = (hts_idx_t*)calloc(1, sizeof(hts_idx_t)); - if (idx == NULL) return NULL; - idx->fmt = fmt; - idx->min_shift = min_shift; - idx->n_lvls = n_lvls; - idx->n_bins = ((1<<(3 * n_lvls + 3)) - 1) / 7; - idx->z.save_bin = idx->z.save_tid = idx->z.last_tid = idx->z.last_bin = 0xffffffffu; - idx->z.save_off = idx->z.last_off = idx->z.off_beg = idx->z.off_end = offset0; - idx->z.last_coor = 0xffffffffu; - if (n) { - idx->n = idx->m = n; - idx->bidx = (bidx_t**)calloc(n, sizeof(bidx_t*)); - if (idx->bidx == NULL) { free(idx); return NULL; } - idx->lidx = (lidx_t*) calloc(n, sizeof(lidx_t)); - if (idx->lidx == NULL) { free(idx->bidx); free(idx); return NULL; } - } - return idx; -} - -static void update_loff(hts_idx_t *idx, int i, int free_lidx) -{ - bidx_t *bidx = idx->bidx[i]; - lidx_t *lidx = &idx->lidx[i]; - khint_t k; - int l; - uint64_t offset0 = 0; - if (bidx) { - k = kh_get(bin, bidx, META_BIN(idx)); - if (k != kh_end(bidx)) - offset0 = kh_val(bidx, k).list[0].u; - for (l = 0; l < lidx->n && lidx->offset[l] == (uint64_t)-1; ++l) - lidx->offset[l] = offset0; - } else l = 1; - for (; l < lidx->n; ++l) // fill missing values - if (lidx->offset[l] == (uint64_t)-1) - lidx->offset[l] = lidx->offset[l-1]; - if (bidx == 0) return; - for (k = kh_begin(bidx); k != kh_end(bidx); ++k) // set loff - if (kh_exist(bidx, k)) - { - if ( kh_key(bidx, k) < idx->n_bins ) - { - int bot_bin = hts_bin_bot(kh_key(bidx, k), idx->n_lvls); - // disable linear index if bot_bin out of bounds - kh_val(bidx, k).loff = bot_bin < lidx->n ? lidx->offset[bot_bin] : 0; - } - else - kh_val(bidx, k).loff = 0; - } - if (free_lidx) { - free(lidx->offset); - lidx->m = lidx->n = 0; - lidx->offset = 0; - } -} - -static void compress_binning(hts_idx_t *idx, int i) -{ - bidx_t *bidx = idx->bidx[i]; - khint_t k; - int l, m; - if (bidx == 0) return; - // merge a bin to its parent if the bin is too small - for (l = idx->n_lvls; l > 0; --l) { - unsigned start = hts_bin_first(l); - for (k = kh_begin(bidx); k != kh_end(bidx); ++k) { - bins_t *p, *q; - if (!kh_exist(bidx, k) || kh_key(bidx, k) >= idx->n_bins || kh_key(bidx, k) < start) continue; - p = &kh_value(bidx, k); - if (l < idx->n_lvls && p->n > 1) ks_introsort(_off, p->n, p->list); - if ((p->list[p->n - 1].v>>16) - (p->list[0].u>>16) < HTS_MIN_MARKER_DIST) { - khint_t kp; - kp = kh_get(bin, bidx, hts_bin_parent(kh_key(bidx, k))); - if (kp == kh_end(bidx)) continue; - q = &kh_val(bidx, kp); - if (q->n + p->n > q->m) { - q->m = q->n + p->n; - kroundup32(q->m); - q->list = (hts_pair64_t*)realloc(q->list, q->m * sizeof(hts_pair64_t)); - } - memcpy(q->list + q->n, p->list, p->n * sizeof(hts_pair64_t)); - q->n += p->n; - free(p->list); - kh_del(bin, bidx, k); - } - } - } - k = kh_get(bin, bidx, 0); - if (k != kh_end(bidx)) ks_introsort(_off, kh_val(bidx, k).n, kh_val(bidx, k).list); - // merge adjacent chunks that start from the same BGZF block - for (k = kh_begin(bidx); k != kh_end(bidx); ++k) { - bins_t *p; - if (!kh_exist(bidx, k) || kh_key(bidx, k) >= idx->n_bins) continue; - p = &kh_value(bidx, k); - for (l = 1, m = 0; l < p->n; ++l) { - if (p->list[m].v>>16 >= p->list[l].u>>16) { - if (p->list[m].v < p->list[l].v) p->list[m].v = p->list[l].v; - } else p->list[++m] = p->list[l]; - } - p->n = m + 1; - } -} - -void hts_idx_finish(hts_idx_t *idx, uint64_t final_offset) -{ - int i; - if (idx == NULL || idx->z.finished) return; // do not run this function on an empty index or multiple times - if (idx->z.save_tid >= 0) { - insert_to_b(idx->bidx[idx->z.save_tid], idx->z.save_bin, idx->z.save_off, final_offset); - insert_to_b(idx->bidx[idx->z.save_tid], META_BIN(idx), idx->z.off_beg, final_offset); - insert_to_b(idx->bidx[idx->z.save_tid], META_BIN(idx), idx->z.n_mapped, idx->z.n_unmapped); - } - for (i = 0; i < idx->n; ++i) { - update_loff(idx, i, (idx->fmt == HTS_FMT_CSI)); - compress_binning(idx, i); - } - idx->z.finished = 1; -} - -int hts_idx_push(hts_idx_t *idx, int tid, int beg, int end, uint64_t offset, int is_mapped) -{ - int bin; - if (tid<0) beg = -1, end = 0; - if (tid >= idx->m) { // enlarge the index - int32_t oldm = idx->m; - idx->m = idx->m? idx->m<<1 : 2; - idx->bidx = (bidx_t**)realloc(idx->bidx, idx->m * sizeof(bidx_t*)); - idx->lidx = (lidx_t*) realloc(idx->lidx, idx->m * sizeof(lidx_t)); - memset(&idx->bidx[oldm], 0, (idx->m - oldm) * sizeof(bidx_t*)); - memset(&idx->lidx[oldm], 0, (idx->m - oldm) * sizeof(lidx_t)); - } - if (idx->n < tid + 1) idx->n = tid + 1; - if (idx->z.finished) return 0; - if (idx->z.last_tid != tid || (idx->z.last_tid >= 0 && tid < 0)) { // change of chromosome - if ( tid>=0 && idx->n_no_coor ) - { - if (hts_verbose >= 1) fprintf(stderr,"[E::%s] NO_COOR reads not in a single block at the end %d %d\n", __func__, tid,idx->z.last_tid); - return -1; - } - if (tid>=0 && idx->bidx[tid] != 0) - { - if (hts_verbose >= 1) fprintf(stderr, "[E::%s] chromosome blocks not continuous\n", __func__); - return -1; - } - idx->z.last_tid = tid; - idx->z.last_bin = 0xffffffffu; - } else if (tid >= 0 && idx->z.last_coor > beg) { // test if positions are out of order - if (hts_verbose >= 1) fprintf(stderr, "[E::%s] unsorted positions\n", __func__); - return -1; - } - if ( tid>=0 ) - { - if (idx->bidx[tid] == 0) idx->bidx[tid] = kh_init(bin); - if ( is_mapped) - insert_to_l(&idx->lidx[tid], beg, end, idx->z.last_off, idx->min_shift); // last_off points to the start of the current record - } - else idx->n_no_coor++; - bin = hts_reg2bin(beg, end, idx->min_shift, idx->n_lvls); - if ((int)idx->z.last_bin != bin) { // then possibly write the binning index - if (idx->z.save_bin != 0xffffffffu) // save_bin==0xffffffffu only happens to the first record - insert_to_b(idx->bidx[idx->z.save_tid], idx->z.save_bin, idx->z.save_off, idx->z.last_off); - if (idx->z.last_bin == 0xffffffffu && idx->z.save_bin != 0xffffffffu) { // change of chr; keep meta information - idx->z.off_end = idx->z.last_off; - insert_to_b(idx->bidx[idx->z.save_tid], META_BIN(idx), idx->z.off_beg, idx->z.off_end); - insert_to_b(idx->bidx[idx->z.save_tid], META_BIN(idx), idx->z.n_mapped, idx->z.n_unmapped); - idx->z.n_mapped = idx->z.n_unmapped = 0; - idx->z.off_beg = idx->z.off_end; - } - idx->z.save_off = idx->z.last_off; - idx->z.save_bin = idx->z.last_bin = bin; - idx->z.save_tid = tid; - } - if (is_mapped) ++idx->z.n_mapped; - else ++idx->z.n_unmapped; - idx->z.last_off = offset; - idx->z.last_coor = beg; - return 0; -} - -void hts_idx_destroy(hts_idx_t *idx) -{ - khint_t k; - int i; - if (idx == 0) return; - // For HTS_FMT_CRAI, idx actually points to a different type -- see sam.c - if (idx->fmt == HTS_FMT_CRAI) { free(idx); return; } - - for (i = 0; i < idx->m; ++i) { - bidx_t *bidx = idx->bidx[i]; - free(idx->lidx[i].offset); - if (bidx == 0) continue; - for (k = kh_begin(bidx); k != kh_end(bidx); ++k) - if (kh_exist(bidx, k)) - free(kh_value(bidx, k).list); - kh_destroy(bin, bidx); - } - free(idx->bidx); free(idx->lidx); free(idx->meta); - free(idx); -} - -static inline long idx_read(int is_bgzf, void *fp, void *buf, long l) -{ - if (is_bgzf) return bgzf_read((BGZF*)fp, buf, l); - else return (long)fread(buf, 1, l, (FILE*)fp); -} - -static inline long idx_write(int is_bgzf, void *fp, const void *buf, long l) -{ - if (is_bgzf) return bgzf_write((BGZF*)fp, buf, l); - else return (long)fwrite(buf, 1, l, (FILE*)fp); -} - -static inline void swap_bins(bins_t *p) -{ - int i; - for (i = 0; i < p->n; ++i) { - ed_swap_8p(&p->list[i].u); - ed_swap_8p(&p->list[i].v); - } -} - -static void hts_idx_save_core(const hts_idx_t *idx, void *fp, int fmt) -{ - int32_t i, size, is_be; - int is_bgzf = (fmt != HTS_FMT_BAI); - is_be = ed_is_big(); - if (is_be) { - uint32_t x = idx->n; - idx_write(is_bgzf, fp, ed_swap_4p(&x), 4); - } else idx_write(is_bgzf, fp, &idx->n, 4); - if (fmt == HTS_FMT_TBI && idx->l_meta) idx_write(is_bgzf, fp, idx->meta, idx->l_meta); - for (i = 0; i < idx->n; ++i) { - khint_t k; - bidx_t *bidx = idx->bidx[i]; - lidx_t *lidx = &idx->lidx[i]; - // write binning index - size = bidx? kh_size(bidx) : 0; - if (is_be) { // big endian - uint32_t x = size; - idx_write(is_bgzf, fp, ed_swap_4p(&x), 4); - } else idx_write(is_bgzf, fp, &size, 4); - if (bidx == 0) goto write_lidx; - for (k = kh_begin(bidx); k != kh_end(bidx); ++k) { - bins_t *p; - if (!kh_exist(bidx, k)) continue; - p = &kh_value(bidx, k); - if (is_be) { // big endian - uint32_t x; - x = kh_key(bidx, k); idx_write(is_bgzf, fp, ed_swap_4p(&x), 4); - if (fmt == HTS_FMT_CSI) { - uint64_t y = kh_val(bidx, k).loff; - idx_write(is_bgzf, fp, ed_swap_4p(&y), 8); - } - x = p->n; idx_write(is_bgzf, fp, ed_swap_4p(&x), 4); - swap_bins(p); - idx_write(is_bgzf, fp, p->list, 16 * p->n); - swap_bins(p); - } else { - idx_write(is_bgzf, fp, &kh_key(bidx, k), 4); - if (fmt == HTS_FMT_CSI) idx_write(is_bgzf, fp, &kh_val(bidx, k).loff, 8); - //int j;for(j=0;jn;++j)fprintf(stderr,"%d,%llx,%d,%llx:%llx\n",kh_key(bidx,k),kh_val(bidx, k).loff,j,p->list[j].u,p->list[j].v); - idx_write(is_bgzf, fp, &p->n, 4); - idx_write(is_bgzf, fp, p->list, p->n << 4); - } - } -write_lidx: - if (fmt != HTS_FMT_CSI) { - if (is_be) { - int32_t x = lidx->n; - idx_write(is_bgzf, fp, ed_swap_4p(&x), 4); - for (x = 0; x < lidx->n; ++x) ed_swap_8p(&lidx->offset[x]); - idx_write(is_bgzf, fp, lidx->offset, lidx->n << 3); - for (x = 0; x < lidx->n; ++x) ed_swap_8p(&lidx->offset[x]); - } else { - idx_write(is_bgzf, fp, &lidx->n, 4); - idx_write(is_bgzf, fp, lidx->offset, lidx->n << 3); - } - } - } - if (is_be) { // write the number of reads without coordinates - uint64_t x = idx->n_no_coor; - idx_write(is_bgzf, fp, &x, 8); - } else idx_write(is_bgzf, fp, &idx->n_no_coor, 8); -} - -void hts_idx_save(const hts_idx_t *idx, const char *fn, int fmt) -{ - char *fnidx; - fnidx = (char*)calloc(1, strlen(fn) + 5); - strcpy(fnidx, fn); - if (fmt == HTS_FMT_CSI) { - BGZF *fp; - uint32_t x[3]; - int is_be, i; - is_be = ed_is_big(); - fp = bgzf_open(strcat(fnidx, ".csi"), "w"); - bgzf_write(fp, "CSI\1", 4); - x[0] = idx->min_shift; x[1] = idx->n_lvls; x[2] = idx->l_meta; - if (is_be) { - for (i = 0; i < 3; ++i) - bgzf_write(fp, ed_swap_4p(&x[i]), 4); - } else bgzf_write(fp, &x, 12); - if (idx->l_meta) bgzf_write(fp, idx->meta, idx->l_meta); - hts_idx_save_core(idx, fp, HTS_FMT_CSI); - bgzf_close(fp); - } else if (fmt == HTS_FMT_TBI) { - BGZF *fp; - fp = bgzf_open(strcat(fnidx, ".tbi"), "w"); - bgzf_write(fp, "TBI\1", 4); - hts_idx_save_core(idx, fp, HTS_FMT_TBI); - bgzf_close(fp); - } else if (fmt == HTS_FMT_BAI) { - FILE *fp; - fp = fopen(strcat(fnidx, ".bai"), "w"); - fwrite("BAI\1", 1, 4, fp); - hts_idx_save_core(idx, fp, HTS_FMT_BAI); - fclose(fp); - } else abort(); - free(fnidx); -} - -static int hts_idx_load_core(hts_idx_t *idx, void *fp, int fmt) -{ - int32_t i, n, is_be; - int is_bgzf = (fmt != HTS_FMT_BAI); - is_be = ed_is_big(); - if (idx == NULL) return -4; - for (i = 0; i < idx->n; ++i) { - bidx_t *h; - lidx_t *l = &idx->lidx[i]; - uint32_t key; - int j, absent; - bins_t *p; - h = idx->bidx[i] = kh_init(bin); - if (idx_read(is_bgzf, fp, &n, 4) != 4) return -1; - if (is_be) ed_swap_4p(&n); - for (j = 0; j < n; ++j) { - khint_t k; - if (idx_read(is_bgzf, fp, &key, 4) != 4) return -1; - if (is_be) ed_swap_4p(&key); - k = kh_put(bin, h, key, &absent); - if (absent <= 0) return -3; // Duplicate bin number - p = &kh_val(h, k); - if (fmt == HTS_FMT_CSI) { - if (idx_read(is_bgzf, fp, &p->loff, 8) != 8) return -1; - if (is_be) ed_swap_8p(&p->loff); - } else p->loff = 0; - if (idx_read(is_bgzf, fp, &p->n, 4) != 4) return -1; - if (is_be) ed_swap_4p(&p->n); - p->m = p->n; - p->list = (hts_pair64_t*)malloc(p->m * sizeof(hts_pair64_t)); - if (p->list == NULL) return -2; - if (idx_read(is_bgzf, fp, p->list, p->n<<4) != p->n<<4) return -1; - if (is_be) swap_bins(p); - } - if (fmt != HTS_FMT_CSI) { // load linear index - int j; - if (idx_read(is_bgzf, fp, &l->n, 4) != 4) return -1; - if (is_be) ed_swap_4p(&l->n); - l->m = l->n; - l->offset = (uint64_t*)malloc(l->n * sizeof(uint64_t)); - if (l->offset == NULL) return -2; - if (idx_read(is_bgzf, fp, l->offset, l->n << 3) != l->n << 3) return -1; - if (is_be) for (j = 0; j < l->n; ++j) ed_swap_8p(&l->offset[j]); - for (j = 1; j < l->n; ++j) // fill missing values; may happen given older samtools and tabix - if (l->offset[j] == 0) l->offset[j] = l->offset[j-1]; - update_loff(idx, i, 1); - } - } - if (idx_read(is_bgzf, fp, &idx->n_no_coor, 8) != 8) idx->n_no_coor = 0; - if (is_be) ed_swap_8p(&idx->n_no_coor); - return 0; -} - -hts_idx_t *hts_idx_load_local(const char *fn, int fmt) -{ - uint8_t magic[4]; - int i, is_be; - hts_idx_t *idx = NULL; - is_be = ed_is_big(); - if (fmt == HTS_FMT_CSI) { - BGZF *fp; - uint32_t x[3], n; - uint8_t *meta = 0; - if ((fp = bgzf_open(fn, "r")) == 0) return NULL; - if (bgzf_read(fp, magic, 4) != 4) goto csi_fail; - if (memcmp(magic, "CSI\1", 4) != 0) goto csi_fail; - if (bgzf_read(fp, x, 12) != 12) goto csi_fail; - if (is_be) for (i = 0; i < 3; ++i) ed_swap_4p(&x[i]); - if (x[2]) { - if ((meta = (uint8_t*)malloc(x[2])) == NULL) goto csi_fail; - if (bgzf_read(fp, meta, x[2]) != x[2]) goto csi_fail; - } - if (bgzf_read(fp, &n, 4) != 4) goto csi_fail; - if (is_be) ed_swap_4p(&n); - if ((idx = hts_idx_init(n, fmt, 0, x[0], x[1])) == NULL) goto csi_fail; - idx->l_meta = x[2]; - idx->meta = meta; - meta = NULL; - if (hts_idx_load_core(idx, fp, HTS_FMT_CSI) < 0) goto csi_fail; - bgzf_close(fp); - return idx; - - csi_fail: - bgzf_close(fp); - hts_idx_destroy(idx); - free(meta); - return NULL; - - } else if (fmt == HTS_FMT_TBI) { - BGZF *fp; - uint32_t x[8]; - if ((fp = bgzf_open(fn, "r")) == 0) return NULL; - if (bgzf_read(fp, magic, 4) != 4) goto tbi_fail; - if (memcmp(magic, "TBI\1", 4) != 0) goto tbi_fail; - if (bgzf_read(fp, x, 32) != 32) goto tbi_fail; - if (is_be) for (i = 0; i < 8; ++i) ed_swap_4p(&x[i]); - if ((idx = hts_idx_init(x[0], fmt, 0, 14, 5)) == NULL) goto tbi_fail; - idx->l_meta = 28 + x[7]; - if ((idx->meta = (uint8_t*)malloc(idx->l_meta)) == NULL) goto tbi_fail; - memcpy(idx->meta, &x[1], 28); - if (bgzf_read(fp, idx->meta + 28, x[7]) != x[7]) goto tbi_fail; - if (hts_idx_load_core(idx, fp, HTS_FMT_TBI) < 0) goto tbi_fail; - bgzf_close(fp); - return idx; - - tbi_fail: - bgzf_close(fp); - hts_idx_destroy(idx); - return NULL; - - } else if (fmt == HTS_FMT_BAI) { - uint32_t n; - FILE *fp; - if ((fp = fopen(fn, "rb")) == 0) return NULL; - if (fread(magic, 1, 4, fp) != 4) goto bai_fail; - if (memcmp(magic, "BAI\1", 4) != 0) goto bai_fail; - if (fread(&n, 4, 1, fp) != 1) goto bai_fail; - if (is_be) ed_swap_4p(&n); - idx = hts_idx_init(n, fmt, 0, 14, 5); - if (hts_idx_load_core(idx, fp, HTS_FMT_BAI) < 0) goto bai_fail; - fclose(fp); - return idx; - - bai_fail: - fclose(fp); - hts_idx_destroy(idx); - return NULL; - - } else abort(); -} - -void hts_idx_set_meta(hts_idx_t *idx, int l_meta, uint8_t *meta, int is_copy) -{ - if (idx->meta) free(idx->meta); - idx->l_meta = l_meta; - if (is_copy) { - idx->meta = (uint8_t*)malloc(l_meta); - memcpy(idx->meta, meta, l_meta); - } else idx->meta = meta; -} - -uint8_t *hts_idx_get_meta(hts_idx_t *idx, int *l_meta) -{ - *l_meta = idx->l_meta; - return idx->meta; -} - -const char **hts_idx_seqnames(const hts_idx_t *idx, int *n, hts_id2name_f getid, void *hdr) -{ - if ( !idx->n ) - { - *n = 0; - return NULL; - } - - int tid = 0, i; - const char **names = (const char**) calloc(idx->n,sizeof(const char*)); - for (i=0; in; i++) - { - bidx_t *bidx = idx->bidx[i]; - if ( !bidx ) continue; - names[tid++] = getid(hdr,i); - } - *n = tid; - return names; -} - -int hts_idx_get_stat(const hts_idx_t* idx, int tid, uint64_t* mapped, uint64_t* unmapped) -{ - if ( idx->fmt == HTS_FMT_CRAI ) { - *mapped = 0; *unmapped = 0; - return -1; - } - - bidx_t *h = idx->bidx[tid]; - khint_t k = kh_get(bin, h, META_BIN(idx)); - if (k != kh_end(h)) { - *mapped = kh_val(h, k).list[1].u; - *unmapped = kh_val(h, k).list[1].v; - return 0; - } else { - *mapped = 0; *unmapped = 0; - return -1; - } -} - -uint64_t hts_idx_get_n_no_coor(const hts_idx_t* idx) -{ - return idx->n_no_coor; -} - -/**************** - *** Iterator *** - ****************/ - -static inline int reg2bins(int64_t beg, int64_t end, hts_itr_t *itr, int min_shift, int n_lvls) -{ - int l, t, s = min_shift + (n_lvls<<1) + n_lvls; - if (beg >= end) return 0; - if (end >= 1LL<>s); e = t + (end>>s); n = e - b + 1; - if (itr->bins.n + n > itr->bins.m) { - itr->bins.m = itr->bins.n + n; - kroundup32(itr->bins.m); - itr->bins.a = (int*)realloc(itr->bins.a, sizeof(int) * itr->bins.m); - } - for (i = b; i <= e; ++i) itr->bins.a[itr->bins.n++] = i; - } - return itr->bins.n; -} - -hts_itr_t *hts_itr_query(const hts_idx_t *idx, int tid, int beg, int end, hts_readrec_func *readrec) -{ - int i, n_off, l, bin; - hts_pair64_t *off; - khint_t k; - bidx_t *bidx; - uint64_t min_off; - hts_itr_t *iter = 0; - if (tid < 0) { - int finished0 = 0; - uint64_t off0 = (uint64_t)-1; - khint_t k; - switch (tid) { - case HTS_IDX_START: - // Find the smallest offset, note that sequence ids may not be ordered sequentially - for (i=0; in; i++) - { - bidx = idx->bidx[i]; - k = kh_get(bin, bidx, META_BIN(idx)); - if (k == kh_end(bidx)) continue; - if ( off0 > kh_val(bidx, k).list[0].u ) off0 = kh_val(bidx, k).list[0].u; - } - if ( off0==(uint64_t)-1 && idx->n_no_coor ) off0 = 0; // only no-coor reads in this bam - break; - - case HTS_IDX_NOCOOR: - if ( idx->n>0 ) - { - bidx = idx->bidx[idx->n - 1]; - k = kh_get(bin, bidx, META_BIN(idx)); - if (k != kh_end(bidx)) off0 = kh_val(bidx, k).list[0].v; - } - if ( off0==(uint64_t)-1 && idx->n_no_coor ) off0 = 0; // only no-coor reads in this bam - break; - - case HTS_IDX_REST: - off0 = 0; - break; - - case HTS_IDX_NONE: - finished0 = 1; - off0 = 0; - break; - - default: - return 0; - } - if (off0 != (uint64_t)-1) { - iter = (hts_itr_t*)calloc(1, sizeof(hts_itr_t)); - iter->read_rest = 1; - iter->finished = finished0; - iter->curr_off = off0; - iter->readrec = readrec; - return iter; - } else return 0; - } - - if (beg < 0) beg = 0; - if (end < beg) return 0; - if (tid >= idx->n || (bidx = idx->bidx[tid]) == NULL) return 0; - - iter = (hts_itr_t*)calloc(1, sizeof(hts_itr_t)); - iter->tid = tid, iter->beg = beg, iter->end = end; iter->i = -1; - iter->readrec = readrec; - - // compute min_off - bin = hts_bin_first(idx->n_lvls) + (beg>>idx->min_shift); - do { - int first; - k = kh_get(bin, bidx, bin); - if (k != kh_end(bidx)) break; - first = (hts_bin_parent(bin)<<3) + 1; - if (bin > first) --bin; - else bin = hts_bin_parent(bin); - } while (bin); - if (bin == 0) k = kh_get(bin, bidx, bin); - min_off = k != kh_end(bidx)? kh_val(bidx, k).loff : 0; - // retrieve bins - reg2bins(beg, end, iter, idx->min_shift, idx->n_lvls); - for (i = n_off = 0; i < iter->bins.n; ++i) - if ((k = kh_get(bin, bidx, iter->bins.a[i])) != kh_end(bidx)) - n_off += kh_value(bidx, k).n; - if (n_off == 0) return iter; - off = (hts_pair64_t*)calloc(n_off, sizeof(hts_pair64_t)); - for (i = n_off = 0; i < iter->bins.n; ++i) { - if ((k = kh_get(bin, bidx, iter->bins.a[i])) != kh_end(bidx)) { - int j; - bins_t *p = &kh_value(bidx, k); - for (j = 0; j < p->n; ++j) - if (p->list[j].v > min_off) off[n_off++] = p->list[j]; - } - } - if (n_off == 0) { - free(off); return iter; - } - ks_introsort(_off, n_off, off); - // resolve completely contained adjacent blocks - for (i = 1, l = 0; i < n_off; ++i) - if (off[l].v < off[i].v) off[++l] = off[i]; - n_off = l + 1; - // resolve overlaps between adjacent blocks; this may happen due to the merge in indexing - for (i = 1; i < n_off; ++i) - if (off[i-1].v >= off[i].u) off[i-1].v = off[i].u; - // merge adjacent blocks - for (i = 1, l = 0; i < n_off; ++i) { - if (off[l].v>>16 == off[i].u>>16) off[l].v = off[i].v; - else off[++l] = off[i]; - } - n_off = l + 1; - iter->n_off = n_off; iter->off = off; - return iter; -} - -void hts_itr_destroy(hts_itr_t *iter) -{ - if (iter) { free(iter->off); free(iter->bins.a); free(iter); } -} - -const char *hts_parse_reg(const char *s, int *beg, int *end) -{ - int i, k, l, name_end; - *beg = *end = -1; - name_end = l = strlen(s); - // determine the sequence name - for (i = l - 1; i >= 0; --i) if (s[i] == ':') break; // look for colon from the end - if (i >= 0) name_end = i; - if (name_end < l) { // check if this is really the end - int n_hyphen = 0; - for (i = name_end + 1; i < l; ++i) { - if (s[i] == '-') ++n_hyphen; - else if (!isdigit(s[i]) && s[i] != ',') break; - } - if (i < l || n_hyphen > 1) name_end = l; // malformated region string; then take str as the name - } - // parse the interval - if (name_end < l) { - char *tmp; - tmp = (char*)alloca(l - name_end + 1); - for (i = name_end + 1, k = 0; i < l; ++i) - if (s[i] != ',') tmp[k++] = s[i]; - tmp[k] = 0; - if ((*beg = strtol(tmp, &tmp, 10) - 1) < 0) *beg = 0; - *end = *tmp? strtol(tmp + 1, &tmp, 10) : INT_MAX; - if (*beg > *end) name_end = l; - } - if (name_end == l) *beg = 0, *end = INT_MAX; - return s + name_end; -} - -hts_itr_t *hts_itr_querys(const hts_idx_t *idx, const char *reg, hts_name2id_f getid, void *hdr, hts_itr_query_func *itr_query, hts_readrec_func *readrec) -{ - int tid, beg, end; - char *q, *tmp; - if (strcmp(reg, ".") == 0) - return itr_query(idx, HTS_IDX_START, 0, 0, readrec); - else if (strcmp(reg, "*") != 0) { - q = (char*)hts_parse_reg(reg, &beg, &end); - tmp = (char*)alloca(q - reg + 1); - strncpy(tmp, reg, q - reg); - tmp[q - reg] = 0; - if ((tid = getid(hdr, tmp)) < 0) - tid = getid(hdr, reg); - if (tid < 0) return 0; - return itr_query(idx, tid, beg, end, readrec); - } else return itr_query(idx, HTS_IDX_NOCOOR, 0, 0, readrec); -} - -int hts_itr_next(BGZF *fp, hts_itr_t *iter, void *r, void *data) -{ - int ret, tid, beg, end; - if (iter == NULL || iter->finished) return -1; - if (iter->read_rest) { - if (iter->curr_off) { // seek to the start - bgzf_seek(fp, iter->curr_off, SEEK_SET); - iter->curr_off = 0; // only seek once - } - ret = iter->readrec(fp, data, r, &tid, &beg, &end); - if (ret < 0) iter->finished = 1; - iter->curr_tid = tid; - iter->curr_beg = beg; - iter->curr_end = end; - return ret; - } - if (iter->off == 0) return -1; - for (;;) { - if (iter->curr_off == 0 || iter->curr_off >= iter->off[iter->i].v) { // then jump to the next chunk - if (iter->i == iter->n_off - 1) { ret = -1; break; } // no more chunks - if (iter->i < 0 || iter->off[iter->i].v != iter->off[iter->i+1].u) { // not adjacent chunks; then seek - bgzf_seek(fp, iter->off[iter->i+1].u, SEEK_SET); - iter->curr_off = bgzf_tell(fp); - } - ++iter->i; - } - if ((ret = iter->readrec(fp, data, r, &tid, &beg, &end)) >= 0) { - iter->curr_off = bgzf_tell(fp); - if (tid != iter->tid || beg >= iter->end) { // no need to proceed - ret = -1; break; - } else if (end > iter->beg && iter->end > beg) { - iter->curr_tid = tid; - iter->curr_beg = beg; - iter->curr_end = end; - return ret; - } - } else break; // end of file or error - } - iter->finished = 1; - return ret; -} - -/********************** - *** Retrieve index *** - **********************/ - -static char *test_and_fetch(const char *fn) -{ - FILE *fp; - if (hisremote(fn)) { - const int buf_size = 1 * 1024 * 1024; - hFILE *fp_remote; - uint8_t *buf; - int l; - const char *p; - for (p = fn + strlen(fn) - 1; p >= fn; --p) - if (*p == '/') break; - ++p; // p now points to the local file name - // Attempt to open local file first - if ((fp = fopen((char*)p, "rb")) != 0) - { - fclose(fp); - return (char*)p; - } - // Attempt to open remote file. Stay quiet on failure, it is OK to fail when trying first .csi then .tbi index. - if ((fp_remote = hopen(fn, "r")) == 0) return 0; - if ((fp = fopen(p, "w")) == 0) { - if (hts_verbose >= 1) fprintf(stderr, "[E::%s] fail to create file '%s' in the working directory\n", __func__, p); - hclose_abruptly(fp_remote); - return 0; - } - if (hts_verbose >= 3) fprintf(stderr, "[M::%s] downloading file '%s' to local directory\n", __func__, fn); - buf = (uint8_t*)calloc(buf_size, 1); - while ((l = hread(fp_remote, buf, buf_size)) > 0) fwrite(buf, 1, l, fp); - free(buf); - fclose(fp); - if (hclose(fp_remote) != 0) fprintf(stderr, "[E::%s] fail to close remote file '%s'\n", __func__, fn); - return (char*)p; - } else { - if ((fp = fopen(fn, "rb")) == 0) return 0; - fclose(fp); - return (char*)fn; - } -} - -char *hts_idx_getfn(const char *fn, const char *ext) -{ - int i, l_fn, l_ext; - char *fnidx, *ret; - l_fn = strlen(fn); l_ext = strlen(ext); - fnidx = (char*)calloc(l_fn + l_ext + 1, 1); - strcpy(fnidx, fn); strcpy(fnidx + l_fn, ext); - if ((ret = test_and_fetch(fnidx)) == 0) { - for (i = l_fn - 1; i > 0; --i) - if (fnidx[i] == '.') break; - strcpy(fnidx + i, ext); - ret = test_and_fetch(fnidx); - } - if (ret == 0) { - free(fnidx); - return 0; - } - l_fn = strlen(ret); - memmove(fnidx, ret, l_fn + 1); - return fnidx; -} - -hts_idx_t *hts_idx_load(const char *fn, int fmt) -{ - char *fnidx; - hts_idx_t *idx; - fnidx = hts_idx_getfn(fn, ".csi"); - if (fnidx) fmt = HTS_FMT_CSI; - else fnidx = hts_idx_getfn(fn, fmt == HTS_FMT_BAI? ".bai" : ".tbi"); - if (fnidx == 0) return 0; - - // Check that the index file is up to date, the main file might have changed - struct stat stat_idx,stat_main; - if ( !stat(fn, &stat_main) && !stat(fnidx, &stat_idx) ) - { - if ( stat_idx.st_mtime < stat_main.st_mtime ) - fprintf(stderr, "Warning: The index file is older than the data file: %s\n", fnidx); - } - idx = hts_idx_load_local(fnidx, fmt); - free(fnidx); - return idx; -} diff --git a/htslib/htsfile.1 b/htslib/htsfile.1 deleted file mode 100644 index b55cafa..0000000 --- a/htslib/htsfile.1 +++ /dev/null @@ -1,71 +0,0 @@ -.TH htsfile 1 "3 February 2015" "htslib-1.2.1" "Bioinformatics tools" -.SH NAME -htsfile \- identify high-throughput sequencing data files -.\" -.\" Copyright (C) 2015 Genome Research Ltd. -.\" -.\" Author: John Marshall -.\" -.\" 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. -.\" -.SH SYNOPSIS -.B htsfile -.RB [ -chH ] -.IR FILE ... -.SH DESCRIPTION -The \fBhtsfile\fR utility attempts to identify what kind of high-throughput -sequencing data files the specified files are, and provides minimal viewing -capabilities for some kinds of data file. -.P -It can identify sequencing data files such as SAM, BAM, and CRAM; -variant calling data files such as VCF and BCF; -index files used to index these data files; -and compressed versions of many of them. -.P -For each \fIFILE\fR given, \fBhtsfile\fP prints a description of the file -format determined, using similar keyword conventions to \fBfile\fP(1): -"text" indicates a textual file that can probably be viewed on a terminal; -"data" indicates binary data; -"sequence", "variant calling", and "index" indicate different categories of -data file. -When it can be identified, the name of the particular file format (such as -"BAM" or "VCF") is printed at the start of the description. -.P -When used to view file contents as text, \fBhtsfile\fP can optionally show -only headers or only data records, but has no other filtering capabilities. -Use \fBsamtools\fR or \fBbcftools\fR if you need more extensive viewing or -filtering capabilities. -.P -The following options are accepted: -.TP 4n -.BR -c ", " --view -Instead of identifying the specified files, display a textual representation -of their contents on standard output. -.TP -.BR -h ", " --header-only -Display data file headers only. -Implies \fB--view\fR. -.TP -.BR -H ", " --no-header -When viewing files, display data records only. -.PP -.SH SEE ALSO -.IR bcftools (1), -.IR file (1), -.IR samtools (1) diff --git a/htslib/htsfile.c b/htslib/htsfile.c deleted file mode 100644 index fac943b..0000000 --- a/htslib/htsfile.c +++ /dev/null @@ -1,168 +0,0 @@ -/* htsfile.c -- file identifier and minimal viewer. - - Copyright (C) 2014-2015 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#include -#include -#include -#include -#include - -#include "htslib/hfile.h" -#include "htslib/hts.h" -#include "htslib/sam.h" -#include "htslib/vcf.h" - -enum { identify, view_headers, view_all } mode = identify; -int show_headers = 1; - -static htsFile *dup_stdout(const char *mode) -{ - int fd = dup(STDOUT_FILENO); - hFILE *hfp = (fd >= 0)? hdopen(fd, mode) : NULL; - return hfp? hts_hopen(hfp, "-", mode) : NULL; -} - -static int view_sam(hFILE *hfp, const char *filename) -{ - samFile *in = hts_hopen(hfp, filename, "r"); - if (in == NULL) return 0; - samFile *out = dup_stdout("w"); - bam_hdr_t *hdr = sam_hdr_read(in); - - if (show_headers) sam_hdr_write(out, hdr); - if (mode == view_all) { - bam1_t *b = bam_init1(); - while (sam_read1(in, hdr, b) >= 0) - sam_write1(out, hdr, b); - bam_destroy1(b); - } - - bam_hdr_destroy(hdr); - hts_close(out); - hts_close(in); - return 1; -} - -static int view_vcf(hFILE *hfp, const char *filename) -{ - vcfFile *in = hts_hopen(hfp, filename, "r"); - if (in == NULL) return 0; - vcfFile *out = dup_stdout("w"); - bcf_hdr_t *hdr = bcf_hdr_read(in); - - if (show_headers) bcf_hdr_write(out, hdr); - if (mode == view_all) { - bcf1_t *rec = bcf_init(); - while (bcf_read(in, hdr, rec) >= 0) - bcf_write(out, hdr, rec); - bcf_destroy(rec); - } - - bcf_hdr_destroy(hdr); - hts_close(out); - hts_close(in); - return 1; -} - -static void usage(FILE *fp, int status) -{ - fprintf(fp, -"Usage: htsfile [-chH] FILE...\n" -"Options:\n" -" -c, --view Write textual form of FILEs to standard output\n" -" -h, --header-only Display only headers in view mode, not records\n" -" -H, --no-header Suppress header display in view mode\n"); - exit(status); -} - -int main(int argc, char **argv) -{ - static const struct option options[] = { - { "header-only", no_argument, NULL, 'h' }, - { "no-header", no_argument, NULL, 'H' }, - { "view", no_argument, NULL, 'c' }, - { "help", no_argument, NULL, '?' }, - { "version", no_argument, NULL, 1 }, - { NULL, 0, NULL, 0 } - }; - - int status = EXIT_SUCCESS; - int c, i; - while ((c = getopt_long(argc, argv, "chH?", options, NULL)) >= 0) - switch (c) { - case 'c': mode = view_all; break; - case 'h': mode = view_headers; show_headers = 1; break; - case 'H': show_headers = 0; break; - case 1: - printf( -"htsfile (htslib) %s\n" -"Copyright (C) 2015 Genome Research Ltd.\n", - hts_version()); - exit(EXIT_SUCCESS); - break; - case '?': usage(stdout, EXIT_SUCCESS); break; - default: usage(stderr, EXIT_FAILURE); break; - } - - if (optind == argc) usage(stderr, EXIT_FAILURE); - - for (i = optind; i < argc; i++) { - htsFormat fmt; - hFILE *fp = hopen(argv[i], "r"); - if (fp == NULL) { - fprintf(stderr, "htsfile: can't open \"%s\": %s\n", argv[i], strerror(errno)); - status = EXIT_FAILURE; - continue; - } - - if (hts_detect_format(fp, &fmt) < 0) { - fprintf(stderr, "htsfile: detecting \"%s\" format failed: %s\n", argv[i], strerror(errno)); - hclose_abruptly(fp); - status = EXIT_FAILURE; - continue; - } - - if (mode == identify) { - char *description = hts_format_description(&fmt); - printf("%s:\t%s\n", argv[i], description); - free(description); - } - else - switch (fmt.category) { - case sequence_data: if (view_sam(fp, argv[i])) fp = NULL; break; - case variant_data: if (view_vcf(fp, argv[i])) fp = NULL; break; - default: - fprintf(stderr, "htsfile: can't view %s: unknown format\n", argv[i]); - status = EXIT_FAILURE; - break; - } - - if (fp && hclose(fp) < 0) { - fprintf(stderr, "htsfile: closing %s failed\n", argv[i]); - status = EXIT_FAILURE; - } - } - - return status; -} diff --git a/htslib/htslib.mk b/htslib/htslib.mk deleted file mode 100644 index 14baea2..0000000 --- a/htslib/htslib.mk +++ /dev/null @@ -1,150 +0,0 @@ -# Makefile rules useful for third-party code using htslib's public API. -# -# Copyright (C) 2013-2015 Genome Research Ltd. -# -# Author: John Marshall -# -# 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. - -# The makefile fragment included below provides variables that can be used -# to express dependencies on headers supplied by an in-development htslib. -# If your source file foo.c #includes and , -# you can write the correct prerequisites for foo.o as: -# -# HTSDIR = -# include $(HTSDIR)/htslib.mk -# -# foo.o: foo.c $(htslib_hts_h) $(HTSDIR)/htslib/kstring.h -# -# Variables are not provided for k*.h, as those never include other headers. - -HTSPREFIX = $(HTSDIR)/ -include $(HTSDIR)/htslib_vars.mk - -# Rules for rebuilding an in-development htslib's static and shared libraries. -# If your program foo links with libhts, adding the appropriate prerequisite -# will cause the library to be rebuilt as necessary: -# -# foo: foo.o $(HTSDIR)/libhts.a -# -# or similarly if your target requires any of the tools supplied: -# -# bar.bed.bgz.tbi: bar.bed.bgz $(HTSDIR)/tabix -# $(HTSDIR)/tabix -p bed bar.bed.bgz - -HTSLIB_PUBLIC_HEADERS = \ - $(HTSDIR)/htslib/bgzf.h \ - $(HTSDIR)/htslib/faidx.h \ - $(HTSDIR)/htslib/hfile.h \ - $(HTSDIR)/htslib/hts.h \ - $(HTSDIR)/htslib/hts_defs.h \ - $(HTSDIR)/htslib/khash.h \ - $(HTSDIR)/htslib/klist.h \ - $(HTSDIR)/htslib/knetfile.h \ - $(HTSDIR)/htslib/kseq.h \ - $(HTSDIR)/htslib/ksort.h \ - $(HTSDIR)/htslib/kstring.h \ - $(HTSDIR)/htslib/regidx.h \ - $(HTSDIR)/htslib/sam.h \ - $(HTSDIR)/htslib/synced_bcf_reader.h \ - $(HTSDIR)/htslib/tbx.h \ - $(HTSDIR)/htslib/vcf.h \ - $(HTSDIR)/htslib/vcf_sweep.h \ - $(HTSDIR)/htslib/vcfutils.h - -HTSLIB_ALL = \ - $(HTSLIB_PUBLIC_HEADERS) \ - $(HTSDIR)/bgzf.c \ - $(HTSDIR)/faidx.c \ - $(HTSDIR)/hfile_internal.h \ - $(HTSDIR)/hfile.c \ - $(HTSDIR)/hfile_irods.c \ - $(HTSDIR)/hfile_net.c \ - $(HTSDIR)/hts.c \ - $(HTSDIR)/knetfile.c \ - $(HTSDIR)/kstring.c \ - $(HTSDIR)/regidx.c \ - $(HTSDIR)/sam.c \ - $(HTSDIR)/synced_bcf_reader.c \ - $(HTSDIR)/tbx.c \ - $(HTSDIR)/vcf.c \ - $(HTSDIR)/vcf_sweep.c \ - $(HTSDIR)/vcfutils.c \ - $(HTSDIR)/cram/cram.h \ - $(HTSDIR)/cram/cram_codecs.c \ - $(HTSDIR)/cram/cram_codecs.h \ - $(HTSDIR)/cram/cram_decode.c \ - $(HTSDIR)/cram/cram_decode.h \ - $(HTSDIR)/cram/cram_encode.c \ - $(HTSDIR)/cram/cram_encode.h \ - $(HTSDIR)/cram/cram_index.c \ - $(HTSDIR)/cram/cram_index.h \ - $(HTSDIR)/cram/cram_io.c \ - $(HTSDIR)/cram/cram_io.h \ - $(HTSDIR)/cram/cram_samtools.c \ - $(HTSDIR)/cram/cram_samtools.h \ - $(HTSDIR)/cram/cram_stats.c \ - $(HTSDIR)/cram/cram_stats.h \ - $(HTSDIR)/cram/cram_structs.h \ - $(HTSDIR)/cram/files.c \ - $(HTSDIR)/cram/mFILE.c \ - $(HTSDIR)/cram/mFILE.h \ - $(HTSDIR)/cram/md5.c \ - $(HTSDIR)/cram/md5.h \ - $(HTSDIR)/cram/misc.h \ - $(HTSDIR)/cram/open_trace_file.c \ - $(HTSDIR)/cram/open_trace_file.h \ - $(HTSDIR)/cram/os.h \ - $(HTSDIR)/cram/pooled_alloc.c \ - $(HTSDIR)/cram/pooled_alloc.h \ - $(HTSDIR)/cram/sam_header.c \ - $(HTSDIR)/cram/sam_header.h \ - $(HTSDIR)/cram/string_alloc.c \ - $(HTSDIR)/cram/string_alloc.h \ - $(HTSDIR)/cram/thread_pool.c \ - $(HTSDIR)/cram/thread_pool.h \ - $(HTSDIR)/cram/vlen.c \ - $(HTSDIR)/cram/vlen.h \ - $(HTSDIR)/cram/zfio.c \ - $(HTSDIR)/cram/zfio.h - -$(HTSDIR)/libhts.a: $(HTSLIB_ALL) - +cd $(HTSDIR) && $(MAKE) lib-static - -$(HTSDIR)/libhts.so $(HTSDIR)/libhts.dylib: $(HTSLIB_ALL) - +cd $(HTSDIR) && $(MAKE) lib-shared - -$(HTSDIR)/bgzip: $(HTSDIR)/bgzip.c $(HTSLIB_PUBLIC_HEADERS) - +cd $(HTSDIR) && $(MAKE) bgzip - -$(HTSDIR)/htsfile: $(HTSDIR)/htsfile.c $(HTSLIB_PUBLIC_HEADERS) - +cd $(HTSDIR) && $(MAKE) htsfile - -$(HTSDIR)/tabix: $(HTSDIR)/tabix.c $(HTSLIB_PUBLIC_HEADERS) - +cd $(HTSDIR) && $(MAKE) tabix - -# Rules for phony targets. You may wish to have your corresponding phony -# targets invoke these in addition to their own recipes: -# -# clean: clean-htslib - -clean-htslib install-htslib: - +cd $(HTSDIR) && $(MAKE) $(@:-htslib=) - -.PHONY: clean-htslib install-htslib diff --git a/htslib/htslib.pc.in b/htslib/htslib.pc.in deleted file mode 100644 index 465de17..0000000 --- a/htslib/htslib.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -includedir=@includedir@ -libdir=@libdir@ - -Name: htslib -Description: C library for high-throughput sequencing data formats -Version: @PACKAGE_VERSION@ -Cflags: -I${includedir} -Libs: -L${libdir} -lhts -Libs.private: -L${libdir} -lhts -lm -lpthread -Requires.private: zlib diff --git a/htslib/htslib/bgzf.h b/htslib/htslib/bgzf.h deleted file mode 100644 index cb8d4b9..0000000 --- a/htslib/htslib/bgzf.h +++ /dev/null @@ -1,315 +0,0 @@ -/* The MIT License - - Copyright (c) 2008 Broad Institute / Massachusetts Institute of Technology - 2011, 2012 Attractive Chaos - Copyright (C) 2009, 2013, 2014 Genome Research Ltd - - 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. -*/ - -/* The BGZF library was originally written by Bob Handsaker from the Broad - * Institute. It was later improved by the SAMtools developers. */ - -#ifndef HTSLIB_BGZF_H -#define HTSLIB_BGZF_H - -#include -#include -#include -#include - -#define BGZF_BLOCK_SIZE 0xff00 // make sure compressBound(BGZF_BLOCK_SIZE) < BGZF_MAX_BLOCK_SIZE -#define BGZF_MAX_BLOCK_SIZE 0x10000 - -#define BGZF_ERR_ZLIB 1 -#define BGZF_ERR_HEADER 2 -#define BGZF_ERR_IO 4 -#define BGZF_ERR_MISUSE 8 - -struct hFILE; -struct bgzf_mtaux_t; -typedef struct __bgzidx_t bgzidx_t; - -struct BGZF { - int errcode:16, is_write:2, is_be:2, compress_level:9, is_compressed:2, is_gzip:1; - int cache_size; - int block_length, block_offset; - int64_t block_address, uncompressed_address; - void *uncompressed_block, *compressed_block; - void *cache; // a pointer to a hash table - struct hFILE *fp; // actual file handle - struct bgzf_mtaux_t *mt; // only used for multi-threading - bgzidx_t *idx; // BGZF index - int idx_build_otf; // build index on the fly, set by bgzf_index_build_init() - z_stream *gz_stream;// for gzip-compressed files -}; -#ifndef HTS_BGZF_TYPEDEF -typedef struct BGZF BGZF; -#define HTS_BGZF_TYPEDEF -#endif - -#ifndef KSTRING_T -#define KSTRING_T kstring_t -typedef struct __kstring_t { - size_t l, m; - char *s; -} kstring_t; -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - /****************** - * Basic routines * - ******************/ - - /** - * Open an existing file descriptor for reading or writing. - * - * @param fd file descriptor - * @param mode mode matching /[rwag][u0-9]+/: 'r' for reading, 'w' for - * writing, 'a' for appending, 'g' for gzip rather than BGZF - * compression (with 'w' only), and digit specifies the zlib - * compression level. - * Note that there is a distinction between 'u' and '0': the - * first yields plain uncompressed output whereas the latter - * outputs uncompressed data wrapped in the zlib format. - * @return BGZF file handler; 0 on error - */ - BGZF* bgzf_dopen(int fd, const char *mode); - - #define bgzf_fdopen(fd, mode) bgzf_dopen((fd), (mode)) // for backward compatibility - - /** - * Open the specified file for reading or writing. - */ - BGZF* bgzf_open(const char* path, const char *mode); - - /** - * Open an existing hFILE stream for reading or writing. - */ - BGZF* bgzf_hopen(struct hFILE *fp, const char *mode); - - /** - * Close the BGZF and free all associated resources. - * - * @param fp BGZF file handler - * @return 0 on success and -1 on error - */ - int bgzf_close(BGZF *fp); - - /** - * Read up to _length_ bytes from the file storing into _data_. - * - * @param fp BGZF file handler - * @param data data array to read into - * @param length size of data to read - * @return number of bytes actually read; 0 on end-of-file and -1 on error - */ - ssize_t bgzf_read(BGZF *fp, void *data, size_t length); - - /** - * Write _length_ bytes from _data_ to the file. If no I/O errors occur, - * the complete _length_ bytes will be written (or queued for writing). - * - * @param fp BGZF file handler - * @param data data array to write - * @param length size of data to write - * @return number of bytes written (i.e., _length_); negative on error - */ - ssize_t bgzf_write(BGZF *fp, const void *data, size_t length); - - /** - * Read up to _length_ bytes directly from the underlying stream without - * decompressing. Bypasses BGZF blocking, so must be used with care in - * specialised circumstances only. - * - * @param fp BGZF file handler - * @param data data array to read into - * @param length number of raw bytes to read - * @return number of bytes actually read; 0 on end-of-file and -1 on error - */ - ssize_t bgzf_raw_read(BGZF *fp, void *data, size_t length); - - /** - * Write _length_ bytes directly to the underlying stream without - * compressing. Bypasses BGZF blocking, so must be used with care - * in specialised circumstances only. - * - * @param fp BGZF file handler - * @param data data array to write - * @param length number of raw bytes to write - * @return number of bytes actually written; -1 on error - */ - ssize_t bgzf_raw_write(BGZF *fp, const void *data, size_t length); - - /** - * Write the data in the buffer to the file. - */ - int bgzf_flush(BGZF *fp); - - /** - * Return a virtual file pointer to the current location in the file. - * No interpetation of the value should be made, other than a subsequent - * call to bgzf_seek can be used to position the file at the same point. - * Return value is non-negative on success. - */ - #define bgzf_tell(fp) (((fp)->block_address << 16) | ((fp)->block_offset & 0xFFFF)) - - /** - * Set the file to read from the location specified by _pos_. - * - * @param fp BGZF file handler - * @param pos virtual file offset returned by bgzf_tell() - * @param whence must be SEEK_SET - * @return 0 on success and -1 on error - */ - int64_t bgzf_seek(BGZF *fp, int64_t pos, int whence); - - /** - * Check if the BGZF end-of-file (EOF) marker is present - * - * @param fp BGZF file handler opened for reading - * @return 1 if the EOF marker is present and correct; - * 2 if it can't be checked, e.g., because fp isn't seekable; - * 0 if the EOF marker is absent; - * -1 (with errno set) on error - */ - int bgzf_check_EOF(BGZF *fp); - - /** - * Check if a file is in the BGZF format - * - * @param fn file name - * @return 1 if _fn_ is BGZF; 0 if not or on I/O error - */ - int bgzf_is_bgzf(const char *fn); - - /********************* - * Advanced routines * - *********************/ - - /** - * Set the cache size. Only effective when compiled with -DBGZF_CACHE. - * - * @param fp BGZF file handler - * @param size size of cache in bytes; 0 to disable caching (default) - */ - void bgzf_set_cache_size(BGZF *fp, int size); - - /** - * Flush the file if the remaining buffer size is smaller than _size_ - * @return 0 if flushing succeeded or was not needed; negative on error - */ - int bgzf_flush_try(BGZF *fp, ssize_t size); - - /** - * Read one byte from a BGZF file. It is faster than bgzf_read() - * @param fp BGZF file handler - * @return byte read; -1 on end-of-file or error - */ - int bgzf_getc(BGZF *fp); - - /** - * Read one line from a BGZF file. It is faster than bgzf_getc() - * - * @param fp BGZF file handler - * @param delim delimitor - * @param str string to write to; must be initialized - * @return length of the string; 0 on end-of-file; negative on error - */ - int bgzf_getline(BGZF *fp, int delim, kstring_t *str); - - /** - * Read the next BGZF block. - */ - int bgzf_read_block(BGZF *fp); - - /** - * Enable multi-threading (only effective on writing and when the - * library was compiled with -DBGZF_MT) - * - * @param fp BGZF file handler; must be opened for writing - * @param n_threads #threads used for writing - * @param n_sub_blks #blocks processed by each thread; a value 64-256 is recommended - */ - int bgzf_mt(BGZF *fp, int n_threads, int n_sub_blks); - - - /******************* - * bgzidx routines * - *******************/ - - /** - * Position BGZF at the uncompressed offset - * - * @param fp BGZF file handler; must be opened for reading - * @param uoffset file offset in the uncompressed data - * @param where SEEK_SET supported atm - * - * Returns 0 on success and -1 on error. - */ - int bgzf_useek(BGZF *fp, long uoffset, int where); - - /** - * Position in uncompressed BGZF - * - * @param fp BGZF file handler; must be opened for reading - * - * Returns the current offset on success and -1 on error. - */ - long bgzf_utell(BGZF *fp); - - /** - * Tell BGZF to build index while compressing. - * - * @param fp BGZF file handler; can be opened for reading or writing. - * - * Returns 0 on success and -1 on error. - */ - int bgzf_index_build_init(BGZF *fp); - - /** - * Load BGZF index - * - * @param fp BGZF file handler - * @param bname base name - * @param suffix suffix to add to bname (can be NULL) - * - * Returns 0 on success and -1 on error. - */ - int bgzf_index_load(BGZF *fp, const char *bname, const char *suffix); - - /** - * Save BGZF index - * - * @param fp BGZF file handler - * @param bname base name - * @param suffix suffix to add to bname (can be NULL) - * - * Returns 0 on success and -1 on error. - */ - int bgzf_index_dump(BGZF *fp, const char *bname, const char *suffix); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/htslib/faidx.h b/htslib/htslib/faidx.h deleted file mode 100644 index a32d3a9..0000000 --- a/htslib/htslib/faidx.h +++ /dev/null @@ -1,135 +0,0 @@ -/* faidx.h -- FASTA random access. - - Copyright (C) 2008, 2009, 2013, 2014 Genome Research Ltd. - - Author: Heng Li - - 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. -*/ - -#ifndef HTSLIB_FAIDX_H -#define HTSLIB_FAIDX_H - -/*! - @header - - Index FASTA files and extract subsequence. - - The fai file index columns are: - - chromosome name - - chromosome length: number of bases - - offset: number of bytes to skip to get to the first base - from the beginning of the file, including the length - of the sequence description string (">chr ..\n") - - line length: number of bases per line (excluding \n) - - binary line length: number of bytes, including \n - - @copyright The Wellcome Trust Sanger Institute. - */ - -struct __faidx_t; -typedef struct __faidx_t faidx_t; - -#ifdef __cplusplus -extern "C" { -#endif - - /*! - @abstract Build index for a FASTA or bgzip-compressed FASTA file. - @param fn FASTA file name - @return 0 on success; or -1 on failure - @discussion File "fn.fai" will be generated. - */ - int fai_build(const char *fn); - - /*! - @abstract Destroy a faidx_t struct. - @param fai Pointer to the struct to be destroyed - */ - void fai_destroy(faidx_t *fai); - - /*! - @abstract Load index from "fn.fai". - @param fn File name of the FASTA file - */ - faidx_t *fai_load(const char *fn); - - /*! - @abstract Fetch the sequence in a region. - @param fai Pointer to the faidx_t struct - @param reg Region in the format "chr2:20,000-30,000" - @param len Length of the region; -2 if seq not present, -1 general error - @return Pointer to the sequence; null on failure - - @discussion The returned sequence is allocated by malloc family - and should be destroyed by end users by calling free() on it. - */ - char *fai_fetch(const faidx_t *fai, const char *reg, int *len); - - /*! - @abstract Fetch the number of sequences. - @param fai Pointer to the faidx_t struct - @return The number of sequences - */ - int faidx_fetch_nseq(const faidx_t *fai); - - /*! - @abstract Fetch the sequence in a region. - @param fai Pointer to the faidx_t struct - @param c_name Region name - @param p_beg_i Beginning position number (zero-based) - @param p_end_i End position number (zero-based) - @param len Length of the region; -2 if c_name not present, -1 general error - @return Pointer to the sequence; null on failure - - @discussion The returned sequence is allocated by malloc family - and should be destroyed by end users by calling free() on it. - */ - char *faidx_fetch_seq(const faidx_t *fai, const char *c_name, int p_beg_i, int p_end_i, int *len); - - /*! - @abstract Query if sequence is present - @param fai Pointer to the faidx_t struct - @param seq Sequence name - @return 1 if present or 0 if absent - */ - int faidx_has_seq(const faidx_t *fai, const char *seq); - - /*! - @abstract Return number of sequences in fai index - */ - int faidx_nseq(const faidx_t *fai); - - /*! - @abstract Return name of i-th sequence - */ - const char *faidx_iseq(const faidx_t *fai, int i); - - /*! - @abstract Return sequence length, -1 if not present - */ - int faidx_seq_len(const faidx_t *fai, const char *seq); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/htslib/hfile.h b/htslib/htslib/hfile.h deleted file mode 100644 index ea49c45..0000000 --- a/htslib/htslib/hfile.h +++ /dev/null @@ -1,212 +0,0 @@ -/* hfile.h -- buffered low-level input/output streams. - - Copyright (C) 2013-2015 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#ifndef HTSLIB_HFILE_H -#define HTSLIB_HFILE_H - -#include - -#include - -#include "hts_defs.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* These fields are declared here solely for the benefit of the inline functions - below. They may change in future releases. User code should not use them - directly; you should imagine that hFILE is an opaque incomplete type. */ -struct hFILE_backend; -typedef struct hFILE { - char *buffer, *begin, *end, *limit; - const struct hFILE_backend *backend; - off_t offset; - int at_eof:1; - int has_errno; -} hFILE; - -/*! - @abstract Open the named file or URL as a stream - @return An hFILE pointer, or NULL (with errno set) if an error occurred. -*/ -hFILE *hopen(const char *filename, const char *mode) HTS_RESULT_USED; - -/*! - @abstract Associate a stream with an existing open file descriptor - @return An hFILE pointer, or NULL (with errno set) if an error occurred. - @notes For socket descriptors (on Windows), mode should contain 's'. -*/ -hFILE *hdopen(int fd, const char *mode) HTS_RESULT_USED; - -/*! - @abstract Report whether the file name or URL denotes remote storage - @return 0 if local, 1 if remote. - @notes "Remote" means involving e.g. explicit network access, with the - implication that callers may wish to cache such files' contents locally. -*/ -int hisremote(const char *filename) HTS_RESULT_USED; - -/*! - @abstract Flush (for output streams) and close the stream - @return 0 if successful, or EOF (with errno set) if an error occurred. -*/ -int hclose(hFILE *fp) HTS_RESULT_USED; - -/*! - @abstract Close the stream, without flushing or propagating errors - @notes For use while cleaning up after an error only. Preserves errno. -*/ -void hclose_abruptly(hFILE *fp); - -/*! - @abstract Return the stream's error indicator - @return Non-zero (in fact, an errno value) if an error has occurred. - @notes This would be called herror() and return true/false to parallel - ferror(3), but a networking-related herror(3) function already exists. */ -static inline int herrno(hFILE *fp) -{ - return fp->has_errno; -} - -/*! - @abstract Clear the stream's error indicator -*/ -static inline void hclearerr(hFILE *fp) -{ - fp->has_errno = 0; -} - -/*! - @abstract Reposition the read/write stream offset - @return The resulting offset within the stream (as per lseek(2)), - or negative if an error occurred. -*/ -off_t hseek(hFILE *fp, off_t offset, int whence) HTS_RESULT_USED; - -/*! - @abstract Report the current stream offset - @return The offset within the stream, starting from zero. -*/ -static inline off_t htell(hFILE *fp) -{ - return fp->offset + (fp->begin - fp->buffer); -} - -/*! - @abstract Read one character from the stream - @return The character read, or EOF on end-of-file or error -*/ -static inline int hgetc(hFILE *fp) -{ - extern int hgetc2(hFILE *); - return (fp->end > fp->begin)? (unsigned char) *(fp->begin++) : hgetc2(fp); -} - -/*! - @abstract Peek at characters to be read without removing them from buffers - @param fp The file stream - @param buffer The buffer to which the peeked bytes will be written - @param nbytes The number of bytes to peek at; limited by the size of the - internal buffer, which could be as small as 4K. - @return The number of bytes peeked, which may be less than nbytes if EOF - is encountered; or negative, if there was an I/O error. - @notes The characters peeked at remain in the stream's internal buffer, - and will be returned by later hread() etc calls. -*/ -ssize_t hpeek(hFILE *fp, void *buffer, size_t nbytes) HTS_RESULT_USED; - -/*! - @abstract Read a block of characters from the file - @return The number of bytes read, or negative if an error occurred. - @notes The full nbytes requested will be returned, except as limited - by EOF or I/O errors. -*/ -static inline ssize_t HTS_RESULT_USED -hread(hFILE *fp, void *buffer, size_t nbytes) -{ - extern ssize_t hread2(hFILE *, void *, size_t, size_t); - - size_t n = fp->end - fp->begin; - if (n > nbytes) n = nbytes; - memcpy(buffer, fp->begin, n); - fp->begin += n; - return (n == nbytes)? (ssize_t) n : hread2(fp, buffer, nbytes, n); -} - -/*! - @abstract Write a character to the stream - @return The character written, or EOF if an error occurred. -*/ -static inline int hputc(int c, hFILE *fp) -{ - extern int hputc2(int, hFILE *); - if (fp->begin < fp->limit) *(fp->begin++) = c; - else c = hputc2(c, fp); - return c; -} - -/*! - @abstract Write a string to the stream - @return 0 if successful, or EOF if an error occurred. -*/ -static inline int hputs(const char *text, hFILE *fp) -{ - extern int hputs2(const char *, size_t, size_t, hFILE *); - - size_t nbytes = strlen(text), n = fp->limit - fp->begin; - if (n > nbytes) n = nbytes; - memcpy(fp->begin, text, n); - fp->begin += n; - return (n == nbytes)? 0 : hputs2(text, nbytes, n, fp); -} - -/*! - @abstract Write a block of characters to the file - @return Either nbytes, or negative if an error occurred. - @notes In the absence of I/O errors, the full nbytes will be written. -*/ -static inline ssize_t HTS_RESULT_USED -hwrite(hFILE *fp, const void *buffer, size_t nbytes) -{ - extern ssize_t hwrite2(hFILE *, const void *, size_t, size_t); - - size_t n = fp->limit - fp->begin; - if (n > nbytes) n = nbytes; - memcpy(fp->begin, buffer, n); - fp->begin += n; - return (n==nbytes)? (ssize_t) n : hwrite2(fp, buffer, nbytes, n); -} - -/*! - @abstract For writing streams, flush buffered output to the underlying stream - @return 0 if successful, or EOF if an error occurred. -*/ -int hflush(hFILE *fp) HTS_RESULT_USED; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/htslib/hts.h b/htslib/htslib/hts.h deleted file mode 100644 index 084c162..0000000 --- a/htslib/htslib/hts.h +++ /dev/null @@ -1,456 +0,0 @@ -/* hts.h -- format-neutral I/O, indexing, and iterator API functions. - - Copyright (C) 2012-2014 Genome Research Ltd. - Copyright (C) 2012 Broad Institute. - - Author: Heng Li - -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. */ - -#ifndef HTSLIB_HTS_H -#define HTSLIB_HTS_H - -#include -#include - -#ifndef HTS_BGZF_TYPEDEF -typedef struct BGZF BGZF; -#define HTS_BGZF_TYPEDEF -#endif -struct cram_fd; -struct hFILE; - -#ifndef KSTRING_T -#define KSTRING_T kstring_t -typedef struct __kstring_t { - size_t l, m; - char *s; -} kstring_t; -#endif - -#ifndef kroundup32 -#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) -#endif - -/** - * hts_expand() - expands memory block pointed to by $ptr; - * hts_expand0() the latter sets the newly allocated part to 0. - * - * @param n requested number of elements of type type_t - * @param m size of memory allocated - */ -#define hts_expand(type_t, n, m, ptr) if ((n) > (m)) { \ - (m) = (n); kroundup32(m); \ - (ptr) = (type_t*)realloc((ptr), (m) * sizeof(type_t)); \ - } -#define hts_expand0(type_t, n, m, ptr) if ((n) > (m)) { \ - int t = (m); (m) = (n); kroundup32(m); \ - (ptr) = (type_t*)realloc((ptr), (m) * sizeof(type_t)); \ - memset(((type_t*)ptr)+t,0,sizeof(type_t)*((m)-t)); \ - } - -/************ - * File I/O * - ************/ - -// Add new entries only at the end (but before the *_maximum entry) -// of these enums, as their numbering is part of the htslib ABI. - -enum htsFormatCategory { - unknown_category, - sequence_data, // Sequence data -- SAM, BAM, CRAM, etc - variant_data, // Variant calling data -- VCF, BCF, etc - index_file, // Index file associated with some data file - region_list, // Coordinate intervals or regions -- BED, etc - category_maximum = 32767 -}; - -enum htsExactFormat { - unknown_format, - binary_format, text_format, - sam, bam, bai, cram, crai, vcf, bcf, csi, gzi, tbi, bed, - format_maximum = 32767 -}; - -enum htsCompression { - no_compression, gzip, bgzf, custom, - compression_maximum = 32767 -}; - -typedef struct htsFormat { - enum htsFormatCategory category; - enum htsExactFormat format; - struct { short major, minor; } version; - enum htsCompression compression; - short compression_level; // currently unused - void *specific; // currently unused -} htsFormat; - -// Maintainers note htsFile cannot be an opaque structure because some of its -// fields are part of libhts.so's ABI (hence these fields must not be moved): -// - fp is used in the public sam_itr_next()/etc macros -// - is_bin is used directly in samtools <= 1.1 and bcftools <= 1.1 -// - is_write and is_cram are used directly in samtools <= 1.1 -// - fp is used directly in samtools (up to and including current develop) -// - line is used directly in bcftools (up to and including current develop) -typedef struct { - uint32_t is_bin:1, is_write:1, is_be:1, is_cram:1, dummy:28; - int64_t lineno; - kstring_t line; - char *fn, *fn_aux; - union { - BGZF *bgzf; - struct cram_fd *cram; - struct hFILE *hfile; - void *voidp; - } fp; - htsFormat format; -} htsFile; - -// REQUIRED_FIELDS -enum sam_fields { - SAM_QNAME = 0x00000001, - SAM_FLAG = 0x00000002, - SAM_RNAME = 0x00000004, - SAM_POS = 0x00000008, - SAM_MAPQ = 0x00000010, - SAM_CIGAR = 0x00000020, - SAM_RNEXT = 0x00000040, - SAM_PNEXT = 0x00000080, - SAM_TLEN = 0x00000100, - SAM_SEQ = 0x00000200, - SAM_QUAL = 0x00000400, - SAM_AUX = 0x00000800, - SAM_RGAUX = 0x00001000, -}; - -enum cram_option { - CRAM_OPT_DECODE_MD, - CRAM_OPT_PREFIX, - CRAM_OPT_VERBOSITY, - CRAM_OPT_SEQS_PER_SLICE, - CRAM_OPT_SLICES_PER_CONTAINER, - CRAM_OPT_RANGE, - CRAM_OPT_VERSION, - CRAM_OPT_EMBED_REF, - CRAM_OPT_IGNORE_MD5, - CRAM_OPT_REFERENCE, - CRAM_OPT_MULTI_SEQ_PER_SLICE, - CRAM_OPT_NO_REF, - CRAM_OPT_USE_BZIP2, - CRAM_OPT_SHARED_REF, - CRAM_OPT_NTHREADS, - CRAM_OPT_THREAD_POOL, - CRAM_OPT_USE_LZMA, - CRAM_OPT_USE_RANS, - CRAM_OPT_REQUIRED_FIELDS, -}; - -/********************** - * Exported functions * - **********************/ - -extern int hts_verbose; - -/*! @abstract Table for converting a nucleotide character to 4-bit encoding. -The input character may be either an IUPAC ambiguity code, '=' for 0, or -'0'/'1'/'2'/'3' for a result of 1/2/4/8. The result is encoded as 1/2/4/8 -for A/C/G/T or combinations of these bits for ambiguous bases. -*/ -extern const unsigned char seq_nt16_table[256]; - -/*! @abstract Table for converting a 4-bit encoded nucleotide to an IUPAC -ambiguity code letter (or '=' when given 0). -*/ -extern const char seq_nt16_str[]; - -/*! @abstract Table for converting a 4-bit encoded nucleotide to about 2 bits. -Returns 0/1/2/3 for 1/2/4/8 (i.e., A/C/G/T), or 4 otherwise (0 or ambiguous). -*/ -extern const int seq_nt16_int[]; - -#ifdef __cplusplus -extern "C" { -#endif - -/*! - @abstract Get the htslib version number - @return For released versions, a string like "N.N[.N]"; or git describe - output if using a library built within a Git repository. -*/ -const char *hts_version(void); - -/*! - @abstract Determine format by peeking at the start of a file - @param fp File opened for reading, positioned at the beginning - @param fmt Format structure that will be filled out on return - @return 0 for success, or negative if an error occurred. -*/ -int hts_detect_format(struct hFILE *fp, htsFormat *fmt); - -/*! - @abstract Get a human-readable description of the file format - @return Description string, to be freed by the caller after use. -*/ -char *hts_format_description(const htsFormat *format); - -/*! - @abstract Open a SAM/BAM/CRAM/VCF/BCF/etc file - @param fn The file name or "-" for stdin/stdout - @param mode Mode matching /[rwa][bcuz0-9]+/ - @discussion - With 'r' opens for reading; any further format mode letters are ignored - as the format is detected by checking the first few bytes or BGZF blocks - of the file. With 'w' or 'a' opens for writing or appending, with format - specifier letters: - b binary format (BAM, BCF, etc) rather than text (SAM, VCF, etc) - c CRAM format - g gzip compressed - u uncompressed - z bgzf compressed - [0-9] zlib compression level - Note that there is a distinction between 'u' and '0': the first yields - plain uncompressed output whereas the latter outputs uncompressed data - wrapped in the zlib format. - @example - [rw]b .. compressed BCF, BAM, FAI - [rw]u .. uncompressed BCF - [rw]z .. compressed VCF - [rw] .. uncompressed VCF -*/ -htsFile *hts_open(const char *fn, const char *mode); - -/*! - @abstract Open an existing stream as a SAM/BAM/CRAM/VCF/BCF/etc file - @param fn The already-open file handle - @param mode Open mode, as per hts_open() -*/ -htsFile *hts_hopen(struct hFILE *fp, const char *fn, const char *mode); - -/*! - @abstract Close a file handle, flushing buffered data for output streams - @param fp The file handle to be closed - @return 0 for success, or negative if an error occurred. -*/ -int hts_close(htsFile *fp); - -/*! - @abstract Returns the file's format information - @param fp The file handle - @return Read-only pointer to the file's htsFormat. -*/ -const htsFormat *hts_get_format(htsFile *fp); - -/*! - @abstract Sets a specified CRAM option on the open file handle. - @param fp The file handle open the open file. - @param opt The CRAM_OPT_* option. - @param ... Optional arguments, dependent on the option used. - @return 0 for success, or negative if an error occurred. -*/ -int hts_set_opt(htsFile *fp, enum cram_option opt, ...); - -int hts_getline(htsFile *fp, int delimiter, kstring_t *str); -char **hts_readlines(const char *fn, int *_n); -/*! - @abstract Parse comma-separated list or read list from a file - @param list File name or comma-separated list - @param is_file - @param _n Size of the output array (number of items read) - @return NULL on failure or pointer to newly allocated array of - strings -*/ -char **hts_readlist(const char *fn, int is_file, int *_n); - -/*! - @abstract Create extra threads to aid compress/decompression for this file - @param fp The file handle - @param n The number of worker threads to create - @return 0 for success, or negative if an error occurred. - @notes THIS THREADING API IS LIKELY TO CHANGE IN FUTURE. -*/ -int hts_set_threads(htsFile *fp, int n); - -/*! - @abstract Set .fai filename for a file opened for reading - @return 0 for success, negative on failure - @discussion - Called before *_hdr_read(), this provides the name of a .fai file - used to provide a reference list if the htsFile contains no @SQ headers. -*/ -int hts_set_fai_filename(htsFile *fp, const char *fn_aux); - -#ifdef __cplusplus -} -#endif - -/************ - * Indexing * - ************/ - -/*! -These HTS_IDX_* macros are used as special tid values for hts_itr_query()/etc, -producing iterators operating as follows: - - HTS_IDX_NOCOOR iterates over unmapped reads sorted at the end of the file - - HTS_IDX_START iterates over the entire file - - HTS_IDX_REST iterates from the current position to the end of the file - - HTS_IDX_NONE always returns "no more alignment records" -When one of these special tid values is used, beg and end are ignored. -When REST or NONE is used, idx is also ignored and may be NULL. -*/ -#define HTS_IDX_NOCOOR (-2) -#define HTS_IDX_START (-3) -#define HTS_IDX_REST (-4) -#define HTS_IDX_NONE (-5) - -#define HTS_FMT_CSI 0 -#define HTS_FMT_BAI 1 -#define HTS_FMT_TBI 2 -#define HTS_FMT_CRAI 3 - -struct __hts_idx_t; -typedef struct __hts_idx_t hts_idx_t; - -typedef struct { - uint64_t u, v; -} hts_pair64_t; - -typedef int hts_readrec_func(BGZF *fp, void *data, void *r, int *tid, int *beg, int *end); - -typedef struct { - uint32_t read_rest:1, finished:1, dummy:29; - int tid, beg, end, n_off, i; - int curr_tid, curr_beg, curr_end; - uint64_t curr_off; - hts_pair64_t *off; - hts_readrec_func *readrec; - struct { - int n, m; - int *a; - } bins; -} hts_itr_t; - -#ifdef __cplusplus -extern "C" { -#endif - - #define hts_bin_first(l) (((1<<(((l)<<1) + (l))) - 1) / 7) - #define hts_bin_parent(l) (((l) - 1) >> 3) - - hts_idx_t *hts_idx_init(int n, int fmt, uint64_t offset0, int min_shift, int n_lvls); - void hts_idx_destroy(hts_idx_t *idx); - int hts_idx_push(hts_idx_t *idx, int tid, int beg, int end, uint64_t offset, int is_mapped); - void hts_idx_finish(hts_idx_t *idx, uint64_t final_offset); - - void hts_idx_save(const hts_idx_t *idx, const char *fn, int fmt); - hts_idx_t *hts_idx_load(const char *fn, int fmt); - - uint8_t *hts_idx_get_meta(hts_idx_t *idx, int *l_meta); - void hts_idx_set_meta(hts_idx_t *idx, int l_meta, uint8_t *meta, int is_copy); - - int hts_idx_get_stat(const hts_idx_t* idx, int tid, uint64_t* mapped, uint64_t* unmapped); - uint64_t hts_idx_get_n_no_coor(const hts_idx_t* idx); - - const char *hts_parse_reg(const char *s, int *beg, int *end); - hts_itr_t *hts_itr_query(const hts_idx_t *idx, int tid, int beg, int end, hts_readrec_func *readrec); - void hts_itr_destroy(hts_itr_t *iter); - - typedef int (*hts_name2id_f)(void*, const char*); - typedef const char *(*hts_id2name_f)(void*, int); - typedef hts_itr_t *hts_itr_query_func(const hts_idx_t *idx, int tid, int beg, int end, hts_readrec_func *readrec); - - hts_itr_t *hts_itr_querys(const hts_idx_t *idx, const char *reg, hts_name2id_f getid, void *hdr, hts_itr_query_func *itr_query, hts_readrec_func *readrec); - int hts_itr_next(BGZF *fp, hts_itr_t *iter, void *r, void *data); - const char **hts_idx_seqnames(const hts_idx_t *idx, int *n, hts_id2name_f getid, void *hdr); // free only the array, not the values - - /** - * hts_file_type() - Convenience function to determine file type - * DEPRECATED: This function has been replaced by hts_detect_format(). - * It and these FT_* macros will be removed in a future HTSlib release. - */ - #define FT_UNKN 0 - #define FT_GZ 1 - #define FT_VCF 2 - #define FT_VCF_GZ (FT_GZ|FT_VCF) - #define FT_BCF (1<<2) - #define FT_BCF_GZ (FT_GZ|FT_BCF) - #define FT_STDIN (1<<3) - int hts_file_type(const char *fname); - - -#ifdef __cplusplus -} -#endif - -static inline int hts_reg2bin(int64_t beg, int64_t end, int min_shift, int n_lvls) -{ - int l, s = min_shift, t = ((1<<((n_lvls<<1) + n_lvls)) - 1) / 7; - for (--end, l = n_lvls; l > 0; --l, s += 3, t -= 1<<((l<<1)+l)) - if (beg>>s == end>>s) return t + (beg>>s); - return 0; -} - -static inline int hts_bin_bot(int bin, int n_lvls) -{ - int l, b; - for (l = 0, b = bin; b; ++l, b = hts_bin_parent(b)); // compute the level of bin - return (bin - hts_bin_first(l)) << (n_lvls - l) * 3; -} - -/************** - * Endianness * - **************/ - -static inline int ed_is_big(void) -{ - long one= 1; - return !(*((char *)(&one))); -} -static inline uint16_t ed_swap_2(uint16_t v) -{ - return (uint16_t)(((v & 0x00FF00FFU) << 8) | ((v & 0xFF00FF00U) >> 8)); -} -static inline void *ed_swap_2p(void *x) -{ - *(uint16_t*)x = ed_swap_2(*(uint16_t*)x); - return x; -} -static inline uint32_t ed_swap_4(uint32_t v) -{ - v = ((v & 0x0000FFFFU) << 16) | (v >> 16); - return ((v & 0x00FF00FFU) << 8) | ((v & 0xFF00FF00U) >> 8); -} -static inline void *ed_swap_4p(void *x) -{ - *(uint32_t*)x = ed_swap_4(*(uint32_t*)x); - return x; -} -static inline uint64_t ed_swap_8(uint64_t v) -{ - v = ((v & 0x00000000FFFFFFFFLLU) << 32) | (v >> 32); - v = ((v & 0x0000FFFF0000FFFFLLU) << 16) | ((v & 0xFFFF0000FFFF0000LLU) >> 16); - return ((v & 0x00FF00FF00FF00FFLLU) << 8) | ((v & 0xFF00FF00FF00FF00LLU) >> 8); -} -static inline void *ed_swap_8p(void *x) -{ - *(uint64_t*)x = ed_swap_8(*(uint64_t*)x); - return x; -} - -#endif diff --git a/htslib/htslib/hts_defs.h b/htslib/htslib/hts_defs.h deleted file mode 100644 index c9efbb9..0000000 --- a/htslib/htslib/hts_defs.h +++ /dev/null @@ -1,47 +0,0 @@ -/* hts_defs.h -- Miscellaneous definitions. - - Copyright (C) 2013-2014 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#ifndef HTSLIB_HTS_DEFS_H -#define HTSLIB_HTS_DEFS_H - -#if __clang__major__ >= 2 || __GNUC__ >= 3 -#define HTS_NORETURN __attribute__ ((__noreturn__)) -#else -#define HTS_NORETURN -#endif - -#if (defined __clang__ && __clang_major__ >= 3) || \ - (defined __GNUC__ && (__GNUC__ > 4 || (__GNUC__==4 && __GNUC_MINOR__ >= 5))) -#define HTS_RESULT_USED __attribute__ ((__warn_unused_result__)) -#else -#define HTS_RESULT_USED -#endif - -#if defined __clang__ || defined __GNUC__ -#define HTS_UNUSED __attribute__ ((__unused__)) -#else -#define HTS_UNUSED -#endif - -#endif diff --git a/htslib/htslib/kfunc.h b/htslib/htslib/kfunc.h deleted file mode 100644 index 19e4da6..0000000 --- a/htslib/htslib/kfunc.h +++ /dev/null @@ -1,75 +0,0 @@ -/* The MIT License - - Copyright (C) 2010, 2013 Genome Research Ltd. - Copyright (C) 2011 Attractive Chaos - - 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. -*/ - -#ifndef HTSLIB_KFUNC_H -#define HTSLIB_KFUNC_H - -/* Log gamma function - * \log{\Gamma(z)} - * AS245, 2nd algorithm, http://lib.stat.cmu.edu/apstat/245 - */ -double kf_lgamma(double z); - -/* complementary error function - * \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2} dt - * AS66, 2nd algorithm, http://lib.stat.cmu.edu/apstat/66 - */ -double kf_erfc(double x); - -/* The following computes regularized incomplete gamma functions. - * Formulas are taken from Wiki, with additional input from Numerical - * Recipes in C (for modified Lentz's algorithm) and AS245 - * (http://lib.stat.cmu.edu/apstat/245). - * - * A good online calculator is available at: - * - * http://www.danielsoper.com/statcalc/calc23.aspx - * - * It calculates upper incomplete gamma function, which equals - * kf_gammaq(s,z)*tgamma(s). - */ - -double kf_gammap(double s, double z); -double kf_gammaq(double s, double z); - -/* Regularized incomplete beta function. The method is taken from - * Numerical Recipe in C, 2nd edition, section 6.4. The following web - * page calculates the incomplete beta function, which equals - * kf_betai(a,b,x) * gamma(a) * gamma(b) / gamma(a+b): - * - * http://www.danielsoper.com/statcalc/calc36.aspx - */ -double kf_betai(double a, double b, double x); - -/* - * n11 n12 | n1_ - * n21 n22 | n2_ - * -----------+---- - * n_1 n_2 | n - */ -double kt_fisher_exact(int n11, int n12, int n21, int n22, double *_left, double *_right, double *two); - -#endif diff --git a/htslib/htslib/khash.h b/htslib/htslib/khash.h deleted file mode 100644 index 5e55088..0000000 --- a/htslib/htslib/khash.h +++ /dev/null @@ -1,619 +0,0 @@ -/* The MIT License - - Copyright (c) 2008, 2009, 2011 by Attractive Chaos - - 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. -*/ - -/* - An example: - -#include "khash.h" -KHASH_MAP_INIT_INT(32, char) -int main() { - int ret, is_missing; - khiter_t k; - khash_t(32) *h = kh_init(32); - k = kh_put(32, h, 5, &ret); - kh_value(h, k) = 10; - k = kh_get(32, h, 10); - is_missing = (k == kh_end(h)); - k = kh_get(32, h, 5); - kh_del(32, h, k); - for (k = kh_begin(h); k != kh_end(h); ++k) - if (kh_exist(h, k)) kh_value(h, k) = 1; - kh_destroy(32, h); - return 0; -} -*/ - -/* - 2013-05-02 (0.2.8): - - * Use quadratic probing. When the capacity is power of 2, stepping function - i*(i+1)/2 guarantees to traverse each bucket. It is better than double - hashing on cache performance and is more robust than linear probing. - - In theory, double hashing should be more robust than quadratic probing. - However, my implementation is probably not for large hash tables, because - the second hash function is closely tied to the first hash function, - which reduce the effectiveness of double hashing. - - Reference: http://research.cs.vt.edu/AVresearch/hashing/quadratic.php - - 2011-12-29 (0.2.7): - - * Minor code clean up; no actual effect. - - 2011-09-16 (0.2.6): - - * The capacity is a power of 2. This seems to dramatically improve the - speed for simple keys. Thank Zilong Tan for the suggestion. Reference: - - - http://code.google.com/p/ulib/ - - http://nothings.org/computer/judy/ - - * Allow to optionally use linear probing which usually has better - performance for random input. Double hashing is still the default as it - is more robust to certain non-random input. - - * Added Wang's integer hash function (not used by default). This hash - function is more robust to certain non-random input. - - 2011-02-14 (0.2.5): - - * Allow to declare global functions. - - 2009-09-26 (0.2.4): - - * Improve portability - - 2008-09-19 (0.2.3): - - * Corrected the example - * Improved interfaces - - 2008-09-11 (0.2.2): - - * Improved speed a little in kh_put() - - 2008-09-10 (0.2.1): - - * Added kh_clear() - * Fixed a compiling error - - 2008-09-02 (0.2.0): - - * Changed to token concatenation which increases flexibility. - - 2008-08-31 (0.1.2): - - * Fixed a bug in kh_get(), which has not been tested previously. - - 2008-08-31 (0.1.1): - - * Added destructor -*/ - - -#ifndef __AC_KHASH_H -#define __AC_KHASH_H - -/*! - @header - - Generic hash table library. - */ - -#define AC_VERSION_KHASH_H "0.2.8" - -#include -#include -#include - -/* compiler specific configuration */ - -#if UINT_MAX == 0xffffffffu -typedef unsigned int khint32_t; -#elif ULONG_MAX == 0xffffffffu -typedef unsigned long khint32_t; -#endif - -#if ULONG_MAX == ULLONG_MAX -typedef unsigned long khint64_t; -#else -typedef unsigned long long khint64_t; -#endif - -#ifndef kh_inline -#ifdef _MSC_VER -#define kh_inline __inline -#else -#define kh_inline inline -#endif -#endif /* kh_inline */ - -typedef khint32_t khint_t; -typedef khint_t khiter_t; - -#define __ac_isempty(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&2) -#define __ac_isdel(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&1) -#define __ac_iseither(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&3) -#define __ac_set_isdel_false(flag, i) (flag[i>>4]&=~(1ul<<((i&0xfU)<<1))) -#define __ac_set_isempty_false(flag, i) (flag[i>>4]&=~(2ul<<((i&0xfU)<<1))) -#define __ac_set_isboth_false(flag, i) (flag[i>>4]&=~(3ul<<((i&0xfU)<<1))) -#define __ac_set_isdel_true(flag, i) (flag[i>>4]|=1ul<<((i&0xfU)<<1)) - -#define __ac_fsize(m) ((m) < 16? 1 : (m)>>4) - -#ifndef kroundup32 -#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) -#endif - -#ifndef kcalloc -#define kcalloc(N,Z) calloc(N,Z) -#endif -#ifndef kmalloc -#define kmalloc(Z) malloc(Z) -#endif -#ifndef krealloc -#define krealloc(P,Z) realloc(P,Z) -#endif -#ifndef kfree -#define kfree(P) free(P) -#endif - -static const double __ac_HASH_UPPER = 0.77; - -#define __KHASH_TYPE(name, khkey_t, khval_t) \ - typedef struct kh_##name##_s { \ - khint_t n_buckets, size, n_occupied, upper_bound; \ - khint32_t *flags; \ - khkey_t *keys; \ - khval_t *vals; \ - } kh_##name##_t; - -#define __KHASH_PROTOTYPES(name, khkey_t, khval_t) \ - extern kh_##name##_t *kh_init_##name(void); \ - extern void kh_destroy_##name(kh_##name##_t *h); \ - extern void kh_clear_##name(kh_##name##_t *h); \ - extern khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key); \ - extern int kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets); \ - extern khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret); \ - extern void kh_del_##name(kh_##name##_t *h, khint_t x); - -#define __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ - SCOPE kh_##name##_t *kh_init_##name(void) { \ - return (kh_##name##_t*)kcalloc(1, sizeof(kh_##name##_t)); \ - } \ - SCOPE void kh_destroy_##name(kh_##name##_t *h) \ - { \ - if (h) { \ - kfree((void *)h->keys); kfree(h->flags); \ - kfree((void *)h->vals); \ - kfree(h); \ - } \ - } \ - SCOPE void kh_clear_##name(kh_##name##_t *h) \ - { \ - if (h && h->flags) { \ - memset(h->flags, 0xaa, __ac_fsize(h->n_buckets) * sizeof(khint32_t)); \ - h->size = h->n_occupied = 0; \ - } \ - } \ - SCOPE khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key) \ - { \ - if (h->n_buckets) { \ - khint_t k, i, last, mask, step = 0; \ - mask = h->n_buckets - 1; \ - k = __hash_func(key); i = k & mask; \ - last = i; \ - while (!__ac_isempty(h->flags, i) && (__ac_isdel(h->flags, i) || !__hash_equal(h->keys[i], key))) { \ - i = (i + (++step)) & mask; \ - if (i == last) return h->n_buckets; \ - } \ - return __ac_iseither(h->flags, i)? h->n_buckets : i; \ - } else return 0; \ - } \ - SCOPE int kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets) \ - { /* This function uses 0.25*n_buckets bytes of working space instead of [sizeof(key_t+val_t)+.25]*n_buckets. */ \ - khint32_t *new_flags = 0; \ - khint_t j = 1; \ - { \ - kroundup32(new_n_buckets); \ - if (new_n_buckets < 4) new_n_buckets = 4; \ - if (h->size >= (khint_t)(new_n_buckets * __ac_HASH_UPPER + 0.5)) j = 0; /* requested size is too small */ \ - else { /* hash table size to be changed (shrink or expand); rehash */ \ - new_flags = (khint32_t*)kmalloc(__ac_fsize(new_n_buckets) * sizeof(khint32_t)); \ - if (!new_flags) return -1; \ - memset(new_flags, 0xaa, __ac_fsize(new_n_buckets) * sizeof(khint32_t)); \ - if (h->n_buckets < new_n_buckets) { /* expand */ \ - khkey_t *new_keys = (khkey_t*)krealloc((void *)h->keys, new_n_buckets * sizeof(khkey_t)); \ - if (!new_keys) { kfree(new_flags); return -1; } \ - h->keys = new_keys; \ - if (kh_is_map) { \ - khval_t *new_vals = (khval_t*)krealloc((void *)h->vals, new_n_buckets * sizeof(khval_t)); \ - if (!new_vals) { kfree(new_flags); return -1; } \ - h->vals = new_vals; \ - } \ - } /* otherwise shrink */ \ - } \ - } \ - if (j) { /* rehashing is needed */ \ - for (j = 0; j != h->n_buckets; ++j) { \ - if (__ac_iseither(h->flags, j) == 0) { \ - khkey_t key = h->keys[j]; \ - khval_t val; \ - khint_t new_mask; \ - new_mask = new_n_buckets - 1; \ - if (kh_is_map) val = h->vals[j]; \ - __ac_set_isdel_true(h->flags, j); \ - while (1) { /* kick-out process; sort of like in Cuckoo hashing */ \ - khint_t k, i, step = 0; \ - k = __hash_func(key); \ - i = k & new_mask; \ - while (!__ac_isempty(new_flags, i)) i = (i + (++step)) & new_mask; \ - __ac_set_isempty_false(new_flags, i); \ - if (i < h->n_buckets && __ac_iseither(h->flags, i) == 0) { /* kick out the existing element */ \ - { khkey_t tmp = h->keys[i]; h->keys[i] = key; key = tmp; } \ - if (kh_is_map) { khval_t tmp = h->vals[i]; h->vals[i] = val; val = tmp; } \ - __ac_set_isdel_true(h->flags, i); /* mark it as deleted in the old hash table */ \ - } else { /* write the element and jump out of the loop */ \ - h->keys[i] = key; \ - if (kh_is_map) h->vals[i] = val; \ - break; \ - } \ - } \ - } \ - } \ - if (h->n_buckets > new_n_buckets) { /* shrink the hash table */ \ - h->keys = (khkey_t*)krealloc((void *)h->keys, new_n_buckets * sizeof(khkey_t)); \ - if (kh_is_map) h->vals = (khval_t*)krealloc((void *)h->vals, new_n_buckets * sizeof(khval_t)); \ - } \ - kfree(h->flags); /* free the working space */ \ - h->flags = new_flags; \ - h->n_buckets = new_n_buckets; \ - h->n_occupied = h->size; \ - h->upper_bound = (khint_t)(h->n_buckets * __ac_HASH_UPPER + 0.5); \ - } \ - return 0; \ - } \ - SCOPE khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret) \ - { \ - khint_t x; \ - if (h->n_occupied >= h->upper_bound) { /* update the hash table */ \ - if (h->n_buckets > (h->size<<1)) { \ - if (kh_resize_##name(h, h->n_buckets - 1) < 0) { /* clear "deleted" elements */ \ - *ret = -1; return h->n_buckets; \ - } \ - } else if (kh_resize_##name(h, h->n_buckets + 1) < 0) { /* expand the hash table */ \ - *ret = -1; return h->n_buckets; \ - } \ - } /* TODO: to implement automatically shrinking; resize() already support shrinking */ \ - { \ - khint_t k, i, site, last, mask = h->n_buckets - 1, step = 0; \ - x = site = h->n_buckets; k = __hash_func(key); i = k & mask; \ - if (__ac_isempty(h->flags, i)) x = i; /* for speed up */ \ - else { \ - last = i; \ - while (!__ac_isempty(h->flags, i) && (__ac_isdel(h->flags, i) || !__hash_equal(h->keys[i], key))) { \ - if (__ac_isdel(h->flags, i)) site = i; \ - i = (i + (++step)) & mask; \ - if (i == last) { x = site; break; } \ - } \ - if (x == h->n_buckets) { \ - if (__ac_isempty(h->flags, i) && site != h->n_buckets) x = site; \ - else x = i; \ - } \ - } \ - } \ - if (__ac_isempty(h->flags, x)) { /* not present at all */ \ - h->keys[x] = key; \ - __ac_set_isboth_false(h->flags, x); \ - ++h->size; ++h->n_occupied; \ - *ret = 1; \ - } else if (__ac_isdel(h->flags, x)) { /* deleted */ \ - h->keys[x] = key; \ - __ac_set_isboth_false(h->flags, x); \ - ++h->size; \ - *ret = 2; \ - } else *ret = 0; /* Don't touch h->keys[x] if present and not deleted */ \ - return x; \ - } \ - SCOPE void kh_del_##name(kh_##name##_t *h, khint_t x) \ - { \ - if (x != h->n_buckets && !__ac_iseither(h->flags, x)) { \ - __ac_set_isdel_true(h->flags, x); \ - --h->size; \ - } \ - } - -#define KHASH_DECLARE(name, khkey_t, khval_t) \ - __KHASH_TYPE(name, khkey_t, khval_t) \ - __KHASH_PROTOTYPES(name, khkey_t, khval_t) - -#define KHASH_INIT2(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ - __KHASH_TYPE(name, khkey_t, khval_t) \ - __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) - -#define KHASH_INIT(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ - KHASH_INIT2(name, static kh_inline, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) - -/* --- BEGIN OF HASH FUNCTIONS --- */ - -/*! @function - @abstract Integer hash function - @param key The integer [khint32_t] - @return The hash value [khint_t] - */ -#define kh_int_hash_func(key) (khint32_t)(key) -/*! @function - @abstract Integer comparison function - */ -#define kh_int_hash_equal(a, b) ((a) == (b)) -/*! @function - @abstract 64-bit integer hash function - @param key The integer [khint64_t] - @return The hash value [khint_t] - */ -#define kh_int64_hash_func(key) (khint32_t)((key)>>33^(key)^(key)<<11) -/*! @function - @abstract 64-bit integer comparison function - */ -#define kh_int64_hash_equal(a, b) ((a) == (b)) -/*! @function - @abstract const char* hash function - @param s Pointer to a null terminated string - @return The hash value - */ -static kh_inline khint_t __ac_X31_hash_string(const char *s) -{ - khint_t h = (khint_t)*s; - if (h) for (++s ; *s; ++s) h = (h << 5) - h + (khint_t)*s; - return h; -} -/*! @function - @abstract Another interface to const char* hash function - @param key Pointer to a null terminated string [const char*] - @return The hash value [khint_t] - */ -#define kh_str_hash_func(key) __ac_X31_hash_string(key) -/*! @function - @abstract Const char* comparison function - */ -#define kh_str_hash_equal(a, b) (strcmp(a, b) == 0) - -static kh_inline khint_t __ac_Wang_hash(khint_t key) -{ - key += ~(key << 15); - key ^= (key >> 10); - key += (key << 3); - key ^= (key >> 6); - key += ~(key << 11); - key ^= (key >> 16); - return key; -} -#define kh_int_hash_func2(k) __ac_Wang_hash((khint_t)key) - -/* --- END OF HASH FUNCTIONS --- */ - -/* Other convenient macros... */ - -/*! - @abstract Type of the hash table. - @param name Name of the hash table [symbol] - */ -#define khash_t(name) kh_##name##_t - -/*! @function - @abstract Initiate a hash table. - @param name Name of the hash table [symbol] - @return Pointer to the hash table [khash_t(name)*] - */ -#define kh_init(name) kh_init_##name() - -/*! @function - @abstract Destroy a hash table. - @param name Name of the hash table [symbol] - @param h Pointer to the hash table [khash_t(name)*] - */ -#define kh_destroy(name, h) kh_destroy_##name(h) - -/*! @function - @abstract Reset a hash table without deallocating memory. - @param name Name of the hash table [symbol] - @param h Pointer to the hash table [khash_t(name)*] - */ -#define kh_clear(name, h) kh_clear_##name(h) - -/*! @function - @abstract Resize a hash table. - @param name Name of the hash table [symbol] - @param h Pointer to the hash table [khash_t(name)*] - @param s New size [khint_t] - */ -#define kh_resize(name, h, s) kh_resize_##name(h, s) - -/*! @function - @abstract Insert a key to the hash table. - @param name Name of the hash table [symbol] - @param h Pointer to the hash table [khash_t(name)*] - @param k Key [type of keys] - @param r Extra return code: -1 if the operation failed; - 0 if the key is present in the hash table; - 1 if the bucket is empty (never used); 2 if the element in - the bucket has been deleted [int*] - @return Iterator to the inserted element [khint_t] - */ -#define kh_put(name, h, k, r) kh_put_##name(h, k, r) - -/*! @function - @abstract Retrieve a key from the hash table. - @param name Name of the hash table [symbol] - @param h Pointer to the hash table [khash_t(name)*] - @param k Key [type of keys] - @return Iterator to the found element, or kh_end(h) if the element is absent [khint_t] - */ -#define kh_get(name, h, k) kh_get_##name(h, k) - -/*! @function - @abstract Remove a key from the hash table. - @param name Name of the hash table [symbol] - @param h Pointer to the hash table [khash_t(name)*] - @param k Iterator to the element to be deleted [khint_t] - */ -#define kh_del(name, h, k) kh_del_##name(h, k) - -/*! @function - @abstract Test whether a bucket contains data. - @param h Pointer to the hash table [khash_t(name)*] - @param x Iterator to the bucket [khint_t] - @return 1 if containing data; 0 otherwise [int] - */ -#define kh_exist(h, x) (!__ac_iseither((h)->flags, (x))) - -/*! @function - @abstract Get key given an iterator - @param h Pointer to the hash table [khash_t(name)*] - @param x Iterator to the bucket [khint_t] - @return Key [type of keys] - */ -#define kh_key(h, x) ((h)->keys[x]) - -/*! @function - @abstract Get value given an iterator - @param h Pointer to the hash table [khash_t(name)*] - @param x Iterator to the bucket [khint_t] - @return Value [type of values] - @discussion For hash sets, calling this results in segfault. - */ -#define kh_val(h, x) ((h)->vals[x]) - -/*! @function - @abstract Alias of kh_val() - */ -#define kh_value(h, x) ((h)->vals[x]) - -/*! @function - @abstract Get the start iterator - @param h Pointer to the hash table [khash_t(name)*] - @return The start iterator [khint_t] - */ -#define kh_begin(h) (khint_t)(0) - -/*! @function - @abstract Get the end iterator - @param h Pointer to the hash table [khash_t(name)*] - @return The end iterator [khint_t] - */ -#define kh_end(h) ((h)->n_buckets) - -/*! @function - @abstract Get the number of elements in the hash table - @param h Pointer to the hash table [khash_t(name)*] - @return Number of elements in the hash table [khint_t] - */ -#define kh_size(h) ((h)->size) - -/*! @function - @abstract Get the number of buckets in the hash table - @param h Pointer to the hash table [khash_t(name)*] - @return Number of buckets in the hash table [khint_t] - */ -#define kh_n_buckets(h) ((h)->n_buckets) - -/*! @function - @abstract Iterate over the entries in the hash table - @param h Pointer to the hash table [khash_t(name)*] - @param kvar Variable to which key will be assigned - @param vvar Variable to which value will be assigned - @param code Block of code to execute - */ -#define kh_foreach(h, kvar, vvar, code) { khint_t __i; \ - for (__i = kh_begin(h); __i != kh_end(h); ++__i) { \ - if (!kh_exist(h,__i)) continue; \ - (kvar) = kh_key(h,__i); \ - (vvar) = kh_val(h,__i); \ - code; \ - } } - -/*! @function - @abstract Iterate over the values in the hash table - @param h Pointer to the hash table [khash_t(name)*] - @param vvar Variable to which value will be assigned - @param code Block of code to execute - */ -#define kh_foreach_value(h, vvar, code) { khint_t __i; \ - for (__i = kh_begin(h); __i != kh_end(h); ++__i) { \ - if (!kh_exist(h,__i)) continue; \ - (vvar) = kh_val(h,__i); \ - code; \ - } } - -/* More conenient interfaces */ - -/*! @function - @abstract Instantiate a hash set containing integer keys - @param name Name of the hash table [symbol] - */ -#define KHASH_SET_INIT_INT(name) \ - KHASH_INIT(name, khint32_t, char, 0, kh_int_hash_func, kh_int_hash_equal) - -/*! @function - @abstract Instantiate a hash map containing integer keys - @param name Name of the hash table [symbol] - @param khval_t Type of values [type] - */ -#define KHASH_MAP_INIT_INT(name, khval_t) \ - KHASH_INIT(name, khint32_t, khval_t, 1, kh_int_hash_func, kh_int_hash_equal) - -/*! @function - @abstract Instantiate a hash map containing 64-bit integer keys - @param name Name of the hash table [symbol] - */ -#define KHASH_SET_INIT_INT64(name) \ - KHASH_INIT(name, khint64_t, char, 0, kh_int64_hash_func, kh_int64_hash_equal) - -/*! @function - @abstract Instantiate a hash map containing 64-bit integer keys - @param name Name of the hash table [symbol] - @param khval_t Type of values [type] - */ -#define KHASH_MAP_INIT_INT64(name, khval_t) \ - KHASH_INIT(name, khint64_t, khval_t, 1, kh_int64_hash_func, kh_int64_hash_equal) - -typedef const char *kh_cstr_t; -/*! @function - @abstract Instantiate a hash map containing const char* keys - @param name Name of the hash table [symbol] - */ -#define KHASH_SET_INIT_STR(name) \ - KHASH_INIT(name, kh_cstr_t, char, 0, kh_str_hash_func, kh_str_hash_equal) - -/*! @function - @abstract Instantiate a hash map containing const char* keys - @param name Name of the hash table [symbol] - @param khval_t Type of values [type] - */ -#define KHASH_MAP_INIT_STR(name, khval_t) \ - KHASH_INIT(name, kh_cstr_t, khval_t, 1, kh_str_hash_func, kh_str_hash_equal) - -#endif /* __AC_KHASH_H */ diff --git a/htslib/htslib/khash_str2int.h b/htslib/htslib/khash_str2int.h deleted file mode 100644 index 4bbc100..0000000 --- a/htslib/htslib/khash_str2int.h +++ /dev/null @@ -1,133 +0,0 @@ -/* khash_str2int.h -- C-string to integer hash table. - - Copyright (C) 2013 Genome Research Ltd. - - Author: Petr Danecek - -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. */ - -#ifndef HTSLIB_KHASH_STR2INT_H -#define HTSLIB_KHASH_STR2INT_H - -#include - -KHASH_MAP_INIT_STR(str2int, int) - -/* - * Wrappers for khash dictionaries used by mpileup. - */ - -static inline void *khash_str2int_init(void) -{ - return kh_init(str2int); -} - -/* - * Destroy the hash structure, but not the keys - */ -static inline void khash_str2int_destroy(void *_hash) -{ - khash_t(str2int) *hash = (khash_t(str2int)*)_hash; - if (hash) kh_destroy(str2int, hash); // Note that strings are not freed. -} - -/* - * Destroys both the hash structure and the keys - */ -static inline void khash_str2int_destroy_free(void *_hash) -{ - khash_t(str2int) *hash = (khash_t(str2int)*)_hash; - khint_t k; - if (hash == 0) return; - for (k = 0; k < kh_end(hash); ++k) - if (kh_exist(hash, k)) free((char*)kh_key(hash, k)); - kh_destroy(str2int, hash); -} - -/* - * Returns 1 if key exists or 0 if not - */ -static inline int khash_str2int_has_key(void *_hash, const char *str) -{ - khash_t(str2int) *hash = (khash_t(str2int)*)_hash; - khint_t k = kh_get(str2int, hash, str); - if ( k == kh_end(hash) ) return 0; - return 1; -} - -/* - * Returns 0 on success and -1 when the key is not present. On success, - * *value is set, unless NULL is passed. - */ -static inline int khash_str2int_get(void *_hash, const char *str, int *value) -{ - khash_t(str2int) *hash = (khash_t(str2int)*)_hash; - khint_t k; - if ( !hash ) return -1; - k = kh_get(str2int, hash, str); - if ( k == kh_end(hash) ) return -1; - if ( !value ) return 0; - *value = kh_val(hash, k); - return 0; -} - -/* - * Add a new string to the dictionary, auto-incrementing the value. - * On success returns the newly inserted integer id, on error -1 - * is returned. Note that the key must continue to exist throughout - * the whole life of _hash. - */ -static inline int khash_str2int_inc(void *_hash, const char *str) -{ - khint_t k; - int ret; - khash_t(str2int) *hash = (khash_t(str2int)*)_hash; - if ( !hash ) return -1; - k = kh_put(str2int, hash, str, &ret); - if (ret == 0) return kh_val(hash, k); - kh_val(hash, k) = kh_size(hash) - 1; - return kh_val(hash, k); -} - -/* - * Set a new key,value pair. On success returns the bin index, on - * error -1 is returned. Note that the key must contnue to exist - * throughout the whole life of _hash. - */ -static inline int khash_str2int_set(void *_hash, const char *str, int value) -{ - khint_t k; - int ret; - khash_t(str2int) *hash = (khash_t(str2int)*)_hash; - if ( !hash ) return -1; - k = kh_put(str2int, hash, str, &ret); - kh_val(hash,k) = value; - return k; -} - -/* - * Return the number of keys in the hash table. - */ -static inline int khash_str2int_size(void *_hash) -{ - khash_t(str2int) *hash = (khash_t(str2int)*)_hash; - return kh_size(hash); -} - -#endif diff --git a/htslib/htslib/klist.h b/htslib/htslib/klist.h deleted file mode 100644 index 8b33f27..0000000 --- a/htslib/htslib/klist.h +++ /dev/null @@ -1,121 +0,0 @@ -/* The MIT License - - Copyright (c) 2008-2009, by Attractive Chaos - - 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. -*/ - -#ifndef _AC_KLIST_H -#define _AC_KLIST_H - -#include - -#define KMEMPOOL_INIT(name, kmptype_t, kmpfree_f) \ - typedef struct { \ - size_t cnt, n, max; \ - kmptype_t **buf; \ - } kmp_##name##_t; \ - static inline kmp_##name##_t *kmp_init_##name(void) { \ - return calloc(1, sizeof(kmp_##name##_t)); \ - } \ - static inline void kmp_destroy_##name(kmp_##name##_t *mp) { \ - size_t k; \ - for (k = 0; k < mp->n; ++k) { \ - kmpfree_f(mp->buf[k]); free(mp->buf[k]); \ - } \ - free(mp->buf); free(mp); \ - } \ - static inline kmptype_t *kmp_alloc_##name(kmp_##name##_t *mp) { \ - ++mp->cnt; \ - if (mp->n == 0) return calloc(1, sizeof(kmptype_t)); \ - return mp->buf[--mp->n]; \ - } \ - static inline void kmp_free_##name(kmp_##name##_t *mp, kmptype_t *p) { \ - --mp->cnt; \ - if (mp->n == mp->max) { \ - mp->max = mp->max? mp->max<<1 : 16; \ - mp->buf = realloc(mp->buf, sizeof(kmptype_t *) * mp->max); \ - } \ - mp->buf[mp->n++] = p; \ - } - -#define kmempool_t(name) kmp_##name##_t -#define kmp_init(name) kmp_init_##name() -#define kmp_destroy(name, mp) kmp_destroy_##name(mp) -#define kmp_alloc(name, mp) kmp_alloc_##name(mp) -#define kmp_free(name, mp, p) kmp_free_##name(mp, p) - -#define KLIST_INIT(name, kltype_t, kmpfree_t) \ - struct __kl1_##name { \ - kltype_t data; \ - struct __kl1_##name *next; \ - }; \ - typedef struct __kl1_##name kl1_##name; \ - KMEMPOOL_INIT(name, kl1_##name, kmpfree_t) \ - typedef struct { \ - kl1_##name *head, *tail; \ - kmp_##name##_t *mp; \ - size_t size; \ - } kl_##name##_t; \ - static inline kl_##name##_t *kl_init_##name(void) { \ - kl_##name##_t *kl = calloc(1, sizeof(kl_##name##_t)); \ - kl->mp = kmp_init(name); \ - kl->head = kl->tail = kmp_alloc(name, kl->mp); \ - kl->head->next = 0; \ - return kl; \ - } \ - static inline void kl_destroy_##name(kl_##name##_t *kl) { \ - kl1_##name *p; \ - for (p = kl->head; p != kl->tail; p = p->next) \ - kmp_free(name, kl->mp, p); \ - kmp_free(name, kl->mp, p); \ - kmp_destroy(name, kl->mp); \ - free(kl); \ - } \ - static inline kltype_t *kl_pushp_##name(kl_##name##_t *kl) { \ - kl1_##name *q, *p = kmp_alloc(name, kl->mp); \ - q = kl->tail; p->next = 0; kl->tail->next = p; kl->tail = p; \ - ++kl->size; \ - return &q->data; \ - } \ - static inline int kl_shift_##name(kl_##name##_t *kl, kltype_t *d) { \ - kl1_##name *p; \ - if (kl->head->next == 0) return -1; \ - --kl->size; \ - p = kl->head; kl->head = kl->head->next; \ - if (d) *d = p->data; \ - kmp_free(name, kl->mp, p); \ - return 0; \ - } - -#define kliter_t(name) kl1_##name -#define klist_t(name) kl_##name##_t -#define kl_val(iter) ((iter)->data) -#define kl_next(iter) ((iter)->next) -#define kl_begin(kl) ((kl)->head) -#define kl_end(kl) ((kl)->tail) - -#define kl_init(name) kl_init_##name() -#define kl_destroy(name, kl) kl_destroy_##name(kl) -#define kl_pushp(name, kl) kl_pushp_##name(kl) -#define kl_shift(name, kl, d) kl_shift_##name(kl, d) - -#endif diff --git a/htslib/htslib/knetfile.h b/htslib/htslib/knetfile.h deleted file mode 100644 index b200a51..0000000 --- a/htslib/htslib/knetfile.h +++ /dev/null @@ -1,101 +0,0 @@ -/* The MIT License - - Copyright (c) 2008 by Genome Research Ltd (GRL). - 2010 by Attractive Chaos - - 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. -*/ - -#ifndef KNETFILE_H -#define KNETFILE_H - -#include -#include - -#ifndef _WIN32 -#define netread(fd, ptr, len) read(fd, ptr, len) -#define netwrite(fd, ptr, len) write(fd, ptr, len) -#define netclose(fd) close(fd) -#else -#include -#define netread(fd, ptr, len) recv(fd, ptr, len, 0) -#define netwrite(fd, ptr, len) send(fd, ptr, len, 0) -#define netclose(fd) closesocket(fd) -#endif - -// FIXME: currently I/O is unbuffered - -#define KNF_TYPE_LOCAL 1 -#define KNF_TYPE_FTP 2 -#define KNF_TYPE_HTTP 3 - -typedef struct knetFile_s { - int type, fd; - int64_t offset; - char *host, *port; - - // the following are for FTP only - int ctrl_fd, pasv_ip[4], pasv_port, max_response, no_reconnect, is_ready; - char *response, *retr, *size_cmd; - int64_t seek_offset; // for lazy seek - int64_t file_size; - - // the following are for HTTP only - char *path, *http_host; -} knetFile; - -#define knet_tell(fp) ((fp)->offset) -#define knet_fileno(fp) ((fp)->fd) - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _WIN32 - int knet_win32_init(); - void knet_win32_destroy(); -#endif - - knetFile *knet_open(const char *fn, const char *mode); - - /* - This only works with local files. - */ - knetFile *knet_dopen(int fd, const char *mode); - - /* - If ->is_ready==0, this routine updates ->fd; otherwise, it simply - reads from ->fd. - */ - ssize_t knet_read(knetFile *fp, void *buf, size_t len); - - /* - This routine only sets ->offset and ->is_ready=0. It does not - communicate with the FTP server. - */ - off_t knet_seek(knetFile *fp, off_t off, int whence); - int knet_close(knetFile *fp); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/htslib/kseq.h b/htslib/htslib/kseq.h deleted file mode 100644 index e1a3eaa..0000000 --- a/htslib/htslib/kseq.h +++ /dev/null @@ -1,253 +0,0 @@ -/* The MIT License - - Copyright (c) 2008, 2009, 2011 Attractive Chaos - - 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. -*/ - -/* Last Modified: 05MAR2012 */ - -#ifndef AC_KSEQ_H -#define AC_KSEQ_H - -#include -#include -#include - -#define KS_SEP_SPACE 0 // isspace(): \t, \n, \v, \f, \r -#define KS_SEP_TAB 1 // isspace() && !' ' -#define KS_SEP_LINE 2 // line separator: "\n" (Unix) or "\r\n" (Windows) -#define KS_SEP_MAX 2 - -#define __KS_TYPE(type_t) \ - typedef struct __kstream_t { \ - int begin, end; \ - int is_eof:2, bufsize:30; \ - uint64_t seek_pos; \ - type_t f; \ - unsigned char *buf; \ - } kstream_t; - -#define ks_eof(ks) ((ks)->is_eof && (ks)->begin >= (ks)->end) -#define ks_rewind(ks) ((ks)->is_eof = (ks)->begin = (ks)->end = 0) - -#define __KS_BASIC(SCOPE, type_t, __bufsize) \ - SCOPE kstream_t *ks_init(type_t f) \ - { \ - kstream_t *ks = (kstream_t*)calloc(1, sizeof(kstream_t)); \ - ks->f = f; ks->bufsize = __bufsize; \ - ks->buf = (unsigned char*)malloc(__bufsize); \ - return ks; \ - } \ - SCOPE void ks_destroy(kstream_t *ks) \ - { \ - if (!ks) return; \ - free(ks->buf); \ - free(ks); \ - } - -#define __KS_INLINED(__read) \ - static inline int ks_getc(kstream_t *ks) \ - { \ - if (ks->is_eof && ks->begin >= ks->end) return -1; \ - if (ks->begin >= ks->end) { \ - ks->begin = 0; \ - ks->end = __read(ks->f, ks->buf, ks->bufsize); \ - if (ks->end == 0) { ks->is_eof = 1; return -1; } \ - } \ - ks->seek_pos++; \ - return (int)ks->buf[ks->begin++]; \ - } \ - static inline int ks_getuntil(kstream_t *ks, int delimiter, kstring_t *str, int *dret) \ - { return ks_getuntil2(ks, delimiter, str, dret, 0); } - -#ifndef KSTRING_T -#define KSTRING_T kstring_t -typedef struct __kstring_t { - size_t l, m; - char *s; -} kstring_t; -#endif - -#ifndef kroundup32 -#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) -#endif - -#define __KS_GETUNTIL(SCOPE, __read) \ - SCOPE int ks_getuntil2(kstream_t *ks, int delimiter, kstring_t *str, int *dret, int append) \ - { \ - int gotany = 0; \ - if (dret) *dret = 0; \ - str->l = append? str->l : 0; \ - uint64_t seek_pos = str->l; \ - for (;;) { \ - int i; \ - if (ks->begin >= ks->end) { \ - if (!ks->is_eof) { \ - ks->begin = 0; \ - ks->end = __read(ks->f, ks->buf, ks->bufsize); \ - if (ks->end == 0) { ks->is_eof = 1; break; } \ - } else break; \ - } \ - if (delimiter == KS_SEP_LINE) { \ - for (i = ks->begin; i < ks->end; ++i) \ - if (ks->buf[i] == '\n') break; \ - } else if (delimiter > KS_SEP_MAX) { \ - for (i = ks->begin; i < ks->end; ++i) \ - if (ks->buf[i] == delimiter) break; \ - } else if (delimiter == KS_SEP_SPACE) { \ - for (i = ks->begin; i < ks->end; ++i) \ - if (isspace(ks->buf[i])) break; \ - } else if (delimiter == KS_SEP_TAB) { \ - for (i = ks->begin; i < ks->end; ++i) \ - if (isspace(ks->buf[i]) && ks->buf[i] != ' ') break; \ - } else i = 0; /* never come to here! */ \ - if (str->m - str->l < (size_t)(i - ks->begin + 1)) { \ - str->m = str->l + (i - ks->begin) + 1; \ - kroundup32(str->m); \ - str->s = (char*)realloc(str->s, str->m); \ - } \ - seek_pos += i - ks->begin; if ( i < ks->end ) seek_pos++; \ - gotany = 1; \ - memcpy(str->s + str->l, ks->buf + ks->begin, i - ks->begin); \ - str->l = str->l + (i - ks->begin); \ - ks->begin = i + 1; \ - if (i < ks->end) { \ - if (dret) *dret = ks->buf[i]; \ - break; \ - } \ - } \ - if (!gotany && ks_eof(ks)) return -1; \ - ks->seek_pos += seek_pos; \ - if (str->s == 0) { \ - str->m = 1; \ - str->s = (char*)calloc(1, 1); \ - } else if (delimiter == KS_SEP_LINE && str->l > 1 && str->s[str->l-1] == '\r') --str->l; \ - str->s[str->l] = '\0'; \ - return str->l; \ - } - -#define KSTREAM_INIT2(SCOPE, type_t, __read, __bufsize) \ - __KS_TYPE(type_t) \ - __KS_BASIC(SCOPE, type_t, __bufsize) \ - __KS_GETUNTIL(SCOPE, __read) \ - __KS_INLINED(__read) - -#define KSTREAM_INIT(type_t, __read, __bufsize) KSTREAM_INIT2(static, type_t, __read, __bufsize) - -#define KSTREAM_DECLARE(type_t, __read) \ - __KS_TYPE(type_t) \ - extern int ks_getuntil2(kstream_t *ks, int delimiter, kstring_t *str, int *dret, int append); \ - extern kstream_t *ks_init(type_t f); \ - extern void ks_destroy(kstream_t *ks); \ - __KS_INLINED(__read) - -/****************** - * FASTA/Q parser * - ******************/ - -#define kseq_rewind(ks) ((ks)->last_char = (ks)->f->is_eof = (ks)->f->begin = (ks)->f->end = 0) - -#define __KSEQ_BASIC(SCOPE, type_t) \ - SCOPE kseq_t *kseq_init(type_t fd) \ - { \ - kseq_t *s = (kseq_t*)calloc(1, sizeof(kseq_t)); \ - s->f = ks_init(fd); \ - return s; \ - } \ - SCOPE void kseq_destroy(kseq_t *ks) \ - { \ - if (!ks) return; \ - free(ks->name.s); free(ks->comment.s); free(ks->seq.s); free(ks->qual.s); \ - ks_destroy(ks->f); \ - free(ks); \ - } - -/* Return value: - >=0 length of the sequence (normal) - -1 end-of-file - -2 truncated quality string - */ -#define __KSEQ_READ(SCOPE) \ - SCOPE int kseq_read(kseq_t *seq) \ - { \ - int c; \ - kstream_t *ks = seq->f; \ - if (seq->last_char == 0) { /* then jump to the next header line */ \ - while ((c = ks_getc(ks)) != -1 && c != '>' && c != '@'); \ - if (c == -1) return -1; /* end of file */ \ - seq->last_char = c; \ - } /* else: the first header char has been read in the previous call */ \ - seq->comment.l = seq->seq.l = seq->qual.l = 0; /* reset all members */ \ - if (ks_getuntil(ks, 0, &seq->name, &c) < 0) return -1; /* normal exit: EOF */ \ - if (c != '\n') ks_getuntil(ks, KS_SEP_LINE, &seq->comment, 0); /* read FASTA/Q comment */ \ - if (seq->seq.s == 0) { /* we can do this in the loop below, but that is slower */ \ - seq->seq.m = 256; \ - seq->seq.s = (char*)malloc(seq->seq.m); \ - } \ - while ((c = ks_getc(ks)) != -1 && c != '>' && c != '+' && c != '@') { \ - if (c == '\n') continue; /* skip empty lines */ \ - seq->seq.s[seq->seq.l++] = c; /* this is safe: we always have enough space for 1 char */ \ - ks_getuntil2(ks, KS_SEP_LINE, &seq->seq, 0, 1); /* read the rest of the line */ \ - } \ - if (c == '>' || c == '@') seq->last_char = c; /* the first header char has been read */ \ - if (seq->seq.l + 1 >= seq->seq.m) { /* seq->seq.s[seq->seq.l] below may be out of boundary */ \ - seq->seq.m = seq->seq.l + 2; \ - kroundup32(seq->seq.m); /* rounded to the next closest 2^k */ \ - seq->seq.s = (char*)realloc(seq->seq.s, seq->seq.m); \ - } \ - seq->seq.s[seq->seq.l] = 0; /* null terminated string */ \ - if (c != '+') return seq->seq.l; /* FASTA */ \ - if (seq->qual.m < seq->seq.m) { /* allocate memory for qual in case insufficient */ \ - seq->qual.m = seq->seq.m; \ - seq->qual.s = (char*)realloc(seq->qual.s, seq->qual.m); \ - } \ - while ((c = ks_getc(ks)) != -1 && c != '\n'); /* skip the rest of '+' line */ \ - if (c == -1) return -2; /* error: no quality string */ \ - while (ks_getuntil2(ks, KS_SEP_LINE, &seq->qual, 0, 1) >= 0 && seq->qual.l < seq->seq.l); \ - seq->last_char = 0; /* we have not come to the next header line */ \ - if (seq->seq.l != seq->qual.l) return -2; /* error: qual string is of a different length */ \ - return seq->seq.l; \ - } - -#define __KSEQ_TYPE(type_t) \ - typedef struct { \ - kstring_t name, comment, seq, qual; \ - int last_char; \ - kstream_t *f; \ - } kseq_t; - -#define KSEQ_INIT2(SCOPE, type_t, __read) \ - KSTREAM_INIT(type_t, __read, 16384) \ - __KSEQ_TYPE(type_t) \ - __KSEQ_BASIC(SCOPE, type_t) \ - __KSEQ_READ(SCOPE) - -#define KSEQ_INIT(type_t, __read) KSEQ_INIT2(static, type_t, __read) - -#define KSEQ_DECLARE(type_t) \ - __KS_TYPE(type_t) \ - __KSEQ_TYPE(type_t) \ - extern kseq_t *kseq_init(type_t fd); \ - void kseq_destroy(kseq_t *ks); \ - int kseq_read(kseq_t *seq); - -#endif diff --git a/htslib/htslib/ksort.h b/htslib/htslib/ksort.h deleted file mode 100644 index aa0bb93..0000000 --- a/htslib/htslib/ksort.h +++ /dev/null @@ -1,285 +0,0 @@ -/* The MIT License - - Copyright (c) 2008 Genome Research Ltd (GRL). - - 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. -*/ - -/* Contact: Heng Li */ - -/* - 2012-12-11 (0.1.4): - - * Defined __ks_insertsort_##name as static to compile with C99. - - 2008-11-16 (0.1.4): - - * Fixed a bug in introsort() that happens in rare cases. - - 2008-11-05 (0.1.3): - - * Fixed a bug in introsort() for complex comparisons. - - * Fixed a bug in mergesort(). The previous version is not stable. - - 2008-09-15 (0.1.2): - - * Accelerated introsort. On my Mac (not on another Linux machine), - my implementation is as fast as std::sort on random input. - - * Added combsort and in introsort, switch to combsort if the - recursion is too deep. - - 2008-09-13 (0.1.1): - - * Added k-small algorithm - - 2008-09-05 (0.1.0): - - * Initial version - -*/ - -#ifndef AC_KSORT_H -#define AC_KSORT_H - -#include -#include - -typedef struct { - void *left, *right; - int depth; -} ks_isort_stack_t; - -#define KSORT_SWAP(type_t, a, b) { register type_t t=(a); (a)=(b); (b)=t; } - -#define KSORT_INIT(name, type_t, __sort_lt) \ - void ks_mergesort_##name(size_t n, type_t array[], type_t temp[]) \ - { \ - type_t *a2[2], *a, *b; \ - int curr, shift; \ - \ - a2[0] = array; \ - a2[1] = temp? temp : (type_t*)malloc(sizeof(type_t) * n); \ - for (curr = 0, shift = 0; (1ul<> 1) - 1; i != (size_t)(-1); --i) \ - ks_heapadjust_##name(i, lsize, l); \ - } \ - void ks_heapsort_##name(size_t lsize, type_t l[]) \ - { \ - size_t i; \ - for (i = lsize - 1; i > 0; --i) { \ - type_t tmp; \ - tmp = *l; *l = l[i]; l[i] = tmp; ks_heapadjust_##name(0, i, l); \ - } \ - } \ - static inline void __ks_insertsort_##name(type_t *s, type_t *t) \ - { \ - type_t *i, *j, swap_tmp; \ - for (i = s + 1; i < t; ++i) \ - for (j = i; j > s && __sort_lt(*j, *(j-1)); --j) { \ - swap_tmp = *j; *j = *(j-1); *(j-1) = swap_tmp; \ - } \ - } \ - void ks_combsort_##name(size_t n, type_t a[]) \ - { \ - const double shrink_factor = 1.2473309501039786540366528676643; \ - int do_swap; \ - size_t gap = n; \ - type_t tmp, *i, *j; \ - do { \ - if (gap > 2) { \ - gap = (size_t)(gap / shrink_factor); \ - if (gap == 9 || gap == 10) gap = 11; \ - } \ - do_swap = 0; \ - for (i = a; i < a + n - gap; ++i) { \ - j = i + gap; \ - if (__sort_lt(*j, *i)) { \ - tmp = *i; *i = *j; *j = tmp; \ - do_swap = 1; \ - } \ - } \ - } while (do_swap || gap > 2); \ - if (gap != 1) __ks_insertsort_##name(a, a + n); \ - } \ - void ks_introsort_##name(size_t n, type_t a[]) \ - { \ - int d; \ - ks_isort_stack_t *top, *stack; \ - type_t rp, swap_tmp; \ - type_t *s, *t, *i, *j, *k; \ - \ - if (n < 1) return; \ - else if (n == 2) { \ - if (__sort_lt(a[1], a[0])) { swap_tmp = a[0]; a[0] = a[1]; a[1] = swap_tmp; } \ - return; \ - } \ - for (d = 2; 1ul<>1) + 1; \ - if (__sort_lt(*k, *i)) { \ - if (__sort_lt(*k, *j)) k = j; \ - } else k = __sort_lt(*j, *i)? i : j; \ - rp = *k; \ - if (k != t) { swap_tmp = *k; *k = *t; *t = swap_tmp; } \ - for (;;) { \ - do ++i; while (__sort_lt(*i, rp)); \ - do --j; while (i <= j && __sort_lt(rp, *j)); \ - if (j <= i) break; \ - swap_tmp = *i; *i = *j; *j = swap_tmp; \ - } \ - swap_tmp = *i; *i = *t; *t = swap_tmp; \ - if (i-s > t-i) { \ - if (i-s > 16) { top->left = s; top->right = i-1; top->depth = d; ++top; } \ - s = t-i > 16? i+1 : t; \ - } else { \ - if (t-i > 16) { top->left = i+1; top->right = t; top->depth = d; ++top; } \ - t = i-s > 16? i-1 : s; \ - } \ - } else { \ - if (top == stack) { \ - free(stack); \ - __ks_insertsort_##name(a, a+n); \ - return; \ - } else { --top; s = (type_t*)top->left; t = (type_t*)top->right; d = top->depth; } \ - } \ - } \ - } \ - /* This function is adapted from: http://ndevilla.free.fr/median/ */ \ - /* 0 <= kk < n */ \ - type_t ks_ksmall_##name(size_t n, type_t arr[], size_t kk) \ - { \ - type_t *low, *high, *k, *ll, *hh, *mid; \ - low = arr; high = arr + n - 1; k = arr + kk; \ - for (;;) { \ - if (high <= low) return *k; \ - if (high == low + 1) { \ - if (__sort_lt(*high, *low)) KSORT_SWAP(type_t, *low, *high); \ - return *k; \ - } \ - mid = low + (high - low) / 2; \ - if (__sort_lt(*high, *mid)) KSORT_SWAP(type_t, *mid, *high); \ - if (__sort_lt(*high, *low)) KSORT_SWAP(type_t, *low, *high); \ - if (__sort_lt(*low, *mid)) KSORT_SWAP(type_t, *mid, *low); \ - KSORT_SWAP(type_t, *mid, *(low+1)); \ - ll = low + 1; hh = high; \ - for (;;) { \ - do ++ll; while (__sort_lt(*ll, *low)); \ - do --hh; while (__sort_lt(*low, *hh)); \ - if (hh < ll) break; \ - KSORT_SWAP(type_t, *ll, *hh); \ - } \ - KSORT_SWAP(type_t, *low, *hh); \ - if (hh <= k) low = ll; \ - if (hh >= k) high = hh - 1; \ - } \ - } \ - void ks_shuffle_##name(size_t n, type_t a[]) \ - { \ - int i, j; \ - for (i = n; i > 1; --i) { \ - type_t tmp; \ - j = (int)(drand48() * i); \ - tmp = a[j]; a[j] = a[i-1]; a[i-1] = tmp; \ - } \ - } - -#define ks_mergesort(name, n, a, t) ks_mergesort_##name(n, a, t) -#define ks_introsort(name, n, a) ks_introsort_##name(n, a) -#define ks_combsort(name, n, a) ks_combsort_##name(n, a) -#define ks_heapsort(name, n, a) ks_heapsort_##name(n, a) -#define ks_heapmake(name, n, a) ks_heapmake_##name(n, a) -#define ks_heapadjust(name, i, n, a) ks_heapadjust_##name(i, n, a) -#define ks_ksmall(name, n, a, k) ks_ksmall_##name(n, a, k) -#define ks_shuffle(name, n, a) ks_shuffle_##name(n, a) - -#define ks_lt_generic(a, b) ((a) < (b)) -#define ks_lt_str(a, b) (strcmp((a), (b)) < 0) - -typedef const char *ksstr_t; - -#define KSORT_INIT_GENERIC(type_t) KSORT_INIT(type_t, type_t, ks_lt_generic) -#define KSORT_INIT_STR KSORT_INIT(str, ksstr_t, ks_lt_str) - -#endif diff --git a/htslib/htslib/kstring.h b/htslib/htslib/kstring.h deleted file mode 100644 index 7e9b98d..0000000 --- a/htslib/htslib/kstring.h +++ /dev/null @@ -1,270 +0,0 @@ -/* The MIT License - - Copyright (C) 2011 by Attractive Chaos - - 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. -*/ - -#ifndef KSTRING_H -#define KSTRING_H - -#include -#include -#include -#include -#include - -#ifndef kroundup32 -#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) -#endif - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) -#define KS_ATTR_PRINTF(fmt, arg) __attribute__((__format__ (__printf__, fmt, arg))) -#else -#define KS_ATTR_PRINTF(fmt, arg) -#endif - - -/* kstring_t is a simple non-opaque type whose fields are likely to be - * used directly by user code (but see also ks_str() and ks_len() below). - * A kstring_t object is initialised by either of - * kstring_t str = { 0, 0, NULL }; - * kstring_t str; ...; str.l = str.m = 0; str.s = NULL; - * and either ownership of the underlying buffer should be given away before - * the object disappears (see ks_release() below) or the kstring_t should be - * destroyed with free(str.s); */ -#ifndef KSTRING_T -#define KSTRING_T kstring_t -typedef struct __kstring_t { - size_t l, m; - char *s; -} kstring_t; -#endif - -typedef struct { - uint64_t tab[4]; - int sep, finished; - const char *p; // end of the current token -} ks_tokaux_t; - -#ifdef __cplusplus -extern "C" { -#endif - - int kvsprintf(kstring_t *s, const char *fmt, va_list ap) KS_ATTR_PRINTF(2,0); - int ksprintf(kstring_t *s, const char *fmt, ...) KS_ATTR_PRINTF(2,3); - int ksplit_core(char *s, int delimiter, int *_max, int **_offsets); - char *kstrstr(const char *str, const char *pat, int **_prep); - char *kstrnstr(const char *str, const char *pat, int n, int **_prep); - void *kmemmem(const void *_str, int n, const void *_pat, int m, int **_prep); - - /* kstrtok() is similar to strtok_r() except that str is not - * modified and both str and sep can be NULL. For efficiency, it is - * actually recommended to set both to NULL in the subsequent calls - * if sep is not changed. */ - char *kstrtok(const char *str, const char *sep, ks_tokaux_t *aux); - -#ifdef __cplusplus -} -#endif - -static inline int ks_resize(kstring_t *s, size_t size) -{ - if (s->m < size) { - char *tmp; - s->m = size; - kroundup32(s->m); - if ((tmp = (char*)realloc(s->s, s->m))) - s->s = tmp; - else - return -1; - } - return 0; -} - -static inline char *ks_str(kstring_t *s) -{ - return s->s; -} - -static inline size_t ks_len(kstring_t *s) -{ - return s->l; -} - -// Give ownership of the underlying buffer away to something else (making -// that something else responsible for freeing it), leaving the kstring_t -// empty and ready to be used again, or ready to go out of scope without -// needing free(str.s) to prevent a memory leak. -static inline char *ks_release(kstring_t *s) -{ - char *ss = s->s; - s->l = s->m = 0; - s->s = NULL; - return ss; -} - -static inline int kputsn(const char *p, int l, kstring_t *s) -{ - if (s->l + l + 1 >= s->m) { - char *tmp; - s->m = s->l + l + 2; - kroundup32(s->m); - if ((tmp = (char*)realloc(s->s, s->m))) - s->s = tmp; - else - return EOF; - } - memcpy(s->s + s->l, p, l); - s->l += l; - s->s[s->l] = 0; - return l; -} - -static inline int kputs(const char *p, kstring_t *s) -{ - return kputsn(p, strlen(p), s); -} - -static inline int kputc(int c, kstring_t *s) -{ - if (s->l + 1 >= s->m) { - char *tmp; - s->m = s->l + 2; - kroundup32(s->m); - if ((tmp = (char*)realloc(s->s, s->m))) - s->s = tmp; - else - return EOF; - } - s->s[s->l++] = c; - s->s[s->l] = 0; - return c; -} - -static inline int kputc_(int c, kstring_t *s) -{ - if (s->l + 1 > s->m) { - char *tmp; - s->m = s->l + 1; - kroundup32(s->m); - if ((tmp = (char*)realloc(s->s, s->m))) - s->s = tmp; - else - return EOF; - } - s->s[s->l++] = c; - return 1; -} - -static inline int kputsn_(const void *p, int l, kstring_t *s) -{ - if (s->l + l > s->m) { - char *tmp; - s->m = s->l + l; - kroundup32(s->m); - if ((tmp = (char*)realloc(s->s, s->m))) - s->s = tmp; - else - return EOF; - } - memcpy(s->s + s->l, p, l); - s->l += l; - return l; -} - -static inline int kputw(int c, kstring_t *s) -{ - char buf[16]; - int i, l = 0; - unsigned int x = c; - if (c < 0) x = -x; - do { buf[l++] = x%10 + '0'; x /= 10; } while (x > 0); - if (c < 0) buf[l++] = '-'; - if (s->l + l + 1 >= s->m) { - char *tmp; - s->m = s->l + l + 2; - kroundup32(s->m); - if ((tmp = (char*)realloc(s->s, s->m))) - s->s = tmp; - else - return EOF; - } - for (i = l - 1; i >= 0; --i) s->s[s->l++] = buf[i]; - s->s[s->l] = 0; - return 0; -} - -static inline int kputuw(unsigned c, kstring_t *s) -{ - char buf[16]; - int l, i; - unsigned x; - if (c == 0) return kputc('0', s); - for (l = 0, x = c; x > 0; x /= 10) buf[l++] = x%10 + '0'; - if (s->l + l + 1 >= s->m) { - char *tmp; - s->m = s->l + l + 2; - kroundup32(s->m); - if ((tmp = (char*)realloc(s->s, s->m))) - s->s = tmp; - else - return EOF; - } - for (i = l - 1; i >= 0; --i) s->s[s->l++] = buf[i]; - s->s[s->l] = 0; - return 0; -} - -static inline int kputl(long c, kstring_t *s) -{ - char buf[32]; - int i, l = 0; - unsigned long x = c; - if (c < 0) x = -x; - do { buf[l++] = x%10 + '0'; x /= 10; } while (x > 0); - if (c < 0) buf[l++] = '-'; - if (s->l + l + 1 >= s->m) { - char *tmp; - s->m = s->l + l + 2; - kroundup32(s->m); - if ((tmp = (char*)realloc(s->s, s->m))) - s->s = tmp; - else - return EOF; - } - for (i = l - 1; i >= 0; --i) s->s[s->l++] = buf[i]; - s->s[s->l] = 0; - return 0; -} - -/* - * Returns 's' split by delimiter, with *n being the number of components; - * NULL on failue. - */ -static inline int *ksplit(kstring_t *s, int delimiter, int *n) -{ - int max = 0, *offsets = 0; - *n = ksplit_core(s->s, delimiter, &max, &offsets); - return offsets; -} - -#endif diff --git a/htslib/htslib/regidx.h b/htslib/htslib/regidx.h deleted file mode 100644 index 39a795e..0000000 --- a/htslib/htslib/regidx.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - Copyright (C) 2014 Genome Research Ltd. - - Author: Petr Danecek - - 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. -*/ - -/* - Regions indexing with an optional payload. Inspired by samtools/bedidx.c. - This code is intended as future replacement of bcf_sr_regions_t. - - Example of usage: - - // Init the parser and print regions. In this example the payload is a - // pointer to a string. For the description of parse_custom and - // free_custom functions, see regidx_parse_f and regidx_free_f below, - // and for working example see test/test-regidx.c. - regidx_t *idx = regidx_init(in_fname,parse_custom,free_custom,sizeof(char*),NULL); - - // Query overlap with chr:from-to - regitr_t itr; - if ( regidx_overlap(idx, chr,from,to, &itr) ) printf("There is an overlap!\n"); - - while ( REGITR_OVERLAP(itr,from,to) ) - { - printf("[%d,%d] overlaps with [%d,%d], payload=%s\n", from,to, - REGITR_START(itr), REGITR_END(itr), REGITR_PAYLOAD(itr,char*)); - itr.i++; - } - - regidx_destroy(regs); -*/ - -#ifndef HTSLIB_REGIDX_H -#define HTSLIB_REGIDX_H - -#include -#include - -typedef struct _regidx_t regidx_t; -typedef struct -{ - uint32_t start, end; -} -reg_t; -typedef struct -{ - int i, n; - reg_t *reg; - void *payload; -} -regitr_t; - -#define REGITR_START(itr) (itr).reg[(itr).i].start -#define REGITR_END(itr) (itr).reg[(itr).i].end -#define REGITR_PAYLOAD(itr,type_t) ((type_t*)(itr).payload)[(itr).i] -#define REGITR_OVERLAP(itr,from,to) (itr.i < itr.n && REGITR_START(itr)<=to && REGITR_END(itr)>=from ) - -/* - * regidx_parse_f - Function to parse one input line, such as regidx_parse_bed - * or regidx_parse_tab below. The function is expected to set `chr_from` and - * `chr_to` to point to first and last character of chromosome name and set - * coordinates `reg->start` and `reg->end` (0-based, inclusive). If - * regidx_init() was called with non-zero payload_size, the `payload` points - * to a memory location of the payload_size and `usr` is data passed to - * regidx_init(). Any memory allocated by the function will be freed by - * regidx_free_f on regidx_destroy(). - * - * Return value: 0 on success, -1 to skip a record, -2 on fatal error. - */ -typedef int (*regidx_parse_f)(const char *line, char **chr_beg, char **chr_end, reg_t *reg, void *payload, void *usr); -typedef void (*regidx_free_f)(void *payload); - -int regidx_parse_bed(const char*,char**,char**,reg_t*,void*,void*); // CHROM,FROM,TO (0-based,right-open) -int regidx_parse_tab(const char*,char**,char**,reg_t*,void*,void*); // CHROM,POS (1-based, inclusive) - -/* - * regidx_init() - creates new index - * @param fname: input file name or NULL if regions will be added one-by-one via regidx_insert() - * @param parsef: regidx_parse_bed, regidx_parse_tab or see description of regidx_parse_f. If NULL, - * the format will be autodected, currently either regidx_parse_tab (the default) or - * regidx_parse_bed (file must be named 'bed' or 'bed.gz') will be used. Note that - * the exact autodetection algorithm will change. - * @param freef: NULL or see description of regidx_parse_f - * @param payload_size: 0 with regidx_parse_bed, regidx_parse_tab or see regidx_parse_f - * @param usr: optional user data passed to regidx_parse_f - * - * Returns index on success or NULL on error. - */ -regidx_t *regidx_init(const char *fname, regidx_parse_f parsef, regidx_free_f freef, size_t payload_size, void *usr); - -/* - * regidx_destroy() - free memory allocated by regidx_init - */ -void regidx_destroy(regidx_t *idx); - -/* - * regidx_overlap() - check overlap of the location chr:from-to with regions - * @param start,end: 0-based start, end coordinate (inclusive) - * @param itr: pointer to iterator, can be NULL if not needed - * - * Returns 0 if there is no overlap or 1 if overlap is found. The overlapping - * regions can be iterated as shown in the example above. - */ -int regidx_overlap(regidx_t *idx, const char *chr, uint32_t start, uint32_t end, regitr_t *itr); - -/* - * regidx_insert() - add a new region. - * - * After last region has been added, call regidx_insert(idx,NULL) to - * build the index. - * - * Returns 0 on success or -1 on error. - */ -int regidx_insert(regidx_t *idx, char *line); - -/* - * regidx_seq_names() - return list of all sequence names - */ -char **regidx_seq_names(regidx_t *idx, int *n); - -/* - * regidx_seq_nregs() - number of regions - * regidx_nregs() - total number of regions - */ -int regidx_seq_nregs(regidx_t *idx, const char *seq); -int regidx_nregs(regidx_t *idx); - -#endif - diff --git a/htslib/htslib/sam.h b/htslib/htslib/sam.h deleted file mode 100644 index 9e6d6a3..0000000 --- a/htslib/htslib/sam.h +++ /dev/null @@ -1,426 +0,0 @@ -/* sam.h -- SAM and BAM file I/O and manipulation. - - Copyright (C) 2008, 2009, 2013-2014 Genome Research Ltd. - Copyright (C) 2010, 2012, 2013 Broad Institute. - - Author: Heng Li - -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. */ - -#ifndef HTSLIB_SAM_H -#define HTSLIB_SAM_H - -#include -#include "hts.h" - -/********************** - *** SAM/BAM header *** - **********************/ - -/*! @typedef - @abstract Structure for the alignment header. - @field n_targets number of reference sequences - @field l_text length of the plain text in the header - @field target_len lengths of the reference sequences - @field target_name names of the reference sequences - @field text plain text - @field sdict header dictionary - */ - -typedef struct { - int32_t n_targets, ignore_sam_err; - uint32_t l_text; - uint32_t *target_len; - int8_t *cigar_tab; - char **target_name; - char *text; - void *sdict; -} bam_hdr_t; - -/**************************** - *** CIGAR related macros *** - ****************************/ - -#define BAM_CMATCH 0 -#define BAM_CINS 1 -#define BAM_CDEL 2 -#define BAM_CREF_SKIP 3 -#define BAM_CSOFT_CLIP 4 -#define BAM_CHARD_CLIP 5 -#define BAM_CPAD 6 -#define BAM_CEQUAL 7 -#define BAM_CDIFF 8 -#define BAM_CBACK 9 - -#define BAM_CIGAR_STR "MIDNSHP=XB" -#define BAM_CIGAR_SHIFT 4 -#define BAM_CIGAR_MASK 0xf -#define BAM_CIGAR_TYPE 0x3C1A7 - -#define bam_cigar_op(c) ((c)&BAM_CIGAR_MASK) -#define bam_cigar_oplen(c) ((c)>>BAM_CIGAR_SHIFT) -#define bam_cigar_opchr(c) (BAM_CIGAR_STR[bam_cigar_op(c)]) -#define bam_cigar_gen(l, o) ((l)<>((o)<<1)&3) // bit 1: consume query; bit 2: consume reference - -/*! @abstract the read is paired in sequencing, no matter whether it is mapped in a pair */ -#define BAM_FPAIRED 1 -/*! @abstract the read is mapped in a proper pair */ -#define BAM_FPROPER_PAIR 2 -/*! @abstract the read itself is unmapped; conflictive with BAM_FPROPER_PAIR */ -#define BAM_FUNMAP 4 -/*! @abstract the mate is unmapped */ -#define BAM_FMUNMAP 8 -/*! @abstract the read is mapped to the reverse strand */ -#define BAM_FREVERSE 16 -/*! @abstract the mate is mapped to the reverse strand */ -#define BAM_FMREVERSE 32 -/*! @abstract this is read1 */ -#define BAM_FREAD1 64 -/*! @abstract this is read2 */ -#define BAM_FREAD2 128 -/*! @abstract not primary alignment */ -#define BAM_FSECONDARY 256 -/*! @abstract QC failure */ -#define BAM_FQCFAIL 512 -/*! @abstract optical or PCR duplicate */ -#define BAM_FDUP 1024 -/*! @abstract supplementary alignment */ -#define BAM_FSUPPLEMENTARY 2048 - -/************************* - *** Alignment records *** - *************************/ - -/*! @typedef - @abstract Structure for core alignment information. - @field tid chromosome ID, defined by bam_hdr_t - @field pos 0-based leftmost coordinate - @field bin bin calculated by bam_reg2bin() - @field qual mapping quality - @field l_qname length of the query name - @field flag bitwise flag - @field n_cigar number of CIGAR operations - @field l_qseq length of the query sequence (read) - @field mtid chromosome ID of next read in template, defined by bam_hdr_t - @field mpos 0-based leftmost coordinate of next read in template - */ -typedef struct { - int32_t tid; - int32_t pos; - uint32_t bin:16, qual:8, l_qname:8; - uint32_t flag:16, n_cigar:16; - int32_t l_qseq; - int32_t mtid; - int32_t mpos; - int32_t isize; -} bam1_core_t; - -/*! @typedef - @abstract Structure for one alignment. - @field core core information about the alignment - @field l_data current length of bam1_t::data - @field m_data maximum length of bam1_t::data - @field data all variable-length data, concatenated; structure: qname-cigar-seq-qual-aux - - @discussion Notes: - - 1. qname is zero tailing and core.l_qname includes the tailing '\0'. - 2. l_qseq is calculated from the total length of an alignment block - on reading or from CIGAR. - 3. cigar data is encoded 4 bytes per CIGAR operation. - 4. seq is nybble-encoded according to bam_nt16_table. - */ -typedef struct { - bam1_core_t core; - int l_data, m_data; - uint8_t *data; -#ifndef BAM_NO_ID - uint64_t id; -#endif -} bam1_t; - -/*! @function - @abstract Get whether the query is on the reverse strand - @param b pointer to an alignment - @return boolean true if query is on the reverse strand - */ -#define bam_is_rev(b) (((b)->core.flag&BAM_FREVERSE) != 0) -/*! @function - @abstract Get whether the query's mate is on the reverse strand - @param b pointer to an alignment - @return boolean true if query's mate on the reverse strand - */ -#define bam_is_mrev(b) (((b)->core.flag&BAM_FMREVERSE) != 0) -/*! @function - @abstract Get the name of the query - @param b pointer to an alignment - @return pointer to the name string, null terminated - */ -#define bam_get_qname(b) ((char*)(b)->data) -/*! @function - @abstract Get the CIGAR array - @param b pointer to an alignment - @return pointer to the CIGAR array - - @discussion In the CIGAR array, each element is a 32-bit integer. The - lower 4 bits gives a CIGAR operation and the higher 28 bits keep the - length of a CIGAR. - */ -#define bam_get_cigar(b) ((uint32_t*)((b)->data + (b)->core.l_qname)) -/*! @function - @abstract Get query sequence - @param b pointer to an alignment - @return pointer to sequence - - @discussion Each base is encoded in 4 bits: 1 for A, 2 for C, 4 for G, - 8 for T and 15 for N. Two bases are packed in one byte with the base - at the higher 4 bits having smaller coordinate on the read. It is - recommended to use bam_seqi() macro to get the base. - */ -#define bam_get_seq(b) ((b)->data + ((b)->core.n_cigar<<2) + (b)->core.l_qname) -/*! @function - @abstract Get query quality - @param b pointer to an alignment - @return pointer to quality string - */ -#define bam_get_qual(b) ((b)->data + ((b)->core.n_cigar<<2) + (b)->core.l_qname + (((b)->core.l_qseq + 1)>>1)) -/*! @function - @abstract Get auxiliary data - @param b pointer to an alignment - @return pointer to the concatenated auxiliary data - */ -#define bam_get_aux(b) ((b)->data + ((b)->core.n_cigar<<2) + (b)->core.l_qname + (((b)->core.l_qseq + 1)>>1) + (b)->core.l_qseq) -/*! @function - @abstract Get length of auxiliary data - @param b pointer to an alignment - @return length of the concatenated auxiliary data - */ -#define bam_get_l_aux(b) ((b)->l_data - ((b)->core.n_cigar<<2) - (b)->core.l_qname - (b)->core.l_qseq - (((b)->core.l_qseq + 1)>>1)) -/*! @function - @abstract Get a base on read - @param s Query sequence returned by bam_get_seq() - @param i The i-th position, 0-based - @return 4-bit integer representing the base. - */ -#define bam_seqi(s, i) ((s)[(i)>>1] >> ((~(i)&1)<<2) & 0xf) - -/************************** - *** Exported functions *** - **************************/ - -#ifdef __cplusplus -extern "C" { -#endif - - /*************** - *** BAM I/O *** - ***************/ - - bam_hdr_t *bam_hdr_init(void); - bam_hdr_t *bam_hdr_read(BGZF *fp); - int bam_hdr_write(BGZF *fp, const bam_hdr_t *h); - void bam_hdr_destroy(bam_hdr_t *h); - int bam_name2id(bam_hdr_t *h, const char *ref); - bam_hdr_t* bam_hdr_dup(const bam_hdr_t *h0); - - bam1_t *bam_init1(void); - void bam_destroy1(bam1_t *b); - int bam_read1(BGZF *fp, bam1_t *b); - int bam_write1(BGZF *fp, const bam1_t *b); - bam1_t *bam_copy1(bam1_t *bdst, const bam1_t *bsrc); - bam1_t *bam_dup1(const bam1_t *bsrc); - - int bam_cigar2qlen(int n_cigar, const uint32_t *cigar); - int bam_cigar2rlen(int n_cigar, const uint32_t *cigar); - - /*! - @abstract Calculate the rightmost base position of an alignment on the - reference genome. - - @param b pointer to an alignment - @return the coordinate of the first base after the alignment, 0-based - - @discussion For a mapped read, this is just b->core.pos + bam_cigar2rlen. - For an unmapped read (either according to its flags or if it has no cigar - string), we return b->core.pos + 1 by convention. - */ - int32_t bam_endpos(const bam1_t *b); - - int bam_str2flag(const char *str); /** returns negative value on error */ - char *bam_flag2str(int flag); /** The string must be freed by the user */ - - /************************* - *** BAM/CRAM indexing *** - *************************/ - - // These BAM iterator functions work only on BAM files. To work with either - // BAM or CRAM files use the sam_index_load() & sam_itr_*() functions. - #define bam_itr_destroy(iter) hts_itr_destroy(iter) - #define bam_itr_queryi(idx, tid, beg, end) sam_itr_queryi(idx, tid, beg, end) - #define bam_itr_querys(idx, hdr, region) sam_itr_querys(idx, hdr, region) - #define bam_itr_next(htsfp, itr, r) hts_itr_next((htsfp)->fp.bgzf, (itr), (r), 0) - - // Load .csi or .bai BAM index file. - #define bam_index_load(fn) hts_idx_load((fn), HTS_FMT_BAI) - - int bam_index_build(const char *fn, int min_shift); - - // Load BAM (.csi or .bai) or CRAM (.crai) index file. - hts_idx_t *sam_index_load(htsFile *fp, const char *fn); - - #define sam_itr_destroy(iter) hts_itr_destroy(iter) - hts_itr_t *sam_itr_queryi(const hts_idx_t *idx, int tid, int beg, int end); - hts_itr_t *sam_itr_querys(const hts_idx_t *idx, bam_hdr_t *hdr, const char *region); - #define sam_itr_next(htsfp, itr, r) hts_itr_next((htsfp)->fp.bgzf, (itr), (r), (htsfp)) - - /*************** - *** SAM I/O *** - ***************/ - - #define sam_open(fn, mode) (hts_open((fn), (mode))) - #define sam_close(fp) hts_close(fp) - - int sam_open_mode(char *mode, const char *fn, const char *format); - - typedef htsFile samFile; - bam_hdr_t *sam_hdr_parse(int l_text, const char *text); - bam_hdr_t *sam_hdr_read(samFile *fp); - int sam_hdr_write(samFile *fp, const bam_hdr_t *h); - - int sam_parse1(kstring_t *s, bam_hdr_t *h, bam1_t *b); - int sam_format1(const bam_hdr_t *h, const bam1_t *b, kstring_t *str); - int sam_read1(samFile *fp, bam_hdr_t *h, bam1_t *b); - int sam_write1(samFile *fp, const bam_hdr_t *h, const bam1_t *b); - - /************************************* - *** Manipulating auxiliary fields *** - *************************************/ - - uint8_t *bam_aux_get(const bam1_t *b, const char tag[2]); - int32_t bam_aux2i(const uint8_t *s); - double bam_aux2f(const uint8_t *s); - char bam_aux2A(const uint8_t *s); - char *bam_aux2Z(const uint8_t *s); - - void bam_aux_append(bam1_t *b, const char tag[2], char type, int len, uint8_t *data); - int bam_aux_del(bam1_t *b, uint8_t *s); - -#ifdef __cplusplus -} -#endif - -/************************** - *** Pileup and Mpileup *** - **************************/ - -#if !defined(BAM_NO_PILEUP) - -/*! @typedef - @abstract Structure for one alignment covering the pileup position. - @field b pointer to the alignment - @field qpos position of the read base at the pileup site, 0-based - @field indel indel length; 0 for no indel, positive for ins and negative for del - @field level the level of the read in the "viewer" mode - @field is_del 1 iff the base on the padded read is a deletion - @field is_head ??? - @field is_tail ??? - @field is_refskip ??? - @field aux ??? - - @discussion See also bam_plbuf_push() and bam_lplbuf_push(). The - difference between the two functions is that the former does not - set bam_pileup1_t::level, while the later does. Level helps the - implementation of alignment viewers, but calculating this has some - overhead. - */ -typedef struct { - bam1_t *b; - int32_t qpos; - int indel, level; - uint32_t is_del:1, is_head:1, is_tail:1, is_refskip:1, aux:28; -} bam_pileup1_t; - -typedef int (*bam_plp_auto_f)(void *data, bam1_t *b); - -struct __bam_plp_t; -typedef struct __bam_plp_t *bam_plp_t; - -struct __bam_mplp_t; -typedef struct __bam_mplp_t *bam_mplp_t; - -#ifdef __cplusplus -extern "C" { -#endif - - /** - * bam_plp_init() - sets an iterator over multiple - * @func: see mplp_func in bam_plcmd.c in samtools for an example. Expected return - * status: 0 on success, -1 on end, < -1 on non-recoverable errors - * @data: user data to pass to @func - */ - bam_plp_t bam_plp_init(bam_plp_auto_f func, void *data); - void bam_plp_destroy(bam_plp_t iter); - int bam_plp_push(bam_plp_t iter, const bam1_t *b); - const bam_pileup1_t *bam_plp_next(bam_plp_t iter, int *_tid, int *_pos, int *_n_plp); - const bam_pileup1_t *bam_plp_auto(bam_plp_t iter, int *_tid, int *_pos, int *_n_plp); - void bam_plp_set_maxcnt(bam_plp_t iter, int maxcnt); - void bam_plp_reset(bam_plp_t iter); - - bam_mplp_t bam_mplp_init(int n, bam_plp_auto_f func, void **data); - /** - * bam_mplp_init_overlaps() - if called, mpileup will detect overlapping - * read pairs and for each base pair set the base quality of the - * lower-quality base to zero, thus effectively discarding it from - * calling. If the two bases are identical, the quality of the other base - * is increased to the sum of their qualities (capped at 200), otherwise - * it is multiplied by 0.8. - */ - void bam_mplp_init_overlaps(bam_mplp_t iter); - void bam_mplp_destroy(bam_mplp_t iter); - void bam_mplp_set_maxcnt(bam_mplp_t iter, int maxcnt); - int bam_mplp_auto(bam_mplp_t iter, int *_tid, int *_pos, int *n_plp, const bam_pileup1_t **plp); - -#ifdef __cplusplus -} -#endif - -#endif // ~!defined(BAM_NO_PILEUP) - -#endif diff --git a/htslib/htslib/synced_bcf_reader.h b/htslib/htslib/synced_bcf_reader.h deleted file mode 100644 index 888fa1e..0000000 --- a/htslib/htslib/synced_bcf_reader.h +++ /dev/null @@ -1,301 +0,0 @@ -/* synced_bcf_reader.h -- stream through multiple VCF files. - - Copyright (C) 2012-2014 Genome Research Ltd. - - Author: Petr Danecek - -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. */ - -/* - The synced_bcf_reader allows to keep multiple VCFs open and stream them - using the next_line iterator in a seamless matter without worrying about - chromosomes and synchronizing the sites. This is used by vcfcheck to - compare multiple VCFs simultaneously and is used also for merging, - creating intersections, etc. - - The synced_bcf_reader also provides API for reading indexed BCF/VCF, - hiding differences in BCF/VCF opening, indexing and reading. - - - Example of usage: - - bcf_srs_t *sr = bcf_sr_init(); - for (i=0; ihas_line[i] -#define bcf_sr_get_line(_readers, i) ((_readers)->has_line[i] ? ((_readers)->readers[i].buffer[0]) : NULL) -#define bcf_sr_region_done(_readers,i) (!(_readers)->has_line[i] && !(_readers)->readers[i].nbuffer ? 1 : 0) -#define bcf_sr_get_header(_readers, i) (_readers)->readers[i].header -#define bcf_sr_get_reader(_readers, i) &((_readers)->readers[i]) - -/** - * bcf_sr_seek() - set all readers to selected position - * @seq: sequence name; NULL to seek to start - * @pos: 0-based coordinate - */ -int bcf_sr_seek(bcf_srs_t *readers, const char *seq, int pos); - -/** - * bcf_sr_set_samples() - sets active samples - * @readers: holder of the open readers - * @samples: this can be one of: file name with one sample per line; - * or column-separated list of samples; or '-' for a list of - * samples shared by all files. If first character is the - * exclamation mark, all but the listed samples are included. - * @is_file: 0: list of samples; 1: file with sample names - * - * Returns 1 if the call succeeded, or 0 on error. - */ -int bcf_sr_set_samples(bcf_srs_t *readers, const char *samples, int is_file); - -/** - * bcf_sr_set_targets(), bcf_sr_set_regions() - init targets/regions - * @readers: holder of the open readers - * @targets: list of regions, one-based and inclusive. - * @is_fname: 0: targets is a comma-separated list of regions (chr,chr:from-to) - * 1: targets is a tabix indexed file with a list of regions - * ( or ) - * - * Returns 0 if the call succeeded, or -1 on error. - * - * Both functions behave the same way, unlisted positions will be skipped by - * bcf_sr_next_line(). However, there is an important difference: regions use - * index to jump to desired positions while targets streams the whole files - * and merely skip unlisted positions. - * - * Moreover, bcf_sr_set_targets() accepts an optional parameter $alleles which - * is intepreted as a 1-based column index in the tab-delimited file where - * alleles are listed. This in principle enables to perform the COLLAPSE_* - * logic also with tab-delimited files. However, the current implementation - * considers the alleles merely as a suggestion for prioritizing one of possibly - * duplicate VCF lines. It is up to the caller to examine targets->als if - * perfect match is sought after. Note that the duplicate positions in targets - * file are currently not supported. - * Targets (but not regions) can be prefixed with "^" to request logical complement, - * for example "^X,Y,MT" indicates that sequences X, Y and MT should be skipped. - */ -int bcf_sr_set_targets(bcf_srs_t *readers, const char *targets, int is_file, int alleles); -int bcf_sr_set_regions(bcf_srs_t *readers, const char *regions, int is_file); - - - -/* - * bcf_sr_regions_init() - * @regions: regions can be either a comma-separated list of regions - * (chr|chr:pos|chr:from-to|chr:from-) or VCF, BED, or - * tab-delimited file (the default). Uncompressed files - * are stored in memory while bgzip-compressed and tabix-indexed - * region files are streamed. - * @is_file: 0: regions is a comma-separated list of regions - * (chr|chr:pos|chr:from-to|chr:from-) - * 1: VCF, BED or tab-delimited file - * @chr, from, to: - * Column indexes of chromosome, start position and end position - * in the tab-delimited file. The positions are 1-based and - * inclusive. - * These parameters are ignored when reading from VCF, BED or - * tabix-indexed files. When end position column is not present, - * supply 'from' in place of 'to'. When 'to' is negative, first - * abs(to) will be attempted and if that fails, 'from' will be used - * instead. - */ -bcf_sr_regions_t *bcf_sr_regions_init(const char *regions, int is_file, int chr, int from, int to); -void bcf_sr_regions_destroy(bcf_sr_regions_t *regions); - -/* - * bcf_sr_regions_seek() - seek to the chromosome block - * - * Returns 0 on success or -1 on failure. Sets reg->seq appropriately and - * reg->start,reg->end to -1. - */ -int bcf_sr_regions_seek(bcf_sr_regions_t *regions, const char *chr); - -/* - * bcf_sr_regions_next() - retrieves next region. Returns 0 on success and -1 - * when all regions have been read. The fields reg->seq, reg->start and - * reg->end are filled with the genomic coordinates on succes or with - * NULL,-1,-1 when no region is available. The coordinates are 0-based, - * inclusive. - */ -int bcf_sr_regions_next(bcf_sr_regions_t *reg); - -/* - * bcf_sr_regions_overlap() - checks if the interval overlaps any of - * the regions, the coordinates are 0-based, inclusive. The coordinate queries - * must come in ascending order. - * - * Returns 0 if the position is in regions; -1 if the position is not in the - * regions and more regions exist; -2 if not in the regions and there are no more - * regions left. - */ -int bcf_sr_regions_overlap(bcf_sr_regions_t *reg, const char *seq, int start, int end); - -/* - * bcf_sr_regions_flush() - calls repeatedly regs->missed_reg_handler() until - * all remaining records are processed. - */ -void bcf_sr_regions_flush(bcf_sr_regions_t *regs); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/htslib/tbx.h b/htslib/htslib/tbx.h deleted file mode 100644 index 3d84a86..0000000 --- a/htslib/htslib/tbx.h +++ /dev/null @@ -1,77 +0,0 @@ -/* tbx.h -- tabix API functions. - - Copyright (C) 2009, 2012-2014 Genome Research Ltd. - Copyright (C) 2010, 2012 Broad Institute. - - Author: Heng Li - -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. */ - -#ifndef HTSLIB_TBX_H -#define HTSLIB_TBX_H - -#include "hts.h" - -#define TBX_MAX_SHIFT 31 - -#define TBX_GENERIC 0 -#define TBX_SAM 1 -#define TBX_VCF 2 -#define TBX_UCSC 0x10000 - -typedef struct { - int32_t preset; - int32_t sc, bc, ec; // seq col., beg col. and end col. - int32_t meta_char, line_skip; -} tbx_conf_t; - -typedef struct { - tbx_conf_t conf; - hts_idx_t *idx; - void *dict; -} tbx_t; - -extern tbx_conf_t tbx_conf_gff, tbx_conf_bed, tbx_conf_psltbl, tbx_conf_sam, tbx_conf_vcf; - -#ifdef __cplusplus -extern "C" { -#endif - - #define tbx_itr_destroy(iter) hts_itr_destroy(iter) - #define tbx_itr_queryi(tbx, tid, beg, end) hts_itr_query((tbx)->idx, (tid), (beg), (end), tbx_readrec) - #define tbx_itr_querys(tbx, s) hts_itr_querys((tbx)->idx, (s), (hts_name2id_f)(tbx_name2id), (tbx), hts_itr_query, tbx_readrec) - #define tbx_itr_next(htsfp, tbx, itr, r) hts_itr_next(hts_get_bgzfp(htsfp), (itr), (r), (tbx)) - #define tbx_bgzf_itr_next(bgzfp, tbx, itr, r) hts_itr_next((bgzfp), (itr), (r), (tbx)) - - int tbx_name2id(tbx_t *tbx, const char *ss); - - /* Internal helper function used by tbx_itr_next() */ - BGZF *hts_get_bgzfp(htsFile *fp); - int tbx_readrec(BGZF *fp, void *tbxv, void *sv, int *tid, int *beg, int *end); - - int tbx_index_build(const char *fn, int min_shift, const tbx_conf_t *conf); - tbx_t *tbx_index_load(const char *fn); - const char **tbx_seqnames(tbx_t *tbx, int *n); // free the array but not the values - void tbx_destroy(tbx_t *tbx); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/htslib/htslib/vcf.h b/htslib/htslib/vcf.h deleted file mode 100644 index fde9394..0000000 --- a/htslib/htslib/vcf.h +++ /dev/null @@ -1,883 +0,0 @@ -/* vcf.h -- VCF/BCF API functions. - - Copyright (C) 2012, 2013 Broad Institute. - Copyright (C) 2012-2014 Genome Research Ltd. - - Author: Heng Li - -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. */ - -/* - todo: - - make the function names consistent - - provide calls to abstract away structs as much as possible - */ - -#ifndef HTSLIB_VCF_H -#define HTSLIB_VCF_H - -#include -#include -#include -#include "hts.h" -#include "kstring.h" - - -/***************** - * Header struct * - *****************/ - -#define BCF_HL_FLT 0 // header line -#define BCF_HL_INFO 1 -#define BCF_HL_FMT 2 -#define BCF_HL_CTG 3 -#define BCF_HL_STR 4 // structured header line TAG= -#define BCF_HL_GEN 5 // generic header line - -#define BCF_HT_FLAG 0 // header type -#define BCF_HT_INT 1 -#define BCF_HT_REAL 2 -#define BCF_HT_STR 3 - -#define BCF_VL_FIXED 0 // variable length -#define BCF_VL_VAR 1 -#define BCF_VL_A 2 -#define BCF_VL_G 3 -#define BCF_VL_R 4 - -/* === Dictionary === - - The header keeps three dictonaries. The first keeps IDs in the - "FILTER/INFO/FORMAT" lines, the second keeps the sequence names and lengths - in the "contig" lines and the last keeps the sample names. bcf_hdr_t::dict[] - is the actual hash table, which is opaque to the end users. In the hash - table, the key is the ID or sample name as a C string and the value is a - bcf_idinfo_t struct. bcf_hdr_t::id[] points to key-value pairs in the hash - table in the order that they appear in the VCF header. bcf_hdr_t::n[] is the - size of the hash table or, equivalently, the length of the id[] arrays. -*/ - -#define BCF_DT_ID 0 // dictionary type -#define BCF_DT_CTG 1 -#define BCF_DT_SAMPLE 2 - -// Complete textual representation of a header line -typedef struct { - int type; // One of the BCF_HL_* type - char *key; // The part before '=', i.e. FILTER/INFO/FORMAT/contig/fileformat etc. - char *value; // Set only for generic lines, NULL for FILTER/INFO, etc. - int nkeys; // Number of structured fields - char **keys, **vals; // The key=value pairs -} bcf_hrec_t; - -typedef struct { - uint32_t info[3]; // stores Number:20, var:4, Type:4, ColType:4 in info[0..2] - // for BCF_HL_FLT,INFO,FMT and contig length in info[0] for BCF_HL_CTG - bcf_hrec_t *hrec[3]; - int id; -} bcf_idinfo_t; - -typedef struct { - const char *key; - const bcf_idinfo_t *val; -} bcf_idpair_t; - -typedef struct { - int32_t n[3]; - bcf_idpair_t *id[3]; - void *dict[3]; // ID dictionary, contig dict and sample dict - char **samples; - bcf_hrec_t **hrec; - int nhrec, dirty; - int ntransl, *transl[2]; // for bcf_translate() - int nsamples_ori; // for bcf_hdr_set_samples() - uint8_t *keep_samples; - kstring_t mem; -} bcf_hdr_t; - -extern uint8_t bcf_type_shift[]; - -/************** - * VCF record * - **************/ - -#define BCF_BT_NULL 0 -#define BCF_BT_INT8 1 -#define BCF_BT_INT16 2 -#define BCF_BT_INT32 3 -#define BCF_BT_FLOAT 5 -#define BCF_BT_CHAR 7 - -#define VCF_REF 0 -#define VCF_SNP 1 -#define VCF_MNP 2 -#define VCF_INDEL 4 -#define VCF_OTHER 8 - -typedef struct { - int type, n; // variant type and the number of bases affected, negative for deletions -} variant_t; - -typedef struct { - int id; // id: numeric tag id, the corresponding string is bcf_hdr_t::id[BCF_DT_ID][$id].key - int n, size, type; // n: number of values per-sample; size: number of bytes per-sample; type: one of BCF_BT_* types - uint8_t *p; // same as vptr and vptr_* in bcf_info_t below - uint32_t p_len; - uint32_t p_off:31, p_free:1; -} bcf_fmt_t; - -typedef struct { - int key; // key: numeric tag id, the corresponding string is bcf_hdr_t::id[BCF_DT_ID][$key].key - int type, len; // type: one of BCF_BT_* types; len: vector length, 1 for scalars - union { - int32_t i; // integer value - float f; // float value - } v1; // only set if $len==1; for easier access - uint8_t *vptr; // pointer to data array in bcf1_t->shared.s, excluding the size+type and tag id bytes - uint32_t vptr_len; // length of the vptr block or, when set, of the vptr_mod block, excluding offset - uint32_t vptr_off:31, // vptr offset, i.e., the size of the INFO key plus size+type bytes - vptr_free:1; // indicates that vptr-vptr_off must be freed; set only when modified and the new - // data block is bigger than the original -} bcf_info_t; - - -#define BCF1_DIRTY_ID 1 -#define BCF1_DIRTY_ALS 2 -#define BCF1_DIRTY_FLT 4 -#define BCF1_DIRTY_INF 8 - -typedef struct { - int m_fmt, m_info, m_id, m_als, m_allele, m_flt; // allocated size (high-water mark); do not change - int n_flt; // Number of FILTER fields - int *flt; // FILTER keys in the dictionary - char *id, *als; // ID and REF+ALT block (\0-seperated) - char **allele; // allele[0] is the REF (allele[] pointers to the als block); all null terminated - bcf_info_t *info; // INFO - bcf_fmt_t *fmt; // FORMAT and individual sample - variant_t *var; // $var and $var_type set only when set_variant_types called - int n_var, var_type; - int shared_dirty; // if set, shared.s must be recreated on BCF output - int indiv_dirty; // if set, indiv.s must be recreated on BCF output -} bcf_dec_t; - - -#define BCF_ERR_CTG_UNDEF 1 -#define BCF_ERR_TAG_UNDEF 2 -#define BCF_ERR_NCOLS 4 - -/* - The bcf1_t structure corresponds to one VCF/BCF line. Reading from VCF file - is slower because the string is first to be parsed, packed into BCF line - (done in vcf_parse), then unpacked into internal bcf1_t structure. If it - is known in advance that some of the fields will not be required (notably - the sample columns), parsing of these can be skipped by setting max_unpack - appropriately. - Similarly, it is fast to output a BCF line because the columns (kept in - shared.s, indiv.s, etc.) are written directly by bcf_write, whereas a VCF - line must be formatted in vcf_format. - */ -typedef struct { - int32_t rid; // CHROM - int32_t pos; // POS - int32_t rlen; // length of REF - float qual; // QUAL - uint32_t n_info:16, n_allele:16; - uint32_t n_fmt:8, n_sample:24; - kstring_t shared, indiv; - bcf_dec_t d; // lazy evaluation: $d is not generated by bcf_read(), but by explicitly calling bcf_unpack() - int max_unpack; // Set to BCF_UN_STR, BCF_UN_FLT, or BCF_UN_INFO to boost performance of vcf_parse when some of the fields won't be needed - int unpacked; // remember what has been unpacked to allow calling bcf_unpack() repeatedly without redoing the work - int unpack_size[3]; // the original block size of ID, REF+ALT and FILTER - int errcode; // one of BCF_ERR_* codes -} bcf1_t; - -/******* - * API * - *******/ - -#ifdef __cplusplus -extern "C" { -#endif - - /*********************************************************************** - * BCF and VCF I/O - * - * A note about naming conventions: htslib internally represents VCF - * records as bcf1_t data structures, therefore most functions are - * prefixed with bcf_. There are a few exceptions where the functions must - * be aware of both BCF and VCF worlds, such as bcf_parse vs vcf_parse. In - * these cases, functions prefixed with bcf_ are more general and work - * with both BCF and VCF. - * - ***********************************************************************/ - - /** These macros are defined only for consistency with other parts of htslib */ - #define bcf_init1() bcf_init() - #define bcf_read1(fp,h,v) bcf_read((fp),(h),(v)) - #define vcf_read1(fp,h,v) vcf_read((fp),(h),(v)) - #define bcf_write1(fp,h,v) bcf_write((fp),(h),(v)) - #define vcf_write1(fp,h,v) vcf_write((fp),(h),(v)) - #define bcf_destroy1(v) bcf_destroy(v) - #define vcf_parse1(s,h,v) vcf_parse((s),(h),(v)) - #define bcf_clear1(v) bcf_clear(v) - #define vcf_format1(h,v,s) vcf_format((h),(v),(s)) - - /** - * bcf_hdr_init() - create an empty BCF header. - * @param mode "r" or "w" - * - * When opened for writing, the mandatory fileFormat and - * FILTER=PASS lines are added automatically. - */ - bcf_hdr_t *bcf_hdr_init(const char *mode); - - /** Destroy a BCF header struct */ - void bcf_hdr_destroy(bcf_hdr_t *h); - - /** Initialize a bcf1_t object; equivalent to calloc(1, sizeof(bcf1_t)) */ - bcf1_t *bcf_init(void); - - /** Deallocate a bcf1_t object */ - void bcf_destroy(bcf1_t *v); - - /** - * Same as bcf_destroy() but frees only the memory allocated by bcf1_t, - * not the bcf1_t object itself. - */ - void bcf_empty(bcf1_t *v); - - /** - * Make the bcf1_t object ready for next read. Intended mostly for - * internal use, the user should rarely need to call this function - * directly. - */ - void bcf_clear(bcf1_t *v); - - - /** bcf_open and vcf_open mode: please see hts_open() in hts.h */ - typedef htsFile vcfFile; - #define bcf_open(fn, mode) hts_open((fn), (mode)) - #define vcf_open(fn, mode) hts_open((fn), (mode)) - #define bcf_close(fp) hts_close(fp) - #define vcf_close(fp) hts_close(fp) - - /** Reads VCF or BCF header */ - bcf_hdr_t *bcf_hdr_read(htsFile *fp); - - /** - * bcf_hdr_set_samples() - for more efficient VCF parsing when only one/few samples are needed - * @samples: samples to include or exclude from file or as a comma-separated string. - * LIST|FILE .. select samples in list/file - * ^LIST|FILE .. exclude samples from list/file - * - .. include all samples - * NULL .. exclude all samples - * @is_file: @samples is a file (1) or a comma-separated list (1) - * - * The bottleneck of VCF reading is parsing of genotype fields. If the - * reader knows in advance that only subset of samples is needed (possibly - * no samples at all), the performance of bcf_read() can be significantly - * improved by calling bcf_hdr_set_samples after bcf_hdr_read(). - * The function bcf_read() will subset the VCF/BCF records automatically - * with the notable exception when reading records via bcf_itr_next(). - * In this case, bcf_subset_format() must be called explicitly, because - * bcf_readrec() does not see the header. - * - * Returns 0 on success, -1 on error or a positive integer if the list - * contains samples not present in the VCF header. In such a case, the - * return value is the index of the offending sample. - */ - int bcf_hdr_set_samples(bcf_hdr_t *hdr, const char *samples, int is_file); - int bcf_subset_format(const bcf_hdr_t *hdr, bcf1_t *rec); - - - /** Writes VCF or BCF header */ - int bcf_hdr_write(htsFile *fp, bcf_hdr_t *h); - - /** Parse VCF line contained in kstring and populate the bcf1_t struct */ - int vcf_parse(kstring_t *s, const bcf_hdr_t *h, bcf1_t *v); - - /** The opposite of vcf_parse. It should rarely be called directly, see vcf_write */ - int vcf_format(const bcf_hdr_t *h, const bcf1_t *v, kstring_t *s); - - /** - * bcf_read() - read next VCF or BCF record - * - * Returns -1 on critical errors, 0 otherwise. On errors which are not - * critical for reading, such as missing header definitions, v->errcode is - * set to one of BCF_ERR* code and must be checked before calling - * vcf_write(). - */ - int bcf_read(htsFile *fp, const bcf_hdr_t *h, bcf1_t *v); - - /** - * bcf_unpack() - unpack/decode a BCF record (fills the bcf1_t::d field) - * - * Note that bcf_unpack() must be called even when reading VCF. It is safe - * to call the function repeatedly, it will not unpack the same field - * twice. - */ - #define BCF_UN_STR 1 // up to ALT inclusive - #define BCF_UN_FLT 2 // up to FILTER - #define BCF_UN_INFO 4 // up to INFO - #define BCF_UN_SHR (BCF_UN_STR|BCF_UN_FLT|BCF_UN_INFO) // all shared information - #define BCF_UN_FMT 8 // unpack format and each sample - #define BCF_UN_IND BCF_UN_FMT // a synonymo of BCF_UN_FMT - #define BCF_UN_ALL (BCF_UN_SHR|BCF_UN_FMT) // everything - int bcf_unpack(bcf1_t *b, int which); - - /* - * bcf_dup() - create a copy of BCF record. - * - * Note that bcf_unpack() must be called on the returned copy as if it was - * obtained from bcf_read(). Also note that bcf_dup() calls bcf_sync1(src) - * internally to reflect any changes made by bcf_update_* functions. - */ - bcf1_t *bcf_dup(bcf1_t *src); - bcf1_t *bcf_copy(bcf1_t *dst, bcf1_t *src); - - /** - * bcf_write() - write one VCF or BCF record. The type is determined at the open() call. - */ - int bcf_write(htsFile *fp, const bcf_hdr_t *h, bcf1_t *v); - - /** - * The following functions work only with VCFs and should rarely be called - * directly. Usually one wants to use their bcf_* alternatives, which work - * transparently with both VCFs and BCFs. - */ - bcf_hdr_t *vcf_hdr_read(htsFile *fp); - int vcf_hdr_write(htsFile *fp, const bcf_hdr_t *h); - int vcf_read(htsFile *fp, const bcf_hdr_t *h, bcf1_t *v); - int vcf_write(htsFile *fp, const bcf_hdr_t *h, bcf1_t *v); - - /** Helper function for the bcf_itr_next() macro; internal use, ignore it */ - int bcf_readrec(BGZF *fp, void *null, void *v, int *tid, int *beg, int *end); - - - - /************************************************************************** - * Header querying and manipulation routines - **************************************************************************/ - - /** Create a new header using the supplied template */ - bcf_hdr_t *bcf_hdr_dup(const bcf_hdr_t *hdr); - /** - * Copy header lines from src to dst if not already present in dst. See also bcf_translate(). - * Returns 0 on success or sets a bit on error: - * 1 .. conflicting definitions of tag length - * // todo - */ - int bcf_hdr_combine(bcf_hdr_t *dst, const bcf_hdr_t *src); - - /** - * bcf_hdr_add_sample() - add a new sample. - * @param sample: sample name to be added - */ - int bcf_hdr_add_sample(bcf_hdr_t *hdr, const char *sample); - - /** Read VCF header from a file and update the header */ - int bcf_hdr_set(bcf_hdr_t *hdr, const char *fname); - - /** Returns formatted header (newly allocated string) and its length, - * excluding the terminating \0. If is_bcf parameter is unset, IDX - * fields are discarded. - */ - char *bcf_hdr_fmt_text(const bcf_hdr_t *hdr, int is_bcf, int *len); - - /** Append new VCF header line, returns 0 on success */ - int bcf_hdr_append(bcf_hdr_t *h, const char *line); - int bcf_hdr_printf(bcf_hdr_t *h, const char *format, ...); - - /** VCF version, e.g. VCFv4.2 */ - const char *bcf_hdr_get_version(const bcf_hdr_t *hdr); - void bcf_hdr_set_version(bcf_hdr_t *hdr, const char *version); - - /** - * bcf_hdr_remove() - remove VCF header tag - * @param type: one of BCF_HL_* - * @param key: tag name - */ - void bcf_hdr_remove(bcf_hdr_t *h, int type, const char *key); - - /** - * bcf_hdr_subset() - creates a new copy of the header removing unwanted samples - * @param n: number of samples to keep - * @param samples: names of the samples to keep - * @param imap: mapping from index in @samples to the sample index in the original file - * - * Sample names not present in h0 are ignored. The number of unmatched samples can be checked - * by comparing n and bcf_hdr_nsamples(out_hdr). - * This function can be used to reorder samples. - * See also bcf_subset() which subsets individual records. - */ - bcf_hdr_t *bcf_hdr_subset(const bcf_hdr_t *h0, int n, char *const* samples, int *imap); - - /** Creates a list of sequence names. It is up to the caller to free the list (but not the sequence names) */ - const char **bcf_hdr_seqnames(const bcf_hdr_t *h, int *nseqs); - - /** Get number of samples */ - #define bcf_hdr_nsamples(hdr) (hdr)->n[BCF_DT_SAMPLE] - - - /** The following functions are for internal use and should rarely be called directly */ - int bcf_hdr_parse(bcf_hdr_t *hdr, char *htxt); - int bcf_hdr_sync(bcf_hdr_t *h); - bcf_hrec_t *bcf_hdr_parse_line(const bcf_hdr_t *h, const char *line, int *len); - void bcf_hrec_format(const bcf_hrec_t *hrec, kstring_t *str); - int bcf_hdr_add_hrec(bcf_hdr_t *hdr, bcf_hrec_t *hrec); - /** - * bcf_hdr_get_hrec() - get header line info - * @param type: one of the BCF_HL_* types: FLT,INFO,FMT,CTG,STR,GEN - * @param key: the header key for generic lines (e.g. "fileformat"), any field - * for structured lines, typically "ID". - * @param value: the value which pairs with key. Can be be NULL for BCF_HL_GEN - * @param str_class: the class of BCF_HL_STR line (e.g. "ALT" or "SAMPLE"), otherwise NULL - */ - bcf_hrec_t *bcf_hdr_get_hrec(const bcf_hdr_t *hdr, int type, const char *key, const char *value, const char *str_class); - bcf_hrec_t *bcf_hrec_dup(bcf_hrec_t *hrec); - void bcf_hrec_add_key(bcf_hrec_t *hrec, const char *str, int len); - void bcf_hrec_set_val(bcf_hrec_t *hrec, int i, const char *str, int len, int is_quoted); - int bcf_hrec_find_key(bcf_hrec_t *hrec, const char *key); - void hrec_add_idx(bcf_hrec_t *hrec, int idx); - void bcf_hrec_destroy(bcf_hrec_t *hrec); - - - - /************************************************************************** - * Individual record querying and manipulation routines - **************************************************************************/ - - /** See the description of bcf_hdr_subset() */ - int bcf_subset(const bcf_hdr_t *h, bcf1_t *v, int n, int *imap); - - /** - * bcf_translate() - translate tags ids to be consistent with different header. This function - * is useful when lines from multiple VCF need to be combined. - * @dst_hdr: the destination header, to be used in bcf_write(), see also bcf_hdr_combine() - * @src_hdr: the source header, used in bcf_read() - * @src_line: line obtained by bcf_read() - */ - int bcf_translate(const bcf_hdr_t *dst_hdr, bcf_hdr_t *src_hdr, bcf1_t *src_line); - - /** - * bcf_get_variant_type[s]() - returns one of VCF_REF, VCF_SNP, etc - */ - int bcf_get_variant_types(bcf1_t *rec); - int bcf_get_variant_type(bcf1_t *rec, int ith_allele); - int bcf_is_snp(bcf1_t *v); - - /** - * bcf_update_filter() - sets the FILTER column - * @flt_ids: The filter IDs to set, numeric IDs returned by bcf_id2int(hdr, BCF_DT_ID, "PASS") - * @n: Number of filters. If n==0, all filters are removed - */ - int bcf_update_filter(const bcf_hdr_t *hdr, bcf1_t *line, int *flt_ids, int n); - /** - * bcf_add_filter() - adds to the FILTER column - * @flt_id: filter ID to add, numeric ID returned by bcf_id2int(hdr, BCF_DT_ID, "PASS") - * - * If flt_id is PASS, all existing filters are removed first. If other than PASS, existing PASS is removed. - */ - int bcf_add_filter(const bcf_hdr_t *hdr, bcf1_t *line, int flt_id); - /** - * bcf_remove_filter() - removes from the FILTER column - * @flt_id: filter ID to remove, numeric ID returned by bcf_id2int(hdr, BCF_DT_ID, "PASS") - * @pass: when set to 1 and no filters are present, set to PASS - */ - int bcf_remove_filter(const bcf_hdr_t *hdr, bcf1_t *line, int flt_id, int pass); - /** - * Returns 1 if present, 0 if absent, or -1 if filter does not exist. "PASS" and "." can be used interchangeably. - */ - int bcf_has_filter(const bcf_hdr_t *hdr, bcf1_t *line, char *filter); - /** - * bcf_update_alleles() and bcf_update_alleles_str() - update REF and ALLT column - * @alleles: Array of alleles - * @nals: Number of alleles - * @alleles_string: Comma-separated alleles, starting with the REF allele - * - * Not that in order for indexing to work correctly in presence of INFO/END tag, - * the length of reference allele (line->rlen) must be set explicitly by the caller, - * or otherwise, if rlen is zero, strlen(line->d.allele[0]) is used to set the length - * on bcf_write(). - */ - int bcf_update_alleles(const bcf_hdr_t *hdr, bcf1_t *line, const char **alleles, int nals); - int bcf_update_alleles_str(const bcf_hdr_t *hdr, bcf1_t *line, const char *alleles_string); - int bcf_update_id(const bcf_hdr_t *hdr, bcf1_t *line, const char *id); - - /* - * bcf_update_info_*() - functions for updating INFO fields - * @hdr: the BCF header - * @line: VCF line to be edited - * @key: the INFO tag to be updated - * @values: pointer to the array of values. Pass NULL to remove the tag. - * @n: number of values in the array. When set to 0, the INFO tag is removed - * - * The @string in bcf_update_info_flag() is optional, @n indicates whether - * the flag is set or removed. - * - * Returns 0 on success or negative value on error. - */ - #define bcf_update_info_int32(hdr,line,key,values,n) bcf_update_info((hdr),(line),(key),(values),(n),BCF_HT_INT) - #define bcf_update_info_float(hdr,line,key,values,n) bcf_update_info((hdr),(line),(key),(values),(n),BCF_HT_REAL) - #define bcf_update_info_flag(hdr,line,key,string,n) bcf_update_info((hdr),(line),(key),(string),(n),BCF_HT_FLAG) - #define bcf_update_info_string(hdr,line,key,string) bcf_update_info((hdr),(line),(key),(string),1,BCF_HT_STR) - int bcf_update_info(const bcf_hdr_t *hdr, bcf1_t *line, const char *key, const void *values, int n, int type); - - /* - * bcf_update_format_*() - functions for updating FORMAT fields - * @values: pointer to the array of values, the same number of elements - * is expected for each sample. Missing values must be padded - * with bcf_*_missing or bcf_*_vector_end values. - * @n: number of values in the array. If n==0, existing tag is removed. - * - * The function bcf_update_format_string() is a higher-level (slower) variant of - * bcf_update_format_char(). The former accepts array of \0-terminated strings - * whereas the latter requires that the strings are collapsed into a single array - * of fixed-length strings. In case of strings with variable length, shorter strings - * can be \0-padded. Note that the collapsed strings passed to bcf_update_format_char() - * are not \0-terminated. - * - * Returns 0 on success or negative value on error. - */ - #define bcf_update_format_int32(hdr,line,key,values,n) bcf_update_format((hdr),(line),(key),(values),(n),BCF_HT_INT) - #define bcf_update_format_float(hdr,line,key,values,n) bcf_update_format((hdr),(line),(key),(values),(n),BCF_HT_REAL) - #define bcf_update_format_char(hdr,line,key,values,n) bcf_update_format((hdr),(line),(key),(values),(n),BCF_HT_STR) - #define bcf_update_genotypes(hdr,line,gts,n) bcf_update_format((hdr),(line),"GT",(gts),(n),BCF_HT_INT) // See bcf_gt_ macros below - int bcf_update_format_string(const bcf_hdr_t *hdr, bcf1_t *line, const char *key, const char **values, int n); - int bcf_update_format(const bcf_hdr_t *hdr, bcf1_t *line, const char *key, const void *values, int n, int type); - - // Macros for setting genotypes correctly, for use with bcf_update_genotypes only; idx corresponds - // to VCF's GT (1-based index to ALT or 0 for the reference allele) and val is the opposite, obtained - // from bcf_get_genotypes() below. - #define bcf_gt_phased(idx) ((idx+1)<<1|1) - #define bcf_gt_unphased(idx) ((idx+1)<<1) - #define bcf_gt_missing 0 - #define bcf_gt_is_missing(val) ((val)>>1 ? 0 : 1) - #define bcf_gt_is_phased(idx) ((idx)&1) - #define bcf_gt_allele(val) (((val)>>1)-1) - - /** Conversion between alleles indexes to Number=G genotype index (assuming diploid, all 0-based) */ - #define bcf_alleles2gt(a,b) ((a)>(b)?((a)*((a)+1)/2+(b)):((b)*((b)+1)/2+(a))) - static inline void bcf_gt2alleles(int igt, int *a, int *b) - { - int k = 0, dk = 1; - while ( k 0 ) - * for (i=0; iid[type][int_id].key) - - /** - * bcf_hdr_name2id() - Translates sequence names (chromosomes) into numeric ID - * bcf_hdr_id2name() - Translates numeric ID to sequence name - */ - static inline int bcf_hdr_name2id(const bcf_hdr_t *hdr, const char *id) { return bcf_hdr_id2int(hdr, BCF_DT_CTG, id); } - static inline const char *bcf_hdr_id2name(const bcf_hdr_t *hdr, int rid) { return hdr->id[BCF_DT_CTG][rid].key; } - static inline const char *bcf_seqname(const bcf_hdr_t *hdr, bcf1_t *rec) { return hdr->id[BCF_DT_CTG][rec->rid].key; } - - /** - * bcf_hdr_id2*() - Macros for accessing bcf_idinfo_t - * @type: one of BCF_HL_FLT, BCF_HL_INFO, BCF_HL_FMT - * @int_id: return value of bcf_id2int, must be >=0 - * - * The returned values are: - * bcf_hdr_id2length .. whether the number of values is fixed or variable, one of BCF_VL_* - * bcf_hdr_id2number .. the number of values, 0xfffff for variable length fields - * bcf_hdr_id2type .. the field type, one of BCF_HT_* - * bcf_hdr_id2coltype .. the column type, one of BCF_HL_* - * - * Notes: Prior to using the macros, the presence of the info should be - * tested with bcf_hdr_idinfo_exists(). - */ - #define bcf_hdr_id2length(hdr,type,int_id) ((hdr)->id[BCF_DT_ID][int_id].val->info[type]>>8 & 0xf) - #define bcf_hdr_id2number(hdr,type,int_id) ((hdr)->id[BCF_DT_ID][int_id].val->info[type]>>12) - #define bcf_hdr_id2type(hdr,type,int_id) ((hdr)->id[BCF_DT_ID][int_id].val->info[type]>>4 & 0xf) - #define bcf_hdr_id2coltype(hdr,type,int_id) ((hdr)->id[BCF_DT_ID][int_id].val->info[type] & 0xf) - #define bcf_hdr_idinfo_exists(hdr,type,int_id) ((int_id<0 || bcf_hdr_id2coltype(hdr,type,int_id)==0xf) ? 0 : 1) - #define bcf_hdr_id2hrec(hdr,dict_type,col_type,int_id) ((hdr)->id[(dict_type)==BCF_DT_CTG?BCF_DT_CTG:BCF_DT_ID][int_id].val->hrec[(dict_type)==BCF_DT_CTG?0:(col_type)]) - - void bcf_fmt_array(kstring_t *s, int n, int type, void *data); - uint8_t *bcf_fmt_sized_array(kstring_t *s, uint8_t *ptr); - - void bcf_enc_vchar(kstring_t *s, int l, const char *a); - void bcf_enc_vint(kstring_t *s, int n, int32_t *a, int wsize); - void bcf_enc_vfloat(kstring_t *s, int n, float *a); - - - /************************************************************************** - * BCF index - * - * Note that these functions work with BCFs only. See synced_bcf_reader.h - * which provides (amongst other things) an API to work transparently with - * both indexed BCFs and VCFs. - **************************************************************************/ - - #define bcf_itr_destroy(iter) hts_itr_destroy(iter) - #define bcf_itr_queryi(idx, tid, beg, end) hts_itr_query((idx), (tid), (beg), (end), bcf_readrec) - #define bcf_itr_querys(idx, hdr, s) hts_itr_querys((idx), (s), (hts_name2id_f)(bcf_hdr_name2id), (hdr), hts_itr_query, bcf_readrec) - #define bcf_itr_next(htsfp, itr, r) hts_itr_next((htsfp)->fp.bgzf, (itr), (r), 0) - #define bcf_index_load(fn) hts_idx_load(fn, HTS_FMT_CSI) - #define bcf_index_seqnames(idx, hdr, nptr) hts_idx_seqnames((idx),(nptr),(hts_id2name_f)(bcf_hdr_id2name),(hdr)) - - int bcf_index_build(const char *fn, int min_shift); - -#ifdef __cplusplus -} -#endif - -/******************* - * Typed value I/O * - *******************/ - -/* - Note that in contrast with BCFv2.1 specification, HTSlib implementation - allows missing values in vectors. For integer types, the values 0x80, - 0x8000, 0x80000000 are interpreted as missing values and 0x81, 0x8001, - 0x80000001 as end-of-vector indicators. Similarly for floats, the value of - 0x7F800001 is interpreted as a missing value and 0x7F800002 as an - end-of-vector indicator. - Note that the end-of-vector byte is not part of the vector. - - This trial BCF version (v2.2) is compatible with the VCF specification and - enables to handle correctly vectors with different ploidy in presence of - missing values. - */ -#define bcf_int8_vector_end (INT8_MIN+1) -#define bcf_int16_vector_end (INT16_MIN+1) -#define bcf_int32_vector_end (INT32_MIN+1) -#define bcf_str_vector_end 0 -#define bcf_int8_missing INT8_MIN -#define bcf_int16_missing INT16_MIN -#define bcf_int32_missing INT32_MIN -#define bcf_str_missing 0x07 -extern uint32_t bcf_float_vector_end; -extern uint32_t bcf_float_missing; -static inline void bcf_float_set(float *ptr, uint32_t value) -{ - union { uint32_t i; float f; } u; - u.i = value; - *ptr = u.f; -} -#define bcf_float_set_vector_end(x) bcf_float_set(&(x),bcf_float_vector_end) -#define bcf_float_set_missing(x) bcf_float_set(&(x),bcf_float_missing) -static inline int bcf_float_is_missing(float f) -{ - union { uint32_t i; float f; } u; - u.f = f; - return u.i==bcf_float_missing ? 1 : 0; -} -static inline int bcf_float_is_vector_end(float f) -{ - union { uint32_t i; float f; } u; - u.f = f; - return u.i==bcf_float_vector_end ? 1 : 0; -} - -static inline void bcf_format_gt(bcf_fmt_t *fmt, int isample, kstring_t *str) -{ - #define BRANCH(type_t, missing, vector_end) { \ - type_t *ptr = (type_t*) (fmt->p + isample*fmt->size); \ - int i; \ - for (i=0; in && ptr[i]!=vector_end; i++) \ - { \ - if ( i ) kputc("/|"[ptr[i]&1], str); \ - if ( !(ptr[i]>>1) ) kputc('.', str); \ - else kputw((ptr[i]>>1) - 1, str); \ - } \ - if (i == 0) kputc('.', str); \ - } - switch (fmt->type) { - case BCF_BT_INT8: BRANCH(int8_t, bcf_int8_missing, bcf_int8_vector_end); break; - case BCF_BT_INT16: BRANCH(int16_t, bcf_int16_missing, bcf_int16_vector_end); break; - case BCF_BT_INT32: BRANCH(int32_t, bcf_int32_missing, bcf_int32_vector_end); break; - default: fprintf(stderr,"FIXME: type %d in bcf_format_gt?\n", fmt->type); abort(); break; - } - #undef BRANCH -} - -static inline void bcf_enc_size(kstring_t *s, int size, int type) -{ - if (size >= 15) { - kputc(15<<4|type, s); - if (size >= 128) { - if (size >= 32768) { - int32_t x = size; - kputc(1<<4|BCF_BT_INT32, s); - kputsn((char*)&x, 4, s); - } else { - int16_t x = size; - kputc(1<<4|BCF_BT_INT16, s); - kputsn((char*)&x, 2, s); - } - } else { - kputc(1<<4|BCF_BT_INT8, s); - kputc(size, s); - } - } else kputc(size<<4|type, s); -} - -static inline int bcf_enc_inttype(long x) -{ - if (x <= INT8_MAX && x > bcf_int8_missing) return BCF_BT_INT8; - if (x <= INT16_MAX && x > bcf_int16_missing) return BCF_BT_INT16; - return BCF_BT_INT32; -} - -static inline void bcf_enc_int1(kstring_t *s, int32_t x) -{ - if (x == bcf_int32_vector_end) { - bcf_enc_size(s, 1, BCF_BT_INT8); - kputc(bcf_int8_vector_end, s); - } else if (x == bcf_int32_missing) { - bcf_enc_size(s, 1, BCF_BT_INT8); - kputc(bcf_int8_missing, s); - } else if (x <= INT8_MAX && x > bcf_int8_missing) { - bcf_enc_size(s, 1, BCF_BT_INT8); - kputc(x, s); - } else if (x <= INT16_MAX && x > bcf_int16_missing) { - int16_t z = x; - bcf_enc_size(s, 1, BCF_BT_INT16); - kputsn((char*)&z, 2, s); - } else { - int32_t z = x; - bcf_enc_size(s, 1, BCF_BT_INT32); - kputsn((char*)&z, 4, s); - } -} - -static inline int32_t bcf_dec_int1(const uint8_t *p, int type, uint8_t **q) -{ - if (type == BCF_BT_INT8) { - *q = (uint8_t*)p + 1; - return *(int8_t*)p; - } else if (type == BCF_BT_INT16) { - *q = (uint8_t*)p + 2; - return *(int16_t*)p; - } else { - *q = (uint8_t*)p + 4; - return *(int32_t*)p; - } -} - -static inline int32_t bcf_dec_typed_int1(const uint8_t *p, uint8_t **q) -{ - return bcf_dec_int1(p + 1, *p&0xf, q); -} - -static inline int32_t bcf_dec_size(const uint8_t *p, uint8_t **q, int *type) -{ - *type = *p & 0xf; - if (*p>>4 != 15) { - *q = (uint8_t*)p + 1; - return *p>>4; - } else return bcf_dec_typed_int1(p + 1, q); -} - -#endif diff --git a/htslib/htslib/vcf_sweep.h b/htslib/htslib/vcf_sweep.h deleted file mode 100644 index 9f295ee..0000000 --- a/htslib/htslib/vcf_sweep.h +++ /dev/null @@ -1,39 +0,0 @@ -/* vcf_sweep.h -- forward/reverse sweep API. - - Copyright (C) 2013 Genome Research Ltd. - - Author: Petr Danecek - -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. */ - -#ifndef HTSLIB_VCF_SWEEP_H -#define HTSLIB_VCF_SWEEP_H - -#include "hts.h" -#include "vcf.h" - -typedef struct _bcf_sweep_t bcf_sweep_t; - -bcf_sweep_t *bcf_sweep_init(const char *fname); -void bcf_sweep_destroy(bcf_sweep_t *sw); -bcf_hdr_t *bcf_sweep_hdr(bcf_sweep_t *sw); -bcf1_t *bcf_sweep_fwd(bcf_sweep_t *sw); -bcf1_t *bcf_sweep_bwd(bcf_sweep_t *sw); - -#endif diff --git a/htslib/htslib/vcfutils.h b/htslib/htslib/vcfutils.h deleted file mode 100644 index dc10395..0000000 --- a/htslib/htslib/vcfutils.h +++ /dev/null @@ -1,112 +0,0 @@ -/* vcfutils.h -- allele-related utility functions. - - Copyright (C) 2012, 2013 Genome Research Ltd. - - Author: Petr Danecek - -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. */ - -#ifndef HTSLIB_VCFUTILS_H -#define HTSLIB_VCFUTILS_H - -#include "vcf.h" - - -/** - * bcf_trim_alleles() - remove ALT alleles unused in genotype fields - * @header: for access to BCF_DT_ID dictionary - * @line: VCF line obtain from vcf_parse1 - * - * Returns the number of removed alleles on success or negative - * on error: - * -1 .. some allele index is out of bounds - */ -int bcf_trim_alleles(const bcf_hdr_t *header, bcf1_t *line); - - -/** - * bcf_remove_alleles() - remove ALT alleles according to bitmask @mask - * @header: for access to BCF_DT_ID dictionary - * @line: VCF line obtained from vcf_parse1 - * @mask: alleles to remove - */ -void bcf_remove_alleles(const bcf_hdr_t *header, bcf1_t *line, int mask); - - -/** - * bcf_calc_ac() - calculate the number of REF and ALT alleles - * @header: for access to BCF_DT_ID dictionary - * @line: VCF line obtained from vcf_parse1 - * @ac: array of length line->n_allele - * @which: determine if INFO/AN,AC and indv fields be used - * - * Returns 1 if the call succeeded, or 0 if the value could not - * be determined. - * - * The value of @which determines if existing INFO/AC,AN can be - * used (BCF_UN_INFO) and and if indv fields can be splitted - * (BCF_UN_FMT). - */ -int bcf_calc_ac(const bcf_hdr_t *header, bcf1_t *line, int *ac, int which); - - -/** - * bcf_gt_type() - determines type of the genotype - * @fmt_ptr: the GT format field as set for example by set_fmt_ptr - * @isample: sample index (starting from 0) - * @ial: index of the 1st non-reference allele (starting from 1) - * @jal: index of the 2nd non-reference allele (starting from 1) - * - * Returns the type of the genotype (one of GT_HOM_RR, GT_HET_RA, - * GT_HOM_AA, GT_HET_AA, GT_HAPL_R, GT_HAPL_A or GT_UNKN). If $ial - * is not NULL and the genotype has one or more non-reference - * alleles, $ial will be set. In case of GT_HET_AA, $ial is the - * position of the allele which appeared first in ALT. If $jal is - * not null and the genotype is GT_HET_AA, $jal will be set and is - * the position of the second allele in ALT. - */ -#define GT_HOM_RR 0 // note: the actual value of GT_* matters, used in dosage r2 calculation -#define GT_HOM_AA 1 -#define GT_HET_RA 2 -#define GT_HET_AA 3 -#define GT_HAPL_R 4 -#define GT_HAPL_A 5 -#define GT_UNKN 6 -int bcf_gt_type(bcf_fmt_t *fmt_ptr, int isample, int *ial, int *jal); - -static inline int bcf_acgt2int(char c) -{ - if ( (int)c>96 ) c -= 32; - if ( c=='A' ) return 0; - if ( c=='C' ) return 1; - if ( c=='G' ) return 2; - if ( c=='T' ) return 3; - return -1; -} -#define bcf_int2acgt(i) "ACGT"[i] - -/** - * bcf_ij2G() - common task: allele indexes to Number=G index (diploid) - * @i,j: allele indexes, 0-based, i<=j - * - * Returns index to the Number=G diploid array - */ -#define bcf_ij2G(i, j) ((j)*((j)+1)/2+(i)) - -#endif diff --git a/htslib/htslib_vars.mk b/htslib/htslib_vars.mk deleted file mode 100644 index 08f9a57..0000000 --- a/htslib/htslib_vars.mk +++ /dev/null @@ -1,39 +0,0 @@ -# Makefile variables useful for third-party code using htslib's public API. -# -# Copyright (C) 2013-2014 Genome Research Ltd. -# -# Author: John Marshall -# -# 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. - -# These variables can be used to express dependencies on htslib headers. -# See htslib.mk for details. - -htslib_bgzf_h = $(HTSPREFIX)htslib/bgzf.h -htslib_faidx_h = $(HTSPREFIX)htslib/faidx.h -htslib_hfile_h = $(HTSPREFIX)htslib/hfile.h $(htslib_hts_defs_h) -htslib_hts_h = $(HTSPREFIX)htslib/hts.h -htslib_hts_defs_h = $(HTSPREFIX)htslib/hts_defs.h -htslib_regidx_h = $(HTSPREFIX)htslib/regidx.h -htslib_sam_h = $(HTSPREFIX)htslib/sam.h $(htslib_hts_h) -htslib_synced_bcf_reader_h = $(HTSPREFIX)htslib/synced_bcf_reader.h $(htslib_hts_h) $(htslib_vcf_h) $(htslib_tbx_h) -htslib_tbx_h = $(HTSPREFIX)htslib/tbx.h $(htslib_hts_h) -htslib_vcf_h = $(HTSPREFIX)htslib/vcf.h $(htslib_hts_h) $(HTSPREFIX)htslib/kstring.h -htslib_vcf_sweep_h = $(HTSPREFIX)htslib/vcf_sweep.h $(htslib_hts_h) $(htslib_vcf_h) -htslib_vcfutils_h = $(HTSPREFIX)htslib/vcfutils.h $(htslib_vcf_h) diff --git a/htslib/kfunc.c b/htslib/kfunc.c deleted file mode 100644 index faa2ac5..0000000 --- a/htslib/kfunc.c +++ /dev/null @@ -1,280 +0,0 @@ -/* The MIT License - - Copyright (C) 2010, 2013 Genome Research Ltd. - Copyright (C) 2011 Attractive Chaos - - 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. -*/ - -#include -#include -#include "htslib/kfunc.h" - -/* Log gamma function - * \log{\Gamma(z)} - * AS245, 2nd algorithm, http://lib.stat.cmu.edu/apstat/245 - */ -double kf_lgamma(double z) -{ - double x = 0; - x += 0.1659470187408462e-06 / (z+7); - x += 0.9934937113930748e-05 / (z+6); - x -= 0.1385710331296526 / (z+5); - x += 12.50734324009056 / (z+4); - x -= 176.6150291498386 / (z+3); - x += 771.3234287757674 / (z+2); - x -= 1259.139216722289 / (z+1); - x += 676.5203681218835 / z; - x += 0.9999999999995183; - return log(x) - 5.58106146679532777 - z + (z-0.5) * log(z+6.5); -} - -/* complementary error function - * \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2} dt - * AS66, 2nd algorithm, http://lib.stat.cmu.edu/apstat/66 - */ -double kf_erfc(double x) -{ - const double p0 = 220.2068679123761; - const double p1 = 221.2135961699311; - const double p2 = 112.0792914978709; - const double p3 = 33.912866078383; - const double p4 = 6.37396220353165; - const double p5 = .7003830644436881; - const double p6 = .03526249659989109; - const double q0 = 440.4137358247522; - const double q1 = 793.8265125199484; - const double q2 = 637.3336333788311; - const double q3 = 296.5642487796737; - const double q4 = 86.78073220294608; - const double q5 = 16.06417757920695; - const double q6 = 1.755667163182642; - const double q7 = .08838834764831844; - double expntl, z, p; - z = fabs(x) * M_SQRT2; - if (z > 37.) return x > 0.? 0. : 2.; - expntl = exp(z * z * - .5); - if (z < 10. / M_SQRT2) // for small z - p = expntl * ((((((p6 * z + p5) * z + p4) * z + p3) * z + p2) * z + p1) * z + p0) - / (((((((q7 * z + q6) * z + q5) * z + q4) * z + q3) * z + q2) * z + q1) * z + q0); - else p = expntl / 2.506628274631001 / (z + 1. / (z + 2. / (z + 3. / (z + 4. / (z + .65))))); - return x > 0.? 2. * p : 2. * (1. - p); -} - -/* The following computes regularized incomplete gamma functions. - * Formulas are taken from Wiki, with additional input from Numerical - * Recipes in C (for modified Lentz's algorithm) and AS245 - * (http://lib.stat.cmu.edu/apstat/245). - * - * A good online calculator is available at: - * - * http://www.danielsoper.com/statcalc/calc23.aspx - * - * It calculates upper incomplete gamma function, which equals - * kf_gammaq(s,z)*tgamma(s). - */ - -#define KF_GAMMA_EPS 1e-14 -#define KF_TINY 1e-290 - -// regularized lower incomplete gamma function, by series expansion -static double _kf_gammap(double s, double z) -{ - double sum, x; - int k; - for (k = 1, sum = x = 1.; k < 100; ++k) { - sum += (x *= z / (s + k)); - if (x / sum < KF_GAMMA_EPS) break; - } - return exp(s * log(z) - z - kf_lgamma(s + 1.) + log(sum)); -} -// regularized upper incomplete gamma function, by continued fraction -static double _kf_gammaq(double s, double z) -{ - int j; - double C, D, f; - f = 1. + z - s; C = f; D = 0.; - // Modified Lentz's algorithm for computing continued fraction - // See Numerical Recipes in C, 2nd edition, section 5.2 - for (j = 1; j < 100; ++j) { - double a = j * (s - j), b = (j<<1) + 1 + z - s, d; - D = b + a * D; - if (D < KF_TINY) D = KF_TINY; - C = b + a / C; - if (C < KF_TINY) C = KF_TINY; - D = 1. / D; - d = C * D; - f *= d; - if (fabs(d - 1.) < KF_GAMMA_EPS) break; - } - return exp(s * log(z) - z - kf_lgamma(s) - log(f)); -} - -double kf_gammap(double s, double z) -{ - return z <= 1. || z < s? _kf_gammap(s, z) : 1. - _kf_gammaq(s, z); -} - -double kf_gammaq(double s, double z) -{ - return z <= 1. || z < s? 1. - _kf_gammap(s, z) : _kf_gammaq(s, z); -} - -/* Regularized incomplete beta function. The method is taken from - * Numerical Recipe in C, 2nd edition, section 6.4. The following web - * page calculates the incomplete beta function, which equals - * kf_betai(a,b,x) * gamma(a) * gamma(b) / gamma(a+b): - * - * http://www.danielsoper.com/statcalc/calc36.aspx - */ -static double kf_betai_aux(double a, double b, double x) -{ - double C, D, f; - int j; - if (x == 0.) return 0.; - if (x == 1.) return 1.; - f = 1.; C = f; D = 0.; - // Modified Lentz's algorithm for computing continued fraction - for (j = 1; j < 200; ++j) { - double aa, d; - int m = j>>1; - aa = (j&1)? -(a + m) * (a + b + m) * x / ((a + 2*m) * (a + 2*m + 1)) - : m * (b - m) * x / ((a + 2*m - 1) * (a + 2*m)); - D = 1. + aa * D; - if (D < KF_TINY) D = KF_TINY; - C = 1. + aa / C; - if (C < KF_TINY) C = KF_TINY; - D = 1. / D; - d = C * D; - f *= d; - if (fabs(d - 1.) < KF_GAMMA_EPS) break; - } - return exp(kf_lgamma(a+b) - kf_lgamma(a) - kf_lgamma(b) + a * log(x) + b * log(1.-x)) / a / f; -} -double kf_betai(double a, double b, double x) -{ - return x < (a + 1.) / (a + b + 2.)? kf_betai_aux(a, b, x) : 1. - kf_betai_aux(b, a, 1. - x); -} - -#ifdef KF_MAIN -#include -int main(int argc, char *argv[]) -{ - double x = 5.5, y = 3; - double a, b; - printf("erfc(%lg): %lg, %lg\n", x, erfc(x), kf_erfc(x)); - printf("upper-gamma(%lg,%lg): %lg\n", x, y, kf_gammaq(y, x)*tgamma(y)); - a = 2; b = 2; x = 0.5; - printf("incomplete-beta(%lg,%lg,%lg): %lg\n", a, b, x, kf_betai(a, b, x) / exp(kf_lgamma(a+b) - kf_lgamma(a) - kf_lgamma(b))); - return 0; -} -#endif - - -// log\binom{n}{k} -static double lbinom(int n, int k) -{ - if (k == 0 || n == k) return 0; - return lgamma(n+1) - lgamma(k+1) - lgamma(n-k+1); -} - -// n11 n12 | n1_ -// n21 n22 | n2_ -//-----------+---- -// n_1 n_2 | n - -// hypergeometric distribution -static double hypergeo(int n11, int n1_, int n_1, int n) -{ - return exp(lbinom(n1_, n11) + lbinom(n-n1_, n_1-n11) - lbinom(n, n_1)); -} - -typedef struct { - int n11, n1_, n_1, n; - double p; -} hgacc_t; - -// incremental version of hypergenometric distribution -static double hypergeo_acc(int n11, int n1_, int n_1, int n, hgacc_t *aux) -{ - if (n1_ || n_1 || n) { - aux->n11 = n11; aux->n1_ = n1_; aux->n_1 = n_1; aux->n = n; - } else { // then only n11 changed; the rest fixed - if (n11%11 && n11 + aux->n - aux->n1_ - aux->n_1) { - if (n11 == aux->n11 + 1) { // incremental - aux->p *= (double)(aux->n1_ - aux->n11) / n11 - * (aux->n_1 - aux->n11) / (n11 + aux->n - aux->n1_ - aux->n_1); - aux->n11 = n11; - return aux->p; - } - if (n11 == aux->n11 - 1) { // incremental - aux->p *= (double)aux->n11 / (aux->n1_ - n11) - * (aux->n11 + aux->n - aux->n1_ - aux->n_1) / (aux->n_1 - n11); - aux->n11 = n11; - return aux->p; - } - } - aux->n11 = n11; - } - aux->p = hypergeo(aux->n11, aux->n1_, aux->n_1, aux->n); - return aux->p; -} - -double kt_fisher_exact(int n11, int n12, int n21, int n22, double *_left, double *_right, double *two) -{ - int i, j, max, min; - double p, q, left, right; - hgacc_t aux; - int n1_, n_1, n; - - n1_ = n11 + n12; n_1 = n11 + n21; n = n11 + n12 + n21 + n22; // calculate n1_, n_1 and n - max = (n_1 < n1_) ? n_1 : n1_; // max n11, for right tail - min = n1_ + n_1 - n; // not sure why n11-n22 is used instead of min(n_1,n1_) - if (min < 0) min = 0; // min n11, for left tail - *two = *_left = *_right = 1.; - if (min == max) return 1.; // no need to do test - q = hypergeo_acc(n11, n1_, n_1, n, &aux); // the probability of the current table - // left tail - p = hypergeo_acc(min, 0, 0, 0, &aux); - for (left = 0., i = min + 1; p < 0.99999999 * q && i<=max; ++i) // loop until underflow - left += p, p = hypergeo_acc(i, 0, 0, 0, &aux); - --i; - if (p < 1.00000001 * q) left += p; - else --i; - // right tail - p = hypergeo_acc(max, 0, 0, 0, &aux); - for (right = 0., j = max - 1; p < 0.99999999 * q && j>=0; --j) // loop until underflow - right += p, p = hypergeo_acc(j, 0, 0, 0, &aux); - ++j; - if (p < 1.00000001 * q) right += p; - else ++j; - // two-tail - *two = left + right; - if (*two > 1.) *two = 1.; - // adjust left and right - if (abs(i - n11) < abs(j - n11)) right = 1. - left + q; - else left = 1.0 - right + q; - *_left = left; *_right = right; - return q; -} - - - diff --git a/htslib/knetfile.c b/htslib/knetfile.c deleted file mode 100644 index 28fe629..0000000 --- a/htslib/knetfile.c +++ /dev/null @@ -1,632 +0,0 @@ -/* The MIT License - - Copyright (c) 2008 by Genome Research Ltd (GRL). - 2010 by Attractive Chaos - - 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. -*/ - -/* Probably I will not do socket programming in the next few years and - therefore I decide to heavily annotate this file, for Linux and - Windows as well. -ac */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef _WIN32 -#include -#include -#include -#endif - -#include "htslib/knetfile.h" - -/* In winsock.h, the type of a socket is SOCKET, which is: "typedef - * u_int SOCKET". An invalid SOCKET is: "(SOCKET)(~0)", or signed - * integer -1. In knetfile.c, I use "int" for socket type - * throughout. This should be improved to avoid confusion. - * - * In Linux/Mac, recv() and read() do almost the same thing. You can see - * in the header file that netread() is simply an alias of read(). In - * Windows, however, they are different and using recv() is mandatory. - */ - -/* This function tests if the file handler is ready for reading (or - * writing if is_read==0). */ -static int socket_wait(int fd, int is_read) -{ - fd_set fds, *fdr = 0, *fdw = 0; - struct timeval tv; - int ret; - tv.tv_sec = 5; tv.tv_usec = 0; // 5 seconds time out - FD_ZERO(&fds); - FD_SET(fd, &fds); - if (is_read) fdr = &fds; - else fdw = &fds; - ret = select(fd+1, fdr, fdw, 0, &tv); -#ifndef _WIN32 - if (ret == -1) perror("select"); -#else - if (ret == 0) - fprintf(stderr, "select time-out\n"); - else if (ret == SOCKET_ERROR) - fprintf(stderr, "select: %d\n", WSAGetLastError()); -#endif - return ret; -} - -#ifndef _WIN32 -/* This function does not work with Windows due to the lack of - * getaddrinfo() in winsock. It is addapted from an example in "Beej's - * Guide to Network Programming" (http://beej.us/guide/bgnet/). */ -static int socket_connect(const char *host, const char *port) -{ -#define __err_connect(func) do { perror(func); freeaddrinfo(res); return -1; } while (0) - - int ai_err, on = 1, fd; - struct linger lng = { 0, 0 }; - struct addrinfo hints, *res = 0; - memset(&hints, 0, sizeof(struct addrinfo)); - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - /* In Unix/Mac, getaddrinfo() is the most convenient way to get - * server information. */ - if ((ai_err = getaddrinfo(host, port, &hints, &res)) != 0) { fprintf(stderr, "can't resolve %s:%s: %s\n", host, port, gai_strerror(ai_err)); return -1; } - if ((fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol)) == -1) __err_connect("socket"); - /* The following two setsockopt() are used by ftplib - * (http://nbpfaus.net/~pfau/ftplib/). I am not sure if they - * necessary. */ - if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) == -1) __err_connect("setsockopt"); - if (setsockopt(fd, SOL_SOCKET, SO_LINGER, &lng, sizeof(lng)) == -1) __err_connect("setsockopt"); - if (connect(fd, res->ai_addr, res->ai_addrlen) != 0) __err_connect("connect"); - freeaddrinfo(res); - return fd; -} -#else -/* MinGW's printf has problem with "%lld" */ -char *int64tostr(char *buf, int64_t x) -{ - int cnt; - int i = 0; - do { - buf[i++] = '0' + x % 10; - x /= 10; - } while (x); - buf[i] = 0; - for (cnt = i, i = 0; i < cnt/2; ++i) { - int c = buf[i]; buf[i] = buf[cnt-i-1]; buf[cnt-i-1] = c; - } - return buf; -} - -int64_t strtoint64(const char *buf) -{ - int64_t x; - for (x = 0; *buf != '\0'; ++buf) - x = x * 10 + ((int64_t) *buf - 48); - return x; -} -/* In windows, the first thing is to establish the TCP connection. */ -int knet_win32_init() -{ - WSADATA wsaData; - return WSAStartup(MAKEWORD(2, 2), &wsaData); -} -void knet_win32_destroy() -{ - WSACleanup(); -} -/* A slightly modfied version of the following function also works on - * Mac (and presummably Linux). However, this function is not stable on - * my Mac. It sometimes works fine but sometimes does not. Therefore for - * non-Windows OS, I do not use this one. */ -static SOCKET socket_connect(const char *host, const char *port) -{ -#define __err_connect(func) \ - do { \ - fprintf(stderr, "%s: %d\n", func, WSAGetLastError()); \ - return -1; \ - } while (0) - - int on = 1; - SOCKET fd; - struct linger lng = { 0, 0 }; - struct sockaddr_in server; - struct hostent *hp = 0; - // open socket - if ((fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) __err_connect("socket"); - if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char*)&on, sizeof(on)) == -1) __err_connect("setsockopt"); - if (setsockopt(fd, SOL_SOCKET, SO_LINGER, (char*)&lng, sizeof(lng)) == -1) __err_connect("setsockopt"); - // get host info - if (isalpha(host[0])) hp = gethostbyname(host); - else { - struct in_addr addr; - addr.s_addr = inet_addr(host); - hp = gethostbyaddr((char*)&addr, 4, AF_INET); - } - if (hp == 0) __err_connect("gethost"); - // connect - server.sin_addr.s_addr = *((unsigned long*)hp->h_addr); - server.sin_family= AF_INET; - server.sin_port = htons(atoi(port)); - if (connect(fd, (struct sockaddr*)&server, sizeof(server)) != 0) __err_connect("connect"); - // freehostent(hp); // strangely in MSDN, hp is NOT freed (memory leak?!) - return fd; -} -#endif - -static off_t my_netread(int fd, void *buf, off_t len) -{ - off_t rest = len, curr, l = 0; - /* recv() and read() may not read the required length of data with - * one call. They have to be called repeatedly. */ - while (rest) { - if (socket_wait(fd, 1) <= 0) break; // socket is not ready for reading - curr = netread(fd, (void*)((char*)buf + l), rest); - /* According to the glibc manual, section 13.2, a zero returned - * value indicates end-of-file (EOF), which should mean that - * read() will not return zero if EOF has not been met but data - * are not immediately available. */ - if (curr == 0) break; - l += curr; rest -= curr; - } - return l; -} - -/************************* - * FTP specific routines * - *************************/ - -static int kftp_get_response(knetFile *ftp) -{ -#ifndef _WIN32 - unsigned char c; -#else - char c; -#endif - int n = 0; - char *p; - if (socket_wait(ftp->ctrl_fd, 1) <= 0) return 0; - while (netread(ftp->ctrl_fd, &c, 1)) { // FIXME: this is *VERY BAD* for unbuffered I/O - //fputc(c, stderr); - if (n >= ftp->max_response) { - ftp->max_response = ftp->max_response? ftp->max_response<<1 : 256; - ftp->response = (char*)realloc(ftp->response, ftp->max_response); - } - ftp->response[n++] = c; - if (c == '\n') { - if (n >= 4 && isdigit(ftp->response[0]) && isdigit(ftp->response[1]) && isdigit(ftp->response[2]) - && ftp->response[3] != '-') break; - n = 0; - continue; - } - } - if (n < 2) return -1; - ftp->response[n-2] = 0; - return strtol(ftp->response, &p, 0); -} - -static int kftp_send_cmd(knetFile *ftp, const char *cmd, int is_get) -{ - if (socket_wait(ftp->ctrl_fd, 0) <= 0) return -1; // socket is not ready for writing - int len = strlen(cmd); - if ( netwrite(ftp->ctrl_fd, cmd, len) != len ) return -1; - return is_get? kftp_get_response(ftp) : 0; -} - -static int kftp_pasv_prep(knetFile *ftp) -{ - char *p; - int v[6]; - kftp_send_cmd(ftp, "PASV\r\n", 1); - for (p = ftp->response; *p && *p != '('; ++p); - if (*p != '(') return -1; - ++p; - sscanf(p, "%d,%d,%d,%d,%d,%d", &v[0], &v[1], &v[2], &v[3], &v[4], &v[5]); - memcpy(ftp->pasv_ip, v, 4 * sizeof(int)); - ftp->pasv_port = (v[4]<<8&0xff00) + v[5]; - return 0; -} - - -static int kftp_pasv_connect(knetFile *ftp) -{ - char host[80], port[10]; - if (ftp->pasv_port == 0) { - fprintf(stderr, "[kftp_pasv_connect] kftp_pasv_prep() is not called before hand.\n"); - return -1; - } - sprintf(host, "%d.%d.%d.%d", ftp->pasv_ip[0], ftp->pasv_ip[1], ftp->pasv_ip[2], ftp->pasv_ip[3]); - sprintf(port, "%d", ftp->pasv_port); - ftp->fd = socket_connect(host, port); - if (ftp->fd == -1) return -1; - return 0; -} - -int kftp_connect(knetFile *ftp) -{ - ftp->ctrl_fd = socket_connect(ftp->host, ftp->port); - if (ftp->ctrl_fd == -1) return -1; - kftp_get_response(ftp); - kftp_send_cmd(ftp, "USER anonymous\r\n", 1); - kftp_send_cmd(ftp, "PASS kftp@\r\n", 1); - kftp_send_cmd(ftp, "TYPE I\r\n", 1); - return 0; -} - -int kftp_reconnect(knetFile *ftp) -{ - if (ftp->ctrl_fd != -1) { - netclose(ftp->ctrl_fd); - ftp->ctrl_fd = -1; - } - netclose(ftp->fd); - ftp->fd = -1; - return kftp_connect(ftp); -} - -// initialize ->type, ->host, ->retr and ->size -knetFile *kftp_parse_url(const char *fn, const char *mode) -{ - knetFile *fp; - char *p; - int l; - if (strstr(fn, "ftp://") != fn) return 0; - for (p = (char*)fn + 6; *p && *p != '/'; ++p); - if (*p != '/') return 0; - l = p - fn - 6; - fp = (knetFile*)calloc(1, sizeof(knetFile)); - fp->type = KNF_TYPE_FTP; - fp->fd = -1; - /* the Linux/Mac version of socket_connect() also recognizes a port - * like "ftp", but the Windows version does not. */ - fp->port = strdup("21"); - fp->host = (char*)calloc(l + 1, 1); - if (strchr(mode, 'c')) fp->no_reconnect = 1; - strncpy(fp->host, fn + 6, l); - fp->retr = (char*)calloc(strlen(p) + 8, 1); - sprintf(fp->retr, "RETR %s\r\n", p); - fp->size_cmd = (char*)calloc(strlen(p) + 8, 1); - sprintf(fp->size_cmd, "SIZE %s\r\n", p); - fp->seek_offset = 0; - return fp; -} -// place ->fd at offset off -int kftp_connect_file(knetFile *fp) -{ - int ret; - long long file_size; - if (fp->fd != -1) { - netclose(fp->fd); - if (fp->no_reconnect) kftp_get_response(fp); - } - kftp_pasv_prep(fp); - kftp_send_cmd(fp, fp->size_cmd, 1); -#ifndef _WIN32 - // If the file does not exist, the response will be "550 Could not get file - // size". Be silent on failure, hts_idx_load can be trying the existence of .csi or .tbi. - if ( sscanf(fp->response,"%*d %lld", &file_size) != 1 ) return -1; -#else - const char *p = fp->response; - while (*p != ' ') ++p; - while (*p < '0' || *p > '9') ++p; - file_size = strtoint64(p); -#endif - fp->file_size = file_size; - if (fp->offset>=0) { - char tmp[32]; -#ifndef _WIN32 - sprintf(tmp, "REST %lld\r\n", (long long)fp->offset); -#else - strcpy(tmp, "REST "); - int64tostr(tmp + 5, fp->offset); - strcat(tmp, "\r\n"); -#endif - kftp_send_cmd(fp, tmp, 1); - } - kftp_send_cmd(fp, fp->retr, 0); - kftp_pasv_connect(fp); - ret = kftp_get_response(fp); - if (ret != 150) { - fprintf(stderr, "[kftp_connect_file] %s\n", fp->response); - netclose(fp->fd); - fp->fd = -1; - return -1; - } - fp->is_ready = 1; - return 0; -} - - -/************************** - * HTTP specific routines * - **************************/ - -knetFile *khttp_parse_url(const char *fn, const char *mode) -{ - knetFile *fp; - char *p, *proxy, *q; - int l; - if (strstr(fn, "http://") != fn) return 0; - // set ->http_host - for (p = (char*)fn + 7; *p && *p != '/'; ++p); - l = p - fn - 7; - fp = (knetFile*)calloc(1, sizeof(knetFile)); - fp->http_host = (char*)calloc(l + 1, 1); - strncpy(fp->http_host, fn + 7, l); - fp->http_host[l] = 0; - for (q = fp->http_host; *q && *q != ':'; ++q); - if (*q == ':') *q++ = 0; - // get http_proxy - proxy = getenv("http_proxy"); - // set ->host, ->port and ->path - if (proxy == 0) { - fp->host = strdup(fp->http_host); // when there is no proxy, server name is identical to http_host name. - fp->port = strdup(*q? q : "80"); - fp->path = strdup(*p? p : "/"); - } else { - fp->host = (strstr(proxy, "http://") == proxy)? strdup(proxy + 7) : strdup(proxy); - for (q = fp->host; *q && *q != ':'; ++q); - if (*q == ':') *q++ = 0; - fp->port = strdup(*q? q : "80"); - fp->path = strdup(fn); - } - fp->type = KNF_TYPE_HTTP; - fp->ctrl_fd = fp->fd = -1; - fp->seek_offset = 0; - return fp; -} - -int khttp_connect_file(knetFile *fp) -{ - int ret, l = 0; - char *buf, *p; - if (fp->fd != -1) netclose(fp->fd); - fp->fd = socket_connect(fp->host, fp->port); - buf = (char*)calloc(0x10000, 1); // FIXME: I am lazy... But in principle, 64KB should be large enough. - l += sprintf(buf + l, "GET %s HTTP/1.0\r\nHost: %s\r\n", fp->path, fp->http_host); - l += sprintf(buf + l, "Range: bytes=%lld-\r\n", (long long)fp->offset); - l += sprintf(buf + l, "\r\n"); - if ( netwrite(fp->fd, buf, l) != l ) { free(buf); return -1; } - l = 0; - while (netread(fp->fd, buf + l, 1)) { // read HTTP header; FIXME: bad efficiency - if (buf[l] == '\n' && l >= 3) - if (strncmp(buf + l - 3, "\r\n\r\n", 4) == 0) break; - ++l; - } - buf[l] = 0; - if (l < 14) { // prematured header - free(buf); - netclose(fp->fd); - fp->fd = -1; - return -1; - } - ret = strtol(buf + 8, &p, 0); // HTTP return code - if (ret == 200 && fp->offset>0) { // 200 (complete result); then skip beginning of the file - off_t rest = fp->offset; - while (rest) { - off_t l = rest < 0x10000? rest : 0x10000; - rest -= my_netread(fp->fd, buf, l); - } - } else if (ret != 206 && ret != 200) { - // failed to open file - free(buf); - netclose(fp->fd); - switch (ret) { - case 401: errno = EPERM; break; - case 403: errno = EACCES; break; - case 404: errno = ENOENT; break; - case 407: errno = EPERM; break; - case 408: errno = ETIMEDOUT; break; - case 410: errno = ENOENT; break; - case 503: errno = EAGAIN; break; - case 504: errno = ETIMEDOUT; break; - default: errno = (ret >= 400 && ret < 500)? EINVAL : EIO; break; - } - fp->fd = -1; - return -1; - } - free(buf); - fp->is_ready = 1; - return 0; -} - -/******************** - * Generic routines * - ********************/ - -knetFile *knet_open(const char *fn, const char *mode) -{ - knetFile *fp = 0; - if (mode[0] != 'r') { - fprintf(stderr, "[kftp_open] only mode \"r\" is supported.\n"); - return 0; - } - if (strstr(fn, "ftp://") == fn) { - fp = kftp_parse_url(fn, mode); - if (fp == 0) return 0; - if (kftp_connect(fp) == -1) { - knet_close(fp); - return 0; - } - kftp_connect_file(fp); - } else if (strstr(fn, "http://") == fn) { - fp = khttp_parse_url(fn, mode); - if (fp == 0) return 0; - khttp_connect_file(fp); - } else { // local file -#ifdef _WIN32 - /* In windows, O_BINARY is necessary. In Linux/Mac, O_BINARY may - * be undefined on some systems, although it is defined on my - * Mac and the Linux I have tested on. */ - int fd = open(fn, O_RDONLY | O_BINARY); -#else - int fd = open(fn, O_RDONLY); -#endif - if (fd == -1) { - perror("open"); - return 0; - } - fp = (knetFile*)calloc(1, sizeof(knetFile)); - fp->type = KNF_TYPE_LOCAL; - fp->fd = fd; - fp->ctrl_fd = -1; - } - if (fp && fp->fd == -1) { - knet_close(fp); - return 0; - } - return fp; -} - -knetFile *knet_dopen(int fd, const char *mode) -{ - knetFile *fp = (knetFile*)calloc(1, sizeof(knetFile)); - fp->type = KNF_TYPE_LOCAL; - fp->fd = fd; - return fp; -} - -ssize_t knet_read(knetFile *fp, void *buf, size_t len) -{ - off_t l = 0; - if (fp->fd == -1) return 0; - if (fp->type == KNF_TYPE_FTP) { - if (fp->is_ready == 0) { - if (!fp->no_reconnect) kftp_reconnect(fp); - kftp_connect_file(fp); - } - } else if (fp->type == KNF_TYPE_HTTP) { - if (fp->is_ready == 0) - khttp_connect_file(fp); - } - if (fp->type == KNF_TYPE_LOCAL) { // on Windows, the following block is necessary; not on UNIX - size_t rest = len; - ssize_t curr; - while (rest) { - do { - curr = read(fp->fd, (void*)((char*)buf + l), rest); - } while (curr < 0 && EINTR == errno); - if (curr < 0) return -1; - if (curr == 0) break; - l += curr; rest -= curr; - } - } else l = my_netread(fp->fd, buf, len); - fp->offset += l; - return l; -} - -off_t knet_seek(knetFile *fp, off_t off, int whence) -{ - if (whence == SEEK_SET && off == fp->offset) return 0; - if (fp->type == KNF_TYPE_LOCAL) { - /* Be aware that lseek() returns the offset after seeking, while fseek() returns zero on success. */ - off_t offset = lseek(fp->fd, off, whence); - if (offset == -1) return -1; - fp->offset = offset; - return fp->offset; - } else if (fp->type == KNF_TYPE_FTP) { - if (whence == SEEK_CUR) fp->offset += off; - else if (whence == SEEK_SET) fp->offset = off; - else if (whence == SEEK_END) fp->offset = fp->file_size + off; - else return -1; - fp->is_ready = 0; - return fp->offset; - } else if (fp->type == KNF_TYPE_HTTP) { - if (whence == SEEK_END) { // FIXME: can we allow SEEK_END in future? - fprintf(stderr, "[knet_seek] SEEK_END is not supported for HTTP. Offset is unchanged.\n"); - errno = ESPIPE; - return -1; - } - if (whence == SEEK_CUR) fp->offset += off; - else if (whence == SEEK_SET) fp->offset = off; - else return -1; - fp->is_ready = 0; - return fp->offset; - } - errno = EINVAL; - fprintf(stderr,"[knet_seek] %s\n", strerror(errno)); - return -1; -} - -int knet_close(knetFile *fp) -{ - if (fp == 0) return 0; - if (fp->ctrl_fd != -1) netclose(fp->ctrl_fd); // FTP specific - if (fp->fd != -1) { - /* On Linux/Mac, netclose() is an alias of close(), but on - * Windows, it is an alias of closesocket(). */ - if (fp->type == KNF_TYPE_LOCAL) close(fp->fd); - else netclose(fp->fd); - } - free(fp->host); free(fp->port); - free(fp->response); free(fp->retr); // FTP specific - free(fp->path); free(fp->http_host); // HTTP specific - free(fp); - return 0; -} - -#ifdef KNETFILE_MAIN -int main(void) -{ - char *buf; - knetFile *fp; - int type = 4, l; -#ifdef _WIN32 - knet_win32_init(); -#endif - buf = calloc(0x100000, 1); - if (type == 0) { - fp = knet_open("knetfile.c", "r"); - knet_seek(fp, 1000, SEEK_SET); - } else if (type == 1) { // NCBI FTP, large file - fp = knet_open("ftp://ftp.ncbi.nih.gov/1000genomes/ftp/data/NA12878/alignment/NA12878.chrom6.SLX.SRP000032.2009_06.bam", "r"); - knet_seek(fp, 2500000000ll, SEEK_SET); - l = knet_read(fp, buf, 255); - } else if (type == 2) { - fp = knet_open("ftp://ftp.sanger.ac.uk/pub4/treefam/tmp/index.shtml", "r"); - knet_seek(fp, 1000, SEEK_SET); - } else if (type == 3) { - fp = knet_open("http://www.sanger.ac.uk/Users/lh3/index.shtml", "r"); - knet_seek(fp, 1000, SEEK_SET); - } else if (type == 4) { - fp = knet_open("http://www.sanger.ac.uk/Users/lh3/ex1.bam", "r"); - knet_read(fp, buf, 10000); - knet_seek(fp, 20000, SEEK_SET); - knet_seek(fp, 10000, SEEK_SET); - l = knet_read(fp, buf+10000, 10000000) + 10000; - } - if (type != 4 && type != 1) { - knet_read(fp, buf, 255); - buf[255] = 0; - printf("%s\n", buf); - } else write(fileno(stdout), buf, l); - knet_close(fp); - free(buf); - return 0; -} -#endif diff --git a/htslib/kstring.c b/htslib/kstring.c deleted file mode 100644 index 0128266..0000000 --- a/htslib/kstring.c +++ /dev/null @@ -1,254 +0,0 @@ -/* The MIT License - - Copyright (C) 2011 by Attractive Chaos - - 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. -*/ - -#include -#include -#include -#include -#include -#include "htslib/kstring.h" - -int kvsprintf(kstring_t *s, const char *fmt, va_list ap) -{ - va_list args; - int l; - va_copy(args, ap); - l = vsnprintf(s->s + s->l, s->m - s->l, fmt, args); // This line does not work with glibc 2.0. See `man snprintf'. - va_end(args); - if (l + 1 > s->m - s->l) { - s->m = s->l + l + 2; - kroundup32(s->m); - s->s = (char*)realloc(s->s, s->m); - va_copy(args, ap); - l = vsnprintf(s->s + s->l, s->m - s->l, fmt, args); - va_end(args); - } - s->l += l; - return l; -} - -int ksprintf(kstring_t *s, const char *fmt, ...) -{ - va_list ap; - int l; - va_start(ap, fmt); - l = kvsprintf(s, fmt, ap); - va_end(ap); - return l; -} - -char *kstrtok(const char *str, const char *sep, ks_tokaux_t *aux) -{ - const char *p, *start; - if (sep) { // set up the table - if (str == 0 && (aux->tab[0]&1)) return 0; // no need to set up if we have finished - aux->finished = 0; - if (sep[1]) { - aux->sep = -1; - aux->tab[0] = aux->tab[1] = aux->tab[2] = aux->tab[3] = 0; - for (p = sep; *p; ++p) aux->tab[*p>>6] |= 1ull<<(*p&0x3f); - } else aux->sep = sep[0]; - } - if (aux->finished) return 0; - else if (str) aux->p = str - 1, aux->finished = 0; - if (aux->sep < 0) { - for (p = start = aux->p + 1; *p; ++p) - if (aux->tab[*p>>6]>>(*p&0x3f)&1) break; - } else { - for (p = start = aux->p + 1; *p; ++p) - if (*p == aux->sep) break; - } - aux->p = p; // end of token - if (*p == 0) aux->finished = 1; // no more tokens - return (char*)start; -} - -// s MUST BE a null terminated string; l = strlen(s) -int ksplit_core(char *s, int delimiter, int *_max, int **_offsets) -{ - int i, n, max, last_char, last_start, *offsets, l; - n = 0; max = *_max; offsets = *_offsets; - l = strlen(s); - -#define __ksplit_aux do { \ - if (_offsets) { \ - s[i] = 0; \ - if (n == max) { \ - int *tmp; \ - max = max? max<<1 : 2; \ - if ((tmp = (int*)realloc(offsets, sizeof(int) * max))) { \ - offsets = tmp; \ - } else { \ - free(offsets); \ - *_offsets = NULL; \ - return 0; \ - } \ - } \ - offsets[n++] = last_start; \ - } else ++n; \ - } while (0) - - for (i = 0, last_char = last_start = 0; i <= l; ++i) { - if (delimiter == 0) { - if (isspace(s[i]) || s[i] == 0) { - if (isgraph(last_char)) __ksplit_aux; // the end of a field - } else { - if (isspace(last_char) || last_char == 0) last_start = i; - } - } else { - if (s[i] == delimiter || s[i] == 0) { - if (last_char != 0 && last_char != delimiter) __ksplit_aux; // the end of a field - } else { - if (last_char == delimiter || last_char == 0) last_start = i; - } - } - last_char = s[i]; - } - *_max = max; *_offsets = offsets; - return n; -} - -/********************** - * Boyer-Moore search * - **********************/ - -typedef unsigned char ubyte_t; - -// reference: http://www-igm.univ-mlv.fr/~lecroq/string/node14.html -static int *ksBM_prep(const ubyte_t *pat, int m) -{ - int i, *suff, *prep, *bmGs, *bmBc; - prep = (int*)calloc(m + 256, sizeof(int)); - bmGs = prep; bmBc = prep + m; - { // preBmBc() - for (i = 0; i < 256; ++i) bmBc[i] = m; - for (i = 0; i < m - 1; ++i) bmBc[pat[i]] = m - i - 1; - } - suff = (int*)calloc(m, sizeof(int)); - { // suffixes() - int f = 0, g; - suff[m - 1] = m; - g = m - 1; - for (i = m - 2; i >= 0; --i) { - if (i > g && suff[i + m - 1 - f] < i - g) - suff[i] = suff[i + m - 1 - f]; - else { - if (i < g) g = i; - f = i; - while (g >= 0 && pat[g] == pat[g + m - 1 - f]) --g; - suff[i] = f - g; - } - } - } - { // preBmGs() - int j = 0; - for (i = 0; i < m; ++i) bmGs[i] = m; - for (i = m - 1; i >= 0; --i) - if (suff[i] == i + 1) - for (; j < m - 1 - i; ++j) - if (bmGs[j] == m) - bmGs[j] = m - 1 - i; - for (i = 0; i <= m - 2; ++i) - bmGs[m - 1 - suff[i]] = m - 1 - i; - } - free(suff); - return prep; -} - -void *kmemmem(const void *_str, int n, const void *_pat, int m, int **_prep) -{ - int i, j, *prep = 0, *bmGs, *bmBc; - const ubyte_t *str, *pat; - str = (const ubyte_t*)_str; pat = (const ubyte_t*)_pat; - prep = (_prep == 0 || *_prep == 0)? ksBM_prep(pat, m) : *_prep; - if (_prep && *_prep == 0) *_prep = prep; - bmGs = prep; bmBc = prep + m; - j = 0; - while (j <= n - m) { - for (i = m - 1; i >= 0 && pat[i] == str[i+j]; --i); - if (i >= 0) { - int max = bmBc[str[i+j]] - m + 1 + i; - if (max < bmGs[i]) max = bmGs[i]; - j += max; - } else return (void*)(str + j); - } - if (_prep == 0) free(prep); - return 0; -} - -char *kstrstr(const char *str, const char *pat, int **_prep) -{ - return (char*)kmemmem(str, strlen(str), pat, strlen(pat), _prep); -} - -char *kstrnstr(const char *str, const char *pat, int n, int **_prep) -{ - return (char*)kmemmem(str, n, pat, strlen(pat), _prep); -} - -/*********************** - * The main() function * - ***********************/ - -#ifdef KSTRING_MAIN -#include -int main() -{ - kstring_t *s; - int *fields, n, i; - ks_tokaux_t aux; - char *p; - s = (kstring_t*)calloc(1, sizeof(kstring_t)); - // test ksprintf() - ksprintf(s, " abcdefg: %d ", 100); - printf("'%s'\n", s->s); - // test ksplit() - fields = ksplit(s, 0, &n); - for (i = 0; i < n; ++i) - printf("field[%d] = '%s'\n", i, s->s + fields[i]); - // test kstrtok() - s->l = 0; - for (p = kstrtok("ab:cde:fg/hij::k", ":/", &aux); p; p = kstrtok(0, 0, &aux)) { - kputsn(p, aux.p - p, s); - kputc('\n', s); - } - printf("%s", s->s); - // free - free(s->s); free(s); free(fields); - - { - static char *str = "abcdefgcdgcagtcakcdcd"; - static char *pat = "cd"; - char *ret, *s = str; - int *prep = 0; - while ((ret = kstrstr(s, pat, &prep)) != 0) { - printf("match: %s\n", ret); - s = ret + prep[0]; - } - free(prep); - } - return 0; -} -#endif diff --git a/htslib/regidx.c b/htslib/regidx.c deleted file mode 100644 index 291ba79..0000000 --- a/htslib/regidx.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - Copyright (C) 2014 Genome Research Ltd. - - Author: Petr Danecek - - 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. -*/ - -#include "htslib/hts.h" -#include "htslib/kstring.h" -#include "htslib/kseq.h" -#include "htslib/khash_str2int.h" -#include "htslib/regidx.h" - -#define LIDX_SHIFT 13 // number of insignificant index bits - -// List of regions for one chromosome -typedef struct -{ - int *idx, nidx; - int nregs, mregs; // n:used, m:alloced - reg_t *regs; - void *payload; -} -reglist_t; - -// Container of all sequences -struct _regidx_t -{ - int nseq, mseq; // n:used, m:alloced - reglist_t *seq; // regions for each sequence - void *seq2regs; // hash for fast lookup from chr name to regions - char **seq_names; - regidx_free_f free; // function to free any data allocated by regidx_parse_f - regidx_parse_f parse; // parse one input line - void *usr; // user data to pass to regidx_parse_f - - // temporary data for index initialization - kstring_t str; - int rid_prev, start_prev, end_prev; - int payload_size; - void *payload; -}; - -int regidx_seq_nregs(regidx_t *idx, const char *seq) -{ - int iseq; - if ( khash_str2int_get(idx->seq2regs, seq, &iseq)!=0 ) return 0; // no such sequence - return idx->seq[iseq].nregs; -} - -int regidx_nregs(regidx_t *idx) -{ - int i, nregs = 0; - for (i=0; inseq; i++) nregs += idx->seq[i].nregs; - return nregs; -} - -char **regidx_seq_names(regidx_t *idx, int *n) -{ - *n = idx->nseq; - return idx->seq_names; -} - -int _regidx_build_index(regidx_t *idx) -{ - int iseq; - for (iseq=0; iseqnseq; iseq++) - { - reglist_t *list = &idx->seq[iseq]; - int j,k, imax = 0; // max index bin - for (j=0; jnregs; j++) - { - int ibeg = list->regs[j].start >> LIDX_SHIFT; - int iend = list->regs[j].end >> LIDX_SHIFT; - if ( imax < iend + 1 ) - { - int old_imax = imax; - imax = iend + 1; - kroundup32(imax); - list->idx = (int*) realloc(list->idx, imax*sizeof(int)); - for (k=old_imax; kidx[k] = -1; - } - if ( ibeg==iend ) - { - if ( list->idx[ibeg]<0 ) list->idx[ibeg] = j; - } - else - { - for (k=ibeg; k<=iend; k++) - if ( list->idx[k]<0 ) list->idx[k] = j; - } - list->nidx = iend + 1; - } - } - return 0; -} - -int regidx_insert(regidx_t *idx, char *line) -{ - if ( !line ) - return _regidx_build_index(idx); - - char *chr_from, *chr_to; - reg_t reg; - int ret = idx->parse(line,&chr_from,&chr_to,®,idx->payload,idx->usr); - if ( ret==-2 ) return -1; // error - if ( ret==-1 ) return 0; // skip the line - - int rid; - idx->str.l = 0; - kputsn(chr_from, chr_to-chr_from+1, &idx->str); - if ( khash_str2int_get(idx->seq2regs, idx->str.s, &rid)!=0 ) - { - idx->nseq++; - int m_prev = idx->mseq; - hts_expand0(reglist_t,idx->nseq,idx->mseq,idx->seq); - hts_expand0(char*,idx->nseq,m_prev,idx->seq_names); - idx->seq_names[idx->nseq-1] = strdup(idx->str.s); - rid = khash_str2int_inc(idx->seq2regs, idx->seq_names[idx->nseq-1]); - } - - reglist_t *list = &idx->seq[rid]; - list->nregs++; - int m_prev = list->mregs; - hts_expand(reg_t,list->nregs,list->mregs,list->regs); - list->regs[list->nregs-1] = reg; - if ( idx->payload_size ) - { - if ( m_prev < list->mregs ) list->payload = realloc(list->payload,idx->payload_size*list->mregs); - memcpy(list->payload + idx->payload_size*(list->nregs-1), idx->payload, idx->payload_size); - } - - if ( idx->rid_prev==rid ) - { - if ( idx->start_prev > reg.start || (idx->start_prev==reg.start && idx->end_prev>reg.end) ) - { - fprintf(stderr,"The regions are not sorted: %s:%d-%d is before %s:%d-%d\n", - idx->str.s,idx->start_prev+1,idx->end_prev+1,idx->str.s,reg.start+1,reg.end+1); - return -1; - } - } - idx->rid_prev = rid; - idx->start_prev = reg.start; - idx->end_prev = reg.end; - return 0; -} - -regidx_t *regidx_init(const char *fname, regidx_parse_f parser, regidx_free_f free_f, size_t payload_size, void *usr_dat) -{ - if ( !parser ) - { - if ( !fname ) parser = regidx_parse_tab; - else - { - int len = strlen(fname); - if ( len>=7 && !strcasecmp(".bed.gz",fname+len-7) ) - parser = regidx_parse_bed; - else if ( len>=8 && !strcasecmp(".bed.bgz",fname+len-8) ) - parser = regidx_parse_bed; - else if ( len>=4 && !strcasecmp(".bed",fname+len-4) ) - parser = regidx_parse_bed; - else - parser = regidx_parse_tab; - } - } - - regidx_t *idx = (regidx_t*) calloc(1,sizeof(regidx_t)); - idx->free = free_f; - idx->parse = parser; - idx->usr = usr_dat; - idx->seq2regs = khash_str2int_init(); - idx->rid_prev = -1; - idx->start_prev = -1; - idx->end_prev = -1; - idx->payload_size = payload_size; - if ( payload_size ) idx->payload = malloc(payload_size); - - if ( !fname ) return idx; - - kstring_t str = {0,0,0}; - - htsFile *fp = hts_open(fname,"r"); - if ( !fp ) goto error; - - while ( hts_getline(fp, KS_SEP_LINE, &str) > 0 ) - { - if ( regidx_insert(idx, str.s) ) goto error; - } - regidx_insert(idx, NULL); - - free(str.s); - hts_close(fp); - return idx; - -error: - free(str.s); - if ( fp ) hts_close(fp); - regidx_destroy(idx); - return NULL; -} - -void regidx_destroy(regidx_t *idx) -{ - int i, j; - for (i=0; inseq; i++) - { - reglist_t *list = &idx->seq[i]; - if ( idx->free ) - { - for (j=0; jnregs; j++) - idx->free(list->payload + idx->payload_size*j); - } - free(list->payload); - free(list->regs); - free(list->idx); - } - free(idx->seq_names); - free(idx->seq); - free(idx->str.s); - free(idx->payload); - khash_str2int_destroy_free(idx->seq2regs); - free(idx); -} - -int regidx_overlap(regidx_t *idx, const char *chr, uint32_t from, uint32_t to, regitr_t *itr) -{ - if ( itr ) itr->i = itr->n = 0; - - int iseq; - if ( khash_str2int_get(idx->seq2regs, chr, &iseq)!=0 ) return 0; // no such sequence - - reglist_t *list = &idx->seq[iseq]; - if ( !list->nregs ) return 0; - - int i, ibeg = from>>LIDX_SHIFT; - int ireg = ibeg < list->nidx ? list->idx[ibeg] : list->idx[ list->nidx - 1 ]; - if ( ireg < 0 ) - { - // linear search; if slow, replace with binary search - if ( ibeg > list->nidx ) ibeg = list->nidx; - for (i=ibeg - 1; i>=0; i--) - if ( list->idx[i] >=0 ) break; - ireg = i>=0 ? list->idx[i] : 0; - } - for (i=ireg; inregs; i++) - { - if ( list->regs[i].start > to ) return 0; // no match - if ( list->regs[i].end >= from && list->regs[i].start <= to ) break; // found - } - - if ( i>=list->nregs ) return 0; // no match - - if ( !itr ) return 1; - - itr->i = 0; - itr->n = list->nregs - i; - itr->reg = &idx->seq[iseq].regs[i]; - if ( idx->payload_size ) - itr->payload = idx->seq[iseq].payload + i*idx->payload_size; - else - itr->payload = NULL; - - return 1; -} - -int regidx_parse_bed(const char *line, char **chr_beg, char **chr_end, reg_t *reg, void *payload, void *usr) -{ - char *ss = (char*) line; - while ( *ss && isspace(*ss) ) ss++; - if ( !*ss ) return -1; // skip blank lines - if ( *ss=='#' ) return -1; // skip comments - - char *se = ss; - while ( *se && !isspace(*se) ) se++; - if ( !*se ) { fprintf(stderr,"Could not parse bed line: %s\n", line); return -2; } - - *chr_beg = ss; - *chr_end = se-1; - - ss = se+1; - reg->start = strtol(ss, &se, 10); - if ( ss==se ) { fprintf(stderr,"Could not parse bed line: %s\n", line); return -2; } - - ss = se+1; - reg->end = strtol(ss, &se, 10) - 1; - if ( ss==se ) { fprintf(stderr,"Could not parse bed line: %s\n", line); return -2; } - - return 0; -} - -int regidx_parse_tab(const char *line, char **chr_beg, char **chr_end, reg_t *reg, void *payload, void *usr) -{ - char *ss = (char*) line; - while ( *ss && isspace(*ss) ) ss++; - if ( !*ss ) return -1; // skip blank lines - if ( *ss=='#' ) return -1; // skip comments - - char *se = ss; - while ( *se && !isspace(*se) ) se++; - if ( !*se ) { fprintf(stderr,"Could not parse bed line: %s\n", line); return -2; } - - *chr_beg = ss; - *chr_end = se-1; - - ss = se+1; - reg->start = strtol(ss, &se, 10) - 1; - if ( ss==se ) { fprintf(stderr,"Could not parse bed line: %s\n", line); return -2; } - - if ( !se[0] || !se[1] ) - reg->end = reg->start; - else - { - ss = se+1; - reg->end = strtol(ss, &se, 10); - if ( ss==se ) reg->end = reg->start; - else reg->end--; - } - - return 0; -} - diff --git a/htslib/sam.5 b/htslib/sam.5 deleted file mode 100644 index 66542bb..0000000 --- a/htslib/sam.5 +++ /dev/null @@ -1,68 +0,0 @@ -'\" t -.TH sam 5 "August 2013" "htslib" "Bioinformatics formats" -.SH NAME -sam \- Sequence Alignment/Map file format -.\" -.\" Copyright (C) 2009, 2013 Genome Research Ltd. -.\" -.\" Author: Heng Li -.\" -.\" 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. -.\" -.SH DESCRIPTION -Sequence Alignment/Map (SAM) format is TAB-delimited. Apart from the header lines, which are started -with the `@' symbol, each alignment line consists of: -.TS -nlbl. -1 QNAME Query template/pair NAME -2 FLAG bitwise FLAG -3 RNAME Reference sequence NAME -4 POS 1-based leftmost POSition/coordinate of clipped sequence -5 MAPQ MAPping Quality (Phred-scaled) -6 CIGAR extended CIGAR string -7 MRNM Mate Reference sequence NaMe (`=' if same as RNAME) -8 MPOS 1-based Mate POSistion -9 TLEN inferred Template LENgth (insert size) -10 SEQ query SEQuence on the same strand as the reference -11 QUAL query QUALity (ASCII-33 gives the Phred base quality) -12+ OPT variable OPTional fields in the format TAG:VTYPE:VALUE -.TE -.PP -Each bit in the FLAG field is defined as: -.TS -lcbl. -0x0001 p the read is paired in sequencing -0x0002 P the read is mapped in a proper pair -0x0004 u the query sequence itself is unmapped -0x0008 U the mate is unmapped -0x0010 r strand of the query (1 for reverse) -0x0020 R strand of the mate -0x0040 1 the read is the first read in a pair -0x0080 2 the read is the second read in a pair -0x0100 s the alignment is not primary -0x0200 f the read fails platform/vendor quality checks -0x0400 d the read is either a PCR or an optical duplicate -0x0800 S the alignment is supplementary -.TE -.P -where the second column gives the string representation of the FLAG field. -.SH SEE ALSO -.TP -https://github.com/samtools/hts-specs -The full SAM/BAM file format specification diff --git a/htslib/sam.c b/htslib/sam.c deleted file mode 100644 index 460cf33..0000000 --- a/htslib/sam.c +++ /dev/null @@ -1,1882 +0,0 @@ -/* sam.c -- SAM and BAM file I/O and manipulation. - - Copyright (C) 2008-2010, 2012-2014 Genome Research Ltd. - Copyright (C) 2010, 2012, 2013 Broad Institute. - - Author: Heng Li - -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. */ - -#include -#include -#include -#include -#include -#include -#include "htslib/sam.h" -#include "htslib/bgzf.h" -#include "cram/cram.h" -#include "htslib/hfile.h" - -#include "htslib/khash.h" -KHASH_DECLARE(s2i, kh_cstr_t, int64_t) - -typedef khash_t(s2i) sdict_t; - -/********************** - *** BAM header I/O *** - **********************/ - -bam_hdr_t *bam_hdr_init() -{ - return (bam_hdr_t*)calloc(1, sizeof(bam_hdr_t)); -} - -void bam_hdr_destroy(bam_hdr_t *h) -{ - int32_t i; - if (h == NULL) return; - if (h->target_name) { - for (i = 0; i < h->n_targets; ++i) - free(h->target_name[i]); - free(h->target_name); - free(h->target_len); - } - free(h->text); free(h->cigar_tab); - if (h->sdict) kh_destroy(s2i, (sdict_t*)h->sdict); - free(h); -} - -bam_hdr_t *bam_hdr_dup(const bam_hdr_t *h0) -{ - if (h0 == NULL) return NULL; - bam_hdr_t *h; - if ((h = bam_hdr_init()) == NULL) return NULL; - // copy the simple data - h->n_targets = h0->n_targets; - h->ignore_sam_err = h0->ignore_sam_err; - h->l_text = h0->l_text; - // Then the pointery stuff - h->cigar_tab = NULL; - h->sdict = NULL; - h->text = (char*)calloc(h->l_text + 1, 1); - memcpy(h->text, h0->text, h->l_text); - h->target_len = (uint32_t*)calloc(h->n_targets, sizeof(uint32_t)); - h->target_name = (char**)calloc(h->n_targets, sizeof(char*)); - int i; - for (i = 0; i < h->n_targets; ++i) { - h->target_len[i] = h0->target_len[i]; - h->target_name[i] = strdup(h0->target_name[i]); - } - return h; -} - - -static bam_hdr_t *hdr_from_dict(sdict_t *d) -{ - bam_hdr_t *h; - khint_t k; - h = bam_hdr_init(); - h->sdict = d; - h->n_targets = kh_size(d); - h->target_len = (uint32_t*)malloc(sizeof(uint32_t) * h->n_targets); - h->target_name = (char**)malloc(sizeof(char*) * h->n_targets); - for (k = kh_begin(d); k != kh_end(d); ++k) { - if (!kh_exist(d, k)) continue; - h->target_name[kh_val(d, k)>>32] = (char*)kh_key(d, k); - h->target_len[kh_val(d, k)>>32] = kh_val(d, k)<<32>>32; - kh_val(d, k) >>= 32; - } - return h; -} - -bam_hdr_t *bam_hdr_read(BGZF *fp) -{ - bam_hdr_t *h; - char buf[4]; - int magic_len, has_EOF; - int32_t i = 1, name_len; - // check EOF - has_EOF = bgzf_check_EOF(fp); - if (has_EOF < 0) { - perror("[W::sam_hdr_read] bgzf_check_EOF"); - } else if (has_EOF == 0 && hts_verbose >= 2) - fprintf(stderr, "[W::%s] EOF marker is absent. The input is probably truncated.\n", __func__); - // read "BAM1" - magic_len = bgzf_read(fp, buf, 4); - if (magic_len != 4 || strncmp(buf, "BAM\1", 4)) { - if (hts_verbose >= 1) fprintf(stderr, "[E::%s] invalid BAM binary header\n", __func__); - return 0; - } - h = bam_hdr_init(); - // read plain text and the number of reference sequences - bgzf_read(fp, &h->l_text, 4); - if (fp->is_be) ed_swap_4p(&h->l_text); - h->text = (char*)malloc(h->l_text + 1); - h->text[h->l_text] = 0; // make sure it is NULL terminated - bgzf_read(fp, h->text, h->l_text); - bgzf_read(fp, &h->n_targets, 4); - if (fp->is_be) ed_swap_4p(&h->n_targets); - // read reference sequence names and lengths - h->target_name = (char**)calloc(h->n_targets, sizeof(char*)); - h->target_len = (uint32_t*)calloc(h->n_targets, sizeof(uint32_t)); - for (i = 0; i != h->n_targets; ++i) { - bgzf_read(fp, &name_len, 4); - if (fp->is_be) ed_swap_4p(&name_len); - h->target_name[i] = (char*)calloc(name_len, 1); - bgzf_read(fp, h->target_name[i], name_len); - bgzf_read(fp, &h->target_len[i], 4); - if (fp->is_be) ed_swap_4p(&h->target_len[i]); - } - return h; -} - -int bam_hdr_write(BGZF *fp, const bam_hdr_t *h) -{ - char buf[4]; - int32_t i, name_len, x; - // write "BAM1" - strncpy(buf, "BAM\1", 4); - bgzf_write(fp, buf, 4); - // write plain text and the number of reference sequences - if (fp->is_be) { - x = ed_swap_4(h->l_text); - bgzf_write(fp, &x, 4); - if (h->l_text) bgzf_write(fp, h->text, h->l_text); - x = ed_swap_4(h->n_targets); - bgzf_write(fp, &x, 4); - } else { - bgzf_write(fp, &h->l_text, 4); - if (h->l_text) bgzf_write(fp, h->text, h->l_text); - bgzf_write(fp, &h->n_targets, 4); - } - // write sequence names and lengths - for (i = 0; i != h->n_targets; ++i) { - char *p = h->target_name[i]; - name_len = strlen(p) + 1; - if (fp->is_be) { - x = ed_swap_4(name_len); - bgzf_write(fp, &x, 4); - } else bgzf_write(fp, &name_len, 4); - bgzf_write(fp, p, name_len); - if (fp->is_be) { - x = ed_swap_4(h->target_len[i]); - bgzf_write(fp, &x, 4); - } else bgzf_write(fp, &h->target_len[i], 4); - } - bgzf_flush(fp); - return 0; -} - -int bam_name2id(bam_hdr_t *h, const char *ref) -{ - sdict_t *d = (sdict_t*)h->sdict; - khint_t k; - if (h->sdict == 0) { - int i, absent; - d = kh_init(s2i); - for (i = 0; i < h->n_targets; ++i) { - k = kh_put(s2i, d, h->target_name[i], &absent); - kh_val(d, k) = i; - } - h->sdict = d; - } - k = kh_get(s2i, d, ref); - return k == kh_end(d)? -1 : kh_val(d, k); -} - -/************************* - *** BAM alignment I/O *** - *************************/ - -bam1_t *bam_init1() -{ - return (bam1_t*)calloc(1, sizeof(bam1_t)); -} - -void bam_destroy1(bam1_t *b) -{ - if (b == 0) return; - free(b->data); free(b); -} - -bam1_t *bam_copy1(bam1_t *bdst, const bam1_t *bsrc) -{ - uint8_t *data = bdst->data; - int m_data = bdst->m_data; // backup data and m_data - if (m_data < bsrc->l_data) { // double the capacity - m_data = bsrc->l_data; kroundup32(m_data); - data = (uint8_t*)realloc(data, m_data); - } - memcpy(data, bsrc->data, bsrc->l_data); // copy var-len data - *bdst = *bsrc; // copy the rest - // restore the backup - bdst->m_data = m_data; - bdst->data = data; - return bdst; -} - -bam1_t *bam_dup1(const bam1_t *bsrc) -{ - if (bsrc == NULL) return NULL; - bam1_t *bdst = bam_init1(); - if (bdst == NULL) return NULL; - return bam_copy1(bdst, bsrc); -} - -int bam_cigar2qlen(int n_cigar, const uint32_t *cigar) -{ - int k, l; - for (k = l = 0; k < n_cigar; ++k) - if (bam_cigar_type(bam_cigar_op(cigar[k]))&1) - l += bam_cigar_oplen(cigar[k]); - return l; -} - -int bam_cigar2rlen(int n_cigar, const uint32_t *cigar) -{ - int k, l; - for (k = l = 0; k < n_cigar; ++k) - if (bam_cigar_type(bam_cigar_op(cigar[k]))&2) - l += bam_cigar_oplen(cigar[k]); - return l; -} - -int32_t bam_endpos(const bam1_t *b) -{ - if (!(b->core.flag & BAM_FUNMAP) && b->core.n_cigar > 0) - return b->core.pos + bam_cigar2rlen(b->core.n_cigar, bam_get_cigar(b)); - else - return b->core.pos + 1; -} - -static inline int aux_type2size(uint8_t type) -{ - switch (type) { - case 'A': case 'c': case 'C': - return 1; - case 's': case 'S': - return 2; - case 'i': case 'I': case 'f': - return 4; - case 'd': - return 8; - case 'Z': case 'H': case 'B': - return type; - default: - return 0; - } -} - -static void swap_data(const bam1_core_t *c, int l_data, uint8_t *data, int is_host) -{ - uint8_t *s; - uint32_t *cigar = (uint32_t*)(data + c->l_qname); - uint32_t i, n; - s = data + c->n_cigar*4 + c->l_qname + c->l_qseq + (c->l_qseq + 1)/2; - for (i = 0; i < c->n_cigar; ++i) ed_swap_4p(&cigar[i]); - while (s < data + l_data) { - int size; - s += 2; // skip key - size = aux_type2size(*s); ++s; // skip type - switch (size) { - case 1: ++s; break; - case 2: ed_swap_2p(s); s += 2; break; - case 4: ed_swap_4p(s); s += 4; break; - case 8: ed_swap_8p(s); s += 8; break; - case 'Z': - case 'H': - while (*s) ++s; - ++s; - break; - case 'B': - size = aux_type2size(*s); ++s; - if (is_host) memcpy(&n, s, 4), ed_swap_4p(s); - else ed_swap_4p(s), memcpy(&n, s, 4); - s += 4; - switch (size) { - case 1: s += n; break; - case 2: for (i = 0; i < n; ++i, s += 2) ed_swap_2p(s); break; - case 4: for (i = 0; i < n; ++i, s += 4) ed_swap_4p(s); break; - case 8: for (i = 0; i < n; ++i, s += 8) ed_swap_8p(s); break; - } - break; - } - } -} - -int bam_read1(BGZF *fp, bam1_t *b) -{ - bam1_core_t *c = &b->core; - int32_t block_len, ret, i; - uint32_t x[8]; - if ((ret = bgzf_read(fp, &block_len, 4)) != 4) { - if (ret == 0) return -1; // normal end-of-file - else return -2; // truncated - } - if (bgzf_read(fp, x, 32) != 32) return -3; - if (fp->is_be) { - ed_swap_4p(&block_len); - for (i = 0; i < 8; ++i) ed_swap_4p(x + i); - } - c->tid = x[0]; c->pos = x[1]; - c->bin = x[2]>>16; c->qual = x[2]>>8&0xff; c->l_qname = x[2]&0xff; - c->flag = x[3]>>16; c->n_cigar = x[3]&0xffff; - c->l_qseq = x[4]; - c->mtid = x[5]; c->mpos = x[6]; c->isize = x[7]; - b->l_data = block_len - 32; - if (b->l_data < 0 || c->l_qseq < 0) return -4; - if ((char *)bam_get_aux(b) - (char *)b->data > b->l_data) - return -4; - if (b->m_data < b->l_data) { - b->m_data = b->l_data; - kroundup32(b->m_data); - b->data = (uint8_t*)realloc(b->data, b->m_data); - if (!b->data) - return -4; - } - if (bgzf_read(fp, b->data, b->l_data) != b->l_data) return -4; - //b->l_aux = b->l_data - c->n_cigar * 4 - c->l_qname - c->l_qseq - (c->l_qseq+1)/2; - if (fp->is_be) swap_data(c, b->l_data, b->data, 0); - return 4 + block_len; -} - -int bam_write1(BGZF *fp, const bam1_t *b) -{ - const bam1_core_t *c = &b->core; - uint32_t x[8], block_len = b->l_data + 32, y; - int i, ok; - x[0] = c->tid; - x[1] = c->pos; - x[2] = (uint32_t)c->bin<<16 | c->qual<<8 | c->l_qname; - x[3] = (uint32_t)c->flag<<16 | c->n_cigar; - x[4] = c->l_qseq; - x[5] = c->mtid; - x[6] = c->mpos; - x[7] = c->isize; - ok = (bgzf_flush_try(fp, 4 + block_len) >= 0); - if (fp->is_be) { - for (i = 0; i < 8; ++i) ed_swap_4p(x + i); - y = block_len; - if (ok) ok = (bgzf_write(fp, ed_swap_4p(&y), 4) >= 0); - swap_data(c, b->l_data, b->data, 1); - } else { - if (ok) ok = (bgzf_write(fp, &block_len, 4) >= 0); - } - if (ok) ok = (bgzf_write(fp, x, 32) >= 0); - if (ok) ok = (bgzf_write(fp, b->data, b->l_data) >= 0); - if (fp->is_be) swap_data(c, b->l_data, b->data, 0); - return ok? 4 + block_len : -1; -} - -/******************** - *** BAM indexing *** - ********************/ - -static hts_idx_t *bam_index(BGZF *fp, int min_shift) -{ - int n_lvls, i, fmt; - bam1_t *b; - hts_idx_t *idx; - bam_hdr_t *h; - h = bam_hdr_read(fp); - if (min_shift > 0) { - int64_t max_len = 0, s; - for (i = 0; i < h->n_targets; ++i) - if (max_len < h->target_len[i]) max_len = h->target_len[i]; - max_len += 256; - for (n_lvls = 0, s = 1< s; ++n_lvls, s <<= 3); - fmt = HTS_FMT_CSI; - } else min_shift = 14, n_lvls = 5, fmt = HTS_FMT_BAI; - idx = hts_idx_init(h->n_targets, fmt, bgzf_tell(fp), min_shift, n_lvls); - bam_hdr_destroy(h); - b = bam_init1(); - while (bam_read1(fp, b) >= 0) { - int l, ret; - l = bam_cigar2rlen(b->core.n_cigar, bam_get_cigar(b)); - if (l == 0) l = 1; // no zero-length records - ret = hts_idx_push(idx, b->core.tid, b->core.pos, b->core.pos + l, bgzf_tell(fp), !(b->core.flag&BAM_FUNMAP)); - if (ret < 0) - { - // unsorted - bam_destroy1(b); - hts_idx_destroy(idx); - return NULL; - } - } - hts_idx_finish(idx, bgzf_tell(fp)); - bam_destroy1(b); - return idx; -} - -int bam_index_build(const char *fn, int min_shift) -{ - hts_idx_t *idx; - htsFile *fp; - int ret = 0; - - if ((fp = hts_open(fn, "r")) == 0) return -1; - switch (fp->format.format) { - case cram: - ret = cram_index_build(fp->fp.cram, fn); - break; - - case bam: - idx = bam_index(fp->fp.bgzf, min_shift); - if (idx) { - hts_idx_save(idx, fn, (min_shift > 0)? HTS_FMT_CSI : HTS_FMT_BAI); - hts_idx_destroy(idx); - } - else ret = -1; - break; - - default: - ret = -1; - break; - } - hts_close(fp); - - return ret; -} - -static int bam_readrec(BGZF *fp, void *ignored, void *bv, int *tid, int *beg, int *end) -{ - bam1_t *b = bv; - int ret; - if ((ret = bam_read1(fp, b)) >= 0) { - *tid = b->core.tid; *beg = b->core.pos; - *end = b->core.pos + (b->core.n_cigar? bam_cigar2rlen(b->core.n_cigar, bam_get_cigar(b)) : 1); - } - return ret; -} - -// This is used only with read_rest=1 iterators, so need not set tid/beg/end. -static int cram_readrec(BGZF *ignored, void *fpv, void *bv, int *tid, int *beg, int *end) -{ - htsFile *fp = fpv; - bam1_t *b = bv; - return cram_get_bam_seq(fp->fp.cram, &b); -} - -// This is used only with read_rest=1 iterators, so need not set tid/beg/end. -static int sam_bam_cram_readrec(BGZF *bgzfp, void *fpv, void *bv, int *tid, int *beg, int *end) -{ - htsFile *fp = fpv; - bam1_t *b = bv; - switch (fp->format.format) { - case bam: return bam_read1(bgzfp, b); - case cram: return cram_get_bam_seq(fp->fp.cram, &b); - default: - // TODO Need headers available to implement this for SAM files - fprintf(stderr, "[sam_bam_cram_readrec] Not implemented for SAM files -- Exiting\n"); - abort(); - } -} - -// The CRAM implementation stores the loaded index within the cram_fd rather -// than separately as is done elsewhere in htslib. So if p is a pointer to -// an hts_idx_t with p->fmt == HTS_FMT_CRAI, then it actually points to an -// hts_cram_idx_t and should be cast accordingly. -typedef struct hts_cram_idx_t { - int fmt; - cram_fd *cram; -} hts_cram_idx_t; - -hts_idx_t *sam_index_load(samFile *fp, const char *fn) -{ - switch (fp->format.format) { - case bam: - return bam_index_load(fn); - - case cram: { - if (cram_index_load(fp->fp.cram, fn) < 0) return NULL; - // Cons up a fake "index" just pointing at the associated cram_fd: - hts_cram_idx_t *idx = malloc(sizeof (hts_cram_idx_t)); - if (idx == NULL) return NULL; - idx->fmt = HTS_FMT_CRAI; - idx->cram = fp->fp.cram; - return (hts_idx_t *) idx; - } - - default: - return NULL; // TODO Would use tbx_index_load if it returned hts_idx_t - } -} - -static hts_itr_t *cram_itr_query(const hts_idx_t *idx, int tid, int beg, int end, hts_readrec_func *readrec) -{ - const hts_cram_idx_t *cidx = (const hts_cram_idx_t *) idx; - hts_itr_t *iter = (hts_itr_t *) calloc(1, sizeof(hts_itr_t)); - if (iter == NULL) return NULL; - - // Cons up a dummy iterator for which hts_itr_next() will simply invoke - // the readrec function: - iter->read_rest = 1; - iter->off = NULL; - iter->bins.a = NULL; - iter->readrec = readrec; - - if (tid >= 0) { - cram_range r = { tid, beg+1, end }; - if (cram_set_option(cidx->cram, CRAM_OPT_RANGE, &r) != 0) { free(iter); return NULL; } - iter->curr_off = 0; - // The following fields are not required by hts_itr_next(), but are - // filled in in case user code wants to look at them. - iter->tid = tid; - iter->beg = beg; - iter->end = end; - } - else switch (tid) { - case HTS_IDX_REST: - iter->curr_off = 0; - break; - case HTS_IDX_NONE: - iter->curr_off = 0; - iter->finished = 1; - break; - default: - fprintf(stderr, "[cram_itr_query] tid=%d not implemented for CRAM files -- Exiting\n", tid); - abort(); - break; - } - - return iter; -} - -hts_itr_t *sam_itr_queryi(const hts_idx_t *idx, int tid, int beg, int end) -{ - const hts_cram_idx_t *cidx = (const hts_cram_idx_t *) idx; - if (idx == NULL) - return hts_itr_query(NULL, tid, beg, end, sam_bam_cram_readrec); - else if (cidx->fmt == HTS_FMT_CRAI) - return cram_itr_query(idx, tid, beg, end, cram_readrec); - else - return hts_itr_query(idx, tid, beg, end, bam_readrec); -} - -static int cram_name2id(void *fdv, const char *ref) -{ - cram_fd *fd = (cram_fd *) fdv; - return sam_hdr_name2ref(fd->header, ref); -} - -hts_itr_t *sam_itr_querys(const hts_idx_t *idx, bam_hdr_t *hdr, const char *region) -{ - const hts_cram_idx_t *cidx = (const hts_cram_idx_t *) idx; - if (cidx->fmt == HTS_FMT_CRAI) - return hts_itr_querys(idx, region, cram_name2id, cidx->cram, cram_itr_query, cram_readrec); - else - return hts_itr_querys(idx, region, (hts_name2id_f)(bam_name2id), hdr, hts_itr_query, bam_readrec); -} - -/********************** - *** SAM header I/O *** - **********************/ - -#include "htslib/kseq.h" -#include "htslib/kstring.h" - -bam_hdr_t *sam_hdr_parse(int l_text, const char *text) -{ - const char *q, *r, *p; - khash_t(s2i) *d; - d = kh_init(s2i); - for (p = text; *p; ++p) { - if (strncmp(p, "@SQ", 3) == 0) { - char *sn = 0; - int ln = -1; - for (q = p + 4;; ++q) { - if (strncmp(q, "SN:", 3) == 0) { - q += 3; - for (r = q; *r != '\t' && *r != '\n'; ++r); - sn = (char*)calloc(r - q + 1, 1); - strncpy(sn, q, r - q); - q = r; - } else if (strncmp(q, "LN:", 3) == 0) - ln = strtol(q + 3, (char**)&q, 10); - while (*q != '\t' && *q != '\n') ++q; - if (*q == '\n') break; - } - p = q; - if (sn && ln >= 0) { - khint_t k; - int absent; - k = kh_put(s2i, d, sn, &absent); - if (!absent) { - if (hts_verbose >= 2) - fprintf(stderr, "[W::%s] duplicated sequence '%s'\n", __func__, sn); - free(sn); - } else kh_val(d, k) = (int64_t)(kh_size(d) - 1)<<32 | ln; - } - } - while (*p != '\n') ++p; - } - return hdr_from_dict(d); -} - -bam_hdr_t *sam_hdr_read(htsFile *fp) -{ - switch (fp->format.format) { - case bam: - return bam_hdr_read(fp->fp.bgzf); - - case cram: - return cram_header_to_bam(fp->fp.cram->header); - - case sam: { - kstring_t str; - bam_hdr_t *h; - int has_SQ = 0; - str.l = str.m = 0; str.s = 0; - while (hts_getline(fp, KS_SEP_LINE, &fp->line) >= 0) { - if (fp->line.s[0] != '@') break; - if (fp->line.l > 3 && strncmp(fp->line.s,"@SQ",3) == 0) has_SQ = 1; - kputsn(fp->line.s, fp->line.l, &str); - kputc('\n', &str); - } - if (! has_SQ && fp->fn_aux) { - char line[2048]; - FILE *f = fopen(fp->fn_aux, "r"); - if (f == NULL) return NULL; - while (fgets(line, sizeof line, f)) { - const char *name = strtok(line, "\t"); - const char *length = strtok(NULL, "\t"); - ksprintf(&str, "@SQ\tSN:%s\tLN:%s\n", name, length); - } - fclose(f); - } - if (str.l == 0) kputsn("", 0, &str); - h = sam_hdr_parse(str.l, str.s); - h->l_text = str.l; h->text = str.s; - return h; - } - - default: - abort(); - } -} - -int sam_hdr_write(htsFile *fp, const bam_hdr_t *h) -{ - switch (fp->format.format) { - case binary_format: - fp->format.category = sequence_data; - fp->format.format = bam; - /* fall-through */ - case bam: - bam_hdr_write(fp->fp.bgzf, h); - break; - - case cram: { - cram_fd *fd = fp->fp.cram; - if (cram_set_header(fd, bam_header_to_cram((bam_hdr_t *)h)) < 0) return -1; - if (fp->fn_aux) - cram_load_reference(fd, fp->fn_aux); - if (cram_write_SAM_hdr(fd, fd->header) < 0) return -1; - } - break; - - case text_format: - fp->format.category = sequence_data; - fp->format.format = sam; - /* fall-through */ - case sam: { - char *p; - hputs(h->text, fp->fp.hfile); - p = strstr(h->text, "@SQ\t"); // FIXME: we need a loop to make sure "@SQ\t" does not match something unwanted!!! - if (p == 0) { - int i; - for (i = 0; i < h->n_targets; ++i) { - fp->line.l = 0; - kputsn("@SQ\tSN:", 7, &fp->line); kputs(h->target_name[i], &fp->line); - kputsn("\tLN:", 4, &fp->line); kputw(h->target_len[i], &fp->line); kputc('\n', &fp->line); - if ( hwrite(fp->fp.hfile, fp->line.s, fp->line.l) != fp->line.l ) return -1; - } - } - if ( hflush(fp->fp.hfile) != 0 ) return -1; - } - break; - - default: - abort(); - } - return 0; -} - -/********************** - *** SAM record I/O *** - **********************/ - -int sam_parse1(kstring_t *s, bam_hdr_t *h, bam1_t *b) -{ -#define _read_token(_p) (_p); for (; *(_p) && *(_p) != '\t'; ++(_p)); if (*(_p) != '\t') goto err_ret; *(_p)++ = 0 -#define _read_token_aux(_p) (_p); for (; *(_p) && *(_p) != '\t'; ++(_p)); *(_p)++ = 0 // this is different in that it does not test *(_p)=='\t' -#define _get_mem(type_t, _x, _s, _l) ks_resize((_s), (_s)->l + (_l)); *(_x) = (type_t*)((_s)->s + (_s)->l); (_s)->l += (_l) -#define _parse_err(cond, msg) do { if ((cond) && hts_verbose >= 1) { fprintf(stderr, "[E::%s] " msg "\n", __func__); goto err_ret; } } while (0) -#define _parse_warn(cond, msg) if ((cond) && hts_verbose >= 2) fprintf(stderr, "[W::%s] " msg "\n", __func__) - - uint8_t *t; - char *p = s->s, *q; - int i; - kstring_t str; - bam1_core_t *c = &b->core; - - str.l = b->l_data = 0; - str.s = (char*)b->data; str.m = b->m_data; - memset(c, 0, 32); - if (h->cigar_tab == 0) { - h->cigar_tab = (int8_t*) malloc(128); - for (i = 0; i < 128; ++i) - h->cigar_tab[i] = -1; - for (i = 0; BAM_CIGAR_STR[i]; ++i) - h->cigar_tab[(int)BAM_CIGAR_STR[i]] = i; - } - // qname - q = _read_token(p); - kputsn_(q, p - q, &str); - c->l_qname = p - q; - // flag - c->flag = strtol(p, &p, 0); - if (*p++ != '\t') goto err_ret; // malformated flag - // chr - q = _read_token(p); - if (strcmp(q, "*")) { - _parse_err(h->n_targets == 0, "missing SAM header"); - c->tid = bam_name2id(h, q); - _parse_warn(c->tid < 0, "urecognized reference name; treated as unmapped"); - } else c->tid = -1; - // pos - c->pos = strtol(p, &p, 10) - 1; - if (*p++ != '\t') goto err_ret; - if (c->pos < 0 && c->tid >= 0) { - _parse_warn(1, "mapped query cannot have zero coordinate; treated as unmapped"); - c->tid = -1; - } - if (c->tid < 0) c->flag |= BAM_FUNMAP; - // mapq - c->qual = strtol(p, &p, 10); - if (*p++ != '\t') goto err_ret; - // cigar - if (*p != '*') { - uint32_t *cigar; - size_t n_cigar = 0; - for (q = p; *p && *p != '\t'; ++p) - if (!isdigit(*p)) ++n_cigar; - if (*p++ != '\t') goto err_ret; - _parse_err(n_cigar >= 65536, "too many CIGAR operations"); - c->n_cigar = n_cigar; - _get_mem(uint32_t, &cigar, &str, c->n_cigar<<2); - for (i = 0; i < c->n_cigar; ++i, ++q) { - int op; - cigar[i] = strtol(q, &q, 10)<= 128? -1 : h->cigar_tab[(int)*q]; - _parse_err(op < 0, "unrecognized CIGAR operator"); - cigar[i] |= op; - } - i = bam_cigar2rlen(c->n_cigar, cigar); - } else { - _parse_warn(!(c->flag&BAM_FUNMAP), "mapped query must have a CIGAR; treated as unmapped"); - c->flag |= BAM_FUNMAP; - q = _read_token(p); - i = 1; - } - c->bin = hts_reg2bin(c->pos, c->pos + i, 14, 5); - // mate chr - q = _read_token(p); - if (strcmp(q, "=") == 0) c->mtid = c->tid; - else if (strcmp(q, "*") == 0) c->mtid = -1; - else c->mtid = bam_name2id(h, q); - // mpos - c->mpos = strtol(p, &p, 10) - 1; - if (*p++ != '\t') goto err_ret; - if (c->mpos < 0 && c->mtid >= 0) { - _parse_warn(1, "mapped mate cannot have zero coordinate; treated as unmapped"); - c->mtid = -1; - } - // tlen - c->isize = strtol(p, &p, 10); - if (*p++ != '\t') goto err_ret; - // seq - q = _read_token(p); - if (strcmp(q, "*")) { - c->l_qseq = p - q - 1; - i = bam_cigar2qlen(c->n_cigar, (uint32_t*)(str.s + c->l_qname)); - _parse_err(c->n_cigar && i != c->l_qseq, "CIGAR and query sequence are of different length"); - i = (c->l_qseq + 1) >> 1; - _get_mem(uint8_t, &t, &str, i); - memset(t, 0, i); - for (i = 0; i < c->l_qseq; ++i) - t[i>>1] |= seq_nt16_table[(int)q[i]] << ((~i&1)<<2); - } else c->l_qseq = 0; - // qual - q = _read_token_aux(p); - _get_mem(uint8_t, &t, &str, c->l_qseq); - if (strcmp(q, "*")) { - _parse_err(p - q - 1 != c->l_qseq, "SEQ and QUAL are of different length"); - for (i = 0; i < c->l_qseq; ++i) t[i] = q[i] - 33; - } else memset(t, 0xff, c->l_qseq); - // aux - // Note that (like the bam1_core_t fields) this aux data in b->data is - // stored in host endianness; so there is no byte swapping needed here. - while (p < s->s + s->l) { - uint8_t type; - q = _read_token_aux(p); // FIXME: can be accelerated for long 'B' arrays - _parse_err(p - q - 1 < 6, "incomplete aux field"); - kputsn_(q, 2, &str); - q += 3; type = *q++; ++q; // q points to value - if (type == 'A' || type == 'a' || type == 'c' || type == 'C') { - kputc_('A', &str); - kputc_(*q, &str); - } else if (type == 'i' || type == 'I') { - if (*q == '-') { - long x = strtol(q, &q, 10); - if (x >= INT8_MIN) { - kputc_('c', &str); kputc_(x, &str); - } else if (x >= INT16_MIN) { - int16_t y = x; - kputc_('s', &str); kputsn_((char*)&y, 2, &str); - } else { - int32_t y = x; - kputc_('i', &str); kputsn_(&y, 4, &str); - } - } else { - unsigned long x = strtoul(q, &q, 10); - if (x <= UINT8_MAX) { - kputc_('C', &str); kputc_(x, &str); - } else if (x <= UINT16_MAX) { - uint16_t y = x; - kputc_('S', &str); kputsn_(&y, 2, &str); - } else { - uint32_t y = x; - kputc_('I', &str); kputsn_(&y, 4, &str); - } - } - } else if (type == 'f') { - float x; - x = strtod(q, &q); - kputc_('f', &str); kputsn_(&x, 4, &str); - } else if (type == 'd') { - double x; - x = strtod(q, &q); - kputc_('d', &str); kputsn_(&x, 8, &str); - } else if (type == 'Z' || type == 'H') { - kputc_(type, &str);kputsn_(q, p - q, &str); // note that this include the trailing NULL - } else if (type == 'B') { - int32_t n; - char *r; - _parse_err(p - q - 1 < 3, "incomplete B-typed aux field"); - type = *q++; // q points to the first ',' following the typing byte - for (r = q, n = 0; *r; ++r) - if (*r == ',') ++n; - kputc_('B', &str); kputc_(type, &str); kputsn_(&n, 4, &str); - // FIXME: to evaluate which is faster: a) aligned array and then memmove(); b) unaligned array; c) kputsn_() - if (type == 'c') while (q + 1 < p) { int8_t x = strtol(q + 1, &q, 0); kputc_(x, &str); } - else if (type == 'C') while (q + 1 < p) { uint8_t x = strtoul(q + 1, &q, 0); kputc_(x, &str); } - else if (type == 's') while (q + 1 < p) { int16_t x = strtol(q + 1, &q, 0); kputsn_(&x, 2, &str); } - else if (type == 'S') while (q + 1 < p) { uint16_t x = strtoul(q + 1, &q, 0); kputsn_(&x, 2, &str); } - else if (type == 'i') while (q + 1 < p) { int32_t x = strtol(q + 1, &q, 0); kputsn_(&x, 4, &str); } - else if (type == 'I') while (q + 1 < p) { uint32_t x = strtoul(q + 1, &q, 0); kputsn_(&x, 4, &str); } - else if (type == 'f') while (q + 1 < p) { float x = strtod(q + 1, &q); kputsn_(&x, 4, &str); } - else _parse_err(1, "unrecognized type"); - } else _parse_err(1, "unrecognized type"); - } - b->data = (uint8_t*)str.s; b->l_data = str.l; b->m_data = str.m; - return 0; - -#undef _parse_warn -#undef _parse_err -#undef _get_mem -#undef _read_token_aux -#undef _read_token -err_ret: - b->data = (uint8_t*)str.s; b->l_data = str.l; b->m_data = str.m; - return -2; -} - -int sam_read1(htsFile *fp, bam_hdr_t *h, bam1_t *b) -{ - switch (fp->format.format) { - case bam: { - int r = bam_read1(fp->fp.bgzf, b); - if (r >= 0) { - if (b->core.tid >= h->n_targets || b->core.tid < -1 || - b->core.mtid >= h->n_targets || b->core.mtid < -1) - return -3; - } - return r; - } - - case cram: - return cram_get_bam_seq(fp->fp.cram, &b); - - case sam: { - int ret; -err_recover: - if (fp->line.l == 0) { - ret = hts_getline(fp, KS_SEP_LINE, &fp->line); - if (ret < 0) return -1; - } - ret = sam_parse1(&fp->line, h, b); - fp->line.l = 0; - if (ret < 0) { - if (hts_verbose >= 1) - fprintf(stderr, "[W::%s] parse error at line %lld\n", __func__, (long long)fp->lineno); - if (h->ignore_sam_err) goto err_recover; - } - return ret; - } - - default: - abort(); - } -} - -int sam_format1(const bam_hdr_t *h, const bam1_t *b, kstring_t *str) -{ - int i; - uint8_t *s; - const bam1_core_t *c = &b->core; - - str->l = 0; - kputsn(bam_get_qname(b), c->l_qname-1, str); kputc('\t', str); // query name - kputw(c->flag, str); kputc('\t', str); // flag - if (c->tid >= 0) { // chr - kputs(h->target_name[c->tid] , str); - kputc('\t', str); - } else kputsn("*\t", 2, str); - kputw(c->pos + 1, str); kputc('\t', str); // pos - kputw(c->qual, str); kputc('\t', str); // qual - if (c->n_cigar) { // cigar - uint32_t *cigar = bam_get_cigar(b); - for (i = 0; i < c->n_cigar; ++i) { - kputw(bam_cigar_oplen(cigar[i]), str); - kputc(bam_cigar_opchr(cigar[i]), str); - } - } else kputc('*', str); - kputc('\t', str); - if (c->mtid < 0) kputsn("*\t", 2, str); // mate chr - else if (c->mtid == c->tid) kputsn("=\t", 2, str); - else { - kputs(h->target_name[c->mtid], str); - kputc('\t', str); - } - kputw(c->mpos + 1, str); kputc('\t', str); // mate pos - kputw(c->isize, str); kputc('\t', str); // template len - if (c->l_qseq) { // seq and qual - uint8_t *s = bam_get_seq(b); - for (i = 0; i < c->l_qseq; ++i) kputc("=ACMGRSVTWYHKDBN"[bam_seqi(s, i)], str); - kputc('\t', str); - s = bam_get_qual(b); - if (s[0] == 0xff) kputc('*', str); - else for (i = 0; i < c->l_qseq; ++i) kputc(s[i] + 33, str); - } else kputsn("*\t*", 3, str); - s = bam_get_aux(b); // aux - while (s+4 <= b->data + b->l_data) { - uint8_t type, key[2]; - key[0] = s[0]; key[1] = s[1]; - s += 2; type = *s++; - kputc('\t', str); kputsn((char*)key, 2, str); kputc(':', str); - if (type == 'A') { - kputsn("A:", 2, str); - kputc(*s, str); - ++s; - } else if (type == 'C') { - kputsn("i:", 2, str); - kputw(*s, str); - ++s; - } else if (type == 'c') { - kputsn("i:", 2, str); - kputw(*(int8_t*)s, str); - ++s; - } else if (type == 'S') { - if (s+2 <= b->data + b->l_data) { - kputsn("i:", 2, str); - kputw(*(uint16_t*)s, str); - s += 2; - } else return -1; - } else if (type == 's') { - if (s+2 <= b->data + b->l_data) { - kputsn("i:", 2, str); - kputw(*(int16_t*)s, str); - s += 2; - } else return -1; - } else if (type == 'I') { - if (s+4 <= b->data + b->l_data) { - kputsn("i:", 2, str); - kputuw(*(uint32_t*)s, str); - s += 4; - } else return -1; - } else if (type == 'i') { - if (s+4 <= b->data + b->l_data) { - kputsn("i:", 2, str); - kputw(*(int32_t*)s, str); - s += 4; - } else return -1; - } else if (type == 'f') { - if (s+4 <= b->data + b->l_data) { - ksprintf(str, "f:%g", *(float*)s); - s += 4; - } else return -1; - - } else if (type == 'd') { - if (s+8 <= b->data + b->l_data) { - ksprintf(str, "d:%g", *(double*)s); - s += 8; - } else return -1; - } else if (type == 'Z' || type == 'H') { - kputc(type, str); kputc(':', str); - while (s < b->data + b->l_data && *s) kputc(*s++, str); - if (s >= b->data + b->l_data) - return -1; - ++s; - } else if (type == 'B') { - uint8_t sub_type = *(s++); - int32_t n; - memcpy(&n, s, 4); - s += 4; // no point to the start of the array - if (s + n >= b->data + b->l_data) - return -1; - kputsn("B:", 2, str); kputc(sub_type, str); // write the typing - for (i = 0; i < n; ++i) { // FIXME: for better performance, put the loop after "if" - kputc(',', str); - if ('c' == sub_type) { kputw(*(int8_t*)s, str); ++s; } - else if ('C' == sub_type) { kputw(*(uint8_t*)s, str); ++s; } - else if ('s' == sub_type) { kputw(*(int16_t*)s, str); s += 2; } - else if ('S' == sub_type) { kputw(*(uint16_t*)s, str); s += 2; } - else if ('i' == sub_type) { kputw(*(int32_t*)s, str); s += 4; } - else if ('I' == sub_type) { kputuw(*(uint32_t*)s, str); s += 4; } - else if ('f' == sub_type) { ksprintf(str, "%g", *(float*)s); s += 4; } - } - } - } - return str->l; -} - -int sam_write1(htsFile *fp, const bam_hdr_t *h, const bam1_t *b) -{ - switch (fp->format.format) { - case binary_format: - fp->format.category = sequence_data; - fp->format.format = bam; - /* fall-through */ - case bam: - return bam_write1(fp->fp.bgzf, b); - - case cram: - return cram_put_bam_seq(fp->fp.cram, (bam1_t *)b); - - case text_format: - fp->format.category = sequence_data; - fp->format.format = sam; - /* fall-through */ - case sam: - if (sam_format1(h, b, &fp->line) < 0) return -1; - kputc('\n', &fp->line); - if ( hwrite(fp->fp.hfile, fp->line.s, fp->line.l) != fp->line.l ) return -1; - return fp->line.l; - - default: - abort(); - } -} - -/************************ - *** Auxiliary fields *** - ************************/ - -void bam_aux_append(bam1_t *b, const char tag[2], char type, int len, uint8_t *data) -{ - int ori_len = b->l_data; - b->l_data += 3 + len; - if (b->m_data < b->l_data) { - b->m_data = b->l_data; - kroundup32(b->m_data); - b->data = (uint8_t*)realloc(b->data, b->m_data); - } - b->data[ori_len] = tag[0]; b->data[ori_len + 1] = tag[1]; - b->data[ori_len + 2] = type; - memcpy(b->data + ori_len + 3, data, len); -} - -static inline uint8_t *skip_aux(uint8_t *s) -{ - int size = aux_type2size(*s); ++s; // skip type - uint32_t n; - switch (size) { - case 'Z': - case 'H': - while (*s) ++s; - return s + 1; - case 'B': - size = aux_type2size(*s); ++s; - memcpy(&n, s, 4); s += 4; - return s + size * n; - case 0: - abort(); - break; - default: - return s + size; - } -} - -uint8_t *bam_aux_get(const bam1_t *b, const char tag[2]) -{ - uint8_t *s; - int y = tag[0]<<8 | tag[1]; - s = bam_get_aux(b); - while (s < b->data + b->l_data) { - int x = (int)s[0]<<8 | s[1]; - s += 2; - if (x == y) return s; - s = skip_aux(s); - } - return 0; -} -// s MUST BE returned by bam_aux_get() -int bam_aux_del(bam1_t *b, uint8_t *s) -{ - uint8_t *p, *aux; - int l_aux = bam_get_l_aux(b); - aux = bam_get_aux(b); - p = s - 2; - s = skip_aux(s); - memmove(p, s, l_aux - (s - aux)); - b->l_data -= s - p; - return 0; -} - -int32_t bam_aux2i(const uint8_t *s) -{ - int type; - type = *s++; - if (type == 'c') return (int32_t)*(int8_t*)s; - else if (type == 'C') return (int32_t)*(uint8_t*)s; - else if (type == 's') return (int32_t)*(int16_t*)s; - else if (type == 'S') return (int32_t)*(uint16_t*)s; - else if (type == 'i' || type == 'I') return *(int32_t*)s; - else return 0; -} - -double bam_aux2f(const uint8_t *s) -{ - int type; - type = *s++; - if (type == 'd') return *(double*)s; - else if (type == 'f') return *(float*)s; - else return 0.0; -} - -char bam_aux2A(const uint8_t *s) -{ - int type; - type = *s++; - if (type == 'A') return *(char*)s; - else return 0; -} - -char *bam_aux2Z(const uint8_t *s) -{ - int type; - type = *s++; - if (type == 'Z' || type == 'H') return (char*)s; - else return 0; -} - -int sam_open_mode(char *mode, const char *fn, const char *format) -{ - // TODO Parse "bam5" etc for compression level - if (format == NULL) { - // Try to pick a format based on the filename extension - const char *ext = fn? strrchr(fn, '.') : NULL; - if (ext == NULL || strchr(ext, '/')) return -1; - return sam_open_mode(mode, fn, ext+1); - } - else if (strcmp(format, "bam") == 0) strcpy(mode, "b"); - else if (strcmp(format, "cram") == 0) strcpy(mode, "c"); - else if (strcmp(format, "sam") == 0) strcpy(mode, ""); - else return -1; - - return 0; -} - -#define STRNCMP(a,b,n) (strncasecmp((a),(b),(n)) || strlen(a)!=(n)) -int bam_str2flag(const char *str) -{ - char *end, *beg = (char*) str; - long int flag = strtol(str, &end, 0); - if ( end!=str ) return flag; // the conversion was successful - flag = 0; - while ( *str ) - { - end = beg; - while ( *end && *end!=',' ) end++; - if ( !STRNCMP("PAIRED",beg,end-beg) ) flag |= BAM_FPAIRED; - else if ( !STRNCMP("PROPER_PAIR",beg,end-beg) ) flag |= BAM_FPROPER_PAIR; - else if ( !STRNCMP("UNMAP",beg,end-beg) ) flag |= BAM_FUNMAP; - else if ( !STRNCMP("MUNMAP",beg,end-beg) ) flag |= BAM_FMUNMAP; - else if ( !STRNCMP("REVERSE",beg,end-beg) ) flag |= BAM_FREVERSE; - else if ( !STRNCMP("MREVERSE",beg,end-beg) ) flag |= BAM_FMREVERSE; - else if ( !STRNCMP("READ1",beg,end-beg) ) flag |= BAM_FREAD1; - else if ( !STRNCMP("READ2",beg,end-beg) ) flag |= BAM_FREAD2; - else if ( !STRNCMP("SECONDARY",beg,end-beg) ) flag |= BAM_FSECONDARY; - else if ( !STRNCMP("QCFAIL",beg,end-beg) ) flag |= BAM_FQCFAIL; - else if ( !STRNCMP("DUP",beg,end-beg) ) flag |= BAM_FDUP; - else if ( !STRNCMP("SUPPLEMENTARY",beg,end-beg) ) flag |= BAM_FSUPPLEMENTARY; - else return -1; - if ( !*end ) break; - beg = end + 1; - } - return flag; -} - -char *bam_flag2str(int flag) -{ - kstring_t str = {0,0,0}; - if ( flag&BAM_FPAIRED ) ksprintf(&str,"%s%s", str.l?",":"","PAIRED"); - if ( flag&BAM_FPROPER_PAIR ) ksprintf(&str,"%s%s", str.l?",":"","PROPER_PAIR"); - if ( flag&BAM_FUNMAP ) ksprintf(&str,"%s%s", str.l?",":"","UNMAP"); - if ( flag&BAM_FMUNMAP ) ksprintf(&str,"%s%s", str.l?",":"","MUNMAP"); - if ( flag&BAM_FREVERSE ) ksprintf(&str,"%s%s", str.l?",":"","REVERSE"); - if ( flag&BAM_FMREVERSE ) ksprintf(&str,"%s%s", str.l?",":"","MREVERSE"); - if ( flag&BAM_FREAD1 ) ksprintf(&str,"%s%s", str.l?",":"","READ1"); - if ( flag&BAM_FREAD2 ) ksprintf(&str,"%s%s", str.l?",":"","READ2"); - if ( flag&BAM_FSECONDARY ) ksprintf(&str,"%s%s", str.l?",":"","SECONDARY"); - if ( flag&BAM_FQCFAIL ) ksprintf(&str,"%s%s", str.l?",":"","QCFAIL"); - if ( flag&BAM_FDUP ) ksprintf(&str,"%s%s", str.l?",":"","DUP"); - if ( flag&BAM_FSUPPLEMENTARY ) ksprintf(&str,"%s%s", str.l?",":"","SUPPLEMENTARY"); - if ( str.l == 0 ) kputsn("", 0, &str); - return str.s; -} - - -/************************** - *** Pileup and Mpileup *** - **************************/ - -#if !defined(BAM_NO_PILEUP) - -#include - -/******************* - *** Memory pool *** - *******************/ - -typedef struct { - int k, x, y, end; -} cstate_t; - -static cstate_t g_cstate_null = { -1, 0, 0, 0 }; - -typedef struct __linkbuf_t { - bam1_t b; - int32_t beg, end; - cstate_t s; - struct __linkbuf_t *next; -} lbnode_t; - -typedef struct { - int cnt, n, max; - lbnode_t **buf; -} mempool_t; - -static mempool_t *mp_init(void) -{ - mempool_t *mp; - mp = (mempool_t*)calloc(1, sizeof(mempool_t)); - return mp; -} -static void mp_destroy(mempool_t *mp) -{ - int k; - for (k = 0; k < mp->n; ++k) { - free(mp->buf[k]->b.data); - free(mp->buf[k]); - } - free(mp->buf); - free(mp); -} -static inline lbnode_t *mp_alloc(mempool_t *mp) -{ - ++mp->cnt; - if (mp->n == 0) return (lbnode_t*)calloc(1, sizeof(lbnode_t)); - else return mp->buf[--mp->n]; -} -static inline void mp_free(mempool_t *mp, lbnode_t *p) -{ - --mp->cnt; p->next = 0; // clear lbnode_t::next here - if (mp->n == mp->max) { - mp->max = mp->max? mp->max<<1 : 256; - mp->buf = (lbnode_t**)realloc(mp->buf, sizeof(lbnode_t*) * mp->max); - } - mp->buf[mp->n++] = p; -} - -/********************** - *** CIGAR resolver *** - **********************/ - -/* s->k: the index of the CIGAR operator that has just been processed. - s->x: the reference coordinate of the start of s->k - s->y: the query coordiante of the start of s->k - */ -static inline int resolve_cigar2(bam_pileup1_t *p, int32_t pos, cstate_t *s) -{ -#define _cop(c) ((c)&BAM_CIGAR_MASK) -#define _cln(c) ((c)>>BAM_CIGAR_SHIFT) - - bam1_t *b = p->b; - bam1_core_t *c = &b->core; - uint32_t *cigar = bam_get_cigar(b); - int k; - // determine the current CIGAR operation -// fprintf(stderr, "%s\tpos=%d\tend=%d\t(%d,%d,%d)\n", bam_get_qname(b), pos, s->end, s->k, s->x, s->y); - if (s->k == -1) { // never processed - if (c->n_cigar == 1) { // just one operation, save a loop - if (_cop(cigar[0]) == BAM_CMATCH || _cop(cigar[0]) == BAM_CEQUAL || _cop(cigar[0]) == BAM_CDIFF) s->k = 0, s->x = c->pos, s->y = 0; - } else { // find the first match or deletion - for (k = 0, s->x = c->pos, s->y = 0; k < c->n_cigar; ++k) { - int op = _cop(cigar[k]); - int l = _cln(cigar[k]); - if (op == BAM_CMATCH || op == BAM_CDEL || op == BAM_CEQUAL || op == BAM_CDIFF) break; - else if (op == BAM_CREF_SKIP) s->x += l; - else if (op == BAM_CINS || op == BAM_CSOFT_CLIP) s->y += l; - } - assert(k < c->n_cigar); - s->k = k; - } - } else { // the read has been processed before - int op, l = _cln(cigar[s->k]); - if (pos - s->x >= l) { // jump to the next operation - assert(s->k < c->n_cigar); // otherwise a bug: this function should not be called in this case - op = _cop(cigar[s->k+1]); - if (op == BAM_CMATCH || op == BAM_CDEL || op == BAM_CREF_SKIP || op == BAM_CEQUAL || op == BAM_CDIFF) { // jump to the next without a loop - if (_cop(cigar[s->k]) == BAM_CMATCH|| _cop(cigar[s->k]) == BAM_CEQUAL || _cop(cigar[s->k]) == BAM_CDIFF) s->y += l; - s->x += l; - ++s->k; - } else { // find the next M/D/N/=/X - if (_cop(cigar[s->k]) == BAM_CMATCH|| _cop(cigar[s->k]) == BAM_CEQUAL || _cop(cigar[s->k]) == BAM_CDIFF) s->y += l; - s->x += l; - for (k = s->k + 1; k < c->n_cigar; ++k) { - op = _cop(cigar[k]), l = _cln(cigar[k]); - if (op == BAM_CMATCH || op == BAM_CDEL || op == BAM_CREF_SKIP || op == BAM_CEQUAL || op == BAM_CDIFF) break; - else if (op == BAM_CINS || op == BAM_CSOFT_CLIP) s->y += l; - } - s->k = k; - } - assert(s->k < c->n_cigar); // otherwise a bug - } // else, do nothing - } - { // collect pileup information - int op, l; - op = _cop(cigar[s->k]); l = _cln(cigar[s->k]); - p->is_del = p->indel = p->is_refskip = 0; - if (s->x + l - 1 == pos && s->k + 1 < c->n_cigar) { // peek the next operation - int op2 = _cop(cigar[s->k+1]); - int l2 = _cln(cigar[s->k+1]); - if (op2 == BAM_CDEL) p->indel = -(int)l2; - else if (op2 == BAM_CINS) p->indel = l2; - else if (op2 == BAM_CPAD && s->k + 2 < c->n_cigar) { // no working for adjacent padding - int l3 = 0; - for (k = s->k + 2; k < c->n_cigar; ++k) { - op2 = _cop(cigar[k]); l2 = _cln(cigar[k]); - if (op2 == BAM_CINS) l3 += l2; - else if (op2 == BAM_CDEL || op2 == BAM_CMATCH || op2 == BAM_CREF_SKIP || op2 == BAM_CEQUAL || op2 == BAM_CDIFF) break; - } - if (l3 > 0) p->indel = l3; - } - } - if (op == BAM_CMATCH || op == BAM_CEQUAL || op == BAM_CDIFF) { - p->qpos = s->y + (pos - s->x); - } else if (op == BAM_CDEL || op == BAM_CREF_SKIP) { - p->is_del = 1; p->qpos = s->y; // FIXME: distinguish D and N!!!!! - p->is_refskip = (op == BAM_CREF_SKIP); - } // cannot be other operations; otherwise a bug - p->is_head = (pos == c->pos); p->is_tail = (pos == s->end); - } - return 1; -} - -/*********************** - *** Pileup iterator *** - ***********************/ - -// Dictionary of overlapping reads -KHASH_MAP_INIT_STR(olap_hash, lbnode_t *) -typedef khash_t(olap_hash) olap_hash_t; - -struct __bam_plp_t { - mempool_t *mp; - lbnode_t *head, *tail, *dummy; - int32_t tid, pos, max_tid, max_pos; - int is_eof, max_plp, error, maxcnt; - uint64_t id; - bam_pileup1_t *plp; - // for the "auto" interface only - bam1_t *b; - bam_plp_auto_f func; - void *data; - olap_hash_t *overlaps; -}; - -bam_plp_t bam_plp_init(bam_plp_auto_f func, void *data) -{ - bam_plp_t iter; - iter = (bam_plp_t)calloc(1, sizeof(struct __bam_plp_t)); - iter->mp = mp_init(); - iter->head = iter->tail = mp_alloc(iter->mp); - iter->dummy = mp_alloc(iter->mp); - iter->max_tid = iter->max_pos = -1; - iter->maxcnt = 8000; - if (func) { - iter->func = func; - iter->data = data; - iter->b = bam_init1(); - } - return iter; -} - -void bam_plp_init_overlaps(bam_plp_t iter) -{ - iter->overlaps = kh_init(olap_hash); // hash for tweaking quality of bases in overlapping reads -} - -void bam_plp_destroy(bam_plp_t iter) -{ - if ( iter->overlaps ) kh_destroy(olap_hash, iter->overlaps); - mp_free(iter->mp, iter->dummy); - mp_free(iter->mp, iter->head); - if (iter->mp->cnt != 0) - fprintf(stderr, "[bam_plp_destroy] memory leak: %d. Continue anyway.\n", iter->mp->cnt); - mp_destroy(iter->mp); - if (iter->b) bam_destroy1(iter->b); - free(iter->plp); - free(iter); -} - - -//--------------------------------- -//--- Tweak overlapping reads -//--------------------------------- - -/** - * cigar_iref2iseq_set() - find the first CMATCH setting the ref and the read index - * cigar_iref2iseq_next() - get the next CMATCH base - * @cigar: pointer to current cigar block (rw) - * @cigar_max: pointer just beyond the last cigar block - * @icig: position within the current cigar block (rw) - * @iseq: position in the sequence (rw) - * @iref: position with respect to the beginning of the read (iref_pos - b->core.pos) (rw) - * - * Returns BAM_CMATCH or -1 when there is no more cigar to process or the requested position is not covered. - */ -static inline int cigar_iref2iseq_set(uint32_t **cigar, uint32_t *cigar_max, int *icig, int *iseq, int *iref) -{ - int pos = *iref; - if ( pos < 0 ) return -1; - *icig = 0; - *iseq = 0; - *iref = 0; - while ( *cigar> BAM_CIGAR_SHIFT; - - if ( cig==BAM_CSOFT_CLIP ) { (*cigar)++; *iseq += ncig; *icig = 0; continue; } - if ( cig==BAM_CHARD_CLIP || cig==BAM_CPAD ) { (*cigar)++; *icig = 0; continue; } - if ( cig==BAM_CMATCH || cig==BAM_CEQUAL || cig==BAM_CDIFF ) - { - pos -= ncig; - if ( pos < 0 ) { *icig = ncig + pos; *iseq += *icig; *iref += *icig; return BAM_CMATCH; } - (*cigar)++; *iseq += ncig; *icig = 0; *iref += ncig; - continue; - } - if ( cig==BAM_CINS ) { (*cigar)++; *iseq += ncig; *icig = 0; continue; } - if ( cig==BAM_CDEL || cig==BAM_CREF_SKIP ) - { - pos -= ncig; - if ( pos<0 ) pos = 0; - (*cigar)++; *icig = 0; *iref += ncig; - continue; - } - fprintf(stderr,"todo: cigar %d\n", cig); - assert(0); - } - *iseq = -1; - return -1; -} -static inline int cigar_iref2iseq_next(uint32_t **cigar, uint32_t *cigar_max, int *icig, int *iseq, int *iref) -{ - while ( *cigar < cigar_max ) - { - int cig = (**cigar) & BAM_CIGAR_MASK; - int ncig = (**cigar) >> BAM_CIGAR_SHIFT; - - if ( cig==BAM_CMATCH || cig==BAM_CEQUAL || cig==BAM_CDIFF ) - { - if ( *icig >= ncig - 1 ) { *icig = 0; (*cigar)++; continue; } - (*iseq)++; (*icig)++; (*iref)++; - return BAM_CMATCH; - } - if ( cig==BAM_CDEL || cig==BAM_CREF_SKIP ) { (*cigar)++; (*iref) += ncig; *icig = 0; continue; } - if ( cig==BAM_CINS ) { (*cigar)++; *iseq += ncig; *icig = 0; continue; } - if ( cig==BAM_CSOFT_CLIP ) { (*cigar)++; *iseq += ncig; *icig = 0; continue; } - if ( cig==BAM_CHARD_CLIP || cig==BAM_CPAD ) { (*cigar)++; *icig = 0; continue; } - fprintf(stderr,"todo: cigar %d\n", cig); - assert(0); - } - *iseq = -1; - *iref = -1; - return -1; -} - -static void tweak_overlap_quality(bam1_t *a, bam1_t *b) -{ - uint32_t *a_cigar = bam_get_cigar(a), *a_cigar_max = a_cigar + a->core.n_cigar; - uint32_t *b_cigar = bam_get_cigar(b), *b_cigar_max = b_cigar + b->core.n_cigar; - int a_icig = 0, a_iseq = 0; - int b_icig = 0, b_iseq = 0; - uint8_t *a_qual = bam_get_qual(a), *b_qual = bam_get_qual(b); - uint8_t *a_seq = bam_get_seq(a), *b_seq = bam_get_seq(b); - - int iref = b->core.pos; - int a_iref = iref - a->core.pos; - int b_iref = iref - b->core.pos; - int a_ret = cigar_iref2iseq_set(&a_cigar, a_cigar_max, &a_icig, &a_iseq, &a_iref); - if ( a_ret<0 ) return; // no overlap - int b_ret = cigar_iref2iseq_set(&b_cigar, b_cigar_max, &b_icig, &b_iseq, &b_iref); - if ( b_ret<0 ) return; // no overlap - - #if DBG - fprintf(stderr,"tweak %s n_cigar=%d %d .. %d-%d vs %d-%d\n", bam_get_qname(a), a->core.n_cigar, b->core.n_cigar, - a->core.pos+1,a->core.pos+bam_cigar2rlen(a->core.n_cigar,bam_get_cigar(a)), b->core.pos+1, b->core.pos+bam_cigar2rlen(b->core.n_cigar,bam_get_cigar(b))); - #endif - - while ( 1 ) - { - // Increment reference position - while ( a_iref>=0 && a_iref < iref - a->core.pos ) - a_ret = cigar_iref2iseq_next(&a_cigar, a_cigar_max, &a_icig, &a_iseq, &a_iref); - if ( a_ret<0 ) break; // done - if ( iref < a_iref + a->core.pos ) iref = a_iref + a->core.pos; - - while ( b_iref>=0 && b_iref < iref - b->core.pos ) - b_ret = cigar_iref2iseq_next(&b_cigar, b_cigar_max, &b_icig, &b_iseq, &b_iref); - if ( b_ret<0 ) break; // done - if ( iref < b_iref + b->core.pos ) iref = b_iref + b->core.pos; - - iref++; - if ( a_iref+a->core.pos != b_iref+b->core.pos ) continue; // only CMATCH positions, don't know what to do with indels - - if ( bam_seqi(a_seq,a_iseq) == bam_seqi(b_seq,b_iseq) ) - { - #if DBG - fprintf(stderr,"%c",seq_nt16_str[bam_seqi(a_seq,a_iseq)]); - #endif - // we are very confident about this base - int qual = a_qual[a_iseq] + b_qual[b_iseq]; - a_qual[a_iseq] = qual>200 ? 200 : qual; - b_qual[b_iseq] = 0; - } - else - { - if ( a_qual[a_iseq] >= b_qual[b_iseq] ) - { - #if DBG - fprintf(stderr,"[%c/%c]",seq_nt16_str[bam_seqi(a_seq,a_iseq)],tolower(seq_nt16_str[bam_seqi(b_seq,b_iseq)])); - #endif - a_qual[a_iseq] = 0.8 * a_qual[a_iseq]; // not so confident about a_qual anymore given the mismatch - b_qual[b_iseq] = 0; - } - else - { - #if DBG - fprintf(stderr,"[%c/%c]",tolower(seq_nt16_str[bam_seqi(a_seq,a_iseq)]),seq_nt16_str[bam_seqi(b_seq,b_iseq)]); - #endif - b_qual[b_iseq] = 0.8 * b_qual[b_iseq]; - a_qual[a_iseq] = 0; - } - } - } - #if DBG - fprintf(stderr,"\n"); - #endif -} - -// Fix overlapping reads. Simple soft-clipping did not give good results. -// Lowering qualities of unwanted bases is more selective and works better. -// -static void overlap_push(bam_plp_t iter, lbnode_t *node) -{ - if ( !iter->overlaps ) return; - - // mapped mates and paired reads only - if ( node->b.core.flag&BAM_FMUNMAP || !(node->b.core.flag&BAM_FPROPER_PAIR) ) return; - - // no overlap possible, unless some wild cigar - if ( abs(node->b.core.isize) >= 2*node->b.core.l_qseq ) return; - - khiter_t kitr = kh_get(olap_hash, iter->overlaps, bam_get_qname(&node->b)); - if ( kitr==kh_end(iter->overlaps) ) - { - int ret; - kitr = kh_put(olap_hash, iter->overlaps, bam_get_qname(&node->b), &ret); - kh_value(iter->overlaps, kitr) = node; - } - else - { - lbnode_t *a = kh_value(iter->overlaps, kitr); - tweak_overlap_quality(&a->b, &node->b); - kh_del(olap_hash, iter->overlaps, kitr); - assert(a->end-1 == a->s.end); - a->end = a->b.core.pos + bam_cigar2rlen(a->b.core.n_cigar, bam_get_cigar(&a->b)); - a->s.end = a->end - 1; - } -} - -static void overlap_remove(bam_plp_t iter, const bam1_t *b) -{ - if ( !iter->overlaps ) return; - - khiter_t kitr; - if ( b ) - { - kitr = kh_get(olap_hash, iter->overlaps, bam_get_qname(b)); - if ( kitr!=kh_end(iter->overlaps) ) - kh_del(olap_hash, iter->overlaps, kitr); - } - else - { - // remove all - for (kitr = kh_begin(iter->overlaps); kitroverlaps); kitr++) - if ( kh_exist(iter->overlaps, kitr) ) kh_del(olap_hash, iter->overlaps, kitr); - } -} - - - -// Prepares next pileup position in bam records collected by bam_plp_auto -> user func -> bam_plp_push. Returns -// pointer to the piled records if next position is ready or NULL if there is not enough records in the -// buffer yet (the current position is still the maximum position across all buffered reads). -const bam_pileup1_t *bam_plp_next(bam_plp_t iter, int *_tid, int *_pos, int *_n_plp) -{ - if (iter->error) { *_n_plp = -1; return 0; } - *_n_plp = 0; - if (iter->is_eof && iter->head->next == 0) return 0; - while (iter->is_eof || iter->max_tid > iter->tid || (iter->max_tid == iter->tid && iter->max_pos > iter->pos)) { - int n_plp = 0; - lbnode_t *p, *q; - // write iter->plp at iter->pos - iter->dummy->next = iter->head; - for (p = iter->head, q = iter->dummy; p->next; q = p, p = p->next) { - if (p->b.core.tid < iter->tid || (p->b.core.tid == iter->tid && p->end <= iter->pos)) { // then remove - overlap_remove(iter, &p->b); - q->next = p->next; mp_free(iter->mp, p); p = q; - } else if (p->b.core.tid == iter->tid && p->beg <= iter->pos) { // here: p->end > pos; then add to pileup - if (n_plp == iter->max_plp) { // then double the capacity - iter->max_plp = iter->max_plp? iter->max_plp<<1 : 256; - iter->plp = (bam_pileup1_t*)realloc(iter->plp, sizeof(bam_pileup1_t) * iter->max_plp); - } - iter->plp[n_plp].b = &p->b; - if (resolve_cigar2(iter->plp + n_plp, iter->pos, &p->s)) ++n_plp; // actually always true... - } - } - iter->head = iter->dummy->next; // dummy->next may be changed - *_n_plp = n_plp; *_tid = iter->tid; *_pos = iter->pos; - // update iter->tid and iter->pos - if (iter->head->next) { - if (iter->tid > iter->head->b.core.tid) { - fprintf(stderr, "[%s] unsorted input. Pileup aborts.\n", __func__); - iter->error = 1; - *_n_plp = -1; - return 0; - } - } - if (iter->tid < iter->head->b.core.tid) { // come to a new reference sequence - iter->tid = iter->head->b.core.tid; iter->pos = iter->head->beg; // jump to the next reference - } else if (iter->pos < iter->head->beg) { // here: tid == head->b.core.tid - iter->pos = iter->head->beg; // jump to the next position - } else ++iter->pos; // scan contiguously - // return - if (n_plp) return iter->plp; - if (iter->is_eof && iter->head->next == 0) break; - } - return 0; -} - -int bam_plp_push(bam_plp_t iter, const bam1_t *b) -{ - if (iter->error) return -1; - if (b) { - if (b->core.tid < 0) { overlap_remove(iter, b); return 0; } - // Skip only unmapped reads here, any additional filtering must be done in iter->func - if (b->core.flag & BAM_FUNMAP) { overlap_remove(iter, b); return 0; } - if (iter->tid == b->core.tid && iter->pos == b->core.pos && iter->mp->cnt > iter->maxcnt) - { - overlap_remove(iter, b); - return 0; - } - bam_copy1(&iter->tail->b, b); - overlap_push(iter, iter->tail); -#ifndef BAM_NO_ID - iter->tail->b.id = iter->id++; -#endif - iter->tail->beg = b->core.pos; - iter->tail->end = b->core.pos + bam_cigar2rlen(b->core.n_cigar, bam_get_cigar(b)); - iter->tail->s = g_cstate_null; iter->tail->s.end = iter->tail->end - 1; // initialize cstate_t - if (b->core.tid < iter->max_tid) { - fprintf(stderr, "[bam_pileup_core] the input is not sorted (chromosomes out of order)\n"); - iter->error = 1; - return -1; - } - if ((b->core.tid == iter->max_tid) && (iter->tail->beg < iter->max_pos)) { - fprintf(stderr, "[bam_pileup_core] the input is not sorted (reads out of order)\n"); - iter->error = 1; - return -1; - } - iter->max_tid = b->core.tid; iter->max_pos = iter->tail->beg; - if (iter->tail->end > iter->pos || iter->tail->b.core.tid > iter->tid) { - iter->tail->next = mp_alloc(iter->mp); - iter->tail = iter->tail->next; - } - } else iter->is_eof = 1; - return 0; -} - -const bam_pileup1_t *bam_plp_auto(bam_plp_t iter, int *_tid, int *_pos, int *_n_plp) -{ - const bam_pileup1_t *plp; - if (iter->func == 0 || iter->error) { *_n_plp = -1; return 0; } - if ((plp = bam_plp_next(iter, _tid, _pos, _n_plp)) != 0) return plp; - else { // no pileup line can be obtained; read alignments - *_n_plp = 0; - if (iter->is_eof) return 0; - int ret; - while ( (ret=iter->func(iter->data, iter->b)) >= 0) { - if (bam_plp_push(iter, iter->b) < 0) { - *_n_plp = -1; - return 0; - } - if ((plp = bam_plp_next(iter, _tid, _pos, _n_plp)) != 0) return plp; - // otherwise no pileup line can be returned; read the next alignment. - } - if ( ret < -1 ) { iter->error = ret; *_n_plp = -1; return 0; } - bam_plp_push(iter, 0); - if ((plp = bam_plp_next(iter, _tid, _pos, _n_plp)) != 0) return plp; - return 0; - } -} - -void bam_plp_reset(bam_plp_t iter) -{ - lbnode_t *p, *q; - iter->max_tid = iter->max_pos = -1; - iter->tid = iter->pos = 0; - iter->is_eof = 0; - for (p = iter->head; p->next;) { - overlap_remove(iter, NULL); - q = p->next; - mp_free(iter->mp, p); - p = q; - } - iter->head = iter->tail; -} - -void bam_plp_set_maxcnt(bam_plp_t iter, int maxcnt) -{ - iter->maxcnt = maxcnt; -} - -/************************ - *** Mpileup iterator *** - ************************/ - -struct __bam_mplp_t { - int n; - uint64_t min, *pos; - bam_plp_t *iter; - int *n_plp; - const bam_pileup1_t **plp; -}; - -bam_mplp_t bam_mplp_init(int n, bam_plp_auto_f func, void **data) -{ - int i; - bam_mplp_t iter; - iter = (bam_mplp_t)calloc(1, sizeof(struct __bam_mplp_t)); - iter->pos = (uint64_t*)calloc(n, sizeof(uint64_t)); - iter->n_plp = (int*)calloc(n, sizeof(int)); - iter->plp = (const bam_pileup1_t**)calloc(n, sizeof(bam_pileup1_t*)); - iter->iter = (bam_plp_t*)calloc(n, sizeof(bam_plp_t)); - iter->n = n; - iter->min = (uint64_t)-1; - for (i = 0; i < n; ++i) { - iter->iter[i] = bam_plp_init(func, data[i]); - iter->pos[i] = iter->min; - } - return iter; -} - -void bam_mplp_init_overlaps(bam_mplp_t iter) -{ - int i; - for (i = 0; i < iter->n; ++i) - bam_plp_init_overlaps(iter->iter[i]); -} - -void bam_mplp_set_maxcnt(bam_mplp_t iter, int maxcnt) -{ - int i; - for (i = 0; i < iter->n; ++i) - iter->iter[i]->maxcnt = maxcnt; -} - -void bam_mplp_destroy(bam_mplp_t iter) -{ - int i; - for (i = 0; i < iter->n; ++i) bam_plp_destroy(iter->iter[i]); - free(iter->iter); free(iter->pos); free(iter->n_plp); free(iter->plp); - free(iter); -} - -int bam_mplp_auto(bam_mplp_t iter, int *_tid, int *_pos, int *n_plp, const bam_pileup1_t **plp) -{ - int i, ret = 0; - uint64_t new_min = (uint64_t)-1; - for (i = 0; i < iter->n; ++i) { - if (iter->pos[i] == iter->min) { - int tid, pos; - iter->plp[i] = bam_plp_auto(iter->iter[i], &tid, &pos, &iter->n_plp[i]); - if ( iter->iter[i]->error ) return -1; - iter->pos[i] = iter->plp[i] ? (uint64_t)tid<<32 | pos : 0; - } - if (iter->plp[i] && iter->pos[i] < new_min) new_min = iter->pos[i]; - } - iter->min = new_min; - if (new_min == (uint64_t)-1) return 0; - *_tid = new_min>>32; *_pos = (uint32_t)new_min; - for (i = 0; i < iter->n; ++i) { - if (iter->pos[i] == iter->min) { // FIXME: valgrind reports "uninitialised value(s) at this line" - n_plp[i] = iter->n_plp[i], plp[i] = iter->plp[i]; - ++ret; - } else n_plp[i] = 0, plp[i] = 0; - } - return ret; -} - -#endif // ~!defined(BAM_NO_PILEUP) diff --git a/htslib/synced_bcf_reader.c b/htslib/synced_bcf_reader.c deleted file mode 100644 index 3747c0e..0000000 --- a/htslib/synced_bcf_reader.c +++ /dev/null @@ -1,1257 +0,0 @@ -/* synced_bcf_reader.c -- stream through multiple VCF files. - - Copyright (C) 2012-2014 Genome Research Ltd. - - Author: Petr Danecek - -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. */ - -#include -#include -#include -#include -#include -#include -#include -#include "htslib/synced_bcf_reader.h" -#include "htslib/kseq.h" -#include "htslib/khash_str2int.h" - -#define MAX_CSI_COOR 0x7fffffff // maximum indexable coordinate of .csi - -typedef struct -{ - uint32_t start, end; -} -region1_t; - -typedef struct _region_t -{ - region1_t *regs; - int nregs, mregs, creg; -} -region_t; - -static void _regions_add(bcf_sr_regions_t *reg, const char *chr, int start, int end); -static bcf_sr_regions_t *_regions_init_string(const char *str); -static int _regions_match_alleles(bcf_sr_regions_t *reg, int als_idx, bcf1_t *rec); - -char *bcf_sr_strerror(int errnum) -{ - switch (errnum) - { - case open_failed: - return strerror(errno); break; - case not_bgzf: - return "not compressed with bgzip"; break; - case idx_load_failed: - return "could not load index"; break; - case file_type_error: - return "unknown file type"; break; - case api_usage_error: - return "API usage error"; break; - case header_error: - return "could not parse header"; break; - default: return ""; - } -} - -static int *init_filters(bcf_hdr_t *hdr, const char *filters, int *nfilters) -{ - kstring_t str = {0,0,0}; - const char *tmp = filters, *prev = filters; - int nout = 0, *out = NULL; - while ( 1 ) - { - if ( *tmp==',' || !*tmp ) - { - out = (int*) realloc(out, (nout+1)*sizeof(int)); - if ( tmp-prev==1 && *prev=='.' ) - out[nout] = -1; - else - { - str.l = 0; - kputsn(prev, tmp-prev, &str); - out[nout] = bcf_hdr_id2int(hdr, BCF_DT_ID, str.s); - } - nout++; - if ( !*tmp ) break; - prev = tmp+1; - } - tmp++; - } - if ( str.m ) free(str.s); - *nfilters = nout; - return out; -} - -int bcf_sr_set_regions(bcf_srs_t *readers, const char *regions, int is_file) -{ - assert( !readers->regions ); - if ( readers->nreaders ) - { - fprintf(stderr,"[%s:%d %s] Error: bcf_sr_set_regions() must be called before bcf_sr_add_reader()\n", __FILE__,__LINE__,__FUNCTION__); - return -1; - } - readers->regions = bcf_sr_regions_init(regions,is_file,0,1,-2); - if ( !readers->regions ) return -1; - readers->explicit_regs = 1; - readers->require_index = 1; - return 0; -} -int bcf_sr_set_targets(bcf_srs_t *readers, const char *targets, int is_file, int alleles) -{ - assert( !readers->targets ); - if ( targets[0]=='^' ) - { - readers->targets_exclude = 1; - targets++; - } - readers->targets = bcf_sr_regions_init(targets,is_file,0,1,-2); - if ( !readers->targets ) return -1; - readers->targets_als = alleles; - return 0; -} - -int bcf_sr_add_reader(bcf_srs_t *files, const char *fname) -{ - htsFile* file_ptr = hts_open(fname, "r"); - if ( ! file_ptr ) { - files->errnum = open_failed; - return 0; - } - - files->has_line = (int*) realloc(files->has_line, sizeof(int)*(files->nreaders+1)); - files->has_line[files->nreaders] = 0; - files->readers = (bcf_sr_t*) realloc(files->readers, sizeof(bcf_sr_t)*(files->nreaders+1)); - bcf_sr_t *reader = &files->readers[files->nreaders++]; - memset(reader,0,sizeof(bcf_sr_t)); - - reader->file = file_ptr; - - files->errnum = 0; - - if ( files->require_index ) - { - if ( reader->file->format.format==vcf ) - { - if ( reader->file->format.compression!=bgzf ) - { - files->errnum = not_bgzf; - return 0; - } - - reader->tbx_idx = tbx_index_load(fname); - if ( !reader->tbx_idx ) - { - files->errnum = idx_load_failed; - return 0; - } - - reader->header = bcf_hdr_read(reader->file); - } - else if ( reader->file->format.format==bcf ) - { - if ( reader->file->format.compression!=bgzf ) - { - files->errnum = not_bgzf; - return 0; - } - - reader->header = bcf_hdr_read(reader->file); - - reader->bcf_idx = bcf_index_load(fname); - if ( !reader->bcf_idx ) - { - files->errnum = idx_load_failed; - return 0; - } - } - else - { - files->errnum = file_type_error; - return 0; - } - } - else - { - if ( reader->file->format.format==bcf || reader->file->format.format==vcf ) - { - reader->header = bcf_hdr_read(reader->file); - } - else - { - files->errnum = file_type_error; - return 0; - } - files->streaming = 1; - } - if ( files->streaming && files->nreaders>1 ) - { - files->errnum = api_usage_error; - fprintf(stderr,"[%s:%d %s] Error: %d readers, yet require_index not set\n", __FILE__,__LINE__,__FUNCTION__,files->nreaders); - return 0; - } - if ( files->streaming && files->regions ) - { - files->errnum = api_usage_error; - fprintf(stderr,"[%s:%d %s] Error: cannot tabix-jump in streaming mode\n", __FILE__,__LINE__,__FUNCTION__); - return 0; - } - if ( !reader->header ) - { - files->errnum = header_error; - return 0; - } - - reader->fname = fname; - if ( files->apply_filters ) - reader->filter_ids = init_filters(reader->header, files->apply_filters, &reader->nfilter_ids); - - // Update list of chromosomes - if ( !files->explicit_regs && !files->streaming ) - { - int n,i; - const char **names = reader->tbx_idx ? tbx_seqnames(reader->tbx_idx, &n) : bcf_hdr_seqnames(reader->header, &n); - for (i=0; iregions ) - files->regions = _regions_init_string(names[i]); - else - _regions_add(files->regions, names[i], -1, -1); - } - free(names); - } - - return 1; -} - -bcf_srs_t *bcf_sr_init(void) -{ - bcf_srs_t *files = (bcf_srs_t*) calloc(1,sizeof(bcf_srs_t)); - return files; -} - -static void bcf_sr_destroy1(bcf_sr_t *reader) -{ - if ( reader->tbx_idx ) tbx_destroy(reader->tbx_idx); - if ( reader->bcf_idx ) hts_idx_destroy(reader->bcf_idx); - bcf_hdr_destroy(reader->header); - hts_close(reader->file); - if ( reader->itr ) tbx_itr_destroy(reader->itr); - int j; - for (j=0; jmbuffer; j++) - bcf_destroy1(reader->buffer[j]); - free(reader->buffer); - free(reader->samples); - free(reader->filter_ids); -} -void bcf_sr_destroy(bcf_srs_t *files) -{ - int i; - for (i=0; inreaders; i++) - bcf_sr_destroy1(&files->readers[i]); - free(files->has_line); - free(files->readers); - for (i=0; in_smpl; i++) free(files->samples[i]); - free(files->samples); - if (files->targets) bcf_sr_regions_destroy(files->targets); - if (files->regions) bcf_sr_regions_destroy(files->regions); - if ( files->tmps.m ) free(files->tmps.s); - free(files); -} - -void bcf_sr_remove_reader(bcf_srs_t *files, int i) -{ - assert( !files->samples ); // not ready for this yet - bcf_sr_destroy1(&files->readers[i]); - if ( i+1 < files->nreaders ) - { - memmove(&files->readers[i], &files->readers[i+1], (files->nreaders-i-1)*sizeof(bcf_sr_t)); - memmove(&files->has_line[i], &files->has_line[i+1], (files->nreaders-i-1)*sizeof(int)); - } - files->nreaders--; -} - - -/* - Removes duplicate records from the buffer. The meaning of "duplicate" is - controlled by the $collapse variable, which can cause that from multiple - lines only the first is considered and the rest is ignored. - The removal is done by setting the redundant lines' positions to -1 and - moving these lines at the end of the buffer. - */ -static void collapse_buffer(bcf_srs_t *files, bcf_sr_t *reader) -{ - int irec,jrec, has_snp=0, has_indel=0, has_any=0; - for (irec=1; irec<=reader->nbuffer; irec++) - { - bcf1_t *line = reader->buffer[irec]; - if ( line->pos != reader->buffer[1]->pos ) break; - if ( files->collapse&COLLAPSE_ANY ) - { - if ( !has_any ) has_any = 1; - else line->pos = -1; - } - int line_type = bcf_get_variant_types(line); - if ( files->collapse&COLLAPSE_SNPS && line_type&(VCF_SNP|VCF_MNP) ) - { - if ( !has_snp ) has_snp = 1; - else line->pos = -1; - } - if ( files->collapse&COLLAPSE_INDELS && line_type&VCF_INDEL ) - { - if ( !has_indel ) has_indel = 1; - else line->pos = -1; - } - } - bcf1_t *tmp; - irec = jrec = 1; - while ( irec<=reader->nbuffer && jrec<=reader->nbuffer ) - { - if ( reader->buffer[irec]->pos != -1 ) { irec++; continue; } - if ( jrec<=irec ) jrec = irec+1; - while ( jrec<=reader->nbuffer && reader->buffer[jrec]->pos==-1 ) jrec++; - if ( jrec<=reader->nbuffer ) - { - tmp = reader->buffer[irec]; reader->buffer[irec] = reader->buffer[jrec]; reader->buffer[jrec] = tmp; - } - } - reader->nbuffer = irec - 1; -} - -void debug_buffer(FILE *fp, bcf_sr_t *reader) -{ - int j; - for (j=0; j<=reader->nbuffer; j++) - { - bcf1_t *line = reader->buffer[j]; - fprintf(fp,"%s%s\t%s:%d\t%s ", reader->fname,j==0?"*":"",reader->header->id[BCF_DT_CTG][line->rid].key,line->pos+1,line->n_allele?line->d.allele[0]:""); - int k; - for (k=1; kn_allele; k++) fprintf(fp," %s", line->d.allele[k]); - fprintf(fp,"\n"); - } -} - -void debug_buffers(FILE *fp, bcf_srs_t *files) -{ - int i; - for (i=0; inreaders; i++) - { - fprintf(fp, "has_line: %d\t%s\n", bcf_sr_has_line(files,i),files->readers[i].fname); - debug_buffer(fp, &files->readers[i]); - } - fprintf(fp,"\n"); -} - -static inline int has_filter(bcf_sr_t *reader, bcf1_t *line) -{ - int i, j; - if ( !line->d.n_flt ) - { - for (j=0; jnfilter_ids; j++) - if ( reader->filter_ids[j]<0 ) return 1; - return 0; - } - for (i=0; id.n_flt; i++) - { - for (j=0; jnfilter_ids; j++) - if ( line->d.flt[i]==reader->filter_ids[j] ) return 1; - } - return 0; -} - -static int _reader_seek(bcf_sr_t *reader, const char *seq, int start, int end) -{ - if ( end>=MAX_CSI_COOR ) - { - fprintf(stderr,"The coordinate is out of csi index limit: %d\n", end+1); - exit(1); - } - if ( reader->itr ) - { - hts_itr_destroy(reader->itr); - reader->itr = NULL; - } - reader->nbuffer = 0; - if ( reader->tbx_idx ) - { - int tid = tbx_name2id(reader->tbx_idx, seq); - if ( tid==-1 ) return -1; // the sequence not present in this file - reader->itr = tbx_itr_queryi(reader->tbx_idx,tid,start,end+1); - } - else - { - int tid = bcf_hdr_name2id(reader->header, seq); - if ( tid==-1 ) return -1; // the sequence not present in this file - reader->itr = bcf_itr_queryi(reader->bcf_idx,tid,start,end+1); - } - assert(reader->itr); - return 0; -} - -/* - * _readers_next_region() - jumps to next region if necessary - * Returns 0 on success or -1 when there are no more regions left - */ -static int _readers_next_region(bcf_srs_t *files) -{ - // Need to open new chromosome? Check number of lines in all readers' buffers - int i, eos = 0; - for (i=0; inreaders; i++) - if ( !files->readers[i].itr && !files->readers[i].nbuffer ) eos++; - - if ( eos!=files->nreaders ) - { - // Some of the readers still has buffered lines - return 0; - } - - // No lines in the buffer, need to open new region or quit - if ( bcf_sr_regions_next(files->regions)<0 ) return -1; - - for (i=0; inreaders; i++) - _reader_seek(&files->readers[i],files->regions->seq_names[files->regions->iseq],files->regions->start,files->regions->end); - - return 0; -} - -/* - * _reader_fill_buffer() - buffers all records with the same coordinate - */ -static void _reader_fill_buffer(bcf_srs_t *files, bcf_sr_t *reader) -{ - // Return if the buffer is full: the coordinate of the last buffered record differs - if ( reader->nbuffer && reader->buffer[reader->nbuffer]->pos != reader->buffer[1]->pos ) return; - - // No iterator (sequence not present in this file) and not streaming - if ( !reader->itr && !files->streaming ) return; - - // Fill the buffer with records starting at the same position - int i, ret = 0; - while (1) - { - if ( reader->nbuffer+1 >= reader->mbuffer ) - { - // Increase buffer size - reader->mbuffer += 8; - reader->buffer = (bcf1_t**) realloc(reader->buffer, sizeof(bcf1_t*)*reader->mbuffer); - for (i=8; i>0; i--) // initialize - { - reader->buffer[reader->mbuffer-i] = bcf_init1(); - reader->buffer[reader->mbuffer-i]->max_unpack = files->max_unpack; - reader->buffer[reader->mbuffer-i]->pos = -1; // for rare cases when VCF starts from 1 - } - } - if ( files->streaming ) - { - if ( reader->file->format.format==vcf ) - { - if ( (ret=hts_getline(reader->file, KS_SEP_LINE, &files->tmps)) < 0 ) break; // no more lines - int ret = vcf_parse1(&files->tmps, reader->header, reader->buffer[reader->nbuffer+1]); - if ( ret<0 ) break; - } - else if ( reader->file->format.format==bcf ) - { - if ( (ret=bcf_read1(reader->file, reader->header, reader->buffer[reader->nbuffer+1])) < 0 ) break; // no more lines - } - else - { - fprintf(stderr,"[%s:%d %s] fixme: not ready for this\n", __FILE__,__LINE__,__FUNCTION__); - exit(1); - } - } - else if ( reader->tbx_idx ) - { - if ( (ret=tbx_itr_next(reader->file, reader->tbx_idx, reader->itr, &files->tmps)) < 0 ) break; // no more lines - vcf_parse1(&files->tmps, reader->header, reader->buffer[reader->nbuffer+1]); - } - else - { - if ( (ret=bcf_itr_next(reader->file, reader->itr, reader->buffer[reader->nbuffer+1])) < 0 ) break; // no more lines - bcf_subset_format(reader->header,reader->buffer[reader->nbuffer+1]); - } - - // apply filter - if ( !reader->nfilter_ids ) - bcf_unpack(reader->buffer[reader->nbuffer+1], BCF_UN_STR); - else - { - bcf_unpack(reader->buffer[reader->nbuffer+1], BCF_UN_STR|BCF_UN_FLT); - if ( !has_filter(reader, reader->buffer[reader->nbuffer+1]) ) continue; - } - reader->nbuffer++; - - if ( reader->buffer[reader->nbuffer]->pos != reader->buffer[1]->pos ) break; // the buffer is full - } - if ( ret<0 ) - { - // done for this region - tbx_itr_destroy(reader->itr); - reader->itr = NULL; - } - if ( files->collapse && reader->nbuffer>=2 && reader->buffer[1]->pos==reader->buffer[2]->pos ) - collapse_buffer(files, reader); -} - -/* - * _readers_shift_buffer() - removes the first line and all subsequent lines with the same position - */ -static void _reader_shift_buffer(bcf_sr_t *reader) -{ - int i; - for (i=2; i<=reader->nbuffer; i++) - if ( reader->buffer[i]->pos!=reader->buffer[1]->pos ) break; - if ( i<=reader->nbuffer ) - { - // A record with a different position follows, swap it. Because of the reader's logic, - // only one such line can be present. - bcf1_t *tmp = reader->buffer[1]; reader->buffer[1] = reader->buffer[i]; reader->buffer[i] = tmp; - reader->nbuffer = 1; - } - else - reader->nbuffer = 0; // no other line -} - -/* - * _reader_match_alleles() - from multiple buffered lines selects the one which - * corresponds best to the template line. The logic is controlled by COLLAPSE_* - * Returns 0 on success or -1 when no good matching line is found. - */ -static int _reader_match_alleles(bcf_srs_t *files, bcf_sr_t *reader, bcf1_t *tmpl) -{ - int i, irec = -1; - - // if no template given, use the first available record - if ( !tmpl ) - irec = 1; - else - { - int tmpl_type = bcf_get_variant_types(tmpl); - for (i=1; i<=reader->nbuffer; i++) - { - bcf1_t *line = reader->buffer[i]; - if ( line->pos != reader->buffer[1]->pos ) break; // done with this reader - - // Easiest case: matching by position only - if ( files->collapse&COLLAPSE_ANY ) { irec=i; break; } - - int line_type = bcf_get_variant_types(line); - - // No matter what the alleles are, as long as they are both SNPs - if ( files->collapse&COLLAPSE_SNPS && tmpl_type&VCF_SNP && line_type&VCF_SNP ) { irec=i; break; } - // ... or indels - if ( files->collapse&COLLAPSE_INDELS && tmpl_type&VCF_INDEL && line_type&VCF_INDEL ) { irec=i; break; } - - // More thorough checking: REFs must match - if ( tmpl->rlen != line->rlen ) continue; // different length - if ( strcmp(tmpl->d.allele[0], line->d.allele[0]) ) continue; // the strings do not match - - int ial,jal; - if ( files->collapse==COLLAPSE_NONE ) - { - // Exact match, all alleles must be identical - if ( tmpl->n_allele!=line->n_allele ) continue; // different number of alleles, skip - - int nmatch = 1; // REF has been already checked - for (ial=1; ialn_allele; ial++) - { - for (jal=1; jaln_allele; jal++) - if ( !strcmp(tmpl->d.allele[ial], line->d.allele[jal]) ) { nmatch++; break; } - } - if ( nmatch==tmpl->n_allele ) { irec=i; break; } // found: exact match - continue; - } - - if ( line->n_allele==1 && tmpl->n_allele==1 ) { irec=i; break; } // both sites are non-variant - - // COLLAPSE_SOME: at least some ALTs must match - for (ial=1; ialn_allele; ial++) - { - for (jal=1; jaln_allele; jal++) - if ( !strcmp(tmpl->d.allele[ial], line->d.allele[jal]) ) { irec=i; break; } - if ( irec>=1 ) break; - } - if ( irec>=1 ) break; - } - if ( irec==-1 ) return -1; // no matching line was found - } - - // Set the selected line (irec) as active: set it to buffer[0], move the remaining lines forward - // and put the old bcf1_t record at the end. - bcf1_t *tmp = reader->buffer[0]; - reader->buffer[0] = reader->buffer[irec]; - for (i=irec+1; i<=reader->nbuffer; i++) reader->buffer[i-1] = reader->buffer[i]; - reader->buffer[ reader->nbuffer ] = tmp; - reader->nbuffer--; - - return 0; -} - -int _reader_next_line(bcf_srs_t *files) -{ - int i, min_pos = INT_MAX; - - // Loop until next suitable line is found or all readers have finished - while ( 1 ) - { - // Get all readers ready for the next region. - if ( files->regions && _readers_next_region(files)<0 ) break; - - // Fill buffers - const char *chr = NULL; - for (i=0; inreaders; i++) - { - _reader_fill_buffer(files, &files->readers[i]); - - // Update the minimum coordinate - if ( !files->readers[i].nbuffer ) continue; - if ( min_pos > files->readers[i].buffer[1]->pos ) - { - min_pos = files->readers[i].buffer[1]->pos; - chr = bcf_seqname(files->readers[i].header, files->readers[i].buffer[1]); - } - } - if ( min_pos==INT_MAX ) - { - if ( !files->regions ) break; - continue; - } - - // Skip this position if not present in targets - if ( files->targets ) - { - int ret = bcf_sr_regions_overlap(files->targets, chr, min_pos, min_pos); - if ( (!files->targets_exclude && ret<0) || (files->targets_exclude && !ret) ) - { - // Remove all lines with this position from the buffer - for (i=0; inreaders; i++) - if ( files->readers[i].nbuffer && files->readers[i].buffer[1]->pos==min_pos ) - _reader_shift_buffer(&files->readers[i]); - min_pos = INT_MAX; - continue; - } - } - - break; // done: min_pos is set - } - - // There can be records with duplicate positions. Set the active line intelligently so that - // the alleles match. - int nret = 0; // number of readers sharing the position - bcf1_t *first = NULL; // record which will be used for allele matching - for (i=0; inreaders; i++) - { - files->has_line[i] = 0; - - // Skip readers with no records at this position - if ( !files->readers[i].nbuffer || files->readers[i].buffer[1]->pos!=min_pos ) continue; - - // Until now buffer[0] of all reader was empty and the lines started at buffer[1]. - // Now lines which are ready to be output will be moved to buffer[0]. - if ( _reader_match_alleles(files, &files->readers[i], first) < 0 ) continue; - if ( !first ) first = files->readers[i].buffer[0]; - - nret++; - files->has_line[i] = 1; - } - return nret; -} - -int bcf_sr_next_line(bcf_srs_t *files) -{ - if ( !files->targets_als ) - return _reader_next_line(files); - - while (1) - { - int i, ret = _reader_next_line(files); - if ( !ret ) return ret; - - for (i=0; inreaders; i++) - if ( files->has_line[i] ) break; - - if ( _regions_match_alleles(files->targets, files->targets_als-1, files->readers[i].buffer[0]) ) return ret; - - // Check if there are more duplicate lines in the buffers. If not, return this line as if it - // matched the targets, even if there is a type mismatch - for (i=0; inreaders; i++) - { - if ( !files->has_line[i] ) continue; - if ( files->readers[i].nbuffer==0 || files->readers[i].buffer[1]->pos!=files->readers[i].buffer[0]->pos ) continue; - break; - } - if ( i==files->nreaders ) return ret; // no more lines left, output even if target alleles are not of the same type - } -} - -static void bcf_sr_seek_start(bcf_srs_t *readers) -{ - bcf_sr_regions_t *reg = readers->regions; - int i; - for (i=0; inseqs; i++) - reg->regs[i].creg = -1; - reg->iseq = 0; -} - - -int bcf_sr_seek(bcf_srs_t *readers, const char *seq, int pos) -{ - if ( !seq && !pos ) - { - // seek to start - bcf_sr_seek_start(readers); - return 0; - } - - bcf_sr_regions_overlap(readers->regions, seq, pos, pos); - int i, nret = 0; - for (i=0; inreaders; i++) - { - nret += _reader_seek(&readers->readers[i],seq,pos,MAX_CSI_COOR-1); - } - return nret; -} - -int bcf_sr_set_samples(bcf_srs_t *files, const char *fname, int is_file) -{ - int i, j, nsmpl, free_smpl = 0; - char **smpl = NULL; - - void *exclude = (fname[0]=='^') ? khash_str2int_init() : NULL; - if ( exclude || strcmp("-",fname) ) // "-" stands for all samples - { - smpl = hts_readlist(fname, is_file, &nsmpl); - if ( !smpl ) - { - fprintf(stderr,"Could not read the file: \"%s\"\n", fname); - return 0; - } - if ( exclude ) - { - for (i=0; ireaders[0].header->samples; // intersection of all samples - nsmpl = bcf_hdr_nsamples(files->readers[0].header); - } - - files->samples = NULL; - files->n_smpl = 0; - for (i=0; inreaders; j++) - { - if ( bcf_hdr_id2int(files->readers[j].header, BCF_DT_SAMPLE, smpl[i])<0 ) break; - n_isec++; - } - if ( n_isec!=files->nreaders ) - { - fprintf(stderr,"Warning: The sample \"%s\" was not found in %s, skipping\n", smpl[i], files->readers[n_isec].fname); - continue; - } - - files->samples = (char**) realloc(files->samples, (files->n_smpl+1)*sizeof(const char*)); - files->samples[files->n_smpl++] = strdup(smpl[i]); - } - - if ( exclude ) khash_str2int_destroy(exclude); - if ( free_smpl ) - { - for (i=0; in_smpl ) - { - if ( files->nreaders>1 ) - fprintf(stderr,"No samples in common.\n"); - return 0; - } - for (i=0; inreaders; i++) - { - bcf_sr_t *reader = &files->readers[i]; - reader->samples = (int*) malloc(sizeof(int)*files->n_smpl); - reader->n_smpl = files->n_smpl; - for (j=0; jn_smpl; j++) - reader->samples[j] = bcf_hdr_id2int(reader->header, BCF_DT_SAMPLE, files->samples[j]); - } - return 1; -} - -// Add a new region into a list sorted by start,end. On input the coordinates -// are 1-based, stored 0-based, inclusive. -static void _regions_add(bcf_sr_regions_t *reg, const char *chr, int start, int end) -{ - if ( start==-1 && end==-1 ) - { - start = 0; end = MAX_CSI_COOR-1; - } - else - { - start--; end--; // store 0-based coordinates - } - - if ( !reg->seq_hash ) - reg->seq_hash = khash_str2int_init(); - - int iseq; - if ( khash_str2int_get(reg->seq_hash, chr, &iseq)<0 ) - { - // the chromosome block does not exist - iseq = reg->nseqs++; - reg->seq_names = (char**) realloc(reg->seq_names,sizeof(char*)*reg->nseqs); - reg->regs = (region_t*) realloc(reg->regs,sizeof(region_t)*reg->nseqs); - memset(®->regs[reg->nseqs-1],0,sizeof(region_t)); - reg->seq_names[iseq] = strdup(chr); - reg->regs[iseq].creg = -1; - khash_str2int_set(reg->seq_hash,reg->seq_names[iseq],iseq); - } - - region_t *creg = ®->regs[iseq]; - - // the regions may not be sorted on input: binary search - int i, min = 0, max = creg->nregs - 1; - while ( min<=max ) - { - i = (max+min)/2; - if ( start < creg->regs[i].start ) max = i - 1; - else if ( start > creg->regs[i].start ) min = i + 1; - else break; - } - if ( min>max || creg->regs[i].start!=start || creg->regs[i].end!=end ) - { - // no such region, insert a new one just after max - hts_expand(region1_t,creg->nregs+1,creg->mregs,creg->regs); - if ( ++max < creg->nregs ) - memmove(&creg->regs[max+1],&creg->regs[max],(creg->nregs - max)*sizeof(region1_t)); - creg->regs[max].start = start; - creg->regs[max].end = end; - creg->nregs++; - } -} - -// File name or a list of genomic locations. If file name, NULL is returned. -static bcf_sr_regions_t *_regions_init_string(const char *str) -{ - bcf_sr_regions_t *reg = (bcf_sr_regions_t *) calloc(1, sizeof(bcf_sr_regions_t)); - reg->start = reg->end = -1; - reg->prev_start = reg->prev_seq = -1; - - kstring_t tmp = {0,0,0}; - const char *sp = str, *ep = str; - int from, to; - while ( 1 ) - { - while ( *ep && *ep!=',' && *ep!=':' ) ep++; - tmp.l = 0; - kputsn(sp,ep-sp,&tmp); - if ( *ep==':' ) - { - sp = ep+1; - from = strtol(sp,(char**)&ep,10); - if ( sp==ep ) - { - fprintf(stderr,"[%s:%d %s] Could not parse the region(s): %s\n", __FILE__,__LINE__,__FUNCTION__,str); - free(reg); free(tmp.s); return NULL; - } - if ( !*ep || *ep==',' ) - { - _regions_add(reg, tmp.s, from, from); - sp = ep; - continue; - } - if ( *ep!='-' ) - { - fprintf(stderr,"[%s:%d %s] Could not parse the region(s): %s\n", __FILE__,__LINE__,__FUNCTION__,str); - free(reg); free(tmp.s); return NULL; - } - ep++; - sp = ep; - to = strtol(sp,(char**)&ep,10); - if ( *ep && *ep!=',' ) - { - fprintf(stderr,"[%s:%d %s] Could not parse the region(s): %s\n", __FILE__,__LINE__,__FUNCTION__,str); - free(reg); free(tmp.s); return NULL; - } - if ( sp==ep ) to = MAX_CSI_COOR-1; - _regions_add(reg, tmp.s, from, to); - if ( !*ep ) break; - sp = ep; - } - else - { - if ( tmp.l ) _regions_add(reg, tmp.s, -1, -1); - if ( !*ep ) break; - sp = ++ep; - } - } - free(tmp.s); - return reg; -} - -// ichr,ifrom,ito are 0-based; -// returns -1 on error, 0 if the line is a comment line, 1 on success -static int _regions_parse_line(char *line, int ichr,int ifrom,int ito, char **chr,char **chr_end,int *from,int *to) -{ - *chr_end = NULL; - - if ( line[0]=='#' ) return 0; - - int k,l; // index of the start and end column of the tab-delimited file - if ( ifrom <= ito ) - k = ifrom, l = ito; - else - l = ifrom, k = ito; - - int i; - char *se = line, *ss = NULL; // start and end - char *tmp; - for (i=0; i<=k && *se; i++) - { - ss = i==0 ? se++ : ++se; - while (*se && *se!='\t') se++; - } - if ( i<=k ) return -1; - if ( k==l ) - { - *from = *to = strtol(ss, &tmp, 10); - if ( tmp==ss ) return -1; - } - else - { - if ( k==ifrom ) - *from = strtol(ss, &tmp, 10); - else - *to = strtol(ss, &tmp, 10); - if ( ss==tmp ) return -1; - - for (i=k; i0 ) ss = ++se; - while (*se && *se!='\t') se++; - } - if ( i<=ichr ) return -1; - *chr_end = se; - *chr = ss; - return 1; -} - -bcf_sr_regions_t *bcf_sr_regions_init(const char *regions, int is_file, int ichr, int ifrom, int ito) -{ - bcf_sr_regions_t *reg; - if ( !is_file ) return _regions_init_string(regions); - - reg = (bcf_sr_regions_t *) calloc(1, sizeof(bcf_sr_regions_t)); - reg->start = reg->end = -1; - reg->prev_start = reg->prev_seq = -1; - - reg->file = hts_open(regions, "rb"); - if ( !reg->file ) - { - fprintf(stderr,"[%s:%d %s] Could not open file: %s\n", __FILE__,__LINE__,__FUNCTION__,regions); - free(reg); - return NULL; - } - - reg->tbx = tbx_index_load(regions); - if ( !reg->tbx ) - { - int len = strlen(regions); - int is_bed = strcasecmp(".bed",regions+len-4) ? 0 : 1; - if ( !is_bed && !strcasecmp(".bed.gz",regions+len-7) ) is_bed = 1; - - if ( reg->file->format.format==vcf ) ito = 1; - - // read the whole file, tabix index is not present - while ( hts_getline(reg->file, KS_SEP_LINE, ®->line) > 0 ) - { - char *chr, *chr_end; - int from, to, ret; - ret = _regions_parse_line(reg->line.s, ichr,ifrom,abs(ito), &chr,&chr_end,&from,&to); - if ( ret < 0 ) - { - if ( ito<0 ) - ret = _regions_parse_line(reg->line.s, ichr,ifrom,ifrom, &chr,&chr_end,&from,&to); - if ( ret<0 ) - { - fprintf(stderr,"[%s:%d] Could not parse the file %s, using the columns %d,%d[,%d]\n", __FILE__,__LINE__,regions,ichr+1,ifrom+1,ito+1); - hts_close(reg->file); reg->file = NULL; free(reg); - return NULL; - } - } - if ( !ret ) continue; - if ( is_bed ) from++; - *chr_end = 0; - _regions_add(reg, chr, from, to); - *chr_end = '\t'; - } - hts_close(reg->file); reg->file = NULL; - if ( !reg->nseqs ) { free(reg); return NULL; } - return reg; - } - - reg->seq_names = (char**) tbx_seqnames(reg->tbx, ®->nseqs); - if ( !reg->seq_hash ) - reg->seq_hash = khash_str2int_init(); - int i; - for (i=0; inseqs; i++) - { - khash_str2int_set(reg->seq_hash,reg->seq_names[i],i); - } - reg->fname = strdup(regions); - reg->is_bin = 1; - return reg; -} - -void bcf_sr_regions_destroy(bcf_sr_regions_t *reg) -{ - int i; - free(reg->fname); - if ( reg->itr ) tbx_itr_destroy(reg->itr); - if ( reg->tbx ) tbx_destroy(reg->tbx); - if ( reg->file ) hts_close(reg->file); - if ( reg->als ) free(reg->als); - if ( reg->als_str.s ) free(reg->als_str.s); - free(reg->line.s); - if ( reg->regs ) - { - // free only in-memory names, tbx names are const - for (i=0; inseqs; i++) - { - free(reg->seq_names[i]); - free(reg->regs[i].regs); - } - } - free(reg->regs); - free(reg->seq_names); - khash_str2int_destroy(reg->seq_hash); - free(reg); -} - -int bcf_sr_regions_seek(bcf_sr_regions_t *reg, const char *seq) -{ - reg->iseq = reg->start = reg->end = -1; - if ( khash_str2int_get(reg->seq_hash, seq, ®->iseq) < 0 ) return -1; // sequence seq not in regions - - // using in-memory regions - if ( reg->regs ) - { - reg->regs[reg->iseq].creg = -1; - return 0; - } - - // reading regions from tabix - if ( reg->itr ) tbx_itr_destroy(reg->itr); - reg->itr = tbx_itr_querys(reg->tbx, seq); - if ( reg->itr ) return 0; - - return -1; -} - -int bcf_sr_regions_next(bcf_sr_regions_t *reg) -{ - if ( reg->iseq<0 ) return -1; - reg->start = reg->end = -1; - reg->nals = 0; - - // using in-memory regions - if ( reg->regs ) - { - while ( reg->iseq < reg->nseqs ) - { - reg->regs[reg->iseq].creg++; - if ( reg->regs[reg->iseq].creg < reg->regs[reg->iseq].nregs ) break; - reg->iseq++; - } - if ( reg->iseq >= reg->nseqs ) { reg->iseq = -1; return -1; } // no more regions left - region1_t *creg = ®->regs[reg->iseq].regs[reg->regs[reg->iseq].creg]; - reg->start = creg->start; - reg->end = creg->end; - return 0; - } - - // reading from tabix - char *chr, *chr_end; - int ichr = 0, ifrom = 1, ito = 2, is_bed = 0, from, to; - if ( reg->tbx ) - { - ichr = reg->tbx->conf.sc-1; - ifrom = reg->tbx->conf.bc-1; - ito = reg->tbx->conf.ec-1; - if ( ito<0 ) ito = ifrom; - is_bed = reg->tbx->conf.preset==TBX_UCSC ? 1 : 0; - } - - int ret = 0; - while ( !ret ) - { - if ( reg->itr ) - { - // tabix index present, reading a chromosome block - ret = tbx_itr_next(reg->file, reg->tbx, reg->itr, ®->line); - if ( ret<0 ) { reg->iseq = -1; return -1; } - } - else - { - if ( reg->is_bin ) - { - // Waited for seek which never came. Reopen in text mode and stream - // through the regions, otherwise hts_getline would fail - hts_close(reg->file); - reg->file = hts_open(reg->fname, "r"); - if ( !reg->file ) - { - fprintf(stderr,"[%s:%d %s] Could not open file: %s\n", __FILE__,__LINE__,__FUNCTION__,reg->fname); - reg->file = NULL; - bcf_sr_regions_destroy(reg); - return -1; - } - reg->is_bin = 0; - } - - // tabix index absent, reading the whole file - ret = hts_getline(reg->file, KS_SEP_LINE, ®->line); - if ( ret<0 ) { reg->iseq = -1; return -1; } - } - ret = _regions_parse_line(reg->line.s, ichr,ifrom,ito, &chr,&chr_end,&from,&to); - if ( ret<0 ) - { - fprintf(stderr,"[%s:%d] Could not parse the file %s, using the columns %d,%d,%d\n", __FILE__,__LINE__,reg->fname,ichr+1,ifrom+1,ito+1); - return -1; - } - } - if ( is_bed ) from++; - - *chr_end = 0; - if ( khash_str2int_get(reg->seq_hash, chr, ®->iseq)<0 ) - { - fprintf(stderr,"Broken tabix index? The sequence \"%s\" not in dictionary [%s]\n", chr,reg->line.s); - exit(1); - } - *chr_end = '\t'; - - reg->start = from - 1; - reg->end = to - 1; - return 0; -} - -static int _regions_match_alleles(bcf_sr_regions_t *reg, int als_idx, bcf1_t *rec) -{ - int i = 0, max_len = 0; - if ( !reg->nals ) - { - char *ss = reg->line.s; - while ( inals = 1; - while ( *se && *se!='\t' ) - { - if ( *se==',' ) reg->nals++; - se++; - } - ks_resize(®->als_str, se-ss+1+reg->nals); - reg->als_str.l = 0; - hts_expand(char*,reg->nals,reg->mals,reg->als); - reg->nals = 0; - - se = ss; - while ( *(++se) ) - { - if ( *se=='\t' ) break; - if ( *se!=',' ) continue; - reg->als[reg->nals] = ®->als_str.s[reg->als_str.l]; - kputsn(ss,se-ss,®->als_str); - if ( ®->als_str.s[reg->als_str.l] - reg->als[reg->nals] > max_len ) max_len = ®->als_str.s[reg->als_str.l] - reg->als[reg->nals]; - reg->als_str.l++; - reg->nals++; - ss = ++se; - } - reg->als[reg->nals] = ®->als_str.s[reg->als_str.l]; - kputsn(ss,se-ss,®->als_str); - if ( ®->als_str.s[reg->als_str.l] - reg->als[reg->nals] > max_len ) max_len = ®->als_str.s[reg->als_str.l] - reg->als[reg->nals]; - reg->nals++; - reg->als_type = max_len > 1 ? VCF_INDEL : VCF_SNP; // this is a simplified check, see vcf.c:bcf_set_variant_types - } - int type = bcf_get_variant_types(rec); - if ( reg->als_type & VCF_INDEL ) - return type & VCF_INDEL ? 1 : 0; - return !(type & VCF_INDEL) ? 1 : 0; -} - -int bcf_sr_regions_overlap(bcf_sr_regions_t *reg, const char *seq, int start, int end) -{ - int iseq; - if ( khash_str2int_get(reg->seq_hash, seq, &iseq)<0 ) return -1; // no such sequence - - if ( reg->prev_seq==-1 || iseq!=reg->prev_seq || reg->prev_start > start ) // new chromosome or after a seek - { - // flush regions left on previous chromosome - if ( reg->missed_reg_handler && reg->prev_seq!=-1 && reg->iseq!=-1 ) - bcf_sr_regions_flush(reg); - - bcf_sr_regions_seek(reg, seq); - reg->start = reg->end = -1; - } - if ( reg->prev_seq==iseq && reg->iseq!=iseq ) return -2; // no more regions on this chromosome - reg->prev_seq = reg->iseq; - reg->prev_start = start; - - while ( iseq==reg->iseq && reg->end < start ) - { - if ( bcf_sr_regions_next(reg) < 0 ) return -2; // no more regions left - if ( reg->iseq != iseq ) return -1; // does not overlap any regions - if ( reg->missed_reg_handler && reg->end < start ) reg->missed_reg_handler(reg, reg->missed_reg_data); - } - if ( reg->start <= end ) return 0; // region overlap - return -1; // no overlap -} - -void bcf_sr_regions_flush(bcf_sr_regions_t *reg) -{ - if ( !reg->missed_reg_handler || reg->prev_seq==-1 ) return; - while ( !bcf_sr_regions_next(reg) ) reg->missed_reg_handler(reg, reg->missed_reg_data); - return; -} - diff --git a/htslib/tabix.1 b/htslib/tabix.1 deleted file mode 100644 index 55c0ebb..0000000 --- a/htslib/tabix.1 +++ /dev/null @@ -1,180 +0,0 @@ -.TH tabix 1 "3 February 2015" "htslib-1.2.1" "Bioinformatics tools" -.SH NAME -.PP -bgzip \- Block compression/decompression utility -.PP -tabix \- Generic indexer for TAB-delimited genome position files -.\" -.\" Copyright (C) 2009-2011 Broad Institute. -.\" -.\" Author: Heng Li -.\" -.\" 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. -.\" -.SH SYNOPSIS -.PP -.B bgzip -.RB [ -cdhB ] -.RB [ -b -.IR virtualOffset ] -.RB [ -s -.IR size ] -.RI [ file ] -.PP -.B tabix -.RB [ -0lf ] -.RB [ -p -gff|bed|sam|vcf] -.RB [ -s -.IR seqCol ] -.RB [ -b -.IR begCol ] -.RB [ -e -.IR endCol ] -.RB [ -S -.IR lineSkip ] -.RB [ -c -.IR metaChar ] -.I in.tab.bgz -.RI [ "region1 " [ "region2 " [ ... "]]]" - -.SH DESCRIPTION -.PP -Tabix indexes a TAB-delimited genome position file -.I in.tab.bgz -and creates an index file ( -.I in.tab.bgz.tbi -or -.I in.tab.bgz.csi -) when -.I region -is absent from the command-line. The input data file must be position -sorted and compressed by -.B bgzip -which has a -.BR gzip (1) -like interface. After indexing, tabix is able to quickly retrieve data -lines overlapping -.I regions -specified in the format "chr:beginPos-endPos". Fast data retrieval also -works over network if URI is given as a file name and in this case the -index file will be downloaded if it is not present locally. - -.SH INDEXING OPTIONS -.TP 10 -.B -0, --zero-based -Specify that the position in the data file is 0-based (e.g. UCSC files) -rather than 1-based. -.TP -.BI "-b, --begin " INT -Column of start chromosomal position. [4] -.TP -.BI "-c, --comment " CHAR -Skip lines started with character CHAR. [#] -.TP -.BI "-C, --csi" -Skip lines started with character CHAR. [#] -.TP -.BI "-e, --end " INT -Column of end chromosomal position. The end column can be the same as the -start column. [5] -.TP -.B "-f, --force " -Force to overwrite the index file if it is present. -.TP -.BI "-m, --min-shift" INT -set minimal interval size for CSI indices to 2^INT [14] -.TP -.BI "-p, --preset " STR -Input format for indexing. Valid values are: gff, bed, sam, vcf. -This option should not be applied together with any of -.BR -s ", " -b ", " -e ", " -c " and " -0 ; -it is not used for data retrieval because this setting is stored in -the index file. [gff] -.TP -.BI "-s, --sequence " INT -Column of sequence name. Option -.BR -s ", " -b ", " -e ", " -S ", " -c " and " -0 -are all stored in the index file and thus not used in data retrieval. [1] -.TP -.BI "-S, --skip-lines " INT -Skip first INT lines in the data file. [0] - -.SH QUERYING AND OTHER OPTIONS -.TP -.B "-h, --print-header " -Print also the header/meta lines. -.TP -.B "-H, --only-header " -Print only the header/meta lines. -.TP -.B "-i, --file-info " -Print file format info. -.TP -.B "-l, --list-chroms " -List the sequence names stored in the index file. -.TP -.B "-r, --reheader " FILE -Replace the header with the content of FILE -.TP -.B "-R, --regions " FILE -Restrict to regions listed in the FILE. The FILE can be BED file (requires .bed, .bed.gz, .bed.bgz -file name extension) or a TAB-delimited file with CHROM, POS, and, optionally, -POS_TO columns, where positions are 1-based and inclusive. When this option is in use, the input -file may not be sorted. -regions. -.TP -.B "-T, --targets" FILE -Similar to -.B -R -but the entire input will be read sequentially and regions not listed in FILE will be skipped. -.PP -.SH EXAMPLE -(grep ^"#" in.gff; grep -v ^"#" in.gff | sort -k1,1 -k4,4n) | bgzip > sorted.gff.gz; - -tabix -p gff sorted.gff.gz; - -tabix sorted.gff.gz chr1:10,000,000-20,000,000; - -.SH NOTES -It is straightforward to achieve overlap queries using the standard -B-tree index (with or without binning) implemented in all SQL databases, -or the R-tree index in PostgreSQL and Oracle. But there are still many -reasons to use tabix. Firstly, tabix directly works with a lot of widely -used TAB-delimited formats such as GFF/GTF and BED. We do not need to -design database schema or specialized binary formats. Data do not need -to be duplicated in different formats, either. Secondly, tabix works on -compressed data files while most SQL databases do not. The GenCode -annotation GTF can be compressed down to 4%. Thirdly, tabix is -fast. The same indexing algorithm is known to work efficiently for an -alignment with a few billion short reads. SQL databases probably cannot -easily handle data at this scale. Last but not the least, tabix supports -remote data retrieval. One can put the data file and the index at an FTP -or HTTP server, and other users or even web services will be able to get -a slice without downloading the entire file. - -.SH AUTHOR -.PP -Tabix was written by Heng Li. The BGZF library was originally -implemented by Bob Handsaker and modified by Heng Li for remote file -access and in-memory caching. - -.SH SEE ALSO -.PP -.BR samtools (1) diff --git a/htslib/tabix.c b/htslib/tabix.c deleted file mode 100644 index 2f6cfea..0000000 --- a/htslib/tabix.c +++ /dev/null @@ -1,519 +0,0 @@ -/* tabix.c -- Generic indexer for TAB-delimited genome position files. - - Copyright (C) 2009-2011 Broad Institute. - Copyright (C) 2010-2012, 2014 Genome Research Ltd. - - Author: Heng Li - -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. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "htslib/tbx.h" -#include "htslib/sam.h" -#include "htslib/vcf.h" -#include "htslib/kseq.h" -#include "htslib/bgzf.h" -#include "htslib/hts.h" -#include "htslib/regidx.h" - -typedef struct -{ - char *regions_fname, *targets_fname; - int print_header, header_only; -} -args_t; - -static void error(const char *format, ...) -{ - va_list ap; - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - exit(EXIT_FAILURE); -} - -#define IS_GFF (1<<0) -#define IS_BED (1<<1) -#define IS_SAM (1<<2) -#define IS_VCF (1<<3) -#define IS_BCF (1<<4) -#define IS_BAM (1<<5) -#define IS_CRAM (1<<6) -#define IS_TXT (IS_GFF|IS_BED|IS_SAM|IS_VCF) - -int file_type(const char *fname) -{ - int l = strlen(fname); - int strcasecmp(const char *s1, const char *s2); - if (l>=7 && strcasecmp(fname+l-7, ".gff.gz") == 0) return IS_GFF; - else if (l>=7 && strcasecmp(fname+l-7, ".bed.gz") == 0) return IS_BED; - else if (l>=7 && strcasecmp(fname+l-7, ".sam.gz") == 0) return IS_SAM; - else if (l>=7 && strcasecmp(fname+l-7, ".vcf.gz") == 0) return IS_VCF; - else if (l>=4 && strcasecmp(fname+l-4, ".bcf") == 0) return IS_BCF; - else if (l>=4 && strcasecmp(fname+l-4, ".bam") == 0) return IS_BAM; - else if (l>=4 && strcasecmp(fname+l-5, ".cram") == 0) return IS_CRAM; - - htsFile *fp = hts_open(fname,"r"); - enum htsExactFormat format = fp->format.format; - hts_close(fp); - if ( format == bcf ) return IS_BCF; - if ( format == bam ) return IS_BAM; - if ( format == cram ) return IS_CRAM; - if ( format == vcf ) return IS_VCF; - - return 0; -} - -static char **parse_regions(char *regions_fname, char **argv, int argc, int *nregs) -{ - kstring_t str = {0,0,0}; - int iseq = 0, ireg = 0; - char **regs = NULL; - *nregs = argc; - - if ( regions_fname ) - { - // improve me: this is a too heavy machinery for parsing regions... - - regidx_t *idx = regidx_init(regions_fname, NULL, NULL, 0, NULL); - if ( !idx ) error("Could not read %s\n", regions_fname); - - (*nregs) += regidx_nregs(idx); - regs = (char**) malloc(sizeof(char*)*(*nregs)); - - int nseq; - char **seqs = regidx_seq_names(idx, &nseq); - for (iseq=0; iseqformat; - - regidx_t *reg_idx = NULL; - if ( args->targets_fname ) - { - reg_idx = regidx_init(args->targets_fname, NULL, NULL, 0, NULL); - if ( !reg_idx ) error("Could not read %s\n", args->targets_fname); - } - - if ( format == bcf ) - { - htsFile *out = hts_open("-","w"); - if ( !out ) error("Could not open stdout\n", fname); - hts_idx_t *idx = bcf_index_load(fname); - if ( !idx ) error("Could not load .csi index of %s\n", fname); - bcf_hdr_t *hdr = bcf_hdr_read(fp); - if ( !hdr ) error("Could not read the header: %s\n", fname); - if ( args->print_header ) - bcf_hdr_write(out,hdr); - if ( !args->header_only ) - { - bcf1_t *rec = bcf_init(); - for (i=0; i=0 ) - { - if ( reg_idx && !regidx_overlap(reg_idx, bcf_seqname(hdr,rec),rec->pos,rec->pos+rec->rlen-1, NULL) ) continue; - bcf_write(out,hdr,rec); - } - tbx_itr_destroy(itr); - } - bcf_destroy(rec); - } - if ( hts_close(out) ) error("hts_close returned non-zero status for stdout\n"); - bcf_hdr_destroy(hdr); - hts_idx_destroy(idx); - } - else if ( format==vcf || format==sam || format==unknown_format ) - { - tbx_t *tbx = tbx_index_load(fname); - if ( !tbx ) error("Could not load .tbi/.csi index of %s\n", fname); - kstring_t str = {0,0,0}; - if ( args->print_header ) - { - while ( hts_getline(fp, KS_SEP_LINE, &str) >= 0 ) - { - if ( !str.l || str.s[0]!=tbx->conf.meta_char ) break; - puts(str.s); - } - } - if ( !args->header_only ) - { - int nseq; - const char **seq = NULL; - if ( reg_idx ) seq = tbx_seqnames(tbx, &nseq); - for (i=0; i= 0) - { - if ( reg_idx && !regidx_overlap(reg_idx,seq[itr->curr_tid],itr->curr_beg,itr->curr_end, NULL) ) continue; - puts(str.s); - } - tbx_itr_destroy(itr); - } - free(seq); - } - free(str.s); - tbx_destroy(tbx); - } - else if ( format==bam ) - error("Please use \"samtools view\" for querying BAM files.\n"); - - if ( reg_idx ) regidx_destroy(reg_idx); - if ( hts_close(fp) ) error("hts_close returned non-zero status: %s\n", fname); - - for (i=0; iblock_length ) return -1; - - char *buffer = fp->uncompressed_block; - int skip_until = 0; - - // Skip the header: find out the position of the data block - if ( buffer[0]==conf->meta_char ) - { - skip_until = 1; - while (1) - { - if ( buffer[skip_until]=='\n' ) - { - skip_until++; - if ( skip_until>=fp->block_length ) - { - if ( bgzf_read_block(fp) != 0 || !fp->block_length ) error("FIXME: No body in the file: %s\n", fname); - skip_until = 0; - } - // The header has finished - if ( buffer[skip_until]!=conf->meta_char ) break; - } - skip_until++; - if ( skip_until>=fp->block_length ) - { - if (bgzf_read_block(fp) != 0 || !fp->block_length) error("FIXME: No body in the file: %s\n", fname); - skip_until = 0; - } - } - } - - // Output the new header - FILE *hdr = fopen(header,"r"); - if ( !hdr ) error("%s: %s", header,strerror(errno)); - int page_size = getpagesize(); - char *buf = valloc(page_size); - BGZF *bgzf_out = bgzf_dopen(fileno(stdout), "w"); - ssize_t nread; - while ( (nread=fread(buf,1,page_size-1,hdr))>0 ) - { - if ( nreaderrcode); - } - if ( fclose(hdr) ) error("close failed: %s\n", header); - - // Output all remainig data read with the header block - if ( fp->block_length - skip_until > 0 ) - { - if (bgzf_write(bgzf_out, buffer+skip_until, fp->block_length-skip_until) < 0) error("Error: %d\n",fp->errcode); - } - if (bgzf_flush(bgzf_out) < 0) error("Error: %d\n",bgzf_out->errcode); - - while (1) - { - nread = bgzf_raw_read(fp, buf, page_size); - if ( nread<=0 ) break; - - int count = bgzf_raw_write(bgzf_out, buf, nread); - if (count != nread) error("Write failed, wrote %d instead of %d bytes.\n", count,(int)nread); - } - if (bgzf_close(bgzf_out) < 0) error("Error: %d\n",bgzf_out->errcode); - if (bgzf_close(fp) < 0) error("Error: %d\n",fp->errcode); - } - else - error("todo: reheader BCF, BAM\n"); // BCF is difficult, records contain pointers to the header. - return 0; -} - -static int usage(void) -{ - fprintf(stderr, "\n"); - fprintf(stderr, "Version: %s\n", hts_version()); - fprintf(stderr, "Usage: tabix [OPTIONS] [FILE] [REGION [...]]\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "Indexing Options:\n"); - fprintf(stderr, " -0, --zero-based coordinates are zero-based\n"); - fprintf(stderr, " -b, --begin INT column number for region start [4]\n"); - fprintf(stderr, " -c, --comment CHAR skip comment lines starting with CHAR [null]\n"); - fprintf(stderr, " -C, --csi generate CSI index for VCF (default is TBI)\n"); - fprintf(stderr, " -e, --end INT column number for region end (if no end, set INT to -b) [5]\n"); - fprintf(stderr, " -f, --force overwrite existing index without asking\n"); - fprintf(stderr, " -m, --min-shift INT set minimal interval size for CSI indices to 2^INT [14]\n"); - fprintf(stderr, " -p, --preset STR gff, bed, sam, vcf\n"); - fprintf(stderr, " -s, --sequence INT column number for sequence names (suppressed by -p) [1]\n"); - fprintf(stderr, " -S, --skip-lines INT skip first INT lines [0]\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "Querying and other options:\n"); - fprintf(stderr, " -h, --print-header print also the header lines\n"); - fprintf(stderr, " -H, --only-header print only the header lines\n"); - fprintf(stderr, " -l, --list-chroms list chromosome names\n"); - fprintf(stderr, " -r, --reheader FILE replace the header with the content of FILE\n"); - fprintf(stderr, " -R, --regions FILE restrict to regions listed in the file\n"); - fprintf(stderr, " -T, --targets FILE similar to -R but streams rather than index-jumps\n"); - fprintf(stderr, "\n"); - return 1; -} - -int main(int argc, char *argv[]) -{ - int c, min_shift = 0, is_force = 0, list_chroms = 0, do_csi = 0; - tbx_conf_t conf = tbx_conf_gff, *conf_ptr = NULL; - char *reheader = NULL; - args_t args; - memset(&args,0,sizeof(args_t)); - - static struct option loptions[] = - { - {"help",0,0,'h'}, - {"regions",1,0,'R'}, - {"targets",1,0,'T'}, - {"csi",0,0,'C'}, - {"zero-based",0,0,'0'}, - {"print-header",0,0,'h'}, - {"only-header",0,0,'H'}, - {"begin",1,0,'b'}, - {"comment",1,0,'c'}, - {"end",1,0,'e'}, - {"force",0,0,'f'}, - {"preset",1,0,'p'}, - {"sequence",1,0,'s'}, - {"skip-lines",1,0,'S'}, - {"list-chroms",0,0,'l'}, - {"reheader",1,0,'r'}, - {0,0,0,0} - }; - - while ((c = getopt_long(argc, argv, "hH?0b:c:e:fm:p:s:S:lr:CR:T:", loptions,NULL)) >= 0) - { - switch (c) - { - case 'R': args.regions_fname = optarg; break; - case 'T': args.targets_fname = optarg; break; - case 'C': do_csi = 1; break; - case 'r': reheader = optarg; break; - case 'h': args.print_header = 1; break; - case 'H': args.header_only = 1; break; - case 'l': list_chroms = 1; break; - case '0': conf.preset |= TBX_UCSC; break; - case 'b': conf.bc = atoi(optarg); break; - case 'e': conf.ec = atoi(optarg); break; - case 'c': conf.meta_char = *optarg; break; - case 'f': is_force = 1; break; - case 'm': min_shift = atoi(optarg); break; - case 'p': - if (strcmp(optarg, "gff") == 0) conf_ptr = &tbx_conf_gff; - else if (strcmp(optarg, "bed") == 0) conf_ptr = &tbx_conf_bed; - else if (strcmp(optarg, "sam") == 0) conf_ptr = &tbx_conf_sam; - else if (strcmp(optarg, "vcf") == 0) conf_ptr = &tbx_conf_vcf; - else if (strcmp(optarg, "bcf") == 0) ; // bcf is autodetected, preset is not needed - else if (strcmp(optarg, "bam") == 0) ; // same as bcf - else error("The preset string not recognised: '%s'\n", optarg); - break; - case 's': conf.sc = atoi(optarg); break; - case 'S': conf.line_skip = atoi(optarg); break; - default: return usage(); - } - } - - if ( optind==argc ) return usage(); - - if ( list_chroms ) - return query_chroms(argv[optind]); - - if ( argc > optind+1 || args.header_only || args.regions_fname || args.targets_fname ) - { - int nregs = 0; - char **regs = NULL; - if ( !args.header_only ) - regs = parse_regions(args.regions_fname, argv+optind+1, argc-optind-1, &nregs); - return query_regions(&args, argv[optind], regs, nregs); - } - - char *fname = argv[optind]; - int ftype = file_type(fname); - if ( !conf_ptr ) // no preset given - { - if ( ftype==IS_GFF ) conf_ptr = &tbx_conf_gff; - else if ( ftype==IS_BED ) conf_ptr = &tbx_conf_bed; - else if ( ftype==IS_SAM ) conf_ptr = &tbx_conf_sam; - else if ( ftype==IS_VCF ) - { - conf_ptr = &tbx_conf_vcf; - if ( !min_shift && do_csi ) min_shift = 14; - } - else if ( ftype==IS_BCF ) - { - if ( !min_shift ) min_shift = 14; - } - else if ( ftype==IS_BAM ) - { - if ( !min_shift ) min_shift = 14; - } - } - if ( do_csi ) - { - if ( !min_shift ) min_shift = 14; - min_shift *= do_csi; // positive for CSIv2, negative for CSIv1 - } - if ( min_shift!=0 && !do_csi ) do_csi = 1; - - if ( reheader ) - return reheader_file(fname, reheader, ftype, conf_ptr); - - if ( conf_ptr ) - conf = *conf_ptr; - - char *suffix = ".tbi"; - if ( do_csi ) suffix = ".csi"; - else if ( ftype==IS_BAM ) suffix = ".bai"; - else if ( ftype==IS_CRAM ) suffix = ".crai"; - - char *idx_fname = calloc(strlen(fname) + 5, 1); - strcat(strcpy(idx_fname, fname), suffix); - - struct stat stat_tbi, stat_file; - if ( !is_force && stat(idx_fname, &stat_tbi)==0 ) - { - // Before complaining about existing index, check if the VCF file isn't - // newer. This is a common source of errors, people tend not to notice - // that tabix failed - stat(fname, &stat_file); - if ( stat_file.st_mtime <= stat_tbi.st_mtime ) - error("[tabix] the index file exists. Please use '-f' to overwrite.\n"); - } - free(idx_fname); - - if ( ftype==IS_CRAM ) - { - if ( bam_index_build(fname, min_shift)!=0 ) error("bam_index_build failed: %s\n", fname); - return 0; - } - else if ( do_csi ) - { - if ( ftype==IS_BCF ) - { - if ( bcf_index_build(fname, min_shift)!=0 ) error("bcf_index_build failed: %s\n", fname); - return 0; - } - if ( ftype==IS_BAM ) - { - if ( bam_index_build(fname, min_shift)!=0 ) error("bam_index_build failed: %s\n", fname); - return 0; - } - if ( tbx_index_build(fname, min_shift, &conf)!=0 ) error("tbx_index_build failed: %s\n", fname); - return 0; - } - else // TBI index - { - if ( tbx_index_build(fname, min_shift, &conf) ) error("tbx_index_build failed: %s\n", fname); - return 0; - } - return 0; -} diff --git a/htslib/tbx.c b/htslib/tbx.c deleted file mode 100644 index a82f195..0000000 --- a/htslib/tbx.c +++ /dev/null @@ -1,320 +0,0 @@ -/* tbx.c -- tabix API functions. - - Copyright (C) 2009, 2010, 2012-2014 Genome Research Ltd. - Copyright (C) 2010-2012 Broad Institute. - - Author: Heng Li - -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. */ - -#include -#include -#include -#include -#include -#include "htslib/tbx.h" -#include "htslib/bgzf.h" - -#include "htslib/khash.h" -KHASH_DECLARE(s2i, kh_cstr_t, int64_t) - -tbx_conf_t tbx_conf_gff = { 0, 1, 4, 5, '#', 0 }; -tbx_conf_t tbx_conf_bed = { TBX_UCSC, 1, 2, 3, '#', 0 }; -tbx_conf_t tbx_conf_psltbl = { TBX_UCSC, 15, 17, 18, '#', 0 }; -tbx_conf_t tbx_conf_sam = { TBX_SAM, 3, 4, 0, '@', 0 }; -tbx_conf_t tbx_conf_vcf = { TBX_VCF, 1, 2, 0, '#', 0 }; - -typedef struct { - int64_t beg, end; - char *ss, *se; - int tid; -} tbx_intv_t; - -static inline int get_tid(tbx_t *tbx, const char *ss, int is_add) -{ - khint_t k; - khash_t(s2i) *d; - if (tbx->dict == 0) tbx->dict = kh_init(s2i); - d = (khash_t(s2i)*)tbx->dict; - if (is_add) { - int absent; - k = kh_put(s2i, d, ss, &absent); - if (absent) { - kh_key(d, k) = strdup(ss); - kh_val(d, k) = kh_size(d) - 1; - } - } else k = kh_get(s2i, d, ss); - return k == kh_end(d)? -1 : kh_val(d, k); -} - -int tbx_name2id(tbx_t *tbx, const char *ss) -{ - return get_tid(tbx, ss, 0); -} - -int tbx_parse1(const tbx_conf_t *conf, int len, char *line, tbx_intv_t *intv) -{ - int i, b = 0, id = 1, ncols = 0; - char *s; - intv->ss = intv->se = 0; intv->beg = intv->end = -1; - for (i = 0; i <= len; ++i) { - if (line[i] == '\t' || line[i] == 0) { - ++ncols; - if (id == conf->sc) { - intv->ss = line + b; intv->se = line + i; - } else if (id == conf->bc) { - // here ->beg is 0-based. - intv->beg = intv->end = strtol(line + b, &s, 0); - if ( s==line+b ) return -1; // expected int - if (!(conf->preset&TBX_UCSC)) --intv->beg; - else ++intv->end; - if (intv->beg < 0) intv->beg = 0; - if (intv->end < 1) intv->end = 1; - } else { - if ((conf->preset&0xffff) == TBX_GENERIC) { - if (id == conf->ec) - { - intv->end = strtol(line + b, &s, 0); - if ( s==line+b ) return -1; // expected int - } - } else if ((conf->preset&0xffff) == TBX_SAM) { - if (id == 6) { // CIGAR - int l = 0, op; - char *t; - for (s = line + b; s < line + i;) { - long x = strtol(s, &t, 10); - op = toupper(*t); - if (op == 'M' || op == 'D' || op == 'N') l += x; - s = t + 1; - } - if (l == 0) l = 1; - intv->end = intv->beg + l; - } - } else if ((conf->preset&0xffff) == TBX_VCF) { - if (id == 4) { - if (b < i) intv->end = intv->beg + (i - b); - } else if (id == 8) { // look for "END=" - int c = line[i]; - line[i] = 0; - s = strstr(line + b, "END="); - if (s == line + b) s += 4; - else if (s) { - s = strstr(line + b, ";END="); - if (s) s += 5; - } - if (s) intv->end = strtol(s, &s, 0); - line[i] = c; - } - } - } - b = i + 1; - ++id; - } - } - if (intv->ss == 0 || intv->se == 0 || intv->beg < 0 || intv->end < 0) return -1; - return 0; -} - -static inline int get_intv(tbx_t *tbx, kstring_t *str, tbx_intv_t *intv, int is_add) -{ - if (tbx_parse1(&tbx->conf, str->l, str->s, intv) == 0) { - int c = *intv->se; - *intv->se = '\0'; intv->tid = get_tid(tbx, intv->ss, is_add); *intv->se = c; - return (intv->tid >= 0 && intv->beg >= 0 && intv->end >= 0)? 0 : -1; - } else { - char *type = NULL; - switch (tbx->conf.preset&0xffff) - { - case TBX_SAM: type = "TBX_SAM"; break; - case TBX_VCF: type = "TBX_VCF"; break; - case TBX_UCSC: type = "TBX_UCSC"; break; - default: type = "TBX_GENERIC"; break; - } - fprintf(stderr, "[E::%s] failed to parse %s, was wrong -p [type] used?\nThe offending line was: \"%s\"\n", __func__, type, str->s); - return -1; - } -} - -int tbx_readrec(BGZF *fp, void *tbxv, void *sv, int *tid, int *beg, int *end) -{ - tbx_t *tbx = (tbx_t *) tbxv; - kstring_t *s = (kstring_t *) sv; - int ret; - if ((ret = bgzf_getline(fp, '\n', s)) >= 0) { - tbx_intv_t intv; - get_intv(tbx, s, &intv, 0); - *tid = intv.tid; *beg = intv.beg; *end = intv.end; - } - return ret; -} - -void tbx_set_meta(tbx_t *tbx) -{ - int i, l = 0, l_nm; - uint32_t x[7]; - char **name; - uint8_t *meta; - khint_t k; - khash_t(s2i) *d = (khash_t(s2i)*)tbx->dict; - - memcpy(x, &tbx->conf, 24); - name = (char**)malloc(sizeof(char*) * kh_size(d)); - for (k = kh_begin(d), l = 0; k != kh_end(d); ++k) { - if (!kh_exist(d, k)) continue; - name[kh_val(d, k)] = (char*)kh_key(d, k); - l += strlen(kh_key(d, k)) + 1; // +1 to include '\0' - } - l_nm = x[6] = l; - meta = (uint8_t*)malloc(l_nm + 28); - if (ed_is_big()) - for (i = 0; i < 7; ++i) - x[i] = ed_swap_4(x[i]); - memcpy(meta, x, 28); - for (l = 28, i = 0; i < (int)kh_size(d); ++i) { - int x = strlen(name[i]) + 1; - memcpy(meta + l, name[i], x); - l += x; - } - free(name); - hts_idx_set_meta(tbx->idx, l, meta, 0); -} - -tbx_t *tbx_index(BGZF *fp, int min_shift, const tbx_conf_t *conf) -{ - tbx_t *tbx; - kstring_t str; - int ret, first = 0, n_lvls, fmt; - int64_t lineno = 0; - uint64_t last_off = 0; - tbx_intv_t intv; - - str.s = 0; str.l = str.m = 0; - tbx = (tbx_t*)calloc(1, sizeof(tbx_t)); - tbx->conf = *conf; - if (min_shift > 0) n_lvls = (TBX_MAX_SHIFT - min_shift + 2) / 3, fmt = HTS_FMT_CSI; - else min_shift = 14, n_lvls = 5, fmt = HTS_FMT_TBI; - while ((ret = bgzf_getline(fp, '\n', &str)) >= 0) { - ++lineno; - if (lineno <= tbx->conf.line_skip || str.s[0] == tbx->conf.meta_char) { - last_off = bgzf_tell(fp); - continue; - } - if (first == 0) { - tbx->idx = hts_idx_init(0, fmt, last_off, min_shift, n_lvls); - first = 1; - } - get_intv(tbx, &str, &intv, 1); - ret = hts_idx_push(tbx->idx, intv.tid, intv.beg, intv.end, bgzf_tell(fp), 1); - if (ret < 0) - { - free(str.s); - tbx_destroy(tbx); - return NULL; - } - } - if ( !tbx->idx ) tbx->idx = hts_idx_init(0, fmt, last_off, min_shift, n_lvls); // empty file - if ( !tbx->dict ) tbx->dict = kh_init(s2i); - hts_idx_finish(tbx->idx, bgzf_tell(fp)); - tbx_set_meta(tbx); - free(str.s); - return tbx; -} - -void tbx_destroy(tbx_t *tbx) -{ - khash_t(s2i) *d = (khash_t(s2i)*)tbx->dict; - if (d != NULL) - { - khint_t k; - for (k = kh_begin(d); k != kh_end(d); ++k) - if (kh_exist(d, k)) free((char*)kh_key(d, k)); - } - hts_idx_destroy(tbx->idx); - kh_destroy(s2i, d); - free(tbx); -} - -int tbx_index_build(const char *fn, int min_shift, const tbx_conf_t *conf) -{ - tbx_t *tbx; - BGZF *fp; - if ( bgzf_is_bgzf(fn)!=1 ) { fprintf(stderr,"Not a BGZF file: %s\n", fn); return -1; } - if ((fp = bgzf_open(fn, "r")) == 0) return -1; - if ( !fp->is_compressed ) { bgzf_close(fp); return -1; } - tbx = tbx_index(fp, min_shift, conf); - bgzf_close(fp); - if ( !tbx ) return -1; - hts_idx_save(tbx->idx, fn, min_shift > 0? HTS_FMT_CSI : HTS_FMT_TBI); - tbx_destroy(tbx); - return 0; -} - -tbx_t *tbx_index_load(const char *fn) -{ - tbx_t *tbx; - uint8_t *meta; - char *nm, *p; - uint32_t x[7]; - int l_meta, l_nm; - tbx = (tbx_t*)calloc(1, sizeof(tbx_t)); - tbx->idx = hts_idx_load(fn, HTS_FMT_TBI); - if ( !tbx->idx ) - { - free(tbx); - return NULL; - } - meta = hts_idx_get_meta(tbx->idx, &l_meta); - if ( !meta ) - { - free(tbx); - return NULL; - } - memcpy(x, meta, 28); - memcpy(&tbx->conf, x, 24); - p = nm = (char*)meta + 28; - l_nm = x[6]; - for (; p - nm < l_nm; p += strlen(p) + 1) get_tid(tbx, p, 1); - return tbx; -} - -const char **tbx_seqnames(tbx_t *tbx, int *n) -{ - khash_t(s2i) *d = (khash_t(s2i)*)tbx->dict; - if (d == NULL) - { - *n = 0; - return NULL; - } - int tid, m = kh_size(d); - const char **names = (const char**) calloc(m,sizeof(const char*)); - khint_t k; - for (k=kh_begin(d); kSheila -GCTAGCTCAGAAAAAAAAAA diff --git a/htslib/test/auxf.fa.fai b/htslib/test/auxf.fa.fai deleted file mode 100644 index f3cdedb..0000000 --- a/htslib/test/auxf.fa.fai +++ /dev/null @@ -1 +0,0 @@ -Sheila 20 8 20 21 diff --git a/htslib/test/c1#bounds.sam b/htslib/test/c1#bounds.sam deleted file mode 100644 index 181dbe0..0000000 --- a/htslib/test/c1#bounds.sam +++ /dev/null @@ -1,4 +0,0 @@ -@SQ SN:c1 LN:10 -s0 0 c1 1 0 10M * 0 0 AACCGCGGTT ********** -s1 0 c1 2 0 10M * 0 0 ACCGCGGTTC ********** -s2 0 c1 3 0 10M * 0 0 CCGCGGTTCG ********** diff --git a/htslib/test/c1#clip.sam b/htslib/test/c1#clip.sam deleted file mode 100644 index fd073f0..0000000 --- a/htslib/test/c1#clip.sam +++ /dev/null @@ -1,8 +0,0 @@ -@SQ SN:c1 LN:10 -s0a 0 c1 1 0 10M * 0 0 AACCGCGGTT ********** -s0A 0 c1 1 0 3M4N3M * 0 0 AACGTT ****** -s0b 0 c1 2 0 1S8M1S * 0 0 AACCGCGGTT ********** -s0B 0 c1 2 0 1H8M1H * 0 0 ACCGCGGT ******** -s0c 0 c1 3 0 2S6M2S * 0 0 AACCGCGGTT ********** -s0c 0 c1 3 0 2S3M2I3M2S * 0 0 AACCGNNCGGTT ************ -s0C 0 c1 3 0 2H6M2H * 0 0 CCGCGG ****** diff --git a/htslib/test/c1#pad1.sam b/htslib/test/c1#pad1.sam deleted file mode 100644 index 54f7a11..0000000 --- a/htslib/test/c1#pad1.sam +++ /dev/null @@ -1,10 +0,0 @@ -@SQ SN:c1 LN:10 -s0a 0 c1 1 0 10M * 0 0 AACCGCGGTT * -s0b 0 c1 1 0 10M * 0 0 AACCGCGGTT * -s0c 0 c1 1 0 10M * 0 0 AACCGCGGTT * -s1 0 c1 1 0 5M6I5M * 0 0 AACCGGTTAACCGGTT * -s2 0 c1 1 0 5M1P4I1P5M * 0 0 AACCGTTAACGGTT * -s3 0 c1 1 0 5M3I3P5M * 0 0 AACCGGTTCGGTT * -s4 0 c1 1 0 5M3P3I5M * 0 0 AACCGAACCGGTT * -s5 0 c1 1 0 4M1D2P2I2P1D4M * 0 0 AACCTAGGTT * -s6 0 c1 1 0 2M3D6I3D2M * 0 0 AAGTTAACTT * diff --git a/htslib/test/c1#pad2.sam b/htslib/test/c1#pad2.sam deleted file mode 100644 index 87c1977..0000000 --- a/htslib/test/c1#pad2.sam +++ /dev/null @@ -1,14 +0,0 @@ -@SQ SN:c1 LN:50 -s0a 0 c1 1 0 10M * 0 0 AACCGCGGTT * -s0b 0 c1 1 0 10M * 0 0 AACCGCGGTT * -s0c 0 c1 1 0 10M * 0 0 AACCGCGGTT * -s0d 0 c1 1 0 10M * 0 0 AACCGCGGTT * -s1 0 c1 1 0 5M6I5M * 0 0 AACCGGTTAACCGGTT * -s2 0 c1 1 0 5M1P4I1P5M * 0 0 AACCGTTAACGGTT * -s3 0 c1 1 0 5M3I3P5M * 0 0 AACCGGTTCGGTT * -s4 0 c1 1 0 5M3P3I5M * 0 0 AACCGAACCGGTT * -s5 0 c1 1 0 4M1D2P2I2P1D4M * 0 0 AACCTAGGTT * -s6 0 c1 1 0 2M3D6I3D2M * 0 0 AAGTTAACTT * -s7 0 c1 1 0 4M2D4M * 0 0 AACCGGTT * -s8 0 c1 1 0 5D2P2I2P5D * 0 0 TA * -s9 0 c1 5 0 1M2P2I2P * 0 0 GTA * diff --git a/htslib/test/c1#pad3.sam b/htslib/test/c1#pad3.sam deleted file mode 100644 index 757fb2d..0000000 --- a/htslib/test/c1#pad3.sam +++ /dev/null @@ -1,14 +0,0 @@ -@SQ SN:c1 LN:16 -@RG ID:p.sam SM:unknown LB:p.sam -s0a 0 c1 6 0 5I6P5M * 0 0 AACCGCGGTT * RG:Z:p.sam -s0b 0 c1 6 0 5I6P5M * 0 0 AACCGCGGTT * RG:Z:p.sam -s0c 0 c1 6 0 5I6P5M * 0 0 AACCGCGGTT * RG:Z:p.sam -s0d 0 c1 6 0 5I6P5M * 0 0 AACCGCGGTT * RG:Z:p.sam -s1 0 c1 6 0 11I5M * 0 0 AACCGGTTAACCGGTT * RG:Z:p.sam -s2 0 c1 6 0 5I1P4I1P5M * 0 0 AACCGTTAACGGTT * RG:Z:p.sam -s3 0 c1 6 0 8I3P5M * 0 0 AACCGGTTCGGTT * RG:Z:p.sam -s4 0 c1 6 0 5I3P3I5M * 0 0 AACCGAACCGGTT * RG:Z:p.sam -s5 0 c1 6 0 4I3P2I2P1D4M * 0 0 AACCTAGGTT * RG:Z:p.sam -s6 0 c1 6 0 2I3P6I3D2M * 0 0 AAGTTAACTT * RG:Z:p.sam -s7 0 c1 6 0 4I7P1D4M * 0 0 AACCGGTT * RG:Z:p.sam -s8 0 c1 6 0 7P2I2P * 0 0 TA !! RG:Z:p.sam diff --git a/htslib/test/c1.fa b/htslib/test/c1.fa deleted file mode 100644 index 12c54c9..0000000 --- a/htslib/test/c1.fa +++ /dev/null @@ -1,2 +0,0 @@ ->c1 -AACCGCGGTT diff --git a/htslib/test/c1.fa.fai b/htslib/test/c1.fa.fai deleted file mode 100644 index fc35bec..0000000 --- a/htslib/test/c1.fa.fai +++ /dev/null @@ -1 +0,0 @@ -c1 10 4 10 11 diff --git a/htslib/test/ce#1.sam b/htslib/test/ce#1.sam deleted file mode 100644 index a712fe3..0000000 --- a/htslib/test/ce#1.sam +++ /dev/null @@ -1,2 +0,0 @@ -@SQ SN:CHROMOSOME_I LN:15072423 -SRR065390.14978392 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 AS:i:-18 XS:i:-18 YT:Z:UU diff --git a/htslib/test/ce#2.sam b/htslib/test/ce#2.sam deleted file mode 100644 index 23273fa..0000000 --- a/htslib/test/ce#2.sam +++ /dev/null @@ -1,3 +0,0 @@ -@SQ SN:CHROMOSOME_I LN:15072423 -SRR065390.14978392 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -SRR065390.921023 16 CHROMOSOME_I 3 12 100M * 0 0 CTAAGCCTAAATCTAAGCCTAACCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA ###############################################???88:;98768700000<>:BBA?BBAB?BBBBBBBB>B>BB::;?:00000 XG:i:0 XM:i:3 XN:i:0 XO:i:0 AS:i:-6 XS:i:-13 YT:Z:UU diff --git a/htslib/test/ce#5.sam b/htslib/test/ce#5.sam deleted file mode 100644 index 8b09549..0000000 --- a/htslib/test/ce#5.sam +++ /dev/null @@ -1,11 +0,0 @@ -@SQ SN:CHROMOSOME_I LN:15072423 -@SQ SN:CHROMOSOME_II LN:15279345 -@SQ SN:CHROMOSOME_III LN:13783700 -@SQ SN:CHROMOSOME_IV LN:17493793 -@SQ SN:CHROMOSOME_V LN:20924149 -I 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -II.14978392 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -III 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -IV 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -V 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -VI 2048 CHROMOSOME_I 2 1 27M100000D73M * 0 0 ACTAAGCCTAAGCCTAAGCCTAAGCCAATTATCGATTTCTGAAAAAATTATCGAATTTTCTAGAAATTTTGCAAATTTTTTCATAAAATTATCGATTTTA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC diff --git a/htslib/test/ce#5b.sam b/htslib/test/ce#5b.sam deleted file mode 100644 index f40fd38..0000000 --- a/htslib/test/ce#5b.sam +++ /dev/null @@ -1,12 +0,0 @@ -@SQ SN:CHROMOSOME_I LN:15072423 -@SQ SN:CHROMOSOME_II LN:15279345 -@SQ SN:CHROMOSOME_III LN:13783700 -@SQ SN:CHROMOSOME_IV LN:17493793 -@SQ SN:CHROMOSOME_V LN:20924149 -I 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -II.14978392 16 CHROMOSOME_II 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -III 16 CHROMOSOME_III 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -IV 16 CHROMOSOME_IV 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -V 16 CHROMOSOME_V 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 XS:i:-18 AS:i:-18 YT:Z:UU -VI 0 CHROMOSOME_V 10 1 7S20M1D23M10I30M10S * 0 0 AGCCTAAGCCTAAGCCTAAGCCTAAGCTAAGCCTAAGCCTAAGCCTAAGCTTTTTTTTTTCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA * -VI 256 CHROMOSOME_V 10 1 7S20M1D23M10I30M10S * 0 0 * * diff --git a/htslib/test/ce#large_seq.sam b/htslib/test/ce#large_seq.sam deleted file mode 100644 index 86d21b8..0000000 --- a/htslib/test/ce#large_seq.sam +++ /dev/null @@ -1,3 +0,0 @@ -@SQ SN:CHROMOSOME_I LN:15072423 -S1 0 CHROMOSOME_I 1 255 36M4I33M2D18M4I13M3I5M2I7M1I8M4I30M1D20M5D25M4D63M1D31M2I13M4I83M3I36M4D77M2D8M2D5M2D14M2I5M4D1M1D27M5I3M4D47M2D5M4D7M1I70M3D42M4I59M5I2M2I13M4D3M5D6M4I5M4I58M1I10M3I57M1I15M5D57M4I10M1I19M4D9M3I27M4D11M3I9M4I21M4I62M4I51M1I8M3D23M1I5M4I24M2D1M5I4M4D14M3D63M5I1M2I20M4D10M5D7M2D22M4I22M2I9M3I46M5I1M4D12M5D8M3D17M5D149M1D20M1D61M1I14M2I38M4D9M4I62M1I8M1I55M3D62M4I8M4I50M5D19M3D11M2I53M4D7M2D32M2D57M3I48M2D11M4D15M1I23M2D16M5I7M1I3M1D27M5D4M1I18M1D79M5D1M5D8M5D20M1D22M5D24M2D30M5D43M1I17M1I22M2D18M3D1M4I15M1I4M3D1M3I22M5D62M4D19M3I3M5I7M2I110M5D7M2I9M4I28M2D3M4I17M1D1M5D103M5D45M3I32M3I37M1D20M1D22M5I6M3D101M1D20M3D6M1D15M5I14M5D118M1I3M1D3M5I37M4D10M4D10M1D10M2I48M1D2M3D7M4I60M1I38M4I16M3I20M4I30M2D3M2D15M3D35M1D7M1D1M1I44M4D6M5I1M2D2M3I83M3I3M1D18M2I1M5D65M2I13M3I25M1I10M2I23M2D12M1D10M1I1M4D8M3D27M5I9M1D11M3I69M4D115M1D28M5D38M4I5M5D21M4I11M5D43M4I70M5I38M1I27M2D8M3I2M2I10M1D94M5D17M2D9M4I21M1D2M5I8M2D32M4D52M1I37M3D7M5I64M1I31M2I21M2I11M4I46M4I5M5D22M1D55M4I18M3D102M5I72M4I4M1I7M5D19M1D40M2D101M3I2M1I36M2I26M4D5M2I29M5I13M5I20M3I9M2I8M2I143M1I10M4D25M5I41M1I9M5D12M2I8M4I11M2D66M3I1M5D77M5D4M2I49M4I15M3D11M4D17M5I143M2I29M4I4M3I4M3I19M3I44M5D108M3D12M2D19M1I13M3I18M5I2M1I16M1D4M3I318M4I39M4I21M1I24M3D32M2D70M5D11M5D34M4D46M4D3M3D32M3D54M2I8M1D65M5I53M5I27M3D6M1I34M5I34M5I37M4D1M5D10M5I68M1I8M4I6M1I14M5I6M5I26M3D50M2D2M5D22M4I34M1D24M1I28M4D67M2D43M4D17M4I57M3D35M5I66M1D45M2D27M3D28M3I32M4D24M1I16M2I3M3D6M4I33M4I12M2I19M2D5M1D119M3I64M5D29M3I87M2D4M4D42M4D3M4I76M2D19M2I51M2D18M1D2M4D21M4D11M1I6M4D135M1D10M1D120M1I102M4D37M5I8M2I51M4D50M2D14M2D32M5I2M5I36M4D59M3I87M1I21M2D14M1D27M5I3M5D4M4I90M1I37M5I19M3D12M1I21M5D51M4D3M4I8M4D28M4I76M2D5M3I13M4I214M4I18M1I22M2D12M2D123M5D9M1I9M2I17M1I7M5I70M2I34M1D13M5I2M2I69M4D129M5I64M2D15M2D9M1I56M5D73M1D45M5I55M3I26M2I24M4I31M2D29M5I2M2D80M3I28M1D19M4I1M5D4M3D118M3D36M2D32M3I1M2D35M2D27M1I32M2I7M3I51M1I51M3D21M4I4M5I40M1I27M4I55M1I16M4D50M1D107M5D96M1I4M1I68M4I4M4D4M1D78M1I5M2I73M1D7M5I21M4I8M5D71M5D19M5D20M2D7M5D27M1D35M5D38M4I83M1D33M4D54M4I19M1I3M2I11M4I4M1D10M5I24M3D1M2D12M4D8M5D1M2I22M2D39M2D101M4I4M4I26M5I13M3I26M4D33M5D10M2I13M3D19M3D18M2I27M2D3M2I2M4D33M3D55M4I6M3I129M1I14M3D41M4I3M5I81M5D9M5D12M2I5M3D1M5D40M5D2M1D21M1D4M2I2M4I12M4I22M3I105M4I1M5I14M3D19M5I6M4I13M2I10M2D11M4I34M2I7M2D32M3I13M5D23M4D8M3D59M5I11M3I53M1D19M2I122M2D15M2D108M5I1M4D14M5I11M4D12M1I19M2I1M3D7M3D4M2I1M5I24M2I15M1I36M3I16M3D25M5I3M4I22M5D6M4I22M3I77M5I43M1D13M3D30M5I19M4I29M2I86M2I23M4I9M3I7M1I14M3I3M4I39M1I77M2D5M4D58M1D1M1D4M5D57M5I22M3I84M1D19M3I14M5D21M4I10M5D17M1I4M4I63M2I23M4I23M4D32M5D40M5I29M4I126M3I2M1D105M4I49M1I32M4D29M5D31M1D15M5I6M5I21M4I56M2I6M3D11M4D3M1D28M4D78M1D5M1D20M3I67M1D2M2I7M5I2M4D14M5D4M3D27M2I18M5D20M5D58M3D19M4D36M5I133M3I75M4I39M3D28M3D158M4D8M2I12M5I68M5I18M2D17M4I52M1D90M5I17M5D47M4D3M2I15M3I4M1D17M4D1M3D23M1I84M5I1M4D10M1I11M3D78M2I3M4I2M5D13M5D21M2D24M1I89M4I2M3D59M4D22M5I14M4I16M2I53M1I13M1I81M4D11M3I29M2I170M2I43M5I116M3I1M5D1M2I20M5I51M1I17M3D2M4I5M3I17M5D36M5D21M3D4M2I85M2I18M2D42M3I48M3I7M4I11M5I17M4I3M3D45M1I93M1D38M5I8M2D41M3I56M2I35M5D59M5D36M3D9M5D23M4I12M4I14M1D38M5D6M1D2M1D2M3D126M1I9M2D31M5I81M4I7M5D19M5I25M3D222M2D29M2D105M1D39M1I4M2D7M2D67M3D32M5D3M3D36M1I50M2I117M1I75M1D24M2I80M4I48M1I11M4D4M2D55M4I21M5I29M1D51M3D16M5I43M3I17M3I6M4D99M3D17M3D22M3I18M5I35M3I28M1I23M4D9M1I46M3I16M4D18M3I32M3I16M1I60M4D76M3D1M3D9M2D28M2D25M1D8M1D1M5D56M3I8M4I33M1D15M2I83M5D60M5I99M4D90M4I69M4D41M1I4M4I1M3I50M3I38M2D80M2D56M4D33M3I8M2I11M5I15M3I42M1I135M2D29M1I34M3I13M1I74M1I10M5I48M4I8M2I74M4D6M3I43M2D3M4D99M2D20M3D35M5I12M1I4M2D25M5I68M3D57M3I24M5D8M5D10M3D84M5I170M3D31M1I9M3I7M2I47M1D31M4D7M4I13M2D7M4I7M2I58M1I81M3D18M5I6M5D68M4I18M1D25M2D1M2I7M4I5M1I14M3I75M2D33M5D17M1I19M2I3M5I5M5D53M3D1M3I33M1D27M5I33M1D93M5D1M3D167M4D38M2I33M3D119M4I43M3I31M3I7M1I77M5I5M2D5M5I24M4D10M4I88M5D47M4I29M4D63M1D11M2I41M3D97M3D13M4D48M3D55M4I3M5D32M1D53M5D13M1D7M2D23M4D131M4D17M2D18M4D4M2D6M1I71M1I29M5I12M3D48M1D45M4I41M1I84M5I84M2D17M5D87M3D88M2D14M5I52M5D62M4I39M2I44M2I26M4I15M4D21M1I8M3I21M4I48M4D34M4D29M4I17M1D18M5I91M1I35M4D4M2I10M4D26M2I4M1I27M4I14M2D11M3I35M5I64M2D86M1I119M5I23M4D27M4I70M5I8M1D12M3D17M3I9M1D77M3D29M1D35M1I37M3D7M4D35M2I13M3I9M2I112M1D19M4I20M4D81M5I129M1D3M4D48M4D31M4I73M5D18M4I8M2D15M5I18M4I33M5I112M3D13M2I26M5I21M3D1M1I63M2D1M3I22M5D5M4I18M2I10M3D7M1I34M3I1M4I2M5D56M3I48M4D13M3I26M5D24M5I7M5I13M4D16M5I44M1D60M1I17M2D18M5I4M2I1M4I4M4D40M5D81M2D19M3D4M1I19M4D10M4I9M5I7M2D51M2D13M4I19M1D57M2D58M3D84M3I2M1I24M1D11M1D3M3I47M2I9M2D5M2D65M1I25M2I35M3I45M3D1M5I13M1I34M3D5M5D2M4D30M2D21M3I6M1I69M4D69M1D9M3I61M4I3M4D16M4D47M3D28M3D14M2I85M2I33M4I9M4I48M4D78M5I73M2I5M1D60M3I31M4D1M5I24M2I32M4I14M2I19M3I5M2D22M2D49M3D5M3D11M2D43M4D4M1D10M1I14M3I3M5I19M5I63M3I4M3D32M4I1M5D18M1D17M4D41M3D25M1I20M3D43M2I21M2I19M3D2M3D17M4D30M5D30M4D9M4D6M3D51M4I58M2D23M2D4M1I19M1I12M2D20M2I1M3I42M2D82M3I3M4D33M2I37M5D65M1I82M4D6M1D54M5D11M5D34M4I7M3I17M5I33M5D38M1I31M5D26M1I16M4D20M2I13M5I23M1I11M1I10M4I4M3I7M3I26M3D30M5D3M4I35M3D1M5D14M4D24M3I23M4I7M1I32M1D29M3I14M1D107M5I6M5I6M4D3M1I41M1I20M2I32M2D1M1I7M1D3M4I7M3D140M3D48M2I4M3I117M2I18M3D4M4D13M1I11M4I27M1I49M1I52M1I5M3I10M4D116M5I7M2D73M1I30M3I27M1D1M1D14M2I40M4I16M4I76M2I43M3D30M1D10M1D43M1D24M3D1M3I16M5D25M4I34M3D50M4D37M5D12M1D38M1D30M4I23M1D14M2I29M1D17M3D3M5I16M1D29M3I3M3D48M3I141M4I32M4D13M5I23M1D26M1I76M4D50M2I11M5I65M4I2M1I37M3D54M4D34M1I17M5I2M1I5M4D8M2I43M1I147M1D8M5I53M2I59M1I14M5I25M5D28M2I56M5D36M2I5M1I27M3D1M2D14M2D37M2D1M1I11M4D55M4I105M5I3M1I9M5I45M4I49M3D75M2D31M5D1M3D3M3I23M4I65M3I19M5D44M5D68M4D11M4D9M5D28M1I20M4I2M3D118M3I10M4D2M5I40M2I32M1D41M1D9M3I30M4I8M2D7M3I9M5D21M1I34M1I22M1D97M3I44M5D13M4I17M2D46M1I99M3D44M3D16M2I20M4I62M4I9M5D32M2D3M1I29M4I13M3D7M1D11M2I40M1I80M2D47M2D21M2I25M4I21M2I11M5D36M4D112M4I42M2D4M5D67M2I43M5D33M4I27M4I25M1I81M1D10M2D6M4I12M3D6M5D11M2I12M4D41M4D21M3D36M1I32M4I58M4I26M2I12M3I6M5D1M3I6M3D21M1I45M1D20M3I18M4D87M2D59M3D3M2D59M5I60M3I17M3I8M5D2M2D13M1I15M1I6M2D55M3D4M2I86M1D10M2D24M4D6M5I51M3I5M3I6M3I27M1D2M2D39M2I55M4D17M4D98M1I63M3I6M2D114M2I23M2D22M2I36M2D24M5I32M3D23M5D5M4D48M1I26M4I9M1D18M3D1M1D7M4D1M3D14M5I34M1D37M1I68M5D30M4I48M5D108M5I37M5I24M5I46M3I19M1I10M4D118M1I3M4I30M2I35M4I8M2I29M5I26M4D11M5D9M5D21M3I38M3I26M1D5M1I52M2I9M3D4M1I31M4I1M5D24M1D3M1I98M2D30M4D8M4I7M5I76M3D19M4I5M3I47M1I26M4I10M5D41M1D79M1D7M3I14M5D53M5D50M5D73M3I86M1D20M3D69M1I33M1I17M4D38M3D19M5D55M3I27M2D6M3I62M3D8M3D33M2I15M5D2M4D34M4D50M2D68M1D64M5I20M5I29M5D71M3I8M1I40M3I9M3I12M2D15M1I2M2I39M4D36M3D38M1I2M5I30M2D26M5D47M5D19M5D13M3I1M4I3M1I10M2I29M4I78M5I37M3I15M5I6M3D83M5D16M5D6M2D9M4I32M4D13M5D22M2I15M1I56M3I23M2I28M3I71M3I67M5I8M3D7M1D16M4D4M1I15M2D6M1I19M4D1M1D37M2D78M4D23M2D14M2D81M1D11M4D12M3D31M3D70M1D8M5D18M5D6M2I27M4I11M5D22M4D78M3I3M1I162M1D94M4D65M1D2M1D28M3I33M1D47M4I125M5I19M5I106M1I10M5D1M5I61M1D37M2D30M5I101M3D9M4D7M4D59M2I31M4D73M1I13M5D36M1I55M2D31M1I34M3D10M5D53M1D27M1D10M3D19M3I58M5D47M2I54M5I27M3D55M1I46M3D53M3D40M5D5M4I87M1D30M2I21M2D18M4I85M5I3M4I8M3D33M2I38M3D6M2I10M1D28M4D61M2D35M2I24M2D13M1D1M4D37M1D39M3D28M4D1M3I32M1D48M2D132M5I17M1D12M1I47M3D46M1D22M1D26M4D38M5I70M5I8M3D108M4D83M1I35M2D7M3I27M4I17M4D16M2D2M5D53M4D8M3D29M4D20M4D42M5I29M1I19M1D19M3D43M4I26M1I10M5D23M5I9M3I22M3I7M5I49M3I9M4D20M1I73M5D25M2I18M2I1M4D2M1I9M1I55M3D45M5D2M2D17M4I53M4I7M5D19M5D9M2I13M2D1M4I42M2I11M4D4M3I23M3I28M3I22M4D2M1I6M3I47M4D15M3I7M2D46M3D81M4D102M4D15M2D11M2D47M4I65M4I54M5D1M3I37M5I21M2D44M1I69M5I10M5D11M1I115M1I5M4I2M2I10M4I19M4I74M3D32M5I22M3D27M5D35M2I14M3D54M3D14M1I9M2I22M3D20M1D12M4D45M4D1M3D77M1I5M1I53M4I18M1D5M5D18M3D30M1I6M4I16M5D9M3D16M5D100M3I79M2D81M3I56M3D2M5D25M5D26M1D46M2I6M2I9M4D10M5I53M2D2M2D92M3D6M3D45M4I28M3I19M3D9M3I10M5I29M3I51M1D12M5I75M5I22M3I21M1D8M1I7M2D2M1I25M3I19M5D29M4I2M4D25M1D2M3D9M5I26M1I65M3I28M3D62M3I51M2I2M4I32M3D10M5D73M5I3M1D7M1I4M2I56M2D93M5I1M5I28M2D22M1D6M2D28M3D23M5I11M4D100M5I90M2D43M1D57M2I17M2I13M3D71M5D9M5I14M4D120M4D15M5I69M5I1M3I53M4I22M3D7M3D61M5I39M1D38M5D80M3I24M1D6M1I10M1I41M5D50M1I30M1D4M4I126M5I4M4D68M1I87M2D24M1D1M4I70M5D13M2D43M2I1M5D79M2I65M3D6M5D108M4I10M3D44M1I23M5I115M2D10M3I6M5I7M2D57M2I5M3I25M3I79M5I23M3D17M1D28M5D58M5D39M4I12M2I72M2I44M1I39M4D36M3D32M2D21M1I96M3D82M2I7M4D102M2I30M2I46M1D14M4I21M1I28M2D44M2I23M4I164M4I10M1I7M5D12M2D115M4D50M3I1M1D22M3I52M1D74M4D8M5I29M5D83M2D37M4I5M2D30M3I91M2I66M4D14M2I30M1D53M4D14M1D47M5D60M1D19M4D2M2D2M4D42M5I29M4D5M3D15M3D20M2I7M5I3M2D57M2I35M5D3M4D20M3D1M5D71M5I12M3I8M1D29M5D14M4D1M4D6M5I1M1I70M1I47M5I52M1D5M2I54M1I177M4I75M3I2M2I3M2D23M1I17M2D57M1D25M1D42M3D29M5I33M1I17M2I42M5I27M5I15M5I12M5D2M5D1M4I81M5I8M4D2M3I16M1D60M5D41M2D47M5I22M5D114M3I32M3I32M2I37M3I13M2I25M5I21M4I13M5D16M1I58M4I67M5D2M2I38M1D12M3I24M4D11M2D1M2D9M1I9M1D31M2I13M4I72M2I4M4D14M3I49M2I10M2D62M1I152M1D13M2D7M2I102M4I23M5I32M5I1M1I26M3D21M1D7M2D36M1D24M4D1M4D46M2D9M1D3M5I94M1D5M2D2M4D1M1D6M3I5M4D24M3I5M4D81M1I11M2I49M3D32M2I26M2D11M4I86M2D32M4D26M1D5M2I19M3D10M3I46M5I101M1I21M2I28M4D17M3I34M5I3M1I7M4D55M3D4M1I37M3I3M3I97M1I44M5I48M2D63M5I61M4I7M1D40M4D2M3D48M5I55M1I6M4I2M4I1M3I22M1I3M2I43M2I6M5D26M1I12M1D6M4D2M4D57M1D30M1D134M4I22M4I153M1I10M4I3M4D36M5D6M2D2M4I8M4D5M2I17M5I13M2D27M4D21M4D25M1D1M2D17M3D52M1D16M2I12M4D121M1I2M1I68M3I19M4I48M4D24M4I8M2D33M2I9M2I90M1I1M5I22M5D1M2I25M2I55M2I15M2D43M4I57M3I14M4D23M2I17M5I20M4I2M4I32M2I37M3I7M5I11M1D24M1I15M2I30M2D27M2D57M2I2M5D29M3D90M2I2M2I48M5I17M3I41M1D3M3I17M1I83M1D13M2I4M2D22M4I136M2D6M3D11M3I38M5I2M2D114M1I13M1D96M2D13M4I2M1I6M2I2M4D75M2I21M5I2M1I12M2D13M2I8M4I4M1D10M5I5M4I16M5D50M4I15M3D18M3I39M5I85M2I49M5I56M2I38M5I126M1D64M3I33M2D1M3I11M5I6M3I60M3D41M4I6M4D10M5D20M2D19M3I61M2D8M4I3M1I56M3D37M3I69M1I3M2D26M3D80M3I20M4D69M3D71M1D24M2I78M2D95M5D12M1D14M3D30M5I14M1D16M3I43M5D18M5D12M4D15M1I27M3I2M3D120M3D77M5I145M4D9M1D22M3D3M5D3M2D18M1D55M4I27M2I22M1I51M3I53M1I37M2D17M5D57M2D27M1D17M2I50M3D53M1D69M4D9M4I135M2I4M3I39M2I15M1D40M1D16M1I41M3D38M3I21M3I16M2I3M4D1M1I45M2D12M3D59M5I43M4I2M1D26M2I1M5D11M4D83M3D15M4D5M4I60M4I2M2I15M3I122M1D4M2I28M2D12M1I44M4D11M1I54M4D5M2I16M1I33M3D17M1I24M1I33M3I58M2D17M4D13M4I6M5D26M5D17M5I8M2I7M4I24M4D44M1D94M1D5M3D32M4I4M2D19M5D63M1D70M1D13M2I67M1I21M5I3M4I35M5I12M1D30M3I29M5I72M4I33M3I43M1D16M4D3M3D7M3I54M3D9M5D46M5D68M3D77M1D29M4D33M3D7M5D46M4D24M5I16M2I5M5D13M3I36M5D2M2D21M3I7M2D11M3I59M2D45M4D29M5D32M1D7M2I44M2I94M3I4M1I20M1D27M5D19M1D7M3I14M3I11M1I5M2I17M3D44M3I28M4I3M2I64M2D28M3D15M5D61M2D74M2I50M4I9M4I57M1D7M5D17M2D4M5D13M2I9M1D29M3D26M2I7M4I5M2I21M1I60M4I123M1D37M2D6M4D27M3I23M1I19M2I10M2I7M3I36M5D50M4I3M5I190M2D74M3I48M1D5M3I29M3D75M3I11M3D77M1D43M2I5M5I17M1D52M4D28M4I14M5D4M5I14M3I16M1D3M5D63M2D8M5I2M5D28M3I43M2D11M2D64M1D9M5D22M1D97M2D29M3I10M5I9M1D118M4I6M4I37M4I137M2I33M5I41M1D23M1D26M3D68M3I14M4D74M2D32M3I5M2I61M5I15M2D44M1D14M1I42M2I27M2I17M2I8M2I19M2D5M4I59M4D4M2I29M5I13M1I92M3I1M5I1M1I31M2I2M5I41M2D27M5I106M1D13M4D29M1D22M1D8M5I2M3D48M5D65M1I73M4I5M1D31M1I7M4I9M5I12M2I36M4I18M5D11M4D109M3D73M2D13M2I62M1D52M5I91M2I3M3D21M2D12M4I27M4D12M1D46M1I39M3I13M4D9M2I1M3I20M5I78M3D72M3D9M5I4M2D24M4I63M2D9M2D15M1I38M5D4M3D7M3D10M2I39M5I34M3I116M1D22M2D18M2D8M5I2M2D100M4D107M3D12M4I1M3I12M3D3M2I11M1I57M1I7M3D45M3I42M4D27M1I80M2D57M5I35M1D6M2I39M2D44M3I14M1I5M2D46M2I66M4D48M1D42M1D30M1D21M2I21M4I4M3I102M5D20M2D16M3D13M5D23M4I9M4I12M1I26M2I171M3I40M2D35M3D2M1I43M1I41M3D32M3D17M3D54M2I39M5I60M1D40M3I34M1D1M2D12M3D22M2I76M4D69M3D38M2D2M3I8M3I26M5I22M3I21M3D47M1D20M1I34M2I8M2D8M5D23M2D45M2I43M5D8M3D1M2I49M2I14M3I45M2I83M3I39M5D283M5D77M4I13M1D25M2D1M3D23M2D26M4D2M2D23M5I55M3D7M5D9M1I3M1I3M4D54M4D23M3I47M2D17M1D8M1I19M1D17M4I23M4I7M3I51M5D77M1D57M2D9M5I31M4D12M3I76M5D14M3I15M4D44M2D11M1D34M3I2M1D13M2D12M2D25M4D59M1I27M3D18M1I2M5I41M3D10M2D1M5D22M3D12M1D57M2I97M3D9M5D12M3I3M5I9M4I33M3D48M1I32M1I1M2D29M5I52M3I11M2D17M1D18M2D198M3I82M2D20M1I31M3I8M5I147M3I52M2I5M2D2M5I6M2I84M3I16M5I45M1D20M5I14M3I118M2I27M4D8M5I20M2I33M2I5M4D26M5D62M1D4M2I22M2I15M1I4M2I2M3D25M3D21M1D95M3D7M2I54M3I1M4I82M5D18M2D3M2D43M5I32M5D8M1I5M1D6M1D8M2I91M4I35M2D2M1D73M3I24M1D19M3D33M2I45M5I13M4I33M5I22M3I13M1I26M4I6M4I44M4D40M2D13M3D17M1I11M4D11M2I7M2D27M2D24M5D36M4D23M3D36M3D34M4I27M2I61M1I57M5D26M1I25M2D75M5D23M4I17M3I8M3D52M5I5M4I9M5I22M3D9M4D55M1I28M1I21M3I12M5D29M5I32M5I18M1D20M4D23M1D7M5I16M3I63M4I13M4I18M2D24M3D4M3D1M3I14M1D20M2I24M2D55M2D56M1D46M3I14M4I59M5I7M4I58M5D28M2D13M3I8M3D43M1D10M2I60M2I31M1I4M1D162M1I13M5I82M4D5M5I69M3I16M1D36M3I2M4D54M2I57M2I39M2I18M4I2M1D65M1I148M1D46M3I17M2I6M5I244M5I26M3I3M2I10M2I23M4D2M4I49M4D6M2I14M4D30M1I29M3D38M5I33M3D84M4D13M5I15M1D14M4D14M3D3M2I44M5D120M2I5M3D12M2I99M2I1M4I35M1D7M3D17M1D16M5I35M4I9M1I105M2D6M5I15M2I3M2D5M1D60M1I149M3I48M4I21M3I21M1I27M1D16M4I26M2I1M5D87M2D40M4D23M2D26M4I32M4D18M5I16M3D8M1I39M1I14M3D16M2I2M5D2M4D20M1D58M1D55M3D22M4D76M5D41M5I27M2I21M5I9M2I43M4I61M3D6M5D32M4I48M1D89M5D61M5D62M4I72M5I8M4D21M4D8M5D53M3I26M4I132M4I10M5D74M3I138M3D13M1I7M1I50M3I3M1D70M3D14M1D39M1I85M2D12M2I59M4D5M3D50M3D5M5I1M1I27M5D52M3I36M4I30M3I35M1D12M2I13M1D63M3D8M4D67M4I2M3I1M3D84M1I48M4D97M3D16M3D55M1I17M2I4M3D56M5D6M4D6M3I11M4D37M1I23M5I9M4D16M4I68M1D40M2D31M3D44M5I65M4D14M5D8M1D27M3D10M4D114M2I26M1I22M3D49M3I5M2D11M3D17M3D13M3I10M2D118M4I14M2I7M3D58M3I10M4I7M5I8M5I4M3I9M1I36M4I5M1I97M1I1M3D20M3I14M4D24M5D58M2I17M5D123M5D2M2I26M4D4M2I11M3I15M1I34M3I29M1D23M2D1M4I3M5I14M4D5M5I12M2I4M1I26M4I6M1D26M3I33M5D13M4D23M4I6M3D5M3I9M3D52M3I72M4I10M1D133M4I36M4D71M5D77M5D31M3D22M2I23M4I71M5I22M3I69M5I35M3D44M3I8M1I24M4I20M4I4M2I46M1D9M2D56M1I30M4I9M1I21M1D1M3I5M4I78M3I4M2D4M4I18M3I13M5D34M1I9M4D17M4I68M3D71M5I88M1I4M5I111M3I4M2I38M1I117M5D32M1D14M3I33M2D11M2D148M1D156M3I6M5I8M3D32M4D23M1D1M2I16M1D13M3D47M2I47M2D5M1D35M3I55M1I45M2I44M4I40M5I23M2I70M2I1M5I1M4I36M2D15M2D5M4D14M5D121M5I1M5I17M2I37M4D5M4D64M2D1M2I19M5I8M3D19M2D19M3D26M5D53M2I25M2D10M4I4M3D80M1I70M2I9M4D54M1D25M3D4M5D14M3D31M1I20M1I129M2D25M1I22M4D4M3D90M5D33M1I13M5I34M3D8M2D1M2D25M5I14M1D31M1D15M2I3M4I11M4I2M5D65M1I14M4D66M4D21M2I15M5I4M2D9M4I44M3D28M1D34M3D47M5I5M1I146M4I47M4I10M2I7M1I120M5D41M2D19M3D2M2I16M2I36M4I74M2I40M1I97M3I3M2D44M3I3M3D79M2D72M2I25M1I38M4I5M3D15M2I37M5I46M2D68M3D9M2D8M4I32M5D4M3I153M5I6M5I3M2D5M1D19M2I21M5I13M5I254M3D47M1D34M5D27M3D10M4I12M4D7M1D12M1I111M5I42M1D55M3I52M4D3M2I66M2D19M3D14M3D1M1D13M1I55M3I170M2I152M4I134M1I1M3I55M5I12M2D4M3I1M4I6M1I72M5D20M5I17M1I34M1I81M4I49M1D1M2I15M3D15M5I60M5I23M1I52M3I13M3D89M2D12M5D15M1I29M3D28M2D56M2D1M5I1M4D79M4I2M5D30M3I17M2I3M5D26M5I5M1I18M5D15M3D5M4D57M2D109M3I13M4I16M5D21M1D10M1D38M5D8M5I19M5I29M1I46M2I32M3D48M5I15M4D56M1D28M4D96M3D39M5I19M5D102M3D5M3D57M2I32M2I25M5I65M2D22M1I58M5I36M1D18M5I70M2D133M4I24M2I14M5I29M1D24M4D27M3D69M1I27M1D42M2I28M2I15M5I9M4I73M5I80M3I35M4I5M4D6M4D21M4D40M5D54M1I135M5D35M2I39M5I76M4I23M5I107M4D13M4D29M5I22M4D22M5I21M5D19M3I9M1I16M4I22M2I68M1I16M5D35M3I2M4I3M5D2M3I18M5I49M3I56M1I63M3D6M5I10M5I25M5D1M5I35M3D59M5D32M3I83M1D2M1D67M1D69M5D11M3I18M2D27M5I98M4D50M1I18M5I58M3I3M5D87M1I107M2I41M2I68M5I34M5I16M3I40M2I38M4D82M5I1M1D11M2I52M5D18M1D60M3D13M1D8M3I37M4D4M1D30M4D110M4I55M5D5M1I4M4D69M5I25M1D37M3D26M4D50M1I7M4I45M3I10M3D76M1D25M3I1M1I44M2I147M1D2M3I132M1D56M2D57M1D8M5I5M1I8M4D31M4I26M2I5M1D8M3I20M3I1M3I4M1D16M1I53M4I60M3I18M2I3M4I7M2I3M1D33M5D45M4D4M4I8M3D47M1I249M1I26M5I15M2D50M5D3M1I17M1I34M5D13M4I37M2D52M2I59M5D152M1I14M3D62M4I8M5I39M4D41M5D64M2D69M4I20M4I49M2D13M3I9M1I34M1D107M1D16M2D4M1D69M5D8M5I49M1D27M5D41M3D69M3D18M5D37M1I1M1I1M5D3M3D35M1I17M2I47M2D42M4D13M4I1M2I27M4D66M5I58M1D2M3D28M2I26M5D5M5I88M2I30M2I74M2I23M4D7M2D9M2I13M3D61M3D13M3D113M4D18M3I33M1I4M2I25M5I21M1D1M5I13M4D53M2D13M4D2M3D12M3I20M5I170M1I14M5I12M1D38M4I6M1D76M4I39M3D22M5I71M4I57M3I35M2D4M3I2M5D13M5D6M4I2M4I36M5D13M4D43M4D88M3D143M5I12M4I57M5I29M1D33M5D2M1D18M3I38M2I71M2I10M5D39M3D18M4D21M5I4M5I11M5D24M1D19M1D8M1I1M4D47M2I67M5I9M1I15M1I6M1I16M2D5M1I48M3D4M3I12M5I6M1I32M5I100M1D9M2I34M4I6M2I12M3I70M1D9M2D3M5D22M3D89M3I11M3I15M4I5M4I19M3I4M1I81M2I4M3I6M3D20M4D1M2I40M5I53M3I24M5I85M1D13M3I11M5I68M5D17M3I13M1I24M5D21M2I6M5I8M4D91M2D5M1D67M5D11M3I51M1D20M4D21M2D4M4I36M3I4M1D29M2I17M2D36M4D7M1I3M2D5M2I82M2I50M2D8M5D41M1D13M4D17M1I33M4I7M2D19M1I9M1D20M3I22M2D22M1I30M3D24M3D8M3D30M4I24M3I10M3D15M2I19M4D12M2I9M1D21M3I40M1I19M4I50M4D26M5I13M3D23M5I20M5D31M4I16M2I9M4D8M1D35M5I49M3I62M1D5M1I2M4D38M3I53M5I22M3D8M3D88M3D141M4I14M5I20M5I6M5I2M3D37M2I82M4I11M3I26M1I40M2D236M1I13M4I70M5D2M4D3M5I32M4I26M5D40M1I2M1D9M1D60M3I30M4I97M4D9M4D15M5I21M5D5M2D2M3D48M1D66M1I40M4I2M4I4M3I26M2I9M2D75M4D56M2D108M4I23M4I7M2D10M3D6M4I8M1D6M1D56M5I12M2D36M5D45M3I2M3D67M1D34M4I6M3I158M5I123M4D63M3D33M1D47M1D43M5I86M2D2M3I74M2I28M2D52M1I63M1D36M3I42M2I12M4I2M4D65M1D22M2D20M4D11M2I4M3D7M4I7M3I39M1I23M2D1M2D1M2I51M5I19M2D5M1I17M3D43M4D4M4I59M5D102M2I48M2I9M1D56M3I6M4I48M3I4M3D36M1I52M5I8M3I13M2D1M4I12M3D56M5D25M5I1M1I47M3D12M5D6M5I46M2I29M3D20M2D5M1I7M2I2M1D8M4D83M2D32M1I36M5D23M1I8M2D20M3D19M3I16M5I1M5I47M3I5M1I55M1I1M5D26M1D16M3D74M5I39M5I3M3D36M3I42M2I11M5I68M2I19M1I25M5I110M1D5M3I86M5D31M2I36M4D19M4D4M5I122M2D18M3D3M3I79M5D14M2D22M1I5M2I14M3D54M2I17M4D76M3D10M3D73M1D6M5I8M3D67M5D140M4I18M2I29M4I27M4D83M3I23M3I25M1D32M2I39M2I8M2I68M4D63M3D36M2D2M5I54M2D28M3D59M3I14M1I12M4D8M3D4M5D7M2D22M4I10M1D99M5I130M4I75M2I47M2I52M4D35M4I8M2I16M5D13M4I80M1D42M1D40M2D18M5D9M3D48M5D28M3I24M2I23M4D77M4D37M4I47M3I3M3I110M2I27M4I5M5D24M5D69M2I30M4D23M4I12M3I3M5I27M1D5M5D21M4I24M4D58M1I14M3D76M5D20M2I49M4I40M3D10M5D42M3I1M5I60M5I8M4D36M4D16M5I31M2I7M2I22M5I3M2I6M2I63M5I35M3D14M4D35M5D14M1D9M3D33M5D145M1I18M4D36M1D61M5D1M3I121M5I173M2I30M5D70M4D17M1D56M3D10M2D13M5I51M5I41M1D21M1D17M4I1M1I8M1I65M5D2M1D2M3I54M3I54M2D2M3I48M4I15M3I6M3I17M3D6M2D64M4I12M3I9M4I4M4I21M3D76M2I47M1I26M1I3M2I70M5I29M4D1M5D22M4D37M1D8M1D1M4I20M1I40M4D22M4I22M3D1M3I13M5D42M5D8M3I1M1I125M4I74M5D13M1D16M4D14M2I17M3I17M1D6M4D7M1D5M5I30M3D15M1I21M4I10M1D3M1I2M3I34M1D8M1D3M3I15M1I23M4D50M1D44M1I48M5D6M1D8M4D1M3D10M5I14M1D6M5D19M2D13M2I15M2D20M2D28M2I95M1I20M5D8M4I65M4I19M1I23M1I50M1I7M2D14M5D30M2D2M4I1M3D135M3D25M2D7M3D1M5I12M4I3M4D1M5I23M3I11M4I48M4I26M5D100M2I69M3D20M4D14M4D12M2D140M1D29M1I2M2I46M2D50M2D44M4I15M4I192M5I11M4D75M5D130M3D19M4D12M1I2M1D60M2D9M2D36M3I17M4I4M1I12M5D40M3D25M1D26M3I19M1D26M1I46M3D12M2I5M1I9M1D46M3I148M4I3M3I95M2D48M4I127M2I7M4I12M2I75M5D28M2I24M1D1M4I18M3D29M1D2M2I37M5D15M5I45M2D6M4I42M5D15M3D73M2D8M3D43M4D1M2D18M3I34M1D5M1I40M4I26M2D22M4D24M3I20M3D58M3I38M2I39M1D11M1D22M1I6M2I1M3I12M1D8M4D9M2I19M4D70M1D3M4D3M1D59M5I3M5D3M1D14M4I6M4D36M3D26M1D13M5I79M2D42M4D31M5I40M1I30M4D2M5D20M5I3M2I18M5I40M5I33M4D47M3D44M2D46M1I22M1I29M5D34M4I33M2D13M4I14M2D52M4I7M1I68M1D15M1I19M1I13M1I17M2D41M5D45M5I2M5I24M4D23M1D60M4D2M3I25M3D6M3I27M5I30M1I54M4I14M5I8M1I25M5I35M4I101M2D17M3D33M5D11M5I17M3D1M2I11M1D11M4I32M4D59M1D7M2I11M3I8M3I3M4D20M4I30M4I10M3I14M5D3M1D3M1D8M2D107M1D40M3I69M4D7M3I39M3I17M5I7M5I104M4D63M2D78M4I76M5I30M5I2M3D8M3D50M5D111M1I9M2D8M2D32M5D5M1D5M3D17M4D16M5D3M5D10M2I16M4I16M2I34M4I24M5D14M2I67M1D2M5I111M2I11M1D64M5I1M2D17M2D34M4I52M5D20M4I120M5D8M4I30M3I10M1D198M3I3M5D57M5I20M5I165M2D38M4D5M1D14M4D91M2D5M3D114M1D4M4I40M3I10M5D61M1I2M1D6M1D26M5I64M2I34M3I10M1I59M4D18M3I29M1D38M3D8M5D11M2D9M1D83M4D14M3I9M4D13M1I15M5D28M4D91M5I9M4I90M5D11M3I19M3I1M5I12M2I15M3I41M4I35M1D33M3I119M3D103M4I15M5D2M4I81M5I16M4D19M3D132M1I6M2I52M1D18M3I8M4I14M5D18M3D41M1D15M2D19M1D4M4D29M2D36M5D66M3D28M3I5M2I44M3I76M5D24M4I20M1D21M3I55M2D34M4D84M1I24M4I54M5I33M1D68M2I20M4I37M4D34M1D75M4D54M2D31M4D6M2I10M2D55M2D28M3I18M2I4M3I22M4I80M5D17M5D15M5D102M3I13M1I16M3D128M2I27M5D19M3D11M4D28M5I15M2D1M5D62M2D39M2D8M5D20M4D17M3D13M3I7M4D3M3D41M4I85M3D48M2D41M3D14M3D4M1I24M4D62M3I58M3I16M4I116M3I58M2I3M2I23M5I45M2D52M1I21M3D11M4I16M5D43M5D55M3I56M2D36M5I40M5I13M1I30M4D129M4I2M5I7M1I18M1I79M3D11M2I7M5I15M5I4M1D12M2D51M2D11M3D22M5I114M3I22M5I12M3D51M3I194M2D4M3I21M2D4M4D22M1D1M5I3M1D34M5D12M2I5M4I10M3D12M4D16M5I34M2D15M4I24M3I42M4I102M4D7M3I133M5D4M4I18M1I56M3I1M3D28M5I2M5I63M1D1M5D1M4I11M2D56M1D25M1D3M1I73M3I10M5D21M4D10M3I11M2I72M3D22M2I49M2I65M4D29M3D49M4I29M4I6M1D19M4I17M3I35M2D41M1I108M1I57M3I21M4D10M3D18M1D56M4D10M2I12M2D9M4D48M2D33M1D5M3D24M2I52M3I10M3I18M2I28M3D9M2D25M4D3M3D14M1I16M4I27M3D99M3D7M3I21M2I20M5D9M5D14M4I45M2I35M3D7M5I2M3D9M3I14M4D52M1I27M4D7M5I25M3I4M1D1M5D18M4D5M4D12M3I64M5D4M3D5M5D95M2I6M2I39M1I10M3I35M4I40M3I63M5D18M2D4M2I20M5D2M1D28M2D2M5I24M1I42M4I11M2I3M2D15M4D11M1D40M4I31M2D33M4D6M2I6M3I29M2I14M3I34M4I12M4D6M1D34M3D24M5D158M4D19M4I17M5I1M3I42M3D5M2I103M3D26M2D3M4I20M3I41M4D15M3I20M1D14M4I12M5D24M1D9M1I24M1D31M2I18M1I31M2I70M2D27M5D6M5I55M3D44M3I2M1D67M4I113M5D33M2D1M2I9M3D20M4D11M4I16M2D11M1D9M5I6M4D5M2I16M4I77M1D70M1D16M1D9M4D180M2I7M5I11M2I12M1D64M5I6M5I7M5I20M3D6M2D42M3I23M5I39M5D1M1D11M1D37M2I10M4D6M5I46M5I23M3I12M4I27M2I157M4I14M1D54M3D138M2I21M3I19M5D1M5I1M1I30M5D17M4I47M3I16M3D12M2I11M5D14M2I43M1D37M1D51M5I12M1I72M4D30M3D12M3D34M1D31M3I38M2I7M5D26M2I4M1D31M1D44M5I9M5D4M5D8M4I121M2I1M3I14M1D11M5I5M4I62M3D48M5I43M4D15M4I44M1D16M5D34M5I38M1D16M4D5M1I1M2D1M1D48M5I35M4D31M2I94M3I52M2I2M5I34M1D25M3I112M5D50M3D8M4D45M5I7M4I10M4I9M5D5M5I11M1I35M3I14M2D26M3I1M4D8M3I10M5D12M3I23M2I35M3D3M4D58M3I17M2I27M3D25M3D15M2I9M3D69M2D34M4I4M2I50M3D26M4D178M3D19M3I14M1I1M2D118M2D24M3D8M5D22M2D5M2I11M4D7M3D4M4D8M3I7M2D23M2D51M2I1M2I8M2I1M5I21M5D95M5I4M3D2M3I18M4I3M2I202M1I3M4D47M5D23M3I56M5I56M5D70M5D13M4D15M1D29M2I6M4D6M1D15M4I114M2D49M2D44M2D49M4I4M1D45M1D34M4I16M4D23M2I18M3I122M1I15M2D4M4D39M5D35M5D19M3I13M2D19M2D26M4D57M5I25M5D19M3I89M5I138M1I61M2I47M3I6M1I34M1D3M3I57M4D2M4D23M3I177M4I3M3I2M2D22M2I22M5I1M2D46M1I64M2D35M1I26M2D9M1I10M4I8M4I2M1I15M3I5M2I68M1D10M4D196M3D18M3I7M2I12M3D11M5I18M5I9M2I45M4D3M2I4M2I93M5I10M3I10M1D14M3I2M4I10M1I32M5D55M2D9M5I1M3I196M3D87M3I73M1I79M1D3M3I3M5D13M3I12M3I20M5I1M3D13M2D94M2I21M1I21M4D51M1D29M2D74M5D2M1D33M2D1M4I39M5I10M1I9M4D1M2D17M2I14M2D35M1I151M3I5M4I16M5I19M2I38M4I13M5I4M4I17M2I36M1I31M5I4M5D61M5D8M4D44M2D59M1I8M2D62M2I2M3I106M5I28M3D23M2I2M4I5M2D22M3I49M5I23M3D10M4I64M2D21M5D13M1D159M2I38M4I24M1D4M5I38M5D15M2D10M4I11M3D6M4I8M3D5M2D16M4D12M2I7M4I6M5I94M4D5M2D15M2D1M5I14M5I64M5D16M4I2M4D1M2I13M5D1M5I13M4I3M3I49M4D29M4D16M5I51M5I13M5I23M2D11M1I45M1I48M2D63M4I27M4I12M4D55M2I21M3D14M3D47M4I87M4I10M4D132M1D35M5D53M2I22M4D97M5I17M4D66M3I17M5D2M1D1M5D10M3I47M1D22M1I38M4I64M1D33M3D5M4D1M4I10M3I30M5I8M1D45M1D33M1I10M3I6M3D5M5D17M4D96M1D41M3I82M5D93M4D16M3I1M3I30M3I12M4I11M2I20M1I38M5I12M2I3M1D31M4I44M1I26M1D72M5I36M5D56M4I1M5D108M3D1M5D26M4D49M1I16M2D78M1I28M1I20M1D115M4I98M4I66M2I26M5D33M3I3M3D33M2I121M5D10M5I38M3I1M3D69M5D43M3I2M1D21M3I1M5I29M3D67M5I42M4D46M3D1M4D5M4I35M5D56M1I45M5D14M4D9M4I76M4I15M4D1M2D25M2I14M2D37M3I27M4I30M4D23M1I1M1D38M5I41M3I23M2D4M5D100M4D38M2D85M2D16M2I42M3D91M2D44M2I25M1D27M2D45M1D38M3I30M5I4M3D1M1I77M1I31M5I4M3D11M4D43M1D34M1D31M4D16M3D43M4I5M1I78M4D27M1I18M1I13M1I21M5D39M4D22M3I42M1D6M1D3M2I13M3D12M3D1M1D13M2D75M4I1M1D11M3I33M4I4M4D15M1I14M5I16M1D85M5D6M1I4M2I24M2I49M2D4M1D48M3D60M3I4M1D61M2I8M1I3M2I4M4D18M1I38M5D15M5D27M3I47M4I6M2D13M3D43M2D132M1I25M4D8M4I17M5D4M5I31M4I27M2I19M5D60M5I15M1I5M3I27M2I90M2I17M3I5M5D120M2I32M3I20M2D36M4I7M3I8M2I2M3I93M2I7M3I24M3I42M5D12M1I17M5D7M2D57M2D10M4D34M1I18M5I22M3I16M2D11M5D45M1D2M3D23M2D83M5I83M5I85M3I11M5I35M4I26M3D1M2D117M4D26M5D5M4I36M2I6M4D27M5D14M2I218M5I1M1D170M4D12M5D13M3D9M4D53M2D48M5D23M5D22M2I43M3D12M4D66M2D2M1D25M1I28M2D69M5I35M4D4M2I24M3I82M1D2M4I28M1I16M2I33M1I3M4D26M5I96M1I77M5D3M1I6M5I42M1I57M4I23M2I28M4D10M5D62M5I35M1D5M5D44M2D39M2I6M5I30M1I45M5D4M2D1M4I33M5D11M1I13M5I62M4D10M1D58M5I18M1D30M5I64M1D22M2I34M5I18M5D69M1I4M1D52M1I18M5D11M4D21M4D16M3I12M4D5M3I116M1I60M4I12M4D101M5D18M4D32M1I19M5I91M3D8M5D7M1D39M4D1M4D71M3I10M3I23M1D96M5I33M1D10M3D54M3D46M3D11M1D37M3I20M4D24M3I4M1D3M2D30M1I6M1D45M3D10M5D9M2D59M5I9M4D9M4D127M4I14M1D11M3D35M2D68M2I16M2I9M4D85M3D9M5I1M5I21M2D16M2I70M4D13M5D7M3I10M1I6M5I88M1I191M2D2M5I11M1I213M5I59M3I34M3D9M5D16M3I31M3D26M4D6M4D7M5I38M1I8M5I101M2I107M1I120M2D7M1D39M2D15M2I39M1D139M2D2M1I39M4I65M4I22M1I12M1I55M5D23M3D63M2D23M4D26M3D23M4I37M5I41M2D66M1D45M3D22M4D44M3I19M5D18M2I61M1D63M4I6M3D67M5D32M5I25M3I125M3D26M5I10M4I31M4D38M5I11M5D15M2I10M2I10M3I75M3D10M2I21M5I12M1I20M2D43M5I76M1D78M1D67M5D1M4D10M4I20M2I51M1D62M5I20M2D69M2I13M5I22M2I23M5D69M1D43M3I21M1D3M4D1M5D43M3I20M2D101M5D2M2I37M1I21M3I13M1D110M5D34M3I7M2D51M1I66M3D1M3I53M5D22M1I11M1I3M3D10M5I11M4D14M5I2M4D2M1D11M2D121M1D58M5I6M2D6M1I6M3D44M4I33M4D4M2D15M4I8M3I118M3D22M3I3M1I21M2I83M5D209M5D9M4D26M5I5M1I6M3I2M5I9M2I60M2I11M3D20M1D36M5I10M5D49M3D49M3I56M5D51M3D36M5D45M4I3M4D97M4D11M5D41M1D63M3I3M5I101M2I6M4I28M4D6M4I190M4I6M3D51M1D9M4I4M5I1M5D31M2I65M3I7M4D4M5D2M1I39M2D7M4D41M2D8M1I8M3I73M4D11M3D45M2I7M4D76M1D22M2I81M3I45M4I5M4I19M2I14M3I6M4D29M3I21M1I16M5I25M3D14M2D23M3D49M5D17M2D54M2I24M5D1M3I12M2D34M5I52M2I51M4D65M2I42M1D99M3I1M3I112M5D70M5D17M4D47M1D39M5I12M4I17M2I1M5I116M5D22M4I16M4D54M1D52M4D1M4I13M3D41M3D13M4D6M3D4M2D20M1D3M1I57M3I13M2D22M5D23M5D9M1I24M5D10M2D37M5D33M2D21M1D5M3I4M3I35M1D5M5I23M1D196M2D109M5D64M4D10M1I21M5I5M4D104M2I33M2D14M1D6M2I26M2D51M1D14M5I62M2D33M1D25M3D1M5D58M5I1M3I14M3I47M2I12M4D63M1I59M4I34M4D1M1D22M2D3M3D44M1D11M1I35M3D9M2D14M1I29M5D23M3I51M4D48M1I9M5I76M2I15M1D76M2D12M5D1M4I16M3I86M3D102M2I10M5D20M3D1M3I15M1D11M2D2M4D1M1D84M2I55M1D29M2D43M4I27M5I77M3I34M2D20M3D66M1D84M3I14M1D47M2I87M2I47M2D24M3I37M1I1M2D12M1I60M5D30M5D10M4D12M2I11M5I10M4I35M1D39M3I10M5I18M4D54M2D76M1D17M2D16M3D9M5I11M5I7M5D18M3D29M3I8M5I26M3D5M5D15M2D15M4I31M3I54M5D85M4D14M5D81M1I43M3D2M1I11M4I2M5I20M2D6M1I40M2I8M4I33M5D13M3D30M3I19M4D81M5I22M5D4M1I9M3I4M1D20M5I38M5D72M4D51M2I46M4D20M5D14M2I23M1I90M5I24M1D14M2D16M5I22M4D15M2I26M1D8M3I35M1I14M3D41M1D3M5D12M5D60M1D71M5I13M2D43M5D16M2I72M5I3M4I4M3D8M4D3M4D23M3I11M4D8M2D29M4I5M1D218M4D61M3I2M5I8M5D36M1I18M3I1M2D43M4I29M1D5M1D8M3I48M2D19M5D77M3I29M2D8M4I16M2I9M2D115M2I3M4I76M4D62M3I3M2I43M3I5M1D5M3I44M5D81M2D86M1I2M4D17M1I24M2D9M1I72M1I80M1D9M4D36M3I28M1D27M1D38M2I2M2I4M5I14M5D40M4D62M5D7M3D36M4I17M1D67M3D1M3D13M1D9M4D36M3D19M3D39M5I11M3D16M4D4M2D32M4I18M5I36M1I30M3D54M4I72M4D31M1D12M3D20M4I100M1I2M4I11M3D16M5D2M1I1M3D41M4I53M2I29M5I2M5D10M3D22M1I41M2D4M3D15M3I10M4D14M5D31M2D32M3I111M3I142M5I22M4D14M2I32M3D32M5D16M1I26M1D18M5I123M3I9M2I29M5I36M5D2M1D18M2D28M4I59M4D11M3I5M5D10M4D34M5I8M5I54M4I1M4I44M2I34M4I51M1D2M4I27M2D27M2D33M1D9M5I38M2I34M5I22M1D73M5D19M3I4M1I16M5I18M5I1M4D37M5D9M1D2M5D124M4D106M1I12M5I7M3D7M2D89M5D20M3D5M1D14M4D60M2I114M3I24M3D12M4D6M4I16M3I29M5I15M4D38M5I5M1I8M1D6M2I31M3I139M2D29M1D30M2I1M3I22M5I4M4I20M3D63M3D4M3I7M4I15M2D2M5I12M2D54M1D6M4I29M5D42M1D82M3I16M5I74M1D35M1D17M2D29M4I95M5D54M2D132M5D28M3D7M3D12M3D10M4D14M2I30M5D29M5I68M2D28M2D234M5D4M3I94M2I27M2D12M1I6M5D19M4I13M4I43M2I19M5I48M1I84M5I5M3I15M2D37M3I4M2D23M3D7M2I19M2D103M2D4M4I94M3I67M4I6M3I6M5D82M5D4M1D5M4D24M3D4M5I16M4D21M2I46M4D37M5D16M3D36M5I10M1I89M1I12M5I7M4D7M4I53M2I65M2I8M4I139M2I6M2I14M3I30M3I15M1D47M2I7M4I2M3D6M4I2M2D74M2I24M1D1M4I22M3D47M5I10M1D62M1D28M5D1M1D35M5I35M2D15M3I12M3D141M1I67M5D18M2I30M5D9M2I3M5I53M2D34M1D36M2I38M5I177M5D15M1D104M5I47M4D4M5D6M5D43M5D63M2D72M3I71M2I142M1I3M3I28M4D56M1I3M1D20M1D7M3D6M4I13M1D8M2I38M3I77M2I30M4I60M1I25M3D70M5I70M2D32M1D61M4I4M3D32M2D35M1D1M1I41M2D23M3I12M4I86M2I4M4D23M2D10M3I31M4I129M5I9M1I5M2D1M2I3M5D115M3D2M4D21M2D9M5I18M1D3M1D6M3D43M2D60M4D28M3I56M4I1M3D57M2I7M5D31M4D8M1D36M3I82M1I31M5I75M3D16M3I24M4I20M1I7M4D15M1D64M5I2M1D27M1I1M4D23M5D64M1I40M3I49M2I3M5I18M2I32M5D69M3D5M5I49M3I4M1I17M4I43M4I55M2I16M5D23M1D63M2D40M1D2M4D87M2D41M1I3M4I22M1D24M2I18M1D47M4D62M5D54M3I34M5I56M1I9M4D6M2D34M2I86M1D130M3D24M5D36M3I27M5I5M1D32M5D3M3I24M4D3M4I9M5D40M5D42M5I15M4D7M1D29M5D5M1I60M2D11M5I15M4I3M4D47M5D25M2D32M4D24M3D48M3I19M5I4M4D87M4I17M5D54M2D55M1D23M3D5M5I178M5I16M3D13M4I141M1I49M2D32M1I61M1D34M1I104M5I1M5I35M1D16M1I7M2D90M2D55M5I50M5D33M2D8M1D153M1I40M5I15M4D3M4I82M5I70M1I6M5D13M2I57M2I29M1D28M5I4M5D19M2D23M4I6M2D68M1I28M1D20M3I64M2I21M1D28M1D33M1I39M2I25M5I3M3I7M4D29M4D1M5I11M5D6M5D10M1D23M5I14M2D12M1D57M2D3M4I42M4D1M4D12M2I36M2D40M1I11M3D63M2I16M3D90M1D2M1I37M1D36M1I10M1D7M1D26M3D1M1I147M2I31M2I22M5D86M5D27M3I48M5D22M5I107M1I22M3D7M4D12M3I160M5D23M1I12M3D38M1I57M1I12M1I9M3D44M4D13M3D62M1D5M5D153M2D14M3I49M4I25M2D6M5D66M2I12M3I28M5I9M2D33M5I26M2I4M5I57M2D4M4I43M3I15M5D55M4D79M5D57M2D9M1I12M4I2M3D27M5I11M1I31M1D18M4I9M1D71M4D31M5D13M5I7M4D2M5D36M4I3M1D8M5I1M5I33M3I21M1D38M4D17M2I1M4D27M1D42M5I23M5D1M4D245M4I1M4I21M2D19M3D42M5I3M4D52M5I37M3D10M5I9M5D44M2D8M4I30M5I11M2D9M1I22M5I122M4D119M5I16M4D21M1D6M5D25M5I69M3D99M5I8M5D4M5I27M3D3M4D11M1D14M2I12M3D15M2D7M5I8M5I61M2I2M3D3M2D15M2I21M1D21M5D1M2I10M5D6M3I59M2I8M2D23M3D33M1I60M1D88M2I36M2D158M5D97M2D34M3D16M1I50M1I114M3D47M1D98M3I32M5D6M1D8M2I69M5D14M4I4M5D3M5I4M5D2M2D12M2I21M3I7M4D25M3I43M5D9M4I3M2I23M3D2M1D1M5I66M5I38M2I25M5I12M4I8M1D26M1D16M5D31M5D44M3I88M1I21M2I49M2D26M2D26M5I37M1D6M3D24M1I21M5D17M5D13M4I9M5I19M2D1M2I92M4I107M2I43M5D9M3I28M5D3M1I4M5I21M2D12M3I78M3D4M2I39M5I5M3D54M1I2M3I38M3I2M3D14M5I61M5I61M2I16M1D24M3I4M2I2M3I27M2I53M3D8M1I28M2I38M1D27M3D8M1D18M4D6M4D1M4I30M4I33M1D56M1D59M5D16M1D30M2I58M2I60M1I50M4I3M3I25M4D32M3D30M3D47M2I31M5I50M4D27M3I37M5I27M4I37M1I21M4I72M4D11M3I76M4I34M5D7M4I42M4I6M4I18M5I17M3I153M5I28M2I55M2I54M4I27M2I27M4D39M1D47M2D44M1D2M4I26M1I3M5D22M3D21M3D41M5D76M1I15M4D2M5I41M5D318M4D2M1D3M1D17M5I32M1D37M3I11M1I31M5D18M3D15M3D1M3I13M2I41M4D68M2I24M1D23M2I34M5I3M1D7M1I29M3I10M3I37M1D15M1I11M1D57M3D26M4I37M5I40M5D26M4I57M5D6M5D44M2D1M1I46M5I3M5I127M4I33M3I51M4D3M5I23M2D19M3I72M4D34M1D5M5D16M1I36M4D20M2I22M3D9M4D5M5I15M1D1M5I3M5I18M2I19M2D15M1D131M4I135M5I42M1D17M4D29M1D25M4D10M4I10M1I15M2I9M2D6M1D18M4I47M2I36M5I109M1D76M5D51M1D15M3I12M2D35M1D6M5I1M2D9M1D7M5D39M2I40M4I16M1I23M2I32M2I53M3D1M4D15M2I36M3D94M1D24M3I35M1D4M4D7M3D4M2D28M2I18M5I3M5I7M1I85M4D43M3D50M5I47M2I7M5I6M2D6M3I8M4D8M4D176M5D30M2I21M5I14M4D50M3I73M5D39M1I4M4I16M4D20M2I2M5D16M5D5M5D26M2D18M3I65M1D19M2I92M1D23M2D3M3I63M3I14M1D21M2I32M5I13M3I29M2D7M5I3M4I63M3I39M2D5M2D31M2I21M2D5M5I36M3D4M5D59M5I85M4D36M5I32M2I72M5D61M4D16M1D52M1I110M5D3M5I27M5I40M1D9M4I23M5D5M2D51M4I21M5D14M1I90M5D98M5D18M3D68M2D5M2I10M1D45M5I8M2I55M2I40M3I7M3D30M1I11M2D13M3D1M2D67M1D32M4D40M3D38M5I21M1D1M5I22M4D5M4I3M2I44M1I5M1D56M2D12M3D91M1I118M5D4M1D24M5I12M3I4M3D8M3I14M4D72M3I63M3I7M4D25M3I65M1D33M5D2M1I19M3D56M1I18M5I21M1D2M5I14M4D44M3D2M3I5M4I1M2D13M4I24M3D24M3D8M5I99M5D51M4D33M1D11M1I12M1D53M3D4M3D44M4D108M2D2M5I4M5I58M1D20M3D127M4I24M1I26M3I4M1I16M1I155M3I2M5I45M2D50M3D70M4I52M4I38M4D23M2D51M4D9M2D11M2D12M1D2M2I24M4I26M5D45M4I83M4D41M4D204M1D27M5I3M2I32M4I7M3I27M3D69M2D42M2D26M2D7M1I56M2I32M2I75M1I131M4D33M4D1M3I4M4D4M4I15M3D65M1I3M2I1M1D61M2I39M4I3M2I40M3D12M3D32M2I9M4D65M3I61M4I50M3I31M1I75M2I121M4I5M3I56M3I49M4I21M1I14M5I29M4I5M1D14M2D22M4D96M2D114M5I12M5D29M5I12M5I21M3I8M3I46M5I37M1D18M1D27M5I23M1D20M3I28M3D19M3I61M2D11M3I14M4D29M4I45M3I2M4D2M3D86M5I22M5I30M2I9M5D10M1D18M5I92M4I44M1D102M1I19M4I15M3I10M3D33M2D40M5I12M5I54M3D9M1D6M5I48M3D82M3I20M4I64M3I12M4D9M2D3M1I27M4I7M5I22M1D18M2I108M2D68M4D49M5I21M2I41M3D49M2D31M1I24M4D26M5D11M1I7M5I14M3I11M5D22M3D47M4I29M1I16M2I8M1I15M5I16M4D90M4D5M4I10M1I19M1I57M2I8M4I14M5D8M4I25M3I86M2I26M3I14M4I33M2I50M4D69M5I15M2I172M2I1M5I71M3I2M4I42M3I2M2I25M1D55M3D3M1D78M1D40M5D65M3I1M4D6M5D22M1D3M4I66M3I72M1D3M3D19M5D10M5I25M1I11M2I20M5I17M5D34M2I3M2D8M4D1M2I54M2I21M5I23M1D22M4D2M3D12M2D28M5I25M5D41M4I14M5I3M1D103M1D54M2D93M1D8M1D2M4D49M5D26M2D20M3I8M5I7M5I1M5D24M1D45M5D128M2I4M5I20M5D19M4I36M4D31M3D20M2I14M2I39M4D4M3D77M3D23M3D2M5D11M3D4M4D22M4I18M5I67M1D39M2I2M3I4M1I81M1D96M1D39M2D9M5D39M2D83M1D3M5I34M4D3M5D48M5D11M1I80M1I6M4I63M1I15M3D24M2I14M5D3M4I10M4D15M5D6M5D38M5I64M1I40M4D68M3I18M4I9M2D16M3I3M4I14M4D21M4D82M4D14M5I137M1I26M1D23M3I9M4I88M5D29M3I52M3D5M2I105M4I38M3D16M5I6M4I12M3I68M3I29M3I8M5I3M5D11M4D34M3D9M3I56M5D10M3D16M3I86M1I57M3D7M5I58M5D35M2I22M4D33M5D20M5D22M4D21M4I25M1I20M1I77M5D27M3I8M3D25M3D32M1D53M1D26M5I24M4D78M2I3M4I34M3D88M5D84M4D17M5I4M5D12M3I72M2D38M4D23M4D3M1D17M2D23M2I19M1D42M1I5M5D66M1D114M5I9M5D118M5I47M4D5M4I3M3I57M1D8M3D2M2I14M5D92M4I21M5I34M1D11M4D11M3I3M3D7M5I19M5D22M3D63M5I8M3I54M4D34M5I7M5I45M4I15M2D88M4D15M1D15M2D5M4I66M1I33M2I18M2D54M2I2M3I119M2D4M4D55M5I59M4D29M4D121M3I30M3I39M2D25M3D25M3I5M4D19M2D32M5D89M3D21M1D68M5D17M2D16M2I89M1D1M3I42M4I3M3I27M5D44M5D37M1D15M4I13M2I19M1D62M1I1M2D4M1I74M1I47M4D16M1D3M3I44M4D15M4I49M1D1M2D56M3I55M5I44M2D12M4I6M5I48M3I11M3D20M1D31M1I23M5I54M3D31M5I10M5I8M2I13M3I3M4D6M3D34M1D24M3I55M2I1M5D3M4D83M5D20M4I11M4D85M1I34M2I56M1D19M4I14M2D1M3I104M3D2M2D63M3D1M2D38M1I31M1I66M4D7M4I7M1I25M3D1M3I4M4I4M1D29M3I16M2D29M3I47M2I60M2D23M1I57M5I18M2I26M4D34M4I14M2D23M3I102M3D29M1I72M1I22M1I17M2I75M2D14M3I1M3I17M4D29M1D65M3D34M4I55M4I37M2D18M5D56M1I31M2D3M5I21M5I12M4I2M4D2M4D51M4I158M2I1M2I24M2I42M4D51M5I10M3D4M3D148M4I42M4I35M4D34M5I19M3D10M4D4M1D25M1D1M3D34M4D13M2D68M2I66M1I23M1D14M2I34M5I96M3I12M4I44M3D23M5D2M5I12M1D23M4D77M4I7M1I26M2I4M1D11M4I41M3D127M3I17M1D68M1D33M5D6M5I41M1D32M2D69M5D66M5I26M5I65M2I14M1D4M2D2M1D4M4I7M2I4M4I11M2D22M3D46M1D25M2D10M5D6M4D6M4I2M1I10M5D18M5I22M5D1M5I59M5D24M4I26M2I23M3I31M5I62M1I2M2I3M4I37M3D3M3D1M3D4M4D10M1I26M4D32M5D6M1I23M5I6M5I12M2I1M1I61M3D48M2D19M4I12M2I24M2I11M3I37M5I79M3D15M1I2M1I83M4I9M2I14M3I44M1I38M4I7M3I28M5D18M4I29M2I42M3I127M4I78M2D17M3D16M5I25M3D91M5I13M3D18M5I61M3D19M5D35M1I1M2D19M3D22M1I70M2I8M4D8M1I19M2D27M2I35M1I49M1I34M2I47M1D115M1I261M3I35M3I4M3D31M5D12M3I64M5D24M4I41M1D16M1D4M5I5M2D21M4D31M4D117M5I31M1I76M3I22M4D76M3D12M5D1M4I9M3D28M2D1M4I7M3I2M5D14M5I24M1D7M3D3M4I57M3D101M3D4M3D6M4D13M4I56M4D5M5D26M5I5M4D7M2D62M2I20M3I3M5I78M2I9M2I24M4D160M5I51M1I41M1I11M1D8M5I166M4D16M3I21M4I11M1I54M2I68M4D44M1D20M1I22M5D3M1D56M3I5M5I18M2D19M2I14M4I14M5I52M2D14M3I60M5D10M4D7M5D18M4I192M2I59M4D65M5D9M1D18M4I68M4D43M2D16M4I59M2D6M3D42M3I14M5D16M1I21M2I74M2I17M2I19M5D9M1D11M5I7M1D1M4I55M3D47M1I26M3I51M2I4M2I28M2I12M1D76M5D40M2I18M2D8M1I1M5I20M5I14M2I1M5I24M3D18M1I1M1D63M5I21M1I12M1D44M5D23M1I26M1D24M1D27M1I72M4D18M4D30M2I23M2D2M3I12M5D64M4I50M3D96M4D16M2D22M1D35M4I75M2D5M1I50M2D10M5D12M3I17M3I14M4D113M5D40M4D38M1D110M4D2M1I75M2D18M4D44M4I18M1D86M5I19M4D5M3I236M4D9M3D29M4I156M5I47M5I2M4D4M2D47M1I12M3I25M1D24M1D56M1D17M4D4M3D40M4D43M5D11M4I19M4D15M2I50M5D9M3I9M5D25M5D19M3D23M3I3M5I2M5I46M3I1M4I4M2D6M3I4M2I5M4I3M4I2M1D22M3I6M5D34M4I11M3I20M5I32M3D19M2I151M4D24M2I40M2D6M1I12M4D72M3I16M3D31M2D10M2I21M3I28M4I30M1D20M4I32M4I25M5D3M5D51M2I1M5I16M4D28M4I9M5I9M5D2M4D60M2D45M1D4M1I49M5I32M1I5M5I94M5I16M4D49M3I3M2D2M5D61M2I34M3I6M2D14M1I26M1I5M2I9M3I9M5I28M3I21M2D6M1D31M3D26M5I33M5D115M4I86M1D10M1D46M1I1M1I28M2D18M1I20M1D79M5D5M4I10M4D16M2I63M3D4M2I54M2I4M2I21M1I52M3I36M1D16M1I27M2D4M5D68M4I13M3I6M2I14M5D37M3D31M4D15M5I35M2D28M5I2M4D30M3D7M1D65M4D49M4D38M4I19M4I43M4I69M4I39M5I125M5D13M3D1M2D14M5I14M3D59M3D6M2D1M2I3M3D52M3I38M3D15M5I69M1D124M4D5M4I66M3D18M3D30M4D4M5I16M3I28M3D35M4I8M5I11M3D44M2D22M4I19M2I23M4D145M3D35M3D61M5D18M4I22M4D11M1D78M2D12M3I4M5D37M2D6M2D34M1D25M5D6M4D40M1D27M3D23M5D106M1I21M5I22M5D18M1I39M4I6M3D37M1I14M2D18M2D25M4D7M3I3M3D16M1I59M2I31M5I19M1D43M5I3M3I14M1I37M5I24M2D51M5I35M4I4M5I12M1I30M3I14M3I12M3D33M5D5M4D40M4I12M1I6M1I93M2I6M5I33M1D19M4D60M1D5M3I46M3D6M5I61M5D52M3I14M5I41M4I91M5I26M1I34M4D19M3D8M5I98M4I8M2I74M4D15M4D13M4D3M4I72M2I6M4D14M2I73M3I19M1D40M4I15M4D75M1D14M1I8M1D12M1I23M1D28M3I84M5I30M5I57M5I35M1D17M2D61M1I85M5D56M1D147M5D25M2D6M5I10M3I16M1I51M5D38M4D6M2I21M5I37M1I31M5D5M5I27M3D80M2D19M3I3M1D1M3I127M1D36M2D19M3I1M4I15M3I5M5I42M1I28M3I36M3I26M5D31M4I2M1D8M4I48M4I49M2D3M3D72M3I115M3I134M3I31M5D50M5I13M3I7M4D68M3I2M1D11M2D11M1D1M2D55M4D52M4D11M3D2M4D86M4D12M3I51M1I10M5D21M5D54M4I8M3I21M1I235M4D60M4I8M5D19M2I19M5D27M5D12M3D11M5D1M5D55M2D12M5D9M3I9M2I66M1I51M2I3M1D4M2I24M3D51M4D19M3I31M5I51M2D27M2D11M3I24M1D19M3I9M1D51M3D26M3I21M5D58M3D34M5I76M1I7M5D3M3D24M1D33M3I14M3D39M3D15M2D74M3I27M4I9M2I21M4D42M4I34M3D84M5I116M1I5M2I38M2D35M4D55M2D2M5I13M4I3M2D23M1D57M5D26M4I46M4D30M1D40M2I9M4D22M1I5M1I17M2I7M4D19M2D6M5I13M4I43M5D44M1D7M2D7M4D90M5I48M1I25M3D2M2I15M4I30M4I18M2I36M4I19M4I2M1D170M2I21M4I23M2D29M4D34M2I7M2I8M5D4M3D22M5I48M5D82M4D35M4I12M5I39M1D66M5I26M4I6M1I3M2D190M5I21M2I11M2I17M4D31M5I37M4D12M2I42M5I31M1D26M5D13M5I39M2I9M1I138M5I6M1I40M2I2M5D45M4I18M5I17M4D22M4D14M1I18M5D38M5D2M2D44M1I6M5I65M1D129M2I36M2D18M4D36M2D21M3I14M4D37M1I71M5D59M4D120M2I18M3I79M5D33M5I8M1I3M4D49M4D23M5D4M1D14M2I15M1D11M5D53M4I70M2D159M5D4M2D27M5D8M3D30M1I23M2D56M2I145M3D77M5D12M4D15M5I22M2I7M4I119M5D76M4I13M1D43M2I87M3D14M4I2M4D59M4D12M2I33M2I68M3I7M3D15M1D117M1I26M4I36M3I48M2D8M3I122M3I73M4D50M3D13M1D63M2D24M1D1M4I22M4D11M3I2M4I40M4I43M5I25M4I90M2I6M2I8M5D5M3I39M1D17M3I28M5D6M3I6M2I37M3I93M2D73M1D52M3I31M2D67M5I22M5I22M3D7M3D27M3I18M4I1M1D14M5D65M4D64M4D74M2I22M1D91M3I18M2D7M1D45M4D36M1I6M2D20M2I5M2D11M5D66M3D28M2I22M3D97M4D63M3I199M1I51M2D2M5I59M1D26M1I92M5I21M3D13M3I35M4D16M5I5M4I12M3I18M1I25M1D57M2D24M3D20M3I4M1I21M2D49M1D44M3I36M3D13M3D40M4D41M3D43M5D16M4I14M3D7M5D27M1D11M2D88M5I59M1D32M5D39M3I49M3I28M4D22M3I9M5D21M1D13M2D51M1D16M5D24M2I36M5D15M3D4M3I3M3D20M5I21M1I61M3D28M1D21M3D15M4I16M4I9M1D23M4I13M1I14M4D18M2I17M5D52M2I50M5D36M4D15M4D6M3I14M3D1M1D26M1I5M2D71M4I12M2D16M3I9M2I35M4I52M1I18M3D18M5I28M5I47M3I59M2I10M2D2M4I19M4D2M4I2M4I9M5I13M4I93M5D41M3I56M4I24M5I14M5I5M5I9M1D11M3I7M4I71M5I22M2D9M1D65M3I2M5D4M1D85M2D2M5D45M5D3M4I27M3D25M5D1M2D46M1I76M3I5M1D7M4I6M1D32M3D17M1I23M5D18M4D40M4I13M1D26M5I21M1I34M4I8M3D7M4I8M1I1M3I6M4D1M4D37M1I16M1D50M2D70M5D34M2D6M1I52M4D6M5D10M5I4M1I4M4I11M4I71M4I31M4D42M1I25M5D33M3D87M2D11M1I9M5I2M5I18M2I52M5I12M1D3M1I15M2D13M2D50M4I1M2D106M5I7M5D16M1I79M4D10M3I29M4I16M4D167M5D27M4D7M4I14M5I3M1I28M3I26M1D22M5D2M2I36M2D74M1I7M2D15M1D31M2D16M1I89M4D3M5D14M4D31M3I32M5I27M2D18M3D12M2D37M2D6M3I5M2I30M5I8M1I14M1D39M4I23M1D4M2I22M4I4M5D13M5D12M3I47M5I3M3I45M2D43M4D27M5D24M1D69M4D44M5I53M5I4M5I47M2D42M2D61M3I1M3D22M3D2M1I5M4D7M1I45M1I13M3I19M3I4M3D59M1D7M1D8M4I50M1D20M1D19M4I57M2I47M5I44M1D5M4D2M1I16M1D31M4D2M3I86M3D12M3I5M2D27M4I28M1D42M2I17M2D37M2I48M4I21M1I29M1I77M1D46M3D49M3I7M2D9M4D32M1I47M4I33M5D5M1D52M4D19M4D6M5I40M1D8M3I2M1D107M5I23M5D16M5I27M5D9M2D30M1I9M3D59M4I48M5D30M4D48M4D6M1I19M1I10M1I22M4I9M5I30M5D2M4I19M1D30M1I29M4D113M1I54M1D36M5D16M5D62M2I19M4D88M3D63M1I9M1I9M2D85M4I14M2D25M2I11M3I4M3I72M3D55M5D6M4I69M3D37M1I9M5I38M3I68M3I36M4D7M3D3M5D41M4D36M4D73M2I4M2D10M1I7M4I103M4I9M2I39M1I7M5D27M4I16M5I7M4D5M3D29M5I21M4I18M5I2M1I37M1I35M3I63M4I35M3D8M3I7M3I41M2D32M1I10M1I19M2I8M2I38M4D1M4I2M1D23M2I5M5I31M4D9M3D46M1I7M3D3M5I19M1I46M5D39M4I15M5I82M1I55M3D11M4D23M1D99M4I73M5D54M2I38M5D23M3D50M5I14M2I1M5D5M4I15M2I44M5D56M1I1M4I47M2I1M3I38M1I1M4I17M4D34M2I29M4D20M3D3M3D21M5I1M1I32M3D59M2D13M1I7M3D20M4D8M1I54M2I30M2D12M2D58M1D9M4D8M4D8M3D94M4I28M5I17M2D14M3D71M3I1M3D50M5D3M4D21M2D14M5D8M3I2M5D4M4I34M3D21M5I83M1D4M3I23M1I58M4I49M3I1M5I44M3I16M2I27M1D3M2I4M4I38M3D17M3D76M4I44M5I35M5I31M4D24M3I19M1I42M5D35M3D6M2I132M5I13M1I6M4I19M1I16M3D12M2D47M5I31M3D34M1D45M1I17M2D6M3I3M4D109M5D3M5I57M4I43M1D17M4D11M5I13M5D84M2I39M5I8M3I25M5I11M5I24M5D49M2I37M3I15M3D157M5D42M2I64M1I4M1D39M3I27M1I41M2D10M4I68M2D37M3D28M1I40M4D7M4I8M2I51M2D27M1D12M1D87M4I12M3I1M3I53M4D9M5I10M1D1M1D41M5I5M5D18M1I67M1I58M5I38M5D48M5D8M5I19M4I7M4I48M4I19M5D8M3D103M2D37M2D14M3D21M2I1M1I66M5D4M5I17M3I46M4I1M1D94M2I5M2D14M1D18M3I8M4D47M5I41M5D15M2D6M3D62M2D22M5I60M1D4M2D16M2D20M4D19M1I8M1I2M3I35M3D16M2D59M1I10M3D57M5I16M1D6M2I147M2D52M4D21M3D5M1D19M1D6M4I42M3D18M2D8M2D15M2D6M1D40M1I48M2I27M1D90M1I6M2D11M1D2M2I51M3D2M3I13M1I79M2D15M4D10M1I29M4I46M2I1M5D11M4D14M1D24M4I19M4D25M2D52M4I12M2D122M3I1M1I10M5D1M1I3M2D31M4I41M1D67M4I8M2D32M5D39M3D7M1I17M5I14M5I26M4D21M2I8M5D5M1I43M1I9M1D5M5D77M2D60M1D43M5I51M2I49M3D22M1I27M4I22M4D1M2I5M1I14M5D13M1I54M5D43M5D51M4I23M4D2M3D7M3D30M1I4M1D22M2D48M1D12M3D4M4I106M5D68M3D65M5I2M1I43M2I6M3I6M1I59M2D17M2I4M2I11M1I5M2D52M5D12M3I7M4I15M3D28M4D52M4D2M2I12M1D11M5I18M2D8M4I28M4I3M1D33M5D55M5D28M2D106M5D15M5D15M5I2M3I2M3D17M4D13M2I21M3I44M3D13M3D2M1D17M2I23M2D2M2I33M3I8M2I14M4I86M5D28M2I67M1D150M5I9M5D124M3I58M5D119M2D20M3D39M2I2M1D11M1D30M3D19M3I6M4I37M2D3M3I2M2I7M4D54M5I16M5I22M4D11M2D12M2D26M2I17M1I23M4I22M1I46M4D8M5D7M4D17M1D8M4I4M2I55M2I30M3D4M5I28M1I20M5D10M4I16M5I21M3I28M5I29M4D8M3I5M3D36M2I26M1D3M4I16M2D103M1I66M5D45M1D86M5D17M4I20M3D9M4I27M1I9M4D4M2D53M3I57M4D36M2I4M3I2M1D47M3D26M2I115M1I17M2I14M2I46M3D9M2I14M3D4M3D71M4I6M2D7M5D34M3D25M2I11M1D11M5D13M3I104M3D7M4I28M2D19M3D228M4D37M2D44M3D17M4I35M4I6M1I69M1D93M3I8M4D22M2D11M1D11M5D3M3I39M3I36M4I58M3D31M1I4M5D61M4D28M4D8M4D1M5I41M1I1M5I26M1D16M2D21M1D49M3D19M4I31M5D20M4D18M5I80M5I9M4I20M1D61M3I1M3D71M3I80M4I3M1I8M5D5M3D1M4D30M4I49M2D9M1I41M1D15M5I4M3I12M2D12M1D1M4D64M5D24M1I21M1D17M5D11M5I45M5D35M3D45M5D21M4D14M1I12M3D46M3D10M2D14M5I1M5D24M1D20M1D17M5I35M2D89M5I14M4I4M5I27M1D84M1D19M5I78M4D14M2I9M2D5M5D26M3D2M1D29M1I34M1D2M2D17M2I96M5I13M1D15M4I27M1D11M5D79M2D25M3D2M2D13M4D59M3D26M5D50M1I18M2I2M1D70M4D13M1D64M4D19M5I8M3D65M1D11M1I59M2I1M1I81M2I23M4I32M3D44M1D33M1D126M3I6M5I2M5D31M5I71M4D10M1I44M5I1M5D33M4D7M2D4M5I8M2D2M3I42M4I8M1I25M5D101M5D7M3D21M2D40M4I59M1I19M1I6M4I4M3I21M3D41M5D11M1I21M1I34M2I113M1I32M3D51M2D26M5I38M5D12M4I1M2I3M4I22M3D8M2D31M4I92M2I38M4D7M5D107M3D62M4I8M2D47M3I29M5D19M1D102M4D53M5D31M3D41M4D19M3I13M3I19M1I8M2D59M4D48M3D12M2I84M5D8M4I11M2D19M5D45M2D3M5D63M5I11M2D22M2I8M3I58M4I9M5I51M2D3M2I24M3D11M3D31M1D34M5I23M5I12M3I23M4I11M4I180M3I8M2I2M5I3M1D32M1I7M1I31M3D15M2I2M3D2M2D29M2D12M5I6M5I3M1D43M5I62M1D32M3I26M2D15M1D17M4D21M1D1M4I16M3I55M5I32M2I20M3I54M3I16M2I104M2D39M1D93M4I31M2D2M3D54M2I16M3I10M1D21M4D4M1I73M1I72M3D12M3D17M3D22M4D11M3I3M2I96M3D77M4I37M4I10M2D29M2D25M1D51M4D3M5I1M3I79M5D4M2D170M1D10M1I1M1D14M4I18M5D4M2D64M2I51M5I6M4D35M4I4M5I105M4D25M1I65M5I21M3I19M2I19M4D50M2D14M5D2M4I11M4D11M5I2M4I3M5D13M4D9M4I77M5D54M2I11M1I79M3D24M5D4M1I5M5D9M5I5M2I12M2D6M1D31M4D40M1I19M5I3M3I44M4I4M1I81M2D13M4I42M2I20M1D5M5I60M5I5M3D4M4I2M3D20M3D34M5I1M5I59M1I7M1I11M4D8M4D11M4D37M4I24M1I23M3D50M1I29M5D3M2D20M4D26M5I25M3D91M5D37M5D6M2D57M2D106M2I1M5D13M3I67M2I22M3D15M4I35M2D24M1D42M5I28M3I57M3I33M4I48M3I8M2I13M4I12M4D10M3I16M3D15M3I5M5I82M5D3M2D9M4D9M5D12M4I70M5D1M5I12M4D35M5D19M3I23M2D67M4D73M5D2M3D169M4I18M5D7M2I71M2I44M1D13M2D47M3D6M5D11M3I37M1I16M4D70M5D61M1D5M2D3M4I115M2D29M5D18M4I57M4D10M5I13M4I13M1I6M4D57M4I19M4I3M4D42M5I19M5I33M1D12M4I4M1D18M3I14M5D6M4I8M1I3M3I2M1I4M3I81M1D38M2D64M1I60M5D91M4D20M1D2M4D9M5I16M4D71M2I61M4D10M4D132M4D11M4I23M2I22M1I55M2I23M3D5M1D4M4D151M5I4M2I47M1D2M5I2M2D17M2I3M2D6M1I38M3I7M1I74M4D14M1D53M2D11M3D9M1I9M5D13M4I38M3D30M2D40M2D2M5D5M4D20M5D10M5D1M1I1M1I14M3I29M4I64M2D8M1D41M3D33M2I57M1D12M5I54M1D113M1I66M3I82M3D39M3D15M1D58M5I11M3D9M4D16M2I9M5D13M2I24M2D34M2D4M3I13M1D73M1D56M3D7M1I11M4I12M4D33M2D47M2D28M4D15M3I42M1D11M5I103M3I18M1I13M3D29M1D136M3D15M2D8M1D7M4I10M5D14M1I13M5I11M3I98M1I94M4I49M1D34M3I12M2D6M3D60M5D28M4D34M5D86M4I36M5I19M5I9M1I21M3I31M3I10M3D2M2I30M5I156M2I78M2D11M5I5M4D5M5I51M4D7M2D17M1I53M1I1M3D43M1I48M2D15M4I10M1I35M4I40M2I20M1I14M3D4M5D1M3D73M4I91M2D11M1I11M5I99M5I7M2I58M1D50M5I21M1D35M5D86M2D65M1I5M4D17M4D1M4I6M2D39M5I23M2D3M4I21M3I20M5I7M1I15M4D16M4I20M3D15M1I32M4I5M1I86M5D40M3D11M2I27M4I85M2D2M5I59M2I14M1I114M5D2M1I3M2D24M4I13M4I12M2D73M4D7M2I3M3I55M1I3M5D7M3I81M1D17M4I39M1D10M5D19M4I25M4I65M5I54M5D20M2D10M2I58M3I35M1I30M2D56M3D14M2I195M5D77M1I16M2D97M5D3M4D12M5D9M3I14M2D4M3D6M2D55M4D8M5D28M2D52M5I13M1I26M3I115M2I40M4I17M4I33M4I11M4D34M5I18M1D3M4D11M1I8M1D60M4D55M4D20M2D5M3D1M4D8M2D29M4D18M1D72M3D51M5D14M5D47M5D6M4I4M5I2M4I18M5I135M5D7M3D50M4D17M2I26M4D12M2I6M5D38M4I2M3I52M2I5M2D2M2I4M1D14M3D5M3D50M5D59M5D10M3I20M1D9M5D160M4I8M2I71M1I59M1D6M3D32M3I28M4D70M2D76M5I28M2I21M4D7M1D10M4D8M3I27M2D15M5D9M3D11M4D52M3I19M5I100M5D55M4I1M3I19M4D3M1I34M1I17M3D15M4I30M4D115M5D126M1D21M5I20M2D1M4I49M1I15M5D42M4I32M2D6M4I31M5I8M2I58M2I1M2D69M1D6M2I34M4I21M4D21M3D68M4I35M2I28M2D22M4I5M5D27M5I39M3I5M2I155M2I24M2D59M4I31M1D16M5D6M5I40M3I26M1I38M3D6M4I21M4I20M5I3M1I8M2D46M5D36M3I12M3I39M2D10M5I3M2D9M3I28M5D2M5D24M4I100M3D17M5I69M3I30M5I27M2I1M5I49M3I63M2I4M5D16M4I45M5I85M4D25M3D21M4D16M5I211M3D12M4D14M4I30M5I23M5I4M5I6M5I8M1D11M1I48M3I29M1D14M3I35M3I32M2I10M1I27M4D107M2D71M5D52M4I1M4D2M3I8M5D50M4D15M2I59M5D3M1I8M1D37M2D69M3I58M3I2M2D67M5D15M2I46M3D27M3D54M2I55M4D18M2I134M2D35M4D84M3I49M4I34M2D39M3D30M2D14M3D32M4D30M3I8M2I123M2I70M5D5M4I22M1I31M1I9M2D5M2D20M2D28M5I36M2I41M1I14M2D98M3I3M4I8M1I37M4D1M5D62M4I30M5I38M5D26M1D18M1I18M2D28M3I8M2D65M4I10M4I4M4I8M4I8M2D21M5D30M5D42M1D5M3D13M1I54M2I39M4I59M4I44M5D5M5D9M3D64M4I3M5I21M4I15M4I31M5I42M1I49M5I49M3D6M2I10M5D24M1D45M2I2M4D22M5I16M1D20M3I12M5I3M4I13M3I73M2D27M3I9M3I20M4D1M3I3M1D2M4I2M1D48M3D5M3D90M5D19M3D8M5D12M4I3M4D1M4D18M5I9M2I66M4D10M2D81M2I18M5I16M4I71M5I13M2I12M3I55M4D2M3I31M1D13M2I73M5I18M2D6M2I13M1D29M3D91M3D1M3D62M4I37M2I82M2D10M3D11M3D18M2I63M3D19M4D12M3I16M4I21M4I21M4I59M5D12M5I48M5I4M3I64M5D17M4I1M3D41M2I30M5D6M5D5M1D7M2I25M2I6M4I15M3D39M1D34M1I21M5D35M5D4M1I23M3I40M3D58M5D24M3D139M4D85M5D5M3D1M5I45M3I1M4D3M4D30M3I3M5D39M2D124M3I19M2D68M5I1M1D13M5D24M3D14M3D6M4I7M4I6M5I9M3D43M1I62M4I15M1I2M5I19M2D26M4I11M3I39M1D21M1I3M1I32M5D90M3D36M2I29M5D5M2I33M5D40M4D18M1D62M4I22M3I7M2D14M4D29M2I38M2D95M2D10M4D6M3I5M1I16M5D4M5D16M1I45M5D8M2I1M2D39M1D45M2I13M5I3M3D49M3I23M4D8M1D73M3I14M1D48M3I9M4D7M4I7M4I9M4I8M1D7M5I23M1D4M2I16M4I26M2I20M5D8M2D45M3I14M3D12M2I26M1D47M5I19M2D1M1I10M5I50M2D21M5D4M3I48M3D16M5D49M1I19M2D17M5D7M2D10M1I46M4I1M1I20M4I23M1D20M4I54M4D71M2D3M5I1M3D82M5I12M3I36M1I2M3I86M5I20M1I18M2I40M3I63M1D22M1D23M1D46M2I50M4I104M3I8M3I36M3D81M3D22M5D131M3D41M3D3M4D16M2D17M5D9M5D2M5I29M4I25M5I12M4D23M5D43M3D17M2I26M2I6M1D42M1D57M4I7M2I22M1I10M5I17M2D23M5D15M1D8M1D9M2D28M4D15M5I12M3I1M2D23M5D17M3I29M3I39M3D9M3D58M1D168M1D48M1I6M1D23M2I10M2D4M3D27M5I46M2I24M2I19M2I30M3I248M1D21M1D14M3D42M1I18M3I33M2I19M3D19M1I65M1I21M1I21M1D36M4I14M1D7M2D42M4I19M4D107M2D35M4I37M2D57M1D80M1I66M1I1M5D20M1I41M2I16M5D21M4D40M1D24M3D17M1D11M4I14M4I12M4I40M5I81M2I13M2D28M4I66M5I21M1I111M2D87M2D4M2D19M1I12M5I1M3D19M1I71M5D50M5I7M3I41M2D62M1D27M5D121M4D7M1I24M5I5M5I19M4D37M4I20M4D59M1D77M3I27M2I34M2I26M4I15M1I14M2D85M3I14M1I2M3D5M3I21M2I16M5I17M2I6M3I1M5I43M4D7M4D38M5I24M2D7M4D54M3D2M3D26M1I29M4D34M4D1M1I7M2I23M5I26M3D26M4I14M4I99M1I112M3D116M4I6M3D22M3I46M2I90M2I51M4I50M1I15M1I4M1I23M3I23M4D3M3D8M3D26M2D28M4D16M1I101M4D41M1I15M4D7M5D8M5D1M2I62M3D50M2I47M2I12M5D97M2D12M4I8M3I27M4D17M1I51M3D72M5I5M1I68M5D31M4I6M1D15M4D9M5D54M1I21M1I6M2I13M4D4M5D9M4I79M4D21M3I28M5D4M1I21M4I5M2I37M3D10M5I29M4D13M5I8M5D33M5D10M3D40M1D63M5I8M2I7M5I62M2D8M3I5M3I53M5I17M4I39M3I15M2I7M5I42M2D39M2D95M1I99M1D3M2I44M5I22M2I20M2D36M2D7M5I63M2D5M2I84M1D70M1I53M4D21M4I72M1D19M4D31M2I3M3I56M1D9M4D44M3D58M1D24M4I18M5I31M1I24M2I67M3I22M1D53M4I10M3I45M1I37M1I4M3D6M1D140M2D27M1I107M1I2M5D35M3D21M3D5M4I100M3I11M3D31M4I45M2D42M1D35M4D61M2D14M2D29M1I46M5D8M1D61M2D34M3D17M1D22M1D18M2D39M3I45M3I27M5D1M4D89M4D29M2D25M3D3M4D17M5I17M4D1M5D46M1D41M1I151M5I26M4D24M1D93M4I11M2I61M3I31M1I2M4D24M2D15M4D73M2I8M2D2M3I20M4I18M3I22M1I32M2I18M1I4M2D31M5I6M1I4M1D2M3I99M1I13M2I4M3D20M1D31M4I22M3D25M3D16M1D3M5I46M2I2M2I33M5D14M3I19M1D122M1D47M3D3M2I46M2I29M1D39M3I2M1D12M2I49M1I47M4D158M4I24M1I36M3D23M3I18M4D61M2D15M2D36M4I30M2I2M5D24M5D3M1D2M3D34M2D9M3D4M2I16M5D136M4D3M3D4M3I17M3I32M4I22M3D29M2I10M4I7M1I1M3D10M1D38M3I17M3D13M4I23M1D43M1D17M3D7M4I18M2D4M1I32M5D6M4D26M1D56M4I26M3D41M2I22M2I7M5I3M5I2M5I29M5D23M4I34M2I16M5I10M2I2M2D55M1D6M5I52M3D43M3I78M4D18M5D15M1D8M1D16M4I10M3I67M1D41M5D3M4D9M5D17M1I25M5I1M1I9M3D54M2D20M5I17M2D27M5D30M4D59M1I8M2D47M4I1M3D13M4D83M5D13M5I121M4D13M2D2M3D15M5D13M1I38M2D29M3I84M3D33M5D126M2D9M4D99M1I29M1I9M4D4M5I12M3I12M1D34M3D97M2I15M3D19M3D11M5D46M5D7M5I30M3I35M5I67M3D20M1I12M5D31M5D13M4I14M2I13M4I7M5D18M3D26M4I64M4D7M2I48M4D66M3I56M3I41M5D9M2I5M5D87M2D11M3D69M5D46M2I17M2I4M5I46M1D36M1I2M4D9M1D29M2D4M5D23M4D31M4D42M5I1M3D25M2I44M2D21M3I16M2I120M5D44M5D38M1I45M1I19M3I10M1D5M3D62M1D8M4D35M3I3M3I3M1I5M5I10M4I42M2I66M5D85M4D16M4D2M1I78M1D74M4D6M4I50M4D11M3I37M3I17M2I7M1D24M5I60M3D3M1D1M1D42M4I21M5I104M2D14M2I9M3D115M1I32M4I28M4I39M1I32M4D41M1I88M3D40M4I27M3D2M2D17M3D4M4D18M3D13M2I22M3I4M2I30M3I23M5D161M4I19M4D41M2I13M1D66M3D11M2I15M2I31M3D55M1D62M1I2M5I10M4I15M2I168M1D7M3D45M2D55M1D45M1I20M2D65M1I46M1D46M1I2M1D7M4I20M2I3M2I66M4I36M3D7M5D51M2D17M2I4M2I100M2I1M5I10M5D8M1D23M5I78M3I35M4D13M1D72M3D39M5I21M1D1M4I22M1D119M3I1M3I26M5I4M4I5M3D41M3D10M2D132M5D34M1D35M3I34M2D7M3I11M3D6M1I28M3I27M1I25M2I14M4D1M4D51M4D25M1I62M3D7M4D33M4D10M3D16M2D36M4D55M5D25M2D5M5D7M4I58M4D14M3D4M3D60M5I26M2D64M1I10M1I3M1D4M5D36M4D18M2D17M3D1M2I32M5I65M3D9M3D65M4D91M3I13M1D10M5D31M3I120M5D17M4I35M3D12M4I10M5I7M1I15M5I29M2D7M1D2M4D2M5D2M3D29M2D20M3I19M2I26M5I19M2D29M5D29M4I45M2I5M5D18M4I70M2I22M3D27M5D8M5D12M1I4M4D64M3I3M4D31M3I4M5I35M4I17M3I27M5D25M5I11M2I12M3I9M2I39M4D9M5I18M5D11M4D41M2I28M3D10M3I1M2I67M2I56M3I8M4D3M2D3M5I2M5D31M5I26M5I7M2I32M3I37M3D61M1D16M3I46M2D7M2I44M1D11M5D4M4I38M3I2M2D12M1I38M4I7M5I9M1I6M4I40M2I20M3I34M2I5M1I38M5I15M5I46M3I85M1D14M5I32M4I13M3I12M1I76M4I40M2I76M3I14M3D13M2I1M2D78M5I23M1I3M1I18M3I36M4D9M1D16M5I42M2D32M1D30M2I18M4D42M4I18M2D117M5D12M3D22M5D21M2D18M2I81M3D7M2I81M1D39M4I32M5I33M1I48M5I26M4I17M2D41M1I110M5D13M2D51M1I69M4I18M2I32M3D46M5I14M1D30M3I27M3D34M3I5M3I45M1I67M1D7M3D13M2I11M4I18M1D21M2I91M5D51M1D1M4D6M1D23M5I32M1I11M2I19M1I8M1I49M4D44M4D23M3D11M1I45M4D55M5I7M1I2M5I64M1I30M3D34M3D1M4D42M3D2M5D68M2D59M5I12M2D2M4I24M4D15M4I21M2I46M1I19M4I37M1I14M2D63M3I100M4I17M5D85M2I130M1I32M1D65M5D79M5D10M4D27M5I85M5D6M2I50M3D28M4D7M5I11M5I1M2I8M2D2M5D66M5I30M1I18M5I43M5D3M2D5M5I57M1I90M5I32M2D27M4I28M1I75M1I85M3D38M4D57M5I18M2D97M1D1M1I23M4D1M5I6M5D51M2I59M1D24M5I25M4I23M4D49M2I131M5D2M4D3M5I32M3I25M5I7M3D14M5I9M5I61M2I6M5I4M1I5M3I64M5I12M2D28M1D13M4I46M1I13M1I42M2I1M3I45M5D37M3I5M1D14M1I21M1D147M5D17M3D84M5I3M4D10M2D13M1I13M4I75M5I2M1D6M2D13M3I32M2D8M2D22M4I52M1D4M4D10M4D16M4I3M4D3M1D23M4I6M4D33M3D238M2I5M5I9M3I5M3D12M2D16M4I35M4D41M4D7M3I26M3I17M3D132M3I29M3I24M5I49M5D2M1D10M5I30M1D26M2I16M5D76M2I105M2I66M4D8M3I2M3I103M5I1M2D47M2D61M1D14M4I1M3D3M5D4M2D48M3I36M2I13M4D1M3I20M3I26M1D42M4I19M1D21M1D26M5I49M3D18M5D15M4I7M3D30M3I23M2I80M2D2M3I4M4D7M1I10M3D33M3D42M5D11M5D1M4I15M1I38M2D117M2D33M1I11M1I112M1I23M1D24M5D32M4D30M2D37M1I37M5D16M5I14M5I30M1D26M5I40M3D9M2D8M4D2M2D14M1I19M4I19M2I90M3D16M3D9M1I23M4D19M1I13M2I49M1D47M5I35M3D33M3I21M4D1M1D70M3D75M5I137M5I21M3D73M4I14M1I53M5D17M3D59M5D21M3I43M3I37M2D8M1I53M2D22M4D111M3D48M4D35M4D10M1D46M5I39M1I300M2D19M1I38M2D52M3D29M5I102M5D17M3I26M4D12M5D86M3I5M1I13M5I21M5D14M1D42M3I27M3D12M1D9M5I51M3D76M4I2M4I52M5I98M2D47M5I19M1I30M5I9M2I24M2D42M3I22M3D1M1I39M1D12M1D151M4D25M3D1M1D21M5D10M1D36M2D35M4D38M5I13M4D83M2I13M1D40M3I16M1I14M4I45M3I9M3I29M2I18M2D24M4I4M2I40M3D46M5D2M1D11M1I21M1I30M3D17M1D16M1I13M1I37M3I3M2D21M2D19M2D11M2I10M3I120M3I44M2I4M5I45M4I122M4D27M5D20M4I50M5D22M3D21M1I6M1D26M1D23M3D17M1I49M2I7M4D37M2D74M2D7M4D81M3I6M5D9M1D8M2D40M1I7M4I24M3I1M3I36M4I32M1D1M4D21M1I12M5D91M3D3M1I36M1D15M4D13M5I57M1I123M5I10M1I75M3I162M3I22M1I6M1I18M5I31M1I43M3I83M2I57M5I43M2I6M5I19M2D77M1I33M5I10M3I9M2I34M1I7M3I47M5D17M2D37M4D25M3D23M3D1M1D16M4D1M1D12M3I29M2I1M4I28M1I4M5D65M4I26M4D4M1I59M3I21M4I51M4D16M4I81M1D4M3D54M5I82M3I10M3D73M5I59M2D32M5I11M4D5M3D46M2D15M4I10M3I35M4D11M4I52M2I4M4I23M5D41M4I78M2I115M5D1M3D5M4D6M5I10M3I13M2I1M2D68M1I17M1D1M2I8M5I20M1I49M2D32M5D75M3I11M2I29M5I15M4I31M4D25M3I87M1D22M4I20M3D11M2I10M1D39M1D6M2I138M3I102M5I10M2D50M5I32M2I34M4D4M1D6M1D22M5D8M1D17M3D2M3I65M2I15M1D5M5I16M5D7M5I23M4I10M5I9M2D14M4D27M1D22M1I43M5I59M3I11M3I61M2I38M2D11M3I52M2D129M2I40M4I28M4I25M5D10M5D75M5I92M3D15M4I8M5D1M5I90M4I17M4I167M2I36M5D106M2D61M4I99M1D2M5I39M1D43M4D4M2D23M5I82M5I5M3D12M4D11M2I17M4D42M2I35M4I20M4I44M4D24M5D30M4I33M3I6M3I7M2D22M5D36M1I36M5D3M1I7M5I2M5D3M1D7M1D40M5I49M1I57M3D13M2D24M1I66M2I49M3I23M3I22M1I32M1D12M5I9M3D11M3D6M2D30M5D43M1D61M4D12M1I4M2I36M2I19M3I4M3D87M5I3M2I28M2D76M1I25M2I12M1I19M3I31M4D48M5I26M2I56M4D2M2D16M1I57M2D59M2I5M4D25M2D5M4D46M5I3M3I9M2I10M5D8M4I29M5I4M4I5M1I34M4D28M2D6M5D90M1I42M4I3M4D78M4D21M3D35M5I41M4D32M1D6M4D16M3D41M1I50M1I74M1I5M5I16M4D29M3D35M2I110M2D30M2I1M4D1M2D14M4D20M4I3M5I30M3I19M5D16M3I23M3D68M3I20M4I5M4D2M1D44M2I19M5I8M5I46M3D12M1D4M2D12M2D107M4D59M2D31M3D6M1I45M1D138M5D24M5I6M5I17M4I63M1I54M3I51M3I21M4I28M2I9M1D15M1D1M3D2M4D14M4I68M5I27M1I92M2I6M5D2M3I9M4D17M1D23M2D14M3I39M5I6M2I2M1I43M3I8M3I27M5D3M1I64M4I30M4D14M5D14M2I8M3D17M4I18M5I47M4D5M3I14M5D11M5I30M2D42M1D19M3I12M3I30M3D5M1D17M2I8M4I29M4I194M5D106M3I16M5D53M3D27M3I16M3D41M5D1M5D13M3D36M5I52M4D3M4D48M1I1M3D10M4D56M4I1M3I9M2D23M2D61M4D37M4D20M4I27M4D35M1I19M1D13M4I41M4D8M4I38M2D40M2D8M3I30M5D2M1D53M4I11M2I6M5D12M1I13M5I31M3I60M3D38M4D52M1D56M3I20M2D9M2I12M5I43M3D7M1D1M3I48M5I44M5D9M2I65M5D4M4D44M3I1M1I39M1D14M4I53M1D7M4I2M1D1M1I3M2I47M4I27M3I27M5D39M2I36M1I9M4I11M1I20M1I54M3D20M1I10M3D71M5D34M1D46M1I80M4I22M4I62M4I3M2D14M5I127M5I46M1D22M2D26M5D36M3D24M1I16M4I23M5I18M2I13M5I1M1D30M3D8M1I67M4I11M3D4M5I4M5D4M2I53M4D19M3I35M3I17M3I15M2D7M2D6M2D23M4I16M2I102M3I1M3D93M1D26M1I24M1I16M1I102M5D16M3I25M1I4M3D9M4I26M1I18M1I3M2D44M1I73M5D14M2I15M4D35M3D15M3I35M1I42M5D32M4D25M2D1M3I99M1D12M2I30M5D41M3D23M3I16M4I43M4D15M3I12M3D67M1I18M4D43M2D44M3I153M2D63M5D14M1D5M4D10M4D19M3D21M1D37M5D42M3D21M4I6M5I30M3D9M4I31M4D18M5D12M2I11M4D63M2D35M5I40M3D18M4D42M4I2M3I65M1I8M2I33M1I5M4D50M3D8M3I85M4D22M3I14M2D29M2I20M4D2M5I2M3I23M4D66M2I5M1D2M4D54M4D95M2I30M4D16M4D53M5I17M4D11M1I54M1I1M5I23M2D3M2D8M1I14M3D56M3I7M4I11M2I7M5I5M3D2M5D27M5I69M4I19M2D117M1I52M1I115M4D20M1D2M5I19M4I71M1I2M2D96M3D19M3D1M3D33M3I31M3D10M2I8M4D33M4I61M1I8M4D3M2D41M5D26M5D71M1I7M2D3M3I20M3I15M1I32M2I8M4I15M4D20M5I8M3I11M1I87M1I16M3D28M2D4M3D21M3D3M2D36M3I28M1D13M2I40M2I54M3D45M3I25M4D10M1D88M1D44M3D71M4I53M1I12M4I15M1D2M4D2M4I6M1D11M4D15M1I43M5D17M2I70M3I52M1I31M1D37M3I9M4D9M4D9M3I30M1D122M2D9M3D3M2D4M3D60M1I50M3D5M4I19M2D45M1I11M1I21M4I1M5I11M2D18M2I70M2D10M4D69M3I14M4I20M5I26M4I106M3I35M3I12M4I6M4D85M3I13M5D91M5D87M1I27M4I81M4D51M2D20M3D24M1I17M5I11M5I18M3I2M5I17M3I52M2D30M4I50M1D41M3I10M2D20M5I20M4D23M2I44M4I3M2I3M4D4M2D15M1I9M5I4M1I24M4I42M3D18M2D36M2D168M4D17M4D59M3D46M1D4M5D77M1I33M5D41M3D19M4D41M4D101M2I50M1D95M4I47M2D13M3D110M4I30M5I1M2D119M2I22M3D16M1D7M4I8M5D54M5D12M4I6M5D12M3D77M3D20M1I30M2D5M4D8M4I14M3D85M1I120M2I1M5D23M3D1M2I100M2D39M4D8M4D48M4D10M5D69M5D17M2I7M4D15M1I12M2I23M4I9M1I28M1I3M4D95M1I9M1D34M1D25M5I6M2I4M3I52M5I1M4I4M4I104M1D56M3D94M3I65M4D22M2I3M4I8M1I89M2D25M2D33M2D51M2D12M1D64M2D35M4D15M3I11M5I66M4D3M2I32M5D43M5D61M2I7M1I51M2D2M3D58M1D1M3D29M2D36M3I37M2I37M5I21M4D19M5D32M3D83M4D61M5D22M4D67M5D24M1I111M3I3M5D4M2I43M2D45M4D74M3D81M5I22M5D224M4D9M2D2M4I103M5D84M4I2M2I8M5I12M3D43M2D24M4D29M2D15M5D2M4D21M3D1M3D8M3D14M3I26M1I21M4D84M1I3M2I6M4I16M4I49M3D17M4I42M3I47M4I11M2D1M4I13M2D16M5D8M2D70M2I4M1I144M4D27M3D20M1D3M1I18M5D5M4D15M5I16M1I70M4I6M2I25M3D148M2I198M2D58M2I120M2I10M2D23M2D19M1D33M3I16M5D21M5D40M5I9M3D16M5I8M3I50M4D15M1I57M4D2M3D22M3I7M3I18M5I8M3D14M5D77M5D16M5D17M1D48M5D17M3I17M3D77M1I20M3D10M2I50M4I3M2I74M3D76M5D32M1I39M4I32M5I10M5D14M5D46M3I48M3D33M1I34M2I8M5D40M5I40M4I6M3I13M5D8M1D16M4D38M5I7M3I3M5I21M1I10M2I4M2D31M5I139M5I24M4D179M4I18M3D64M2I23M5D1M1I10M3D35M5I20M2I6M1I38M5D29M3D43M2I16M4D6M5I6M1I7M4I14M3D17M4I1M5I34M3D114M5I62M4D21M5I34M2I5M1I28M1D68M1I100M1I39M2I21M5I22M1I65M2I51M3I12M4D3M5D12M3I2M5I6M5I17M1D42M5I69M1D4M4D4M2D3M3I12M1I34M1D9M3D27M2D4M3I36M5D33M2I5M3D46M3I43M4D5M1D3M2D15M5D65M1I7M2D9M4I35M1D7M3D130M4D60M2D2M5D14M4I13M2I5M1I65M4D47M2D40M1I42M4D27M1I3M5D11M2D1M5I49M4D8M2D34M2D25M3I40M4D48M4D76M2D30M5D13M4I76M4D3M4I12M1D11M5D16M4D15M2I57M4I8M3D10M5I16M4D17M4D45M1I17M3D11M5D128M5I13M4D53M1D16M5I6M5I7M5I69M1I9M1I24M1I79M5I14M5I37M4D56M5D10M3I51M3D20M5I16M3I12M5D16M2D26M2D19M5D87M3I21M5D12M5I43M1D67M3I4M3I2M4D9M1I41M5I85M3D74M1D14M1I39M3I37M4D28M3I49M5D75M5I12M4D114M5D5M2I46M1D6M3D19M3D28M2I128M2D114M2D9M5D13M2D15M1D22M1D146M5I5M3I18M3D1M3I9M2D71M4I10M3I50M4I21M2D16M2I9M1I10M2D11M3I8M1I1M2D121M2I1M1D35M4I50M4D6M2D9M3D3M4I8M3D27M4I34M1I69M3I18M1I11M4D5M2I28M1I39M5D1M1D24M5D132M3D3M4I22M4D15M1D27M4I2M3D47M4D8M1D65M2I18M4I11M3I37M3I72M5D4M5D10M4D27M4I8M4D61M2I67M1I3M3D6M2D14M1D39M3I25M3I7M4D12M5I27M2I19M5D85M4I19M5D97M5D95M1I3M1D68M1I24M4D39M2I21M2D22M2I81M1D57M3D26M1D42M4I8M5D13M5I47M1D91M1D38M1I2M1D155M1D2M5I69M3I5M4I8M4D41M5I3M3D9M3D133M3I32M3D47M1D39M2I68M3D3M3I5M2I6M1I28M3I9M2I11M4I3M1D35M3D87M5D81M1D54M5I35M2D57M1I11M2I94M4D19M2I49M1I23M4I54M1I8M1I8M4D79M2I4M4D5M5I7M5D83M5I4M4I16M4I38M2D15M5I7M2I2M5D18M2D46M2I1M1D5M5D2M5D6M3I19M2I1M2D34M4D21M2I55M2D63M1I9M1D7M5I48M3I13M3D16M2D10M5I64M4I5M4D32M2I1M2D2M4I3M3I47M5I27M5D88M5D9M2D6M2I11M5D72M4D16M3I11M4I30M2D6M4D37M1D32M3D9M5D76M5D82M3D7M4D11M5I8M5D18M2I70M2D2M3I153M2D47M3D33M5D20M3D51M3I1M4I26M5D6M5D4M2I16M5I45M2D4M2I55M2I62M2I51M5D88M2I19M1D25M5I33M5I16M5D15M2I2M1D3M2D8M3I25M3I24M1I14M3D14M2I160M1I9M1D26M4I3M5D116M1I16M2I70M4D32M1D45M1I37M4I45M5D2M3D50M3D28M4I23M4D9M3I135M2I1M3I9M4D7M4D80M1D11M3I18M3D14M5I5M1D21M4D20M1I53M4I14M4D9M4D3M5D32M4D48M5D16M3I2M2D3M3I27M5I63M2D4M4D20M1I19M4I26M2I2M5I26M4I14M2I18M1D5M5D57M4I26M5D59M4D26M4I31M1D2M3I24M3I18M3D3M3D14M1I47M2I20M3D21M3D30M4D8M4D44M5I1M3I134M1D3M2I22M4D20M2D16M2I41M3D50M3I43M3I23M5I39M2I90M2D30M2D28M5I21M2I16M5D2M2D158M2I8M2I31M5D36M1I11M3D51M2D150M4I3M5D7M3I34M3I12M1D4M3D26M4D7M3I30M3D8M4D15M2D36M4I5M1I21M5D22M1I181M1I94M4I1M3I5M2I27M2D14M1D27M5D141M1I16M4I15M1I16M2I33M4D23M2D6M3I31M1D32M3I23M4I50M5D19M5D60M5D47M3D24M3I68M3I60M1D45M5D30M1I46M2D4M5I27M4I79M5D32M2D17M4D3M1I15M1I1M5I14M2I6M5I20M4D40M1D23M4D13M2D16M2I39M1D53M2D25M4I1M1D7M3D7M2D48M4I31M3I33M3D7M2I18M2I18M1I52M1D64M4D4M3D19M1D26M4I3M2D42M4I2M2I9M1I121M1I6M4I31M5I13M1I14M2I122M4I19M1I33M5I15M2I12M5D6M1I48M1I1M1D43M2D6M3I79M2I45M3I16M1I83M2D17M5D28M1D1M5I7M1I55M3D28M2I93M5D51M2I6M4I9M4I88M5I50M2I4M1D23M4I89M4D2M3I20M4D128M2D36M3I50M3I131M4I5M4I21M4I44M3D4M4I16M3I33M5I59M1D6M1I20M3I25M3D18M1D28M4D24M1I9M2D13M4I5M2I81M1I13M1I33M5D7M4I17M2I88M2D6M5I17M3I28M1D27M4D24M4D22M3D7M4D8M2D22M3D3M2I71M3D23M5D38M2I24M1D5M5D24M1D1M5D7M3D19M2I69M3I50M5I25M3I34M2D37M4D63M2I14M3D37M4I8M2D13M4D30M1I8M5D60M3I14M4D35M1I102M5I19M3I18M4I10M2I14M5I85M1I23M1I10M2D28M2D9M3D25M2D10M4D92M3D43M1I29M5D49M3I4M5I20M2I16M2I15M1I181M2I7M5I43M5D32M4D24M4I26M5I23M3D46M4I46M5D17M5D10M1D85M1I35M4I56M3I43M5D20M4I17M3I44M1I10M1D119M4I24M4I5M3I92M1D45M1D4M2I85M3I77M3D60M5D1M1D24M2D61M1I20M3D37M2D78M5D20M3D17M5D14M1D28M1I45M4I2M3D46M3D22M4I51M2D11M4D27M5D13M5I38M1D32M3I56M1I41M5D32M4I12M3D3M4D24M3I78M2I26M4I45M1I19M4I14M5D42M5I9M5I9M2D24M3D3M2D12M3I14M5D9M2D15M1I20M5D92M4D12M2I46M5D2M4D82M4I9M5I21M3D54M2D53M1I62M4I7M5D19M4I3M3D48M4I53M4I85M3D26M3D96M5D10M2I8M5I63M4D2M5I76M1D3M2I63M5I44M3I56M5D13M4I6M1I25M1D20M5D9M4D35M1I18M3D22M5D116M3I33M3D7M2D8M5D2M2D16M2D16M4D62M3D25M5D6M5I110M4D105M4I96M2I54M4I243M1I76M4I41M2D8M3I46M1D33M4D12M5I52M2I2M3I34M1D9M1D17M3D77M2I2M5D16M5D108M5I11M4I12M5I25M5I47M5D5M1I11M1D14M1I19M4D67M5I10M2D41M3I24M5D18M2D25M5I30M4I30M4I15M1D153M4D5M1I26M2I34M1I1M2I8M2I12M5I81M4I14M2D49M3D66M4D14M3I21M5D100M4D15M1I39M3I10M2I138M4D8M1D54M4D25M2D21M5I1M2D17M5D38M5D53M5D41M4I180M4I17M4I20M3I12M2I47M2D62M4D8M4I46M2D38M4D74M4I60M4D127M2I58M3I91M1D22M4D7M4I8M1I70M3I25M3I32M3D41M2D11M1I48M1D19M3I27M3D88M2D33M5D88M3I19M1I9M1I22M5I2M4I5M1D13M2I22M2D26M3D107M2D68M1I27M3D12M3I67M1D71M5I14M5D69M1I21M3D29M5D3M3I23M4D4M1D2M1D2M1I23M5I34M4I16M2D22M5I48M2D7M2D20M4I16M2D20M2D7M3D31M1I43M3D51M5D25M2D1M3D10M2I29M2D105M5I1M1D34M2I4M3D23M3I75M3I44M3I12M3D18M2D22M4I39M4I16M2I11M1D14M1I6M4I15M4D90M3I14M5D33M5I14M4D2M3I2M3I90M4I10M5D81M4I19M3D122M2I26M4I14M4I9M1D28M5I14M4D28M5I65M5I10M4D23M1I58M1D22M3D15M3I45M1D23M4I47M4D15M1D9M3I19M5I3M4I29M1I7M4D6M1I24M3D106M4D138M5I18M5I5M4I1M1I18M4I70M2D20M3I14M1I81M5D18M4I44M1I18M4D7M1D16M2D12M3I48M1D1M2D123M4I45M5I2M1I2M1I14M3D15M3I7M2I11M3I23M1I42M3I12M3D46M1I17M1D38M3I3M1I9M2I83M2D6M1D51M5D21M2I6M3D41M1D62M3I24M3I4M3I3M1I27M2I56M2D1M4I23M4D63M3I16M2D10M3I2M1I28M2I65M3I74M5I58M5D12M3I13M2D14M3D4M5D17M5D8M5D1M5I25M2I6M3D28M3I11M2I108M2I2M2I6M1D41M1I25M3D26M4I44M2D47M5D55M1I1M2D96M3D11M3I53M5D2M2I84M4D2M1I31M1D41M1I65M3I28M2D133M2D2M2I15M2D7M5D13M5I4M3D11M2I12M2I5M5D8M4I27M2I11M5D142M4D14M3I93M2I9M4I24M4D11M1D46M5I17M2I6M3D101M2I81M2I6M4D66M2D46M4I10M4I224M4D71M2I8M1I16M2D1M5D49M3D30M5I32M1D72M3I82M1I25M4I35M4D20M1D38M1I54M1D24M3D10M3I96M2D23M4D9M3D9M3D8M5I19M5D8M2I16M5D66M5I6M2D19M4I8M2D32M1D82M4I26M1I5M1I5M2D50M3I75M3I11M2I6M4I96M2I47M1D5M1I6M4D15M2D41M1D42M3I19M1D35M3I46M3I2M3I15M5D22M5I12M5I5M2D1M3I8M4I20M3I9M4D11M3D1M2I25M5D7M5D16M5I21M5I11M4D35M4D15M5D6M5D57M1I104M1D34M2D24M1D35M3D36M2I4M2I3M5D9M3I57M4D28M1I22M5I106M1I46M1I5M5D5M1I3M5D10M3I2M3I53M3I24M2D41M1I20M4I8M2I92M2D68M4I5M2D5M2I10M2D11M4D43M2I10M1I17M3I93M2D35M5I7M1I18M1I9M1D23M5I33M3I24M2I2M4D2M5D236M4I78M4D11M3I28M3I2M5D9M3I50M2I36M1I28M4D62M5D17M3I38M3I43M3D22M1D65M1D39M3D12M4D79M3D110M4D4M1D24M3I3M1D54M3D24M4D20M5I7M5I63M1D42M3I14M5I2M4I51M1I3M2I41M1I46M5I4M3D34M4I7M1I2M2I44M4D63M2I36M5D11M1I98M2D25M1I2M5D31M4D12M3D8M2D6M2I22M1I95M1I32M4D50M5I3M1D5M1D6M3I22M1I10M5I2M1D2M1D9M5I99M4I30M5I105M1I14M1I12M3I32M5D34M3D7M4I41M4D13M5I18M4D38M4I39M3I2M1D4M1I12M3D35M1D27M1I67M4I8M2D23M5I42M3D10M3D134M4D45M2D3M5D8M5I8M2I1M5D6M2D36M4I27M1I23M5D21M2D29M4I8M3D134M3I30M4D2M1I74M2I112M2I63M4D75M5D5M2I102M2D9M2I23M5D56M2I31M1I45M3I27M4I3M1D17M1I26M1D16M1I17M2D28M3D34M3I145M5D8M2I11M3I13M3I4M2I11M1I19M4D23M1I10M3I48M5D8M1I76M5I20M4I34M5D46M1D6M5I62M2I2M5I25M3D10M2I7M3I36M3I8M5D2M3I4M5I40M5D2M3I16M5D20M4D11M5D34M2I61M2D1M3D47M2D66M4D10M2I29M3I27M3I28M1D9M4I18M4I61M3D32M4I83M2I55M2I20M5I94M3D61M5D103M4D3M2D28M5D7M2I1M2D31M2D25M5I40M3I53M3I40M5I24M4D68M2D9M1D56M3D19M5I19M1I47M3D42M5D101M1D9M3D4M5D71M4I2M2D31M5D3M1D3M1I4M3D20M2D16M4I11M3I28M3D54M5D29M2I12M1D65M2I81M4D24M1D11M2I11M2D9M3D37M4I28M1D6M2I30M1D3M5D15M2D82M5D40M1D41M1I69M5I28M1I28M1D17M3D187M1I12M3D30M5D15M3I11M1D15M3I12M5D3M4I7M4D10M1I21M5D17M5I54M4I32M5I38M5D19M5I85M4I10M4D11M4D64M1D42M4D34M1D72M4I21M2D8M5D13M1I4M5D50M2D36M2D20M1I56M5D61M5D12M2I54M4I18M3I3M2I28M2I100M3I12M1D6M1D21M5D3M2D19M5I63M1I26M3D31M4I16M3I10M4I37M1I20M4D5M5D18M4I5M2D59M1I94M5I39M1I6M5D41M1D43M5D46M1I13M1D21M3I49M4D15M2D3M5I17M1I11M5I35M1D14M1D10M5I46M2I21M1D61M5D48M5I46M4D4M5D7M3D50M3D23M2I71M4D13M3D23M3D7M1D14M5I19M1D62M1I18M1I37M4D27M4I32M1I59M1D12M2D21M4I72M1D13M3D12M2D10M5I15M3D38M4I1M3D7M1D3M2D9M1I3M2D58M4D18M4I2M3I1M3D22M5I87M4D13M2D24M1I20M1I1M3I67M5I21M2I18M1D18M4I4M2D13M4I10M2I66M1I2M4D37M1D68M5I46M4D14M5D1M5I38M4I26M2I24M4I21M5I22M1I86M2D78M4I7M1D9M4D31M5I4M3I13M4I55M5I95M5D24M4D1M3D15M1I35M5D8M1D25M4I10M5I1M2D13M4D31M4I95M4D21M4I26M1D25M4I6M5D2M3I22M3I8M2D34M2I2M1D4M2D26M4D27M3D9M4I40M3I5M3I24M2D68M5D26M5D17M2I44M5D20M4D32M4I18M4I6M3D9M5D1M3D14M4D1M5D17M1I87M4I16M3D20M3D5M1I18M4D1M2D8M2D15M3D17M4D11M4I70M3I21M1D16M5I61M1I85M2D46M2D10M2D37M1I5M4D17M2I42M3I49M1D7M2D25M5D46M3D23M3D18M1I71M3D4M4I5M2D5M4I50M1I48M5I67M1D65M4I44M5D6M2I120M4I14M3D4M5D56M5I25M3D81M4I106M2D17M3I50M2I109M2I30M1D17M1I22M2D51M2D30M2I18M5I7M2I4M5D61M1D66M1I37M3I11M4I33M2D3M5D3M4I17M4D15M1I30M3D64M4D46M3D25M5D5M1D14M3I8M4D8M5I28M5I16M2I123M2I32M4D13M5D31M4D25M4I35M5D23M5I91M1I27M1D12M1D25M1D1M2I20M4I18M4I31M5I20M4D11M5I10M3I6M2I11M3I54M5D15M1D102M4D1M3D5M1I18M1D10M5I59M3I123M5D26M4I25M4D4M1D6M2I1M4D23M5I50M3I38M3D17M1D15M5D6M1D28M2I8M5D35M3I19M1I21M1I31M1D14M3D42M1D99M1I42M1D8M5D25M3I16M5D21M5D11M4I26M3D17M5D8M1D10M4D42M4D12M1D47M5I1M5D36M4I6M5I14M2I25M5I10M3D55M3I2M2I5M1I30M3I46M4D2M5I4M5I48M5D30M1I26M5D35M5I45M2I23M3I8M3D22M5D36M5I38M3I33M1D108M5I22M5D4M5D23M1D46M3D3M2I106M2I49M5I1M4D2M3D1M2D179M5I97M2I40M1D68M1D44M2D40M2I14M4I17M1I1M4I36M3I3M3D21M2D66M2I1M3I11M4D33M3D38M4I33M4D21M1D1M2D31M3I26M4D16M2D61M1I83M1I55M4I15M2I26M5I5M1I13M1I26M2D26M3I115M1D24M3D18M1D37M2I57M4D32M3D4M1I24M2I39M3D16M4I50M4I35M2D141M4I10M1I5M5D2M3D38M1I26M4I15M5D36M4D45M1D50M1D9M5D9M4I37M4D112M5D11M1D30M4I14M4I18M5I4M2I76M5D29M4D13M2I2M2I28M5D21M2D1M5I17M1I11M5I48M4I36M4I17M3I63M4D21M3D90M3D18M4D75M5D12M5D82M4I11M4D2M5I5M5I36M1D29M5D7M5D7M1D9M3I39M2D85M2I1M1D37M2I41M5D21M3I23M2D17M4D9M5D26M2I31M1D10M1I116M2D9M2I13M3I24M5I51M2D1M4I17M4I67M4I10M4I7M3I32M4D60M2D17M1D47M5I68M4I14M5I45M1D11M4D19M5I31M4I55M3D10M4D33M1D78M4D4M3D8M5D12M2D2M1D2M4I12M4I25M5I55M1D2M3I19M3D8M4D49M1I36M4I22M2D15M4I27M2I3M4D36M1I24M5D16M5I45M3I39M5D28M3I3M2I40M3I21M2D32M2D14M2I20M1I54M5I52M1I11M3D12M2D53M2D9M3I133M5D37M1I98M5I10M3D39M1I16M2D12M3D57M1D4M1I14M2I31M5I55M5I8M4I48M5D116M4D40M4I13M2I127M1I2M4D10M1I3M3I15M2I50M5I17M2I65M4D53M3I16M3D41M1D5M2D103M1I13M2D18M5I79M1I13M4D25M1I45M3D2M3D6M1D18M3D3M4D5M1D3M4I59M4D5M4I5M1I69M1D22M5I51M4D9M4I3M5I6M5I5M3I67M4I2M3D14M2I86M5I57M3I17M2D24M5D14M1I50M4D35M5D17M2D31M2I24M3I74M3D18M5I6M4I63M3D4M4I48M4D11M5D16M4I18M1I28M3I19M3D32M2D26M3I13M4D69M1I24M1D105M2I5M5I13M4D20M2D4M2I11M2I116M4D41M4D169M2D5M2D51M5D37M1D26M5I2M5I35M1D3M2D16M3I2M1I37M2D57M4I21M5I53M1D5M4D30M1I1M1D27M2I93M4I7M3I3M5I18M1D24M4D4M4I6M4I25M1D24M3D12M4I136M1I38M3I4M1D2M3D38M1I14M4D42M2I34M3D41M4D40M3I14M1I8M5D41M1D7M2I39M1I24M2D27M1D11M2D45M4D41M5I19M4D4M5I46M4I16M2D25M4I26M4D12M4D24M2I2M1D5M2D54M2I36M4D65M3I22M1D21M2I40M1D51M4D10M5D1M1D42M2D12M3D19M3D2M4I35M2I50M2D4M5D17M1D31M2I32M4D3M5D102M3D59M2D1M5I88M3I28M1I32M3I1M1D86M2I45M1D22M2I4M1I18M5D22M1D4M2D18M4I10M3I21M1I55M3I27M4D9M1I20M3I15M1I91M1D26M3D216M5D11M3I25M1I74M5D21M2D49M5I2M4D12M5I136M2I31M3D1M1D11M5D28M4I23M1I34M1D24M5I4M1I5M5D3M3I55M5I7M4D19M3D29M1D33M1D17M3D35M4I33M5I16M3I9M5I21M4D34M1I26M5D15M2D1M5D16M1D50M5I5M3I3M4I9M5D23M4I13M5D5M3I28M5I28M4I38M2I38M1D5M4D25M4D56M1I24M1D3M3I23M5I124M3D30M4D98M1D57M2I34M1D26M3I16M4I20M3I3M4D19M5I93M1D23M3D5M2D26M1D2M3D11M1D31M1D57M2I2M4I49M5D21M3D28M3D9M4I12M3D25M4D79M5I49M1I14M4I30M2I25M1I47M5I14M4D58M5D40M3I5M4D1M2D60M2D59M2D3M5I1M3D17M2D7M4I52M1D55M5D46M4I22M5D8M2I14M5D1M4D30M2I3M1D48M5D19M5I41M1D17M4D36M2D40M1I12M3I19M1D22M4D11M5I25M1I1M5D96M4D8M2I22M2D67M4I138M4D10M1D37M4D33M5I11M5D31M5D6M4D26M4I21M4D2M3I59M2D63M3I5M5D12M1I9M5I74M1I76M3D45M2I121M1D17M4I1M3D16M2I50M2I25M4D14M1D28M3D72M4I3M1I7M4D33M5I36M4D134M5D29M4D6M4I36M1D48M3I7M1D16M2D5M3D1M3I1M4I100M2I110M4D51M3D5M3D80M4D31M2I3M1I53M5D64M5D19M5I39M4D53M3D62M5D102M1D14M2D28M4I22M3D3M5I24M1D23M4I70M4D8M2D34M2D6M1I18M4D73M4I15M5D14M3I81M5I51M5I9M3D184M4D49M5D22M3I25M4I46M1D16M2I19M1D69M5D92M4I14M4I40M5D153M3D17M5D19M4I48M5D27M2D49M5I11M1D24M4D25M5D4M2I34M2I10M2D2M3D40M4I26M1I3M4D61M4I76M4D9M5I43M2D49M3I24M4I1M3I49M5I37M4I17M4I10M5D131M3I75M2D6M2I25M4D11M5D6M1I13M4D3M4I13M1I10M2I182M3I18M2I1M2I84M5D10M4I138M4I10M4I13M5D5M4I28M2D7M3D184M2I43M2D24M1D7M1I6M1I39M2D24M1I28M5D2M2D7M3D3M3D6M2I51M3I1M1I21M3D22M2I13M4D32M5D5M1D13M2I67M4I5M2I56M5I68M4I59M4D24M3I34M2I106M2I1M5D21M3D24M5I15M5I2M1I42M3I7M4D10M2I16M1D33M1D83M5I10M1D67M4D44M5I13M1I71M2I3M1I21M2I31M3D30M1D66M5I54M1I8M1I3M1D5M4I5M1D8M4D20M2D36M1D53M4I21M1D4M3D22M5I29M4I28M5D23M2D26M4D29M2I57M2D11M4I23M2I7M5I27M3D8M5I7M5D44M5I23M1I18M1D22M1D106M1D28M3I59M1D3M1D16M2D11M1D21M2D14M1I18M5I231M3D31M2I4M2D16M5I143M1D1M2D1M2I20M1I22M4I44M4D5M2D5M4I47M1I12M1D21M3I55M3D18M1D6M1I1M3I29M5I91M1I30M4D5M1I38M4I23M2D2M5D1M3D13M3D12M5I40M5D7M1I2M5D59M1I117M1D120M2D82M5I18M3I2M3D47M4I31M5D9M1D6M3D3M4I1M4I104M4D45M5I3M2I30M3D33M4D100M3D51M2I66M2I10M1D13M2D73M3I9M5I7M2I35M5I86M5I33M5D10M3I1M5D14M3D52M5D54M2I25M1D33M2D81M2I14M2I35M5D15M2I38M3D57M2I47M2I26M5D23M1D73M3D15M4D16M2I3M5D110M2D13M1D45M4D14M2I5M4D34M3D56M4I5M1I52M1I8M3I17M2D5M2D33M3I39M2D93M5D20M3D7M5I38M1I4M3D83M2D7M3D10M1I50M1I49M4I22M1D37M4D38M3I28M5I32M3I10M1I37M1I12M2I15M2D10M5D10M3I56M1D6M2D15M1D40M1D50M4I139M4D10M2I84M2I12M3D13M5I13M3D53M4I12M4D16M5D11M1D43M5I9M5D29M2I95M1D2M4I8M4D80M4D48M4I14M4I15M1D75M4D10M5D1M3I62M5D33M3D146M3I30M1D18M2I20M1D110M1I2M3D88M1D40M1D21M5D147M2I1M5D23M5I25M5I8M2D122M3I21M3D10M3D19M4D3M2D166M3D4M2D34M5I25M1I19M4D16M1D4M4D13M1D3M5D65M1I13M3I108M2I33M5I24M1D1M2D35M5I8M2I92M3I26M5I15M1D60M4I10M2D18M5D34M3I103M4D31M1I29M1I26M2I130M1I65M5D2M3I33M1I64M1D69M2D5M4I31M3I13M3I25M4D22M1I1M2D6M4D65M2D58M3D61M4D39M4D117M2I122M2D41M5D24M4D5M5D24M3I33M2I11M2D8M4D68M5D36M5I17M5I61M2D71M1I28M5I76M1I31M3I10M3I11M5I4M2I73M1I26M2D2M1D11M1D9M3I4M5D49M5I25M2D17M2I77M1D2M3D45M3D4M2I64M1I21M1I102M4I46M3I2M4I39M5D11M3D4M1I37M5D45M4D71M2D25M3I16M1I39M5I40M3D2M2I32M1I80M5D37M3I62M2D27M3D50M3D28M2D18M1I45M4D15M5D2M2D23M3I15M4D50M3D16M4I8M1D20M1I44M3D14M3D12M1I1M1I4M4I6M5I18M5D11M5I19M4D55M1D16M1I8M4D27M1D38M2D28M5D23M4I2M4I88M3D61M1D30M1D9M4I75M2D93M4I48M4D34M3D19M2I40M3D29M5I34M1D20M2D98M5I23M5D30M2D7M1D8M2I7M3I3M5D19M1D6M5D13M2I21M4I18M5I88M1I12M1D67M5D6M1I6M2I83M4D51M3D1M4D56M5D7M5I18M5D97M3D6M5D5M3I8M3I19M2I85M4I35M5D28M4D5M4D14M1I16M3I50M3D20M1I11M4I2M3I37M5I51M4I39M5D16M3D46M5D80M3D1M1D16M2D57M2I13M3D9M1D11M3I20M2I75M1I12M2I32M5D20M5I6M2D32M2D53M4I21M2D35M3D132M3D13M3I17M3I5M3I87M5D55M3I13M2I28M5D8M2I70M4I51M1I20M3D1M5I16M4D21M1I8M5D28M4I22M3I23M1I45M4D27M1I34M2I1M2D19M3I123M3I1M1D84M5I90M5I10M3I5M1D16M3I21M2I50M4D21M4D9M2D65M5D36M3I1M2I13M1D38M2D26M1I38M3D37M2D49M3D48M3D71M5I37M4D73M4I32M3D38M1I55M2D110M2D10M1I14M5I64M4D5M3I48M5D38M4D53M4D31M4D18M5D2M1I19M4D2M2D70M2D7M4I57M4D3M3I1M1I62M3I25M2D125M5D105M3I14M3I7M1I91M4I69M3I29M2I22M4D30M1I56M4D13M3I21M5I5M3I51M5D45M4I10M5D12M3D5M4I36M2I24M2D38M4D4M2D39M5I156M5I12M3I14M2D32M3D21M1D14M5I29M4D52M2D10M1I6M3D35M3D10M3D2M5I51M1I45M2D9M5I33M5I56M4D3M4I26M5I122M2I57M2D25M5I5M2D44M4I94M5D64M1I17M5I55M5D41M5D1M2I2M5D41M3I31M4I18M4D17M1I14M1I37M1D47M4I4M3D5M4I22M5I73M4I129M2I21M1D12M1I1M2D59M2D156M4D21M3I29M1I27M2D24M4I110M3D32M3I90M3I9M3D59M2D25M5D7M1D66M3D5M4I27M3I6M1I45M2D2M2I40M1I2M3I14M5I52M1D6M4I19M3I77M3D22M4I74M5D8M4I12M2I34M1D45M3D78M5D7M3D21M1I31M3D56M2I24M4D78M1I19M2D82M1D63M2I25M1I29M4D25M5D2M2I4M2I30M4I38M5I17M1D16M4D42M5D42M4D16M3I41M1I21M5D91M4D11M4I47M5I11M1I31M3I13M2I52M5I9M1I65M1D40M2D38M2I6M1I6M5I3M1I17M1D16M4D1M4I43M3D1M2I21M2I28M4D42M1I46M2D134M5D6M2I6M1I34M3I54M4D12M2D17M4D98M1D7M4D63M3I112M5D25M2D1M1I10M1I3M3I142M3I23M3I70M3I7M1D4M4D2M3D8M4D9M4I64M3I20M1I28M4D1M3D6M3D32M2I1M5I26M2D12M1D27M2I23M1D9M2D15M3I3M5I1M1I13M2D7M4I9M2D55M2D70M4D6M4D26M5D81M4D2M2I26M1I11M1D121M5I15M4I27M5D49M4D75M1D7M1I21M1I32M2I80M1I2M3I80M1D4M5I1M3D5M2D6M1D33M4I47M1D45M1D3M3I32M1I17M2I21M4D41M3I12M1D2M2I61M5I63M2I37M1D6M5I19M3D18M3I22M4I53M5I26M1I42M1D74M3I40M1I1M1D19M4I70M2D4M3I23M4D35M4I15M5I84M4I24M3I43M2I33M4I31M5I35M4I1M5I6M3I2M5D32M1I7M5D13M4I12M5I30M4D1M3D7M3I9M4D16M4D6M4I24M4I1M2D15M3I1M2D97M2D29M5D17M2I12M5I16M3I19M2I1M3I24M4I1M1D25M3I13M1I58M3D17M1I117M5I20M5D12M1I12M1D39M3D13M3I26M3D44M2D36M2D140M4D5M1D38M1D16M2I31M1D1M3I29M1I22M4I24M5I73M3D40M1I92M1I3M4I156M4D176M5D18M4I12M5I33M3I7M3I83M3D160M3D116M5D85M4I1M3I5M5D69M5I79M5I2M3D65M5D21M5I10M4D67M2D4M1D29M5D45M2D1M5I11M4D11M5D34M2D10M3I38M1D105M1D44M5D11M5I131M5I2M2D25M5I53M1I3M1I79M1I30M5I75M3I36M2D8M3D27M4I3M4D58M2I29M4I29M5I68M5D11M1D1M2D40M2I3M4I5M2D15M4D25M1D44M4I95M2D37M1I12M4I33M3D8M4D51M1D73M3I10M1D40M1D113M4D9M2I42M3I78M3D91M4I35M5D25M1I3M4D14M4I64M3D13M5D43M5I6M2D29M2I18M3I35M5I25M1I41M1I3M4D9M4I25M3D25M1D5M2I47M5I102M1D39M1D37M5D14M4I28M5I40M5I29M5I6M5D7M3I34M3D5M5D6M2D41M2D27M2I5M5D10M3D7M3I35M1I10M3D3M2I16M1D7M2I39M2D9M3I60M1D11M3I9M2I18M5D21M5I12M4D2M3D3M5I30M5D6M2D13M3D115M2D51M1I40M4D37M5I22M5D9M3I3M3I10M5D30M3I3M1D20M4D62M4I38M4I3M4I33M2D17M1I52M2I46M2I37M4D117M2D3M2I54M2D7M1D17M2I51M1D32M5D12M5D67M3D6M1I6M2I3M1D38M3I20M2D23M4I32M3D115M3I16M1D57M4D41M3I39M3D8M3D11M3I31M1I7M3D14M5D16M5I8M2I22M3I20M4D13M5D48M1D5M1I26M3D35M2I7M2I56M4I1M5D19M4D29M1I56M4I8M2D23M5D4M5D5M2I49M5I41M5D47M3I2M4I135M5D34M4I13M5D31M3D32M3D11M4I48M3I60M4D18M2D3M1I3M3I1M4I19M1D54M5D35M3D11M1I37M5I51M4D26M5I3M2D15M3D5M1I44M5I6M3D6M2I34M2I7M3I1M3I11M2I22M2D17M5I13M4I46M5D5M3D63M4I20M3D10M2I114M2D291M2D3M2I52M1I9M5I16M3D10M4I41M5I31M1D94M3D12M1D48M5I12M2I16M4D52M1I30M4I28M4I31M4D19M2D2M4D36M4I5M3I11M2D31M3D238M2I76M4D36M4I86M5D14M1I1M4D41M2D14M2D26M3I6M2I3M1I31M2I61M3I14M3I10M5D25M5D37M3D12M4D21M3D54M5I7M5I53M2D10M2D44M1I46M2I12M5D92M4D13M5I6M2I45M2I16M5I3M3D11M5I31M3I29M1I18M3I30M1D2M3D6M1I57M2D16M2I27M4D1M1I3M1D70M5D83M3I28M3I68M5D16M5I42M2I22M4D36M2I7M3I12M4D15M2I6M3D2M1I71M5D12M2D83M2D15M3D84M4D118M4D14M1I24M1D6M1I12M3D71M4I43M3D36M1I12M2I59M5I34M3D37M1D1M2D38M3I6M2I36M2I20M5D18M4I23M4I57M3I5M3D60M5D82M3I75M5I6M2D11M2D23M2D24M3I17M1I35M4I19M1D8M2D78M2D20M3D5M2I1M1I18M5D8M5D50M2D74M5D6M2I25M3I3M2I20M1I38M4D4M5I27M4I12M3I11M2D69M2D126M2D4M3I4M2I57M5I13M1D58M1D4M3I13M3I20M5I25M3I33M1D34M5I10M2D20M5D50M5I15M1I8M3I27M4D8M3D23M1D4M3D25M3D35M1D58M3I15M2I11M5D20M5D6M5I26M3D39M4D77M2I9M5I17M5I20M5I22M5D5M2D23M1I21M2D14M5D78M4D5M2D49M1D22M3I8M5I19M2D5M1D17M1D5M1D1M4D27M1D3M2I5M2D23M4D16M1I12M2I98M5D67M5D18M1D5M5D24M3I11M4D7M1I7M1D51M5D12M4I16M3I6M1I3M4I60M3I13M4D131M1D32M5I5M4I106M4D5M5I23M3D17M4I69M2D35M2I146M5I2M3D30M4D20M2D28M3D111M3D53M5D2M4D8M4D30M3D37M4I1M3D41M5I32M2I24M2I58M5I30M2D56M1D5M4D63M5I11M2I17M5I16M2I52M1D21M4I5M3D8M1I11M4D29M2D54M3D6M4D60M2D5M2D10M1I23M5I13M3I23M3I5M4D1M4D55M1I4M4I43M3I44M5I61M5D1M2I24M1D55M3I68M3D6M5I4M2D22M3I34M3D2M3D13M2I112M1I65M4D36M3D8M5I38M3I55M4D18M2D136M3D3M2D4M4I5M1I53M4D22M1I33M3I1M3I17M5I62M3D1M3D88M2I3M2D11M5I4M4I16M2D62M4D4M1D25M1D4M3D17M4D45M3D15M2D10M2D15M4I52M1D1M2D2M5I16M2I25M4D64M3I19M4D31M5I5M3D25M2I18M5D53M1I3M3D22M3I3M5I47M3I18M4I15M4D15M1I4M2I2M3I61M1D70M1D3M5D9M5I1M3D18M2I16M1I6M4D31M2I65M2D31M3I9M5I54M2D144M5I42M1I71M1D194M5D2M5I7M5I51M3D11M5I7M2I12M2D19M4I34M2I41M3I55M3D15M4I44M5D3M5I20M4I3M1I69M4D35M5D8M5I2M5I30M1I18M3D68M3D45M1D37M1I141M3D69M4I36M3D4M2D6M5D30M2D2M4D5M2D42M2I35M3D6M5I7M5D35M1D1M3I2M5I34M3I18M1I16M2D3M1D34M1D134M3D33M1D68M4I103M4I15M2D5M4D24M5D7M1I53M3D83M4I27M3I17M1D1M5I16M4I21M5D6M5I32M5I32M1D52M5I5M2D170M4D28M2I38M3D88M2I29M3I4M3D6M3I18M2I37M5I15M4I22M2I9M4D23M5D44M1D22M1I8M1I10M3D6M4D53M3D71M4D3M1I13M1D22M2I10M3I15M1D24M5D27M3D18M5I7M2I4M5D53M2D24M2I14M2I25M3I63M2I16M1D19M1D55M2D24M1I130M1D2M2I4M2D17M1D213M5I60M2I26M3D12M4I22M1D54M5D18M5I52M5I62M3I50M5I68M5D31M4I4M2D17M5I46M4I4M3D32M2D5M3D28M3D8M3I47M4I46M2D94M5I5M4I21M5D9M1D47M3I52M3I32M5D16M5D22M3D55M3D9M1D47M3I20M4D10M4D25M2I11M4I27M5D14M5I14M3D50M4I13M4I16M4I85M5I35M4D62M2D10M2D33M4D11M4D18M4D7M4I157M4I39M3D10M4I3M4I43M3D57M3I14M1D52M5D13M3D39M2D20M5D84M2D25M4D12M5I1M4D60M2I14M3I40M4D5M3I7M4I18M3D21M4D15M3D30M4D26M2D8M5I16M2D35M1D181M2D4M2D35M4D33M1D50M3I42M1I8M2D18M5I33M3D64M4D10M2D30M1I6M4I31M2I89M4D3M3I27M5D53M4I25M5D7M1D4M3D46M5I15M4D76M4I7M2I21M3I48M1D3M3I55M4I20M5I18M5D2M3D41M1I37M4I32M4D4M4D63M3D8M2D10M2D24M1I25M5D15M5I24M1D24M1I7M1I34M4D22M4D20M5D111M3D107M2D13M5D20M2I20M3D7M1D4M2I5M1I12M2D6M3D57M1D6M1D24M3D78M5I49M5D11M3I8M5D24M4D95M5D9M1I28M3D17M1D7M4D85M4D25M2D69M4D37M2D32M5D23M3D5M3D10M4D1M4D27M5I21M5I9M2D64M3D34M2I19M1D27M1I20M4D45M1I27M4D14M5D16M2D3M5D32M1D27M5D3M4D9M5I38M4D23M2I11M3D2M2D17M3D59M4D4M1I59M4I15M5I25M5I8M5D120M5D6M3D1M3D75M1D9M3D1M2I9M4D18M4D3M4D10M1I24M5I170M3I52M3D16M5D40M4D9M2D103M2D55M4I50M3D12M4D11M1I10M3D70M5D43M4D32M1D31M3D26M5D1M5D38M2I21M1I25M2I32M3D4M2D4M5D25M4I5M4I7M1D65M5D4M2D17M3D8M3I87M2I16M4D24M2I107M2I1M4I6M2I37M5D75M4I86M4D94M4D37M4I27M3I17M2D4M1I73M2D5M3D24M4D13M5D29M1D18M1I2M2D45M2I9M5I39M1I17M1D47M3D116M3I10M1I62M3D6M5I12M2D56M4D71M1D14M5I1M5D1M4I6M2D82M3I16M4D26M1I43M1I39M3D24M5D15M1D6M2D1M3D3M1I34M2D58M2I2M2D9M1D29M3D10M2I2M5I15M1I25M2D2M5D18M4I18M3I4M4D10M5I9M3D6M2D55M4D4M5I6M1I43M5D14M5I24M5D1M3I14M2D57M3D15M1I5M4D57M4D44M1D29M1D44M3I14M2D53M1D7M3I10M4D108M3I10M1D2M3I33M2D18M2D50M4D23M2I70M5D3M2D14M3I4M1D23M2D12M3D23M2D22M2D12M2I55M3D16M1D27M2I10M1I36M3I6M3D84M1D333M1D6M2D2M4D4M2D12M1I6M5D22M3I7M4I15M1I9M5D3M2D30M5D14M4I24M4D5M3I35M3I11M4I15M2I21M3D80M4I12M4D24M1D1M4D39M2I36M4D8M3D2M2I11M2D5M3I59M5D47M1I1M2D44M5I4M4D16M3D48M5I75M2D54M1I75M1I75M2I23M5D4M3I101M5D30M2I44M2I17M4I39M2I68M2D3M4I22M3I13M1I42M3D40M1D5M1D11M3D21M1D2M5I3M5D13M3I35M4I21M3D1M3I34M4D49M4D15M1I52M2I12M3D13M3D26M1D37M3I100M5D10M2D14M5I31M1I61M3I2M2D34M4D43M4D4M1D15M1I44M4I16M4D7M1I17M1D13M4I14M1I49M2D10M2I64M1D36M5D65M5D34M4D33M3I108M1I75M3I37M4D5M2D69M5I72M3D2M3I5M3I50M2D2M3D18M2I26M5I1M2I11M3D45M3I63M1I3M3I42M4D33M1D35M2D56M4I29M1D9M4D2M1I10M5D22M1I42M5D74M4D9M1I39M5I36M2I6M2I52M4D24M1I2M2I28M1I19M1I39M1D52M1I26M2D26M4I35M1D8M2I19M1D55M2D108M2I30M3D9M2D14M5I9M5I8M5D10M3I4M2D2M3D51M4I13M3I1M2I59M4I22M1D3M5I35M1D33M3D5M2I17M3I13M2D15M5D25M4D39M3I54M3I30M5I63M5I21M4I19M3I6M1I60M4D6M1D46M1I14M5D46M2I72M1D30M3D27M3I31M1I48M3D2M2D12M3D14M2D7M2D8M4I19M4I32M2D36M5D37M3I29M1I4M5I14M4I2M5I7M2D3M5I20M3D30M2D27M5D14M4D19M3I21M3D11M1D32M3I84M1D28M5I23M1D24M3I3M3D1M3D74M5D12M1D12M4D14M4I16M1D32M5I28M3D2M2I45M3I76M1I13M3I64M1I20M5D2M1I19M3I1M2I31M3D15M4I34M1D97M1I53M3D142M2D61M2I16M5D25M3D21M1D43M2D17M1I12M1I17M3D21M1D53M4D83M5I24M1D49M3D5M3I44M1I51M3D3M5I5M3I23M1I30M4D15M1I39M2D14M3D36M2D7M2I60M1D14M5D5M1I22M3D49M5D10M4I12M3D3M4D16M3D27M1D41M4D42M2D9M5D74M5I76M3I2M1I11M4I27M2D20M5I72M2D23M5D30M4D113M3I6M4I10M5I41M5I62M1D4M3I24M2I28M4D17M5I40M5D11M1I50M3D8M2I18M3D36M1I26M1I1M4I29M5D13M2I51M2I34M3D33M3I4M1I13M1D41M1D9M2D87M4I11M3D26M2I20M4I29M3I1M5D68M4D5M2D88M5I23M3D18M4I25M1D13M2D71M5D41M5I43M4I44M3D30M3I2M1I4M4I4M2D6M5D40M3D13M1I44M2D49M3D9M1I34M4D38M1D15M3I35M4I20M4I36M1I43M4D7M5I74M5D44M4I2M2D2M3D46M1I1M2D21M3D24M1D192M3I9M2I1M1I29M3D14M4D9M2I16M2D10M2D28M3I59M2I49M2I5M2D21M2I89M1I89M3D39M1D8M2D91M2D6M2I6M2D18M1D60M4I8M3D1M2D1M2D11M2I74M5I67M5I63M4D14M1D14M3D31M4D3M2D22M2I22M3D22M5I8M4I10M4I84M4I40M5D19M2D6M4I4M4D31M3D18M2I14M5D1M1I11M5I27M2D4M1D144M5I59M1I19M5D26M5D24M3D12M2I16M4I58M1D20M4D23M3D19M3I43M2D5M2I18M5D39M2I39M2I36M4D22M3D20M3D34M4I58M3I26M4I4M3I16M5I59M4I22M5I125M3D55M3I7M3I27M1D2M2D31M1I4M2D17M2D17M4I21M2D33M5D1M4D22M1I29M4I1M4D185M4I31M3I3M2D9M3I12M3D1M2I8M3I84M4D89M3D32M2I4M2I6M2D13M1I62M2D43M5D37M1D1M3D11M5I20M5D7M5D41M4I13M4D6M5I2M1D13M1D10M4D10M4D59M4I1M3I11M5I5M4I21M2I11M1D77M5D59M4I21M2I11M5I3M4D40M1I29M3I14M1D13M5I3M3D10M2I3M5I2M5I8M1D30M3I50M2I10M2D60M1I100M5I63M4D10M2I70M1D69M1I51M3D39M3D40M2D11M3D61M4I6M1D21M2I10M4D9M4D2M1I6M1I105M1D8M4I94M5D38M2D15M2D3M4D66M3I25M1I43M4I6M5D4M5I1M4D18M2D22M3I57M1I15M4I16M5D4M4I7M4D28M1D7M5D14M4D11M1D72M1D27M1D32M1D3M4D47M2I52M4I1M2I1M3I12M1I29M2I6M3D20M4D51M2I7M1D1M1D24M4D54M4D11M5D15M5I59M1I1M5I55M5D41M5I8M3D9M2D9M3D26M3I36M4D24M2D3M1I28M3D3M3D5M2D12M1I19M5D21M1D11M5D2M1D1M2I18M1I162M3D31M5D36M5I4M5D17M5D36M3D81M2I5M1I41M4D23M2I12M5I23M4I18M2I14M4D34M1D6M5I2M5D15M3I9M4D97M3I84M4D85M1D47M1D23M4I4M2D16M5I15M3D33M3I113M2I38M5D16M2D26M3D1M5D1M1I4M3D3M5D36M5I16M5I29M2I32M2D22M2D20M3I15M1D4M3D99M5I2M5D8M2I45M4D9M2D24M4I137M2I37M1D19M5D7M2I6M1I26M1D82M2I52M3I40M2I2M3I75M3I49M1I52M1I10M1I39M3D5M4I19M5D29M3I39M2D39M3D38M2D158M5D22M2D32M3I32M3D26M1I3M1D1M4I73M3I128M4D24M1I12M1D17M3D44M4D41M4D13M3D53M4I51M4I4M5I25M1I30M3I11M1I91M1D27M2D1M5D5M1I10M2I51M5I35M2I33M1I29M5I42M2D16M4D63M4D50M1D40M4I8M1I36M3D4M3D35M3I7M5I3M5D75M2D12M1I2M5I13M2D14M1D10M4I17M2D5M1I15M4D49M5I43M4D23M4D24M4D19M4D62M4I105M5D39M2D59M3D14M3I13M3D13M3D46M3D38M5I57M2I36M5D26M4I3M4I19M3I19M4I16M5D30M1D14M3I57M3I35M3D28M4D15M2I3M1I47M5D21M2D26M5D25M3D9M5I3M4I18M1D10M1I17M1I20M1I18M5I2M2D47M1D7M2D5M1I13M5D3M1I61M5I13M4I54M3I71M5D30M1D17M5D116M2I10M5D12M2I47M4D40M3D40M1D11M3I30M2I52M4D65M1D16M3I2M1I31M4I53M4D15M3I17M3I90M1D27M2D18M5I29M2I53M2D17M4I14M4D4M5D37M4I45M1I5M2D17M2D1M3I12M5I15M5D12M3D44M2D60M3I48M5D60M5D60M3I17M2I13M1D4M1I6M3I30M4I35M5I9M2D23M4D76M3D23M4I95M3I23M3D33M3D21M5I15M5I22M4D15M2D25M5I3M3I31M1I25M4D1M4I31M3I1M4I41M4D7M3I43M2D9M5D25M2I31M4I26M1I5M2D14M2I57M2I10M3D116M2I90M1I2M5D36M4I1M5D8M3D20M3I33M5I7M1I32M5D6M5I4M2I8M2I23M5I6M3I9M1I13M5I81M1I60M2I25M5D46M2D65M5I22M1D13M4D11M1I93M2D87M4D9M1I39M4D30M4D88M4I46M4D46M3I23M1D12M3D28M4I20M2D1M5I24M5D49M4D5M1I22M1I52M5D41M5I8M4I49M1D15M1D34M1I16M4D5M2D1M5I19M5D20M5D10M1D27M2D17M5I37M3D12M3D8M1D71M2D45M4I2M3I38M4I68M3D24M1D22M5I4M4I160M1I6M1D49M4D36M1D10M2I25M4I19M2D34M4I42M3I27M3I6M2D76M4I58M3I63M4D36M5I21M1I22M2I5M1I12M3D124M5I11M5D33M5I28M4D12M4I92M4I90M3D41M5I126M3I9M5D55M4D61M2D51M4D33M5D25M1D6M3I10M2I35M3D7M1I4M3I28M2I12M4I41M4D25M1I74M3I13M4I20M2D1M1I5M5D28M4I113M4D42M3I6M5I11M2D18M5D18M5D36M3D50M5I45M1I11M3D5M2I44M2I16M3I108M4D12M4D28M2D6M2D126M3I16M1I17M2D7M2I50M5I1M2D33M3I18M3I31M4I11M1D69M3I23M1I87M3D2M5D9M1I21M4D49M3D109M1D9M2D36M1I43M1I178M2D152M1D2M5I11M3D96M4D56M2I38M2D6M4I56M5D22M2I16M3I8M4D3M3D38M5D47M4I130M2D67M3I118M3I117M3D4M3I19M4D1M5I12M1I59M5I43M2D9M1I67M2I61M5D6M4I33M4I27M3D3M4D4M4D53M1D64M1I3M2I3M2I49M4I21M2I11M5I30M1D1M5D3M1D7M5I47M5I34M2I14M2I18M1D7M2I8M4I9M1I8M2I15M2D52M5I17M3D70M2I12M1I13M4D107M2D7M5D15M4I4M3I15M2D100M3D10M4I27M2I15M3D20M1D17M1I31M5D106M3I20M4I87M4I24M2I6M2D52M3I12M4D41M1D58M3I4M3D30M5I49M4I19M4I61M5I15M3I60M3D7M1I21M1D37M4I14M3D71M4D50M2I10M2I7M2I6M1I3M3D29M3I6M4D7M4I93M2D29M5I46M3D21M2I77M3I43M2I12M3D60M2I1M2I146M2I2M2D8M4D27M1D11M3I57M4D24M1I18M3I28M5D40M5I19M2I29M4I33M4D4M5D66M5D3M5I31M2D5M4I49M5D9M2I72M2D24M2I11M5D2M3D92M5I51M5D56M2I7M5I11M5I39M2I21M3I41M1I11M2D48M3D83M3I12M1I8M1D1M3I17M3D36M3D35M2D33M1D24M4D1M5D4M4D22M5I36M1I10M5I43M3I100M4I14M2D76M4I2M5D49M5I130M1D38M2D1M2D25M2I14M4I10M5I20M1D35M5I46M1I59M5D17M2I44M2D8M4I12M5I3M5D134M2I19M2D20M5D6M5D19M3I6M5I5M4D71M1D3M1I17M3D50M3I18M1I1M3D37M1D21M1I10M1D44M1D1M3I19M2D3M2D6M5D17M3I39M1D3M5I4M3D11M5I1M2D42M2I43M3I60M5I38M1D30M3D8M1D27M2I39M3I24M1D23M5I9M3D13M2I31M2I33M3D6M4I53M4D8M1D15M5D9M3I12M4I17M3D4M1I9M4D23M4D14M4D80M2I7M5I55M1I23M5I3M3D5M4I5M1I19M2D12M5I46M1I25M5I13M3D61M3I2M5I13M2I15M4D8M4D20M4D36M4D21M4I75M5I43M5D23M5I38M4I78M4I33M2I13M3I82M1I17M1I1M5I1M5I42M3D7M1I37M5I2M4D22M5I108M2I5M4I10M4I32M1D1M2I41M3D84M3I16M2D19M2I13M2I13M3D20M4D12M2I3M1I23M3D23M2D2M5D2M2I27M4I21M1D31M4D15M1D69M4D2M4I4M5D136M4D18M1I7M3D104M5I13M2I32M3D58M4I17M5D6M3I42M5D33M5I22M4I32M1I17M2I23M5I8M1D23M3I44M3D20M4D20M5D91M1D12M2D13M1D25M4D34M3I10M2I26M5D9M3D2M5I25M2I109M2D27M2I18M1I34M3D31M2I94M3I15M4D17M3I12M2I2M3D9M2I114M2I6M2I11M5I33M2D47M4D3M3I33M2D11M2D10M5D11M3D11M3D28M1I55M2I38M3D11M4I81M4D12M2I9M5D14M3D47M1I25M2D3M5D4M3I15M4I8M5D59M3D45M4I94M1I6M3I2M1I1M2D4M2D19M2D1M1D18M5I6M3D23M1I9M2D18M1I26M4D32M1I4M1D23M4D35M3I4M4I37M1I30M5D22M3I136M3D84M2D21M5D71M3I54M5D83M1I13M3D8M4D30M3D31M3I49M1D16M4D14M1I4M5I18M5D30M2D18M4I79M1D1M1D48M2I16M1I23M4I25M4I30M1D8M2I21M5I17M3D60M1D41M1D1M5D54M3I44M5I64M2I36M5I16M5D4M2D49M3D41M4I7M5D14M3D6M1D13M1I2M2D19M3D1M5D4M1I41M1I25M3I21M2D23M5D48M5I53M5I1M2D13M5I1M4I20M1D25M5D2M1I124M4I4M2D17M2I58M4I70M3D30M5I47M3D35M5I2M2I35M5D20M4D24M5I8M3I30M4D23M3D61M4I9M3I19M4D15M2D98M1I44M3D7M5D18M1D4M4I58M2D23M2I2M1I6M5D51M5I9M5D61M3I12M2D60M4D10M2I10M4I64M1I1M1I23M1I16M4D5M3I12M1D24M4D7M5I78M2I27M4I40M5D27M5D16M4D7M1I9M4I30M5I31M3I28M4D15M4D55M1I3M5I5M5D8M4I70M4I17M2I45M4I33M5D20M4I39M4I16M1I22M5D167M4D69M2D4M1D9M5I19M3I103M2I4M2I44M1D6M1I106M2I9M5I37M3I7M4D1M2I60M1I21M5D176M2D36M1I26M5D1M5D4M4D48M3D70M5D79M5I12M3I6M5D21M2I4M4D32M4I64M1I102M3D4M1I2M4I40M5D27M3D8M1I13M4I81M3D45M3I10M4I78M5I71M2D94M3I9M1I49M4D18M2D66M3D1M2D62M3I9M5I14M2D24M4D3M5I20M5I7M5D4M3I1M5D20M2I7M4D35M1D13M5I1M1D43M5I63M1D21M5I24M5I30M4D41M4D18M5D40M4D22M1I67M5I28M5D41M2D108M3I3M5D13M1I118M5I5M4D21M2D27M3D35M5I35M3I56M1I13M5I10M4D26M4D87M5D6M5D3M2I1M3I1M2I21M5D154M3D26M5D3M1D7M4I41M3D40M3D48M4D27M2I5M4I18M5I25M4I14M3I23M5D67M4D8M5D16M3I75M4D6M2I75M1I53M3D82M3D64M1I23M5D59M1D57M3D1M3I75M5D4M2D56M1I32M1D9M3I25M1I73M1D9M2I1M5I36M5I28M5I39M3D44M3D9M4I4M4I2M1I30M3I14M4I77M4D31M3I51M5I19M2D41M2I20M5I8M1D2M2D6M2D66M1D2M5I23M1D11M5I39M2D94M1I5M1I84M2I45M1I3M2D38M4D64M4D2M5D24M5D15M5I57M1I134M4D29M5D9M4D16M2D16M2I90M5D8M2I23M2I1M4I33M3I98M4I23M2I17M3D18M2I64M1D28M4I40M1D14M5D7M5D29M1I38M4D8M4I115M1D100M1D24M3I4M4D10M5I26M5I10M5I12M5I83M2I99M5D55M3I10M2I16M2I14M4D85M5D25M5D5M3D13M1D9M5I35M1D9M4D12M2D50M4D99M3I7M4D26M3I77M3I6M4I46M1I19M4I32M4I52M5I25M1I20M4D27M5I33M1D46M5I41M1I1M4I43M3I25M4D81M1I24M5D14M4D7M3D67M2I59M4I1M1D20M2I17M1D37M4I118M5I24M3D32M1I1M2D18M5D2M3I5M5I11M1D34M1D17M4I62M5I72M4I9M5D3M4I8M4I35M2D3M5D30M3D27M2I8M4D4M3I46M1D5M4I2M2I3M2D3M5D123M1I40M1D35M5I4M4I116M5D13M3D90M5I36M5I35M4I89M1I11M5D33M3D46M5D15M5D96M4D33M4D30M3D15M2I7M4D6M3I23M2D68M1D47M5D55M3D19M5D21M3I19M5D33M5D17M3D31M2D13M3I17M5I17M1I30M1D26M4D51M4I10M5I80M2I34M4I2M2I16M2D1M5I26M2D15M5I39M1D15M5D79M3I3M4D7M4I6M3I90M1D33M5I73M5I7M2I70M5D44M1I59M2D27M3D14M5I23M3D7M2D14M3I115M1I24M3D36M2I27M1I2M1D150M4I2M5I115M3I2M1D23M4I1M5D14M3D33M4D27M4D21M2D1M2D5M4I40M5D2M2I8M2I131M2D27M1D60M1D43M4D33M2I18M2D2M1I3M2D10M5D2M1D3M4I13M5I9M2D62M2I3M4I19M5D74M1I81M3D15M2I7M3I7M1I42M5I34M5D39M1D100M4D28M5I12M2D24M3I24M5I14M3I13M5I15M2D15M2D12M1I7M2D65M1I8M5D13M1I49M1D49M5I43M4I20M5I26M5D90M4I25M5I27M4D12M2I22M3I100M2D1M5I38M4D47M2D4M1D39M1I27M4D35M5D44M3D16M1D4M3D35M5I3M1I16M5I27M5I27M4D19M3D55M5D6M4D15M4D7M1I20M1I5M1I2M2I15M5I23M2D29M5D19M2D7M3D70M5D54M3D33M1I58M1I24M2I12M5D16M3D49M1I51M1D4M5I6M1I46M2I161M3I4M1D6M2D15M4I15M4I11M2I104M2D3M2I6M3D37M3I3M1I12M3D28M2I1M3D13M3I29M3I17M2I24M5D4M2D15M4D22M5I3M1D14M4I6M4D22M3D50M2D34M5I5M5I39M3I24M5D16M5I20M2I31M3I20M4D39M1D41M5I29M5D9M4I13M2I8M3I46M2I59M5D17M1I36M3D7M5I45M3D9M4D22M4I40M5I1M3I2M3D8M5I10M3D18M5D64M2I26M3D87M2D57M2D65M1D42M3I40M2D20M2I100M5D17M4D10M3I15M1D2M3I50M4I20M1I9M3I5M2D8M4D94M5I74M3I55M2D24M3I66M5D24M2D47M4I23M3D28M4I40M5I44M5I17M3D37M5D41M4I74M2I88M1D3M1I9M4D29M4D15M5D22M1I18M5D42M4I37M1D20M2I17M2D38M4I51M2I75M3I72M5D15M1D7M1I3M2D5M1I44M3I47M3I12M1D44M1D67M4D97M5D20M2D12M1D32M2I10M4D10M3D1M5I18M2D30M3D58M2D6M1D13M2D54M1I34M5I14M4D7M2I10M3D7M1D11M5I36M4D10M1I23M4D70M4I19M2D80M4D17M3D5M5I16M5D27M4D7M3D4M4D9M2D10M5I48M1I37M3D9M1I28M5I6M3D3M1D33M5I64M5D24M2I22M4D11M2I9M3D12M2D45M4I14M2D15M2D7M1D1M4D92M5I34M4I82M1I1M3I21M1I25M2I102M1D4M3I33M3D71M1D25M5D53M3D39M5D43M5D5M5D17M3I51M1I19M1D53M3I28M1D93M3I34M3I12M2I19M2I60M2I21M5I12M3D21M5I37M1I43M2D20M1D20M2I5M3I3M5D26M2I37M3I77M1I12M1I2M1D28M3I1M1D7M4D24M3D46M3D24M3D1M5D37M3I39M4D11M2I34M1I184M3D76M5I14M1D6M2D26M3I21M4I4M4D71M1I20M5D7M5I144M3I19M1I2M2D12M1I126M5D13M3D56M3I25M2I6M1I3M5I3M5D17M4I10M3D35M5D6M5I55M1D34M4D29M5I6M2D20M4I32M3D9M5I20M3I30M2D51M3D15M3I46M2D45M1D1M1D34M4I12M5D9M2I2M5I18M2D8M3D29M5D59M2I38M2I17M2I119M5D9M4I22M2D10M5D36M4I4M3D22M2D11M1I43M4D86M4D25M1D1M1D29M2D131M4I3M5D5M3D67M1I16M2D13M5I19M4I29M1I59M5D48M4I64M2I33M3I10M3D14M3I19M2I4M4D12M2D14M5D100M1I10M2D25M5I30M4D54M5D66M3I4M1I7M4I5M1I55M1I7M2D99M4I43M5I39M1I39M3I30M5I18M2D20M2D14M3D6M3D103M4I21M3D1M3I38M4D12M2D7M5I56M4D10M3D18M5D57M1I3M2I11M2D6M4D70M2D16M4D44M5I62M3I155M2D14M1D21M1D46M3I3M4D47M5I2M4I13M1D13M3D16M5I116M5I4M2D64M4I95M5I43M1D5M3D7M2I2M5I91M2I60M4D15M5I24M5D14M4D7M3D10M2D18M1D16M3I43M4D15M3D2M2I3M1I146M1D40M4I28M5I10M1I86M5I31M2I72M5D30M4D124M4D52M4I20M3I30M2D23M1D4M4D1M3D11M5I8M5D17M3D2M4I24M4I1M1D41M1D16M1I131M2D12M1I21M1D4M2I1M1I31M2D104M2I41M2D18M2D13M4D26M1I55M1I22M1D17M5D41M1D51M3I27M2I59M4I4M1D21M5D12M5I19M1I6M3I1M4I22M5D17M4I5M3I5M4I25M2I8M1I6M2I40M5I6M3D45M4I8M3I38M4D4M4D24M5I1M2D23M5D12M4D13M5I26M3D13M5I36M3I11M4I93M3D51M1I14M5D16M3I86M1D35M5D44M4D138M1I30M4D14M3I10M1I45M5I23M1D25M3I4M5D28M2D29M2I10M1I4M4I10M2I15M3D21M3I71M4I24M3I18M5D53M2D19M2D1M1D7M4I5M2I15M1D42M2I1M5I20M4D2M3I3M5I58M2I1M3D23M1D39M5I46M1I2M2I58M3I25M1D32M5I54M5I8M1D17M1D24M5D121M2I19M4I39M3D52M5D2M1D16M3D10M1I4M2I33M4D2M1D59M5D59M3I4M5I1M5D10M4I43M4D41M1I4M1I92M2D82M5D2M2D38M3D22M5I32M1I39M5D8M4I3M4I11M3D16M2D35M3I50M2D38M3D50M2I10M5D40M2I11M1D22M2D4M1D1M3I48M5I54M3D6M4D8M1I8M3I13M4I100M3I4M3D23M5I21M1I1M1I4M3I46M4I13M4D29M2I14M1D18M5D17M3D6M3I67M4I13M3I13M5D76M4D4M4I86M1D2M4I42M5D41M5D7M3I6M1I25M4D41M2D38M1I4M4D100M2I25M5I12M1D1M4D2M1I49M4D31M1I169M5D2M3I4M5D26M3D32M4D10M2I14M1D36M1I53M1I19M2D22M1I100M2I9M5I11M5I36M5D13M2D41M5D49M2D12M3I107M2I24M5I7M2I24M3I39M5D6M1I74M4I1M1D13M3D50M4I39M2I11M4D19M1D32M3I1M2I8M2D4M4I32M4D1M4I5M4I18M5D9M1I18M3D102M1D18M3D4M1I36M3I6M5I10M4D31M5D2M5I4M2D14M5I36M3I40M4I51M4I11M3D31M4I2M1I3M4I4M4I36M1I53M3D9M2I47M2I36M4D11M3I18M3D8M3D10M1D36M2I21M3I91M3D75M1D40M5I90M4I11M5I92M2I51M3I117M2D39M2I3M3D33M3I4M1I13M3I116M5D12M5I41M5I30M3D38M2D12M4D35M3D16M2I56M1I10M4I72M5I13M1I3M5I18M1I28M5D131M2I45M1D21M2I27M5I17M4I22M3D4M5D14M2I1M3D12M4I42M2D123M5D5M1D167M4D27M3D99M5I23M1D22M4D15M3I25M4D34M3D18M2I12M1I19M2D58M4I61M2I11M2D9M5I12M2D28M2D24M5I1M2I24M5I45M4D5M2I7M1D41M4I3M5D76M5D33M2I80M5I23M1I98M1D17M5I49M3I10M4D14M5I55M3I3M3D73M2D5M2D51M3I94M4I74M1I127M5I52M3I59M2D12M5I77M5D21M2D7M3D11M2I46M1I41M3I18M5I16M4D6M1I19M1I3M1D112M3I79M3D21M3I30M2I13M4I25M1D18M3D11M1I94M4D21M1D8M2I12M4D8M3I17M5D46M4I67M2I50M4D24M1D1M1D11M1I36M4D72M5I131M2D2M5D22M5I11M1I1M3I38M2I40M1I56M2I13M2I93M3D99M3I16M3I3M1I3M4I20M2I37M2I18M4D54M4D11M1I23M5I10M2I32M2I1M3I5M3D30M4I13M5D11M4D6M4D46M5D13M4D16M1I28M2I94M1D22M2I56M4I54M5D52M1D10M5D32M1D7M4D25M3I16M1I2M2D3M3I14M2D6M4I94M5D1M3D5M5I8M5I3M2D118M1D82M3I3M2D9M3D8M1I5M1D9M4I2M5D3M1D96M4D18M2I11M4I27M3I2M4I101M4I10M3I3M2D31M2I14M2D22M3I6M1I28M4D10M3D31M2D10M5D31M1I132M1I11M3I14M1I15M5D4M5D11M5D48M4D38M2D43M5D3M1D71M2D9M2D7M3I93M5D24M5I15M1I4M4D32M5D23M3D12M3I21M4D9M1D216M3I61M3D8M3D14M1D17M5I53M3D10M3D54M3D63M5D22M5I22M5D35M1D58M2D46M4D10M1I5M5D10M2D13M5I3M4I8M5I1M5I29M4I1M4I12M5D64M4I3M1D6M1D21M5I34M2D45M2I37M3D20M3I1M3I15M3I5M1D3M2D10M2D1M3I15M4I83M1I52M4I7M1D3M4D40M5I22M4D26M5I7M5D76M3D28M1D16M1I24M3I85M4I4M3D87M3I38M3I57M1D6M4D117M5D6M2I1M2D74M1I13M2D100M5D4M4D7M3D2M1I6M3I58M5I17M1D13M4I9M3D8M1I112M3D5M2D92M5I39M5I12M2I1M3I154M2D1M5D3M5I18M4D28M4I46M1D45M5I81M5I25M3I40M4I5M2D6M3D11M3D87M4I4M5D5M4I83M1I40M1I22M4I6M5D14M1D10M2I45M5I93M4I12M4I36M5I63M2I20M4D49M4I7M3D25M3D1M5D3M2D35M4D5M2D41M1I12M1D17M5I151M4I59M5I52M4I8M3D28M3I15M1D15M3I2M5I19M4D1M1D11M3I13M4I41M3D20M2I53M1D4M4D11M5I74M5D11M3I11M2I71M3D24M5I66M2I37M1I3M1I48M3I23M5I2M1D8M4I43M3D28M2D8M1I17M2D11M4D12M1I36M2D66M2D9M2D66M4I27M2I12M1D87M5I56M1D2M3I5M2I59M2D141M4D27M4I59M4D24M3I51M2I7M3I15M2D11M2I2M2D467M4D4M2I12M3D2M2D36M5D41M3D62M5I9M1D7M3I25M2D32M2I8M5D3M5D5M2I100M4I46M4D18M1D24M2I23M3I42M4I131M2D9M1I2M2I22M5I42M4I91M3I47M1I42M1I6M3I46M1I71M5D56M3D76M3D68M1D88M5D17M5D19M5D112M5I23M1I43M4I19M3D32M3I35M3I2M4I37M4I2M2D18M3D33M1I4M4I23M4I40M1I13M4D7M5D29M3I31M3I3M4D6M1I4M1D59M5D16M1I22M3D13M3I90M1I7M1D2M1D35M5I6M1D26M3I25M4I15M5I5M1D16M3I28M5D16M1I51M5D71M2I28M4I26M2I12M5I1M3D2M3D64M5I12M4I73M1I21M3D34M2D39M4D27M3D6M5D74M2D18M5D6M4D75M4I1M2I16M1I14M4I77M1D2M5I38M5I23M2I20M3I31M3D92M3D5M2I44M1D23M1I32M4D6M1I4M3I10M1I9M5D1M3D16M1I36M4I2M5I10M2D5M5D32M1D18M4I87M3D147M2I7M4D47M2D7M1D8M5I13M3I13M4I22M4I40M3D70M1D110M4D21M1D39M2I56M1D7M2I122M2D9M1D73M3I18M1I24M1D53M5I21M1I19M5D19M5D56M4I87M3I7M3D17M2I73M4I22M2I12M5D6M2I35M4D43M4D155M2I19M4D22M3D15M4I38M5D5M2I81M2I46M5I12M3D3M1I67M5I13M1I51M1D100M2D34M5D13M2D2M4D28M1D38M3I29M3I38M3D16M5D4M2D100M5I22M4D30M4D13M4I23M2I14M5I42M5I95M2D17M5I27M3D19M5D19M4I19M1I21M4D39M1I10M2I6M5D5M4I13M1D10M2D108M1D7M2D112M2D3M5I34M3D9M1I3M4I39M3I1M2D10M3D21M5I20M2D13M3D19M5I34M1I10M3D13M3D19M1D76M3I17M1I11M1I31M1I9M5D90M5D23M5I8M4D8M1D19M2I24M3D70M3D12M5D33M2I51M5I80M3I29M4D80M4D10M3I56M1I20M3D118M2I37M1D32M2D2M3I41M4I31M5D1M4D6M4D23M1D7M4I1M4D27M3D9M5I13M4I5M5I11M4D15M3I1M5D24M5D55M5I79M2D26M5D25M4D5M2D1M4I13M4D25M5I24M4D39M4I76M5D2M1I28M1I55M4D67M4D4M1I23M5I6M3I16M3I19M2I73M2I38M4I21M4D6M1I28M3D37M2D17M5I31M5D52M1D5M2I19M4D19M1D114M5D53M4D12M3D56M1I4M3I21M4I33M2D30M2D48M5D44M2I20M2I49M5D49M5D16M1I12M1D10M2D1M3I28M1I20M4D40M5I56M2I54M2I123M3I17M5I27M1I30M5I40M3I12M4I11M1I33M3I17M4D2M5I22M4I9M4I15M2I21M4I23M5D22M4D33M5I38M1D13M5D2M3I10M1I5M3D54M1D96M1D9M3D30M2D36M3D40M2D93M1D88M2D16M4D72M3I31M2I4M1D3M4I7M5D2M1D4M4I186M4I18M4D25M3D20M1D4M1I24M4I20M2I6M2D30M2I2M3I21M5D79M2D77M1D13M1I23M2D11M1I16M4D9M3D14M5I19M2I59M1D5M1I9M2I25M4I24M4D6M2D38M3D47M4D3M2I8M3D28M1D17M5D45M4D30M5D12M1I24M1I1M4I4M1D16M5I114M4D14M1I43M1D21M2I55M1D42M5I4M1D59M5I31M4I27M4I3M5D6M4I2M2D1M3D40M5I8M2D4M3D119M2I18M5I24M5I2M2I9M3D93M2I24M5D1M1I78M4I19M1I144M3I1M3I10M5D20M3I6M5I4M1D35M2D19M1I17M4I25M3D9M1D36M3D7M2I66M3D37M3D8M4I64M5I19M2D8M1I14M1D16M2D17M3I2M1I16M1D29M5I32M3I129M1D29M2I78M3D8M5I113M1I8M1D109M1I11M5I1M4D33M5I51M5D35M4D30M2D96M3D44M5I10M3D18M5D14M2I56M1D15M2D8M3D5M2D7M4I6M4I13M5I15M4D5M3I46M5I18M3I66M2D6M4D7M3D20M5D33M5I12M4I42M4I24M4D8M5D4M4D23M4D1M5I8M2I1M4I19M2D82M5I41M3I9M3I18M1I10M1D1M1I2M2I3M2D47M3I6M1D29M5D109M4D28M4I22M4D141M5D38M1I17M2D37M1I26M1I15M4I24M1D24M5I40M5D14M3I45M1I1M5I32M1D6M3I14M4D12M5I53M3D42M2D71M4I13M1D22M5D58M3D24M2D53M2D23M3I12M4D8M2I10M1D12M2I17M1I86M5D141M1I17M5I69M3I12M4D1M4D3M2D127M5D48M2D81M4I54M2I17M3I33M2D69M3D33M5I12M4I22M4D61M4I32M1I29M5I32M3I3M1D54M4D67M4I20M2I42M1I8M4I2M4I6M5D14M4I73M1D61M1I9M2D15M3D41M4I37M4I28M1I47M4D76M5I23M4D106M5D19M1D19M2D73M4I29M2I17M5I21M1D79M1I14M3I39M3I32M2I11M5D7M5I5M1I5M5I29M3I7M3I57M1I2M3D28M1D8M2D18M1I75M4D130M1D91M3D24M2I29M1I23M2I69M3D17M3I29M2I7M2I14M3I71M5D30M5D24M1D11M2I11M1D14M5D31M3D35M4I18M3D11M4I32M5D39M2I46M4D6M4D3M4D53M5I17M5I4M3D19M4D42M4D10M1D4M1D41M1D11M3D47M5I10M5D22M2D11M4I14M4D73M3I33M1D3M5I60M1I46M3I18M3I34M1I26M5D5M4D55M2D16M4D16M5I3M3D23M4I6M2I11M5D84M4I13M4D8M4I18M1D17M1D17M4I25M5I8M2D60M4D26M4I47M5I16M3I18M4D1M1I12M3I1M3I59M5D68M4I20M5I18M1D17M1D12M4I22M1I14M4D30M1D125M2I6M4I3M4I6M2I26M4I61M2I114M3D47M5I10M1D30M3I28M2I21M3D17M1I83M1D27M2I65M4D1M3D1M3D136M3I28M3D3M1D53M4D10M4I16M2D30M5I47M4D3M4I72M2D29M4D25M1I28M4D19M5I22M3I5M3D40M5D52M4I116M5I49M2D15M1I5M3D24M2I15M3D65M5I15M1I37M5D2M1D13M3D26M3D49M1D40M2D6M5D6M1D6M2D3M2D1M2I4M2D193M3D21M1D28M5D31M5I45M5I24M2I71M2D5M4D70M2D25M3D16M1I12M3D10M1I100M5D44M4D45M2D31M5I20M1D21M3I5M1D18M2D29M1I3M4I81M4D31M2I14M2I10M1I49M2D9M1D14M1D9M3I17M5I69M4I57M3I33M1D11M3I69M1I63M5I21M2I57M5D67M3D11M1I62M4D23M3D29M1I13M4D28M3D34M3I15M1D80M5I96M1I35M3I32M5D8M1D16M3D43M1D24M4I20M4I30M4I1M4D19M5D11M5I60M5I78M1I41M2I17M1D3M4I4M4I32M1I58M1D2M4D40M2I12M1D38M3I119M4D46M4I4M1I8M5I26M3D61M4I32M2D99M1D15M1I8M2I52M2D4M4D63M2I38M1D7M3I10M2D22M1D36M3D81M3D1M2I6M5D2M5D9M5I19M5D11M2D53M1I20M4I31M2D13M5I11M2D27M3I12M3D15M2D129M5I2M1D43M3D16M4D11M2I46M3I39M2D2M1I49M4I36M4I6M3D23M3D27M4D24M2D8M3I5M5D28M1D9M3D40M1D43M5I69M3D10M2I20M1I3M1I8M4D33M4D56M2D17M2D50M2D65M4I26M5I38M5I30M5D23M1D39M4D4M2I4M2D44M5D126M3I13M5I20M4I14M1I52M4I5M3I64M4D30M5D16M3I42M1I5M1D1M1I10M4I15M4I22M5D2M3I14M5D36M3D49M3D4M2I5M5I36M2D53M3D28M2I12M4I66M1D89M1D28M1D74M3I23M2I113M3D38M5I34M3I33M5I61M2I27M4D18M1I15M1D19M5D51M5D2M4I21M1D27M2D19M4D236M2D37M1D3M2I4M2I87M3D12M5D1M4I58M5I5M1I7M5D20M4I5M4D32M4D4M4I9M2I67M3D57M2D17M3D4M2D8M4I46M2I1M4I81M2I17M1D50M5I48M1I53M1I58M4D22M1D38M2I32M5I1M2D86M4D24M4I64M2D13M3D12M3D10M4I3M2D33M2I5M2D15M3D21M4D2M1I8M5I3M5D7M3I4M4D12M2I48M2I57M5I81M2I8M4I61M4I58M4D17M2I70M2D88M2D22M5D89M5D15M4I1M1D27M2I36M5D18M3D11M4I13M1D9M4D25M2D40M2D69M1D58M1I43M3I104M4D61M5I7M4D17M5I3M4D5M4D10M3I97M4I24M1I31M3I177M2I11M1I4M5D38M4I61M5D39M2I13M3I53M2D5M5D6M4I19M1I12M5D11M2D25M3D78M4I20M4I44M5I79M2I10M1I8M2I23M2I3M1I48M2D36M4I13M5I20M5D54M2I15M3I11M1D23M2D29M1I44M2I13M1I67M1D23M3I22M3D23M1D5M3D39M5D16M5D32M5D21M3D29M2D178M3I59M1D65M1D123M2I124M4D68M3D4M1I2M4I27M3I5M5D25M2I1M4I19M4I8M5I39M5I41M1I4M3D39M4D28M2I2M2D9M4D23M3D29M2D34M2D6M3I10M5D17M1I18M1I62M1I8M1I3M1I35M1I17M4D169M2I78M1I42M5D40M5D29M4I138M5D44M5I9M3D13M1D47M4D138M3D38M1D32M4I38M5I4M1D16M1D20M1I34M5D13M2D22M4D21M4I3M2D15M4I16M2D7M4I38M5I52M1I11M1I30M5D56M2D27M2D49M4D15M1I10M2D89M2I11M4I28M4I15M2D41M1I93M5D12M3D7M2D5M1I10M2D26M3D11M5I17M4D29M5I9M5D18M4D69M3D4M2I35M4D29M2I2M1D75M4I54M1D1M4I18M4I2M5I57M1I9M1D43M1D3M1D86M2D74M1D42M2D11M4I7M1D39M3D23M3I9M4I2M3I64M4D21M1D26M2D4M2I3M2I11M1D61M3D49M5D6M1I4M3I27M3I41M5I48M5D1M2D3M1I134M2D11M5I6M4I58M4D45M3D48M3I71M5I40M4D22M2I57M5D14M4D6M5D3M3D55M2D30M5I6M4I4M4I1M3I21M3D22M2I79M5D15M4D14M1I11M5D62M4D53M5I10M1D41M4D13M1I114M3D38M2I1M4I35M1D70M3D22M2D70M3I32M2D4M2D53M5D18M2D16M1I23M4I12M3I51M4I9M2D12M4I58M3D2M1I8M1I18M3I33M3D29M2I75M2I18M2D9M2I129M3I19M1D13M5D20M3D2M2I16M5D3M2I3M5I57M3D134M4D21M5D7M3I22M3I68M3D16M2I20M2D2M2D1M2D16M2I53M3I6M4I25M1D54M3D11M4D64M1D3M5I77M4I131M4I52M4I1M2I3M4I49M3D27M2I17M3I42M5D50M1I12M2I37M4D2M1D10M2D83M3I3M5I20M4I29M3I52M4I5M1I1M5I49M2D31M1I2M3I21M3I15M4D21M5I24M3D34M4D2M4D65M2I82M5D46M4D31M2I77M2I8M2D15M1I8M5D3M4I5M2I29M1D13M5I8M5I30M1D1M1D8M2I76M1D61M5D2M2D24M1D28M5I13M2D124M4D59M1D35M4I29M5I21M4I59M5D7M4D15M3D28M5D58M2D17M1D8M2I52M5I165M4I80M2D33M5I45M5I10M5D16M1D171M4D14M4D13M1D5M5D31M3I8M5I32M5D12M4D3M1D16M4I15M4D79M5D20M3I27M5D54M3D4M2I11M2D102M2D31M1I71M4I48M3I47M3D86M5I7M1D27M5I3M2D2M2D2M1D7M4I70M4I27M5D77M5D61M2I51M2D13M5I29M3D10M3I96M4I5M4I27M5I36M5I4M4I10M3D47M5D9M3D19M4I20M4D27M3I3M2I85M1I40M4I1M4I23M4D1M4I140M3D17M1D63M5D17M3D19M2I4M3I44M3I9M4I16M3D7M2D49M5I47M4D5M2I3M3I44M2I2M2I45M4I55M4I33M1D44M2I90M5I5M2I8M4I113M4D62M1D31M3D78M3D30M3I9M2I174M3D24M3I6M3D7M4I31M4I14M3D24M5I15M4I45M2D6M1I29M5D3M5I3M5I44M3D96M4D9M4D102M3I7M4I5M1I67M1I32M4D17M4I37M4I6M3D2M4I2M2I46M3I37M3I107M2D11M4I65M4I94M5I20M1I4M2I33M4D56M2I1M1I40M3I5M1D73M4D103M2D21M4D9M5I20M1D29M2D2M4D12M4I40M4D7M2D21M3D29M4D11M2D25M1I17M3I61M5D22M4I39M3I16M2I25M5I62M2D10M1I26M1I7M5D22M5I41M2D3M4D28M5D4M3I9M1I46M2I9M3I7M1I10M4D6M5I123M1D55M5I14M1D22M1I11M1I5M3I23M1I40M2D21M2I8M3D9M2D21M3I8M2D2M3I95M1I3M2I8M1D22M3I13M1D22M3I93M3D125M3D6M1I57M2D36M2I44M3I28M5I26M3D40M2I10M5D12M3I66M5I28M4I15M3I12M4D65M1D10M3D5M4I47M3D9M5I18M5D75M3D7M5D21M4I104M2D57M2I22M1I3M1D39M3I25M1I15M3D1M1I116M2D58M1I40M3I5M2I65M1D80M2D6M3D5M5I1M2D3M5D6M2I15M1I116M4I2M4D83M2I2M2D60M4D5M1I12M1I29M1D1M3I50M2D110M5I102M2D17M2D44M4D146M4I20M5D25M5D47M2D2M4I34M4I24M4D34M3I39M2D78M2D100M3I16M1D13M4D24M3I1M4D84M3I38M2I21M1D28M1D3M4I55M3D46M2I35M4I71M2I4M3D40M4D48M5D14M4D20M2I31M3I5M3I4M5I91M4I61M3D48M5I1M5I70M2I38M1D38M5I11M3I20M5I26M1I3M4D81M5I28M4I73M3I21M2I5M5I69M4I9M2D39M5I4M2I37M1D48M4D81M1D6M3D20M3D4M3D19M4D4M2D11M3D10M4D72M1D112M4I25M4D1M5D43M2D17M1I12M3I8M4I16M5D9M2D165M1D33M3D9M1D14M2I61M1D2M3D24M5I10M5D7M4I3M3D17M1I7M5D33M2D30M2I7M2I14M3D19M2D44M5D14M4I85M2I7M2D8M4I6M5D2M2I29M1I56M2D15M3I55M1I1M2I19M3D21M2I21M2D9M2D38M5D13M1D13M3D35M3D18M4I13M1D49M5I5M2I8M2I3M3D78M5I84M3D53M1I51M5D10M2I14M4D15M5I7M2D2M1D96M2D43M3D24M3D3M2I12M4I5M4D7M4I22M1D4M3D23M2D3M3D9M1D25M3I46M4D42M4I6M3I55M2I59M3I3M4D20M5I77M1D24M4D35M1D41M5D2M1D74M5I10M4D28M3D175M3I2M5I26M5I25M3I5M1D2M1D4M2I32M1I15M1D63M5D56M5D2M4D68M2I5M1D57M1I12M4I27M3I27M2I16M1I24M5D4M1D35M5I69M2D26M4I48M1I1M1D47M1D18M5D25M1I6M2D5M3I1M2I4M4I38M4D1M1I23M4D27M1D10M5D45M4I65M4I21M5D7M1D18M3I9M1I12M1D10M5I22M5D21M1I23M1I12M1D10M1I20M5D6M1D1M5D25M2I20M1I25M3D7M4D75M1D50M1I8M3D2M3D5M1I7M2I26M1D59M2I11M3I38M1D41M2D7M1D28M2I16M5D9M2I1M1I84M2D27M5D2M5D26M1I31M4D26M1D12M5D81M2I28M3I49M1D22M3D8M2I2M3D25M1D52M5D20M4I2M4D13M2I8M2I1M5I28M3D22M1I18M2I54M5D47M3D2M2I18M2D34M4I9M1I2M4I149M5D149M4D2M4I55M4I60M5D22M3I60M3I38M3I27M3I2M1D30M5D53M4D12M2I17M5I9M2I27M3D19M2D178M1I17M4D7M3D2M2D14M3I31M4D38M2D61M4I62M4I16M3D20M1I7M1D20M1D46M2D47M2I76M5I21M1D26M1D27M3I1M1I18M2I7M2I15M2I12M2D10M5D19M4D6M3D35M2I1M5I76M3I17M1D5M1I26M4D36M3D8M3I71M5D48M4I4M2I19M1I95M4D67M5I14M3D69M4I15M2I6M1D13M1D34M1D124M4D6M5I54M5I54M5D39M5I1M3I4M2I14M2I12M4I3M1I5M2D3M5I74M1I1M2D21M2I6M1I39M1I137M4I38M5I14M5I30M5D27M2D10M4I12M2D43M1D34M3I44M5I25M3D122M4D15M4I32M2I23M3D19M1D50M5I63M3I11M2D20M2I16M5I9M1I16M1D91M1I11M1D10M2I38M2I45M4I22M2D16M5I19M3I56M1I154M1I18M5D25M3I14M2I25M4I2M1I29M3D49M4D45M4I6M3I18M1D32M4D7M4D11M5D24M1D58M5I8M1I4M4D15M5D61M1I5M4D27M4I5M5D18M4D1M4D11M3D31M4I2M5D12M5D9M5D26M1D9M5D10M4D31M4D117M5D49M4D115M3I1M2I66M3I15M3I8M4D9M5D17M4D95M3D29M1D14M1D4M1D11M2I23M1D11M5I12M2D9M5I12M5I8M5D148M4I10M4D10M3D38M2D124M5D27M1I29M2D8M3D151M3D73M4I2M3I112M4D20M4I20M5I25M4D156M3I49M4I36M5I14M4I5M4D10M5D4M5D31M5I7M5D14M2D59M1D32M5D42M4D2M5I7M1I64M2I2M1D20M5D20M5I20M2I41M5D68M4D14M5D15M3D41M4D13M2I14M5I57M2D3M1I130M5D54M3D154M2I7M4I54M2D76M5I1M1I15M4D38M4I4M2I14M1D15M5D7M3D37M1D25M1D14M4I168M5I11M5D1M5I24M4D38M1I69M1I12M5D67M1I99M3D6M5I18M4I28M3I137M2I17M5I46M1I91M2D1M2I72M5D20M1I12M4D7M1D41M5I30M4I133M1I67M4D208M1D78M3I101M4D27M4I28M3I67M3D2M1I2M1I75M3I4M5D3M2I57M3I40M1I54M4D38M1D16M4D49M3D108M5I44M2D8M3I2M4I26M2D47M3D26M5I66M5D4M3D27M3D6M3I3M2D45M1I18M4D23M4I43M2D2M3I46M5I114M3D81M1D43M3I4M2D42M3I18M4D25M5I55M1I21M2D19M5D15M4I16M3D2M3D84M3D25M2I39M5D1M5I4M1D25M4D20M3I9M4D34M1D4M1D19M5D87M4D14M5D102M3D58M3D64M5I80M2D13M4D56M4I4M4D29M1D55M4D15M4D42M5D51M1D14M3I19M4I7M4I3M2I10M4D9M1D19M3I11M5D54M1D3M1D23M4I26M3I89M3D124M3I1M5D1M1D39M1D7M4I81M2I12M5I58M1D13M2D23M1I25M2I27M2D5M3D3M1I1M3I20M4D53M2I22M5D67M5I36M1D16M2D25M5D5M1I12M5I64M5D70M1I49M1D65M4I14M5I15M5I21M4D24M1I75M5I10M1I4M4D52M4D4M5I2M3D95M4D21M5D40M4D78M2I39M2D46M5D3M1D5M2I16M4I20M5I94M1I44M3I203M1D22M5D4M2D27M2D19M4I7M3I32M5D31M1D2M2D33M4I38M3I26M5I19M5I26M3I2M3D5M2I2M3I4M3D70M3I13M3I16M1I8M5D9M2D15M4D17M3I58M5I40M2I23M1I20M2I16M3I15M1D74M2I41M1I6M3I2M2D51M2D17M2I48M5I32M5D6M4D36M4I23M2I20M3D10M5I25M2I4M2D47M2D38M3I1M4I41M1I39M1I56M3D25M4I8M2I7M2I8M3I10M3I27M5D7M1I18M3D38M3I41M3D108M5I7M2I12M3I71M5I18M2I131M3D72M4D4M4D28M4D11M4I15M1D27M5I3M4D11M4I6M5D5M1I36M3I2M2I10M3I61M3I80M4I4M3D3M4I10M3I82M3D8M3D1M4I76M3I31M5I122M1D27M3I9M3I17M1I45M3I4M4D14M3D20M3I18M3D1M1I60M2D113M1D39M1I10M4I18M1I12M2I16M4I11M3D11M4I6M1I1M3I2M3D42M1D29M5D30M1D29M5I44M4I38M3D7M4D44M5I46M4D28M3I19M3I30M1I8M4D1M4D30M5D106M3I7M1I6M5D9M3D24M3D7M4D39M1D27M4D97M2I36M1D14M2I4M5I19M1D44M3D58M1I4M4I20M5I34M2I39M5I31M1I41M4D85M3I13M4I52M3D34M3I5M3D41M3D102M5I40M4I16M2D105M4I80M3D36M3D19M3I40M2I79M1I46M2D83M5I14M2I23M5I17M3D53M2D19M5D12M3I28M2I25M4I18M2D66M4I35M5I5M4D27M5D29M1D7M4I15M5I3M3D6M3D53M5I203M3D32M2D36M4I22M4I36M1I8M2D90M5I24M4I18M3I11M4I8M5D118M1D44M4D2M4D23M3D20M3D37M4I4M3I17M1I22M1D95M3D1M5D37M3D34M2D39M1I20M4D19M2I28M3D2M5I74M2D8M3I81M5D1M3D15M3I6M1I43M5D7M1D2M1I14M1I49M4D8M3D3M4D4M1D49M2D80M4D200M1I5M2I36M3I75M3I13M5D57M1I43M5I4M5D3M1D23M1I10M1D6M5I10M2D50M2D40M3D80M5D8M5I20M1I72M4I4M2I94M4D61M4I1M4I8M1I47M5D3M5I2M4D119M1I46M5D13M2I6M3D2M1I7M3D40M3I34M1D14M1D19M1I33M2D34M1D55M2I1M2I5M5D15M3D56M5I32M5I4M2D31M1D23M2D120M3I123M5I23M3I18M5D47M2I80M3D15M2I35M2D8M5I12M1D34M3D46M5D17M1D77M3I7M2D32M2D19M5D28M1I24M2I24M2I3M4I4M2I3M2I58M4D1M4D16M4I24M5D29M1I5M1I27M2D34M4D24M4D36M1D74M3I53M2I61M5I23M4I22M1I156M5I3M1D10M4I5M3I67M2I2M2D21M1I25M5I46M1I62M1I118M1I66M4D43M4I1M1I40M1D13M1I44M1I2M2I3M2I40M4I8M4D2M2D52M3D7M4I52M3I17M2I2M3D8M4I68M4I37M4I75M3I59M4D14M2D24M1I5M3I26M3I31M1D11M3I72M5I8M1D22M5I10M1D84M1D46M2I74M2I7M3I51M3D4M3D8M4I32M1I6M3D20M2D30M4I1M4I14M4I52M3D85M3D16M1D6M2D31M4I46M5D11M4D24M5I8M2I3M5D77M5I31M1D28M2I2M3I31M4I10M3D4M5D7M4D10M3I9M4I37M5I3M4D4M3I15M3I14M4D25M2I25M4D9M3I4M4D36M4D52M4D2M5D15M5D7M3I27M5D29M1D36M1D57M2D13M3I16M4I27M2I15M4D19M4D75M5I3M3I6M1I22M5I3M4I6M4D29M1D63M3D43M3D45M3D3M4I14M5D121M3D12M3I4M5I23M4I17M1I9M1I6M5I46M3D35M4D19M4D14M4D87M3D15M1I31M4I11M2I28M2I41M3D8M3I4M3I12M1I7M3I27M3I8M1I34M5I45M2D49M2D13M5D7M5I6M4I3M5D6M4I134M3D9M3I18M4I29M5I10M2D141M3D31M5I5M5D41M1I43M5D2M4D15M2D7M3D55M5I84M4I50M4D14M5D2M4D39M5I27M3I20M1I4M4I19M5I114M3D31M1D33M3I19M2D6M4I23M4I68M1D56M3D9M1I117M5D80M4D48M1I47M4D36M3I3M2D44M5D25M3D16M4D3M4I138M3I37M1I26M5I35M1I4M2D3M5D30M2D11M1D2M3D101M3I46M4D1M4I13M4I46M3D6M3I16M4D26M2D4M4D3M1D19M1I30M3D31M1D16M1D5M5I36M4D15M5I15M4I23M1I14M1I60M3I3M2D32M1D4M2D83M1D23M5I36M1D33M1I9M3I4M5I18M5D14M1I16M3D8M1I77M3I28M1I15M1D65M4D6M3D9M2I10M4I8M2D112M5D45M2I18M4I72M5I6M2D178M1D19M2I38M2D105M2D15M1D44M4D6M4I11M4I154M1D29M3D3M1I14M1I80M3I21M3I5M2I54M1I1M1I75M5I3M1D53M4I15M1D17M5I173M4I40M4I65M5I4M5I25M3D23M5I15M4I37M2D34M4I22M4D8M4D26M5I13M3D29M1I106M3D4M5I1M3D19M1D50M3D58M2I33M4D13M1D29M3D87M1I17M2D61M3D126M4I4M1I7M2D17M5D62M3I48M3D11M5D14M5D65M2D33M5D3M4D7M2I31M2D122M2D37M3D101M3D55M2I19M3D23M5D19M4D19M3D40M2I56M4I2M3I35M5I83M1I13M4I1M2D52M1I1M5I21M5I11M2D39M4I5M5I26M5I60M3I4M1I47M5I10M4D66M1I58M2D14M4D39M4D28M3I11M2D35M1I20M3D6M4I42M2D9M1D2M1I8M1D33M4D36M3I103M1D81M5I4M1D29M1I4M1D125M5D5M4D42M2I1M3I3M5I6M5I12M1I10M2I49M5I3M4D89M5I16M3D2M2D16M1I59M4D3M2I25M4I13M1D4M2D41M2D17M4I15M5I26M1D3M3D54M5D2M1D61M4I10M4D7M1D9M3I83M2I47M3D58M1I8M1I70M5I11M3I78M4D32M5I13M5I29M2I26M4D12M4I74M2D28M5I40M4D39M5I32M1D10M4D7M2I13M5I27M1D5M2I6M3I18M5D39M4D51M4D32M4I25M5D66M1I52M3I10M3D15M1I12M2I2M3D28M3D126M1I33M3I19M5D48M4I3M3D14M5D44M1D116M1D7M5I116M4D42M3D38M4I8M4I11M2I5M5D8M1D19M5I49M1D9M1D17M1I8M2D19M3D10M3D12M2D49M2I10M1D56M3D56M3D29M5I39M3I21M3I16M1D18M1I39M2D17M1D22M2I7M1D37M2D37M2D2M3I42M1I5M4I2M5I49M3D21M4D18M2I2M3D11M5D155M1I69M2I57M2D53M3I59M4I41M5D23M2I35M1D47M2I20M3I3M1I8M3D39M4I47M5D18M5I55M1D7M4I15M1I28M5D65M1D95M1D10M1I13M2I13M5I2M3D38M2D24M5I38M4D2M4I33M3I7M4I21M4I38M5I60M3I5M2D82M1D13M4I18M5D32M2D4M4D2M1I21M1D80M5D69M5D88M1D10M2D11M4I8M1D77M2D13M1D24M1D3M4I10M2D9M2D70M1D54M5D6M5D66M1D52M2D9M1D9M1I1M1I25M2I35M4D2M1I50M4D56M5D4M3D5M4D15M1I13M1I19M5D92M5D3M1D7M1D67M4I14M1I132M1I11M1D53M5I59M2I1M4I9M2I24M5D28M4D32M1I17M3D28M1I31M2I95M2D83M4I10M3I16M1I44M5I135M3I13M5I36M3I10M3I23M4I27M1D35M3I21M4I65M1D18M1I4M5I11M2D39M3D1M3I11M1D60M3D84M3D30M3I65M4D4M3D45M2I9M5I12M4D3M2I10M1I1M2I61M2D25M3D14M1I37M4D25M1I14M1D13M3I7M4D21M4D6M1D23M5D26M1I31M1I81M2D7M1D28M2I21M1D82M3I31M1D52M4I2M1I48M1D16M3D4M5I105M5I13M3I12M3D52M1D90M4I37M5I76M5I60M5I8M3I31M4D17M1I12M5I45M1I3M4D13M2D15M4I96M2D15M4D25M4I1M4D2M1D99M3D42M1I3M1D11M2D38M2D29M2I5M2D46M4I37M4D16M1I80M3D16M1D8M1I28M3I29M5I28M3D65M3D27M5D66M5I40M4I27M3D20M1I48M2I35M4I41M3I20M5I8M1D38M5D27M1D107M1I2M1D31M2D25M5D32M2I123M4I14M5I25M4D17M1D4M4D6M5D36M3D16M1D32M1I60M1I25M4I13M5D61M3I14M4D11M3I48M4I30M3I1M5D66M1I32M3D1M2D36M3I32M3I10M2I2M5I13M3I65M1I24M4I13M3D8M3I22M4D3M4I80M3D21M3I10M5I16M1D28M1D42M2I6M3D3M3D31M5D1M5I1M1D17M3D82M3I12M4D59M2D55M3I1M5I40M2D38M2D29M1I20M5I51M5I16M4D19M2I6M5D9M2D50M1I31M3I166M3D32M2I8M1D28M4D3M2I9M2I5M3D47M1I12M1D114M2D4M2I80M2I12M2I34M5I26M2I2M2D27M2D39M5D14M1I39M3I9M5D14M5I2M3I2M4D13M1D21M3D43M2I3M3I45M2D90M3I10M3I16M2I2M5D17M2D26M4D25M5I8M1D101M2I12M5I39M1D103M4D65M4I22M4D51M4I50M3D20M2I13M2I37M1D121M1D19M4D15M1I28M1D36M3I40M3D13M4I56M3D62M4I48M4D14M1I3M4D32M3D126M1D16M4D3M3I50M2D11M3I12M5I33M2I11M1I16M4D73M3I30M4I57M3D22M3I8M3D2M2D32M3I48M5D82M3D14M3D10M1D8M2D36M5D7M3I10M3I33M5D21M3D23M3I31M2I6M5I9M2D12M5D40M2I14M3I65M4D6M3I20M1I1M2I29M2D116M2I60M2I25M2D1M2I48M5I18M2D8M3D19M4D8M3D16M3I38M5I27M1I76M5D39M1I1M1I24M4D77M2D63M4D14M4D34M5D31M5D26M4D24M5I57M2D43M2I41M3I6M5D10M5I115M2D14M5D22M5D45M2D15M2I3M1I4M1D8M3I12M4D3M4I93M2D13M1I30M4D20M5D7M3I50M5D68M4D18M1D16M5D20M2I29M5I24M2I5M3I30M2D2M2I46M3D13M2I8M3D1M5D22M2I19M4D5M1I46M2D30M2D51M2I62M3D98M5D83M1D28M4D43M1I25M2D13M4I1M2D18M3I22M2D51M3D92M2D8M3I49M5I47M3I54M4I2M4I5M5D30M2I17M3D11M2I14M2D39M1D5M4D68M4I9M3I52M4D19M4D5M2D83M3D53M3D26M1D38M2I60M3D51M2D7M3D25M3D35M3I11M2I111M4D4M4D5M5I149M1I169M2I3M4D14M3D49M1I10M2D34M2D30M5D6M1I40M4I18M1D63M1I21M4D98M1I3M1D2M4D6M2D1M2I16M5I4M4I66M3I19M2I5M1D14M4I74M3I100M2I5M2I15M1D49M4I64M4I21M4D54M1D17M4D18M4I62M3D11M2I3M2I20M4I2M3D176M1D67M4D84M3I23M2I15M4D62M4I21M3I38M2I29M1I25M5I38M5D57M3I1M2I50M1D49M4I6M4D171M2I40M4I12M3I93M2I111M3I4M3D1M1D26M4D6M4I7M3D6M3D52M3D11M3D14M2I74M5I25M5D1M4D48M2D2M1D132M1I104M4I5M4D10M5D27M1D17M2I13M1I80M2D28M2D67M3I81M4I30M4D20M5D1M2I18M5I73M2D10M3I19M2I7M4I24M5I3M2D15M3D40M4I61M4I9M1D18M3I4M1D2M4I27M5I50M4I50M1D8M2I3M1D129M5D12M2I58M2I1M3D6M3I27M5D139M3D6M2I30M2D60M5I10M2I15M1D27M3I2M1I80M3D27M1I25M4D49M2I2M4D25M1D93M4D31M4I19M2I15M4D22M2D23M2I31M5I7M5D3M1I82M5I2M3I6M2D8M2D5M1I29M5I31M5D9M2I70M5I8M3D29M3D9M3D41M3D116M1I36M2I42M2D63M1I14M2I14M2D13M3I57M4I93M3I83M2I33M5I18M4I14M3D8M4D11M1D19M2D49M1I1M3D6M4I7M4D32M3D1M5D3M3D85M4D30M4D47M5D11M2I25M4D18M5I35M3D8M4D9M3D31M4D19M1D17M2I14M3I54M2D6M4D2M4D17M1I34M4I14M4D33M1D30M4D27M3D99M1D111M4I119M1D33M3I154M5I20M3I38M5I18M1D20M3I28M3D6M4I4M5D8M4I23M2D1M1D19M1I1M5I17M3I44M4I52M3D28M4D23M5I69M4I41M5D108M1D36M5D66M5D10M4I34M4D16M2D7M1D35M1D45M5D22M5D68M4D18M2I37M3D12M3I17M1I3M2D36M4I1M4I43M4D9M4D59M2D21M1I9M3I26M3I9M2I5M5D4M2D43M4I38M2D27M3D2M2I72M1D2M4D131M1I22M1I51M2D5M1D5M4I14M3D3M5I102M5I86M4D73M1I22M3D28M4I52M1D44M3I26M1D55M3D114M2D4M4D72M3I19M2D32M3I12M3I44M1D140M4I40M5D16M1D7M4I12M1D13M5D12M5I21M1I8M2I9M4I1M5D86M4D94M1I4M3D34M2D53M2D8M3D3M5D3M2D20M1I9M3I29M3D72M4D79M4D7M1D31M5D2M1I34M3D36M1D56M5I32M5D48M4D15M3I19M3D1M2D24M2I17M2I47M4D44M2I12M1I114M4I34M1I21M5D52M2I47M1D4M3I61M5D10M4I12M3D40M1I14M3I27M4D1M3I27M3I4M4I4M2D73M3I76M1D80M1I68M2I40M4I88M3D22M5I4M1D20M2D10M5D11M5D7M4I64M4I50M2D4M1I24M5I13M5D41M4I18M1D8M4D1M1D5M2D23M4D25M5I43M3I10M5D8M1I7M2I15M5D9M2D1M1D38M3D121M4D28M1D117M2D24M3D104M5I17M1I30M3I18M4I6M1D39M3D20M2I11M1I58M3D46M2I36M3I9M3D61M3I13M2D40M5D3M3I6M1I16M3I47M4I18M2I12M4I44M1I25M4I24M3D10M1D14M2I72M1D7M4D46M1D16M3I49M2I33M4I2M3I1M1I4M4D20M3I23M5I8M5D30M4D51M1I3M3D58M4I9M3D15M5I61M2I46M4I4M5D49M4I7M3D15M2I3M2I26M2I4M3I75M1I122M2I19M2I56M1I5M5D88M4D18M3D61M4I9M2D15M1D4M2D43M1D11M5I2M4I51M3D7M1D11M4D77M4I15M2I4M2D19M5D2M5D54M4D11M2I69M1I7M1I13M5D37M1I35M5D7M4D37M5D20M4I35M1I69M2D43M4I94M5I5M4I43M3D35M4D58M3D49M3I18M2D65M3I76M2D18M2I45M1D51M2I11M1D13M1D16M2I8M1D29M3D3M1I57M1I6M2D28M3D144M3I28M4D5M5I115M1I12M5I1M3I88M1I3M1I21M5I10M5D40M3D95M1I60M2D2M2D6M3I28M3D10M5I45M1I14M1D3M2D6M5D60M5D63M2D19M1D66M2I48M2D55M3I109M4D8M1D56M3I10M2D60M2D163M3D21M4I92M2D13M5D7M5D21M5D11M1I12M1I98M1I7M4D14M1I14M4I50M1I89M1D8M4I14M2I38M3I17M2I37M5I22M4I14M1I33M2D23M2I33M2I35M5I20M1D36M2D7M5D58M3I91M5I2M1I1M2D21M1I15M1I9M5D17M1D5M4I36M5I15M3I6M1I20M4D46M2D10M2D78M4I91M1I61M1D63M3D15M4D98M1I6M5D24M4I75M5D3M4D18M2D102M5I23M5I4M3I7M3I82M3I65M2D113M2D10M1I73M5I45M5I32M4I29M2I17M1D14M1I6M5I50M3D7M4I10M4I25M3D31M3D3M5D1M3I35M5D18M4D35M3I58M2I64M5D2M2I15M2D162M1I22M2D5M3I23M1I70M1I18M2D80M4D31M5D58M5D26M5I74M3D27M2I19M2D21M4I27M4I27M4I8M2D26M4D146M1I38M4D11M4D32M3D4M2I19M1I19M3D27M5I20M5I18M1D12M2D69M5D16M2D95M5D78M2D2M5I31M4D16M1D1M3D23M2D21M1D26M3D32M1D7M4D30M4I66M1D28M4I71M4D7M2D32M1I43M1I11M5I3M4I1M5I59M5I32M1D61M5D97M3I1M3D3M2D20M2I19M3I3M2D2M3D19M3I2M3D12M3D36M4I55M5I1M3D62M4I114M5D115M3D78M5D7M2D71M4D20M5D46M4I25M2I29M2I62M1I38M4I1M1I93M5D31M4I33M3I34M2I28M4I10M4I24M5D13M5D47M5D3M5I60M3D2M3I1M4I30M4I25M5D7M5D5M4D70M2D63M5I12M2D57M1D23M4D8M5D51M3D17M4D6M1I26M3I43M5I15M1I40M4D27M5I2M1I44M1I5M1D5M1I21M3D2M3I17M2I13M4D8M3I16M3D19M5D137M2I46M2I7M4I11M4I10M5D1M2D41M4I28M4D33M1I61M4D13M4D33M3I3M2I8M3I49M4D9M1I4M3I15M1D18M3I11M1I4M2D21M5I41M4I13M3I108M3I68M5I64M4D6M4I10M1D17M1I6M5D46M1D64M2I2M2I12M4D72M2D21M1I18M1I44M4D13M3D30M3I16M1D2M2I84M3I13M4D8M2I74M1I19M4I16M4D50M1D7M2D73M3I16M2I11M5D33M5I3M4D85M2D64M2D26M1I10M5I9M5I10M1D25M3D7M4I34M1D24M5D6M4D92M3I23M5I52M3D12M2I11M5I2M5I75M1I2M3I17M3D54M3I59M2D23M3D9M4D20M4I5M3D71M1I14M2D18M3I8M2I17M1D44M4D36M5I11M3I19M1D19M1D2M3I26M1D43M3D19M1I122M4I30M2I23M5D59M1I4M5D23M5I1M3D2M2I62M4D13M4I93M5I27M3D41M5D16M3I22M5I42M2D24M1D62M4D12M1D16M4I19M1D32M3D39M3I2M1I53M4I2M2D6M1I17M2D43M4I2M5D80M1D51M2I39M1I22M1I39M4I30M3D9M4I12M4D10M1I126M5I120M4D49M2I8M5D42M5D32M5I11M3I22M3D35M4I15M3D50M4I1M2I10M4I12M3D20M5D113M3I10M5I3M4D1M3I51M1D11M3I7M5D28M2I14M3I23M1D4M1D8M4D52M2D2M2D35M4D18M5D19M2I68M3D37M5I11M1I6M1I16M1I7M3D38M3D4M4D4M3I9M2I24M2I20M1D10M1D3M5I15M5D17M5I63M5I3M2D97M1I32M1D60M4I65M2D2M1I1M3I8M5D17M4I7M4I27M1I16M1I5M5D81M1I43M4D9M5I14M5I31M5D10M3D24M1I12M5I1M4I26M2I54M4I15M1D27M2I23M2I10M5I90M3I29M3D14M5I10M5D11M5I21M5I21M4D62M5I5M3I21M5D25M5D40M2I24M5D6M1I8M4D54M5I40M5D1M1D3M5I218M4D7M1I1M5D3M5D1M5D11M1I108M5D2M5D1M5I11M5D72M1I50M2D36M1D2M1D56M1D6M5D38M3I16M4I5M3I25M2I2M5I48M1D19M3D32M1D14M4I3M2D25M2I26M4D6M2D4M2I5M2I74M5I6M2I12M2D38M1D1M5D3M3D16M2D1M1I28M4I131M5I13M1D74M1I12M5I37M3D8M2I12M4D52M1D8M5D28M5I35M1D39M5I12M5I37M4D27M5D55M3I15M3D134M2D57M4I37M1I10M3D119M1I46M4D153M3I26M2D29M2I18M1D15M2D17M5I1M1D58M2I64M5I44M3D26M4D11M4D13M1I27M5D1M4I7M1D9M5D74M5I39M5D5M5I1M5D11M2D16M2I35M2D24M3D11M1D15M5D10M2I8M1I78M5I83M3D12M1I32M1I15M1I9M4D32M5D26M5D48M1I16M3D39M2I48M2I9M3I24M2D31M4I55M2D18M4I11M2I2M4I30M4D56M4I72M4I9M2I75M5D136M4I17M3I10M1I9M3D1M4D46M4D38M3I30M1D64M5D28M4D22M3I5M5D8M1D3M1D27M5D71M2D25M2D1M1I19M2I35M3I6M2D61M3I40M1I78M5D12M4D41M1D68M3D27M4I47M1D5M3I50M5D2M1D83M1D41M1D140M3I93M2D106M4D65M2D20M1D25M4I50M5D50M2I18M5D20M2I23M5D1M1D9M3D40M5I11M5I50M5D9M4D19M4D2M2D69M4D51M1D27M4I101M2D17M5D26M2D68M3I61M4D2M3D36M4D1M2D13M2I3M5I3M5D91M1D64M2I24M2I4M1D18M4I38M3I16M2D6M3D8M5D10M1I30M3I6M4I27M4D4M3D8M1D9M5I34M3D12M2D53M1D19M2I66M3I47M2D26M3I13M3D28M3I27M2I3M4I14M2D19M1I18M4I25M2I68M5I6M5I33M1D35M1I34M4I92M4I50M1I6M4D3M2D3M1I71M2D1M5D14M3D42M1D21M4D28M1D34M1I75M5D4M3I82M4I15M3I50M5I68M2I90M4D4M4D22M5D74M5I16M4I9M2D17M4I11M4I16M2D11M2I80M3I92M1I51M5D2M2I46M5I21M2I21M5I75M3D19M3I43M5D10M1I52M3I20M2I226M1D15M5I13M2D49M4I18M4I16M3I86M5I7M1I7M2I23M4D22M5I37M2I40M5I13M3D2M3D65M3I5M2D37M4D122M3I13M4D27M5D2M2D38M4D1M4D7M5I41M2I9M4D11M5D27M4D7M2I9M5D35M3D22M3D50M3I21M3D72M3I103M5I25M3D13M2D17M5I14M4D23M4D93M4D1M4D101M2D21M5D3M3D11M4D1M5D53M3I16M2D20M5I11M5D9M2D78M1D147M1I25M5D153M5D12M2D37M5I46M5I44M2D5M5D48M2D85M3I17M3D15M2I16M1D91M1D29M1D6M2I8M2I37M5I80M1I3M3D46M1D7M5D16M3I7M1I74M4I63M4D5M2D37M4I9M4D68M5I26M5I21M5D15M5I41M4D14M4I9M3D2M4I35M5I3M2D29M1D12M1I2M4I54M1I16M2I28M5D6M1I1M5I7M4D11M5D11M2I26M5I9M2I66M1D39M3I12M1D42M2D34M1I10M4D12M5I97M3D9M4I10M1I21M2D18M3I31M5D7M2I14M5I90M2D31M4I16M1D7M1I99M4D70M5I16M1D82M2I53M2D32M2D169M2I13M1I58M3D8M2D16M3I1M5I2M1D52M4I54M4D62M2D16M2D5M2I12M1I21M2I108M1D37M2D3M4D32M5I17M2I7M3D24M3D46M3I21M1D113M3D29M3I57M1I3M5I3M5D109M1I19M1D5M3I6M4I21M3I4M4I12M2D5M3I79M2I3M1D59M1D46M4I72M1D58M3D70M1I36M2D37M1D5M4D39M2I11M1I18M2I2M2I79M4D11M5I25M4I27M5D32M1I35M4D7M2D5M1D8M4I10M3I54M5I6M4I43M1I52M2I3M5I7M3D31M1I35M4I53M1D72M1D15M5I7M5D4M3I1M4I39M3D1M4D34M3D8M2D5M2D13M4I119M4I4M5D42M5D41M5D69M1I37M1D4M3I48M2D8M1D9M1I13M3D10M2I49M4I51M1I6M1D151M3D9M1D14M3D1M1D24M1D7M5I1M3I24M2D5M1I57M3D8M5I26M5I59M4D46M4I88M4I57M4D24M2D7M3D24M5D8M1I59M1I7M4I64M3D1M4I72M3I9M2I24M5D1M1I12M1D34M1I32M3I35M1I72M3I26M3I13M3D23M2I7M1D9M5I36M4I80M4I34M3I17M5I38M4D1M4D26M2D77M3I25M2D10M3I14M4D29M1D44M2D24M5D45M5I4M5D22M3D2M5I3M5I34M2I48M3D14M2I27M4I30M4I50M1I2M4D17M2D33M1D45M4D50M3I10M2I19M1I6M3I105M2D20M1D25M3D8M3D14M4I16M2D5M1I12M3D20M3D6M4I14M2D16M2I5M1I12M2I83M2I9M4I36M1D27M4D56M1I58M5I53M5I35M5D23M4D57M2D16M3I1M5D7M5I11M3I5M5D99M2D70M4I7M5I14M2D25M5D4M2D3M2I58M2D4M1D23M4I6M5D16M4I25M3I36M3D88M3D34M4I28M4I40M3I62M2D47M1D8M5D22M5D4M2D40M4I12M3I2M1D13M5D62M2I19M4D104M4I21M2D5M1I102M4I32M4I14M2I1M5D19M3I24M3D7M2I54M1I46M4D33M3I37M2I15M2I5M4D12M4I23M1D6M1I3M2D3M2D1M3I26M1I39M5I2M1D28M1D16M1D2M4I55M2I6M2I110M3D23M1D19M5I54M3D27M2D38M4D21M4I9M4D3M2D59M3I34M4I19M4D17M5D10M1D3M3I51M5D5M1D74M2D4M3I10M1I6M4D16M1I38M5I66M3D66M3I15M2D1M1I35M3I43M2I22M4I25M3I6M4I55M2I14M1I158M4D27M2I18M4D44M2I16M2I6M2I17M2I25M5I60M3D5M3I101M2I17M1I53M2D1M4D3M1D21M3D1M1I9M3D39M1D14M5D19M4D10M2D4M4D14M3I22M1D61M1I80M3D30M1D6M1D7M2D21M4I4M4D52M2D4M2I32M5D34M2D33M1D7M2D75M1D12M5I55M4D24M2D43M5I22M4D23M4I68M1I24M3I31M5D32M4I55M4D8M1I29M1D45M4D10M1D22M5I35M1D13M1I18M4D12M3D10M2I16M1I61M2I53M5D8M5I33M4I9M4D26M2D14M5I1M4I11M4D11M2D7M5I51M4I24M2D27M4I23M5D9M5D75M1I46M5D30M2D11M2I25M3D61M3I60M4D12M5D37M3D8M2I64M4D1M4D13M5I5M5I11M3I6M4I8M3I4M5D50M5D1M3D25M5I22M1I10M3I37M3D36M1I26M1D1M1D14M4I80M2I72M4D62M3D8M4I20M1D5M5D13M2I34M3D1M2D1M5D17M4I51M5D30M2D10M4I75M3I13M4D52M1D127M5I10M2D70M3I22M1I30M5D15M5D5M5D1M4D85M2I22M5D60M5I32M4I16M5I46M1I18M1D24M2D14M5D3M5D43M3D4M1I32M2D57M1D5M2I13M2D46M3I5M5D8M2D11M5I51M5I20M5D40M2I10M1I76M4D51M1D163M5I14M2I7M5D110M4I13M3D19M3I2M1I39M1I45M2D111M1D74M4I50M2D9M5D24M2D59M4I52M4D57M5D68M4I7M1D35M1D19M4I1M2D65M5D20M3D56M2D26M5I19M2I21M5I14M3I19M1I18M5I3M1I17M2D8M3D6M2D34M2D1M2D1M4D18M2D91M4I48M5I3M1D42M3I1M1D18M4D19M4D1M1D17M2D19M4D70M2I7M1I48M3I46M2D19M4I54M4I3M4I46M4I81M2D46M4I20M1I3M3I4M5D23M3D16M2I32M1I21M3I11M5I23M1D8M2D16M1I71M4D6M1I44M5I14M4D70M1I4M1D70M1D108M1D4M4D25M1D30M1D2M3D1M3I12M3D24M1D12M5D6M5I45M5D4M4D17M1D16M3D29M4D20M4I32M2D11M2D6M1I26M3I68M2D70M1D70M3I21M3I22M4D48M5I30M2I18M4I17M1D26M1D10M1I13M5I18M3D43M1I19M5I28M3I36M5I74M2D113M4I11M1D12M3D54M1D48M5I9M4I50M3I7M2D5M3I45M3I4M3D11M1D8M3I34M4D40M2I16M5I20M5D2M2D82M2D29M3D1M3I6M1D13M5D35M3I18M2I3M3D9M3D60M3D92M3I1M4I8M2D35M4D19M2D2M5I1M1I7M4I14M4I10M1D45M3I7M3I16M5I124M2I55M4I18M5I68M4D23M3I55M4I22M3D61M2I21M2D9M4I61M3D54M5D34M2D52M3I37M1I20M2D11M4D10M2I24M1D6M4I7M1I65M5I69M1D13M1D37M5D24M3D20M4I47M3I93M2D32M1I91M3I14M2D29M4D5M5D5M2I81M4D17M5D3M2D5M1I8M3D31M4D39M2I56M4D133M2I62M4I33M2I123M4I47M4D44M3I17M4I6M4I11M5I7M1I4M1I3M3I5M5D19M2I144M4I52M4D20M4I24M2I20M1I37M2I50M4I23M1I18M3I2M5D8M5I23M4D6M1D52M4D67M1I19M2D39M3D28M2I51M2D41M4I78M4I11M1I12M5I54M4D30M3I149M1D161M4D46M4D1M5D8M3I18M3D88M3D27M5D33M4I5M2I7M5I71M1I12M5I34M3D38M5D13M3I44M5I15M3I2M4D13M4D14M1I18M4I6M2D63M2I36M1D41M1I68M4D20M3I8M5I26M3I49M2D53M3I26M5D52M2I52M3I4M4D9M4I31M1I16M1D18M2D15M3I3M4D106M4I10M1I14M2I10M5D4M2I9M4I62M5D3M2D38M4D184M5D92M4I47M1I80M4I10M5D38M1D9M4I6M5I79M5D77M5D40M1D43M1D4M4D3M2D32M2I29M2D9M4I163M4I18M5I82M4I9M1I6M5I8M5I13M1I9M4D11M2D1M1I30M1I4M1I6M4D62M3D20M4D3M5D13M3D88M3D1M1I38M3D126M5I32M1D12M1I37M4I17M5D62M4D86M1D26M2D1M2D31M2D52M5I25M4D73M1D9M5I39M4D30M3D56M1D123M2I88M1I84M2I19M4D16M5D5M3I5M3D112M4D14M1I5M2I34M5I25M2I5M5D6M2I10M2D30M2D89M4I1M3I7M2D13M2I16M4I17M4I27M4D17M5I81M5I8M1D5M5D2M3D48M2I13M2D69M5I42M4I78M2I111M2I60M4D33M5I40M1D81M2D2M1I12M2I31M2D34M2D11M1D16M2D11M2D15M4I31M5I16M3I14M3I17M1D79M3I42M5I1M5I45M5D5M3D2M4D83M5I2M3D19M5D6M3D7M5I14M2D6M2D3M3I54M1I68M4D10M3D71M4D152M3I5M2I45M2D96M3I10M4D39M4I15M1I6M1D37M5I25M4I9M2I40M1D34M5I5M5D3M2D6M1I66M3D17M3I16M4D3M3I12M1D70M1I43M4I22M1I15M4I17M4D11M2I36M1D2M5D10M2D13M5D9M3D9M5D3M4D1M5D1M5D5M4D75M4D24M5I33M2D31M2D12M4D12M3I129M4D11M3I1M4I30M1D22M3I19M2I1M2I32M2I86M2D18M2D56M4I25M2I31M5D63M5D1M1I34M5I29M2D31M5D17M4I25M5I2M4I2M3D16M1I12M2D8M2I3M3D30M3D78M1I4M2I35M2D38M3D28M4I137M4I109M3I5M2I6M2D43M3D11M4D165M3I4M3D57M4D3M5I68M3I92M4D10M5I24M5I1M1I22M4I58M2I54M4I4M2D43M3D44M4I28M5D22M3D16M4I9M4D1M5I58M3D59M1I37M2D17M1I40M4I29M5D4M3D40M1D10M4I4M5I49M3I1M1D16M2I5M5I13M1D8M4I9M2I33M2D34M1D35M5I22M4I33M3I38M4I6M5D15M2D37M1D32M1I108M3D18M5D22M4I10M1I17M3I19M4D5M4D68M2I14M5D1M3D29M5D135M2D33M4D42M2D41M4I17M1I23M4I23M1D25M4D31M3I9M4D136M5I20M5I13M5I50M5D124M4I16M3D3M5D101M2I16M3D1M3D84M4D30M1D32M1I23M4D28M5D6M2D40M1I3M3I11M4D5M3D39M5I1M2I7M5D54M2I21M5I21M2I12M4D16M4I17M2D64M5D15M5I35M3I47M1D1M4D1M3I8M2I54M3I80M1D1M5I3M5D23M1D3M5D51M1I37M5D19M2D14M4D17M3I25M3I59M4I50M5I19M2D87M3D5M4I26M1D17M5I14M2I13M1D99M4D14M5D15M3D47M4I37M5D4M2D79M4D14M4I63M3D13M3I1M4I34M2D92M2D18M3D12M5D34M2I9M2I74M2I26M3D55M3I25M5I4M4I10M2I103M3D41M2I2M3I15M2I117M5D15M1D5M5D6M4D7M3I11M4D35M5I1M1D11M5D4M5D126M2I14M5D29M4I10M4D16M3I2M3I31M2D54M3I84M4I57M5I22M5D54M2D14M1D6M5D98M2D9M3D27M2D9M2I15M1I9M1I37M5D37M2I25M4I6M2I21M5I20M2I29M2D110M1D31M5I32M3I44M4D76M2D24M4I11M4D62M4I35M2I15M4I39M5I107M5D19M3D92M5I2M1I10M3D11M4D18M5I53M4I22M1I60M4I4M5D2M3D51M2D3M3I65M2D38M2D31M3D18M1I1M2I43M3D34M3I71M5I48M5D17M3D18M4D74M2D79M3D36M5I1M3I68M5I24M1D84M2I55M4I39M5I23M1I22M5I39M5D7M1I24M5D18M5I1M2D88M3D60M5I119M5I17M3D6M3D9M3I13M3D3M4I4M1D3M4I14M1I34M5I62M4D4M5I6M5D42M4D1M4I6M1I15M5D34M1D46M3D123M5D93M4D20M5D90M5D36M1I2M2D26M3D44M1D62M2I71M3I49M3D9M5D36M1D27M2I30M3D97M3I18M2I10M1I14M1D63M3D32M1I25M2D24M3D48M4D14M4D1M2D32M5D113M2D27M1I7M1I18M3I27M5I8M2D2M5I29M2I3M4I34M1I20M3I77M5I26M1I3M2D43M5D75M4I39M2I49M5D32M1I14M1D20M5I4M1D45M4I3M5I3M2I99M5I18M5I26M3D17M5D32M5I15M3I3M5I1M2I26M5D54M4D10M4I16M1I24M4D1M5D18M2I91M4D9M4D33M1I30M5D159M3D43M4D36M4D10M3D33M3D13M3I15M4D27M3D1M1D40M4D65M1D1M4D61M3D18M5D4M5I6M2I25M3D125M5I31M1I4M5D42M1D81M5D40M5I26M3I1M5I50M4D14M3D10M5D2M1I44M5D61M2D35M1I38M3D4M3I4M3D4M1I22M1I37M1D2M3I50M3D4M3D131M5D11M3I8M2D3M5D87M1I18M3D78M1I24M1I24M2I44M4D17M3I10M3D23M4D11M1D10M3I67M2D41M3D9M5I42M4I6M4D5M1D17M2I9M1I13M2I22M2I25M5D43M5I101M2I4M3I11M2I18M5D27M3I11M4D64M1I6M3D24M2I1M1D6M1D85M5D2M1D20M4D27M5D13M5D28M4D113M4D19M5D5M1I2M1D92M4I43M4D120M1D20M3I5M5I40M5D16M4D15M5I19M4I5M3D6M5D48M2D49M4D50M2D39M4D9M1I49M3D6M3D35M2I1M3D58M1D82M1I45M2D25M5I8M3I4M4I3M3I40M3D57M3D6M2D46M2D6M4I74M2D14M3D4M3D22M2D54M5D3M3I61M3I15M1I52M3I26M2I29M2D31M4D18M3D14M1I56M2D12M1D20M3I16M2D12M4D2M4I31M2D12M3I73M5D23M2D45M2D4M1I3M5I14M1D4M5D72M2D21M1D2M5D91M3I17M4D18M3I9M3D4M2I18M3D23M4I75M3I12M5D1M2I28M5D25M2D6M1I42M5I7M4D27M1I14M2I12M3D40M4I20M1D51M4D50M4D47M3I53M3I5M1D2M5D33M4D96M3D67M2D3M3I49M1D9M3I45M5D1M2D7M1D8M1I75M2D30M4I20M5I22M5D1M4D5M1I36M1D8M4I34M1I21M3D35M5D1M5I26M5I50M5D29M5I64M4I1M5I65M2I59M3I49M2D40M3D115M3I28M1D1M1I3M3D9M4D141M4D11M3D7M4D41M5I29M5I40M2D27M3D7M1I3M4D8M4I8M3D2M2I1M5D46M5D32M5I23M5D32M2D169M3D85M2D39M3D68M3D59M1D11M2I13M1I22M4D8M1D1M3I9M5D22M1D23M5D22M5I12M2D29M5I2M3I1M4D15M2I85M1D50M5D8M5I7M1D21M1D39M1D49M4D6M1D133M3D127M5D1M5I16M3I10M2I30M4I28M4I15M1I10M1D21M4D28M2D4M4I29M5D6M2D32M5D26M5I46M4I13M2D45M1D29M5I84M1D8M4I38M2D47M2I32M4I60M1D39M4I27M4D32M3D41M4I17M4I20M5D16M1I17M4D11M4I35M5D29M2I19M4D15M3I17M2D29M4D31M2D37M5I10M5I107M4D1M4D63M2I6M2D37M1D35M3I63M1I31M1I19M4D1M2I16M5I44M4I7M3I18M3I42M1I47M1D10M4I16M5D6M2D16M5I1M5I38M2I71M1I15M3D19M5D81M3I75M1D3M1D21M5D64M5I25M4I14M4D85M1I23M5I3M5I3M1D13M3I29M2I19M1D10M3I56M4I21M4D3M2D9M4I39M5I97M5D48M1I82M5I34M1D15M1D38M2D4M1D19M4D14M1I50M1D14M1I1M4D48M5D4M3I5M1I2M1D59M3D8M5D93M4D17M3D30M3D24M3D31M3D52M4I25M4I12M3I7M1D41M5D60M5D26M2I4M1D23M5I38M5D15M5I75M1D4M3I30M2D9M4I41M5I34M1D4M3I43M5D3M3D12M5I1M3I31M4I78M2I8M5D86M1D8M4I12M4I31M5D46M4D41M2I15M4D37M5I42M5I9M4D14M5I81M5D25M1I30M3D6M2I44M5D2M2I31M2I6M1D14M5D58M3D96M2I1M4D10M2I36M3I27M4I77M5I11M3D5M3I62M4D58M3D50M3D9M3I21M1D1M1D3M2I51M3D95M1D10M1D4M5I15M5I14M1D10M4D13M5I11M5I36M5D7M4D64M4I55M5D59M2D19M5I6M5D50M4I125M5I13M5I19M1D84M4D2M5I50M3D10M3D22M2D14M5D22M5I14M2D7M5I94M5I105M5D2M5D5M1I20M3D44M3I17M1I22M2D12M4I9M5D51M2I28M3I12M4I16M3D32M5I26M2D21M5I2M1I4M5D41M2I5M4I11M5D12M4D11M4I4M2D2M2D11M3I28M3D2M5D47M2I40M4I4M5D16M2D86M4D13M2I11M3D1M1I24M3I5M5I18M2I10M3D10M3I8M1D46M1I31M3I6M2D38M1I9M2I3M4D2M1D49M1I81M5D57M1I14M1I8M3I19M3D5M3I16M4I2M3D58M3D16M1D32M5I31M2D13M4I23M3I1M4I99M2D21M4I57M3I11M5I13M4D25M5D155M2D25M3D32M2D1M2I6M3I7M2I109M1I3M1I7M5I21M2I22M2I14M3D112M5D31M5I131M1I18M5I11M4D5M4I39M3D12M5D12M2I47M2I53M4I6M3I29M3D7M3D18M4D28M2D21M4D30M5D34M4D10M5I59M4D13M2D24M2D10M1D81M4D43M2D23M4I1M4I63M4D27M3I19M1I49M4I10M2D73M1I23M1D110M5D4M5D74M4D135M4D5M4I68M2I63M5D10M3D22M4I34M2I37M2I41M5I69M5D4M1D27M5D10M1I9M5D13M2I25M3I9M5D57M1D75M4D2M3D80M4I17M2D2M1D1M1I28M4I12M5D21M2I40M3I118M4I64M3I21M2D4M4I20M1I36M1D8M3D31M1I9M5D50M5D7M3D69M5I58M4D3M3D1M5I45M3I5M1I5M2D63M2I2M1D88M5I35M3D2M4D2M4I40M2I66M5D50M4I21M5I29M2D6M3I101M1I16M2I58M5I25M5I60M2I20M2D14M4I1M1I31M5I1M4D52M4D59M5I60M2I76M3I11M1I30M2D35M3D13M4I99M1I39M2D10M3I5M1I29M4I20M5D19M3I12M5D45M4I16M5I6M2I154M2D193M2D15M1D71M1D6M2D7M4I33M4D67M5I63M5I22M4D9M3I99M5I16M1D18M1I31M1I70M5D52M1I7M3D6M4D10M2I14M3D58M3I36M3D20M5I91M5I19M2D23M3I38M2I31M5D37M5I37M2I48M4I27M4I18M3D13M4D12M4I18M4I25M2D5M5I14M1I15M5D44M1D58M2I23M3D49M2D10M2I4M2D20M4D3M2I37M3I30M5D12M3D15M2I3M4I35M5D60M3D60M1I59M1I58M1I45M2D67M2I27M4D24M5I25M2I54M1I20M5I17M1I67M2D79M5D51M2D122M3I19M2D36M3D22M2D8M3D79M4I49M4I4M5D16M4D45M5I5M3I15M5D68M5D99M5D62M3I5M5I5M5D15M2I9M1I23M1D10M5D1M1D17M2I82M2I17M4I82M1D34M3I48M2I15M2I7M4D89M5D41M5I26M2I8M5I55M1I30M4I28M3I40M4I136M3I4M5D22M4I31M4I24M2I34M1D65M4D17M5D12M1D98M2I7M1D17M4I32M1I12M3I17M4D6M3D26M2D32M3D13M5D22M5I7M5I2M4I15M1I3M2I82M1I27M5D52M3D30M2D57M3I7M3D50M1D13M2D59M5D35M2D7M2D28M4D35M1D25M2D64M4D39M2I23M4I7M1D9M2D12M1D62M5I41M1I5M2I8M1I23M4I6M3D39M2I44M2I37M5D20M3D22M1D163M1D40M2D120M1I23M3I52M5D4M3I14M4D2M3I4M2D18M1I17M2I2M2D49M5I44M4I15M4I3M2D20M1D101M4I4M5D8M4D4M4D5M1I17M3I76M1D67M2I2M2D27M4I56M4D74M3D10M1I44M3D6M3I61M5I9M2I16M5D2M2D3M2I17M5I23M5D10M5I40M1I136M4I9M1I13M2I64M5I27M5D12M1I47M2I17M2I127M4D12M5I17M4D1M5D1M1D18M5I26M4D22M1I23M4I135M1I1M3D4M1D6M4I46M2D19M4D18M2D25M4D6M1D16M5I7M4D45M3D6M4D168M3D15M4D1M4D14M4D47M2I23M4I27M3D30M5D80M4D12M5D2M2D20M2I15M3I44M3D50M2D32M5D79M4D6M2I5M2D1M2D74M5I31M5D13M3I17M3I47M5D20M3D75M4D28M3I24M1D16M1I42M3D48M3I33M4D37M1I7M1I123M2D36M4D21M5D32M2I19M5D53M3I10M2D32M3I22M1D15M2I128M1I13M5D43M4I9M2D55M5I80M1I15M5I63M4D42M1D86M5D20M3I3M2D27M4I8M3D55M5D49M4D16M2I5M4I14M4I48M5I25M2I40M1D9M1I51M1D58M1D2M1D66M5D11M3D174M2I27M2D12M2D31M3I18M4I40M4D87M5D32M4D5M4D8M1I24M2I17M2D37M1I15M5D19M4I2M2I40M2I8M3I23M5I54M2I10M5I41M3I29M2D35M1D56M5I4M2I15M4D29M5D8M2I11M1D10M1D16M1D62M2I16M2I6M5D16M4I2M3D15M4D50M1I53M3D119M1I35M3I22M1D27M1D20M3I23M3I2M2D47M4I5M5D6M4I13M4D20M3D21M5D39M3I34M4I5M5I16M2D13M1I49M5I19M1D18M1D56M3D26M4D35M3I16M2I13M3I4M5D104M5I19M1I33M5D1M1I11M3I8M4D26M2I41M5I15M4I4M1D17M1I55M3I23M2I3M1I64M4D10M4I42M3D1M4I9M2D19M5D21M4I21M4D3M2D20M2D7M3I20M4I6M3I55M3D2M1D32M2D22M4D29M2D40M2I20M5I18M5D23M5I51M2D30M3D22M1D22M4I10M4I4M1D29M4I20M4D13M3I23M1D20M5D150M3I12M1D12M5I29M5I9M2I17M2I12M5D5M1D60M3I19M2D4M5D7M3D52M4I72M2I8M1I24M1D2M2I10M2I29M5I66M3D11M3D41M5I3M3D48M2I27M3I20M3D46M3D39M3I38M2I19M4I24M5D5M1I12M5D7M4I4M1I66M4D5M5D6M5I15M5I22M2D38M2I8M4D32M5D22M4D43M3I15M3I27M3I19M2I2M5I8M5I5M5I27M3I14M3I10M3I42M4I5M2D34M3D166M1D13M3I17M3I5M3D4M3I18M4D8M5I20M2I2M5I16M2D30M5I32M5I27M5D89M4D88M3I53M4I1M3I9M2I118M5I3M4D3M5D30M3I15M1I142M3D7M2I6M4D25M5D1M3D2M1I36M2I8M5D16M5I18M4D34M3D34M2D107M3I2M1I1M2D43M3I35M2I42M2D35M4I13M3I64M4I23M1D1M5D38M3I1M2D42M3D2M1D21M5I4M2D3M3D54M1D4M2I2M3D15M5D107M1I50M2I35M5I34M5I81M4I36M1I18M3I61M1D124M4D7M1D29M2I33M3D25M5D54M4D64M1I26M4D23M4I12M5I7M3I29M5D39M5I1M2D44M1I96M1D47M5D8M3D17M4I21M3I18M1I1M4I7M2D32M5I42M2D2M2I49M3I12M3D3M5I9M4I33M1I175M5D28M2I29M5I2M1I56M2D44M3I17M1I61M2D55M2I39M3D42M2I44M5D24M4I9M5I45M3I21M5D46M3I9M1D16M4I3M4D53M1I5M4D32M2I21M2I72M3I64M4D6M2I27M4I9M1D44M1I5M2D26M2I29M5D13M4I50M3I25M4D1M3I30M2I8M2I28M5I85M2D51M4I24M3D34M2I11M3I48M2D1M1D1M3I2M1D3M3I1M5D15M2D14M2D10M4D1M1D2M2I49M3D59M4D105M5I32M2I9M4D24M5I3M5I31M3D37M1D34M4D10M1I32M1D81M1I30M2I38M3D6M1D27M4D3M2D94M4D4M3I3M1I31M4I33M5I52M2I18M5D3M4I6M2D10M2D12M2D5M5D3M5I5M4I38M5D6M5D30M2I13M1D67M1D9M3I37M4I16M3D41M1D20M1D79M1D1M2I6M3I22M3I17M4D42M3D1M3I19M4I1M1I5M1D14M2I17M5I10M2D20M2D7M3I36M3D43M3I50M2D23M4D23M4I21M4D4M1D14M1I3M2D38M4D7M5I39M2I10M4D35M1I13M5I163M3D14M1D23M1I8M5D53M5I11M2I10M4I39M3D18M1I4M2D5M3D54M5I30M1I7M4D15M2D20M5D3M5D52M4D25M4D21M1D4M4I78M5I3M5D7M2I61M1I32M3I9M4D170M5I4M1I41M1D69M1I4M1I43M5I26M4I20M3D14M5D9M3D21M1D14M5I73M5D1M5I30M1D6M3D6M2I4M5I17M1I2M4D2M4I10M3D43M3D20M1D107M4D66M2I18M4D12M2I22M4D9M2I14M4I48M4I37M4D16M3I67M4D32M2D15M2I23M3I29M1I20M3I3M3D119M2D31M4I2M2I63M2D4M4D27M5D2M5I163M3D18M2D8M1I18M5D4M5I5M5I89M4D19M2I214M4I21M1I12M1I8M2D12M2D44M2D41M4D22M4D1M1D33M3D18M4I29M5I14M2D12M1D13M4D18M2I12M2I18M3D2M2D1M3I65M5I11M4D33M3I1M1D9M1D17M3I14M2D21M4I17M4D19M1I15M5D16M5D6M3D5M5I92M1I4M1D8M3D17M2I6M1I19M5I125M5I90M2I8M2I54M1D116M1D5M2D27M5D75M1D1M4I29M2I3M3D89M1I28M2I101M4I30M4D10M3D20M2I45M1D50M1I35M2I8M5D28M5D52M2D65M3D12M1D49M5D40M4I136M1I28M4I20M1I57M5D58M4I51M2I68M4I57M1D89M3D45M5I32M3I12M1I17M2I46M4D1M5D15M2D28M2D17M2I6M1I72M5D11M3D12M4I209M4I56M5D38M2I29M4I57M3D4M1D16M3I12M3D17M1D94M3I36M5I67M3D3M3D10M5D12M1I35M3D19M1D11M2D42M4I54M3I2M3D12M3D36M5D41M3D31M3I1M3D12M3D10M3D27M3D23M5D38M2I41M1I22M1D53M4I4M3D7M2D10M3I1M4I3M5I3M1I29M2D56M1I9M5D185M1D2M5I37M4D70M5D16M2I9M1D62M3I33M5I41M2I12M3D33M1I4M4D20M5D75M5I88M5D9M2I2M1D42M3I12M4I50M5D49M5I145M5D22M1D16M5D40M4I18M5D38M2I51M5D46M4I8M5I76M4I11M3D22M3D25M4D8M2I23M4I46M1I20M4I29M2D4M1D48M1D55M1I67M1I2M4D79M2D19M5D5M2I19M3D79M4D41M5D18M4D18M2I72M3I5M3D12M2I31M4D7M1I103M1D8M1I15M1D23M3D6M5I76M2D5M4D47M5D16M4D58M4D20M3D29M1D3M1I13M3I31M4I10M5I4M3D37M4I25M5D15M3D38M1D23M5D40M3D2M1D6M1D116M2I11M1I40M1D33M4D25M5D111M2I26M1D36M3I41M2D2M5I25M5D33M2I4M5D28M4D1M3I111M2I21M1D17M5D8M1I41M3I46M2I57M2I5M5D2M1D5M1D9M5D61M4D2M5I28M1D76M3I29M5D19M4I27M4I70M2D27M3I15M5D19M1I5M2I33M2I20M4D28M1I10M4I4M3I51M4D57M3D127M5I87M4I61M2D70M1D73M1I52M3I52M3D109M1D66M3D69M2D15M1D71M4I5M4D41M2I33M3I27M2I22M5I2M1D3M5D64M2D67M2I10M2I4M5D10M1I54M5I4M5D44M3I51M5D131M3I13M5D2M4D15M1I16M1D49M1D24M4I24M2D86M1D1M1D8M2D6M4D3M2I4M2D62M3I24M2I30M2I4M3I9M5I81M1I32M1D35M5I12M4D4M1I40M5I14M2I60M4I2M3D7M3I20M2D26M3I35M5D24M5I59M2I18M4D74M5I13M2D19M5I31M3I21M2D12M5D53M2I9M1D18M5D8M3I38M2I23M2D1M5I97M1I5M3D2M2I15M5I63M1D17M4I8M1I8M3D21M3D110M5I79M4I12M3D2M3I39M3D23M3D4M4I2M3D22M4D15M3D11M4I1M4I13M4I1M1I26M1I45M1I71M2D35M3D4M5D8M1I21M5I10M3D46M1I4M4I9M2D53M1D25M2D52M3D44M1I36M5I11M5I2M2D9M1D3M3D52M3I23M1I4M3D3M2I3M5D35M2D17M2I25M2I68M3D102M1D7M3D19M2D15M3D10M3I14M3D2M4D23M5I14M1D18M5I11M1I7M1D32M2D14M5D55M1I39M3D28M5I2M2D23M5D48M1D10M1I38M2D13M2I10M4D73M1D11M4D24M5I47M1D46M1D10M4D58M3D27M5I7M3I26M2I3M3I8M1D28M2I33M5D38M1D30M1I5M3D52M2D2M4I5M3D16M1D20M2D5M4D61M2I11M2I4M4I1M5D82M3I10M5I54M1I40M4D3M1I2M1I20M2D12M4I48M2I68M1I7M1I27M2I23M1D37M2I22M1D5M1I134M5D5M2I97M1I25M5D35M4I52M2D11M1I4M4I118M3I44M3I25M3I3M5D26M3D61M5D57M1D60M4D109M1D32M4D9M3I31M3D14M3D9M3D189M4I23M5I26M2I85M3I10M5I2M3D15M4I56M1D15M3I14M1D82M3D18M3I74M3D107M3I19M4D46M1I38M1I39M1I25M5I37M4D3M3D65M1D19M2I57M2I31M3D10M4I16M4D8M2I22M1I15M4D34M1I11M5D43M5D14M5I53M5D7M1I5M4I74M2D55M2I5M1I5M4I1M3D40M3I13M5D55M3I33M2I81M2D66M5I82M1I20M1I68M4D1M2I13M1D21M1I51M1D16M1D18M3I10M3D10M3I54M2D40M5I34M2D37M3D48M1I25M5D11M2D16M4D25M1D72M4I3M1D13M5I35M3D35M3D30M1I33M2D28M2D40M5I52M1I3M5I32M3I14M3I3M1I19M2I8M4D41M1D85M5I54M5D75M2D4M5I18M3D1M4I77M2D17M3I6M4D10M5D20M5I48M4D137M1I4M2I35M4D6M4D16M1D84M3D25M5I2M5I2M5I50M5I40M1I7M2I25M1I39M1I58M3I26M3I49M5I85M3I22M4I18M3D31M3I8M2I4M3D40M1I6M1D4M5D5M5D6M1D249M1D125M4D12M3I6M2I3M3I32M2I37M4D55M5I71M3I8M4D25M5D17M1D74M2I4M4I31M3D4M3I21M5D36M4I33M2D26M4D10M1I11M1I45M3I46M4D30M3I8M5D30M4D7M5I60M4D8M4I14M2D4M3D8M5I95M4I14M4D6M2I11M4D38M1D60M3D23M3I73M1I11M3D13M5D9M5D74M3D28M1D189M3D34M1I13M2D28M5I77M2I9M2I16M3I29M4I15M2D35M1I20M2I98M3D9M3I52M1D16M5I16M1D11M1I13M4I3M1I25M4I22M4I4M3D29M1D17M1D13M4D35M4I12M4D22M1D114M5D27M3D1M1I33M5D3M1I25M5I33M4D33M5I5M3D12M2I26M5I18M4I11M5I27M5D64M4I4M3I36M3I148M3I33M5I6M2D78M3D115M2I51M2D30M1D64M5D19M4I61M2I30M1I1M2D4M5I33M2D72M4I15M1D57M2D38M5D80M2I29M3D2M1D24M1I52M4I48M4I4M3I59M3D5M2D105M2D17M2D12M4I34M5D12M4I54M2D56M5I60M3I8M4I53M4I11M4I59M4I23M4I29M3D9M4D1M5I36M4I2M2D69M3D70M4D17M5D18M2I79M2I5M4D1M1D26M1I6M4D18M3I50M4I10M5D23M2D93M5I16M2D11M3D39M3I3M1D14M1I12M3D40M1D90M5I48M1D27M4D20M2D39M1D9M4I15M1I7M2D14M4I100M4I24M1I5M1I59M1I44M1I51M2I37M5I70M1D15M2D6M3I6M3I1M1I2M2D6M5D8M1I8M3D19M4I23M2D22M2I1M4I32M1D22M2D29M5D78M1D3M3D1M2I36M1D6M1I29M3I83M5D13M5I32M1D44M3I41M2I48M2D48M2I7M2D51M2D25M1I34M3I3M5D19M3I27M2I98M2I36M4D42M3D36M1D1M5I22M4D60M1I25M5D18M3D18M5D20M1D17M4D26M4D26M1I2M5D15M1D17M5D33M4I2M4I18M4D7M2I10M2D11M2I6M1I15M2D44M5I161M5I11M2I8M3D24M2I19M4I1M2D142M4D50M3I9M5I11M4D8M2D4M4D25M3D7M3I72M3I44M5D1M5D80M5I76M4I81M5I70M5D58M1I108M3D44M2I48M3D2M2D6M3D5M2I7M4I10M4D18M1I2M5D36M1D65M1D6M4D110M4I5M3D33M4I3M4I33M1D2M2D21M5D110M2I18M3I36M1D24M4I3M1D2M4I15M5I175M4I4M4D66M1D6M3D31M2I61M3I15M4I13M3D9M2D57M2D20M2I71M4I7M5I14M4D3M5I7M5I49M2D20M5I9M2I64M4I39M5D4M5D46M2D6M5I21M2I15M1I65M4I14M1I4M5D51M1D34M3I53M3D109M4I53M5D5M1I32M3I26M2D17M2I1M2D39M3D19M3D3M1D8M2D9M2D3M1D4M5D33M4D33M2I112M2D34M1I45M2I17M4I3M2I44M4D4M1D15M1I19M4D28M3I14M3D41M2D5M4I63M3D7M1I71M3I13M5I10M1D62M5D54M5I57M3I14M4I49M3I46M4D25M5I19M1D45M1I2M5D17M5D28M5I4M4I15M1D21M3D32M5D9M2D25M5D6M4D27M5I8M1D57M3I74M2I13M3D22M1I35M1I17M5I25M2D31M3D20M5I25M5I82M2D6M3I18M2I1M3D18M4D7M5I23M1I20M3I3M5D71M4D11M5I22M3I64M4D27M1D3M2D42M2D52M3D4M5I1M4I53M4D39M1D3M2I1M5I21M2D10M3D28M3I11M2I96M2D2M1D65M1I54M5D13M2I2M4D16M2I86M1D4M3D6M5D19M1I11M4I12M2D4M1I120M4D11M3I110M4D122M1I23M2D18M5D9M5I40M5D37M4I12M1D52M5D15M4D18M5I20M3D23M4D3M2I49M1D13M1I36M2D45M3I5M2D22M3I58M2I105M1D49M4D13M2I8M1I31M3D4M3D15M4D16M3I45M1I84M2D47M4D8M4D22M3I32M4I8M2I4M1I69M5D18M1D19M3I3M4I4M4I12M1I3M3I22M2D60M5I49M1D31M5I94M1I3M5I52M4D94M5I12M1D29M4I18M5I10M1I22M4I18M2I9M1I34M5D24M5D12M1I6M2I29M2I66M1D57M5I20M5D10M1I40M5I19M2I27M4I42M3D24M2D51M2D11M2I40M1D12M5D13M5D18M4I14M2D10M1D91M5D10M5I18M1I9M2I21M4I22M4I19M1I2M5I34M1I21M5I36M4I14M5I16M2D98M2I17M3D29M2D76M2I6M4D38M2D61M2I10M1I12M3D79M5I31M5I16M1I5M2D84M4D2M3I1M2D84M4I11M5D74M4I3M2D9M3D7M1D117M3I8M4D24M2I11M4D7M3D64M2D86M3I6M3D127M3I3M2I14M3I57M1D61M5D19M4I13M2D17M4I8M3D8M5I48M1I3M5I22M3I2M2I53M1I39M1D34M3I4M3I14M2I46M4D11M5I2M1I122M5D52M4I32M4I93M3I16M3D64M1D65M2D42M5I9M2I37M4I46M4D16M2D14M3I4M4I78M1D2M1I69M1D23M2I47M5D22M5D16M2D4M4D2M5D40M5D31M3D55M1I33M1D7M2D6M3I7M3I75M5D16M1I52M1I66M1D61M2D41M2D30M4D69M3D9M3I8M2I12M4I33M2I28M3D2M2D25M4I7M3I55M2D17M2I72M3D15M4D12M2D10M5D35M2D4M3D14M1D22M3I2M5D16M3D13M5D61M3D63M1D25M2D49M4D39M4D33M2D52M2I22M3D53M4D26M2I21M5I40M4I35M1I37M3I107M4I5M4D46M5I45M5D14M3I43M2I75M1D3M2D14M2D26M2I2M3D157M4D8M5D38M4D48M1D15M2D47M3I17M5D7M4I4M5D4M1D4M3I3M1I73M4D11M2D23M2I3M3I111M5I25M5D17M2I130M1I23M1D24M1I75M5I61M4D82M1I14M5D49M4D38M4I21M2D13M4I86M1I32M3D66M1I33M5D42M4I3M2I17M4I33M4D9M2I12M4I27M2I70M2D168M2I26M2I17M5I11M5D66M2D7M3D45M4D58M5I13M4I3M1I14M2I39M3I50M5I149M4I11M5I100M2D44M1I2M4I58M5D119M4I13M4D25M4I17M2I5M3D4M2D61M1D12M4D39M3I63M3I2M1D26M3I19M2I8M2I18M1I5M3D122M3D2M1I29M5I16M3I18M1I19M1I21M4I14M5I84M1D17M4I28M4D32M5D113M5I38M1D5M1D18M1D32M2I14M4D2M1I39M1I36M5I3M1D27M3I52M3D85M1I89M4I1M3D23M1D9M4I2M4D135M3I13M2I11M4D2M3D26M1I12M2D92M5D7M4D104M4D27M2D6M3I8M2I35M2D9M1D2M4I20M4D81M3I18M5D15M4D52M5D36M5D1M2D33M1I23M3D19M3I51M5D116M1I25M5D6M3D61M2I11M2D8M5I15M2I63M3I25M1I37M1I18M1D94M1I22M1D2M2D6M1D40M4I60M5I22M1D66M2I48M3I37M3I4M4D2M3D9M5D48M3I13M1D34M2I6M2I18M4D11M4I38M4D132M5I45M3D24M4D15M2D6M4D3M1I25M1D4M4D47M4I21M2D77M2I13M5I13M5D19M4I3M2D26M5D45M3D12M5D11M2I6M2I17M4D46M4D21M3D5M3D21M1D3M3D34M5I22M4D150M1I72M3D71M2D27M4D75M1D33M3D1M3I49M4I8M2D98M5I15M5D16M5I51M1D184M4D6M5D71M5I42M2I2M5D6M5I17M3I11M3I29M2D20M5I76M5I43M4D67M4I35M4D196M3I6M3D32M5D39M2D7M1I1M2D21M1D6M1D4M2I18M2D16M5I50M5I14M5I15M3D51M4D64M5D29M2I8M5D1M5D51M4I6M3I68M4D20M1I4M4I44M1D39M4I46M1I25M2I2M1D30M5I2M1D12M5D40M4I16M2D51M4D17M1I24M5D12M4I15M2I4M1I31M3D5M1I39M1D23M5D61M4D34M2D11M3I2M4D15M3I54M1I68M3D23M4I25M1D5M5I30M3D80M3I9M1D13M1D13M3D5M1I101M3I4M4D9M3I1M4D1M4I23M3D37M5I64M3D17M2I86M5D44M2I3M1I37M1D19M3D42M4I84M1I22M1I39M1D31M3D23M5I80M2I4M3D45M3D5M2I23M3I5M1I2M2I35M4I13M5D79M2D88M4D15M4I23M3I1M4I9M2I55M4D2M4D77M2I18M4I18M1I48M3I10M2I8M2I129M2D68M3D2M4I65M4I2M2I74M4I81M2D32M1D9M4D56M1I1M5D31M5D149M1D52M5D17M5I108M3D37M2D35M2I10M2D10M5I49M5I38M5I30M5I18M5D3M3D16M1D102M5D29M2I5M2D16M3I18M4I41M4I61M2D1M2D107M5I5M3D22M1I58M3I1M1I51M5I40M4I1M2D2M5D53M5I14M1I78M3D37M1I25M5I211M5D28M2I1M1D2M3I10M1I13M1D1M4I21M4D1M1D36M5I45M5I17M3D13M4I22M1D18M2I10M4D30M2I27M2I82M1I2M1D28M1I3M2D39M5I24M1I38M5I12M4D21M2D32M3D5M2I18M5D32M2D16M4I13M2D13M3I17M5I41M5D1M4I11M5D94M5D30M2I11M2I29M3I43M5I94M3I37M4D51M5I60M1I22M5D67M2I27M2I6M1D1M1I4M5I34M2I89M3D21M3D25M3I16M1D10M4D17M1I10M3I44M5D1M1I16M3D6M4I62M3I44M1I91M5I7M4I55M4D68M4D7M5I11M3D24M3D30M3D26M2I23M1D5M3D52M4I54M1D96M5D39M3D30M2I53M1D8M2I8M1I46M3I3M1I4M5I3M5I5M1I5M5I19M5D1M1D1M5I29M1I13M3I34M3I35M1D7M1D10M3D92M3I4M5I14M5I49M1I35M5I102M1D7M1I11M4I83M3D15M2D3M4D6M4I33M5D43M3I18M3I115M2D1M3I58M3I28M4D20M3D11M1D40M5I4M1D45M2D78M5I4M2D27M3D69M4I60M2D14M5D63M3D19M1D95M3I12M3D34M4D51M2I9M3I88M4I6M2I1M1I7M3I21M2I12M4I35M3D36M2D4M2D94M3D57M4D44M1I3M2I30M2I17M5I1M2I3M2D26M5D22M3I54M2D33M3I32M4D27M5D13M2D12M3I1M5I11M4D39M1I21M2I76M1I38M1I5M2D39M3D22M5I84M2D23M5I11M2I42M4I1M5D20M5I115M1D43M1D39M2I54M1I4M3D63M2I3M4D45M5I30M5I7M3D17M5D8M3I6M3I35M1D67M4I75M2I25M5I41M3I11M1D28M5D6M5I60M4I13M1D26M1I17M3D8M3I4M1I11M5I5M1D137M2D27M1D45M3I9M3I93M2D18M2D5M5I17M4I13M2D49M2I120M5I9M4I56M4I13M3I57M1D4M2I30M4I31M2D48M1I49M3I2M4I58M2I4M2I5M3I32M2I5M1D5M4I47M1I35M2I25M4I20M5D6M4I13M3I6M1I11M3D63M1D28M2I1M1D36M5D5M4D41M4I5M4I16M2I3M5I66M1I11M3D20M2I26M1I4M4I107M3I10M1D13M3D30M3I19M1I37M2D10M4I4M3I56M2D34M5D34M3I46M2D46M2I32M3D35M5D25M1I33M4I38M4I35M5I4M5I45M1D1M4D11M3I7M3I4M4I3M5I13M1D63M2D71M5D42M1D72M4I1M5I48M2D6M3D5M5D7M4I4M3I2M1I8M4I27M1I3M5I16M5I38M5I62M1I46M3I24M4I22M2D54M3D2M1D13M3I26M3I3M4D59M2D22M2D50M3I88M4D21M4D11M4I31M4I9M5D9M3D31M4D139M5D61M2I26M4D140M1D27M4I61M3I13M2I40M5I141M4D74M4I53M1I73M4I48M1I50M5I64M3D82M2D95M5I31M3I16M2I18M3D33M4D9M3D6M3I45M2I23M4D37M4D10M3I22M2D100M2I16M4I7M4I1M3I8M1I1M1D85M5D3M4D43M1D64M1I12M5D25M2D25M3D71M4D4M1I29M5I44M4D10M4D8M5I33M1D45M1D24M4I1M5D12M4D4M5D7M5I4M5D1M5I23M4I15M5I15M5I138M3I56M1D23M5D69M4D24M4I32M2D8M3I28M5I4M1D20M2D77M2I6M4D6M1D48M1D1M2I65M3D26M1D72M4I46M4D37M1I6M2I19M5I39M3D9M2D17M5D9M1D36M4I24M3I14M5I59M3I13M5D1M4D32M1D37M3D7M1I77M1I22M2I3M2I18M3I16M5D7M3I4M5D86M3D62M3D89M2D2M1I5M5I16M5I29M1I30M2D2M4D105M3I5M2D15M2D94M5D52M2D4M1D74M4D3M1D45M1I15M1D13M3I21M2D51M2D20M2D137M4I6M4D31M5D14M5I17M2D5M1I112M2I19M1I112M4D6M3I59M3I14M5I2M3I56M4I29M4D19M1D84M1D180M1D11M2D39M2I3M3D49M2D4M4I40M4I75M2D24M5I120M4D8M3I7M5I64M1I13M4D19M5I23M3D32M4I32M3I6M2I38M4I10M2I32M4I12M1D34M5D30M1I30M2D14M3I64M2D6M2I110M5I16M2I79M5D49M3D3M3I28M5I41M5I16M5D4M5I8M1I26M1D24M2D1M2D11M2D35M5D52M5I8M1I130M3D20M5I6M3D21M2I21M2I10M4D78M2D22M1D42M4I6M2I8M1D141M4D34M4D30M2I25M5I22M1I53M4D66M5D27M3D104M5D20M4D22M2D52M3D60M2I9M5I18M2D7M5D30M5I52M2I65M2I14M3I69M4I24M4I8M5I4M1D33M3I23M4D3M1I6M3I7M2I117M4I150M2I184M5I8M2D7M2I7M1I21M3I27M3D19M3D3M5I5M4D21M5D47M1D43M3D13M3I6M2I9M2D44M4D15M2D63M1I9M4I29M3I9M2I21M2I17M5D41M5I10M1I6M5I32M2I95M2I11M5I25M1I9M4I56M2I24M4D6M3I5M5I87M2D25M4I10M3D23M1I31M2I50M2I2M5D5M5I9M4I26M3D47M3D17M2I22M3I73M3I15M3I33M2D67M2I12M2I11M3D1M5I44M5I56M5D65M5D67M4I25M4I40M1I82M1D15M4I22M4D16M5D50M3I51M5I10M3D18M3I4M4I37M4D26M4D52M1D55M2D15M2D6M2D2M3D15M3I35M4D32M3D22M1I13M1D48M1D30M2D37M4I25M5I5M5I26M5D56M1D15M1D17M1D7M5D144M5I5M3D22M5I8M2I22M5D3M3D126M1I22M2D10M1D12M3D31M4D52M3D46M3I15M1D42M3I142M2I18M5D52M2I3M4D16M2I157M3I7M1D5M1D17M1I44M5D129M1I4M5D6M3D58M3I8M3D28M5I11M1D125M2D2M2D43M5D43M1D11M4I19M5D7M3I10M3I12M2I2M3I22M1I19M4I48M2D7M4I51M4D2M1I38M1I19M5I17M4I5M3I25M1D4M1I9M4I16M4I10M5I6M3D31M5I38M4I17M4I22M1D7M5D29M2D172M5D73M4I2M2D34M1D25M2I13M5D70M2I7M2I1M3D15M4D32M3D3M1I7M4D16M5I9M5I27M1I1M3I31M3I2M5I50M4D10M2D42M1D96M1I24M3D17M5I34M1D22M5I64M2D11M1I13M4D17M5D24M2D107M3I22M1I8M4D9M3I26M4D35M3D19M5D7M1D20M1I9M2D7M5D7M4I125M2D34M1I16M3D110M3D3M5I18M3I94M4I16M4D30M5D41M2D39M4I35M2I12M3D9M5I2M3I18M3D60M4I9M1D20M5D12M1I22M1I3M5D19M3D20M5I14M3D22M4I5M4I1M1D2M5D72M3I40M2I37M2D7M3I19M4D9M1D1M3D32M5D6M3I41M5D75M5I55M3I7M3D6M3I3M3D51M5D1M2D79M1I35M4I7M3D14M2I33M1D17M4I11M4D1M3D22M3D8M4D31M2I31M5I40M5I51M2I4M3I3M5I21M1D91M5I72M1D45M2D4M3D254M2I19M5D35M1D55M2D23M2D2M5D5M3D14M4I24M2D12M4D8M3D25M3I12M4D96M5I39M5I55M2D14M1I8M1I4M2I4M5D22M5D30M1I9M1I26M3I5M4I67M3I30M2I63M4I3M2D18M4D1M2D18M3I116M3I15M2D30M1I11M3I116M5D2M3D17M3D13M5I12M4D19M4D3M1I9M4I24M3I4M4I15M5I48M3D36M2I6M1D9M4D40M4D2M5D49M3I94M3I11M5I15M3D26M4I27M5D8M3I8M1D14M1D24M3I103M2I1M5D40M4I52M5D2M1D9M4I14M5D120M1D58M4I37M5I23M5D78M5D69M4D16M3D6M1D50M5D15M5D3M1D18M5I1M3I2M5D40M3I44M4I24M2I23M5I12M4I6M4D69M2I46M5D47M1D21M5I170M2D46M2D10M4I106M5I75M3I4M4D16M1D6M3I12M1D13M3I13M4I36M3D51M3I54M1I61M3I18M3D16M4I5M2D36M4D2M1I15M3D31M3D15M5D81M5I13M4D12M2D35M5I109M1I2M4I7M3D36M5I24M2D31M5I2M3D49M3I6M5D54M1I83M5I53M1D61M5I108M2D38M1I44M3I42M4I4M5I33M4D16M3D6M5I20M3I13M3I34M1D54M2I3M4I7M1I23M2I3M5D57M2I34M2D4M4D87M2I1M1I37M4I7M1D63M1D8M4I68M2I41M5D90M5D65M4I9M4I2M2D5M4D3M5D3M1D20M1D17M4D55M2D57M2D17M3I20M3I1M1D42M2I16M2D10M1I46M5I30M1I2M2I17M3I43M2I18M4I21M4I19M1I92M4I11M5D17M3D8M1I20M1D36M4I19M2I7M4I84M2I9M5I60M1I28M2D33M1D20M2D5M3D19M2I31M2I2M2I28M1D2M1I10M1D7M3I3M3I44M5I3M2D20M4D90M1I1M3D5M2I4M3D46M3D35M3D6M3I11M1D38M1I61M3I26M2I17M5I42M2D30M4D46M1D19M2D56M2I1M5I74M5D31M5I3M5I16M1D14M5I4M5I32M3D64M1D5M3I23M5I19M4D51M5I17M1D49M4D51M3I27M5I7M5I51M2I27M4I24M4I15M3D9M4D9M3D33M3D12M5I49M2D2M3I81M5I39M3D55M4D49M1D33M2D1M4D13M1D3M5D9M2I34M1D1M5I8M4I11M3I2M4I2M4I72M5I11M1D4M5I17M5D13M5I1M3D13M2I13M2D90M1I27M4I31M5I6M2I26M2I26M4I15M2I44M4I81M4I40M1D19M3I2M3I21M3I4M4I20M1I6M1D2M2I18M2I38M1I35M2I49M2D10M4I8M1D6M3D20M2D3M3I4M4D51M5I10M5D23M1D58M2D89M1D24M5D47M2I2M2I12M3I25M5D1M4I42M5D37M3I33M2I32M3D39M5I23M3I8M5I7M4D62M2D38M4D45M2I81M5I2M3I43M4D93M1D2M5I31M1I2M3D26M2D36M4I23M3D10M5D3M1D23M3D198M2I2M2D110M5D88M2D4M5D14M5I10M3D33M1I1M2I2M3I27M4I81M3D38M2I20M3I78M5D53M5I48M4I1M3D12M3I18M2D24M2I29M4I14M4I3M4I28M4D8M3D69M3D133M1I54M5I12M2I160M3I8M2D80M2I33M5D99M1D2M2I10M5D9M3D35M4D61M1I13M3D9M1I2M5I32M2D13M1I1M2I5M4I7M3I58M3I28M5D16M1I5M2I14M2D12M5D68M1D19M1I55M5D24M4D19M4D3M5D10M2D59M5I28M5I113M2I20M1I164M5I118M4D54M4I13M2D43M4I23M1I32M3I10M1D12M1D1M4D109M1I16M3D24M2D45M1D18M1I25M5I10M3I8M5D5M4D38M3D31M4I30M3I12M2D14M5D10M2I91M3D23M2D28M1I37M4D6M1I18M1I34M4I12M5I18M5D60M2I3M5D19M4I103M3D10M5I6M5I4M3D31M1D43M1D48M3I2M5D10M3D46M5I124M3D2M4I11M1I23M1I2M4I33M4I36M1D13M5D18M1I24M4I2M5D38M5D40M3D4M5D24M3D4M5D5M4I49M5D94M4I8M4D18M3I118M5I21M4I17M2D25M4D8M2D70M3D9M2D46M5D27M1I45M2D15M4D116M5I19M2D19M1I98M1D32M4D9M4I22M2I37M4D89M1D29M1I34M5D7M1D4M4I55M5I114M4D75M5D9M1I121M4I29M1D23M4I29M4I123M3D12M1D11M3D4M2I32M4D72M1D20M5D27M2I98M5D3M1D53M4D23M3I2M3I6M5I10M2I26M2I5M4D18M1I45M4D11M3D56M3D29M3I37M4D59M2D57M2D27M5D43M5D18M5I4M3I155M4D14M3D128M1I2M4I19M2I23M3D35M4D59M2D113M4D99M2D78M4D29M2I14M4I50M4D10M2I8M2D6M4I1M2D19M4I10M2D13M2D12M2I11M2I37M5D2M5I52M1D36M5D8M3I40M2D139M3I22M3I8M4D36M5I23M5D15M3D10M5I7M3D5M4D36M1I102M2D5M3D8M3D6M5D16M2I105M2I22M5I55M4D21M1I4M3D24M1I10M3D11M3I42M5I2M4I34M5D14M5D24M2I7M4I4M5I26M1I5M4D41M5D154M3I13M4I10M4I9M3D15M1I33M5I94M4D41M5I13M5D27M1D31M4D47M2D30M2I35M5D5M3I97M3D22M4D64M3D79M5D22M3I2M3D14M5I5M3D5M4D73M3I5M2D37M2I14M5D7M5D23M5D43M3I8M3I53M2D34M3I63M1D12M2I19M2I9M2D46M1I1M2D5M4I4M4I10M4D1M3D44M2I17M3I4M4D2M5I12M2D6M4D30M5D45M1I20M2D24M3D33M2I26M5D14M2D5M3D50M4I1M3I2M3D7M4D1M5D58M4I6M5D8M4D14M5I2M5I11M1I78M2D108M2I27M4D23M5I59M1I43M2I102M4I83M3D35M4D2M2D88M1D112M1D11M3D3M2D4M4I23M2I4M1D25M4I43M3I27M3D7M5D10M5D13M5I12M5I28M2D6M5D47M5D79M5D4M2D72M4D43M5D7M3I16M4I7M3I18M3D4M1I5M1I23M3I51M1I7M1D89M5I49M3I8M2I40M2D2M2I17M5D11M2D59M3I56M4I15M4I1M5I50M5I102M4D10M4D55M1I8M1I12M1I23M4D5M2I13M5I6M1I14M3I46M4D72M5I81M1I15M3I15M5D13M5I38M5D129M5I22M2D39M5D6M2I9M4D43M5D4M2I25M2I27M4D57M3I7M5I17M2D7M3D16M3D35M5D73M5I8M4D25M4D2M2I40M1D19M5D28M5I23M1I63M4I50M1D14M5I25M2I11M4I3M5D39M3I45M1I19M5D50M1D4M2I124M5I19M2D1M5I17M2D12M1D7M5I5M1D21M5D39M5I9M4D178M3I19M1D27M3I97M3I5M2I11M5D14M5D21M4D2M5D3M5D6M3I21M1D29M1D9M5D7M2D74M2D14M2I6M2D30M2I6M1I53M4I39M5D21M4D23M1D2M3D36M4I28M4D29M3I59M3I119M3I44M3D15M5I21M2D35M1I40M3D41M4D2M5D9M1D19M1D56M2D7M5I70M3I82M1D19M1I5M2I51M1I93M1I51M5D9M3I5M5I1M3D8M2D35M2I1M1D17M3D53M2I33M4D10M2I104M1D52M3D69M2I24M2D1M4D1M2I6M4I32M2I86M3D14M5D15M1D5M1D69M4D36M5D14M3I32M5D2M5D29M2I4M3I37M3D2M5D62M5D20M5D62M2D21M1I26M1I8M2I85M2I43M4I53M1D14M5D3M5I1M3D11M2I122M5I80M2D3M5D4M1D18M5D15M3D8M2I7M3I25M1D97M1I30M3D75M5I21M1D24M3D33M2I20M5I11M4D8M3I1M1D3M3D12M1D9M2D10M5I41M4I27M2I68M2D6M4D1M1I63M4D71M1D63M5D18M1I193M5D31M3D27M5D4M1I13M4D57M2D12M2D58M1D83M5D6M5D5M1I100M5I10M4D13M4D7M4I38M4I114M3I23M4D21M4D1M5D1M1D85M3I82M4D5M5I8M1D23M3D48M1D24M1I15M3D1M3D63M3D42M2D46M4D6M1I21M4I8M4I176M5D41M4D35M3D43M1D30M5D33M4I30M2I6M4I7M3I32M2D157M5I13M3I22M5D12M5D72M5I10M4I147M2D67M3D6M5I22M2D27M5I8M3I1M3D15M5I9M2I7M3D84M1D67M4I53M1I23M5D33M1I25M5D4M4D43M3I41M4D6M5I75M4D61M2I39M2D58M4D56M1I19M2D4M5D103M3D30M2I19M4I10M1D6M2I20M2D10M5I42M5D5M4D61M1I97M4D6M4I71M1I71M2I28M2I5M4D6M5I39M1D9M3I33M4D6M4D28M5I37M2D22M2D97M5D9M2I63M5D8M5I14M2D2M5D15M5D55M2I155M5I95M2I48M3I15M3D5M3I6M3D56M5I13M4D3M2I10M5D4M1D72M2I24M5D1M3I18M4I103M2I37M3I53M5I14M5I20M2D47M2D26M3I50M4D11M3D3M1I86M2D45M2I53M1I48M1D3M4I4M3D2M1D12M2I51M2I6M1D22M3D24M4D43M4D16M5I1M3D4M5I74M4D10M5I7M4D12M5D25M2D133M3I136M5I1M1I2M4D1M1D64M1I12M4D48M2I48M3I57M1D56M1D3M3I54M4D21M5I68M4I32M1D21M4D46M5I14M4I8M3D20M5D15M2D175M4I10M5I10M4I15M4I46M2I3M4D5M1D23M5D26M3I29M5I9M5D31M3D22M5D13M3I29M2I74M4I12M5I71M3I97M1D10M2D106M2D23M3D5M4D37M4D13M4D95M5D6M3I6M1D22M5I29M4D9M5I43M2D2M1I30M4D18M5D46M2I25M1D14M4I23M4I3M4I21M1D20M1D5M1I19M1I65M1I5M1I3M4D74M5I66M1D40M4D4M5I60M4D21M3D2M5D11M1D12M3D9M4I41M2I54M4D14M4I12M2I8M2I5M1D12M3I14M3I4M2I60M5I19M2D10M2D7M5I42M5I12M5D7M5D104M3I22M2I11M5D17M2D11M5D24M5I2M1D89M4D12M3I66M4I12M2D19M2I115M5D47M3I7M4I26M1I42M5D83M2D4M3I27M5I66M3I87M1D42M4D13M2I28M2D11M1I49M1I1M4I29M2D41M1I4M1I23M1I4M2D3M3D78M1D35M2I13M2D52M4I51M1D135M4I97M2I20M5I12M3D80M3I35M2D25M1D14M4D73M4D9M3D37M5D14M4D13M1D49M1D29M5D59M4I13M2D10M3D17M2I11M4I5M3D44M3D47M5D36M4I2M3D28M4D96M3I39M2D25M2D42M4D68M2I65M5I123M5I25M4D15M5I53M2I40M2D15M3I31M1I5M5I45M1D1M1D19M4I4M3I32M5D20M4I73M4D4M2D44M3I20M2I73M3D10M4D7M1D2M2D5M1I10M1I176M2D20M2D80M2D22M3D103M3D67M3D60M1D45M3I11M3D10M4I29M4D20M2D26M1D27M1I61M2D3M4D31M3D36M5D54M1D83M3I34M2D7M2I30M5D93M5D8M4I18M3I96M1D19M3I8M5D29M3I33M5I76M4I40M2D4M2D1M3D4M2I19M2D3M1I10M5I57M5D38M3D32M4D3M2I8M1D9M5D204M5I19M5I21M5I21M3I5M3I12M4D34M1D1M2I19M1D13M2D4M5I6M2D34M1D37M2D11M2D58M3D8M3I10M3I30M4D4M5D58M3D29M3I15M2I21M1I26M1D69M4I10M1D46M4D12M4D8M5I29M2D7M5D1M3I104M4D27M4D34M4I20M5I22M3D51M1D2M5D21M4D16M3I148M5I47M4D16M1I18M2I12M3I95M4D8M5I13M1D89M3I57M5I5M3I31M3I117M2D69M3I8M3I16M1I62M4D39M4D50M5D36M2I6M5D122M3D43M1D42M5I23M1I48M3D47M1D23M1I38M3D59M5D3M3I12M1D8M3D46M1D25M1I2M3I6M2D15M2D6M4D11M1I39M4I57M4I21M1I20M2D61M5D52M2D52M1I4M4D29M1D15M3I66M3I7M5D11M2I25M2D25M4I68M3D40M4I49M3D134M4D44M5D18M3I14M1D1M3D7M1I19M2I8M5I19M5D51M2D11M2I20M2I33M1I6M1D9M5D3M3I91M2I11M3I15M3D66M2D5M4I2M2D3M2I78M4D13M5I6M1I26M4I34M3I76M5I7M3I120M4D48M1D75M2D18M2I40M2D23M5I3M2I40M1I18M5I23M5D15M3D32M1D21M4D46M3D42M5D95M4I5M2I53M5I16M4D36M3I69M1I73M1I17M4I9M3D20M5I9M3D24M4D84M5D13M4D88M4I20M3I1M4D4M4I42M4D17M5D20M2I13M4D17M1D27M4D61M3I25M4I6M5I10M1D26M2I38M5D64M3D92M2I33M3I50M2D77M1I27M1I8M3D16M3D8M4I33M5I97M1D41M3D18M2I21M5D44M4D41M5D6M4I8M4I12M2D8M5D10M3D73M1I31M1I17M3I6M4I2M4I39M5I26M1I61M1I13M2I42M1D43M2D19M5I6M5I16M2I31M5I27M1I7M4D2M1D3M2D83M5I5M2D27M5D23M4I10M3D69M1I1M2D56M2D15M3D65M2D23M3I10M3I25M5I65M1I8M5D5M5I255M4D3M1D91M3D40M5D3M3I17M4I106M4D27M4I10M5I7M1D31M2D32M1D51M2D36M1D12M4D3M5D3M1I74M4I110M3I9M4D20M4D4M4D18M3I20M3I44M2I1M1D10M2I17M3I48M5I7M4D27M1D29M4I6M4D9M5I40M4D32M1D86M1I1M2D6M4I21M2I27M5I11M2D22M2D21M1I31M1I123M3D29M3D23M3I13M1D23M5D6M4I11M3I38M2I16M3D5M1I26M5D15M4I116M4D9M1I4M5I20M1D61M2I15M5I7M1I35M1D68M5I13M1I17M1D22M2D1M2D80M5I37M3D5M4D5M1I43M4D13M2D13M2I22M2I75M5D17M5D8M2D41M3I53M2I17M2I9M2I109M2I3M4I39M2D82M2D39M3D31M2D55M4I11M3I17M4D32M1I1M1D35M3I1M4I45M5D75M1I92M1D58M2I16M5I4M3I9M4D2M5I117M2I30M3I14M5I5M1I12M2I8M1D1M3D38M3I28M5D71M1I38M4D105M2D18M3D8M4D89M4I17M4I25M2D5M4D19M2I37M4D44M4I25M3D6M4I45M4D35M1I3M5I29M1D28M1D17M3I10M3I115M2I50M3I6M3D58M4D20M3I34M3D25M2I13M5D15M2D59M2D78M1D4M3D55M2I43M4D1M3D13M3I39M4I4M1I34M2D16M5D133M4D15M1D63M1D29M2I9M1D16M5I45M3I35M1D15M2D50M1D24M4I3M5D9M3I4M5D40M1I33M1I10M3D8M1I28M1D34M5D128M5I7M2D55M1D112M5I1M3D23M2D17M4I3M2D91M1D44M1D20M3I31M5I5M2I6M3I38M5I27M4I37M4D47M1I17M3I13M4D21M4I12M5I20M1D37M1I17M5D35M5D21M1D9M2I21M1D21M5I6M5D294M3I23M2I24M2I9M3D33M2I1M1D4M4D39M4I27M1I7M5I8M3I35M2D3M4D31M2I52M5I9M4D42M2D45M4D33M1D2M1D17M5I96M3D10M3I28M4I4M4D25M1D2M1D42M3D12M4D4M2I29M5I33M3D11M5D21M3I58M5D3M3D33M5I1M3I47M3I42M5D7M5D8M3I12M1D1M5I6M3I159M2D5M1D38M1I2M3D42M2I77M5I30M4D2M4D3M5I1M3I30M4D25M3I24M1D26M2D26M3D21M2I4M5D16M5I36M4I22M2D10M2I210M2I19M5D41M4D7M5I85M2I29M5D105M3I31M3I3M4D5M3I5M2D19M5D83M3I34M3I6M2I7M5D61M3I102M3D9M1I27M2I20M3I30M4I6M5D5M3I9M5I83M5I35M2I1M2D78M3D7M1D45M5I43M1I11M2D3M3D14M2I68M2D66M1I7M2I2M2I3M4D18M3D29M4I6M1D9M5I13M5I13M3I47M2I24M3D2M3D9M4D9M1D64M4D29M1D11M4I56M3D3M1I56M3D102M3D28M3I23M3D52M4D126M3I44M2D33M3D162M5I22M3D54M5I43M3D18M4I56M3I18M1I5M2I39M1I11M5I60M5D22M2I18M2D76M1D50M3I31M1D49M3D116M3D60M3D24M2D25M5I10M4D1M3I29M2D103M1D8M2I67M1D46M1D2M3D65M2D26M3D4M3D14M1D10M1D15M5I27M4I8M3D9M4I21M4I28M5I38M2D10M5I2M2I18M5D8M1I4M2I22M5I85M3I32M2D3M3D14M1D15M5D68M2I3M4I51M4D2M3I4M2I24M4I4M2I10M2D7M1D51M3I1M1D1M2I23M1I2M4I5M5D6M4I33M1D75M2D7M1I25M2I4M2D33M4D35M5I70M2D50M5I22M3D79M2D28M4D9M5I16M1D26M3D19M3D57M1I87M5D12M3D111M3I18M2D47M5D2M4D6M4D9M5D42M1D112M4D8M3I54M2D1M3D41M5I8M1I14M1D15M3I6M2D5M5D14M2I15M2D8M3I4M5I19M5I45M3I39M5I15M4I25M2I18M4I10M1I105M2I7M5D27M4D3M1D1M1I16M4D2M2D21M3I6M5I68M2I31M1D61M4I23M2I14M2I8M1D105M2I13M3I20M3I52M3D61M5I8M4D7M4I14M1D15M1I11M1I12M4D25M3D1M1D31M5I5M3D1M3D83M2D27M4I14M1I1M1D21M1D45M4D58M1D3M1I50M5I8M4I67M4I25M5D18M4D60M1I11M2D33M4I4M3I2M2D48M1I110M4D2M3D29M3I2M1D48M5D14M4D62M3D45M5D21M3I18M1I17M1D5M4I31M4D58M4D35M5I27M3I4M5D93M5I155M5I16M5I53M1D27M2I2M4I17M3D34M5D32M2D64M5I20M2D52M1D33M1D83M5I6M1I40M5I3M5D37M5D3M4I37M5I6M5D1M2I99M3I28M2I23M2D4M1D121M1I50M3D30M2D1M2I80M4D20M5I45M4I64M4I20M4D17M2D8M2I51M2I32M1D14M4I3M2D143M1D3M5D1M1I36M3D1M1I64M5D47M4I8M1D12M2I43M1I119M3D61M1I106M3I27M5D3M5D71M1I18M3I1M1D20M2D29M5I32M4D10M5D18M3D31M5D77M4D10M5D27M5I26M2D6M4I43M2D43M1D15M1I6M3I71M3D65M4I40M2I27M4I17M2I95M5I7M2D177M3D47M5I3M2I4M3I24M3D10M4I38M1I45M1D11M2I40M2I15M5D77M3D41M5I130M2D34M1I32M3I13M3D23M3D18M1I21M2D55M * 0 0 GCCTACGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAATATGCCTAAGCCTAGGCCTAAGCCTAAGCCTAAGCCAGCGTCAGCCTAAGCGTAGCTCAGCCTAAGCCTAAATGGCCTAGGAGCCTAATGCCTAAGCTGAGCTAAACCTAAGCCTAAGCCTAAGCCTAAGCTAAGCTTAAGCCTAAGCGTAAAGCCTAAGCCTAAGCCCAAGCCTATAAGCCGAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTCAGCTTAACCTAAGCCTAAGCCTAGGCCTAACCCTAAGCGTCTAAGCCTAAGCCGTAGTAAGGCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTATGCCTAAGCCCAAGCTCTCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAAAGAGATAAGCAAACATTTTATTTTTTCAAAATTGTTTTCATGGTAAATTCAAAACGTTTTTTTTTTAGTGAAGCTTCTATATTTGGGGTACCTAATTTTGCCTGCACCTGCCTTATGCTCCTGTGTTTAGGCCTAGTACTTGTTTAAGATCCTAAACCTAATACTAAGTCTAAGCCTAAGACTAAGCCTAATACTGCCTATAAGACTTAAGGCTAAGACTTAGCCTAAGACTAAGCCTAATACCAAGCCTAAGCCTAAGACTAAGCCTAAGCCGAATAAGCCTAAGCCTAAGACTAAGCCTAATACTAAGCCTAAGCCTAGAACAGACTAAGCCTAAGACTGAGCCTAAGACTAAGCCTTATACTTAGCCTAAGCCAAAGACTCAATGAATAGCCTTAGCCTAAATATCTACAGCCTGAAACGCCTGGTAGTACACTCTTCTGAAAATACAAAAAATTTGCCATTTTTATAGCTAGGGCACTTTTGTGTCTGCCCATCTAATATAGGCAACCAAAAATAATTGCCAAGTTTTTGATGATTTGTTGCATATTGAAAATAAACATTTTTCGGGTGAAATGAATATCGTAGCTACAGAAATGGTTGTGCACTCATCTGAAAGTTTGTTTTTCTAGTTTGTTTTCTTCGCACTTTGTGCAGAATTCTTCTTGATTCTCATTGCAGAAATTTGCAAGAAAATTCGCAATTTGTATTAACAAAAATTGTTCAGTGAAAATTTTTGGAAATTAGTTTACGAATAAATCTCACATTTTTTATAGAAAAATTATTTTTAAGAATTTTTCATTTTAGGAATATTGTGCGTTATTTTAGAAAATAGCTAAATGTGATCTCTGTAATTTTGCCTGCCAAATTCAGTGAAATGTAAAAATCTAATATCCCTCATCACGTGCGACTTATTCCCGAATCAGCAAATTTTTTCAATATGATAGTTTGACATCAATAATTTGCCTATATAACTTTAGACCTGGAGTTGGCTATTAATGCCAAATTCATGATATCTAGCCACAACATTCGTTAGTAGAATTGTTGTTAGTGACGAACCTATAAACAGATTCGTGTTTTCAAGAAATTTTGCTATCATGGTTTTTCTTGGTCTTTTAACCTGGTATTTCGTTTTTGACAAAAATTTTTGTTTCTTGATTCTTGCAAAAATTTTTCCCTCACGACGGCCTTGATGTACCTTCGAAATACTACATCTTCTGGTTCTAATAGTGTTCATTGTTTTATATAAATACTTATTTAATAGGATTTCGGGTTATATAATTTGTATAAAGAGTGGTTGACATAACAAGGCTGACGAAACTTTGTGATGGCTGAAAATATTTTCGTAGCTTTGTTGATTTTTATTTATCGTGTTTGAATAACGTGTCCAATCGCCGAGAAGGAATAGAATACTGGACGACATTGTACGTATTATCCAAAAAATCAGAAAGGTAGATGACGGCACCACAATTCTTTCTGTCAGGTTTTACAACCGCCCAGTGCGTGTCACATGTTCACTGTATAAATGGTTGTACACAATATGCGGAAATAATCTAATGCATTCCAATAAGGCATAATATAAGAGGCTATCAGGCAATGCGTATCGCTCTTTGCTTTGTTTAAAGGGGGAGTAGAGTTTGTGGGGTCTATGTTTCTGAGTCTAATTTTGCCCCTGATACCGAATATCGATGTTAAAAAATTTAAAAATGTCAATTTCCCTCAATGATTTTATATTATTTTTTAAAATCCGAAATTCCATTGGATGCCTATATGTTCTAAACGCAAAATTTTCGCAGAGACCCCTGCCGCCCACGAAACCTTGCCGCACGTGTGGGTTTACGAGCTGAATATTTTCCTTTTTTATTATTTTATACCGATTTTGGTCGATTTTTCTCATTTTCTCTTTTTTTTGGTGTTTTTTATTGAAAATTTTGTGATTTTCGTAAAGTTATTCAAACTATTTATTAATAAAAACAAAAACAACTCCATTAAATATCCCATTTTCCGCAAAAGCGAAGACTAGGAAAATCGCTCTGGAGATAGAATGGATCAACAATTCTTATTATATCATTCCGCTAAAAATCATTATTAATTTTCTTCTGAGAGTCTCATTGCTTAGTTTACGCCAAGAAATAAATTAAAATTAAAATTGTTCATTTTTGAAAAAAAAATAATTAAAAAAACACATTTTTTGGAAAAAAAAATAACTAGAAAAACGGATCCTCCGCGTCGAATCACTGTTTCCGAACTCTTAAAATTCAATGTTTATTGTACAACCCTTTCGCTATTGATTTGATAGCTTTTAAGTAATAGAATTTTCGATACATTAAAACATTTCACAATTAAGCTGGTTCTGAACTGTGTAGAAGTATATTTAAACAAGACTAACTGATACAAAAATATAATTATGATAGTTTTCTGGACCACGCCAATATAAACGATGATCAATCAAGGGACCTGCTACAGTCGTCCACTAACCCGAATATCGACAAGAAAAGAAGAACGCCAACTTTGGATAGACGCTCTAGGGGCCGATGTCGGAAACTAGTCGGGAAGCTAAACCAGAATAGAGGGTACATTACAGATGAGGAGGAGGATGAAGATAGAAATATGCCGACAACATCGTCAGGCCGCTGATTTTTTTGATGTTCTACGCTTAAATTTTCAGCGAACGAACTATTTATTTTGATTGCCTTTTTAAATTTATAATATTTGCCATATGAAATTCTCACTTTCAGGCTGGAAACGTAGTTTTGCAGGCCCCGTCTCCAGTCGATTTTGCGCTGAAAATGGGATATTTAATGGAATTCTTTTTGTTTTTGTTAATAAATAGGAATAAATTTGCGAATATCACAAAATTTTCAAAACACCAAAAAAAAAGAGAAAACATGAGAAAAATCGACGAAAAATTTCGCTATAAAATCAATTAAAAATAGAAGGAAACATATATTCAGCTCGTAAACCCGCAAGTGCGGCACGGTTTGTGGGAGGGGCGGCTCTGGCGGAAAATTTTGCGTTTGAAAACGTCGATTACATGGCATCCAATGGATTTTCGGATTTTCAAAATTAATATAAAATCAGGGAAATTTTTTTAAATTTTGTCACTTCGATATTCGGTATCCGGGGCAAAATTAGAGCAGAAACATAAATTTCCCCAACTCTATCCCCCTTTAACAACCAACGCACCCGAGGATATACAAGCGTTCTATCTACTAGGCATAACTCGATTATTGACATATTATAGACTTCTTTTAATATTTGTAAAATAGTGGATCAGACCCAAAATTCAGCCCGCGAAGGCATGACGTCAGCACGGAGGAGTCTTGTAGTTTCCAGAAGAACTCTGTCGTCTACCCTAATGCCTTGCGAACCCGGGCCATCCTTTCGCTCAGAGGAAATGGATTAGAGTACTCATCAACTCCTCTGTCTAATTTTCAACTGCGGGGGCGACCGTACTGTATTACCGCGGCGACCGACACCTCCCGCGTTCCGTCGATCGCTGTCTGTTGTGTGCGCCTGCGACTCCGCCCACCGGTGGTAACTTTTTGTGGAGGAACAATTCCTTGATTTTGGTCAAGGTTTTTCTGCGCTTTTCAGCGTATTATTATTGACCAATTTTGAATAAAATTTTCAAGAATCATCTAAAATATTTAACATTTATTTAACATAAATAACGTGAGTACGCAGTAAAACTTGACATTTTCAGGAAAATTGCAATTAAACGAATAAAAATCGATATATCCATCATGTTTGGTCGTGAATCCGGTGTGTTGAGCCTACAATGCATACATTTTTACTGGATAAATCTCCTTTGGGAATCCGGTTTGCAGTGCTTTCGAAATGACATGTCCAGTTGAGAATCGCAGGCTCTAAGATGCTCGGGCTGAATAATGAATTGTTTTAAAAAATGTTTAGTAAAAAATTGTTTTCGAATGCATATTGGCTTAACCGATATTATCCAAACGTGACGTTTTCGCGATTTTCGCGCGCTAAAATTACAGTGAGTGAGGTCGACACGACAATTTTGTAAAATTACGGGCGTTCTTTAAGAAGTACTTTAGTTTAAAAAATACACTTCATTTCGTGGAATTTTCTGAATATATTTTTCATAGTTTTTCTCTTTAAATAAATCACTTTTCAACAAAAAACTATGAGACAATAGTTTGTACAGTATTCTTTAGAGGGGCACGCCTGCTCGAATTTCGCAAAAACGTGTCGTGTCGAGACCCCCATTACAGTATTTTTGAGCCGAATATCGCGAAATTTCAAGTCTGGGTGAAACATTGAAATTTTTGGCAAAATAAAAGAATCCTCTTTCAGAATATATTTTGTAAATTTCGAGACGAAATGTATACCTAAATGAATTTTAATTTTAAACCCCTATTAAATATTATTTGGCGTTTTTTATGCATGTCGATTCACTAACGATTTAGTAGTAACTACACGTGGGCAAGTTTATACAGTTTTTGGCTAAGATTTGTGAATTTGAACCGTTTTTCGGCGAACATTACACATGAAAAATTGGCAAAACGGGTTCAAAAACAAAAATTTTGTTAAACTGTAAAAACTGTCCAAAAATTTCGTAAATAACCGGCACACACCCTTTCATTTTTTCAAAATTTTAATTGTTTTCGAATGTTTTTTTTGCAGAATAATTTGTAAAATGAGCCTTTTGTGAATTTTTTTTAATTTCAAAGTTTATTTTTTCTCAAACCAACCCCTGTTGTAACTCGTCCAACTATGATCATCACGTACTGTCGAATAAGTTTCTCGTGATTTGTCACATTATCCTTGAGCTACATCCGCCAGGTTTCAGTCCTTTCTGAAAATGAAAATTAATTTTAAACAATATTGAATTATTTTAAATGAAACAGTTTTCAGAGATTTAACCTTTCGTTCGAGTCCACCACCAGGCCTGCACGTTATTCGGGTGTTATCTTTTAAAAAACTGAAAAATCGAAAATAGTTCAATTTCTGTTTTGTGGTCAAAATTGTTCAATTACAGGTAAGCAAATAGTCTTTAATTTTCAAGTGAATTGAAAATTAGGGAAATGACCGGACATAAGTTTAAAAACCCGATTGCAGTTTTCAAAGGTAAATTGAAAATTTAATAAACAGGTTGTAAATCAAGGAGATCCTATTGAATGAAAAAAAATCCGAATGTGCCGACGGGATTTTTCGGTGGTTTTTGAACGAAAATCGAAAAAGTAAATGTTTTTAATTTTCAAATTTCAATTTTTAATCGGAAAAAATGTACGAAATTGACTTTTTCATGTGAAACATTGTTGTTTTCTAGTAAAAAAAAATTTTAACCGATACAGATTTTCTAGACTCAGTTTTTTCGGTTGAATATTGTTTTTTACTATTTTATCTTTCTATTACAGATACAATTTTATTTCGCTTAAAAATAACCGGAACATCGAAAATATTTTTTTTTCTGTTTCTCAAAACATTTCAATTACCTAGAATTTTGTTTAAAAACTACATGCTTTATTTATGAACGTAGTAAATAATACCCCCTCTTATTTATAAACTTTCAACATACAATTTTTCAGTTTTCAGTGCTATCTAGTGCTTACCGCACATCACTTTTAAAGAAATCAACCAAATCGTCACCAAATATGCCCTGAAATCCATTGAATCCATAACAACTTTAATCATAACGTCGTTCGTTTCGGGCGGTGCAAACGTCTTTGGCAGTCCTTCGCTACGAATCATTATCTCCAATTCGTGGATGTTTTCCAATATATTGATCACTTTTCGTGATCAACTCCTCGACAACTTCTTCCATATCAACTTTCAATAAGAATGGCATTAAGAGATGCTTTGTAACACGTCCGATACCCGCTCCGCAGTCCAGCTGCATAGTCAAGCCGAATAGATTCTGGAAAATATTGTCATTGTAAAATTCAAAGTTGGCCCAGGGGTGACCGGCAATTTCACAGCAAATCGTTGTCAATTTTCCATGAATTTGATGCCCGAAAATTGGAAAAACGACAATTTGCCGGTTCGCTGAATTTACCTTTTTTAAATTTAATTTTCAATTCAGGCAAACGCTTTTTTCCGTTTGCCGGATATCAATTTGCAGGAATTTCTCAAAGGAATTTTTATTAAAACGGAAACACAGTGCTTTTTTTTTTCTTTCCCGTGTTTTTCAGATATTTTTATAAAGTTTACTGACTTTTCAGAATGGTGAGATGTAGGACAATTTTGTTTTAAAAAAATTGTGAAATTTCCAGCAGAACAAAAAAACATGTGCAAACCCACAAGTTGGCAAAAATATTTTGCATTTGCCGTTTTTCCCGTTTGCCGAAAAGTCTAATCTCGGTAATTGCGCCATTTTTCGAGATTTTGAGCCACATAAAAAACTTTGAACCATTTTTGAGTTAAGTATTATTACGACATTCGTTTATTTGACGCTGCACGAGAATTTTATGGGCCTATACCTTCAAAATTGTCGGGGTTTGAAAACCCCTATATGTTCGACCGAATGTTAATCTCACTTTGATGAAAATAAAATTTTCTACGGCTCATAAACGTATAGCCGCCGTCAGTCTCAAAATTTATACGATAGACACTTTATGGCGTTTATCGCCTATATTCCGTCAACAATTATTCATCTCTTTCAATGTTGTTTTTTTTTAAGGCTAAAAATGAACTTTCATGCAAATTTGTTTGATTAGGCCGTGTCGTGGTTCAACGATGCAAATTTCAGAATTTAAAAAATAAATGAAAACGAAAATGTTTCTATATACCCTATTTGTGTTCTGTGATTCCGAATACCACTGTGAAAAATTCAAAAAAAATGCCCTGATTTTATATAAATTTTTGTAAGCGTCTACAATTGTCGTTTGAATATCACACTTGGTTACACAAAATTATGAAAATGAGGAAAATTTGTTTTAATTTTTTCACATTGATAGTCGGAATCAGGAAAAAAAATAAGGTCTATAGAAAAATTCCGAACCTTTACTGCTTCTCTGGGTATAATAAATTTAAAATAAATACAGAAAATTTCAGTTCACACTGACCTAATTAAATTTGGGTATATTTCTAGGATCCGAGTTCTTGTTTACACCAGATTTACAAACTATCTAGCCTTTCACCGCCTTTTTATCATTTCCCTTCAGGCAACTCCATAAAAATCGCCTTTCGCCTCATATTACAAGATTATTCCCCTTTCTCTCCCCATTGAAAGTCATTTTCGAAACAAGCGGAAGTCATATGTGGTGTGGTGTGCGTTGGCAAACAACAAGAAAGAATCTCTGAAAACAAAAAGCGTTTTGGGTGCCCAAGTAATATTGAAAATCGTGTCTCATTTTCCATCAAAAGAAAAGGAGAAAAATTCGGCGTTTTGTTTGATTTCCGGGAAAGAAGACTCGGAAAAAGATTTAATTGACTATTTTTCAAGCAAACCTATATTGCTACAACTTTCTAAAAGGTCAGAAATTGCCGCGTAGCCTAGAAAATTGGAGGTTTAAACTCTTCCAGCTGGTAGTATTTCAGACAGGGTGCATCGAAAATTCGAAAATCCTCCTACAGAAATTAACATTTTGAAGCATCTAGAAAAGTTGAGATTATAGTACCTCACTTTTGCCGAGAAATCTCTTTCGAGGTTGAAGAGGTCTTACAAAATTTTCGGTCCTCTGACGTGAAAATGGGATGGGTTAAGGCTTCACACGACGGCGTTTTCAGGTCACACGAGAAGTTATCGTACGAGGAGAATTGACCTCCAAACCCTGATCGTGACTACAGGTCGTCGTTCGGAGCATGCGGAAGGTTCAGTGTTCGAAAATCTTCGACCAGCTTATGAGACCAGCGAAATAGACAGGACGACCAAACATTTGTGGAAGAGCTTTTCCTAGACCATCAGGATGCTATTTCGACAGAGCTGAGATAGTCGTTACGAAGTGTGGAAAAGCTGGTTTTCCAAAATCCCCGACCAGGTAGAAAATGAGACACCGATTAAGTTTATCCAGTGGGTAGAGTTTTTTCTAGGCCATCATTATGCTAGAAAAAAGCTTCGGCCATGGGGTTTTTAGGCCGTCTATTTATTTCTCATCACTTTCTCAGAAATTTCTATTTCTCAGCACCCCCCAATGATAAGTTTTTTGCAAAAAACTGCTTTGCTCATCAGCAATTCGTAATCAGGTGACCCCATTAGGCCTACCGAAACACACATTTGTCATTATTTTTCCGAATAACAAGAAAAAAGTCTTCACGCATGGGGAGATAAGAAAACCTGATTTTAAATCTTACTGTGCCGGCTGGCGCGGCGAGCTTCGATCACTGAGCCGAAAGATTAGAAAACTATGGGAATGAGGGCGTATCGTACAAATCGTCCAGGCAGAATCTGTCTAATTTTCGAACGTATATCCAGTTTTGTTATTAATTTAAGTAAACCCGTCAAACCTAGAAACAAGTAAAACGGGAGGGGGGGAATATCAGAAAATTAAATCTTGCGCACACTTTTCCATTGATCTACTAAGGTATACAATGCCCAGAGGTGTGCGGCAAATTTTGAAACTTACCCGCGCATGCCGCCCGTTTTTTTGTTTCTAGAAAAGTCAGATTTTTTGTCGAATTTGTTCAAAATTCGCTAAGATACTGTGAGTTTAGAAAAAATGACGAAAAAACTCGGAAAAGGAGGAAGAGATCTGAAATATGTAGATTTTTTTAGAAAAGACCAGGATAAATTACTGAAAAATTGGCATTTTTCGTCGAAACCCCAATATACTAAATTATGCGGATTTTTAGTTTCAAATTCAACATACAGTGCATTTTTTGGGCCTACTTCTACGACTTTAAAGGGGGGAGCATTTATGCGGGAGGGTCCTGCCGCGCATTTAGTCATCATTTTTAGCAGTTTCTGTGTAATTCAGATCACATGCAGGTCACACAATATTTATCCCATATTTAGTATGTGCCGTGCTTTTTCACAAATTAATTGTGATCTACGCGTGATCCCTGCGAATTTTGAGAAGACTTTGTTAAAAATGATGACTGTCCACGGCAAGACCCTTCGACGTATGAATGCGCCCCCCTTTAAAGTTGTATAAGTGGAAAAAAAATGCTCTAGCAAAAAATCGAACATTCTGATATTTGAATATCTCGAAATTAAAATAATTTGTGAAAAATTTTTATTTTATTTCGAAAACTACCGATTTTAGAAAAATTCTAAAATTTCGATTTTTTTTGTTGATTTTTCGATTTTTAAAATAAAATTTCATAATCTTTTAAACCGATCTCTCTTGCATTTCCTGAAAAATCGTGATTTCTATCCTTTTTCTTCAGTCCTTCAATAAATCGTTTCGACTCCGATAGGTCGGGCGCGTGAAGCGCTTCGAATCCGCCTAGCATTCCGTTGAAGTCCTGCCTCGCGCGGCTCCAGTATTCCTCCGCCCTGAGAGAGAATAGTTGAAAACATTGTTTTGAGACTTAAAAATTTTTTTTTTAGTTTTTTTCAAAAATTCTTACATGTTATAGAGTTTGTTTTTCAAATTTCTTTTTTCAGAAAAACTTAGTATTTTCGATAATTTTAGTTACAATAAAAACGAGTTTTTTTTCAAAAAATATTTCGGTTTTTTTTTTAATTTTTGGTCTAAAACCGCAAAAGATTTGCGTGTTGGCCGAACTTTTTGATTCTGTACCTTTTCAAACAACTGCAGCATTGAATTTTAGAAGATAATGAAGAGCTCATTTTGCTTATGCTCCAATGTTGCGTCAGCTGCTCCGAGCAGTCTGGAGACATGACGAAAAGACGAGGGGTCACGGATATGATGACGATACTGGAAATGAGATATTTACATTGTCTACTAGCTCATCGGGAAAATTATTACCAGAAAGATAAACAGACATGTGCGTTTTTTTAATGGAAGAGAAACACAAGAAAAATTTGGACAAACTAGGGCAGGGCTATGAGTCGATATATGGCTTCGGTCTCGACACCACTATTTTTGTTAACTAATATGGTATGGTCGCACCTATAAAGAGTACTGTAGTTTCTAACTCTCTTTGCTGCAACATAATTGACGCTCAGCGAAAACTACAGCAATTCTTCAAAAGACTATCTGTACCCTTTGTGTGGACTTACGGGCTCGATTCTCGTGCATAAACGAATTTCTGCTCGAATGATAGCCCTATGTCAATTTGGTATAGTCTTTTCTTTTGCCATTTTTCCGTGTTCTTCTAATATTTAATCTATTATTAAATTATGTAATTCTCACCCTCCTTAGAACTGCGACCGAACAGAGATTCGTCACCTCCGCCCCATATTCCGGCCAATCAGATCGAGTAGGCGGAGTTCGAAGTCGCTGATTGGTTTGAAAAGTCGCGGAAATGCAAGAAGTTTTAAGGTAGCCGTGGAAAACTGATGACTATTCTAGCGCGCTTGTGTCGATTTACGGAATCTCGATTTTCAGGAAGGAATTTTTAATTACATTTTTTCGCTCAATTAATATTCTAAATAAATAACTACATGATTTGAATTAATTTAATTTCATTCGAGCCAGTAGATCGACACATGTGCTACAGTAATCATTAGTTTTCGCAACGAGATATTTTGCGCGTACAATATTTAGTGTCCCGTAATAACTCTACTCCCTACAAACATTACGACCTCCAGAGGCCTCCAGGTAGTTGAGACTCTTGTATTTCCAATTCAGAGACAATGCGTCACTGGAAGAGAAACCGAAGCGGAAAAAAAAACACGGAAACCCAAAAATAGGGTTTGCCCCGCCCTATTCTTCTCCAATAATTGTCTTATTTTTGCAAGACTTACCACCTGTGTATGCCTTACTCGACATGCGTTAAACCCCCCCCCCCCTCCCTATCTTACAAGGTACTGATAACACTTTCAGTCTTTCACACTTTTGGCGGGGACATCGCCGCTCTTTATTCGCGGCGAGCTGATGACTCATCAATTTTTCACTCAATTCCGCTTTTGATTATCTTCAATGTTCTAGAAGGGCACATTGGTCATCCTTATTTTTTCCTTCTCTTTCTCGGGCCTTTGTTGCGCATGACCGCCCCCTACAGCAGGGCGTGGCCTGAACGGGGGCTCCGAGAGCTACTCATTCTTGCCGCGTCCCCCTCCAGCGCCACCCAAACTTCTTCGGTTCTAGAGATCGAGAAGAAGCGAACGTATGATTTTTTAAAATTATAATTGTTTCTTTCGAAAAAAAAAATTTCATTTACAGTAAGCCACAGATACAATCAACGAAACTCTTGAATTCTGCTATCTTTTCTTGCGACAGTTGCGGTTTTTGGTGAGTTTATGCTTTAGACTTTTCCGCCAAAAATACAGTTGCCGGTCTCGGTATGGCAAAATTTTTGTTAAATTCGAAAAGCAGTGAGTAAGTAGTTTCGAATTTTCGTTCCTGCTTAATTTTCATCAATTCATCGACTCATTTTTCTCACGACTTCTTCTTTATGAAAAATCAATGAGAATTCTGACTAGGTCAGGATCTTAGGGGTGAGGTACCTAGGGACGCATCACATATGCCAAACGGAAGCTGAGAGCAATCATTGGCTACAAAAATATGCTTTCAAATTGCAACGGACCTCTGGGAGACTGCAAATTCGGCCATTCTGAAATTATGCTTTTGTATGCTCGAAAGTGGTAAGAATTTAGGATTTATTACAGAAGAACGTTTAATTAGTAAAATTAGTTTTTTTATACTTGAAACAAGTACAGTAGGCCTGTATCAAAACACATTGTTGGACTTCTTATTCTACTTCATGTTTTTCTGTAATAAATTCTAAATTCTTACCACTTTCGAGCATTCAAATGCATAATTTCAGACAAGAATTTCCAGAGTCCCAGAGGTGCGTCGCAGTATTTGAAATATTCTTGTAGCCAATGATCTCAGCTTCTGTTTGGCATGTGGCGTCTCTAGGTACCTCACCCCGAAGCTTCTCCATTCCCTAGTGAGCAAACAAAATTTTGAAATTAGTACGATTTAAAGGCACATTGATTTTTCTGGGTCAAGCACAAATTTGTCGTGTCGAGACCTAGGCTACGTTAGTATTTTCGCGAAAAATCGCAAAATCTTGCAGCTGGGATATACTTGTGCGAGAATACTTTTTGCATTAATTTTGAGAAAAATTATTTTTTTTAGACTTTTTGACAAAATTTTTCGGATAGCCAATCATAAAACGGCGACCTGTGCCCGGTTGTTACATTAGGCCAACAAAGTTCCTGGGAACACTGCTGCAAACCATAATAGAGGGGTCCGGAGCATAATATCGATTTTTCGTACTTTCCTGTATTTCTTGTTCTATATGGCCGGAGTAGAACAGGATTTGAAAGTCAAAATTTTTCTCATATGGATATCACATGGATATCAAAATATTTCCATATGGATATGGAGAACATTTTTCTCCTAGGGACTTTGAAAGTTGAATCACTTGACATCTGGGGAATTAGTATTCCAGGCGTAAGTCGAATCTGTTAGAAACGGAAATGGGCATAGTGAATTAGGTAGACTTTCAATTAATCTGATCCATTGCAGTCAGACGCGGTTTCCCGGCCTGACGCCTGCCTCCAACATGCCCGCCTTCACGGCCGGTCCCGCGCCTGATTTCTGCACTGTGACGAGACAGACGAAGGTCGCCTTCTGGCGCCCGCATGGAGCACAATCGAATTGTCAGCTTCCGATGGGAGTCCGTAAATCGACACACAGGGGTACCTCAGACATTTCCCTCCCCCTTACGAATTGTTAGTGACAATTGGAGGGGGACTTCATCTCCAATCGAGACACACATATGTTGTCGTCAGTGAAGTGTAAAGATCTTAACGATTGCTGTATGATGTTAAAAAGCACTCTATGATCACCTAGGTTTTTCATCACACCCTTATTAGGTGTGGTGCCCATCGAGCACTCACGCCAGGCAGGGAGAGCACCGGTCCCTGACTAATGCGAATGTTTTAGACCGGAAAGCGATGAAAGAGCATAGAAGATCATTATCACGTCTAATTAGGTTACGGCGAAATTTGCAAAAAAGAGCAGGAAACTTGGCTCATATCCAATATAACAACCAGGACTTCCATGTAGGCGTTAAAGCGATACCACTGTATCTCACCCCAATCCGTACCTTAAGCTGAAACAAACGTGGACTTTTTTCATCTCTTAAAGGAGTTTCGTAAACGGGAAATTGTTTTAAAATGGAGTATTTGTACTTCAACAATTATTGCAAAAGAAAAACGGAAAAAATCCGCTAACATTCAGCATTTTAAGTCTCATGAAGAAGTCTTTAAAATTTCAACCGTAGAGAAATCCTGCATAGGCACGACGCTCTAGGCATTCGAATTTTAATATGTTTTGATGTTTTGAGAAAAATAATACAATAACTTCCCAGTTTTCTATAACTTTGAGAAAAAAGCGAATTAAATTCCGAAAAAACTACATTTATCAATATTTTGTTTACGAATATGGCCTAGAAAGCGCGTGGTGGCCTCGGATTCATTTGCTCGCGAAATTCAAATTCCGTCACTTTCGTCGATTTCAACGGCCCTGTAAACCCGTGCTGCATGTCAACGGATTTTTCCCGCTTATTCTTTCTTTTGCAGAAATAATTAGAAGTTTGAGTACAAATACTTGTAAAACAATTTTATTTTTGCTATTTTGACGTTGATTGATTACGGTTTTTTTGGTTTGGGACCAAAAATTCCAGAAATGTTTGGCGTGTCTAGTCTTTCGACTCGAGACTACTCTGTATTAAATAGGCAAACATTTATTTTAACACAGTTGTGACGTCATAATATTTTGATACATTTTGCAACATTACTTAAATAACCCCATTAAAAATTAACCTAATCGTGCATCAAACAAAATTTTATGGTTTTTTTGGTTTTTCGAAAATTTCAATTTTTTTTGTTTTTTGGGTTTTTTTGGTTTTTCAAAAACTTCAATTTTTTGTTTTTTGGTCCAACATTTTTTTTTGGTCTCAGCTCTTCTGGCCTACCCTAGGAGAAATAGCGCTTCAAAAACTGATGAAAACGTACAAATTTGTCGATAGAAACCAAATATTACGAAAATCTGAAAAGTTGGCTCAAATCTAGATTGGATCGGCCGATTTTCCACAAGTTTCCAAGCTTCCACAAGTCGTATCCCGAGTCGATTCAAATTGAGTTTGAATACTGCCAATTTTGAACCAAATTTCCCTGGCTTCTCTGTTATTTAAAAAAACGCGAGGCAAAAAAATAAAACGATCTAATTATTACTTTTGTGAACACAAAATTCTGAAAATCGCGCGTAAATATTGCGCAACATATTTGACGCGGAAAATATCTCGTATCGAAAACTACATTAATTCTTTAAATGACACGCTGTATGTGGTTATTTACGGGCTCAAAAAACCGACACGTTTATTTTAGAAAATGCCCGTAAATCCACACATAAGAGAGTAATTGAATATAAAAAGAATTAACCTGTAGTTTTCTACGAGATATACGCTTTGCGCGCCAACTATGTTGCGCAATACGCAACCCACCATATGGATATATACTGATGTGAGGATAAAAAACAGCAAGCCAACTTTCAGCGGTCGGCTCCGGCAGGCCTCGAGGACTGCGTCCTCAGGAGCAACTGTACAGTCTGGAGAAAGAGAACGGAGTTGATGTGAAGCAAAAGGGGCGCTGAAACCAGCAGCAGATGCCGACACATTCCTTGGATTTGTTCCATAGAAGAGAATGGTCACGTGGCAGCCATGCAGCGGTCGATGATCAATATGAGGAGTCTAGAGCTCCTTGTTATTTAGTGGTGGTGGCCGTAAAAGAGAAAACTCGGCCAAGCTGCTCGGAGTTTTTGAATTTTTGATAATCCGAAATGAAAATTGATTGCTCGAAAAGGCAATCTTTTGGAAAAACGAATTTTGTAATTTTTTTCAGCAAAAATTGCTTTTCGAATTTTTCCATTAAAAAATCGATAATTTCTCCCCGTGCAGTGGAAAACAAACAATATTTTTTTGATGATTGGCACTCTTCCAAACCCGGCGAGGACTAGGTACACTCCTGCGTCATCCCCATTATCTTATCACACTTTCTTTCGAAAATAGCGTTTGAGGTAGAGACGGAAAAGTGAGAAAGGTGAGTCAATTTTATGCGTAGATTTAGGATGATAATACACACAAATTAAAAAAACGAATGCGTGGCGTGCACTGAAACCCTCATATTTAGGCCCCGCCTAACGGTTTCACCTCTCGTCCACTCACGGAGAAAAAAATTTACGTGGGGACCAACCAATATCAGGCCTAGGCCGCCATCGTACGGGTTCCGCGCGCCGCTATGTTTAACTCTCTGTGGGTGTGGCGAGCTGTCTCCGCCCGCTGCGACTCGAGTAAAACATAGCGGCGCGCGGAACCCGTAGGAAGTCGACGGCCGATATTGTTGGACAAATTTTTTCCTTTTATCCGTCAGTGGACGACTATACAAAAAGGCGGGGCCTAACCACTTAAGATGTTTTCTGCAGTACACGCCACGAACAGTTTTTTTATGTTGAGTGTATAGGTCTAGATTCTCGAAAGTCTAACAGTTATTTAAATGATGAACTCGTGATGACTGTTAAATTGCTTTGGAAATTTCGGGGGAATTATAGAAATCGATTTTGTATCGATAAGATTTACAGGAAAAACCCAGTACCACTAATATCTAGGTATTCGATGGTAGGCAGGCGCGATTTCCTTGAGGCCTGCCTGGAATCTGTCCGGCTCACACCAAAATATGTCTATCATTTTGCTGAAAACCAAATTAAGAAATGAAAGTGTAGAGATGATGACGGAGGTCGCCTTAAGGTCAGACAGGTTAAAAAACCGATTTTAGCTATTTTAATTTTCTTAACAACCGAATTAGAAATATGCTGCTTGTCATTTTTGAGTAAAAATTATTCATACGAAAACTTCGACCAAAACCACCCCGAAAAAAATGAGGAAAATAAAGATTTTTCGAGAAAATAACAAAAAAATCCAGCAAATAGTGAAAAATAGTTCTCTCCGAGAAAAGGAGTTTAGACGCTATGAGGTAGTCTCGAAAATCATTTCAACCTAAAAGCCATAAACGGCATTATCGATTAAAATTCTCACTGAAAATCCGGTGCCCGAATTTCAGTGCTCCCCACAATCGAAGCCCGCTTGGCCGAAGTGTTGAGAGCCGGAGAACGCGGCTCGGAGTCAACCCGGAGGAAGTCCGTTTTGACGGATCTTCGTCCTCGTAATTCCAATAAATATTCTTTGCCCTACATACTTTATCCATCTGACAACTAAAATGTCAGTTCTTCTTGGCTTCAGCGGTTCTATTTGTCAAATGGTTTATTTTCCCCAGAGCGAACTCTCAAAAGGTTAAAATATTGTTCGATTACCCCTTTTTGTCAATTATTTTCTTCAATTTCTTATTTATCATTATTTTTCTAAACGAAGACGGTTGTGAATTTAAATTATGTTAATGGTCTAAACTTTCCAAACTGAATAAATTCAGCATGTTGGCACGTTTTTACAGTAGTTTTTGAGTGAAAATAGAGGTAAAAAGACAGAAAATCAATAAAAAATGAAAACAAAACTATCAATGAAAAATGGTTGAAAATCGAGCAAAAATCGTTCAAAAAAAAATAAATTCGAAAAAATAATTGCGTCGAGGAACGCGTCAGTACTCTCTGCGACTCTCACCCTTCAGCACGCGCGCCACGAGAAATGCGCAATGGCTAAATTCGCGCGGAAAATCATTTCGTTTTTCAACATTAAACAAATTCGACGAGTAAATCGCTCAATACTTAAGTAAGTATGGATTTTCAGCTCGTTCAAAAAATTTTCAGAACCGTTTTAAAGTCGTAAGGTTTTTTTTTAAATCGTCGGAAGTAAAAAAATAGCGCGGAAATCTACGGAGTGCGGAGCGAACACAGGCGCTGTAATTCAAATGGGTAGAATAGTCAAAATTGAAAGTTCGCCAGCACGACCATATTTTCAAAACTTAATGGTAGATTTTTTCGTTTTTCTTTTGTGGTATTTCGGCATTTAAGATTAGAGAGCACATTTTAAAGTAAAATTCCCCATCCAAGTCGCACTCACCTTCTCCAGCCATTTCCAATTGGAAAAGTGTATTATATCCCGTCTTTTTTTTTCTGAACAATAAATTTTTCGTTTATCCAGGATAGTCATGATACAAATTCGTTAACAAAAAATGAATAAATGAGAGCGATTAAAGCATTGTCGGAAAATATGGGTTAAGGAGAAGGGGGCGGACTTTTGGATGGGGTACAAAAACCATCAATATGCAAAAACTGGGCTAAAAGCAATATTTTCAAATTATGCCCGACAAAGGTTCAAAAGTCAATATATAGAAATGAGAACATGAGTATTATGCCACGTGGCGGGAAAAATACGTGGAGTGTAATACGATGATCAGATCCTTGTGAATACAAAGTTTGTGACGACGTGGCCGAGAAGAACTTTGTAAGCCAATGCGTAAAAAGGGGTTCAGTCTAGGCCGAAATTTTTTTTGGGCCACATATTAAGTTAAATTAATTAAAAAAAATCACAGCGTATCCAATTTGCCGAGTTTTGACTTGAGCTCGGCGCGATACGTGTCGATTGACTCAAAATATTGTTTTTTTTTATTTCCGAATAAAAAATGGTGAGTACCTCCAAAATTAGCTTTTCATTGTCCATATAGAACTTTTTGATTTGTTCCACAGTTTTTGTGGCCATCCGGCGATCCAAACTCGAAATTGTCATTTCCTGGTACCAGTGGAAACCTGAAGGAATTTCGGATGTTTTTGCTTAATCATAATCATGATAATCTTACGTGAAACATAAGACTTGGAAAACGAGATTTTTCGAGAGTTCGAATTCAATTTATCTTCAGATTTTATTGCAACAAATCAATTTTCAACATAAAATAATTTTTCCAACTTTTTTTCCCAATTTATGAGAGTTTAAACATTGTTTTAAAGCAAACCGCCAACATTACATAAAAAATTAAAATATTGTTGAAGGAAAAAAATGATGAAATAGATTTTCTGACAAAAAATTTAATTTTTTTGGATTCGCGCTTCAATTATTGCGTTCTTTAAGAAGAGTGATCGAATTTTATATTTCCAATTGTAAAAAAATTTAAAATGGAATGAAACCTTTCCAAAGAAAAACTGAATATCACCAGAACTTGTGATTTTTCAGCATTTATTTTTAGGTTTGAATTTTTTTTTCATGATTGCCAAACGTGAAAAGTGCAATTTTACCGAACATTTAAAAAATCAAGATTTTTCAATTCTCTCTGAATTCCTGCAGATTTTTCGATGAAAAATTGAATTTTCCTTGGGTAATATTATTTTTCGGGAATTTATCAGTTTTTAAAAAAAATTTTATTGTCTCTGAAGTTCTCGATAAAAAATTATTTTCTGCAAAAAATCTACTTTTTCTCATTGAATATTCCGTAAAAAAAATCAGAATTACAAGGCACATTTCCTTTTCTAATCTACCGTATAATAATTCAATATTCTTTTAAAAATTCGGGGTAGATAATGAATTGTACCAATTTTTATTAAAGTTAATTTTTCTAATTTACGTTTCAAAATTTTCTTGAATAGTTTTTGGAATTACAGATTGTTTCAAAAAAATTTATTTTGTTTTTTTTTCTCGAAAATTTGAAATCCATACATTCTAATAGCATTCTTTCTGTTCCTCAGGACTCCAAACATAATTTATCCTGACCTTTCCAGATCGATTGCCATTTGTTGCAATAGTATCTAGTTCAGAAATCTCTCGAACCATCTTCCCTTCAACGCCATAATATGTTTCGCTTCCAATTTGCATTTTCTCCTTTTGGTACACGGCTGTATGTCATTGGTGCACGGAACATTGGTTGACGGGCTTCTTCATTCAGAATTCTGGAAAAGTTGATGTTGTGCGATTTTTTTTGGGTAAAAAAAACAATTTTCGTAAGTTTAATTAACTAATATTTTAAAAAATCTGTCTCAGTTTCTGAGGCACCACGGGTTCAAGATCTGGTGGGATTGCCTCCCGGATCTGGCACCGTGCCAACGCATTGAATGCAATTTTTCTGAAAAAAGGGCAACGAAGATCCGATTTAAAAAAATTTTTCAATTATTTTCCAAAGTTTTCACGAACTATAAGAACGGAGCAATTTTTCACAAAAATTCCAGTTCCTTTTTATGTTAGAATTTAAAAAAAAAATTGAATTTTTCCTAAAAAATTAGTACATTTTCCGATATCTCAAGTGTGCCATAAGAGCCTAAAATCAGAAAACTTTTAAAGGAAAAATTTTGAGCATTCTTATCAAAAAATCAACTTCTTCTCACAATGTTACCTTATTTTCTTTCTAAATTCTGAAAAGCATATCTCAGCTTTTGCTAAACTATTTTTTACCTCAAATTTTGAGAAAATTAAAATATAAGAGCTATGATATAGTAAATATTTTATTTTCTAATAATTTTTGGTATTTCTATTCTTTCGTTTTTTCATTTTTCAAAAATTCCACATAGTTTTAAATGTTCATATTATTTCTTTTGTCCAGGAAAACTCGTAAATTTTAGTACAACTTTAAACCGGAAGATTGATCTTTTAAATTTTTTTTTCAAAAAATTTGAATCTTCGACATGAAAGATGTAGAAGTGTGATTTAAAAATAAAAGTGCAGGTATTTTCAGTTTACAGCAAAAGTCAGTTTAAAAAATTTCGACTGGTTTTCAAAATGAGTTTCCTTTTTTGTACACGTAGAACTTTTTTTATTTTCCGATTTCTGGCGTTTAGTTGCAGAAATTTTTTTTCCGCAAAGTCAGGAAAAATTCAGAAAAATAGGACAGTCAAAAAATTGTAGCTACAATTTTTTGAGTGTCTTTTTCTGAATTTTTCCTACGATTTTGCGGAAAAAAAAACTTATTTTTTCATGAAATCGAGTACCCATCCAATTCCACAAACTTACTCGTTCTCCTCCATACATTTCGTTTGTTCTCCAAACAAGTGGAAAACACATATGATGTTTTCTCATATTATCATTCCAGTACAGCCGGTGTATCGACCGAAGCTCCGTGCCACAGATTCTGCACGTATTCCATCGATTGGATCAGCTTCAATCGCTTTCTCCACAATGGCCTGAGGTTGAGAAGGGAGTCGTCTGGAGAAAAATAGAATAGAATCATGATTTTTAGGTTATTTTACGTTTAAAAATCTAATTTTTAAGACGCGTAAACGTTGGGCTCATTTATAAAAAATCGGCACACCGGCAACTTTGCCGAAATTTCGGAAAATTGTCGGTTTGCACATTTTTGCGGATCGTGAAAGTTCAGAACTTCGATTTCAATCCGCAAAATTGTATACATCCTATCAAAACATCAATCTTGAAAGGCCATTAAATACTCTCTATGGTCTAAAGAAAAGAAAACGATGGTGTAAAAAGATGCAGTTTTAAATGTTGTCTTATTAATAACAAAATTCGACAATTTGCCGGAATTGCAATTTTTTTTTCTCCAACTTCCGAAAAAAACCCACCGACCACCATAATATCATCGTCTTCTTCTGTTTCTTTTCCAATTCCAAGCCCTTTGATCGCTTTTCCGGTGGCTGGCTGCATGAGCTCAAGGTATCCGTATACATAGATTTTCATGTCTGAAAGAAAATTCAAATTTCTTCTGGAATGTTACTCGAAAGTATCATTCCGGACATTACTCGTTGCCGTCGTTTGGTCAGTGCACGGAGGCTTGCCGGACGTGGAACACGCATCAAACGTAAATAAAGGATACACGGTTCACATCCGTGACGCGACATTACACATTTAGCTTAAAATTGTGAAATTAATTTTTTTTAATAGCATCTTTTTTTTTAAATTTCGCCCATGCTTTTTCCATTTTTTCAACGAGTTTCCTTATTTTTTGTCCATTTACTGTAAGTTTTTGAGAATTGTTTTTTGTTAATTTAACATTAGCAAACATTTATTAGCAAAAATTTTATTAGCAAAAAAACTTTTTTAATTTTTTTAAATTAGCTCAAAATTCTCGAAATTTTAGATTTTTAAAGGGTAAACAATATAAAACTTAGGGAGTTTTGAGCTATAAAACGATAAATTGATTTGAAAAAGGATGATAAACTTAGTTTAAAAAACCGACAAAAATAGACTAAAATGAAGGGAACACGGCAGCAGCTTAGCCCCATGCTTAGCCAGCAGCCCTGTAGCAACCCAGTATCAATAATATCCCGTGCCAATTTTCTAGAACTGAATATAAATTGGGTTGCAATGTTGCTAAAGGGCTGCGAAAGACTGAACTGGGATGAACCTGGGCTGCAAGGGGCTGCGAAGTGCTGCGAGGGCAAAGCTCAGGCTACAGTGCTAAAAGGGGGCTGAGCCCAGACACTCAGGAAAAAACTCCATACTCGCAGCCGCACCACATTTGCGCTCTGATCGCGTGCTATCCGCGCGCACAGAAATTCGAAAGTATTACTGTTCCAAATTCGGAATGCGCGCACGAGGGAGAAGACGCAATTAGAGCGCGGATCTGCACGTAAGGAAGAAGTGGGACTGGAGCACGAACCAGTAATCTAGTCGCGCCTCCGCTCTCCAGGAGGTCTAGAGCGATTTGCCGAGCAGGTCAGCCCTTCGCAGCCCTTCAGGAAGTACAATCAAAATTATACAGAAATTTTATATTGGAACGGGATATCATTGATACGCCTAAACAGCCCTATTAAATAGTGATGACGGCGTAAATGAAATTCGCCATTTCCAGCTAACATATAAATTTTTTTTTTTTAACATTGATATGAATGGATTCAGCAGAAAATTTGCCGAAGTCATTGGAAAATATTAAGATTTCCAGATTTCGGTACTCCACTTTTAAAACTGAATTTTAAAACTGTAGTCTTTATTCAATGTTTCTTTCAAAATTTAAAAAGTAGAATATGTGAGAAAAATTTCCAAAATTGTCAAAATCTCTAATAGCTGAAATATTTCACGGCCAACCGGCGGGGGGTACATGAGAATTCTCTACCGTATGATTCCAATTTGGCTGACTGCGTGCTCAACGTTGACTAATACTGAGTGTAAACTTTTCGTACACCGTTGCGTACTGCACAGCGCGCATTTTAATTGACGACATTTAGCAAAAATTATAAGATTTTTCGGAATTATGAAGCGCAATTTTCACAAAAATAATGAGTTATTTGTAGAATTTATGAAAAATCGTGAAGATTTTTTTCTTGATATTCAAGAACAAGCAATTTTTTTCTTAACAGAGGAATCCTCTCGCATGCACCTGTTGTTTTTTGCTCCACTTTAGGACGATAAAAATGCGAATTGTTGATAAAATGAATGATAAATAATATAGAGTAAAAGTGCAAATATGACTTCAGCAAGTTTTAAACCCAAATTTTTCCTGGTCGATTTTCTGTTAGATTCCTGGTTTTGAGTAAACAGTCTGATATATTCCTGATTATAATGATAACAATCACGAACATAAGAATTGTAGAGCACAGAGAAACAACAAATTGCAAACACAGCAACTGATATCAGAATTAACGACGGAAGTACCACGGAAACCTCCTCGGTCTCCACCTCGCCCACCACGGAAGCCACCACCTCTGTCGCGTCCTCTGAATCCTCCTCGATCTCCACCGAATCCACCTCTCCTCCATCGCGGTCTTCTGATATACCACGGAAGCCTCCACCTCCACCAGGATCTGTTGAGAGTCCTCTGAAGCCTCCTCGATCGCCACCTAAAACCACGGAAGCCACCACGATCCGCGGATTTTCCTCTATAGCCTTCGAGGCTTCAGTTGTACCCCATTCTTGGCACGCCTCAGATCTCTACAAAAAAAACAAATTAGAAGCATTTCAGACCATGCTTATCGAAATGTGTACCTATCCCGCTTTATCGCAATCTGTCTATACGTCTTATCCTTTTGGTTCTCAACTTCTTTAACTTGTCCAGTAGCGAGCTTGCTAACGAGCAGCATTTTCCCGAATCGCCTTCACCTCAGCCTCCACAGCATCCAGTGGCTCCTTGACAATCGTAACTTCGAGTAATACGTTGCTCACTCTCCTGCTCACGACGCTATTTCATCTGCTTCTTTTTATTGTCACCGCATTATGGTTGTGATAGAGATTAACCTCTCCGTCTCATCGATTTGTCCACTTCTTCATTTTTGACTCCGAGTTCCAGCGTCAGTCGGGTCCGATCTCACGAAGACGGACCGTAGCTATTCTGGCGAATTCCGCAGTCACGTCCTTCAAAAATGTCTTGTGGATGTTCTTCTTGCTGAGGGGGCTGCTGAAACCAATGTCGGCATGATGAGAGTTCCGGTATTCTGAATCCTTTTCCTGCGTGGGCTAGCGACGAGCTGCACGTCTGAAAATCAACGTTTTTGGAATTTTTGGGCGCATGATCTGGAGCTACAGAATCATTCGATTCTTAGAATCAGCATGCTTTTATTCATATTTTAGGATCTTTTTAAAAAATCTGGACCAAAAGTTTTCGAAAAAATTTTAATTTTTGTGACTATCAGAAATTTGAATATTCACTAAATCGAAAAAAATCATTGCAAAATCCATTCGTCAGCTGAGAACATTCAAAACTTATCAATTTGAAATCAGCATATTTCAGTGTATAATTAAAAAAGTTTCAAAAATTCTGAGACTTTTATTTTTGAGAAAAATAATTATTCGCTCGAATTATTGAATTTTCACTAAGCAACAGTAAACTTGCGCCCATGCTACAAGCCTGAATCTTTCAAATTAAGAACCAGCATGATTTTTTCAATATTCTAGGACGTTTAAAAAAAATCTGGACGAAGTTTTTGAGGAACGTAATTTATACAAAAATGTTCTGATTTTTCACTAAACTCAATTTATAAAAATAGTCAACGTTGCCCATGCTGTACACCTAAATCATTATGCGGAAATTCAGAACCGCCATGTATTTTTTCTTACCAAAGGCTCTTTAAAAAAAATGTGGACCAAGAGTTTTGATATTTAGAAAAATAACTCACTTTTCGACGTTTTTCGCCTTCTCGTTGCTAACCCGACAGTTGATTTTTGCGGCGATTTGTGGCGCTGAAAATTTTTAGTTTTATTAACGAAGAAAACAAGAAAAAACGACGAGAAAACATCAGAAAAATGCGAAAAAACATCGAAAAACCACCGCAACCTCGTGCTAATAACAAAAAAAAAGCATTGCAGCCGCGGGACTAGTTTTCGCAACTGTCTAGGCCATGTCCCGTTCGCCGTGCCGTGTATTTGTTTAATTCCCTTTTTGGAAAAAGTCAACATATTTCTCTAACAAATCGTTTTTCTATTAATTTTTGTCTAAAATTCACAATCAACAGATCTTTTGCATTGCAATTCTCACAATATCCCGACAGGAAACCTCAGTTACAAATCTGATTCACCTCTTTGAATAGTTCATTATTAGTGACGGTTTCATTCAAAGCACATTAATCATTGTTTTAAACTTTTGCACTTCGTGTTTTATGTAATAGAATTGTAATGGACAAAAGAAAGCAAGAGCGTTGGGGCATCTGCAAAAAATCATGAAATTTATTCTCTTTTTATGATTAAATTAGAATTTTCTAAAATTCCCTTTTTTTGACATATGCACTTACAGCCGCATGAATCTTGTTGAACCGTTTTCCGAAATGAAAGAAAGTGGACAAAAGACCAATGTTGATTCTTCTCCAATCATCATGAATTTCTTTTCTTCTCATCGCTTGAACCATCGCAGCGTCGAAATTACTTGACTGTCTCGTTGTTCAGAATGAACAGACCTGTAAAATCAGTTACTTTTTTTTAGCAATTTAAACAAAGTACTATTTCCAAAAAATAGGGAAAAAAAGGTTTGATTTTATAAACTCTCGAATTTTTATTATGGTCAATTGTTATTTTTTCCAGAGAAAAACTCATTCTCCCAATATTCAGAAGTTTCTCTCTAAATTTTTTTCCCATCGTACCCTTATCTATAGGTAATTGATATGACGTACGATCCAGTCTGAGATGTCTTCTGTAAGCCGTTTCTCGTTCATTTCGTCTGGAACCGCCCAATCAAGTTGATCTCTGTACGGTTCTTTTTCCAATTGCTTGCAGTTGGCTGTATAATCGCCTGATAGCGTGTTCGGTTCCCACGTGGATTAGATTGTCGACATTGAAAGTGGATTTGCTGGAGGAAATTGGGAATTTTTCAAGGTTTTAAGTGGATTTTCAAGCTATTTATAAAAGCAGGAAAAAGCTCAGAAATAAACTTTTTTTACGTCGTGTTTTTTCCAATGGAATTACCTACTTTTAACTAATTGTTCGGTTTAAACCCAGAAACTTGTTTCATATGGATTTTCCCGGTGAAAATAGAAGGAATCGTCGCATTCTCAAAGTTTTTTCACCGATTTGTTTCAATTTTAGCACAACTCAATGAATCACAAAAATTCCATTAGAGCCGATTTTCGTAAATTGGTTCCTACATTTCGAACGAAAAATTGTCCTTTCTGTTTAAACCGGAAATTCTCTTTTGAAAAACCAATGAAAATTTGAATTTTCTGCGCTTTTCTTCGGAAAATTATTCTCGAAGTTTATCAATCGATCCTTGGTCTTTTTTTGTTCCGCAGATAACGGCTGGCGGAGTTTACAAGCGTACCAAGTGGTTCAACTTTTATGCGATAAAGCTTTATAAATGGGACATAGATGAATAATATTTCGAGAGGCTAAATGCAAAAAGAATGAGTAAAAAAGCGCGCAGCCCCGTCCATCTCTGACGAAAAACGCCGTTTAAGGATCGGCTGGATTGCAATTTCCGAATGGGAGTAGTTCGAAGTGTCAAAATGCCGGAGAGGTAGTCGTCAAATTTCACCGAAACGTAACCCGGTAATTTCCACAATTAATGGTCGATTTTTCGCAACAAGTGGTATGTTTGTCAGGATTTATATTGTGGCAGTCCAGATTTTAAGGATTATTTTTGGGCAAAAATGTCGAAGTAATTTTCTCTGAAAAAGTTCGTTTATTATAATTCAGATTTTTTAGATAGTTTTCATCAATTTTGCCAGTTTTCAGCCTGAGAACCTTACTAAAGTACGATGTGTATCATGAGCGCCCCTTTCATGAAGCTAACGAGCTTCAGCTTCATCTTCGTCCTCTTCATCCTCCAAATCTTCATCCTCATCGCCCATTGATTCCCCAGACGTTGTTTCGCGTTTGCTCATGGATCTTATAGGACGAGCCTGAAGATTCAATTCTTTTAAATTCAAATTTACCGCTTAAAAATCGATAATTCTCCCGTACTCTGGTTTCTTCTTCTTGTTCCGCCTGCTCCTCTGGATCATCTTCCTCCATTGACTAGGGCCGGCATTCAACATATTCAAGCCTTCGTCTGAATTTCTGGCCAATTTATACAAAAACCGACAAAATAATAAGCATCACTTTCTTTTCGCGTCTTCGTCAGAGACGTGTGAATCCATTTCCTGGAATTTGAGTTTGAATGTTTTTAAACAAATTTTATGGAGAAAACATTCGAAACACTAGAACTTCTGTTGAAACACGAGAAAATTTTTTGAAAATCCATGAGAAAAACAGTTTTGAAAAATCTGTTTTTGGAGGCTCTCCGTTGAGGAATCGTCACCCGAGACGCAGATTCTCCGGTTTTTTCATAGTTTGAGTTTAAGAACAAAACAGTTTAAAAAAATGTTTTTAGTATTTGAATGTAACTTATAATGTATGTTTTACTTCCATTAAAAATTAAAAAAAACTACAACCCTAAATTATCATGTAAATTTGAAACCGTGAATCAATCTCCGCGGAAGGGCGAGCCTATATTCCGCAAGCGCACTCTATCGCTAATGTACAATGGGCGGTTTTTCTAACTGCTAGGAATTAATCGGATTCTCGAAGTTGATTTTGGGTTTCTTTTTTTCGGGAACATATTGGTGTTTTTGCGTTCAATATTCAAACTTAGAGGAAAACTGCTTCAAATAATTAGGGAAACTCTTGAAACGAAAGCGCTGAAAACAGGCAAAAATAATTATTTTTGTATTTTTTAGGCTACTTTCTATACTTTTGCGTACATACTATAGTTATTCTATAACAGCCATTAAAATTATTAAAATGATTTTTCCATTAAAAATAAAATGAGCAAAATGATTCTTTTCCAGAATCCTATATGCGCCTTTAAAATCTCTCGGATTACTGTTTCAAAGAAATTCTCCTTTATATTTTTAATTTTAAATTTTTTCCTGAATGTCAAATATTAGGGTAAAAATCATAATAATATGTGCTATTCATATGAGTGTGGGCAAGAATTAGTGAAAAAGAACAAAAACACGTATGGACTGTAAAATTGGAATTTTGAAAATAAAAATAATATGCAGAAACAATTAAAATTTCCAGGAAAAAAGTCAGTAAAACCATCAAGAAAAAACTACTCGATTTTGAAGGAAATCAGCAAGAAATATCGTAGAAAAAAGTATGTTTAATTTGGAAAACCCCTGCTTGAATTTGTTTACAGTAAATTGGGCATAAAAGCGTATTGGCAAATTCGCAAAAACAAAAATCTGGGGATCGTGATGTGATGGAGTTGGGTTTTGTGAAAAAATTCAGCGCGGAAAAAATTGAGTAGACTATTTCAAAAATGTCGATTTTTGAAATTTGTGAAAAATTGAACAAAAACTGTTTTTTTTTGGAATTTCAAGAAGTTTTATAAATTTTTTTGGTTAAGATCAATTTTGAATATTATCTAGTTTGGTTTCACTTAACCATGCAGAACAATTCGTACAAAGGTATTCTAGAAAGGAAATGTGCGCTCCAGCACATTATTTGCTCGTGGAGCGCACTTGTGTGCACGTACGCTAGACCAGAATGTGTGGTAGAAAGGGAGGGAATAGGAAAAACAACAAATTGGGCAATGTAAGATTCGGAGAAAGAATTGGAACGAAACAATATGTATTTCGAGCTCCGCGAGCTGGTGGATCAATCCACAGGCTCTCCATCCTTGCGTTTTCGAGAGGCACATTGCATTCTAGTTACACACACCCGAGCACGTGTATAATGGAACATTGAAGCCTGGAAACGAGCCATCGCTACCATCATTACCACGTGGATGAAAAACTTAAATTTTGATGATTCGAAAATTTTCTGGAAAAGTTATGATTGTGAGATAAATTGAATTCTTTGAAAAATCAAAATTGCAAATGCTTGTAGAAAATTTTATATATTTTTTTAAGCGTATCTTTTCTGTATACATTTCCAAATTTTTTTGTTACCCAATTTTAAAGATTTTATTGAATTTTAAAATTCCTTTCAGTAATTCGGAAACTTTTTTTCAACTTTTTGATTTTCCGCATTTTTTAAAATTTTATTCAAGGAGAATTATTAGATTCTTTTGAATTTAACGAATTCTGTTCGCTAAAAAATTTTTCGATTTTTCCTGATTTAACGTCTGACAAATATATCTGGTTTTTTTATTTTCCTGATTTTTCTGTTCGATTAAAAATTTATAAAAACAAGTTTTTTTCTAATTTTTGGTTTTGATGATTGTGTATTTTTTCTGAACTTTACAGTTTACGATGACACCGATCTTCCACATTAAAAAATTCGATACAAAAAAGCATTAACATGATTTTTAAAATTTGAATTATTTTTCAAAAAAAATAATATTTCAACTGTGTTTTCGGAATTTTCGATTTTTTCTGAGTTTTTTTTGGAATTTTTCCTCCTTTCTGCTACCAGAAAAATATTGCCAAATTCAATGTTGTGTAGTAATTGTATTCAAAAAAAGTGTTCAACTTCTGAGTCTAAACCTTTTCCGAATCCTTAAATCCTTGCAGAGCTCTCGTGAATTCAGTTGTCAATTATGTGAATAGCAAGCTGCGTAACATTTTAATGAAAGTTTTAGTTTGTCAAGGACTCGATTAATTTCCGAATAATCATAATCATCGACTCGAAGATCATATAATCCTTGAGTATAGTTCCAAATTACTTTGCTTCACGGAAAGCAGCAGTGTCAATTTCATTTTGATTCACGGCGGCTGGTGGTTCTCCTTCTCCAGATGCATGGGATGAGCCGGATGGCCTGAAAAATTAATTTTTTGGAATTATTATATTTTTCGGTTTATTTCATGCATCTCGATTATTTTAACAAAATTACCAAATTCAACTAGATTACAACTTGCACTGTGTCGATTTACGGGTTTTGGCGTTATACGAGTTGAATTTGTTTATCGATAGAATATTAAAATTTAGCTAAAATTGAGTAGACTATAAGAAGAATTTTTTTAACTTCAAAAATCATTCGAGGCAAAAACGTCACGAGCGTCAGGATCGACACAGTAGTCATTTATATAAAAACCAGTTTCGGCCACGAAATATCTCGCGCCATTCTTCAAACATCTTGGGTAGTACGTATTCTCAAAACTGTGAGTTCACGTATAATATTCATGCGAAATTTTGGTCTACTTTGTTAGAGAAATCATCACTAACATATTGCCAGTAGGCCGAATATGATATCGAACATTCGATCACGCCGTGACGTCATCTAAGTGTATCCGTATATTCATTCGTTATTATAAACATGATCCCATCCAACTTCTTCAACTCGGAAGGGCGGAATATCCTTTTCAGGTCTTCATTCTAAATTCAATATATCCAAAGTTGAATGGTGCGAGTAAATTGGATAATTTTACACGGCGCTTTTTCGCATAATATCTTCTCCATTTTTATCGATATTTGCATACATCATGATACAGGCGAGTAGTTTTTCCGTTTGGAACTATCTGTTGCTGCAGGAGCACTAATCATAAATGATTCAATAGTTTCAGTAGTCATTGCACACATCTTCGCTGGTGGCCTTGTCCTTTTTCCGACGTCTTTTCCAGCTCACTGATCAAATACTTCAGTTGGCCGACGATCTGGCATTCCTCATTTCGTTCATGATATAGGCCGACTGGCCTCCCAAGAGTCGGGTCGACATTATCGATATTAAGGAAATCAATCTGATCTTGTGTCAAATAACACGACGTTCGAATCCAATACAGCATATAACTGTGCACATTGCGTGAGTCGTTGAGATCTATTCCGACGGCGAGGTAGAGAGCAAACCGAGCAAGTTGTAACGATCGCCCAGGACGTCTGGCGTGCGGCGAGCGAAGAGCACCTGGAAATTTTCCTTGAGAAAAACCTATCATCGTTGTTATACGTTCCTTCACTTGGCATTGGAGTTGGCAGCATATGTTTTGAAAAAACGTTGTTTTTGTTGAAAGAACATTTTATATACGGGACCATGAGATAATATTCCTATTTCCTTACTGGCGCGAAACCAAAATATGCAGGCCACGGCAACGAGAGCGCATATGGCAAAGAGAGACGAATCTTATTTTCTTGTAATTTTTACGGTTTTAAAATAATTTAGAATCCTTTTCAACTATCTTGATTGTAAAATATTACAAATTACAGAATTTCGCTACCAAATTTACTGGAAATCTAAACTCTGAGAATGCGCATGGAGCAACATATTTGACGCGCAAAGCTCGTAGCGAAAACTACAGTTATTCTTTAAATGACCACTGTAGCGCTTGTGTCGATTTACGGGTTCGGTTTTTTAAAGAATTTTCGTGTTGTTCGAGAAGTGACAGTGGTATTCCTTTTCCTTCTTTCTTAATCCTATTATTTTATCATTATATGCTTAATTTTAATATTCAATTCATACAACTAAATTATTAATATTTCGAGTAGACATTCTAAGAATTCCGGTAGTATTCGCTTCGAGATATTTTTCGCGTGAAATATTGTTGTGAAATACGCATTCTTAGAATAGATGGTGCTCCCGTAATAATCAGATAAGAAAAGATTTAGTCCAAGAACTTTCCGAAGATTTCAATATTTGCAAAATCAGAAACCTGACCCCCGAAGATTCTTTAAATTTTAGAAATTTTTCAAGGTTTGCTAAATAACTCTAACTTATTTCTTCTATTAATAGGCCTGCAATACTTTTTCGATGGTCTTGCCGCTTCGGGCAATAACTATTAGGGAGTGCAAGTCTAATAGAGAGTGCCATACTATTCTTCAGAAAGTTTTTCCGTGTTGGGGCTAGATTCTATTTGAAAAAACTCCAATTTTATTTGGAAGTATAGAAAATTTGATTGAAATTGCAACAAAAAGCACAATAACGACTTCCAGCTCGAAAAATTTTGTTATAAACTGTTGCATAACAGGGAAAAAATGTTATTAAAAATGTTTTATTAGTAAGAAGTGTTACAAAAAAAAGTAGGTGCAAGACTATTAGGGAGTGCAACACTAATAGGTGCACTACTAATTTTCGGAAGGTCTCCGGGCAATACTAATACAGGGAGTGCAAATCTAATAGGGAGGCCATATTAATAGAAGATATACGGTATATATAGCTTTGAAAAATCGGAAAATGCCTAATTTTGCTACTTTTTGAGGTTTGAAAATCTCTAAAAATTCAATAAATAAAATTTGGGTCAAATTACCGCTAGATTATTCCCATGAATCATCCATGGTCTATGACAATTCGAATCAAATAAACCAATTTTCGAAATTTCATGTATGACCAATCATTGCCCAACAACCACATTTCTTGTCCACCCCAAGCTTTGCCAGAAATTTGCGACGATGATGATCCATAAGTGATAGGCATCTCTGACGTGATGCAGCCATTAGTGCAATTGGTAAGACGAGCCGAAGCTGGTAGATCACTTATATCAACGAACATATGGCCATAACTTCCTGTCAAATTATGAACATGTAGAGTTGGGAGTTTACATGTCCAGCTGGAATAATATGGAAACGTGAGGGAACAATTAGTTCGAGACGGGGAGGGGCAGGTTGGCTTAGGGTGCCAACCGACATAGCCGAACATTGGGGTTTCTGATCAGCTTAGCGCCAGCCGACCGTCTACTAGTACTGCAGCTAAATTTTCGTCGGCTGTCGGCTGGTGAAAATTTTCATAATCAATTTTAATGGATGTTCCAAATTTTTCCCTAACTTGACCAAATTTGTTTGCTGGCCCAGCGACACCCGATAATTTAGATCATTGCGCATTACGGCAGAGGCTACTTGGCAGAAACTTTATAATTTTAAATTCAGAAATTCAATTCGTTTTCAAATAATATTTTTTATAACTTTACCGATCAATCACTTCAATCGGATCAAATTTGAGCCAATACATCGCTTGCACTTTTTAGTTGTAGTGTGCATGTGTAGATCTTTTTATCTGCGAAGTGAGTCAATGAAGAATATTCGCGACCAGTTTCTAAAACTCAGTTTTCTAAGGAAATTTCTGAAAAGAAATTCGAGAAAAAACTGAGTCAGCAAAAGAAAATGGGAAATGTATGTCTGGAAATGTATTCGAATATTATATTCAAAACAGTTTTCAAAAAAACAACGATAGCAATGGTGATCAGAAAGGAAGGAACTGGGCGAAAAAAATTATCTTTGAATCTCTTTGCATCTTTGTGATCTAAAAGATAAAGGTTTCACATTGGAGATTTGTGAATGTGATAAGGGTGAAAAATGGAGATTAATTGTGGTAAGTAAATTCAGGAAAAACCTAATTTTTGGTGAGAAAATTGTGGAAAAACTATAAAAGAATCTTTGGGGTTTAAAACTCAAGTTTTTCGCTGTTTCCGCACTGTGCTGACCAGTTTTTTGAGAGTTTGGCCGAATTCGGTGATTAGATCAAAAAAATAATTTCAAAACTTTGCGCCTCAAGTGTGACGTATTCGTACTCTATTGCCGTTCCACCAAAATTTCCTTCATTGTTTTGTCATTTTTCTGCATAATAACTGATCTGGGTTTTTTTGCTGCATCACCCAAGTGTACGAATTTCCCTAAAAATTATACCGGTATTTTTTCAAAATTTTTAGTCGCTAGAATCTTTTTTATTTTCTTTAAAAAAAGAGTTTTCTCGCGAGTAGAAGGAGAAAAAATGTGTGGCCATACTTCTTCGTTAAAGAATGCACGACTAGCTATAGCTCAAGCCCCCTCTGGAACGTTCCATCTTCCTCCCATTTTCCCACGTTCGAGAATCACTTCTTTCCCTCAGCTTCTCTTCTTCTAAAACCACAACTAGACAAATGTGCTTGTTTTCCATTTTTCACATCGCCGAGAAACCCGCTATCACAGACTCAATGCGCCTTCACCGGAGACGGGGCTATTTGTGTGTGTACATTGTACTGATCTCTGCGTGATATACGAACACCGGCCTCGGATTGAACCAGAGGGGGGGGGGGAGGGGGGGGGGTGTGGTAAAAAAAGAGAAATACTCTGAAATTCAATCTAGAAGTAGAAAGAAAACAAAGCGAAAAATTGGACATTCGTCCGGCTAAAAAATCTCATGGAAAACAAAATCTACTCCGTTCGATTTGTGAGCATTTTCATCCTATCTCTCTCACAAACCCGACTAAGGAAACGATAAAGCCTGGGCCCATCCCCAAAGTGTGCTCTCATGCTCTGGAGCGTTCTAGACTGTCTGTAGAGCCACAACTGGCGGAATAGCACTGAAGTGATGGAGAGCCGTAGAGAGAAGAAAAAAACGATTTGGTGGCGGAGGAGATGGCTTCGGCCCTCCAAATAAACAACAATTACTCGATATCGTTTCCTCTGTGATGGTGTTCTCTTCAATGTTTACTGTACGATATTGAACAGGAAATTAAATTGAGGTACACTCTGAATACATATACACAATAAATAAATACAAAAACTATAGTTTCCGCACAAAAAATTCAAAAAAAAAACGATTTTTTTTGTCCGAGAGGAGTATATGGCCTAGAAAAATAAAACTCGCCGATGCCTCTTTGGTCTGATGAAACTTTAAAAAATTATGGCCGAATTTTAGATTTCTCAGGCCAATATTGATACGTTTGTCGATAAGTACCATAAATTAGTCGGTTTTTCACGGGATTCTTCATTCCTCATGCTCATATTTTTCCTCCATTGGCAATCTCCTGCTGGACAACGCGTGGGAAATCGTGTGCCCTACACGGGCAAATACATTTTGTTTTACAAAGCAAACCGTGCCGCGACGCGACACGCAACGAGCCGTAAATCTACCCCAGATATGGCCGAGCTATGCCCTAACCTGTCAAAATCTTCCACTTCAAAAGATGAGGGAAGCCATAGAAGCTCCGCGTGTTGTTTCTGAAAAAAAAACCCGCCTAAAGTTGATTTAAATTATCGTTTCTTTGGAAATAATAAAATCGATGAATTTGTCGATATTGATAAATTTCCGATAAAAAAAAAATTACTTAAAAGAGGAAAAAAAATTCTCTTTTAGTACCAACAAATACGCCCATTGGACTAACCAAATCGTTCTTTCAATCTTTGTTTAAATCTTTGTGCGTCTATAATTGTCGCTTCGGAAAACTACACAAAATCACACACACACACAAGGAGAAGAAAAGAAAAAACGTGTTCCATGACCTGCCATCTGGGCTGATCGATCTGTGAATTGGGGAAAATTGAGGTATACTGGTTTTTTATCGGGAAGATTTTTTCGGAAGGATTGAGATGAAAGTTCGAAAGGTAATTCGCAAAGTTGAGATTTGAAAAATTCGAAAAAAAGACAATCTCAATTCTGCTGTAACCCCCAATTTTGCGTCATGGCCCAGAGTATGCAGCGTGCCCTAGAAATTACTAACGTGGCCTACAAAGATCACGGCGGTATCTATGATTTTCTATGTGCGTGACCTAGAATATACAAGACCTAGATTGATTGCGTAGAACATCTCCCAGTATATCCTAGCAGTCTTAAGTGGCAGTTTCTCAGTTAGTACGCCCAAGAATTCTCACGTCAGCATGACCTAGGATGTTAAAGCGTGGCCTACGAATTTTCAGTGTCTTCTAGGATATTCCAGTCTAAAAATTGGTTCAGTGAGGCCTGAAATCATCGCGTGTCCTAGAATGTTTAATTGCAAAAAAAAGATTTGAAAACTAGTATTTCCCTAGAATTCAGTCTGAGCATTATTTTTAATCTAGTTTTAAGGAAAAAATCAAAATAATAAACATTTTTTGATTAATGTCTCCGATCTACAGATGGGTGCAAGAAAGAATGCAACATTGTGATTGCTCGGTGGAGCATGACGATAAAAGAAAGAGACAGGTCCCTCACCTCCCCAGTGGTCGAAACAATTATAAATTGGACAAACGGAGAAGGGGTCGGGCAGACACAAGAGAGAGAGTACGTGAAGAGGGTGTCCAGGAAAAATGGGATGAGGGCAAATCTAGTTCAAAGATGAGCACTTTTCAGGATCTTTGATTCTGAGAAAATCAGATTTTGAACAAAAAGAATAGTTCATAATTTAATGGCATACATAGAAATATTTTCAGATTGTTCTTCAAAGAAAAATATTTTTATGGGACATCAAAGTTTATTTATTGCATTCTTCCAAAACAGTGGCCGGTCTGGACAGTTCGAATTTTTGTTAAATGCGAGGAGGTGTGCGCCTTTAAAGAGTACTGTAATCATTTCCAACTTTCGTTTTAATATTTACTTGTGGGAAAACATTAATGCTTAACGAAAAATGACAGTACTCTTTAAAAGAGCACATCTTCTCGCTTGTGACAAGCATTTTCGCGTCTCGGTGACAACTTTTAAGTTAAAGGCACAATGATAGAACTTTTCTGAAGAATTTAATTTATTTTTAAGTTAATTGCTACTGGGCTGTATCCTTTTTCAAGTCGCACGAGAGCCAAACTGTAGCAAATCTTAAGAAAAAAAGTCGACAAAACGTGCCGAAATTAGTAAACTTGAGAGCTTTAAAACTCTATTATCAGTTCTTCGCCAACAAAAAGAGTACCGTATCAGAAACGACCTTCGACTTTTTTGGCTCTCCTGCAACTACGGACATGAATTAGTTCTTATTGACAGTTTTCAAGTTTTTTTTTGGGAGTTTTATTTATTGTGCATTTAAAAAATCGTACTTTTAAGTTTGATGCGTGGCCTAGAATTTGCCCGTGTGAGCATCTCTCCACGGTAGCCAAGAAATTTTCTACCGTGGCCTAAAAACTGCCAGTGTAGAAATACTTTATTGTGGCCTAAATTTTCCAATGGTCCTGTTCTTTTTATAGTTCGAATGCACTTGACTTTTCGTTCGACCTGGAAGCGTAAAGAGTGGTGGCCTAGAAAACGATTCATGAGCAGAGTATTGAAAAAAAAACGAAATTTCGAGCAACAAGCGAACAAAAATCGTCTGTCGATAGAGTCTTTCGAATACTGGGGATGCAAATCAGCAATTCATTCTAAAAAAACTTTTGTGATAAGAAATCAAACTGATAAGCCAGTGTAAAGTCACGTAAAGAGGATTGAAAATAGCATTTCAGGTCGGGGTACGGTAGGGTTTTTGTAGAAATCTTAATGCAACATTTCAATGGGCAACGAGTTCGTGGCCTAGAAAAATCATGTCTGAAAAATTTGCAAATGCGCTCCGGTAGCCCGGATTGGTTAAAAATTTTCAATGCCTATTTGAAGTGGCGGCCTAGAATATACCAAATAATGGTCTAGTACTCAAATTGGCGGCATAGAAATCAACCTAATGAGCTAGAGAATCTTGTAGGCAGCTTTGATCACCTATGATAGGCGGAGGTGATAGGTAAAATTGTAGACAAAGGTAAGTTGAACATAGGCGTAGTCGTTTGCAGGCATACATAGGTCATTTATTAGGCAGATGAGGCCTGATTGTACAGTGCCGTCCAAAAATATATCCTATCTTTGACTTTCGATAAATTTACAAATTGCGTTTTCAAACGAGCACAACTTTAATACTAGAAATGTTATCGGAAAAAGTTCAACTCATGTATGTATTGCCCATCATTACGTCTACTCGTATTCAATTGTTTGTTGTTCAGGCTACCTACTGTCACGGTCCGACATCAAATACAGCGGCCGACATCTCGTAAGCCCGTTTTTGACAGCCCACGTTTACTGATTCGGCCGTATCTCGAAAACTTATTTTTTTCTGAAAATGTTAAAGTGAAATAGTTTTCATATTATTTGTTATCATTTGTGTTTATTCACTTTGTTCTGAAAAATCCAGTAAAAGTTATGGGAGTGCAAACTTGTCGCTCACTGCAGCTTAAACAATCAAAAATCAGGTTACTTAACTATAGTTAGTTCTAATTTTTTTTTTGTAGAGCATTTTTTAGAAATAACACATGTAAAATCACATTGAGCGAGCTATATTCAAACACGATGATTCAGGAAAAAATTCATTGGTGGCGAGAAATGTTCACGGCGTAACACTATTCAAGTTTGATCTCTCATAACTCTTTTTCTGGATTTTTCAGAACGAAATGAATAGACATAATGACAAGTAGAAAACTATTTTAACAACACCTCGAAAAAAAAATCGCTCCTCGACATACGGCCGAATCACTGAGTCGTTGTCAAAAACGGGCTCACGAGATGTCGGCCGCTGGATTATTTGTCGTGGCACTGGTAAAAAACTTAAAAAATTGAATACAAGTAGACGGAGTTATGGGCAATACTTCATCTGTTAGCGAACTTTTTTCACAGGATATTTCTAGTTTTAAAGTTGTGCTCGTTTGGAAAAGTTGTAGCAAGTTATCAAAAATCGAAGATGGCATATGTTTTGGCCGGTCCTGTAGGTTAAATAATCTCGTTATCAGGTGTAGCATGAATCAAAGCCATGTAGGCGGGCGTAGGTATCTTCTAGCCGAGTAGGCGTGTTACCTAAGGAGTCAAATGCAGACGTAAGTAATCATAAATAATTCACACTTTGTGCGCAGGCGTAGCTCACCTTGTTAGACAATCATAGTTAGCTTTTAAGTAGGGTTAGGACACCTATTATAGGCAGGTTTAATTCCTCTTATATGTGTGCGTAGAACACGATATAGTCAGGTGTAGGTCACTTTGTAGGCAACACGTCTAGGTTCTTCTTTCGGCAGGCGAAGGTCATCTTCTGAGCAAGGTTTGCCTTGTAGAAGGGTCGATGTACGTTGCCGTAGGCAGACTAAGTTACCTTCTGGGCCTGCCTATAGTGACTAGTAAGGCAGGTGTTCGAACCAAGGGTGTCAGTGACCCGTAAAAATTACAACAACGGGACAACTGGATGTCCCGTTCCCGTCAAAATTTTGAAAACGGGACAACACGTCCCGGTCCCACGAAAACACCCAAAAAACGGGACAACGGGACCCGTTCCCGTGAAAATGCGCTCAAAAACGGGACAAAAACGAGACGTCCCGTTCCCGTAAAAATGACAAAAACGGGACACCGGGACTTCCCCTTCCCGTGAGAATGTATTTTGAAAACAACGGGACGTCCCGTTCCCGTGAAAACACCCAAATACACCCAAAAAAACCGGACAACGGGACAAAGAGACGGGACACGGGAGACACCCTGGTTGGCACCGCACTGAAGAATGCTGAAACCAACTTTTTTTTCAAAAATGGCCCTGCTCAACGAGCCGAATGCATTTTGGTCGTATAATATTGGCATACCTTTTTGCCACCGTGAGAATCATTGAACAAAATCATGCACTTTCAATTTCATTTTTCATTTCATCAAATAAAAAGATTCGGGGATTTGATATATATTGGAAAGTAATAAATGAATGGGAGATTTGTATGGATCGAGGGGGAAAAGTGCACACCCCGGGAAATGATCAATTTGGAGCAGGCAATTGAAGGAGCTGGAGCAGGAGGCTACACTAACCACCCCTTCACAGCTAAACACATGGCTAATAAAATTGAATATTTGAAGTGAACTACTAGTGATAAGCGGTGAAACGGGGTATGTGGCCCTCATTTTTTTTTGACACTTCGAAAACCGCATTTCTTATCACTTGTGTGCAGAAGCATTGAAGCAGGAGGCAAGTGGTGGTCTAAAAATTAGAAAAGCTCGGCCACTGCTTGCCCGATAGGAGCACACGGTCGCATACTGTTTCAACAGAAATTCGAAAAAATTGGAAAATCCCGTTGATTCCGCTGAATCCGACGATTAAAGAAATTTATCCTCGCGTTTCTGATTGCACTGAAATCGCTCAGTATTCTAGAAATTTGTTTTCTGCGAGTGTATATTGTTTTGGAAATGTTGTGTTCATGTTTTACGAAGAACAATATAATATTATGTATATTAGTTATTATATATTATTATAATAGAAATTTTACAACGTAAAAACCCCAAACTTCTAGAAGAAATTGCCTCGCGTGTCTCATTACAATAAAATCAGTTTTTTTCCTTTATTTTATATTACAATATGTATATCGATTCAGCAAAACGGGCGGGACAGAAAATTAAGAAAATGGCGAATAGTTCGTTCCCGCGGAAGTAAATTTCCCCGAATTGGGGAGAAAAAATTCGAATTTTTACTGGATTTGTCTCAAGCTTTTGAATCTAGAAACAGTTTCTCTCTAGTAGAATCTCTTTAAAAAATTTTCGTTGCACCAAAAAGTCACTTTTCCTACTGAATGCGAATTAAAACATTCCGCCAGGAGACCACACAAAATCGAGAGACTTAGTTAGACAAGTAGTGGGAAAATAAGAGGCAACAAATCATCTCCGAAAGTTTTTTTGTGCAGAGTAGGGGAGAAGTTGCGGCGCTGAAAGACAGAGAAAGGGAGAGAGAGACAGAGAGGGTGAGAGATATAACAGAAAACCAGTATGGCGGAGGAAGAGAAGAAAAAAGTGTTAGAAATATTTGTCCGTCGACGCCTTCTTCGTCTTCGTCCTTCATAAATGAAACCATGAATTTTCCTCAGATATTGCCTTACTATTAAATGGGGCCCACGGGGGGCGAAAGGGTGTGGCCGGCCGATCCAAAACGGTGGCCTAGCAAAATATCGGCGGTGGCTCACGGTATCAAACAAAAAAACAAACATCGAATGACCATAATTTTTAAGCTTTTCAGTTTTTGGAGTCATTTCTGATTTTTATCCCAAAAATAGAGCTCTGTGCTATTTTTATGCAGAATCAGCTGGCTAAACTTGGTTTTCGGAATTTGTGCGAGTCTTAGAGATTCCCGACACAGCATCGAGTTTTACTGGAGAACACGTAGCGAGCACAGAAAAGGAAGGAAACAAGAATTGGCTCCGCGAGCAACCAAGCAGCCGTTCAAGAACAAACTGACCGAGCAAAGAACAGCGCGATAGGGCTCATGTATATCTTCTAAAAATAATGGATACTGGATAGAGAGATGAGAGACAGCAGCAGATGGTCAAATGACGACAAGCCACTTTCGAAGATTATTTGGTTTATTCATGCGTGTCTTTTTTTTTCTTGCAAGAAAAAATGATCATTAGCCGAAAATTAAATATTGGTTGTCCGAAGTACAGAAATGAAAATAAATCGTCCGCAAGGAGTACAAAATTCAAAATGGCTATTATCAAAGAGAAGGACACAATTCAAAAGTGTATATTGTCCGAGCAGGAGTACAAGATCCAAAAAATGAATTGTCCGAGAGGAGTAAAAATTCAAACCACAAAAATCCTGAGAATTTCAAGAAAGGGGCGGAGCCTGATTCGAGTGGACTGTCGTTGCAAAACGCAAAACTTCAAAAACATACCGTTTTCAAAATCTACCTCGCCGACCTACCGTAACCCTCTAAAATTTCTCTAGGATCAAATATCATCGCAAGAAGTGTTCGTTCGAAACGAAAAACGTATTTCTGACGCCTCATCACTCATCTTATCAGTAACAAACCTGAGAGAGACGGAAACAAAGTTCCGAACTATATTTTGAACCGAACAGGGATCCTGCAAATCACGTAATGGACAAAATGCATTGCTATGCAGCAAGACGCAATTGCATTCTTCAGCCAGAATATCGATTTTTACTACGTACGTATAGTGATAAAAAAAATAGATGCTGAGTTACGATCTTTAATTCGCCGGATGTGCGAGGTTTGCATTTTTTTTAGCCTTTCGAATTGTCGTGCAGAAAAACCCGTAAGCATGATTTTTCTCAGTAAAAATTTCTTGCGCCAAAATTGTCTTCTATTTTTTTCGCGAAAAATCAAAAATCTCCAAAACTTCGGTGGAGCGCACTTTCTGGACCACAATAAGCGAAACATCTCTTTCTGCGGTTTTCAAAAAATAAACGAACAAACATCAACAAGAAACGAGAGAGAGGTTTTGTTGCCTTAAAAAAATGGATATCGAATTTCTGTGCTCCATTTCCCTCTCCGAGAAATGGCGCGGGGAACGTGCAAACAGTGCGAGTATGTCTAATGGCTCTCACGTAGATCGAGAATCTCGAGTGGAAACTTTGCTAGTATAGACAGTTGAAGGAGGCCGGAGTCTTTTATTCTATTGGGGAACCGAGAAAATTTGTTTATGTCTGGCCGTGGAGCGTAGTTAATGTAATTTTTTTGCATTAAACGTGCTCCATCGAACAAGTAAAAAAATATGCATACTAGTATGTACCTTAAAATAGTTGTAACACGAATTGCCTGTGGAAATAAAAATCACGGCAAGTTCTCTCCATAGGATCAATGTAGGGAATTTTGCTGTTTATAATGCAAACGTCGAAGTCTCTAAAAAGCTACAATTTTCGATCGGTATCGTTCATGCATTTCGACTGATTTTCGTTATTTTTTATTGGAGTACGCTCGTTCTATCGAAACACGGGGCCCGAGAAAATATTATATCCAAAATCTAGAGAGGTTGTCTTGCGCTTAGCCGAAGTGAAGATTAAAATTGTTCAGCCTGCGTTGCCCGACGACTTTTTGTAAAACTTGGCCACCAACTTTTTTACGAGGCTGCGGCTACATCGCATTTGGGTGACTTTATATGTGTTCAGGGTGTCCAAACATGCACCCAAAAGAGAGTGTCATTTTTAACGCACGAAACAGCAATCTCAAACGGGGCGACAAAAAATGAGAGAGAGAGAAAGACGGGCGCAATCTAATGTTTTATCAGTGTTCTCTTCTTCTCCTCCGACCTCGTTTGCATCCCCCTAATTAATCATTCGTTGGTTTGTAATACAGAGAGAGGGAAATAGTGAGTGTGAGGGAAAATTGGAGATTGAGAGAGTTAGAAATAGAGAGTGAGAACTTCAAGTCACTTTTTAGCCGTTTTAAAAAGTTTTGGTCGATGATTTTGACATTTGATAAACCTGAATGAGAGATGATGCTTAGATAAATGAAAATTGAGATGATAATTATACATGACTTCACTTAGAGCGATGTTGTTTCACGTGCAAATTGGTGATTCGTCGAGAAGTTGTGACTGTTCGTGTCGGGAAAATTTCACTAGCTGTGAGCGCCCTTTTTAAAATGTAAAGTAGCATAATTTATTTTCAGAAAATTTAGCGTTGGAAAAATAAGTAGTGCGCAACATATTTGACTCCCAAAACGTTTTGTAGCGAAAACTACAGTAACTCTTTAAACAATACTGGTTTGGTTCTGGTGTCGCGGGCTGCCAAAATTCGAAAGTAAATTCATTAATAATCGAACCAGTAAATCGAGCGCTGCAGATGACAGTGGAGGAATTAATGTTGTTTTCGCTACTAGATATGCGTCAAACATGTTGCGCAGGACACATTCTCAGAATTTTGTGTTCCCGTGATATAACAATTCATTTTTCTGTCCCATATAACCTCTTTCAATTATAAGAAACCATTTGCAGCGAAACACAAACAATTTAGCCGATTTCTATTTCACCTATAAAATTCGCGTCAATGGCCCGCGCTGTCGAGATCATAAAACCATATGTTATGCAAATGGCGTAAAATTCAACGGTGGCCGCCCGCATGGTCATTGATCGTTATAAGCAGAATGGAGGAGGGTACGGGGAGCATCACTTTCCTGAAATGAGCCCGCGAGAGATTAGAGAATTAGAGAAATGAGAGATCAATGAGAGGGTGAAAGGTATGAAAATAAGAAAGGGATGTAAATGAACACGGATGGAAATAGATGGAATAATGAAGTGCGCAATCGATGCACCATCTCAGATTTTTCGGTTTTCGCGGCAGATAGTTGAGGAATTACATTTTTCGGGCTCCATCGATAATGCCCTGCCGGACAGCGCGTTATGTGAGTCTCCACAGGGGCAAATACCTTTAGTTTTACAATGCGAAACCCGAGCTGCGACAACGCGCCGTAAATCGCCCCCAGCCGTGACCGAAAATGGCCTAATTCGTCAAACTTTTACATTCCAAAATATCAGGGAAACCAGGTGCGCGTTTCCTGTTGTCCGAAAAAAGATTACAACAAAAGAGAAGAAATGGAGCATTTGCGCGCCATACACTTTGAGACAATTTCATTTTCCACATCCTATATATATTTTCGTTTTTCTGTCGTATTTTGTTGACTTTTAATTTATTGGTATTTCGACCGATTCAAAAATAATTATTTTGACTGTATTTTGCATACATGTAGAACTGGTGTTTTTTAAGATATTCGGCCCATTCAAGTTTTTCAGTGTATAATTGATATATGATTTCATTCCGAACTGAAAATTATATCGAAACGATGGAAAACCTCGGATATTAATACTGATTATAGTGGCAAGAAGAGAGGAATCGGAAAGTTCGTATGGATCAAGTTCACCGATTCTCGAAACACAGTCATCTGGCCGAAACTTGACGAAGTTACTGAGGATGAATATTCTAATTCGAGCAGTAATGAAACTAGCGACGAAGAGGAAAACCTCATACAAGAAGTACCAAAAGTCTTAGCTATAACAGAGAGGTAAGAATTGTGTCTTCTAGTGACTTTTCGCCAGATTCTCTAATATAATATATTTTGTTGTAGAGAGAAGAAAAGTTAACGGAAAACGAGACGAATTCGTTTTAACGGTAATCCTTGAAGTACAAACTAGCAATACTAAAAAATGCGTGAACGAGATCTTATTTTCAATATAATCATGGGCAAAACGATGAAATTATGAAAAGTCTCTTATTGGATACCGATGGAACTATGACTGCAGCAACAAGGCTTGTTCGGAATGTGCCTACGATTGGAATCAGTGCCAAGTTACTCTCTGGACTGGATTTATTAAAAATAATATGAGCTGCACGTGGCACTGCAAAAAACCGCTTCGCTTCAACAATGCTTCTTGTGGTTGGTTTGCTTTTCAAAAAATAGTTCACTGTTTCAGAGGTTCAACCAAGTCGCTTCTTCATGTTGAAAATGCGGTGCCCACCCGGACCATGTAATCGCTCTTCCGGAAACACATTGGCGACCGATTTTGTTGGTCCACCTCTAGTTCTGTGCGAGAACAGTGATACAACTAGTATTTTCAGGACAAAGGCTCGACTGACTGCGGAAGCTCCCGCATCTGAGGAGAATCTCAAATCAGGATTCCATTCCAAAGCGACAACTCGAACGCTTTCCAAAGATCGCATCAGAACGATCCACAACGTTCATCAGCCGAAGAACATGCGGAGCCAGATATCGTGGTGGATGGCTGAGTACGCAGCTCGAATGCCTTAAGGCGAAACAATTGGTTTTTTAATTAAGCTTGCTGGTCATGTTAATTTTGAACGTGTTAGTTCACATTGTTTTTTTTTTTAAATGTGTGTTGTTCTAATAAATTTGATTAATCACACGTTTTCTAGTCTACTACGTGCGTCACGAGATATCAGTGGTTTCTTCTTATCAGAAGCTGAATCATTTCCGGTTGTCAATGTTTGTAGGTCAAAAGAAAGGCTGTGTGATTTCGACCATTGATTTGTTTATATGGATAAGTTCCTGCCTTTTGGAAGGGCAGTATTCCCGGTATATATGGGCCTAATACGGAATCGAAAATAACCTGACACAAACCTGACGTTGCCTGTTGCCGGCGGCGGCTTAGTAACTTGACAGCGGGTCGCGATTTCACCTGCCTGTTCTCCATTCTGCAGCGAGCGACCTGCTGGCAGGTTGCCACTAAGCTGACGCGGTTTACCTGTGTTATGGCGCGTGCTCAGTCGTTTCAGGAAACTAGTAGCATCAGAAGATCGGGGTTCGGGAAACTGCCATCCGGGGCTTGAAGGTTCTATGAAACAGGGCGAATGACAAGGAGAGGCAATAAACAAGTAGTAGGCGTCCTCTAGAAAACATTTTTGTCTTTAATACGCGTTTCCTACTGATGCCTTATTTATTGATATTTGGATCCCCTTTTCTAGAATAAAAAATCAGAATCAGCAGAAAAATTTGAGAAAAAGTCATCGCCACTCAGAGTTGGTCGGAGTAAATCAGAGATAGGCATAGTAAATCATAGCTAGTCAGAGAATATCAGAGTTAATCCGGGTAATAAGTAACCTAGTCATAGCATATCAGAGCTAGGCATAGTCAAGCGTGGTTACTCCCAGTAAAACCACACTTGCACCGAACTGCGGCTAGTGTGCTTTACCTGTAACTCCGCTTTTTACTCTGAGTTAGTATGATATGATTTGTCTGAGCTGTGGTTGGGCTTCGCGGAACTTGAATAATTCGAGACAAAATCTAAAAATTTTAGCGAATTTTGTTTAATTTATTTGAGGTTCTACGACAGAACTCGAAAAATTTCGGGTTTTAATGTTTACACATTTTATAAATTTAAAATTGAATACTCAACTGTGGGACTCCTCGAAAATCACATGCTCATTTAAATTTTGAAGTTCGAACCTCAAAAAACGCGCAAAAACCAAATTCAGCTAGGATATCAAATTTATGATTGAACCCACATCTATATTTTGATGCGGTTTATAGTTTCTGAAGTTTTCGCGATAAAATCCGAATAATAATTACCCGTACCGTATATTCTCAATCTAATTCCCAGGTCATTTTTTCATGCAGCACTATGAGAGACTGTCGTTACTACTGGACAAAAGAGCATTAATTTTCGAACGGCTACTTTTAATTAAAGATCACTAGTATTTAGTCACAAAAGCTATTTTTTAAGCAGAAATTCATAAAAATGTTTTCAATAGCGAACTTTTGTAACCAAAAGACCCAGTAAAACGATTCAATTACTTTCGTCAATTATCAAAAAATCATCAAAAATATACAAAAAAATACCAAAAAATATTGAAACTTTCAAGTGACTCTTTCAATAGAAAATGGGGAGCACTAATACTGCTGATTTTTCGGACCCTTTTTGAATGCAGCACTATTAGAGACTGCAGGATTTACTACTGGAGTGATGCTGCACTAATAGAGAATATACGGTATATAATATATTCTTGCAGAAAAAAGTACGATTATCAATGAAAATTAGCTGATAAGAGGCTTTTGTTTGAACTAAGACGACGGAACGCCTCTAGTTCAAAAAATTCTAAAACCACGTTGTGTCAGGCATGTCTCATTGCGGTTTGATCTACGAAAAATGCGGGAATATTTTTCCAGAAGAATTGACGTCAGCACGCTCTTAACCATGCGAACCGCAGATGAGATGTCTGCGTCTCTTTTCCCGCATTTTAAGTTCAAAAGGGACTTTCTGACACCACGTGTAAAAAGGGGTTACGACGGACCCTGGCCTAGAATTAGGCGTGAAAATGCTCTGGCACTGATGTAGTGAACCGCGATGCAAAATTGGGGGCCGAAAATTAGGCTTTCCTTGCGAGAACGATTACTTAAAAATGTTTTCCTTTGTCGAAAATTTAAAAAACACACCACATGTATTCATCTCGACCAACGCCTCGTAAATGTTTTCAAAAAAGGCGGGTAAAATTAGTTGAATTCGCCAAGAGGAAATTCACCGCTGTTGAGCGCGTGCAAAAATTTCAGCACTTGCTGACGGTGTTTCCACAAATTACACCGATTAGTGGGGCAGAAAACACGTGCACACTCTTTCAATAAAACTAGAAAATAAATCCCAGGCCTGCATATATTGCACAAACCGTAATCCCCTTCGCGCTAAACAACACGCGCAACGATGCTCCGCTTGGGAAGGAAAAATTAATTTAACTCGGGCTTTTCATTAAACAATTTTTACATCGTTAATTTTTCGATGTTTTCACTGCGAAAAAGTGTTAAAATAACGATTTTTAAACCTATCTTCAATGAATCCGTGCAAAAAATCGCGATTTCTCGAGTTTTGAAAGAAATTTATGAAACAATCGGCATTTTTAATAATGGTTTGAAATAAAAATCTAAATTTTTTTTCGGTGCAGAAAAGTCGTTGCTCGCACAGTTTTTTTAAAGCATTTTCACATCAAACTCCGCCTTTTTTCCAGTAAATCGATCTAATATGTAGGGAGTGCGAGACAAAGCTGAGCGACGGCGCAAGCGGCTGGCTTCGCCGAGTATCCCGACAGATATCGATCCAAAAGACAGACTACTCGCCATATATCTTCCAGGCGATTTGGGCGCTTTCCAGTTGTACGGTAAATTTTCCGACTTTCAAGGTAGAAAAGTGTAGAAAAATCGAACTTACTTCTTAAAACTCGAAAAAATCGAATTCTTTCAGGATTCGGCAACTAGACGAGCTCCTAACCGACAATGTTGAAATACTGGCCAGGGGCCGCAGCCGCACACGATTCTTCTAGAATTCCAGAAAAGACCGACGTGGCTATGATGATGTTCTATTTGGATTTAAACGACGAGTCTTATACACCGTCAAAGCGCAATTTTTGGCTTTTTCAAACGAAAAAATACAATAAACCCTGAATATCCAGTTTGTTTCTCAATTTTTGCCTAAAAAACGGCTTTTTCACTCGCTTATCATTTACAATTTGAACAACAAGTTTTTTAAAGGATAAACATGAATTTCTAGCTTTTTCAGAGGTTTTCGATTAAAAAATAGAGATTTTTGTGATATCGGACGGATAAATTACCAAAGCTTGCTGTCGATTTTTTTAAATATTTTTTACTTAAAAATCTGCAATTTTTTTTTTCGAGGAAACATGTGAATTTCAAGCTTCAGAGATTTTCTATGAAAAAGGTTCGTGCCGAGACCCATGTGCTTTAAACTTCAGAATTTTCCCAATTTGAAATTAAAAAGAGAATGAAAATTGTCATGGAAAAATGCGTTTTTGGCCCAAAACCTCCAAAACTTCGAGTACAAATATAGGTCGAGTTTCAACTGTTTTCGATCAATTTTTTTGCAGAATTCAAGTAAAAATGGGTTAGCACCATCTCACGATATATTTTTCCGTCAAACACAAACATTTAACGAGCCCCAGGGATGGACAATTATCGATTTACGCGAGAAAAATGGGAAACCGAATTGCGTTTTTTGGCTTCAAGTATTATTCAGAATGATCAAAATGGCAGAGATGCTCATATAACGTAGACGAATTGAGAATTTCAGAACGAAAATTGCCGAAAAAATAGAAATTTTAGCGAATTTGAGTCGGAAATTTCGAAATGATTGACATTTTTAAGCAAATTTCCAACTAAAATCTAATATGCAAATTTGATCTGTTTATATTTTTCTTTAATTGTTCTAAAAACCTTAATAAACAATTAAAAATTGAAGTAAAATTAATTTTTTAACTTTGAAAGGATTTTTTGATTGAAAATTTTCACAATTTATTTTGTGGTGGGGCTAATTAAAATCGTTGTTTTTTTTTTCAAAAAAGTTAAAAAAACTTTAGTCAGAAATTGCCTTGTAAAATATGTTTTTTCTCTAGACCTCGTAGTCACGAGGACGCGTAGGTCGCCTCGCAAATTTGAAAAACTCAAGAAAAATCAATAAATTTGTGATTAATCAAGAAAAAAAATTTAATTTCCTGGTCTCAGACACGAATGCTTCGAAAAAAAAAAAGAGGCGAGCCTACGCTAATATAGTTGACCACGCCCACAAAATGGGCAAATCAAGTTTGGCACAATCTTTCAAAAAATCGAAACAAAAATTTTTCCAATTTTGTGAGATTTTACGAAAATTTCCGTTGGAAAATCGAAAAAAAATATTCTCGTTTTTTATTTTTCAAAAAAAAATGTGCCTAAAATTCATAAAATAAATCAATACTTTCTCAAAATTTCAACAGTCCATCTTCCAGGCACGTTCAAGAGTCCTTGGACCCCATCAGGCGATGTCTCCACGAACGAATCGAATATTCACGGGAGAACCACACGGACCGATTCCCGATAAAAATATCAATTTCGACGGCTAGGATTTTGCCAATTTTATCGATCACTCACTTCTTCACTTCGTTACATTTATCCGCCTCCAGTGATTCCAGATAATGAGCCAGTTTTGCATTGAAATTTAGTGCGAAAGGCCATATAGAGCATGATTTAACATAAAATTTCGAATTGATAAACAATGGAAAAACATGGTGCTATGATGCTTTTTTAACACTTTTAATTGTTCCAATTTGAGAAGTAAAATTTTCAGCTGATAAATCAACTGATTTTCTATATACCTCTGCCACTAAAGCTTAAAAACTTGCCCCAGTGCTGTCCTAACCTTCAAATAGCTGGCAAGTCTATTTATTATTCTTGTTTCATACTATTGAGATTGCTTCGCGAGACCCCAACCCATTTACCTGTAGTTAAATATACGAATAATTATTTATATATTTTCTTTAAATTTCCTTAGTATACTATTTTTCTGATCTCTCTTCAAAAAACGCTAGAAAAAATAAACAAATGTCGGTTTAAAAATGCCCGGTAATTTACCTTCTATAGTTTTTCGAAAAAAAAACCGATGAAATTCAGATGGAAATTCCCGATCCCGAACTGCCGGGAACACCGGTTGGTCCGCAAGATTTGGAGATTCTAGACACGCCCGGTTATACGAGAAGCTTAGTGCGTTTCGTGTCGGGACCCGGAAATTTGACATTTTTGGCGCGCGGCTTATTAGAATAACTCCAAACCTTGTCAAAGATGTTTTTTTCGAATTAAATAACATTCGTGCTTGGGCTCGGATATTCACAGAAATTTTGATTTGGAAACAATTTTTTTTGAGGCCAAAATTTTCAAAGTTTGTCTTGTTGGCGCGTGGACTAGTAGGAACCGCCCCTTCTAAATTATCCCTGTATTGAGCAAGTTTTCTGACATTGATTTCAAAATTTTTTTTTAGAAATTTCTGGTTTATTTTTTCCGGTTTTTTTCCGAGTTGCTGTTTAAGTTTGGAGAAATTTCAGAATTTGTCAATTTTAGGTGCGTGGCAATCTTTTTTCAGTAACTTTTTTTTTATTTGAAAAATTGAAACTTTCGCGATGCGGTTCAAGTAAAGCCACAAAAACTCAATGATTTTTTCACAAAAATTTCAAATTTCTTGCAAGACCTACTGCAACTTCGATTTTTAGAAAACTTTATGCTTAAGAAAAAAAACAGCGCGAATTTTCTGATTTAGCCCGACCCGCCCCAAAAATGGAAAGATTTCCGAAAATTCGAACCAAAAGTTCGCAGAAACTTGAATTTCTCTCACACAGAACGCGCTAATTTGAATTTTTCCAAAAATAAGCAAGCGCCCGCCCCAAAAATGCACAAATAAAAATTTTGAACCAAATAAATACAATTTCGCTTTTTTCCGTTTTCGAACAAAAAATTCTAAGTAAATCTATGGTTCTCAGGGCCCAGGCACCCATCTACCTACTTAAAAAAGCGTTAAATTTCAGGAATTAGCATCAACCGAACGCGCGTCTCGCAGATTGTGTAGTCTCTATTTGGGCGGAGATCTCGAAAAAAATCTATCGCTGCGATCAGAGATCCGAAAAATCCGTGATTGAAGTCACGATTCTGTTGGAATGGGAACACGGACCAATTCAAGCGGCGAAAGTAGTGTAACAGTGCTGAAACCTATTTCGGAAAAATCAAAAGTTGGTCTCTTTTTAGCAAAAAAAAATCGATAAATCGATGAAAACCGACAACTTGGAGAATTTTCATTTATCTCAAATTTGAGTCCCTCAGCGCCATATTGTGTACTGTAGGTGCTCGAATGTTGAATTTCAAAAATTGAGAACTAAAGACATCAATGTCGTGACGAGACAATGTTTTGAAAATTTTGAATTTCAATGTAAAAAATTGGGAACTTCCCTCCAAAAGGTAAATTGGTTTAGTCACAAACTCTGAAATTTTGAAATAAAATTTTTTTCGGCTAAAAATAAGTATTTTACTTTAAAAACTATTTTGAAGAAAAAAAGTTGGGTCTCGCCACGTTGTATCTTGTATATGTGTATCTAAATTGCCATGTTGTCGAGACCCTCTCCTATTTTACACTTCAACTTGTTCCTCACGAGGGACGAGGAACAGTGGTTTCTAGGCCATGGCCGAGGGGTTTCCGACAAGTTTCATCGGCCATTTATCTTGCTTTGTTTTCCGCCTGTTTTCTTTCGTTCTTTTTCCCATTTTTCCTTAGTAAAAAAATAAATATTTTTGCAGATGCCAAACGATTTTCAAGTAAAAAAATCATGTATTCAGTGGGCAAGCAGCGGTATGAAAGTTAGGGCATTGTTGATGTATTATCTTACGGGAATACAAAACCTAAACTTTTGCTGAAACATGATACATATGATGCTTAAACTGACTACCTGATCTTCTTAACGAGACCGCTGAAAAAGTTTTGAGGTTTTCAAAATTCAACTTTTTGTGCGAAAATCTCGACTTTTTCACCGAAGTTGAATGGAAACCTCAAAACTTTTTCAGCGGTCTTGATATGAAAATCAGGCCACTAGCTTCAGCATCTAAGCATCATATGTAGCATCATGTTAAAGAGAAAGTTGTTTTGTATCGTTCCTGTAATCTGTGGCATCATATTACATTGCCCACTTTCACCGCTACTGCCTGCCCACTTAATACATAATTTTTTCACTTGGAAATTGTTTTAGCATCGCAAAAAATATTATGTGTATTTATCAGTTTTATTAAGAAAAAACGAAAAAAATCAGTGAAAAACGAAAGAAGACAGGCGGAGAACAATACAAGTGTGGATAAATGGACTCTGGAACTTATGCTCGGCCCATCCGCCATGGCCTGAAACCACCTTTTCCTTCGCCTCGTAAGGAAAAAGTTGCAGTGACACTTTTACTCAAATAAAAAAACAAAAACCGATAATTTCACCATTTATCAGGCACATCTCTTCCTCACACCGGACCTTAGTGCTTAAAACGAGGCCAGTTCTTCCACAGCGAGCCGACGAGATTCATCGGTCTCCAGCACATGAAATTATACATTTTTGCTGACAATGTATTGATTAGTGGGTTAGTTTTTAGTTGTTTGCATGGGTCAGACTACAAACGAAAACCCTAATTTCAGAGCAAATTTGACGGATTCTTATTTTACTAATCGAACGGAGCGATATTACGTTCTATTCAGAAAGTGCAAACCATTGGCAGATTTCTTCCACGCAATTATCAACATAAGCGTTGTTGGTGAGTTGGCGATTGCGCTCCACCGACACTGGTCAGCTCGCTTGAACTGATAACTTTATCTAAAAAATTGCAATAATTGTTTTAATTTGGCTTCAAAAAACCATCAGTAGATGTAATAAAATTCTTCTCAAAGCAAAAAATTAGATACTTTCTAAAAAAATTGAATCTCCCGCGAAAATAATTTTTTGAGAAAATTTGAATTTTTCACCTAAATATTTTTTTCAAGATTTTTTACCACAAAATGAGGCGGGGCCTCGGTATACACGCTCAAAAAATCAAGGGAAAACTTAAAATACTTGTAAATTTGACTACCAGCTATTTTTTGCGAAACAAAAATCGAAAGTAGCACTTTTCGAAAAATTCTCGACAAAAATGAAAAATGGGGGGGCGATCTGTGTGCGGCGGTATTCGGCGGCATATGCCGATGCCGGTTTTTGGAGCCCGTCATATGCCGTTATGCCGATTTGAAGATTCACGGCATATGCCGAAAAAGCCGTTATGCCGAAAAATCCCCCGATGAATGCCGCACATGTCTGGGCGGGACTTCAAAAACCACGCCCACAACAGAGAACAAAAATTTGGAGTGACGGTTTGCAATTCCCTCGCGCTTTTTCTTGTTTTTTTTCAACAAGATGAAAAAGCGCTCTACTGACACATTTTTTTTCTAATATTTTCATTATAAATCCAATTTTCAGCCGACTCGAGCTTTTCATTGTCGAAATTGAGCAAAACTGGTGCCGAGACAATGTGATGTGCACACATATTTAGGTAATCTGAAAGGATGGGTAACCTGAAATTTTTCCAAAAAAATTTAACGCTTCGTTCGTCTCATCTCTACCGATGCTCAAAACACGTGTGAATCGACTTAACGAAAAATACAAAGAATCGCGAAAAACGTCGTCGAATTGCATGTCTGCTCACACGTGGATTTACCCCGTTTTTCAAATGGGGCATTTGGGAATCAGGAGTTTGAATTAGTAGTTTGCAAAAACTTTTATCACTGAAAAATCCGGAGCTCAAAATGACGATGGCTGCGGGATATTTCAATTTGGCTATCGAATTCGAGATTATGAGGAATCGATTCTGAAAGAAGGAGATTAACATTTGGATATGAAATCTTACAGCTTCTCCTTTTGTATTTTTTTGGGAAAAATATCTGAAATAAGTTCAAAAATTTCAAAATAGAATTTTTTCGAAATTTTTGTACTCCTGGAAATTTTGGTTAAAAAAAGTTTTCTCGAGAAATTTGATTTCCCGCCAAATTTTTTCTGTGAAAATTTGATTTTCCAACATGTTTTCTCATAAAATTTGAATTTCCCGTCAAGATGTTTCTGAGGAAGTTTGATTTTCTCATCAAAATATTTCAAAATCATTTCCAGGCGAACGGATTCTTCGATCAAAGTGGCTTCTCGGAAATAGATTCCACCACTATATTCCAACATTTCTGATCAATTGAAAACGAGAAATCAACGGCCGATCGAGTGTGAAAACGTTCGAATAACGATAGAGAAGAATGGACATTTCATGCAAAAGGTTTTGTAACGGCAGAAAATAATAATCAATTAACGACATTAATTGGCTCATCTAATTACGGTTATCGATCGGTTCATCGAGATCTTGAAGATCAAGTGATGGTTGTTACAAGAAATCGGACACTTATCTATCGATTAACAGGAAAAGAAAAATCTATTATTCGAATATTAATCGATACTTGACATGGCTGCACTTCAACAACCGGAACATCATAATTCCACCATTAGTTCGAGTCATTTCACGTCTAATTCGGAGTTTTTTGTAGACGTTTTCCAATTCTTTATAGCGGAATAATAAGGTTTGACTTTAATAAATCTTTGTAGATTGTTACAGTTTTTTTGAAATGCAACATTTTGCCGAATTAGGCCATTTGACAATTTTTGGTCGTGTCACGGCGCGGAGTAGAAAACTAAGTATTTTGATTTGTTTTTTCGAAATATCCGAAAAACAACAAAAGGAGTTTTTTGTTGAAAAAAATGTTGCGAATTTCAGAATACGGCACTTTTCCGATTTCTGCCCCCTAGGGCTGTTATGAGGGGGACGTCCCCTATTGGGGGCCGGGGACGATCATTTGTACCCCCATGGGGGACGGGCGCTTGTCCCCGCCACGTGACGGGGAGCGCCCCTTGTCCCCGATGGAACGAAGATTCGTCCCCTTTTGAGTTCTGATTTATTTTAGATTTTCACTTCATATCTTACCGGTACAGAGAGTGTAGATAATTCGTTAGAGAGTAGACGTCCGGGACCCAATGGAGCGGGGCGCGCGGAAGAGACGATCTAGTGTCGATTTACGAAATTTTCAGCAACTCGTTGTCATCATTTCGTAAATCCACACAAATCGTCTCTTCAGCTTGGGTCCCGGATGTCTGGCACTCTAACTATCTACACTCTCTGTACCGATAATAAAATATTTTTCCGTGACTCGTTTCCATAGCTTAGACGCTGTGTGCGGGGATACCGTGGATATTCCACACAAAAAACGTGTCGCTTTAATAATTATGAAGCAAAAAATACAACAAACGCACATTCTTCACATTGGGTAAACGAGGGGGCGCGCTCCCACTTTACCCGGGCGCCCCTTTTCGGGGGGGGGGGGGGGGCGTATTACGGGAGGTTTTTTGAAAAACTTGGTAATTTTTGAAATATGTCAACTGACAGCTGTCGTTCAAGTATGTATTTCTATCATATCTCCATACAAATCATAGTTAATTCTTTAGCAATATTGGGGTCCCTCACAAAGTCCAAGTTTTCTTCTCACACGGCCGCCTTCGATTTTTTCTTAAGAGCTTCATTTGCGAAGATCAAAATACATGATCGACAAAGTTGAGTCACTTAAACATCATCATGTGTGTTCGCCTGCAAATGTTAACAAAGGACCAGGCGAATTTGCCAAGCTTTCACGTCTTCATGTCTACGTAGAAAATGCAGTCCTTGAAGAAGCCACGCAGACAGACAGGCAAGTACATAATCAGTAAATGGGCAAATAGGCAAAGCAGGCATGAAATAGGTTAGGCACGTGGGTAGGCAGGTATGAGACATACAAACATGCAGGCAGGTCTGAGAAAGCGAGAAAAGGCAGGTGAGCATGATGAAGGCACATAGGCAGGTAGGCAAGGAAGCTCCTAGACAGGTACAAAATAGATGTGCGCAAAGTAGGCTGCAAAGAAACTAAGCTCGTCCCCAGGCATGAGGTAAGCGCATAGGCTTGCAAGTAGGCGAGTAAACACGCGGGCATCAAATTGAGGCAATCAGGTATTTTTGGGCTCCATTTGGAAACACACTTACTGGATAGAAAAGAGTGGGACTCGTGTAGAATGCAAATGCTATATAAATTGGATCCGGTGCAGCACAGATTTTCTCTTTGATCTCGTTTGTTCAATCCGTAACTCCGATAATTGATTTCTCCAGTTTCACTTGTATTAATCGCTTGGAGAGGCTCTCGATGATAGAATGAAAAATACTCAGAAATTGTCGGATATGTTCTCGATTTTCAGTGAATTTCCTTAGAGAAAGCTAAAAACTCACGAACAAACGCTGCCGATCGAGTCCACCACCAGTATTGCCTACGCCCCACAAAAACCGGTCTCTCGCTGTCTGTCACTAGTTTCAACAAATACCTAATCTCCTCGGCATCTTTCGGTCCCATATGCTCCGGCCATCCGGTATAATGGTAATGAGTCCCCTCTTGAGTACGCTACTTTCTGGAAAAAAGTTTGTTGCAGGCTACCTTTTAGGCCATACTGCATGGAACAAAAATACGGACAGGCGTGGAAGGTTAGAATAGTGATGAGAAAAAATGAAAACAAACATTTAAAAAAGCAAAGAATTGACCGGTTATTATTAAAAAATAAGAATTTTTATCCGGACAATTCGAGGCAGATGTGACTGCCTACCGGCGTGCCACCGCGCCTATCTCATGCCTGCGTGCCTTTACTGACTCCCAAATATTAGCAACAATTGTGACCTAGTCTTCAACAAAGGGTTCGAGATACTCTTCGTGCAAGCGATTGTTAAGTCGCCAAAATTGGTTTTTCGTCGAGTTCAGTTGGAAAGTACCTATCACAGTTCACCGTATTAGCACCAATAAAGTTGAAAAATACGATAAATGGATTGAAAACGAAGGGTGGCTTGAAGGCAGGCAGGACCACTGCTCTGTGTAGGGCGTCTTGTAGACAAGCAGACAGGAGTGGGTCACCATGTAGGCAGAGGGAAGGGTAGGTTGGCTAGTGGGCGGGCAGGCGTAGGCTGCTGCAACACAAGCATATAGGCTCATCTATTTCCGCGAAATCCCACAACAACATCACAAATGTACTTGATTTATTCAGCTTCACTGACTCCCAAAATGCGGCAATCGCTAAAATATCGGAGCTTTTCTTATCAACAGGCTCAACTGCGGAGCAGGCATCAACACAAACTTCAAGCCGTTATCCACTTCAACAACATGTGACGATGCTGGCTGAAAATGAACGGATTTTTTGGGAGGTACCCATAATGTTGCCACTTGTCTACCTATGTGCGCTTGAGTTAAAGGTTAAACCTAAGCCTATGCCTATGAGCCTAAGCTGAGCCTAAGCTTAAGGTTAAGTGTAAGCCTAAGCGTAAACCTAAGCAATGAGGCGAAGGGTAGGCAGGCAGGCGTACCAGTCTTACCCATTCTTTTTCGAAGACTCATAGACACCGGATCACAGTGACATCCTGTAAGGCGCAAAACTGGACAAAATCGTCTCCCGTAATTTCTACTCTAGGTTATTTGGAACCTTCTCAAATACTGACAATTTTTTCTAGTAACGAACGAAATTAGCGTGTTGAATGAGTCTTGAGCGGCCGAATTGAAAAACGTATCTCATTCAGATCCACACGACTGATCATCTGATTTGGTGGGTACATCGTTTCTCTTTTTCTTCCGAGTCGAGTATTTTGTAGCGGAAGCAAAAGGAAGCAATTATATATGACAATGACGATCAGAGCCAAAATTACATATTGTTCGTGTGGTCTGGGATTTTGGAAATTTTTAGGGATGTTCAGCTTCTAGGCTTTGTTAGCTTAGCTTAGGCATAGGCTTAGGCTTCGGCTTAAGGCCTAAACACAGAGGTTGGCGGAACCAGGCAGGCAATATTAGAGGTACCCGCCAAATATCTAGAAGCTTCACTAAAAAAAAAACGTTTTGAATCTAAGCATGAAACCAATTTTGAAAAAGTAAAATGTTTGCTTATCTCAATTTTTGCATTTCCTTGCTTTTATATTGTAATTAAAAATAATAATTTGAATTTTCAGCTCGTTCAGCGATAGAGTTGTGCTAAATTTCAAGAAGAAATTAAGAATTTTCGTAAAAAATATTTGTTAACGCGAAAAAACTTTTAAAGCTTTAATTCATATTGTTCAAAAAAGGTTGGAGTAAAAAATTTGGAATTTTTTTGATTTTCACCCCAAAACCTTTCTTTAGAATGTATCCCTCTTGCCTCCATCCGCGCCTTATACGCAATCCGCGCCTGATGATTTTTCTCCGGGAACTTGAGAAAACCGATTTGGTTGTTGGGAGAAGAAGTGCGGAATGAGGAGCGTTTTTTGAGAAAAGATAAAATTTGGGATTTTTTTGATCATACTTTCCCGAAAACCTTTCTTTAGAATGCTCTGCCACTTGCCTCAACGCCTTGTGATTTTTCTCCGGGAACTTGAGACGATTTGGTTATTGGGAGAAGAAGTGGGAATGTGGAGCGTTTGCTGAGAAAGATAGATTTTCTACTATTTCTCAATTATTCAATACTATCGAACTTGATATGCAGTCTTTGAACGTTCTTGTCATTACGAGTAGGCGAAGGTTATTGGTAAGTGTATGGGATGTCTTTCCGATGAATTTTACCAACGGCACGGGATGCCTGAGTGTACCTTTTCGATTTCATAAAAACTTCGGAAGGTGTGCTGAGCGTAGGCGTAACTCGTTAAGCTAATTTTTCCTTTCCTGGTAAATCTTATCCTGATCAAACCAGTTGGGAACACTGTGGCGCCACGTGCAACTTCATGGGTAGGCGGCAAACACCACGGAAATTTATGGATTTGGGGCACCCAATTTGACGTAATTTCGGTTTCCGAATTTTGTCGGTGCATTAAGGGTTTGACACTGAAATCGAGTTTGGGAATTAGCGTTTTTCAAGTCGAATACCCTCAAAATTTTGGTTTCCGCAAGTTTGTCTAAATGCAGGGGTAGGCGGCAACTGCCCTTTGGCATATTTAATTTTGGCACGACGAATTCACCCAATTCCCGTCAACGTGAACTTTCTTCTCGTTTCTTAATTAGTTTTTCATTAAATTGATAAAAATGAGAAAATTATAAATTTGTAAATTCACTTCAAAATGCAGGCGGGCAGGTTTCAGTCAAGCCCGTCTGAAACCGCGCCTGTCTACCAAGGAAGCCCTACACCTTTCAAATAAGATCAACTCACTGTGGTGGTGTGGACCATTCTTTTCAGAATTTCCAAGATCTGGCGGTGGTCGGAGAATTGCAGTCGTGGCAGAGGCTTGAATAAATATGAAATGAGCAAAGCAAGTCCAGAGCAGCAACAGGGAGCCTTTTTCGGCAAGTCTGTTTTGAAAGACTTGAAAACTCCAGTCCACCATCATCCAAGCTCGTCAGAGCATCCTGAACTTCACCGAGCAAGCGACTTCTTATTGCCAACATCCTTCACAAGTTCTACCGGTTTTTCCCACGATTTTTCCAAGCCTACCCTACCAAGACTAGCCCAAACAACCTTCTTAGCTTCCGTGAAACATAACCATATCTGTCTACAAATTCTGTGGAATCAGATTAAGTCCACTTATGCATCTAAGCTGAACAACATCACATCCAAAGATGCTCCAAGCGCCACCTCAGCTTCTCAAGATGATCTATCCTTATCGTCCTGTGCCAAAGTGGCTCCACTCGCTGCCAACTCTCGTTGCACAATTTGTGCATGGTTCTAATGATTCCACATTTGCTCTTTATTCTCGGAGCACGTCCTCCAGTCGAGCAATTTCTTGAGCCGCTGGGCCATTATGGAATTAGTGTTCAGCGCCGTTTGTAAACTGGGATGTTTTATCCGAAGCAAATTTGCGGCGCTTGCTAAACGTACAGCGCCAGAGATTTCAGACCACTATTGAGGCTTGAAACTGAGATCAGAGCATCTTCGACAGCAGTGGCTATCGGCAGGAATTTTTGATCTGTTCGGAACGAATTCAAATCTGACAGGTTCTTTTTAATTTTGGCCAATTCTTTGTTGGTCGAAGCCAGCTCTACGTCGGAAGAAATTGACCAATATCAGAGCGAGAGTCATTCATTTGTTCAATAGCACGTTTTTCTAGTGTTTTCAAAAGATTCGGATTCACGAAAGTAGCGTTTGCCGTCAACAATTCTACTCATGGTCAGCAACAACATTAGCCGCTCATTTTTTTCACTCCATTAAAGCATGGGCGAGCCTCAGCGGTTGTCCAATTGCTATTGTTATCCTTGCAATCAGTGCGCATTCTGCGTCCTGATTTGCTTTCAACAAGTTGATTCATCACACTTTCAAAATCGATATCGATTGTTCCCTCAATGTTCGATGCAATTTTAGATAGTCCCTCCAGAGTCGTGAAGTGGGGGGTTATTAGATCAGAGTAGATTTGGCGCATTGGGCTGAAAGTTTATTTGTATTTTCGTTTTTTTGAGTTTGAACCTTTCTGGACAACCGACAGATTGGCTCAAACTAAAGGACTTTACAAAAGTTTTTGTCAAATCAATTTCGCAAATATTACCGGTTTTTCGGAGCTTTGATCAGGGTGGGGTGGCAAACGATTTTTTTCCCGAAATCGGCAAATCGGCAACCCGGCATTTTGCCGATTTTACCAAAATGGCCTGGAAAATTTTTGAATCCCTCCCTCTAAACACTTCCGGTAAATTGTTATCCAAACTACAATTCGGCAAATTACCTGAATTAAATCAATTTGCGCCCAATCGGCAAATTGCAAACTGCAAATTACTCTCCGATAAATTTGGAGAAACCGGCCAATCGCCGAAAATTTTTGGTAACTGGAAAAAATTTCAAAAGGCACTGTACCCTTGCTTCCGTTTTGAAAAATGCTTCTAAACAGTTCCGGCATATATCCGGCAAACGGCAAATCAGCAGTTGGCCGTAAAATAAAAATATCCGCCTCAGCAAATTAAGGCTGGAATTAAAAAGTTCCTCCAAATCGGCAAAACCGGGAATTTGGCCGCGTGACTTCGCCAAAAATAAATATGCCAAACGGCAGTTGCCACCTACCGCTGCAATGTTAGACAAACTTTCGGAAACCAAAATTCTGAAGGTATTCGACAATTGTTTGAAAAACCCTAATTCCCAGGAACACGACTTTATTATAAAACACTTAATCGACAAAATTTCGGAAAGGCCCGAAATTTCTGGCATATTGGGCAAATCGATAAACATTTTTTTCCGTTGTGCCGCCTACCCCTGGAGTTGCACGTAGTGCCACAGTGTTCCCTATTGGTTCGCTCAAGAAATTGCGGACTTGCCAGGCAAAATTAGCTTAACACGCCGAGTACCTCGCTTAGCTCACCTTCCGAAGGTGAAATCGAAAGGGTACACTCAGGCTTTCCGTGCCGTTGGTAATTCATCGGAAAGCCACGCATACACTTACCAATAGACCTTCGCCTCAGCGACAAGAACTTTCAAAGACTGGATATCAAGTCAGATCGTTCGATAGTATTGAATAATTGAGAAATAGTAGCAAATCTATCTTTTCAACAAACGCTCCACATTCCGCACTTCTTCTCCCAACAACCAAATCGTCTCAAGTTCCCGAATTTGCGTAAAATTATGTGATCAGTACTTTCTCGGGCCCGAGCGTCGGTTGCCAATTGAGAGTTTAGGTTATGCTCCATATCAATTGCTCCATTCGGTAGACCAACTGTGTACTTCTTCGGGACTGCCCGATGGATTCGATGGTTTGAAGATGGATCTTCGATTCTTGGATATATTTGGAAATGCATTCCGGATAGATGCCATGTTTTCTACTAGCTTTCTTAGTGCCGCGATTGCGGGATCCCAGATGTGTACAATCTTGATGGGTGAAAATTATGAGTTCATCACATCACGAACTTTTGGCCATAATACAAAGAAAGAGGAGCAGCTATTGTTTTTGAAGCCATGCATCGTACATATTCGGATTCCCACTACAATCTTGGGATTTTTTCAACAAATCGTTTAACGCAGAATGGGATTTGGGAATCTCGGTAAACTAGTGAACGCTTCAATCTCTATGTACAGTTGCTCCATACTGAAAGCATTTCGGAAAGGGTTGTAACTTATGTAAAACTCTCTGTAATGTCTTTCATGTCTGCCTTGAAATTTGTCTCGTCTGGCCACTTCTTGGGACCTCCAATATCATGAGCCAGGTGGGGGTACCACACTTTTGACAGTTGTAAGGCCAGAATTGTTTTGCATCAACATCGTCGCCGATATTCGATTGTAGTTCTATAAAGGTATAGTTTTTGGGGGCAAAAAACGAAAGTGGTTCAAAATTTTGGAACATAATGCCTATTTTTAGATAGCTAAAATCTAAAATTTTGCATTGCTGACAAGCTTGTGAAAATCGGCTTGTTTAACAGAAAATAGGCTTTTTCCTATACTTTGAATTACTTTTTTAGATTGAAATTAAACTCATTTCGGTTATTTCCAAACGTCCACAAAGCCGCAAACTCTATCAGGGGTAGGCGGGAATTGTAGGCAAATGTATTTTCTGCAAAGCTAATCGGGATGTGTACAATTTTGCCTCTGGCAGTTTACCGAGCCCATTTACCGAAAATTTTAATTCCGGCAAATTGTCCATACTCTATTACTACATAGGCCCTTATATAACATCTTTTTCCGCCCCTCTACTCTATTACCACCTAATCTGTTACTACAGTGGATTTTTAGAAACCAAAATTTCAGCTTTTGAATTTTATATTCGTAGAGATAAGAAATTCGTAGTGAAAAGTTGAAACCTGGAACAAACATAGCTGCATAATTGCATCGTAATATGTAAAAATAGGTCTTCCTTGGTAGATAGGCGCGGTTTCAGGTGCGCATGCCTGAAACCTGCCTTGGGGCCATATGTGAACGAGTAGACTGTAGTTTTAAAAAACAAAAAAAGGTACCTAACAAAAAACATTCTCATATATTAGTTTGAATGTGCAACCAAACCTTTGAGCGCTATCAGTTTAGAATTTCCAGCCAGAACTGGAGTCAATTGCATTCAGTTGATCCATTGAGATATCGTATTTGAACAAATCCAGAGTTAAATTCGTTGATGGAATGGTTCCTTTTGTGCCGTTCAATTCTTGTTGTAGTTACATTGATCTCAATCGTGAGGAGAATTGTAATCGTGCTCAACGGCAGTTATGAAGTTGTCATCTGCAACTTTTATGACTGATTTTTTTAGATGAAGTTATTTGTTGTCTTTTCTTTTATGAATTATTACGTATATAATACGTATCATGCGATATTGTTTCGCTTTCCAACCCCCGGGGAACTCTTTTTACTTTGTTTTTTTTTGACTTTTATGGACTTTTTTGTCCTTTGCTATTTTTTTTATGAGAATTGATGCCCGAATTTGACTTTTTTCAGATCAGATTTTTTGGAATTTCTTCGCAGAGGAGAATTATTCTTTTTTGTCAAAGCGAGCTAACGACCTAGCCACTGACGCCAAGCCTAACATAGGACTGAACCTTCTAAGTCTGGAAGTAGCCTAAGCCTACAAGGAAAGTCTTTGAAAGGGCACTGTAGATTTTGGTTCCTCTCATGTTGATTTTCCGATAGAAGTGTGTGTTTTGATCTATCCAAAAAATTTAGATCCAAGCCAAGTTTCAGCAAAGTAATGACATTTCGAAATTTCAGTTAAAAACACCATTGTGAACTGTCTTACAGTGCGATCCACACAAATAGCTCGCGTGAACACCAAAAATGTGACGCCCACCACAATAGGCTGAAGACAGTGGATTTCAATGCTGTTTTTAACTGAAAATTCAAAATGTCGCACTTAAGTTTGCTGAAACTTGACTTGGGCAGCTAAATTGATTGGTGAGATCTACCCAAAGCTAACACTCTTCTTGAATCGGAATATCAACATGAGAACCCTAAATCTACGGGCCGCTTAACCCAGACCTCCCTTGTTAGCACTAAGCCTATGCGAGACACGCAAAATATACATTAACATACATATACAACAAATACAACGTAATAATTGTTTTTCTGTAATTCGCTGACAAACCTTTCCAACTACGTTGGGAACGTGGATCTAATGGCGGTCATCACATTAAAGAAACTGGATTCTTCTGGAGCAACATATATTGAAGTTAAACCTCCGAAACAGTCAAGAAACCTTCGAAAGTATCCGAATTGACAACACGATTAACCGTTATAATTATCAAAACGATTATTATTGATTCGAAGACAGAAGACAAAATTCGGAACCAAAATAAAAATCAACCTACTCATTGCACCAAAATATTATGAAACTTCCCTTTGATCGACGGTTTTTGAAGCAATTAAAGATTGGAAGTGTGAATTCTGAGAAAAGGAGTGTTGGAATTTTTATTTATTTTATAACGAAAAGGTCACGCGTTTCTGTAATTTAATTTCTATGAAAGTTTTAAGGTCTCACAGAATGTCAAACACTAGATGGCCGAAGAAAATTTGACATAAGCAGCGAAATTTGACCTTTCAAAAAAATTAATATTACGTGTACAAAAATCTTTGATTCCAATGGAACTGAATTTTTGGGTGATACAAGAGGGAATGTGTCTCAAGGTGTAATTTCAGTAAAACTGTACAAGAGAAAAAACGTTCAATATTTTTACGCCGTCTATTGCTAATAACTTCTACAAAATTTTCATTCGGACATAACAAAAATAAAACAAGGTGACCATGGGGTGAGATTACAGGTGCATTTCCTCATCTTCATTTTTCAGACTGAACATCCAAGATAAGTAGCCCGAACTGAAGTTTTTCTGAAAATGTTATATAGTCATTAAACATCGGTCAAAAACAGTATTTAAACAAAATATCCCGAGACAACACACCTTTTTTGTCTTCAAGATATTCAGATAGAAACCTAATGTCCTGAAACTTGGATTTTGGGTCCTTAAGAAGATAAAACAGATAATTAGCTGTTTTAAGTTAATACCCGCAATCATTTTCACATTAGAGCAAAATTAAATTAAAATGAAACTTTTTTTTGGATTCAAGCATTTTTTGGAACCGAAATTCAAGTTTTAGGACACCCTAGTTTTCAACCTGAATATCCTGAAGACAAAAGTGTTTCACCATCTTGGCATTTTTTGTTTAAATACTGTTTATGAATGTTTGATGAGTATTTAGGAACTTTTTCAGAAAAAAATTCGGGCTATTTTTCTCGGAATTTCAGTCTGAAGATGTATGATTTTTTAATTCAAATTTGAGGGAATGTCGTTCATGGTGGCTCGAGGTCAATGGATAAATGGCTAAGACTAAAACATCGACATTGATCGAAGAACGATTTTTTATTCAAAAAATAAGATTTATTTGACTAGCACTGAAACATTCATCGTTTTTTGTCACTATAACCCATTGGAATGATCTGTAGAAATTAACTAAATTTAGAGATTTTACCGATACGTGGCAATATTTAAGACATTAGTTTTCGCCCTGGCCGTTTGTCTGTTGAGATAGTGAAGCGCCAGCTAAAGCGCATCGCCTTTGGTGCTGAGAAGCAGGTCTCGACGCGACGACATCTTTCTTCGCGCGCAGCGGCGAGATTTCGTCAGTACGTGTTGGAGCGTATAAGAATAAGGACGTGATTTTATCGATTTGCATCGATTTTTTTTGGATTTTTCTTTGTTATTGTATTTTTATCGAATTTTTAGTAGTTTTAAGGTTCTTTTTTATCGATTTTCCTTGGTTCCGTTGTGTTTTTAAGCGTTTTTCTCGTTCGTAATGATAAAAAGGGCGGTTTTCTCCGTTTTCCAAGAGTTATTTGGTATGTCAGATTTTGCAGGAGGAATCATCAAAATTCTCAGTTTTTGGCATGTGATCCTTACGAAGAGTACTGTCTGATGCACATCAATGGCTTTTTCCCCCGCAGGTGCTACAGTACGTGTTCTACTCCTTTCAGGGGTTCCTTCTCTCTTCTAGGAGATTAAATATGTTCGTTGTTTCTTCCCTCTATCTTACGCGCTCTTTCCAGCCTTGTTAGTTTATCCATGCTCTTTTCTTATGTAATTTTCGTTTATCAATTTCTCTAATTATTTTCGGTTTCCGGTTCGTGCACTCGCGCACCCTCTCCCTATTTTACTCTATCTCTCACTATCTCTCACATCTGTCTCTCTCTCATAAGCTATTTTGGTATTTTGCGCGTTAAGAAGTCATGTTTTGATGGACCGTGTTCAAAGGAAGAATATTTTCGGCGAGTGCAATGTATGTGGTGTGAAGTCACTCCATGAGTCTTATTATTCCGATAACCTTTTATCGAGATGTAGTACCTTATCGAGCGGCCCAATTTTATGTATGTTTATCTACATTGTGGTTACCATGTAACGGGAGTTCACATCGCAGGAAGTTCTTTATCGCGAAAGTATCAGACCCCGGATTACCTATCAGTTTAAATGCGACATCTTTCGTCGGGTGAGATATAGTATCTTGTGTTTCTATCGCATTTCATTGGACCGGTCGAGCCAGGTCTGAGTGTTTATGAGCACGAGTCGACTCCGTGAGTCTCAATGATTTTCCGTTTGCAGGCGGTTTTCCAGGTTTCCCGTTGGTTTCTGCTTCATCTTCTACTACCGTTTTAAGTAGGATTGGCTCAAGTCTACGGAAGAGTAGAGCAAGCCTACGGTGTAAAGAAGGTCTTCGAAAGAGTAGCGCAAGTTTACGGAGGATTCACGCAGGTCTACGGAAGAGTGGAGCAGGAATACGTTAGAGAGTCACTAGACCATACTGGGGGTCCGATTTACAATTGGATTCTCGAAAAACCGTGTACCTGCATAACCAGACAGCCGATATATCTACCTTACCGTCCAATTGGTCAAGTATTTCAGGAGAAGCGTATAAGGCTATGATTTTCTTTAGCAACGCCGCGCGTTTTGTAATTGCATAACAAGCTGTGTATTCCGTGTAGACTTTATCCTGCTCACTTGTTAGATGTTTAGGGACATCCGGTTCGACCTTTTTTCTTTCTCCCGCTATCGACGACGCAGATCACTGCGTATGAGTTGCTTTTATATACGTCGATCGATTGTTCCGGTATACGTAAAATTAGGCGCTATATTTTATCGCTTTCCTTGCTCACGCGATTCAGATATTTTAATGTCGAATTCCGTCACCTACCACTACGTAGGAGATATGCAGTGCTTTGTCAGAATAACTCAGGTCGTAAGAGTCTCTCAAGACTAGGGAGATATTCGCAGGTTGGTGGCAGTAATTTGTTTTTCCAATTAGCTATTCTCCTTGTCAGGACTTATTCAGGGAGTCGAAGTAGCCCGAGACGTTTGGCCCTAGTATGGATACTTCACGACAGTTCAAACAGATTGTGGTCGGCCTTTAATGGGAATTAGTTCTACTGCTCAGGTTCATAGCTGACTTAGCCGAGCCCCTTCGAGGTACGTCGCAATTTGGCGATTAGCATACTTCCAGGAAGACATAGACGAATCACAGTTTCAGAATTCCTATACACTTCGGTAACTACGGAGTAAGGCGATCAGTTCCTTGCCGCATTTATATGTTCATCTGAACTTTATATTTTTGCATATTAGCTCACGGATTACATTGGAAACTACAGATAACTGGGAGACAAATGCTTCGCTTTTTGTCACTTTTTCCGAGTTTACTCAAGCCCAGAGTAATGTAGTTTGAGGTTAATCTACTTCTCGTTTCCATGTGCAGATACTAGCAGAGTTGCTGTTATAACTGAGAGTCATTTCACACACAATACGGGTTAATGTCTGTCGGCAGTTTCTTCTCAACGCAAGGTTTTCGCTATATAGATAATCTGGTATAGCGGTGAACAACCTGTAATTATTAAACGCCTCAAGCATAGCCGTGACTAGTTATAGCCCCCGGCTTTGCGGGTTCTACCCTATACCACACAAAACCCAAACCAATAAACTGCACCCATGATAGTATATAATTCGTGTAGTCTTTTTAGAGCGTAAAGTTCTGATCAGGGAAAACGAATTCTCGGGGAACGCGATCCTAGAAATGTTTTCCCGAGAAAGTGAGGCGAAAGCTTAAAGGCGCATCGCCCTTAGTGAGAGGCAGGTCGCGACGCGACGACATCTTACGCGAGCAGCGGCGAGCGTCAACCATTCTATGTGTTGGTTTCCCCCCTCCCGCCCCACACACATATTATTACAAAGTGCGAGACATTGCCAGATATGCGATGATTTCCATCCTTACGGAGAAAAATCGAATTATTATGAAAATATTAAGTTTAAACCGTAAGTCGTTTATTTTCAGGAGGTGAGTTTTATTTTTCCTTCATCGTCGCCTGACTGGGCAGTCGGTGTCTATCTGAACAGGTTCGCAGCTCGACCCTTGTGCTTGTTTTCGGTAGCAGGAATACTTATGGGTTTTTTCTCAGTTTCGGGAGAGATATTTACAGGCTTTCAGGAAACCGAGATTCAGAGTTTAATAATGACATATCTTTACAGGAAAATTGTGGTTTGAGTTTGCAGCCTTTCAGAGCGCCTGATGGATCAATAGTTCAATCCACGGAAACACGGACGAAAGTGGTCCACCGAGCAATCAATGTGGAACGAGACGATTCCAGCGTTTACCATGCCCCCTAACATCGATGATGGTCTAGATATGGTAAAGTTCTTCCCATCAAGCGTTGTTCGAGTTTTGGACAAACTTCTTCGATAAAATACTTGACTAAAAAAGCGAATTAAAGTCTACCACAATTTGAAAAAATATTTGGTTCTAGATTATTTCGAAGATTAGACTATAAACATCACGGCCTAACGTAGCTGAGGTTTGACATGTTGTGGGACTGAATACAAAAGCGTGAACTCACGTAGACTGTCTCTTGAATAATTCGAAGAACCAGATGTGAGCTACGGAATAGGCTTAGGCTTAGGCTTGGGCGGGGCTGGGAGGAGTAAAAAATTGCGGAATTTGCCGTTTGAAGAGCTCGCGAGTCCGAGTTTGGCAAATTTTAAATTTTGCCGTACGGACACACCAAATTTGACAAAAAATCGTCAAAAATAACAAATTGTTCCGAGTTTGATCAGTTCGGTAAGAAAATTATGAAAAAAGTGATTGCAGAATTTGCCAAGCTCGCCTTTGTCTTTGGTCAATTCAGCACCATATGAGTGATTATTATCAATTTTCCACTGTCGCTACTCGTCGCATTTAACAAGTAGTCATCGATTGCCGAAACAACTTCCTTCCAGCTCAAACTTTTTTCTTAGCCTTCATCGGGAACCTTTCCTAATTTTTGCCCGGCCTTCTTAACCTCATTCTTCCCATCTTCCCAAATTACAGTCCCATCCTTCTTCTCTTCTTCTTCCCACTACGACCATCTTTGTCCACGTATAGGACCTTTCTCGGGAGAGTGTGTGCAACCGAGACAATTTGCGAAAAACTGCTCCCGGTCCCCCCATTCGTTTTCGCGAAATCAATAGACACAAAAATGTTCCGTAAAACAAATCTCCCCTTGTCGTTTATCCCCCTGTAAGTACACAATATCCTTTTCTCAGAAAAAAACCTTTGTTCTTCAATTTCGGAATCATCTTTTCTTCGTGTTAGTCCTGTGAAAGGCGGAGTACTGAAATATGGAAAATATTTTTAAAGGACTCCCTGATGAATATCTAGAAAGTTCAAAAAATTTTCCCTCATTTCATATTTCAGCTTGAAATCTTTCATTGTGCACTAATGAGATTTCGACTTCGAAGTTTGTTTGAAATGTGTTTTCAAGGTCAATTTTCGTCAATGTATTATTTTACTATCGAAAAACTAAAAAAATTTCAATGAGTAAAGTAAGTCAGTAAGCATTTGGTAAATAACAAAAATCTCGTAATTCTACACATAGCGTGTCGCGAAAATTCGAAATCTGATGGGTGCACAGAAATGCTTCAAAGTCAAATATAAAATAAGGGAAATTTTTGTGAATTTTGTCAGATATTCGGAATCAGGGGCAAATTTCATGTGAAGTCAATTAGAAACGTATTTATTTCGTGGTACTTTTCTAGTCTAAAACTAAAACTAAAGCTAAGCTAAAGTTAATTAAATTACCATGAATCTAATTTGTTTTGTTTTAAAGTTTCCGATTGCAAAAATTCCAAGATCTCAGTTTGCCGAAGTTTAAATAACGACTACTCTGGACTTTTCCCGAAAGAAATCGAACACCGGAGTATACTAATAAGATCCATCGACGGTACACAAAAGGATCATGAAAAAGGGGCACCGTGCGCATAATACCTTCTGGCTTTCCCCTTCCCCAACGAAAGATTTCCTTCTTATATTTGTTCGTTTCGTTCCTGCACACTGACTCCATCTCTTCTAACCCCCTCCTCAGTCTGAATACTCTCTCATCTCACAACGCTTCTGTCTACCTGCCTGCGTCCCCTCGGTACCATATACTAAGCTCTTCGTACCTGCCACTTACCAACAACTTGCCTCTTGGAGGTCTCTCTCTCTACCACATCACCTTGTTCTTCGACTTGTGGTTCTCTCTTATCGAAAAAGTGACTTTCCCGTGTCCTTCCGGGCCATTCACATTTTCCAATTTTATTCGAATTTTATGTGCCCACTGCTAGCTAGGTTCTATATTGAGTGCCGAATTAATTTTATTGATGGTCTAACTAAATAAAGCCACTGGCAACAATTTTTATAAAATTTGTTTGCATATTTATGTAACATTAGCGAAAGTTTTAAAATTCGTACTGTGTGAGACATCACTTTCGAAGTGTTCATTCTATTACGGGATCACAAGATTATGAGAATACTTATTGCGCAACATTCTTGACGCGCAATAACTAGTAGCGAAAACTACAGTAATTCTTCAAATGACTATTGTAGCGCTTGTGTCGATACTGGCTCGATTTTATTTAAATGATTTTTTTTCGAATAGTGACGTCGATATTCCATTTTGCGTTCTGTCATTTTCGTATTATCTATAATTTTATTCATTTCGAGAATCGAGCCCATAAATCGACACAAACACTACAGTAGCATTTAATACTGTTATTTTCGCTAAGATGCGCGTCAAGATTCATTTCCTTACGAAATACAAACTTCTTGGCGAAAATTTCAAAATTCAAATTGCCCGCTTAGTATTTAGCCCGATTAAAGTTTTCTGGAATTTCCTGCCAAATAAAAAGCTAGTTTAAATATTTAAAAAATAGCTTAGAATTCTTAGAATGCGTATTGCGCAGCTTATTAAAGTGACGCCCAAAGCATTTCATAGCGAAAACACAGTAATTCTTGAAATGACTACTGTAGCGATTTTGTCGATTTACGGGCTCGATTTTTGAAATAAATTTTTTAAAATCTTTTCGAATCAAGCCCTGAATAGACACAAGCTATACAGTAGTTATTCAAAGAGGTTTTGCGATCGAGGTATTTTGTGTGTCAAATAATTTATTCCCGTAAAACAAAATACCGCTCTAAAGATATAAAATTTACAACGCCTATTAAGCACCCCACTGAAACCCGCCGGAAAATCCAGAAAAATTATATAAATTTCACCTCTAAAAAATAACCTGGATAGTTGACCGCGTAATTCGACCTGTTTTATTCCCGATTGTCCGACTGACCACACCCCGATTCTCTCGAACTACCCGCGACAAGCTTAAGCATCTTTCTTTATTCCCACACTTTTCGTAAACTTCTGAGAGACAAAACAATAATATTTCTTTCTCAAATCAATATTGGCTATATTCTCCGCATCCCGTAGCCGGTCCCATCAACGTACTTCTAGAACTCCCACGAAATTTCAATTGCTCTATTGAAAAGGTCTCTCTTTTATATGACCCAGGCGCAAAATTTCGTGCAAAAATACAATCGACGGTTTTCTCGACGCGATAATTTTTGCTAAATTCCAAAAATGTGTGCGCCTTTAAGATTACTATTGTAAATAGCTTCAAACTTTAACCGATTTTAACAATTGAATTTTCTATGTTTTCCGTTTAATATATATTTATTTATTTAAAAATTAAGTTGAAATTGAGATAGGCTAGATGAAGATAAATTACATTACTCTTTAAAGGCGTACATGGCGTTTCGCGACCGGGTACAGTATTTTCGACTGCGATTTTGGTTTTTAAAAAACCTAACCAATAGAATTTCCAGCGCTCACACTCATTGGCCGTGGAAATTCAGCAGCAACCGTCCGACAGCTCTTTTTCGTCAAACGACGAATTCGACGATCGTCAGAACAAAAAGTGAGCAGTTTTGTATGAACAGCAGGTGTGATATGATTTTATTGTGAAATTTGGGACTACAAACCCGAAAAAACAGTACACCTTGTGTGATCTAGAAAAAAATAGAGCAATCGATAATTTTCGGGTAATTTTAAAGTTATTTTCAGCGAAATAAACAATATTTTTGAGCATTGGGTTTTCAGTCATTTTCGATTAAAAAATTCTTCAATGTTGAGCTGAAACTATCGATTTTTACTAGAAAATTGATATTTCTAGCGCAACCACAATTTTAATGTTTAAATTGCTTTGAAACCTCATAACATCTCCCGCACCTCCAGTTTTTGAGTTTTCCGAATATCGGAAACTCAACAGAATCTCATTTTCCTACCGAAATCTATTAGTTTATAATAAATTTGATCGTTTTCTGCTTAAAATTCCCTGAAACTTCTGAAAAAAAACCGATTAATCAGCTAATTCGCTTAAAACTAATTTCGTGCCGGGATGACCACGGCCTCGGGTTTTAAATCGTATGCGCTTTTTGTTTTGTACCATGTTTATTATAGTTTTTAAAGTAAAAAATGAAATTTTCAGCAAGTTTTGGCGTCAAAGAAATGTATCGAACGCATAAATTGAACGAATACTGGAGGCTTGATTTCTGGTATAGCGAATGGTATTCTAAGTGAGTTTTATCCGATAATGGGAATCGACGAAAAACCAGAAATAAACAGTTAATTTCCAGAAATGAGCAACGGGAACAGCTGCAATCACCATCACCAATTCCCGATCAGCATTCCAATTTCGTGCTCGTCACACTCAATTCAATCACGATCACGAATGAGGACACTCTGAACGCGAATAGGGATCTCCTGTCTCGTGCGCCTGCAACGACGTAATTGTCGCCAGAACCGTGTAACCGTCGTTTATTCGCGTGGAAGGCCGGCCGGGATAATGTTTTTCTAAAAGACCATGTCAGGATATTGGGAAATACAACGGTATGAAAATCGGCTTTTCAGCGATAAAAATTGGAATTTTCAGGTCAACCCAGCGTGGTATCCCGTAATGCTAATCAGGAGGAGCGTATGGTTCATGCACATTGTGTAGTGAGAATAAAATTGGTTTTTCTGACCTTTCTATGAATAACCCCGATTCCCATGAAAATATAAGGATGTTTTCAGCAGAAACTCCAGGCAAATTGAGTTTTTGATGCGAATAATGGATTAAAAAGGATAACAAAAAAATCCATGAAAATTATTTTTTACATCAAAACTCCATAAAAATCGGATTTTTGAGCGGATAGATTACTTTGCCAGAAATTGCATTTAGCAAAAAACAATTCTTGCGCGCAATTGCGAACAAAAAATTCAGAACAATGAAACATAACAAAGTTAAAAAAATTATTTATTTAAATACTTTTTTGAGCTGAAAATAAAAAAATTGCCTCAGATTTTGTGGCCAAAAATTCAAGAATATTGCATGAAAATTAGTTTTTGTTTGCAGACGAAAGCAAAAATTAATTCTTTTTCTCGCTTAAAACTGGGTTGATAAAATGGTGTTTAACACAAAAATCCACAAAAAATTGATTTTTAGGCCACAAAATCTATGAACATTCTGATATTCTGGAAAAAAATTAAGAAAATTCATATTGATTTGCCATTTTGTTCAAAAACTTTTTTCAAAAGCATTTCATCAGTGGGAAAAATTTGATATTTCAACAAAAAAATTATTAAATTTTAGAGCTAGCCTACGGCCATGGAATTGTAAGACAGACATGAGAGCTAGCGGATGTGACGTGGCTCCGGGAGCAGCTTCAACAACCTCCAGCACATCATCACATCATTCAACTGCAACAAACCATCAGCCATGGTTTCATTCAAGATTAGCAGAGAACTGAAAAGTAACATAGAAAATGTTGGAAAATCTGGGAAAATGTGTCATTATTCGGTTTTGTCGTCAGGTTTCCAATTTTATGAAAAAAACGTCACTAAAAACGACATAATTCTTACGGAAACATCTGAAATTGTTTGCATGAAAAAAGTCGCGATTTTCTAGAAAATTTTAAAATGTAATAGAAAAATGTTGAAAATAGATTTTTTCTGAATTTTTTGAATTTCATTAGATAATAGAGACAACATCATGTTTTGGAGTCAACTTTTTCGCCTGAAACGCTGGAAAAGGCAGAATAATGGTTAGGGTTTTTAGTGGTATCGAAAATAAAAATGTATTTTTTAAAAGAACGAGAATTTTTTTTTCGTCGAACGTTAGTTCCAACAATAATTACTTACAAAACATTTTTTGTTGGAACGTCTTTTTTTTCTGAAGTTTTCTTAGATTTTGATAACTTTCTTAATTTCAATTCAAATCGGCAAAATTGTACGCGTCTTTTGACTGTTCCCACATCTTTGTAACGAATACGGGAAAAAATATTTCAAAAAGGCACTTTTTTCAAGTGTTTTCGCCTTATAAAAGATTGCCTTCCGGCAAATTGGGATATCCTACATACGGCAAATCGGCGAACTGACAATTTGCCGGAATCGAAAGATTCCGGCAACCGACAACCTTCCGATTTGCCGGTGTCAGAAACTTGAAAAGTGTAGAAAAATAATTGGACGTCACAACTAAATAATAATTCATGTCATTTCTTAATGTATTTTAATACAGTTTTGACGTCATTTTTCTCCATTTTTCATTCTTCCGGCGCACTTGAATAACCCTGTATACCACTTAAAAATCATGTTTAATTTACAAATTTGTAAACTCCCGATTACCTGCATACCGGAGGAACCTTCCTAGTACGTGAATCCACAAATTTCCCCGGCGTCTTCATCACTATGTATGTCTTTTCACGGAAAAGTCGAACACTATCAGTGCATCGAACAGACGGCGGTCAGCGCAATTGACCTGTGACCAGGAAGAACATGGTACTTTTCCAATTTGACACAGTTGGTCTCGGTGAGTCATTTCGGGGCTGTAGAGACAGGAAAAGGGGGAGGAATGGGTGAACCGGTATTCGTTAGACTGAGACAGGTGAAGATAACAGTCATGATTTTATATTGTGAAGAGTTGTATTATAAAGGTTGGTTGACTAGATTTGATTATTTGGGCGAAAGAGAAAGTGAATGAGGGGAAAATTGTTAAAATTCGGATTTAAGTATGAAAACTCACAAAAATGTTATATAAATTTATATTTTGGATATAACTAATTAAAGATTTTATATAGCAAGACTTTAAATAATATGAATATAATAATCTAATATATCAATCTCCTCATTTAATGGCTAGTTGTAATGTCCAATTTTCCAGCACTTACCTACAAACGTGACGCGGACGGTCTCTGCCATCGCCTCGTGGTAACTGCGATTATTTGTGAAACAGCGACATTTTCATCAATCGGATCATCGTCATTTGGTTCATCGTCGACAGTTGATGTGGCATATCGTACATCAGTATTTCGACACGCGGGTTAGATATTTCATCGAACGATATATGTTGGTGACACAATTGCACGGAGACGCCAATGGAGATGTTCGATTGGGAACTTATAAGAATCGAAAAGTCGCGCTAAAAGTGTCGAAAATGCATGGAAATGGAATGTTGGACTCATTGCTGGATGAAGCCATATGGTGTAAGTTATCCAATTATTGAGAAGAAAATAATTTTGGCAAAGCCCAAAACAATGCGTGTTGAACAATGTCATGTTAAAAATATATTTATGTTTCAAAAATGTATTTCAATTTAGGTGTTGCTTTTAATTTGGATCTCAATAATAACAACGTTTTCCAAGTTTTTAGTTATGAGTACCCCGAAATCTGAAAAATATTTTCAGTTGACTTCCAAATTCCCTGATTCCGAAAGTCTAAGTGAAAGATTCGAAACCTGATGGGCTGAGCACAAATTATTTGTACAATTTAAACACTTTTTAATTAAGATAAATTCCCCAATTTTTTTGAAAATATTCCATTAATTCCTATTTTATGTTAATAATTGATTCAGTTTACAAAGCTTAGTTTCATAATTTTCAATTTTCCTGATTGATGAGATAACTAATGGCAGCAAATAAATCTGAAAAATCCCGAATTTTGCAGAGGTCTGTCGCTGAACATCCAAATCTAGGGACGCTTGTCGTTGTTGTACTGATGATGAGTGAATGTCGACATGATAACTGAATATATGGCAAATAGTTTTAATCGATTTACTCCGATCTCGAGGAAGGCATGCGTTGGAGAATCGGAGGCAGTTAATGTATGTTCGATGTAAGAAAAAGTTGACAAATAAAAAAATTGGAATTTCACATTCGCCAATTAGATTGTTCAAAAATTGTTGACATTTCTGCATTTTTATAACCGAAAAATCGACATTTCATTCCGCCTGAGTAATAGTAACTCACCACGAAAAGGGTTACTGTAGCAGTCTTTTAGCTGTCTCTGGTTTAGTAATTTACGATTTGCCGGTCGTCTGAAACCCGATTTTTTCTAGATTTTAACAATTTTCTAGTATGCTGTTGGCAATTCATTCCAAAAACATTTTAATGTTGCCGCTAAATTTTTGTGCTCCGTTTGTCGAAAAGCCGACTTTTTAAAAACACTGCAAAATTTCTCTCTAAGTTTTTTAAAAAATGGTTGCCCTTGAAATCAATGCAGTGTTTATATTTTATTTTGGATTTTTCGAACAAAAATTTTGTTCGTCTATCCGAAACACCAAAAAATCCACTTACCATTTTTCGAAGCGAATTTTTTTTTTCCAAACAACAAACCTGATTTCAAGGGTAGAAACATTTTTTAAAAAAGTTGAAAAAAATATTGTAAAATCGGTTTTAGTTTTTAAAAAAAGTCGTTTAAATTTGTTGCACAATTAAAAAAAAATTTAGAGAAAAATCTTGGAAGGCTTCACGCACACAGCTGAAAATGCTAATACAGTACAGCTTTTCGTGGTTGGACCCAGCCACCGTGGTTACTCTACCTCCGGCAAAGTGGAAAATTCGATTTTTTTGTTAGAAAATTTGAAAATGTCAAAGACCTGTGAAATGTTTCAATTTTTTGTGCCAGCTGTTCTTGAAATCCAAATTATTCGACTTTTTTTCCATTTTCAGGGATACTTGCCAAGGAATTTATCTGGAATCAAAACAGATTGTTCATCGAGTGGCCGCTCGAAATGTCCTCGACGATGATTTAGTAGCGTAAGTTTCCGTTTTTGGATTAGCGAAAAAAGCACTAACAGCCAGTCACATGATTCGGCTTCTGGCAAATTTCCGGACTGATTAAATGGACGGCACCTGAAGCGCTTAGACATAATGTAAGTTTGGTTGAAAAATTGATAAAATTGAGAAATTTTTACAGAATTTATTCTTTCAAAATTAACAATTTCATAAAAAGAAAGAAAATCATTTCAATTTAAGGAATTTCGTATTAAATTTCTAATTTAAAAAAATGTCGATATTTTTTAAAATTAACAAAATTTGAAAACAGAAATCCGTAATTCCGCCGAAAAATGCCTCAAAAATCTGCACTTTGAATTTTTGCCCAAATTTCTAGAATTTTTCCTTACTTCATTTTCTTTCATAGCTTGAATATCAAAAGGAAAATCTTGAAAAAAAATCCCAGAAAAATAAAAAACAACCAAAATCGATTGATTTCAAAAGTTTCTTTTTTAAAAATTGGTTTTTTGTCATTTTTTTCTGATAAATGGAATAGCTTGAAACTAGAATTTGAAAGTATCCAAATTTTCTAATAGATCGATGAAAAATGACTCAAAAACTCCAAAAAATATTGAATTTATCTCTTAAATTTTTCAAAAATGGAATTTTTTTCACGTAAAAAATAGAATTTTTTTTCCCAAATTTTTTTTAGCAACACCACAAAATCCGATGTTTGGTCATTCGGCATTCTTCTTTGGGAAAAATTTTTTCATTCGGACGAATACCGTACCCAAGAATTGTGAGTGACAACATTGCTTAATTAAAAAAATTTCTCGTGTTTTTTCATATTATTCCTCGCTAGCTGGATTGTTTTTATTTCTGTTTGGTTGGGATCATTTCTTTAAAGGCTCCACGGAAAGGGAATCTGCCTGCGAGAATGAGATCTACGAAAATGAGCGACAATGCTAGGATGAAACGTGCGTTGTTTAGCAAGTTTTTGATACTTTTCAAAAATACTAGACTTTTCAACCTTTTTCGTAGATCCTCTTCTCGTAGTTTTTGGTGGGTCCCCTTCCTATATTTTTGGCTTGGCCGAGTTTTCTCCCGGCCACGATCATCACTATTTTATTGATTTTTGTCATGATTTTCAGGGAGCCGATGGTCGATCGGTATGTGTATATTGCATATATTCGTTAGGTTCTATTTTTTACCAATTCTATCCAATTCTATTATACAATACATCTCACTATATTTTCCCCTGCCTGAAATTTTTGAAAAAAAATGAGGCAATTTTAACTTAAAGCTTTTTCCAAAATTTTCCAACAAAAAAAGTTTTTTATTTTTCAATCGCTCGAATTCTGAAAATGAAAAATGATGATAGAAATTGTTTTAAGAAAATGATTTTTTTGGTAGCAAAACGAATTTAATTTTTAATCGAAATACAACTTTTTTTTCAAAAACACCTTATTCGAGACAATAATATTTCTTTTCTTTTCAAAATTGAACATATTCTGGAAAATTGAATAATTAAAAGCATCAAGATTAAATATTCGAAAAAAAGAGAAGTATAGATTTATTGGCTTATTTGGAAAAAAGAAATGAAAAAAATGCAATAATCGAGTCTTTATTTTGGTTTTGTTTCCGACGATGTCCTTCTCGTATATAGTATTTTCCTACCACGAAAATCGCCGTGCAGGGTCTTTAAATTCGGCCGACCACGTCTCGCCTAAGTCCAGTCCCCCACATGTCAAATAAAATTTTTTTCGCAACATCCTGAATTTTGAAATCTTTTTCCAAAGAAAAAAAGTACCGTTTTTTATTTAATTTTAGAAGCTTGAGAAAATGCTTGGAAAAAAGTATTATTTTTTCTAATTTTGAACTTTTTAAAAAAATTATTATATCTTGATTTTCAAAATTTTCCATATTCGATGTTAAAAATTATAAACATTTTTCAGAAAGTAATACCGAAATTTTTTTAGAAAAAAGTCAAATTTGGAGCGAACATTATGTTTTTCAACAATTTGTCAACAATTTTTGTTCACCGCGATTTTTTTTTTGGATCCAAAAAAATCTTTGTTTGTGTGATTTCCGACGGCACCCAACTCCCCAGAATTTACCGCAAAAACTCTATTTTTTTCTCTGCTACCTCTTCCCTATCTTCTAATTAATGTTTTTTCACTATTCGTTTTTATTATTTTTTCCTTTCAGAGCTCAGTTAGAGCCCAAAACTAACCATCAGAAACAAAAAAAACAACTTTCTTTTCTTTTCGAATTAATTTTTTCAGCCTAGGTTCAAGGCGTTGTGAGATATTGAGTAGGTATCGAATGGAAGCACCTGAAGGGTACCGGAAATTTTCAAGGTTATGAATGAAACATGGGCTCTTTCGGCACAAGATCGACCGTACTTTAGGACAGGCAGATTTTTTAAGGGTTTTATAGAATTTTAAGAACGATTTCAAAATCCGAAAAAAAAACCTACAATTATGGTAATTTTTGAGAAAATCTACAATTTTTTTTCGAAAACCTGACAGAAAGAAGAAAGATAATTTGAAAAATGCCCTAAATTGACCAAAACTATGGAATTTTTACCAAAATTTCAGAGGGGTTTTTCAGATTTTACCAGAGTTTCTGCCTTATAAATTAAAAATTTCAAAGGGAAATATTTTTTTAAAATCAGCATTTTTAGCAATTTTTGTGATAATTGTTTATGCCAAAAATGGTGCGAATCTCATGTTTGAAGATTTAAAATTCAGAAAAATCTAAATTTTGGGCAATTTCAATAAAATGGAAAGATTCTGAAAATAATAAATTTTTCGAAATCATGAAAAAAATTTTACAATTTTTGCGAAAAGAATTGTGAAAATTAGAAATTTTATTATTAAAAATATTCTCATGATAAAAACAAAACATTTCAAAAATCCGCCGAAAATGGCTTAAAAATCTAAAGTAAGAAAAGATTTTGCATTAAATTTTATTGATTAGTATTTGCCAAAAAAACCCGAAAATTCACTCTAAAATTACAAAAATTTCAATTTTCTTAAGCTGCGTCCACAAAATGGCTTTAAAAATCATTTTCATGTACAATGTCAAAATTTTAAAACAAGTGAAATTTTGTTCAAAAGTTACCATAATAAAGGTTTTATGCTTTCCGGTCATTTTTTTTAATTTTGGCACACTAACCGAAAAAAAAATTGCTCCGCATTTTTACCCTGAAATATGCGAAAATGTTTGCATTTTTTGAAAATGCCACTTAAATTTTTTATATTTTCAGGTCGTGCCGATTGACAACCATCCGAAATTACAGTATGACATCGGCGCACATCTCGAAACGTTTTCCAGAATCCATATCCACCGAATTTTCTAGTCCATATGAGGTTTCTGTTTTTTTTTCGATGTTTTTTACACAAATTTAGTCATATTTTATAGTAATTTCTCCCACACATTTTTAGGCATCGTTATTATATATTTTCTAATCCGCTGCCACGCATTTCGGATAGAGATCCTGGAATTTAAAGGCACAGCGGTGTTTTTGGATGGGTCCCACCTCGATAAAATTTTTGCCATGCGCTCCTTTGAAATTTTGTTTTCGATATTCCTAAAAATCACAAAAAACATTGTTTTTTCTAAATTCGAGAAGTTTTAGCCTTTCTTTCGACTAAAAGTCGATTTTTTTACGTTGGTTTAAATTTTTCTCGATTTGAAAAAAATTTCAATTTTCAGTGAATCAAAGAAAAAACATCAGGGAGCAAAACTTCTATTCGAAAGAACAATATTTTAAAATTGTATTTTCCGATATAATTTTCACTGTTGGGTCTCACCACGAAAATCGACATGCACCTTTATATTTCCTTGCCAACACCTCTCCGAACGGCCGATACCAAATACCTACGGGTTCTTCAATTTTCCTCTGCATCATCGATGCCGTTTTTAAAAATTTTTATCGAATATATTTTCACGTTTAAAATTATTAATTTGTAACGCCAATTTCAAGAAAAAAGGCTCAAAACTCCGCCATTGGGATAATTTTTGCAGCGACGGAAAATGCAATAAATTTTATATTAGTTTTCACCGATTTTTAACAGACTATTTTTAGAACTTTTAGTCATTTTGTATGTGTGTGTTGCTAGCGTTTATCGGCAAGAAATTATTGTTTTTTCTTAATTTTTAATAAGGGACATTTTTTAAAGAGATTTTCAGAAAATCGGTAAAGATTTAAGATGCTCTGAATATGTCCAACTTCACAAGCTTCGTAGATTACGCGGATAAGGTGTTGAATGAGTTGAATGTGCAAGTGCGCCCTATGGATAAATGGAGCAGCGTGGCAATTCGAAAATTCAAGAAATTTAAATAAAAACGTATTACTCGAAAGTTCACAGAGTTTTTCACCAAAAAATTGAAAATTCGCTGAAAAAGTCGCGGGACATTTTGATTTTTCGGGAAGATTAGAATTGACTGAAAAAACCGCGTCTTTATTCGAGAAATTTTAGAAAGGCGGAAAATTCCAGATTTCTTTATTTAAAAAAAAACATGAATAAAAAATTCTGAGAAATCATGAAAATTGATTGAAAAGTTTCAATTTTAGGCTAAAATTTTTTTGCGAAAAATTCATTTAGTTTATGTTGGTAAAGTTCCGATTTTTCTGCAAGACGAATTTGAATTTCTTTCTGAACAAGTGCGTTTTTTTTCAAAAGTTTTTAAAATCGGAAATTTTTCGCCTCGAAACTGAACCGAAAAATTCGAAAAATGAAGCGCGGGCAATTCGTCTTGAATTTTGGCATTGAAAATATATGAAAAATTCAAAAATTGGAAAAGCTCAAAGTTTTTCACAAAATAGTCGATGTATTTTCTCATTTTTCAATGTAAAAACCGATAGTTACCGCCGCACGCTGGGTCGCAGCAACAATGCAGCCAGACAACAATACCGCCGTCACCGTTGAACGTAATAAAAAACGGCCAATTCCACTGTTAAATCCAAGTGAGTTTAATCGATTTTTCTGTAGAAAAATCTGAATGTAAATTTTGAGCTGAATTTTCAGACGAAATCAGCAGCTCTTCGTGCTATGACGTCTTTCCATGCAATCCGGAGAATCTCAGCAGGGACATGTTATGTACAAGAGTTCGTCGATTCTATCCTGCCGTTGCTGAAAGAGGAAACTCAAAATGAAAAAAGAACTATAGTACTATACATTCGAAAAAAAATTTTCAGTTTACAGGCGCATCTTTAAATATGCATTATTATTCATTAGTGTCGACCCAGAAAGCGCATGCAAATTTTGAACTAAACTGGAATAAAAATTTTATTACACATTCGTGTAAGAATATTCAGTTTAAAGGCGCGTGCTAGTTTTAAGCGTACTTCAAAAATCAAAAAAATATATATATCTATTCGTGAAAACATGTTCTTTTTAGAAGCTCTTTAAAAGTTTAAAAATGATTATTATACGGTTTCTAAAAATTTCCAAAAATCAGGTCAAATGCACTTAGAAGATTGGAAAATATGAAATCTTTATACATGCCTGAAAAAATACGGCATGGTCCAAAAGTCGACAAATCGGTCCAATATTTTCTATTTTTTCAGAGAAATCTTGCGCCAAGGTCGAAATTTTTCGACGATTTCTACGACGTTCCGTGCGATCGCCAGAATTGAGGAGGGAGACCATTGTGAAAGTTGAAAGCAAATATTTCTTCAAAAAATTATTATATTAAATTTACACATACACATTCGTGAAAAGATTTAGTGCTGCCGGCAGGTGAAAATAATGAGATGAAAAATATATACAGAAAAAGGAAAATTTGAAAAATATTTTTTGGCGATAATTAGAATATTACCCGCAAACAAAATTCAAATGACATTTCTTCAGTTTTTGAAAATCTAAACACAATTTCAAAATGTCATTATTGGTGATTCGTGAAAAAACTCAGTTTAAAGGCTCATTTCATATTCAATATAAATGAGAATTATTAAACATCTTAAAGACATAAAGTTTACAATATAAATGAAATCTAAGAAGAAAAATTATACATTAAAGTTGGGAACAAAATTTTGTATTTGAGTAGGACGCTTGACATCAATTTAGTGATATAAAATTTTGAAACCAAGAATTTTCGAAAAAAAATCACGTATACCTAAAAATTTGTAGTTGTTTTTTTAAAGTTAGTACAGAAACTATTTTCTCTAAAATTCAAAAATATTCCAGGTAACATTGGAACACAGGACAATTTTCAACCCTCGAGACAAGCCTATCAATCCAATGGAAACACTATCAATAATTCCGAATATTAAAAGATGTCAGAGTTGTTACAATTGACTTGAGAAGATCTCAAAATGAATATATTGGCCAATCAAATACTCTACCTCTCGAAAAGGGGACCAATCGAAAAGATACTCAAGTTGGACCTGCTATGGAGGACCGCGATGTGAAGGCGAAAAACCGTAGGCATTGGATAGCTAATTAGTATTGGGGGTTGGGAGGGGAGGGAGGAAAGTTCGAGAAAATCGGAATATCTTATGCACTAAATATTACTTAGGCCGTTTGATTAATAAATCGACACATCAAGTAAATAAATTCTGAAACAAATTAAAAAAACGTTTCGATTGATATATGTGTATCATTTTCAAAAGATGACATAAATTGGCAAACAAGAAATTTTTTATTCAATAAAAATATACTACGGGAGCCTAAACTTTTGGAGAGTGCGTATTGCACAACATATTGGACCAGATATCTCGAAGCGAAAACTACAGTAATTCCATTTAAATGACTGGTGTCGATTTACGGGCTCTTTTTTCATTTCTCCGGATTATTTTCTCTTTTTTGCTAAATTTTAATATTCTATCTATAACTAAAAAATTAATTCATTTCGAAAATCTAGCCCGAAAATGGACACAAGCGCTACAGTAGTCATTTAAAGGATTACTGTAATTTCGCTACGCGATACTTTGTGCGTCAATATATATTGTGCATCCAGTTACGCATTTTCAGAATTTTGTATTCTCATAAAATTTTCGAAAAAGTAAATCTTTTAAAAAACTTTTTATTAAATGAATAAAAATTTTTCCCCTTGGAGAATCGGATAAAAATAATTTATTTAAGTTTTGAAATTTTAATATTTTGAAAAAGAAACATTTGACGTATTGAAGAAAAAGATGAACCTTCTTTTGTAAATATGGTTTTTACAAAATTCCAATCGTCCAATATACAGACTCATCATTTTCCAGCAGCATTTAATAGCTACGAAGCATGGCGCGTTCGGAACTCGAAAGGTGCCAGCAGAAGACGGATTCGACGTCTGTCTGGACAATTGCGTAGCACTTAACAAAGAAGGCTTCAACTATGCGGCTCAGCGGGGTGCGATTTTTGGAAAGTCAAAAAACTGGATTTCCGATTAAAAATATGTATAGTGTATGTATTTTTCAAATTTCCAGCTACCCTGTGTTACGTAGTAGTGAGCAACTTCTTGGATCGTGTGGACATTGAACGACAACTACAACACCACAAACAGGGACGATTTCCGATTTGGGTGTGGTCTCGGGCGAACGGACACTCGACGTTATTCGTTTCGGCGCATCACGAGAACTATATCGGATGCCGGGGATTTCGGCGAAGTTAGTACATTATATTTTAAGTATGATTTAAAATGTTATTTTCTTACCCAGCAGCGTTTGCAAGAAAGTATCACCCGTTGCCATCTGAATAAAGAGAAGCCGCATGTTCTAAACTTGGACGTCGATTTTGTGTCGAATGTTGGAAAAGCTTTTGATAATCTCCCATAGCTTAGTGCAATTGGTGAGGGAGAGCATTTCATATTTCAAAAAAAAGTTATTCGCCGTATTTTCAGCTCTTTTATTTTCCATAATTTTACATATACTATGCAATTTCCCAGACTCCTACGAGCAATACGTTACACACAGGTGCAAAACGGTTGGAATACGAAACTCCTATCGGGAGAACCGGATCGGGCTACATCTCGTCAACCTCTGCAGGATCACAACCTATCAGACGATTCAATGGATAGTTGATAGAGATCGATCGGTTAACAGGGTGTACTATCAATTTAGTATTCAGAGAGAGGGAGAGAGCGATTTTCATAAATATTTACATACGAGTTAGTCATTTACCACAATCGACTGATCAGAATCTGATACGTGGCCGTTTTGAGACCCTCCGCCAGTACTTTAGGAACTTGCACCGAACTTGCTGCTTGATCCTCCCCCTCCAGAGGATCTTCTCCAGATGGGATACAACTTTTGATGAAGCTGATCATCGGATCCTCCTGTCATCCGAACTAGATTCAACTGTCTGAGAAGAATACAACCAGTGTCTGCAATCACCGGGTTCCCTTTTGCTCGTCGAGTACTCAAATTGTGTCGGCATATGAATTTGTCCAACGTGGGAAGCCTGAATGATAAAGGGGGACTAGCGTCGAATAGTTATTTTTTATGTTTTTCATATACTCGTTTGCATTAAAGTAACGGCTCTCCTACCTTGAAATCCGAGTTCGGACTGATCTTTTCTCCGTTTCACCGAGATGATTCTTCTGGTGACTCGTTATTTCTCCTTACGCTGATCGTGAACCCATTTAATCAATTCCTGATCAACGTCGTAATACTTTAAAGGTCTTCCACCTCGACCTGTCGAAAGTCGCTTTGTTGCAGTTGAGCCTTTATCTTTCTGAAATTATTTGCCAAAAGGCACAAGTCGAAAATTTTTGGTAACAAAATGAAAATTTGAAATCGAACAGAGAATGTATCTGGGTTATGCCCAGTATTTCAAAATATAGGAATAGTAGAAATGACTTCTTTTGATAGGATAAATTATAAGCCTAGAAAAAATCATAGTATTTGAATTAAAAGGTCCACAAAAGGTTCTATTGATTCGGCAGGGCTTGCATGTAGTAGCGAAACCTGCCTTTAAGGCGACCGCCGCTTGCCTCTCGGTTACGCCTTACGTTGTGCTAAAACATAATTCAATCTTTTTTTTTTTAATTTCTATTCTGATTTTCAACAAATTGAGAGAAATGAGAAAATTAGAAATTTGTAAATTCACATAGGCGGGTTTCAAGCAGGACCCTGTCACCGCGCATGCCTAACATGACAGTCATAGCCCTGGACTCTTTCCTTTTTGAACACGAAAATATGTCCGAAGTGGCAAAACTTACAACTGCTTATGCCTCGATTTCAGCTTTGTGGGCAATGATCCATTGTTGAATGTTTTGACCTATTCACATTCAAATCCTTTGCTGCTTCGATAAATTCTTATGTTCGTTCAAGGGCATAATTTATGGCCTGCTCAAAATTCAAGTCATACGTTCTTTTTCGAGTTTTTACATGCACTGCTGTAGGGATTTCGCTAATTGGTTTTCTCTGAAAAATAAGTATAACAAGCAAAGTCTTAACTAGTCAGCAAGTTATTGGAAATAACGAGAGAGAAGCTAACGAAGGGAAGACCAATGGAGACAGCAAATTGGCTGTTACACACACAGAGAGACATGGCTAATAGAGTGTGCCTATTAGAGGGTCGAGGAATTGCAGTGAGACGAATTTACTGGGCATGAATGTAAAGGGGGTGCAAGGCTAATAGGAGGAGAAAAGTACAACTACAAAAGCATTATTATATAAAAAGCTAGGAATACCTGTATGGGCACCCCAAGATTTGTATGTAAGTAGTTATGTAAATGACTTTTTGGAATTGAAAGGAAAATACCAAAAATGGAAAAAACCTCCGGTCAATCATAAAAAAATTTTGAAAGAAGTTCGATCTAGGCTACGGTTTACAGTTTCCCTGATTTCTACTAAAATGCATTAATCTTGAGTTTATCTCTAACAAAGTGATGGTACTTTTGAATGGTTATAACACAGGTTGCAGAAGACGAAGGATCAGCTATGTCGATTATTGTGGCCCTCAGAGCCTCACGCAAATGTGGTGTGCTCCAAATTTTACAGAACAACTACGAGTGCAAAGAGTTTATTAGAAATGTTTTTTCTGTACTAAAAATGGGGTTTAAAAAACGAATTTTGGTTGATTTAGTTCTCTCCTTGTATAAATTTCGAAAATTTTCCGAAATTTTTTTTTCAATATAAACAATGTCTTCAACAACTCATCGAAAAAATGTGGATTTCGCGCCCTTGGCCACCCATTTGGTGAACGGCTACTCAGAAGAACCGACGATATCCATCGAGACGTGGGAAACCACAGAATAGAATGAGAACTGACGTCATGCCGATGTGGTTGATCTTATTGGATTGTGTTTCACAGATAAATATATACATTTGAGTAGGTTTGGTGAAAAAAATGTTTTTCCTCGCAAAAAAATGTTTTCAAAATTTGAATTTCCCACCCAAAATTTTTCTCAAAAATTTTTTTAAAAATTAATTTTAAAATTATCTGTTTTCTCAAAAAATTTGAATCTCCCGGATTTAAAACTTCCAAAAATTCGTCTATCAATAAATGTTATATTAGATAGTTTTCGACGAATCATAAAAATTAGTTTCTAACGCACTTTTCAAATAATTTTTTTAAAAAATAATTTTAAAAACAATTAATTTTCTTCATTCAATTTCCAGATTCACATTCTCTCCACAAAACCGTTCTCATTGCACTATGGGATCTATAATTAACTGGAATGGTCCCATCAATGGCTTGTAATAATCTGGAACAGCAATTACTCGCAAAAGTCGGCGGTGGACCATTCCCATTGGATCGATATTTTGAGAAAAGATACCTACTCGAAATGGAAATATTTGGCACGACGCAGTGCTTTTTATGGAATCAATTACGAAAAGTTGGTGCTTTTCAAGAAAAAAATCCATTTATATCGATTGTTTTTTTCTTATTGATTTCAGCTACTTTTTCACCTCCGTCAGCAATATTTTGTTGCAACATTTTGGACGTGGCCGCGAAAAAAAAATTGGTGGCCGAGTTGTCTTTTTTTTCACTGCCATTAATTGAGAGGAAAATCTCAGGAATTGAAAATTTTTTCGAAAGTATACAATGTTGACCGAGAAAATATAGGGGGCCGTGGAATTTCTCTTTCTTCTCTGCCACGTTATTTTAGTAAACAATTAGAATAAAAAACACAGAATGTTGTTCAAATTGAAAAAGTCTCTAAAACAAGAAAAAATTGATGGCCGAGTTTTATTTCCATTTTGCGCGGCCACGTGACAAGCAGTGATTTCTCAAACGTTTTCAGGAAAAAAAAACAGGCGGAATTCAGATAATCCTACGAAAACTATTTGTTTCTGGATACAAAAGTCAAAACTTCAAAATCGGTGGTCGAGTGTTCTCTTTTTTTGCGGCCTTATCACGATCCAGAACCAGTGTGTGCTCACTCGAAATTCCTTCAATGTGAATTTATTCGGCCAACGTCGAGACGTTTTTGCGATATTCAACTGTGGTCCGCGTCATCGATGGATTCCTCCGGCAAACGGGAAAAATTCGGGAAAACTCGGCGAAGTAGAACTCTCGCTGGACGAGAAAATGATCGAAATGCCCTTGGAAAAAATGGAACTGTTCCGAGTGGAAAATGTATCATTTGGACCTACCGGAAGAGGTGACCAAACTTTTGGATTTATAGGCTTTCGAAACATATCTTACTCTCAATTCTTAAATCTTTAGTATTCATCTTCATATCCTTAGTCGATTCCGGAGATTTCCCCAATAATTTAAATGATTTTGATATGATCCGGCCGGATGATTTCGGCGCAATGTCCATGAATTCCTCCATCAACTAACTCACCATCGTTCGTTAATACGGTAGGGATACTTATTAGCTCGGAAAATAAATAACGACACATTTTGTCTCGAATTTATTATAGGTGACTTAGTAATAGACATTTAGTGTCTAGGCACGCATAAAAATTAGATCTTTTTCATCGTTCCGATACTTTCACACAAAAGTACGTTTTTTTTCGCAACGTTGTCAATTGAACAATCAATAGGTCGGCAAATAATTGTTGGAGTGTTTTGTCACACGATATTTATCAAATTTATATGTGACTCCTGGTAGAAATTTGTTATGGTCGGCAATAAGTACTGAGTCATAAATTCATATAACTTGTTGTTTGCTTATCGATTGTTTTTAATTGCCGGAGTTCATGTTATTCACTATGGGCTTTCATCTTAGTCAACATTTGGTTAAAAACTCGAATCCAAGTAGAAACAACTTTTTCAAGGTTTACGCCGTGCTTCTTTTTTCTCTTATTTTCTGCACTACATTGATATTTATGTAGGGATCCAGGCCGAGTGTCGGTATTTCGATTTTTGTATAAAATCGAAATTTTTTTTTTGATTTTTCGATTTTCCCTGAAAACACACAATTGAAAAATGTCACCCTTGGTACGGATATTGCTATCTATTATACAGTGTGAGAATCCAATAAAATTATATTTTATTTTTGCAGCCAGTTCGTTACAACACGACAACAGATTGAAATCAATATTCGATCATTCGACACTTGAGAAACGAAATCGTCGAGCAGCTGCCAGAATTGGCCCCCGCCAGTTATTCAAACCAAATGGCAAATTGTCGGATATTCGAAATATGCTGATGATTCACACCAAGACCACATTCCCGAACTGTTGAGACGCCTATTTTAAAGACTGTACGGGATTTTTGGAAAATTTAAAATTTGGAAAATGAAATATTCAAACAAAACAATTTTTTCGCTTCATCAAATTTCATAAAAATTTATGTTAATAAATAGTTTTTTATTGAATTTTAAAATTCTTACTCAAAACTTTCAAAATAATTAAAAAAAAAAACCAAACTTGTATATTTTTTTTTATTAAAAAAGTTAAAAAAAATTTTTTTTGATAATGGGTTGACACTGCGCCTTCAAAATTTGATGAAAATCTTAATACTAGATTTTTTTAATTTTTCATTTAAGACTTTTCGAAAAATTCGAAAGTTCAAAAAAAAAAATTCAAAAAAAATTTCACTCTAATCAATCCCCCGTCTGCAAAATTTTCGATAAAACGATGAAAATTTTGTGGAATAAAAATGTTTAATTTATCATTCTGAGGCACCACGATTTAGTCAAGATCTGGCTCCTGGGATTAAGGACCCGATCTTGAGTACATGATTCTTCATTTCCAGCGCAAAATCCTTAAATCCGGGATTCCACCGAATCCGGCTTGACACCCGAGGTGCCTCATCATTCTACCTTTAAAAACTCCAAATTATAAAAAATTCTGCAAAACTCTAAAGAAATTTGATTTTCGATTTTCAAAAATTTAATTTTTTGTATTAAACATTCAAGTATAAAATATTGATGAAATTCTAGAATCATATTTTTAAGTTTTACAACATTTTTTAAAAATCTACAATCGTTCACTTTCTTGCCTTCGAAATTTGAATGTGAAGAAAAAATTTCAAATTAGAAATAAATTAAAAATGTGCTCATAGAATTCTTTAAAAATATGCGTTTCCCTAATAATTTCCATGTTTCAGTCCCCATCGCCCTCCTACACCCCATTTAACCCGACGCCCGTTCACCGGAACCGCGTCCGTGCCGACAATCGCCCAATTCGCCCGGCGGCCGCAGGGGCTCCTAAGAAAACTGACCCCCATCAGGCCCCGAGATAAGAGCTTATGGAGATGTGGCTATAGAGAGCCCTACTACTCGGGTCCCAGATTTTGAAGAAAAAGTTATACTAAGGTATTCGAGTTTAATTTCCGCTCTGGGAACACTATTATCTATAAACGTATGACCCCTTTAAATTGAGCTCCAGTAGTCAAAAACGTCGAAAATTTTCAATTTTTTTGAATTTTTACTTGAATTTTTTCATCCAGTTCTAAAAAAAAGCTTTCAGCTCTACCCCTTCTTTCATTTGTCACCTACTGCCTCGCTTCATTGCCCTGGGGTTAATTAATTTTTTGATGCTTTTCTAGTCCCGCCACGGTTTTTTTCATTTCGGAAAGTCTCGGATCGATTATCAATTTTTTCGAAAATTTGGTAAATTTAGAGAAACTCTAAATATTATCGATTTTAAGATACAAATGATTCTAAGATTTTTTTTTTCAAATAAAATTTTGGAAATGTTTTTTTGTAAAAAAAAGTGCAAAAAACACTTAATGGAGAATTTTTAAAAAATTGGAAAAAATCTTGAAAGTTTGTCGATTTTTCAGAGTGCCTTTTGGAGTTACGTGTCGGTTTTCTTTCCGAATTTTCATCAAATTTACTTTCTACCAAAAAATCTCTAAAACGCCGTGGCGGGAACCTACTTCATTTTTATTCTGCATAATTAGACAAATATTATTTTCTCATTTCAAAACTTGTTACATATTTTGTGTTGTGAAACATATGTCTAAATTTTTACGGACTGAAAAAATATTCTTAATGTTTTTGAAATTTTCATTATTGGCGTCATCCATGTCTATTTGATTGTTTCCACACCCCCCCCCCCCCCTCAACGTAAAATGAAAAGAACAAGACGATTGACAGCTAGCATGTGCGACGATCAAAGTACCGATTTGATTCAGTTGAGAGGGAGGGACACGAGAACGCGAAAAAGTAGTCGGAAGCCCATCTAAAAGTGCTGGAATACATTGGCAATCGCTATGAAATTCGAATGACCGACGGGAGAGTCTGTCCATACGTGGCACGATGATCGCCACTGTCAAGGCTAATATGGTTTTGAACAAGGTAAAAATTTGATGAAAATTTGGTTTGCCAAAAGCTTCATAGTTTCAAATATTTTTCCTTAGGAAAAATTATGCGCCGCAGGCACGATACACTAAACTTTCCGCTTTTTTCTATTGCTGGCTTAGTTTTCGCAATTTTCTGGCTACCAGTTCTGCAAAAATGATCGATCCGTGAATTGTGCAAACATCTGAGTTACACAGAGAGTGGGGGCGGGGCGGAACATCGCAACACTGCCGGACCCATGGTTTTGTCCACAACTTTTTTTTTCAAGACAAAGTCTCGGACGATTGTACTTGCTTTTTCTCTTTTTTGTATAACAATGGTATTTATACTAAATAATTCACATATGGTAAATTGCATATAGCAAAAATGGCACAAATATCCTCTCAAATTAAGGGGAGCCTTAATCTTAATTAAATTGGATATCATTTTCATTCGAAAAGAAGAGAGAAAGAAGTAAAATCGAAACTTTTGCTTTTGAAAAAAATGCTTGATTTTATGTCATTTCCGTTGTTTTTTTTTCAGTATTTAACTTTTGAAAGATTTATTTATAAGGTTTGCGGTTAAAAACGCTGAATTTCGCGTTTTTCTTTTCTGGATTCAAATTACAAGTTTGTTAGTAACAAATTCGAATGTCAAACACGGAAAAATAAGCGAAAATAACAAAAAATCCTGTATTGTAACCACAAAGTTCTCCACGAGTGGTACGACTACCGTGGAGCCGACGCGCCGCAGGTTTGCAAAACAACGCCCACCCCGTATTCTGCGCGGCACTACACAATTTTCTATCTCACGAATAAATTTTTCAGAAAAGGCAGGCTTTGGTCTGTCGAAAATATCATGAAAAATCAAGTCTTTGTCAGGTTTCCAACGCTGGAAAAGGTAGGAATTAGGGTTTGTTACCAAAAATCGTATAATATTAAAATCCCAGTGCTTCTCTGTCTTTCAGCAATATCTTTTAATTTCCAGGCAGACGAGCGATGGGACAAAGATCTTGAAAGGCGTCTGATTTCTAGGGCAAGCGATATCTCGAAAAAGCACCGCGTGGATTCGATGCACGCGTTGCCGGACCCTAAAAACTGAAATTATCCAGTTTTCTTATTTTCTCTAATTAATCCGATCCTTTTCTTGACAAGATTAATATAAAGTAATTTTTATCGAAGCGATTTTTGCTCATCTCATCCAAATATGAAAGAACATTCGAAGAAAAATCGCCGGCTTCACTTGGAACCGCGGCCATCAGTTGAGAATGCTGAATATGTACAAAGACTGGAAAATATTAAATTTTTCTGTTTCAAATTTCACGTTTTTCGCGTTTTCCACAAAAAAGCAAAGCATTGTAGTATTTCAAAAAACACTCATGGTAAACGAAGGCACCGTGGAATACACGATAGCAATGTGAGACCGCATCGACCAAACTGGGAAACGCCTGCGCCTTTAATTATGTTTAATTTTCGAATTTCGAGTTTATTTTTTTCTCAAGACTTTTGCGACTTTTTTAATATTTTATTACTTGTAGCGCTGAAATATCACAGTTATTATAGCGTCCCACATTGGGGACATCAATCAAAACAGGTATTTTTCAAAATATCGCCGAAATCAATAACCAGTTTTGAGATGTTGCCACCCGAGCCCCAGGCACGGATAATACTGAGAGAAGTTCCGGTCCAGAATACCCAGAAAGAGCAACCACCGGGTTCAGGAGATCAAAACCGTGTCCCGCAAGTCGAAGGACCATCGGACGTCAGTTCGAGCCGGAAAATTCCGGATCACTTCGACGTGGGCCGCATCACGGTTCCACATGAATGCCCCCGCAGATGGCTCAGAAGTCAATAGTTCGAGGACGACGAAAAAGACGAGTCGAGAACGAGTGTTGGGCGGTGATCGAAAGAATAGGAAGCGAGGATGACAAGTTCGAGGCCTCTGAGCTTGTTCCACGAGTGTCGAGTACCGCGATCACGATTGGTATATCGCGTTGGATAAATAAGGAGAAAGCCGGGGCGAATTATCAAGATTACGAAAAAAATTTTGATTTTCAATCTCATTTTTTAAATTTCAGCACCTACTCTACGGCTATCGAGGCGGAATCCAACGCATAATTCTCTCGCATCAACAGACGGATTCGATGGACAAAGTATAACGATTCGCCGCTAGTGAAGTACTGAAAATCATCGGAGACGGTCTGTACGTAGTGGTTCCGACTCGTTCCTCATACTGGTCTAATCAGTCCCAAATATCGTTACAACAAAGGCGTCGAGCTTCGGATTTTCGTTATAGTGAATTGGATTGATTCCGAATTGTGTTGGACGATCATCAGACGCCCAACGATCGTTTGGACAGATGTCGGACCTATCTGTCTGAGTGCCGCGAGCCAATATTCGACGGAAGCTGCTGCTGACCAAGATGCAAATTTTCGCGTCGTACTCCGAATGTGCCATATTACTGTCAACGGAATTTAAGCACCTTGGTTAAAAAAAACGCGTATAAAGAATAATAGTTCCAAATTTTCAGCTCGATTCCCGATGGTTCCCCGATTCCATGGACCATTATCATCGTTCCAGCCACTCATCGAACAATCAGAGAAGGATCCGATTACTGGGCTCAAATTATGGCCAGCGTTAGAGTGCTCTCGATGATTTAGTCGTTACAAAGAAGGTGCTTAATCATTTTAATATTAAATTTTACAGCATGTATAATTATTCATCTATCAGAAACGGCTCCCGCCTGTCTCAAAGATTGGAGGGTCACGTTAATGTGATTCGCCGGTGCAAATCAAATTCGGAATCATTGAGTCGGCGGGTGAAAAATACGCGACGCAGGGAAGCATGATGGCGGTCGTGGTTCAGTGCTATCAGAACAGCACGTTTGCATCTTTCGAAGCACTTATCGCCGGACCCCCGCGAGTCGTTGATTATTACCGAAGGACGCTTTCTGGAATTATTGCCCGAAGACGTGGCGTCTCGGAAAATGCGTGATCAGTATCAGAAAGAGCACGTTGTAAGCACGATTTTCCAGAGAAAAAGGCTTTCGATAAATTTTCTTATTTTCAGATCCGAAGTCGGAAGTTTACCAATCTGCATGAACACAGCCGGATTATTGTCTTGCCTCAAATCACTACGAGGATTCAGCGAGTGCCTTTGATCACAGGTTTATATATTTCTGTATTTCTTCTTCACTGCCTTATTTTAAAAGAATTTTCCCGTTTTTTTTCTTTTGTTCATTTTCCCCTTTTCTTGGTACGCTGTCGTTATGTCCCCGGTACATGCTAAATTAACGTATATTTTTAATTAGCAATTAAAAAACTTCCTGATTAACTGCCCGTTTTTGGAGGAGAACCAGAAGAACGCAGACGAGTTTCTGAAACTGAAAGGGTTTGAAATTTTTACCAATCAAACAAACTCGCAGTTCAAAAACCATGCCGTCGTTGCTCAAGTTTGAAAAAACCACTAAACATATTTGCAACGTAGATTGATAGAATATCATTGGATCTTATGGATCCGCAATGGCCAGATCATATTGACATTTACCGTTTAATGGGTCGGTACCGCTGAAAAGTTGCTGGTCTCGCAGCGAACTACAGTAATCGGGAAAAAGCGCTGTTTATTATCGAGTTTTCACTTACTCAAAAAAGTCAATAAACTCGCCGCGAGATCCAAACCTCAACTTACGATAGCTATTTGTAGGAGTCGATTTTCCATCGACAAGGAAGCCAGCGACTAGGAAAATTTTGATAGGGAGAAGCATTGAAATTTAATTGTTTTGGGGCGTTGCGTCTGGGCCGTTTTTATAGGAATTTTTGAGCTGTAAGAAAACAACGCAACATTTATTGCCATCAATTAATACTCCGGAAAAATATGAGTCATTATGGGGGGTTTTCAACCGTACGGATTTTGACAAATTTGAAACTACCATATAATGGTTAGTTTTGTAGTTAGAGAACTCAAAATTGATTTTCTAAGACAAAAACATTGCTTCAGAAAATAGTAGGTTTGTATAATTTCCAAAAAATTATTTCTTGCCCAAAAAAAAAAGAGCTTCATTAGATGGCTGAACCAAAAAATTGGGCAAAAATAAAAAGTGTCTAATTTTGGGGTTTGAAAACGGGTAATTAATATATGCAGAATTCAGAAAATCTAGGTTTAACCCATCAAAAACCATTAAAAAGGGGGACAAAATTTGGCAATTTTTTCAACAACTCACAATTTTGAAACCTCCTCTAAATTGGTTCAATTTGTAGCTACAGAACTTAAAATTGGTCTCCAAGCCATCAACAATTGTCCTTTTTCAAAATATAATAGTTTTAAACGTTTCTTTGAAAATTTATTTTTCTTGCCCACAAAAAAGGACAGTCATTAGATTGTGGCAAAAAATTGGGCAAAAATAAAAACTTGTCTAATTTTGTTGAAAACGGGTAACTCATATATGCAGAATTCAGAAAATCTATTTAACACAGCAAAAACCATTAAAAATCTAAAATGATTAATTTTCTAGTTAAAGCATGCAAAATGGATCTGCGGGAATACCAAAAAGTTGTCAAGTATCGCAAAAAAAGTGGTTCAATTAAAAAAAAATTAGTCTGGGGTTAAAAATCGATTTTTTCGCCGCACTTCGCAACTTGGACGAATTATTCTTTCGCTGCACAAAGTGAGAATCAATAATTATTGATTTTATTTCTAAAACAGAAAAATAGATATTCACTTATCTGAAAAATCGATATTAAACGGAAATTCGCAAAAATCGATGGTCATTAGTTTTTTTGCAAACCAGTAAAATCGCTTTTATCCTTCGCCGCATTTCCTAACTTTTTCTATGCCACTTGACCTTTTTTCTTCCAGAAATCTTGGAGCTTCCCAAACCCACTCATCAGCCAGCGTGCTTCATCAATCATTCCGTTGAGAACTATGAATTTATCGAGTGAAAATTAAAAAGAGGGGGATTTATTACACTGAAAAAGTGTTTTTGTGCCACGTGGCGGCCTGCAGGCCGAACCTAATTCCTAGCGGGAATTTCTAGGCCATGTACTTGGGGGAGATGGGGAGATGATCGAGGGGTCAACTTCAGGGAAAATGTTTGTAACAAAATAGAAAAAAAACTATAAAAGGTAAGAGGAGATCAAAGGTCACGCAACTAGGGCTTGAAAAATGAATGCCTGCCTACAAATAGACATGTAGGAATGTAGGCAGGCAGACAAAAAGTGGGTGAACAACGAGAAAAGGCACGTAAAATGGGGTAAAGGTTAGAGAAAAAGAAAAAAAAAGCTCACAGAGCACATTAAAAATGGAAAAAAACGAGATCATTGGATATTCTGCTGCAGTTGATCGTCATCATGAGTGGTCTGCTGATTGGGGTCGACTATCACATCATCTGGTTCACGAGAGCATCTTCTTCGAGCAGCTCATGGATGATCGTCTTGATGATTTGGCTGTTCAACCACTTGCGAATTCGAGGACATCATTTACAAATTAGAAAATACCATTTTTTAGACAAGAAATCGATAAATTTCTGTGTTTATTACTATTTTTCGGATAATTCCACACAATTAGATAGTTATTGAGTTGTCTTTCTATAATTTTCAAAAAAAAAAATTGAACGATAATTATTGATTTTTTTTTAAATCAAAAACTTCACAAACTCAAGAATTATATATTTTTCGTCCTCCTTCTCTTTCGGTTTTGTGTTTGTGTAATGAGTTTTTTTGAAAAACGCAAAATTTTCTGTGATATTTCTATTTTTTAACCTGAGGCATAGTTTTTGAAAAAATTTTGCAATATTTTCAGTGTTCTTTCTCAGAAAAACTCGAATAATTGCAAAAAATGTAAAATTTATCAAAAACTCATTTTCAGTCCTTTGCTCAGAGAAGACTGGAAAAAAAATTTCAATTTTTTTGAAAACCTGCCAAAAAACGAAGTTTCACTCGCGAAACATTTTTTTTATCTTTTTTCGAAAATTTAATACATTTTTTTGCAATTTTTTAATATCAATCCGTTCTCACATTTTTTGGTAAAAATATGAGGAAAATGCATACATTTTGGATTTTTTCAGAATATCTGTTTACCATTATTCTGCTTCTCCACAGTAAATACTTTAGGTGCTCCTTCTCGTGCACTTCTACTTCCAAATTAACATCGTCACCAACTGTCCCAATAACATCTTCCTCGACAATTTCCTCAACAATTGCTCCATCAGGAGCCATATGCAAATGCATTTCTCGATTATCCATTTCTTCTCCAGCCATTATTTCGTTAAACTCCAAACGTGTGATTCACTATTTGCAAGAGACGATGTTCGCTTTTTTCGAAGAGCATTTTGAAGAGCAAATCGAATGTCTCGTTGTCGGTTGCTGAGCCAAATGAGTTCTTTGCAATACGGAAGTGAGCCTCGGCTGTTTCGACTTGTTCAACGCGCCATTCCAGATGGTGATAGAGGCTGGAACTATTACTCAGAAATTTCAGATTTTGTTTCGTAACCAAATGTGGGAGCTGGGAAATTCGCGTTTTCGACGAAAAAATAGCCTTTCAAAAGATTATTTTCAGATATGTTTAAAAAAATTGAAAACGACGAAATTAGACCTAGTAAAAATTGGATTTTCAGGCATATACACGGGCGTTTGATTACGTGGCCGTGAAAAACGGAGAAACTCGGCCGCGTAGAAACAAAACCGAAAATTGCAGAAAATCCAGGAATTATTTTTAATGACTCCGAAATTTCTATCCCCGATTCCGAATTATATATATGAAAGAATATATACTTCTGAAAAATTCAAAAAACCTTTGCTCACGCCACTAATTTGCTGAAGAGCCCAAAATTTTTACGATCCTGCTATTTCGGCTTTCTATCCGGCAGCTGAATCTGTTGCTGGACGTGGATGATGATGGTTGCTGAATCTGCTTCCGTCTGTGAAACCTTAAGCTCTCACTCGTCGAGCATCTCCTCAAGATGTTTCACATTTTTCTTTGATCCTCCTTCTGAAGCTTCTGCTGAAGCTCCAGCCGTGTCAGTCGTCCAATCATCCACAAAATCACCCGCCGCCGCCGAAACAATCATCATTCTTCAACTGGATCATGATCACCTCTCAGCATCCCGAAAACAATGAGTCGCCACAATCTCACGACGTCGGACATAATAGAGCCTTCGTGTTCTCCTGAATCCTATACTTCTCCAACATCACTTTAGCCACCTCGGCAGGGCCTTTCTCGCGTGCAGCCGGAGCACATCCTCCCGAAAGTGGGGTGGAAGACGTTGAAGTGAGTATTCTTGAGCGGAGCTCATCGTCTGTGGTTAACCGGAGCCGGCATATCGCCGGGCTCTCAACTGTACGATTAAATGAGCTCATTGCCGATTTGATGGCCATTCTGCAATGTCTCACGTAACGTCACCTTCTTGCGAAGGACAACGTGGAAGGGCAGTACGTGAAGCTGGAATTCGATGAGATCCGAACTATGGGATGATGGTGTCTTCCAGATGTAGTTGACCTTCTCGATTCAGTGCGAGCGCTTGTTTCGCAGATTTTGGACGTTTTGTGATGCCGTCTGAAAAACAGAGAAAAAATTGAATTTGGAGCATCTTGAATTTGGGTCCTTTTTTACTTTCCTACGGAACGTCCCACTTTATTTTTCGTGGTTTTTTTTCTGAATTTTGGATTACAGGGAATATCTCTCCAAACCAAGTACAGGGAATACCAAACTGTGTGGGCCGTCGCAGGAAGACTTCTCTACACTTATAAATTGTTTTACCTGTAGGCACATAAAGGAAAAGAGCAGAGCCTGCATCTTTGTATCTTCGATAAATTCGAGTTAAAAGTTCTTTTGTCTCTATTCATTTGTCATATTTTCCAATGTTTTAAAAACATTTTTTCTAAACTTTACAGTAATTTCGAGCGGGCTATTTTCACTATCAACTTTTTGACGCGTTTTTAATTCTTCATTTCAACCTCAATTTGTGCAAACTTTTCAAATTTCCATATAATAGGGCCGATTTGAAATTTTCATAATTTACACCAATATATTCAATCTTTAACCTCATTTTTTTCACAGAAATTCCCAACATTTTCACATATTTTTCATGACAAATTTGTATTTCAATGTTTTCCAAACTTACGAGGAATGGTGCTTGCCAGATATTCTCTGACCACGGAACCATCACACGTCAAATTTCTTGCATCAACCTCGAGCCCATCAATAAAGAAAACGAATGCGGCTTTGCCAGTTGTGGCTGCCGGAAGAGCCGGTACTCGATTGTGGCATAGGGACTCACTGCAAAAAAAGCATCGTTTTTTATAGAAATGGATCGATGTTTGTGTATAACTTTATCGATTTGCTAGAATATTATCGATTAGTTTCCGAAAAAAAATTTTAAAACAACCGTAAAACTGTATTTCTATTTTTATTTTTTTAAAGATAGACTTCCAGATCATATTTGTTTTGAAAATTTATAAAAAATTATCGATTTCTCTATGGAAAAATATCGGCTATTCTCGAAACTTGTGGATTTCCCTAGAGAGTTATCGATTTCTTCAAGGAAAAAATTATCGAATGTTCTAGAAGTTGTGCAAATTTTTCATAAAATTATCGACTATCTTTTACTGAAATATATAGACTTTTCGCCCAAAAAGTACGTACATCAAAGAAGGCTTATTGACAAGAGAGTAATTGTCGATTCCTATCATTCCAGAACTCCATATCCAACAGCTGAAGATACAAACTACCATCATTGGCGGCTTGTGCTGGCACAGCAAACGGGCATTCTTTCTCGCATTCCGCCATATCCGACACATCATTATCATACGATATCATGTATCTGCGTTGGCTAGGGAAAAATGGATCCTCATTTACACGCGTTGAGCACACACTTTGTGAGCCTGCGAGAGCTCAATGAGAACCTATGGTTTTGTGGCTCGTTTCGCGATTCGCAAATATCCGCCATGCATTCGTGGTAGCTCGCCTTCCTGATTATAGTCGTACATGATGCGCGCATGGCTTCACCACGAGCCGTGATTCGGTTTCCATATGTGATTGATTTTTTTGCGTAGTCGTGGCGCACGTGGATTGTTATGGAATACAGGAATACCAAGTGGAATGTTGGCACGTTTTGAAGTTGGGCCCATGTTGTGGGCCTTTGGTCTGTGAGGGCTTTGGGATATTATTACGGGAGGCATAAAATTCTGAGAATGCGCATTGCACAGCATAGCCCATAGACCAGATCCGTAAATCAACACAAGCCCAACAGTAGTTATTTAATAAATTACTGTAGTTTTTGCTGCGAGATATTCTGCAACGCGTCAAATGTGTTGCGAAATACGAATGCTCAGACGTAATTTTTCCTAAAGCTCGTCTATTTTTGTTTCATTCAGGGTTACTAAAAAAAAACCTGTTTTTAAAGCTTCTACATGTTTAAAAAGTTTTGAGAATTTAATACACTTTTTTTAATAGAAATTTGGCAGATATTTTCATCACCTCATCGACGATTATTCTTTTTGAACAATTTTCGATTTTTATGGGAATATATTTATATTCCAAGAAGATTAACTTTTTTTCAAGAAATATGAAAATTTATCGATTTTTCAAAAGAGATTAATTTATCAAAAAAAGAATAACTTTTCCAGAAAATATTTGTTATTTTCTTAGAAATTAAAAAAAAATTGTTAAATCGCTACGAATTTTGTGTCAATTTTTCAAAAAAAAAAAAGAGGCATCGAGAATATCCCATTTTTTTCGAAAAAAATTTTTTGGTTATCGATTTTTCTTTTTTTAGATAAAACGTCTCGTATATACTTTTTTAAAGATGTTTTTTCACCAACAAATTTTGATATTAAAAAGTTGGAATTTTATTACTAAATTATGGAAAACGTTTTCGATTTTTAGAAAATCGGAATTGAAAGTGGGCGCAAAAAATTTAATTTTTTAAGAAATTATAAAATAGAGATTATGCTCATTTTGGTATGGAGAGCGTCGATTTCCATCGGGCAAGATTTTTTTGGTTGTTTTCCCTCCATGTAACACCTGAAACTCGAGTGATCCCATGCTCATCACAAATCACAAGCTCCGACTTTGCGAATTTTCGTCCCCGATAGCACGTCGGATTCTGTTCATTTACATTATTAGACCATGGCGAGAAGTCGTCACGATTGATGTCCGTGTGGAAAGAGGGCTGGCGACGAAGAATGCGTACGCACGAGAGTTACGAAGTGCAGTACATTGTAAGGTGCCGGCTTCGCGTAGTCAAGCTCAGCAGACCACGTTCTTCGCTGGAAATATGATGACTATTTCGAAACATTTTTCGAGGAAAATGGATAGAAAAAACGAAAAATTCAATTTATTTCAAAGTTCGCTTATTGTTGATGAAAACATTATTACGGGAACACAAAATACTGAGAATGCGTATTGTGCAAAGTTTCTCGCGAAAAGTGTACTACAGTTAGGTGTTTCTTCAAATGACTACTGTACCTATCCTTGCGATTTACGGGAATAATTTATCAATCGATAAAACAGTCATTTTTAGAATTACCGTAGTCCTCGCCACGAGATATTATGCGCGTCAAGTATGATGCACGCATTCTCCAAATTTTGTGTTCCGTAATAAAGTAAAATAATGTTGTTAGATAAATATTCAGGGTCTCAACAAAATTTAATCTATGTTATCAGTGTTCATGTTTTTAGAGTGGAAAAGTTTTTTTTCAGAAAACAGTCAGAAATGTAGATTGTGTTGCATATTTAAAAAAATCATTTAAAAAATATGAACATTTTTTTGAAAAATCAAATTTCTCCAGATTGTATTACGCCATTAAAGGTCTCGGCACCATTTTGTTTCAATTTTTTGAAAGTTTTTGAAGTAGAAATATTTTTTTTATGAAAATTTTCCGTCGTTAGAATTTCGTTGAAAATTCGCTAATAAACGGGGAGTAAAAAAAACGAAATTTTCCAATTTTTCGAAAAACAAAATCGAAAAATTCCTCCCAAACTTACACATGGTATTAGCAATCCACTCCAACATGGCCTCAAACGTGCTGGCGACCCTCATTATGTCTAACAGTCAAGCACACTAAATATGTCCCGTTTCCAATTGCCGGGGATTCTCAAAATAGGGCGCCGGGTTCTCCTGCGGCTAGCGGATCATCGTCAAACTCCAAATCGTAGCCAATGTTGAGCACATCCTCTTGAGACATATCCAACAAATCATCGTCTAGCAGATGTTCCCTGAGCGTCTTCAGCAATCGAAACATCTTGCATTAACTGATGTTGCTGCTGCTGGTGCTGATGGGGTTGAAGCTGGATCTGATCTAGGGAATCATTGTGATGTCCCGGATGACTTCTTCTTCCACGACTTCCAAATCTTCTACATCTAGTTAAATTGTTCTTCATAATTCGGTGCGGCAGATGATGTAGATGGATCTTGTGATGTATCAAACTTCTTCATGGATGATCGTTGATCCATTTCGATCATCTAACACCTCTTGATGTCCAGGTGTTCCAGGGTCTGGTTTAACAAACGGACACGGAACCGAACCATCTATCACAGCTATTCATATATATAACACACATTTCCGATCGTAATCGTTTGCGTTGAATATAAATGAGACGCTTCCGAAGACGGGGGCATCTCGGCAGGACGGACATTGTTTCGACGAGACACAACTGTGTATTTAGAGTGCCAGCCCCGCCAGCCGTGTCTTTTGCCATTCGGAACTGGCCGTTGTCGTCTTGGACGATGGCGAGCTGTGCGGACGCGGGTGACGGACCTTCCGAGGCAGCTGAAATTAATCAACCTACGGCACTCTGTACATCTCCGGCACCACGTTTTCAGATCTACCCTCAAAACAAGATCTACTATTTGGAGATCTACGAAACCACTACTTTTCAAGAAATGGTACCATTCGAATTGCATCGCAGTATTCTCTAAGAACAACAAATCCAGAATGATGACCGCCCATTGTGCTCCGATGTCGGGTGTTGTTTAGCGTTTAGAAAAATCTTTTTTGAAAGAAAAACTTCAGCCGAGAGAACGATAAACAACGCACGATGAGTAATATGGAAGAGTTTTTGTTTCGTTGTTAGGAACACTGAAAGAGCTAGATCCTGAAAACGTATATCTTGTTTTGGTAGATCTTATTTTCGTAGATCTTGTTGTAGAACCGGCCAGATCTCGAAAACGTGATGCCTAATCTTCTGCAGTTGGCGAATTTTCACATATTTCAAGCTAACATATTTTTTCTTAAGCTTGTCCATCGATTTCTTCGTTTTCACGATTTTTTTCAGAGAAAATATAGAAAATCGATAAATTTGACGTTAAATTTTCGATTGAAAAAATGGAAAAATTACAGGAAAGTATTGATGGAGATTTAAACTTTCTAAACAATCGAAAATTATCCTTTTTCTTCTTTTGGAAATTTTTTTTTGGATTTTTCCCAAAATGGGGGATTTGAAATCAAAAAGCGTTAAAAACAAATACTTTTCTTTTAAAATTACCGGAAATTATTTTAGAAAATTTCCTAAAAACGTCAATAAATTAAAAAATCGAACAAGAGAAAGAGTTATTAAATTAAACAAAAACAATTTCACAAAAGTCGATAGCTATTGATTTTTCATCATAATTCCCTAAAAGTCGAAATTTTTAAACCTTCTGATAAATTCTTTTTTTGTTAAAAATAGAACTTTCGATTGATGAGAGAGACGTTTAAAACTTTAATAACTTCCTGTAATTTGTCCTATTTTTAATCGAAAATTTACAATTTTAATTTATTCATTTAAAAAAATCAAAAAACGAAGAAATTGTCCGTTTTTCTGGAAAAATTAATTCTTCGGCTCGAAATTTCGATGATTTGTTTTTAGAAAAAAATATGTAAAAAATTATAGAATTTCAAATAAAACACTGTTTTTTTTCTTTTGATCTTGAAATAGTAGAGCCCGAATTTCTTCCATAATCCAATTGTTCACTCAAAATTTGAAATTTTCGCATGACAAAATAACTTACGATTAACAGTCAACACGGGACCGTCCCTGATCGCCAGTATGATTAATCTTACGCTTATTTCAACAAAATTCGCCGGCCACAAAGTGCACAAAAACGCCGGTTGTCGGAATACGTGGCGGTAGGTACGGTGGCCATTCGGCGATTCAGACAATTCGATTGGCTCAGCAGCTCGGGCTCATTCACCAAATATCGGAACGGGAGACGCCTCTTGTTGTGGGTGCCGACCCAACCTCGAGTATGCAAGTTTTACGCGAAGAAACAATGCACCATCCTTCCACTATCTCGTCTTCGAACTGGGAATGTTTTTTTGATGAGAGAAGTTAAAATAGTAATCTTTAAATATCAGTTTGAATTCGCCGCATTTCAGTTGTGCACCTTTCGTGTATATTTACGATATGTTTAATCTTTTTCAGATGCTGATTTCCGATCTTTAACGGGTTTCCTTGATTTTCGTCGGTTTTTTTTGGATATGTGTTTTTGAGGTCGATTAATGAACCATTTTATTATCAGAAAGCTAGCAAAATGTTAAATACTGGACAGAAAATCCATATGCCACATGCTTTTCTCGACTGAAAACCGGAAATGTTGCTAGTTTTTGATAATAAAATGTTAAATTAACACATTTTCAAAAAAAAAAACAATTCTACAAAAACCGGTGCGACGAAAATTCAAGAATCGTTGCATAAACGGAAATCAAGACCCGATAAAGATTAAGCATTTCGTAACACCGAATTTGGTAAAACGACCACATGGCATCTCTAGCCCGAAAATTCGAAATTCTTCCAGCTGAAATGTCCATTAAATCAGGGAATTTTTCTGAATATTTCACTTAGATTAGGGATCAGGAAAAAATTTGGAGTTATAATAAAAAAAGTTACTAAGCAAAACGTTTTAGCAATTTAGGTTCTAATAGGCTTTACAAATATCAAAAAGTCCAGATTTTTCAATATATATATTTTTAGAGCCACAGATTTTTTGCTGTTTTTCAGCATTCTCGGAAGAACATACCGGTGTGGATCCGGGATCATCCAGATCTAACGAGACGTGCGGATCAGTTGGATCGACCATCGCATGTCTTAAATAGTCGTTTCCGTGCGGATAGTTTTACGATTGGAATTTCACCGGGACACGTGTAGTCGTAGAGAATGAGCACGTTTCCTTAGATTTGGCCATCGCCAATGGGAGAGGTTCCCTAGAAAATCTGGAAAAAATTTTGTGAATGGATTTTTTCGTTCTGAAGCATTTTTCTTGAAATTTGAAGGAAGACGGGTTTTGCATAGACTCAAAATTAACCCTTTAGAAAATTGTTACGTTGGCTCAAAATATCGAGAATAAAACAATTTTTTTCTAAAATTTCGAAAAAATTGGCATAATGGCGGAAAATGTAATTTTATTTGATTATTGTACTCGCCTTTTTCAGTTCATTTTGGGTTAAGCATTTTTGGCCCATAGGCTTAAAATTAAACTTAAACATTTAAAAAACGAAATAAGATATCTGCACAAAGCCAGTTATGGCCACTATGAACTAAAAAAAACATTTAAAAAAAACAACTTTTTTTTGAATATTCACACTTTCTTAAACTGATAATAAACCTTTTTTCTCAATCTTAACAGTCTCGGCAGCCACGCGCTGTACTCGGTGAGATGAAGTCGGCGATACGTGGATCCTTGTCCGATTGGAGCCGTCCGTTGAGACGAGCAACCGGATGACGTCGGACATTCGGTTTGATGACTGGATCAGTGTTGCCTACGTCGCCGCCAGTAGAGCTCGATAGCTTCAGATCGTCATTCGAGACGTCTTTATCGACATGATTTTGGAGCCGTCCACATGCGAAACAGGCTTTGTGTGGAACAAGTGGTGGGAGACGGGGTTTGTCCAGAAGCCAACCTCCTCCGCGACTAAAAATGGGGACCGTTGATTTTAGTTTTTTTTTTCTGGATTTTTCGGACAATAGCATTTTGACCATTTTCTTTATTTTTAGAAGTTATTTTTCTATATTTTTTCTCTAAGAACTATTGTAAAAAATAGTTCAATTTTTTTGAGGTTCTGGCGACAAAAATTTATTTTATCGAAAAAAATTTTTTTTTTTTAAAACAAGATATAGATTTATCACTGAAAATTACTAATTTCCAGTGCAAAAAATTTTTTTGCCTATTCTGGTAGCTGCCTGATTTTTGATATATATTCCAACACAATAAAGTTGCTGAAATTTTCTCCTTTTTTCACTGTCTCCGTACATCATTGCAATTTCGGTCTGTTCGCGTTGGTTAGCAGCTCATTTATTCGTTCATTTCTGTGAAGGTACGCCAGGCAGCCTGAATTGTGGCGTAGCAATCACCGTTTTTCGTCGAATTTCACCTTCATCTTCGAACTGCAAATAGACAATCATTGAAGAAAAAAAACGTTAAAATCCGACTTTCTCGATGATTTTTATGATTTTTAACTGAAATATTGATTTTTCGGCATTTTCTGAAGCAGATTTTGATTAAAATTTGAAGGTTTTTTTTCGTCTCCCGTAGGCTCAAAAAACGCCCTTTTTATGGCGGCTCAAACGCAAATATTAAGTAATATTCGAATACAAAAGTTCATAAATTTAGGACCCCTGCGGGGACATTAGACTTCAGATCTAAAACTAACCGATTTTGAATATTTTGAGCCAAGTTTGGCCAAATAGGCATTAAATTCACTCCAGATGACTAACACGTGAAAAAAGTTAAAATTAGGTAAATAAGACAAAAACAGAAAAAAAATAACTTGAAGCGAAACTGGAGCCCATTTTTGGAGACAATTCTCATTACAAAATTGGTTTTTTGGGAACATTTTTTATTCAAGTTATTTCGGACATTTTTTTTCGAAGAATTCCCATAAAACTTCGAAGCTTTTTCGGCATGTAAGCCCCTACCAATTTCACGCAATCTGGTACTGCCTTTCAGCAAGACCCAAGTTTACTGATAACTCTCCTTGAACTCGGAACATTTTCGACGGTGTCGCCGCCGCTGGATTTATAATTCTTCGCATTCTTCTACCATCGTCGATATACGACCCATCCGTATCCATTGGGCAAGCTTGCGTGTTCGGACACGTCGCTGTTTGCTGGGCCTGGAAAATTTCGATTTTAAAGTTTTTTAAAATAAATAATCCCCTACAAATTAATTTCCAAATGCGGCGGTTGCCAATCCATAAACCCGTCGTCCTCGTCCTCATCATCACCGAACGGGTCCATTTGTATGCGATCGCTCGTCTCGATATCTCGAGGGGAAAGGTTTAAATAGGCGGCTCATCCTCTACGATGACCTCCGTCTCTGCTCACGTGTACATCGTGTCGTCGCCGGCGAAGATCGGCTCTCCGAGCTCTCCGGCGGTGAGCTCCTCGAAATGTGGCGCTGGCTTTTAAGCTCTTTTTCACGTTGCGAACCGTACTTCCCTACGTCCTGCGTTTTGGAGCTGCGATCGAGCTCGTCTTGTGGATGCAGAGGCGAGCGCTTCTTCCTTTGGGTTGCCCAACTCGTAGTCTTCATTGTTGTAGAGCACGTGGGGATTTCCGAGCATTTCGACGTGGACGATATTTTGTGGCTGGATCCTGGGGCTCTGCGGCCGCAGGCTCTGGATTTGGCTGGGGCTCTTCGGCCGGCTGGCCAATTGGGGCTCTGTTGTGCACAGGAGAGAGCGCTGTTGATCAACTTGTTCCTGATTTTCTGCCAATTCAATTTTCAGGATTGACATTCTTCTGCAATTTAATAATTGAAAATAAGAATAATTAAGTGGAAAATTAAAAATTAAACAAGCATTAAAATAAATTTGAACAAGTCCAGATTTGTAGTCCGCAACGCACGGACGAACGCATACACCACAACTAAGAGAGACGGGAGGAGGGATGGAGAATTTGAAAGAGATGGCTAGGCGACGAGATAGCCGGAGGATTGAGGAAGGACAAACACACAGATGTGGGTTCTTGCAGCGCTTTCTCTGCGTCACTTCTTTCGACATTTTTCGGTTCAATGGGAAATTTCTACTTTTTCGGAGTTTTTCTTTTTTTTCATCGGAAAACTTCAAAAAATTCAAATGGAAACTAGGAGCTGTACGGACAATGCATAGAATAACACGAAAAATGCACATTTTTAGGCCTTAGGTCACTGTTCCGGCGCGGAAATGCGGATCAATTTCTTTTTGAATTCAAAATAGAGAAACTGGACGTGATGGTTGGTACAAGCGTTTAGTGAAAATGTATCACAAAATAGGAGATCAATTAGATATGTTAATTTATTCGTGGACCAAATGACTATAAAAAATTGCGAAATAAATAAAAGTCGATTAAAAACAATCATATGTCTTCATTGCTTGGCGAGAGTTTCTCGGTATCGGATAAACTTATCTCCTACAAGAGACTTGCGAATAACCAAAATAGTTTAGTAATCTAGACATTGGGTGGGGTGGGCCCAAATATTGAATAAGGGTGAAGAAAGATTATTCAAAATACGTCGCTGAAGTGTTGGCATACAATATTGAGTCGGATAAATGGTAAGAAAGCATCACCACTCAACTCAGATCACAATCTATTTCTCTGAAGAAGAAAGGGACGAATGTAGTAGCTTGCTGAGGGGGGGGAGGGAAGGGCGTGGGGATGGAGGCAATTTCAAATAAATCTGAAAGCAAGTTACAAATACGCACAGCCAAAACGGTGAGGCCGAGACTTGGCAAACCCAGTGATTGCAAGAATTCGATAAAAAGCTACTCGCGGATGTTAAGAGCGAATCATTTGGATCTCGGGGGCAGTAAATTAAAGGGACAAGGCATTTCGAAAAATACACACGTTAGACTGAAAAAAAAAAACCGATGTGATCATTATGGGATGCATCACTGCTTCTTTGGTGGGTCGAGTTGACACTGAGGCGAAGGAATGCGGATTGTACCGCTGCCACCGCCATATCCTTGTCTGTCAGTTGCTACATGCTTGTTGGATACAGATTTGTAGATTCCGTCTGTATAAAGCTGCTTCAACGTTGGTGCCGAGGGCAGATGTTTCTGAAAAATAAAGATATATCAGCGCTATAGATTAGTTTTACTTACCAATAAACCACAATTGATTTCTTTCGGTGCTGTAGATCTTGGCGTCCTCGTCTGTTGAAACTGATTGCACTGTAGCAAATGGCGCAAGTCGCTACCCTTGATTTCCGATCAACATAATAACAATGTTATGATCGGCGTGATCACGAAGCTCCTTCAACTATCGCTCTACATTCTCTTACGTCTAACATGAAGCTTAGTGTCGTAGACTAGGAGAGCTCACAGCCCCACGATAGTAAGCGGATATGATGGCACGGTAACGTTACTTTTCTGTCCAGCAGTATCCCAAATTTGAGCCTTCAATGTCTTGCCTTCTACCTATGACAAAAATAATAATTTGAATCATAACATTAGTGTATGCTACTGAAGTTCCTCACCGAGATGCTTCTCGTGGCAAACTCGACTCCGATTGTTAATTTTGATTCCAAGTTGAACTCATTCTTGTGAAACGAATAGACAGGAGATGTTCATCGACTTTCCGACGGCTGAGTCTCCAATCAGAACAACCGAAACAATTTTTCGTTTGGGAATTGAAAAAAACAAAATTACCGTTGAAACACAATTAGTCGTACTGCATCGTCACGAGAGCCCATCTTCTGCGCTGTAAAATGATAAAGGACTTGTTAAGGTTGAAAGTTATATATTAGGACGATTGTAAAAAAGAAAAAGGGCATTGGTCTCATGATTCATCAGCCGGGCGCAATGTCTTGTTGTAAAATCGATATTGAAAACGAACACTGTTTTATCGGCGGAGCATATTTCTATGTTCTGTTCCCGACACAAACGCGGAGTCAGCAACCGCTATCTCGACGCATGGGATTGAAAAAATAGAAGTGAACTTAATTTAAGAATGATTCAAAGTATATGAGTTGGGAGTTTTATATTGTTATCAATATATGAGGGGGGTGTCACCTTGAAGGAAAATGTGAAAATGTATATAGAAGTGTGTTAGGCTGAAGAGTATTTGAGGCATATCATACCCGAAAAACAGGGAAGGTGAGCGGCCACTTTGTTTGTCGACACGATTTCGAAATAGTTGAACTATTTTTTAACGGGAAGAAGCTTTCTCTGGGTGTTCTTTTTTGATATTTTCAGCTAAAAATTGAAAAAAATAATTAGTTTTATGGCTGTGAACATCCACAACATAAGCTTTTCCGAACGCGAAATGCGTGTGAAACCCAAATAATTGAACGTAACAGGTCCACCGGCGCGGCCACGGCGGTCTGAGGGTACGCGACGCTAGCGCAGCGCAAGGCCGGGTCCCGGCACGACAGACTACCGTATCCCTTTAGCAGCGGCGCAACGGATCGTATCTCAATTACATTTTTTTTTTTTTGAGACTAACGATTTTTCCGTTTTTTCAGAGCAATATTTTTCATTGATTTTCTTAAATTCATCAGAATAAATTTTAGAACCTAATTTCCCGTAATTCTGATACGCGTTTTTAGTTTTCGTGAAGAAAATGCTGATTCGAAAACTGAAATAATTTAGTTTTGAAAACTTGCTCTGAACTCTGTTTCAATATCTTATAATTTGCTTCTTTTCTGAATATTTTGATTTTCCTCAGGTAACCAACCGCCTATACTCCAACGTAAGGTTTTTCTTTAAAATTTATATTAGATTGAAATACATTAGTTTTAGGCCTGATTTTCAAATACTTCAATTTTGATATTTAATTGTTGGTTTTTCAGTTGAAAAGAAAGTGCCACAGGTTCCAGAAACTGTGCTCAAGCGCAGAAAGCAGACGATCCTCGCACCAAGGCTGGTCAACATTATACTAGGTGACCGTCTCTGTAAGTTTATTTAACTGTCTTGAAAGAAAACCGAAAATGTTCTTGCGCTGGTTTTAGGATCCACTATTATCCAAGGCTACCAGCAGTCAAAACTGGAAGCTATAAGATCTTGTTTTGGGTGAGGTGTATTCAATTCAGAATGCGTCTCATGTTTATAACACGATGACAATTCGAAATTTTACAGTTTAAATTGTCTTTTAGGTCCCGTTTGAAAATTAATTTGTACTAATCATGCATTAAAAATAAAATTTTTTACAGAAGAACAAGGGAAGAGAGAATTCTTCAAGCGTGCTGAGAAAAACGTCCAGGAGTACTCTAGAAACGCCCAAAAGGAAGGACTCAGACTCAAGCGCGAGGCTGAGGCCAATGGGTGCGAGACTTCTACGTTCCAGCTGAGAAGGTCGCCGTCGTCAGACTTCGCGGTATCAACCAGCTTCATCCAAAGCCAAGAAAGGTGAAATTATGTTAATGAGTTTTTTAATAACCATTCGTTTTCAGGCTCTCAAGTTCCTCCGTCATAGTCAGATCAACAACGGAGTGTTCGCCAAGCTGAACAAGGCTACTCTTCCACTTCTCCGTATCATCGAGCCATACGTAGCTTGGGGTTATCCAAACAACAAGACCATCCACTATCAGAGTCCTCTACAAGCGCTAATCGGATACGCCAAGGTTGACGGCCACAAAACCGCATATTGCAATCACCGACAACACCATCGTCGAGCAGAGCCTCGGGATAATTTGAAAACGTATGCCTTTTAATTCTTATTTAATTGTTTTCAGGAAAGTTCAACATCATCTGTCTTGAGGATTTGGCCCTGGAACGAGATCGTCCCTACCGTCGGACCACACTTCAAGGAGGCCCACCAACTTCTTGTGGCCCTTCAAGTTCAACAACCCAACTAAGATGGACTAAGAAGACCAACCACGTCATTGAAGGAGGAGACTTCGGAATCAGAGAAGATCAAATCAACAACCTTCTCCGAATAATGGTCTAACTTGTTTGGTGTTCATACCTTCCTCCCGGATAAATCGTTATTGTTTGACGTTGTTTAATTATGTGCATAAATAATCATGAAACGTTATCGTCTTGGCTCGACTCATCTCGGATTTCATGAAGGGTCTCATCATTCAGATGAATTCGTAAAACCGCTTCCCTTGCTGACTACTCTCCCAAGAACAGTCACTGTTCCCTACTATGCTCCATCCTGTTTATTTCTAGAAACTTCGAAGCGATCCTAATTCCCTATGAAGTGAGAGAATTTAGGTTCGTGAATAAACATAGTCCAGATTTAAATCCACGCAATGTCCTCTCTACAATGTACTCCCTCTTGAGCACCTTAACCCATTGATGATGTAGATGGGTATTTCTTCAAAAATTTGATGGAAGGACTTGATTATCTGCTCGCCAAACGATATGGAACAGTTGCCTTAATACTAGAATTATCCTTAGAAAAAGCTTAAATATTCTTCCAGTCTCTGGACTCGGGCCTGACTCCAAAAGAGCGAGCACAGGCTCTCGCATTGCGCACTTTGCTCGACGTGCTTGGATGCTTACACGCGAGGCCAACTACGGATTTCATGTGGCTGCGCGATTAAGAATAGACTTCGGGCTTGGTCAGCTCTATTTTTGGAGGAATTGGGTTGTACCCAGATGCAGAAACGGGTAGATTATTGATATTTTATGGAAAAATCGATAAAATATTGATTTTTTACTGGAACAAATAGATCAAAAATCGGTTTTATTTTCCTCGGAAAGTCAATGCCGCTGTCTGAAATTAGTAGTTTCTTGTTGATACAAGTTCGATAAAACTGGTTTTTCAGAAGCAAAATCGATATAGTAAGCCAAAATGACCAAAAATTATCAATTTTCCTATAATATTTACCTTGGTTAGATTATCGATTTTTAAGGCAATAAAGTCGATATTTCACAATTTTTTATTTTTTTTTGGCTTTCCAGCGCGCAAACTGTGCCAAGATCTAAATTTTCCGAAATTTTCATTTCTGACACGCCGCCGAGTGCGAGGCTACGGAATATCCGGAAAATCGGCATGCGAGAAAGGAGGTCGCCTGCCGAACAAACTGAAGCTGTTGGAGGCGGCCTCCCTGACTTTTGGCTCGAAAAATACTTTTTCGATGTCAATGCACCGTCTTTGGTAGGTGGCAGCCAAAAAACTCGTCGGAGCCAAGACTAGGTTTCAGCTCGACTGCAAGGCGTTCGCCGTGATGGCTCAAATATACACCACTGCAGAACGAGGCCCGCGTAAAACAATTCATCCCGAAACGATCTCCAAATTTGTTCGGTGGCCTTGAGTTTTCTAAGCCACGAGAGTTGAAAAGTTCTATAATAGGGCATTTGGTTTCAGATGACATTAGTGACGGGCACACATGAATCCAGAGGAATTCTGGTCGGATTGGTGTATCACGTCGGAGGATTGAATTTCGTGGAAAATGCTAATTGGTTTAATGTAATATGATTTTGCTTCGTGGATTTTAACCTATGCACGAATAAAATTTATATTCTAATTTTAAAAAAATTTCAAACCAAAGAATTTTGAGTCTTACGTGACAATTGAAGGGTATTGCAATATGGGCATAAAAAATATATTCCCTAATTTTCGAACTTGCTCAGTCTTGGTTGCGCAGGAAATTTTTTTGCAGTTCTTGTTTGGGCCTCGGAGCTTGCGCAGATGCATAATATTTGACGCGCAGAGTTTTAATTGAAGTTTGAGCTTGAATTGAGTTATTGAATTTTAATTAAATAAAGCGAATTCTAGATAAAATGATGTGTTTATTGCAAACTAGATCGTGAACCTACAAAACAAAGACTTTACGCGCAAATTTCCGAAATTTTCAAGAAAAACCAGTGGAGGCAGAATTTCAAATGATACTTGTTCCTCTTCTATTTCTTCTACCAATTTTGTTGTGCGGTGGGAATAAGAAAAAAGCGAACAAAAATGATGTAAAAGGCGTCGAAAGTAAACCCACTGGTTCCACCGTCGACCTCTACAGACCTGCTGAAGACTAAAGAGAAGGAGAAATGAAAAAAGAAGAAGCTCCGGGAGCACGACGCCCCGACTCAGCCGAAAAGTCCTCCGAAACCAGTGGTCCAGGACACGAGAACTTGGTTAAGTGCTGCCTAAAAGTGAGAAGGAAGACGAAATGAAGAAGGGAATTCAGTTGCGAATCCGCCGAAAAATTTGGTGGGTCTCACTGCGATACATTGAGTGTTTTATCGATTTTCTCTGAAATAATTGATTTTTTCTGTAAAATTTTTGACCGCGAGATTTGCGAGTTTTCTGAATTTTCAAATATGTCGATTTTTCAGAAATGCGAAAGTGAAATTTCTCAAAGGAAAAGCCGGCGGCTGACAAAGAAGGACGAGAAAAAAGAAGCAAGATGGCCATAAGGAAGAGTCGAAAAGAGGGAAAGGAGAATAAAAAGGAAAATGACCAAATTCTGTGAAAAATTTCGATAAATTGGTTCCTGAAGAAGTCATTGTTCATTGTCGCTTTTTCAGAATTCCTCGAAATTTAATTGGGCGTCATGCTTCATATGTTGCATTGAGTCCAGAGACTTTCAAAGTTCACGCGCAGCAGACATTTTAGCACGCGCTGCAGTGAAATTCCTCTTGGTGAAGATCTTGATTTTTTCCCGCCTTTTTTGAAAATTTTCGAGGCGTTGGTCGAGCCGAGTACATGTGAAGACGGAATGTCAAATCACAAATACATCACATTTGACGCGCAAAAAATTCGTTTTGAAAATATGCGCGTCGAATAGGGTGCATTGAGTACGCGGAGCCAATACTAATCACACTTTCTTATCGTGGAAAATGGAGCGAAATTTGATTTTTTGATATTTAAATATTCGGGAACAGAAAATTCGGAGAATGCGTATTTTGAAACATAATTGACGCGCAAAATACCTTCTCGTACAAAGCGAAAACTACAGTAATTCTTTAAATGACTACAGTAGCACATGTGTCGCCGATTGGGCGTGATTTTTATTCCATTTTCTTCAGTTTTTCTTGACATTATTGTGTTTTATTTTAATATTTTTACCGATTAATAAATGATTTCCGCAAGATAAATCGAGCTCACAAACGCTACAATTGTGTCATTTAAAGAACTGTAGTCTCCGCTGCGAGATATTTTGCGCGTCAAATATGTTGTGCAATACGCATGAATTTTGTGGGCACGTAATATTTGAGCGGCTGTTAGATAAAGATCAAAAAATTCAAAAAAAAAAAAGATGTCAGAAATCAAAAATTTTTTATTGACGCAATGCACAAAGTCTCCTGTTTCCCTTTTCCCCAAAGTTTTAAACTAATAATAAAATTTTTTAATTGTCCAATCCGACCAGTTTAATACGAAACAAAACGGACAAAAGATTCCACAATTCCGATTACGGCTCAACACTTTCACTCAAGGAATTCTCTACGCTTAGATTTTGATCTTAATGGAAAACTGGTAGAACTTGGTATAAAACTACACAAAACTGGCAGAAAGAGTACTCCTTCCAAGACAAATAAAGTCCCTAATCGAGGAAGATCACTTGGAGCATATTCTGCCGCAACGCGTTTCTGCGCCGTCCCTCTCCAACTCGTGTATTGCGATTGTGGTGTTAACACTAACAATTGCCTATCAGGCACTGTAGTGGTATTCATATAATTCACTCAAATTTGCTTAACGATGCCCATTTTTGCCACCTGGTAATTTTTTTTAAAAAATTCAGAAATTTTGATTTGGATATATTCAAATAAAAAAAAAGTCTAAATTTATTTGCAATCGTTTGAGATTTGACATACATTCCAAATCCTACTCTTCGCAATTTTTTAGTCAACTCAACCTCAAAACCTTAAAAAAAAACCGCAAACCTGTCATGGCGCATTACGTCGATGTTATCCCTACGATAAATCTTCTGTTTTCGAAGGGTTTTTCATTTTCCAATTTTTATCACCAAGGAAAATGTATACACCAAAAAATTATATAGAATGTGACGTGTAAATTGGCAAAAAACTAATAACTTGCGCTTAGCTTTAAATCACTGCATTGCCTCTGCGGACTCAACACACCCGATCTGAAATTTCAGGAACTTATCGATTTTTGCCTAAAATTTTGCTGCATGGCTGCATCGATTAAATATTAAAAAAAAAAGCTGTTGAAAATGATCGATTTTTTTGAACACGAAAAATTTGTGGAAAATATGAAATAAAAAAAAACATTGTGCATCGAAAAACTTACAGGCTCGATACCGTGAGCTCTGGACAGAACAAAACTGAAGATGGCTCGGAGTCGCGGCCGGGACGAGTAGCTCGTGGCCCGAACCAAGCGAGAGGTTAAAGGCACATGGCTCCTCGGACAGTCCAGACCGATGAAGCAGAAATCGACGACAGAACAATACGCCGAGGCCGCTGGCGGAGGCGGTGGAGCAATACCGAGTGTAGACGGGGCAGGTGAAGGACCACCGGGTGATGGTAGGTTTTTAGATTTGCGAAGCTATCGTGGTTTATTGGTTTAGTTTTACAGACGGGGTCGACGGAACGGAAGGAAAAGACGGTGCACCTGGAACCGATGAAAAAGAGTCAGGTACCACAAAGACCCGGCGACGGAGGTAATCAACAGGTACCATCTGATGCATTTGAAGCATGCACACGTGAATGACCACCAGGACCGCCTGAACCAACCGCCCGGAGACAAAATCTCGAGGCTACCCTGGAGAAATCTGGGAAGAGCCAGGCACCCGAAGCGCCGGACCGAAAGGAAATGCTGGACCGTAAGTGGAACTACAGAATCGATTCAGTCTGCGGTAAAAAATCATTTTAGGATAAAAATCGATAATTTTCATTTTCGTTTTCCTCCATTAATTTATGTTAACTTTCTAGAGTTGGACCAGGTCCACCCTATCCAGGACGACCTAGAGAAACCGGAGATCACGGAAAGACGATCGCCGGAGAGGCGCCACCTGGACCACCAGACGACAGAGGAAGGAGAAAGTCCACAAGGACCACCGGGACCATCAGGGCCACGTGGAAAGAACGGAGTCGATGGAGAGAAGGGTACGAGATCAAGGTAATCCGGGACCATATGGAAAACCTGGGCAACCGGGAGCTCCAGGACCCGATGGCTCTGGTGGTGAGAAGGGAGGTTGCGATCATTGCCCACCGCCAAGAACTCCACCTGGTTATTAAAGATTCTTCGATTAGTTGATATTTTATTTTATTTGATCATGGCGTTATTCATTTTATCCTTCGGTGAAATTTCTTTTGTTGCACTATGATAATAAAATTCTCTTGCCAGTAGTTCCAAGTGCCCCAACATATTTTGGAGTCCTTTATGTAGATCCCTCTCGTCGAAAGCTGGAAGATTTCACAATAAATCTTTCAGAAAAATCGAATGAAATTTTAGAAAAAAAAACATCAAATTTTTGACGAACTGCATAATCAGTCAATATTCTATAAAAAAAAATACGATCGCACAATAATAAACAACGACGCGGAACGACACAGTCCGCGGTTACTGAGCTCCGCCCACGATTTCATTTGCACTGCGTTGAGTCGGCCGTGTTGTTATTCAAGAGTGAATATACTGGTTAAGTTTAAAAAGTTGGGTGTTTAGTGTTGAAGAAAATAATTTTTTTATTTTGAATAAAGCACAATTGGCAGCTGAAACTGGATTAAATCCAGACAAATTTTGAACCGTGGTTGTTGATGCATTGAGTTTATATTGTTAGTCAAATGTATGAACTTGTAAAGTGCTTGTAAATGTAAGTTGCTTGTTCGCTCATTCTGAAACAAAATTTAAATTAAATAAAAGTTCACGCGTTGATACAAAAAAGCCAAACTTACTGATTGCAATAAAAATAATCATTCATAATAGTTTTTAACAAACAACAATCCAATGCGATCAAAAGTTCGGAAGGTGATTTACAACCAGAGGACACCCAATCCAGAGAAGATAAAGAGACGACTGCTACGTATAGTGAGGATACAAAGCCACGTAAATAGACCGAAGTAGTCCTACTTTAAAATAACAGTAACCCAGCTGCCTAAATATCATAATAAAACTTGCAAAAAAATGATGTAAAATTTTAGTTTTTAGACTTTTGAACTGGTAGAAGCTGTGTTAGCGCCACTTTTTGACCACGTCTAAATAGAAAAATTTCCCATTGTAAAAGAGTTGTATTATGATACACTGCGTGGCGTGTAAAATACCGAAAAATAAAAGCGCGGTTTTTTTTTTCGTAAAATCACAGGGAAAAATCCGTAATCCCGGAACTCCAATCAGCCGCCAACATCCCACGGGCCCAATAACTTCTGGGTTTTCAACAATCTCATTTACTCCAATTCCCGAAACCCAATGGGAAGGAGAGCTAAACGCGGAACGGGACTGCCAAGACCCCACGCTATCCAGTTAGTCGTCCGACCAACGCCTCTCACACCAGCCATCACGCCATGCGAAGCACCACCACTACCACCTCCACCAAACCCTCTAGCGATAATAACAACTTGAAACGATTGAAAGTCAAAATCAACTGATTGAAGTGCCCAGCGATGAAGTAGGCCGAGTAGATTAATATAGACAATTTTCTTTCATTTCATGGGAAGGAACGAGTGTGAGGCGATGTTGAGCAAGCATGAAGACGATTCGAATGACGGAAATTAGGAAGAGGCAGGTCGCGTATGTGATTAGTATCAAGCATGGAAGTATCAAAATATTCACGTGTGTAACGGACCAAGACGGTGGGAGTTGTTTGGTATTATCATTTAGTTTCGTTTCAAATCAGACCGAGATACATACATTGAAGTTCAAATTTAGAACATGTTGCATCGCAATGTTGTAGTTCATTGTGCTCCCTGAAGCATTTTGCGGACACCACGAATTACATAGAAAATAAATATTTTAACCTATGGTGGGCGGCAAATTGACAAATTGCCGATTTGCTGAATTTGCCAAAAATTTTCGGAAAATTGTATTGTTGCACATTTTTTTTAAATTTCAAAATTTCGCAAATTTTATCGGCAAAATTGTACGCATCAACCCTATTTTCTACATCTGTTCCGAAAAGTAATTATATGAAAATATCTTAAGAAAAGGGGAAAAAATTCGAAAAGGCACAGTTTTCAGTGTTTGCGTCTTGTACAAAAAAAATCTCGAAAAACTTTCGGCCAGCAAACCGCCAAATTGCCGGAAAGGTCTTATAGTTTCAGCTAGCAGTTCGAATCGGCAAACCGGCTATTTGCCGAATTGCCGCAGTAGCCTCTCACCCCTGATGCTTTTGAACATGGTGCATTGCATCACCCTCGACTTGGAAAGTTTATATCGGTAGATATTTGCAGAAGATGTAATTTAATGATATTGTTCAGAAAAAGCTCTGGACCAACAAGTACGCCTTCAAATCCATCTGTGAGCTTATTGCCTATCACAAGCGAAATCACAAGCAGATTTATGATGACGTTGATCTGTGGCCTCGGGCACGACATGGATGGCAGCTGAACAACGGGCAGGTCACATTGATTAAGAGCGAAGTTGGGAGAGGGACAGTTTGGAGAAGTGCACAAAGGATTGAAGACATCTTGCAGCCCCGGTCACTGTTGCCGTGAAGACCTTGCACCAGAGGAAGGCGGCCATCTATCCGCCAATGAGAAGATCTTGTTCCTAAGAGAGGCCAATGTGATGCTCACCCTGCACGGTCTAATGCTACCTGTTTCAAGTTGAACTAAACTAAAATTCATTCCAAATGTGATAAAATTGTTCTCTACGGAGTATGCTCCATGAAGGAGCCCATAACATGATTTGGTCATGGAGTTTTGCGACGAGAATTTGAATCCCCCTGGCAAGGACGCTCTACTCTCCAAGGAAGAAAAAGTGTCAGCTGAGGACAAGATTCTCTACCTTTTCCGCATAACGCCGCCTCCGGTATTGGTTATTTGCACGGAAAGGTTAGTCACAGGGAGCGGCGAGAAATTGTTTGTTGAATTCCAAAAAGATGTTTGTTTTTCAAAATTTCTGAAATGTGTATGAAAAAATAAATTTCAGCTGAAAATACTTTGGATTGGCGGTCAAATGAGTTGCTATAAAGGAGCGAAAGGGAGGATGTCTGCCGGTCAAGTACATGGCTCCGGAGACATTGAAGAAGGGGTTGTACAGTACTGCCTCTGATATTTCTAGGTGAGCCTACGAGCATACATATGACATTGGTAGTGGCGTCGTGGCCTAGAAACCTTATCCGCGTCTGAAGGATAATAACATCACACAAGTCTCTATGATTTCCAGCTACTGCGCTCAAATGTACTAAGTCTACACGGACAGAGACGCCATTCGAAACGTGCGGGCTACGTGGAAATGAGCTCCGAAAAGCGATCATCGGGAAGAGAATCAGCTTGCCCGTTGAGGTAGAGCTACCAGTCTTCATTGCCAACATTTTCGAGCAAAACAAAGCAGGCAGTACGAGACCGAAGATCGCATTAGCTCCAAGCAAATTATTCAGATTTTTAAGGAGGTTTGTGAAGCATTTTATCTGTTTTTTGTTCAAAAAATTTGTTATTTTCCAGGAAGTCGGATTCCATGAAATTGAGACAAGTGGGATACTGCATAAGCTTGTCAATTCTCCCTTCCGAGAATTCACAATAAGGAAAGTAAAGGCGCTGGCAGTGTAATAAATATCTGAAAATCCCCCCACCCCTGAAAATATTTGACTGTATTTTTTAAATCACACAACGCACACAAAAGACAGACAGAAAGCATAAGTACACAGAGAAAATGTTTGAGGTGAGGTGCGGAAGGGAGGCTAGAACCTACTTTACGCCTCCCTAACAAGTTATGACTTTTTGGAATTCAAAATGTCGTTTTTTGCTATTTCACTCATGCGCTTACGTACAAACCTTCCTACCTTGTCTGCCTACCTCCCTCCTATTCTCTTATTGCAGGATTTTTGAATTTTTCTGAATATAAGCGTCTGTCGTACTTGTGCGTCATTTGCAAACAGGCTGTTCTCCGTTTTAGGGGGTGGCAGCACCCACAAAAAAAGACATAGGAAATCGGACGGAGTGATCTACTAGATCAGATGAACATTAGACATCAGTTTGGACCTAAAGTTAAACATTATTAATTCACAATGGATTTTCTTATTGTATTTCTTGATATAGCCCGGTTGTGCGGTATTGATACCATTACAATCCACTAAGCTAAAGGCTGTCATGTGGAGCCGAATGAAAAAAATCCTGATGATACATCGAGCATGCGGCAGGCGTTGAAACTCGGCAAATTAAGATTTGCCGGAAATGTTTTGAGGGATTTTTTATAAGATTTAAATGTGACTCCCTTTCTGAAATGCATGTGTCCCGTAAGTTTTTTAACTTTAGATATTTTTATAGGATCTCACTTTTCAAAATAGACGTAGGAGAAATCATAGGATGCATACACCTTTGCCGATTGAAATTTAAATTCTGAAATCCTTCCAATAAAAGTGCATCACCACAAGTTGCCGACTTTTGGCAATTGCTCGTTTCTCCGGCAAATTCGACACACCTGGCCTAATTTGCCGATTTGTCGATTTGCGAGAAATTTTAAATTCCGGCTATTTTTCGATTTGCCAATTTGCCGAGCAATAAATTTCAATTCCGTCAACTTGCTATATTGATCGTTTGCCGCCCATCCCTGGTACGCCAAGAATGGTAGAATATGAGTATACTAAAAATATTTGAAGAAGAGGACTGGAGCTGGAAGAAAAATCTTTTTACCGAAGTCTTCTGAGACAATTTCGTGAAAATTGATTATCACTTTCTGACTCACAATTTTTAAAAAAAATTTCCAAAATTTTTATCCTAGTTCTCGATCGAAACTGGTCTTCCGACATGCAGGTGCTTGATTGGTAAGTATGACTGCCATACCAAATCAAATGAAAAACACGGTGTATCGTCTGGGAAAAACTTAAACTGTTCCGTTTTAGTAATTGGACAAGGATCTGCTCAATCTCGCTACTATAGCAACCGACATCTTGCGGGTCCAATAAAGATTGGTATATCTTGAAAATTTGATGCACGTTTATTTAATCGCCGCCACACACACACTCACAAAAAAATCAATTAAAGCACCCAGTTGCGCGATTTTAGTTTCTAGGCGCGACAAAAGGAGGAGAACCGAAGCATTTCCGCATTATGGCTCGTGTGTGTGCCGTTCCGTTTGTCCCGCGGCTCTCTCTCCCTCTCTGTTTTTTTTGTTTGCGAAAACTTCTCTCTCTCTCTCTGCCATCACTTGTCTGATGCGGATAACATAGAGGGAGGAGCAGCTTAGAATTGCGGAGGGCAAAATACCTGAAATGTGATCTCTCTCTTATTGAGTCATTGACTGTTGCTGCGAGAGCCTTTTCCCGCGCGCGCCTCCCAACTACCCGTCGACGAGCCGATTTTCTTGTCGGCGGTGCCATTCGCAATACACGTCCCTCTCTCTTCTTGTTCTAGAAACATTCGGATTTTTGATTTTTTGATTTTTCATGGTGGGTCTGAAGGCTTTTTTAGGCCAGACTTTTGGTGGCCAGGTGTATTTTTATTTCCAATTTATCATATTGCTTTTGTCCGACTTGTAGGCAAAGCACCTTTTTAAGCGCCAAGTAATTAAGCTGAAGTTTGGCTGCCTAGGTTTCTAGCCACCAAACAATTTTTTTGTTTTCACACAGCACACTTTTTTAAACACTGTCATAAGTTTTCAAAATTTTTTGAAAAATTTTACACCGAATTTTGAGAACTTTAAGTTTGGTGGCCTAAATGTTTTCAAAATTTTCTATGCCACTGAAACAAAAGTCCTAACTCTAATTGAATTATCTTTGAAACTATGAAAACTACAAGTTCGACTAAATATGGCTTACGGGTCCAATTAAACTCGACTGGGTGGCCTAGAAAACCAATTTCGCTTTTATTTCATTTTCTATGCCACCAATAATCTTGTTCGAACATTACTTTTATTTTAATTAGTGGAGTTTGGAATCTGCCATGGGCTGTAAGATGTTGCTCGCCTCTAGTTTCTATGCCAGGAACCAAAAAGTGGTGTTGGTGGCCGACAAACCCAAACTTGGACAATTGCATTTTCTCGGCCATCATTTTTTTTAAACTAATCGTTGTTGGTTTAGTCTACTGTAAAAAATCAAATGGATAACAACGGGAGCCAAGCTTTGGAGCTGGTGGTAGATTTTGTGCTAGGTCACTAACTGAAATGATTGCAGCTGTAACTATAAAAAATAATTTACACGAGATATATAACATCCAAAATTAGTAGCCTAATTTTAGGATTAGAAACTATTTAAACAATTGGTGTGTGGAATAGAAACTGTATTTTGAAATTGCCACCAATTCCAAATAAGCCTATTTCACTCCTGATTTGAGCTAAAACGCTGAAATTTAGGCCATATTAGAATAGGCTATATTTGAAAAAATGGAATTGGTCTGACCTAGAAAATATTTTTTTGAAATTTCTGCTCCACCAATTTAAATTATAGCATAACTCGTTTCATAGTTGGACGGTGATTGAAATTTTAGACAGATTTTAAAAACAGATTGATCCCTTGAATTTTCTAGGCCACCTCTCCAGAAAAAAATCTGAGAATTGTTTTTATTTCTAATTCAATTTCTTCGGCCGTTTTTCATCTCTCGAGGATCTTATCCCCTTGTCTTACGTCTCCCACCCGCTGCTATTTAGGCGCCTTCATAACTGTGAAAATTCTCACCATTACTTTCCCTATCTCGTTTTTGCCCCCCCCCCCCGGTGTCCTATCCTTGTTCGTACACCTGTTGTTCCATAACATCTGCCAACCAATTTTTTCCAATTTTGCCAATTTTTAGTCAAAAAAGTGCATTGCATCGGCAGGCATGCCTCTATAACTCGTACACACACTTCGCTGAGCATACTGGAAGAGGGAAAAAATCAGGGATTGTTTGGATTCCTGGCGCCTTCTAGGAAAAAAACTCTTCCATTTTTGTAGTGCACATCAAAATGATCAAGCTGATTAATTTTCAAGTTACTCCCATAAATACAACTGAGAAAGTTGCGTTTTAAAGTTTCTAGGCCATCGTGGGATTTCTAGGTAGGTTCCCTTTTTTAAAATAGCAGTCTTGCACTAAAGTTTTGATTAGGCTGTTAAATGCTTTTTGTCAGTACGTTTTTTGGAACGTCGATTTTTACATTCCTCTTTTAGTTATTGATTCCGTTTTTTGCAAATTTTTATTTATTCCATATCTTACAACATTTAGAGGGACTCAAAGTCTTTGATAGCCAAGAATTCACTCTAATGACGTTATGAGCTCCCAGACTATAACCTTTTTCCCTTTTAAAAAATATCTAAATTACAAACATTTAATACAAAAACTTCTCGTTTCGAAACGTTTCGAAATCCTCCATTTAAAAAAATTAGATTAGCATCGGAAAAATTGCGAAAATTTTGAATCTGAGTGTGGATTTTCAATAGGGGGTCGAAACCTCGCAGGAATTTGAGAACAGTACCCTTTCCATCGTCCTTCCCGAAGCCCATTACATCATTAATTTAGCCACCTTTCTAAAGCGGTCCTGGGGGGGGGGACATCTGTAGTTTGTTGCCTATACAGGGACCCCCGCCACAACCACCGCAACTAGAGAAGAAACATCTGCTGCACACAGACAGCTGGCACATGGATGGACAAAACTCCTTAATTTTAGACCGCGCTATTTCATATAATAAAAGTAGAACGGGAGGCAGAAAAGAGGATGACTGCGAAACATCCACCTGCTTGGCTGTCAGCGCATAAACTTTTCGGAAATTTTGGGTCCCACCACGCTTTTTTCGGTAGCAAATTTTGAGATATCTCGATACACCATGATGTCATTTGGTGGAATTTTGGGTTATCATGGCAAATACAAACCTTTAACGTGAGTGCCAAATTGAACTTTTGCAGTCTGAACTTTTGGCCATTACTTAAAAATTTCCATGGGGCTCTCTAAGCCATGTGGTTTCGAATTTTTCCTGAAAATTTAGATTTGGTCATGCACCATGTTGTTTTTTTTTTGGAATAATTGAGGAATTCACGGCTTACTTTTAAAGTAAAAAGTTTCGTGAGATCCATGTGTTTTCATGTTATTCAGTTTGTAAATTATACAGATTATTGACTGAAGGTTAATTTTTAGTTGGGAAAATAAAAATCGCCAAAATCAATAAACAATCGTAATCATTTAGAAGTTGGGAGTTTCCATATAGGCGGTAAAAGGCTTGTCTGCCTTACAATAATACGACCGCCGCTCGCCTCAATCCGCGGCGGAGCAGTGTTCAGTTAGGCACTGAAACCGCGTTCCTGCTTACCATGATGTTCCGTTCTTCACGTCGATACACCATGATAATGGGTTACATTTTGAGCCTTTTCGAAAAATACCATGGTGGAAAATTTCAAGCTGAATTTTAATATTTATTAACCGTATTGTGGGAGATAGCATGCAAATGTCTTTCATCTTGTGTCCCTTCACTCGAACGTCTTCAATTTTCGTCCGAACTTCTCGATGCACCATAATGCTGTTTGGCGATAACTTTAAGAATGGTAGAGATTGCGATGCACCATGACGTTTGTATCGATTATCAGAACAAAAATCACTCCGAGACCCAAATAGTTTCATTCTCGGCACTATATTTTCCAAGTAAATTTGAAAATTGCTTCTCGGAAAAGTTTTTTCACATGCACCTTTAATCTTCTGCTTTGGAAACTATGTAATTTCCGCCCAATACTCTATTTCAAGTTGCTCTCGATGCACCATGATTGTATTTTTTTCAAATTTCTTACTTTTTTTTGATTTTTCCATGAGAGCCAATATCTGTCTTTATAACGGTTCTGTAACGAAATTTTGAAATTCTTGCACGAGATTCTGCTCTCATCTCGACATGATAATTTTAAAATGAAATTTAGCGATTTTTCGGGAAAAAAACTGTTTCGATCAGATTTTCTAGTTATTGGACACTCTGCACCTTGCTTATTGCTGGAAATTACATTTTAAACCGACAACCTTTCAAAAACTGTTTTCGTCGATCTCTATGAGTGCATAATTTTGTTGTAAATAGCTCGGTGGTGGGCCGCAAAAAAACAAAAAAAACAGGTATAAAACGCAAATAAATTTTGTTGTAATGTTGACACCAACAGAATCGGCCTGGAACATACGGTAGATCGGATTTGCAAAAAAACAACGTTTGTTTCGACGTTCCGCCGCTTTTTATGGGAGAAGTAGTATGTACCTTTAAGGGTACCGTAGCCTTGACCCTATGGCCTAAAAGTGAACGGTACTAGTCCCAAAAAAAACAAGATGACCAGTTTCAATCTGTCAACATCTACACATTTCTAAAATCTCATTTAAATTCCACTGTTCGATTTTCGCCTTTCTTCTGTCCCAAAGTACCGTATCCTCATCCTTCTACCACCTTAATTTGCATTTGTTCTTGCTTATTCACTTCTTCCCCTGGACGAAAAATGTTGCACGACAACAACAAAACCCGCCCCCCACCATCTGTTTCTCTGAACCTTCGATCCAACTGTCCCCGCCCCCTTTTTGAAGCCCACTGTCTTTTACTTTTTTTCTTTGGTCGCTGATTATGTCGGTTCGTTTTAGTATTACAGGAATGCACTACAATAAATTCCCTAAACGCGTACCGCGTTGCACAACATATTTGACGTGCAAAATATCTAGTAGCGAAACCTAATCTATAGTTACTCTTGAAATGACTTTTGTAGCATGCCGATTTAACTAAATTATTTATTAACAGATAAAATATTAATAGACACGACAATTCAAAAAAATTCATTTCGTAAATCGAGCCCGTAAAGACAAAAGCGCTACAGTAGTCATTTAAAGAATTACTGTGTTTTCGCGTACGAGTTATTTTGTGCGTCAACATATGTTGCGCAATACGCATTCTTATAATGTACCCGTAGTATATTTTTGTCTCTCTGATTTCCCTCAATTGCAATCTTTTAATTCCAGATTTTTTTGGTGAAATTTCTCCGCTCCATTATCAATTTTTTTTAACCACATAATTATTAACCCCAAAACATCGCAGATTTTCAGGTAAAATGCCAGGGCGTCGTGAAGCGTTAGACCTTTTTCTATGAGTAATGGTGAGCAATTTTTTTGAAGTTTTTTTTTGAAATTTGTAATTTTCCAGAAGGCTTCTGCAAACGGGCATGACACGTGTGAACGACGCCGAAATTTTGGCAACCGTGAGTTCGGCAAATAAGCTAACAGTCTAAGAAACACGAAAAAAAATTTTCTGTTCAAGATTCGTGATTTTCGGATGATTTTTGAACTTTTTGTTCCGACGAGATTAAAGTTCCCACTGAAAACCCTCTCTCTAAAAATCCGCTGCTAAAAAGCCTCAAATGGCCTTGCGAGAATAGACGGAATGTTCAGGGATGACTGGTTTAAAATCGGCGACCTGTTGCCATTCAAACCGAATATCTCATTTCGAGTCCTCCCTTTTTTTTAAGTGGGTCGGATTTGAGATTTAACATACAGAAGAGAATAGGGAGAGACAAAGAGGGACAAGAGGGGAAAAATCTTCTTGGAAACAACCTCGTACCGAAATTACGGAAGTTTTTGCCTCACAGGATCCTTCAATATTGCGTGAGAAAGCTAAAAATCCAATAGTCATTTTTTTCTCCTTTTTTAAAAAAAGGTTTCCTCCCGCGTCAAAAATTGAAAGGATCGGATTTATTGTTACACGCCTGCCTCCTTTCTATTAACCTTGTTCTCGATCGCAACCTCTTTTCTACATTACGTGAAAAAATGCTATTTTTTTTCCTTGTTCAGATTCAATTTGAAAGGTGCTGTGGAAAAAGTTTTTTTTTTGCCCTGAAAAAATAATCGAAATTTCGCGTTTATACTGCTAAAAAATGACGACTCAAAATTTCAAGTAATTCTTTCGAAAAATCGATTTGAAATAGACAAAAATTTTCAATTTTTCATATCTGAAAACACACTTATTTCGATTTTCATTGTTTCCTTGGAAAAAATCTCACAAAAACGCAAATAATTAATTTCCCACTTAATCTGGACTACGATATCCAAGCTCCGCCTCCGCGTATTCCTTGTACGTGACAAACATGGCGGCCCAACACCAACTCAGACATTAAATGAGTGATACCGTACTCTCTCTGTTTTTTCTTTCATTTTTTCGGCGCCGAGAATTTTCAATTTTTGGTGGTTCGTTTGGCGGTATTTTTCGGATTATGGTCGGTTCACACACACACACCAGTTGGTGTTGCCGGTCGTCACCCGACTCGCGCCACACTCTTTGTCCGTGTACTGCTTTGCCATTTGTGCGCGCGAACCGCTGCCCGTCTATCTTATCATATCAGGCGCCTCGTTTTGTCGCTTTTTCTACATTTGCCCTTCCTAGGACAGGGGTACCTGCGGTCGGCTTTTCATCCCAGAGAAAATATGCTTAAAAATTCCGAAAAACCTCTATTTTTCGATTTTAGCATCGATTTTCGCCCAAACATAACCATTTTTCAGAATGAACGAAGAACAAATCGCCTATTGCCAGGGGTTTGGTATTACGAGGAAGACACTGCCTCGTGCTCTCCAGTCAGCGATCCGGAATATTTCGCAGTTTCTCAACTACAGAACGTCGATAGGCGTGCAAAATGTCACAGAGTCCGTGGAAGTACCGACGTCGGCAATAGCATGTCGCCGAGATTGTTGGTCGTCAAGGTATAAATTGCCTGTTTAGTCAAATCTACAGATTCCACAAATTTTCTCGATAGGCTGCAAAATTAAGGCACTGCGCGCCAACTCGCGAACACCTACAAGACACCGGTTGGCGGAGAAGAGCCAATTTTCGTGGTCACCGGACGCCTACGTGAACGAGGCGAAACGAGAGATCGACTGCGCCACCGAGCACTTAACACAGATCCGTGCGTCGAGAAGACATACACAAAGTAGGTGACCGTAGGCAGACGGTTCCTGAGCCGCCTTGCTGTTGTTCCGAGCCCATGCACCTGGACAGATCACGAGCTATAGTTCGTTAATTGTCGGACTCGTCGTCCGAAAGGAGCGACTATGAACAGGACACCCTGACACGTACATCATTACAAGCGCCGAGCCGAGAACGGAGGAGCCCGTTTTTAAGGTATTTTTGTTGGAGAGCATACATAGAGTTTTGGCGCAAAATTCTCATTCATGCTTTATAAACCAAAAACAGAGAAGTTTCTAGTTTCGGCTTAGGAACTACTGAGAATCGGCTTTTCCATGACATATATGTGTGGAGCTGAAAATCTACTTTTGACTGAAAAATTCAAGTTTATGACTAAGAAAAATTAGATAATTAGACCATGCTATTATTTCATAATATTGGTCCAATTTTTCTTGCTTTGCTGAGCAAATTAACAAATTTAACAATCGGCGGGGTTTCTGAAATATTTTTGTAAAAAAACCGATTTAAACTCCAATTTTCCAACCTTATTTTTACATATTAGTACTAGAAAAATTGTATAATGGGGAGAATTCATAAGTTCTAAAATCGGCTGTTTTGTAGCAAAGTTTGTAAATATATCATTCTTAAAGTCTCTAAACGTGATTCTAGAAAACGTGTCTCATCAGGATTTGATTTCTGCGACACACTTCTCTCGAGTTTTACATAGAAGTTGTTCATTACAAATTTCTATTTTTAAGGTCCCCATTACCATTGTCAATCTTTCATTCCGATTATTTGCCTCGTCATAGCCTGCAAGAAGGGGAGCCTAATGCCTAGACAGATGAGACAGAAACACATGTGTGTTTGTAAGTGTCTGGTGTGATATACCCAATTCGTTTCGGCCGTCTCTTGTTTTCTTCCTGACACCGAGTTTCGAGCGATTTTCGAGGTCGTACAGTTATGAATTGGCTGTCACTGCTGTGGCTAACAAACAAAAACAATCAAACTTGTGCGGAATTGATATTCTAAAGAGAATAAAGAGCAACCATGGGTGGCGACTAGCATCGGAAGTGCTTGTGACCTCTTGGTGTGAATTTTAAACGGTTTCCTTCCACAGACTCCGACATGCTAAAAATTCCAGCCGTCGGGAGCCGTTTAGGGTCTACACTGATAGATGATGATTAGAATCTTTTAATTTGGTAGAATTCCCCCCGCGGGACCGCTTAATGTTGCATGTCGTCTTCTTCTTCTTGGCAGCAAAATATCATTGATGATGAGTTATCTCAGTTTGATGCTCAATGACGCCGTGAAACAGCCACCCCACAGTAAATTAGTCGAATTACCGATGGGGCGCCCGGGTTTTTGGAAGAGTCATGCGATTGGGAGTCCACATACACACGCACCATCTCTTTCACTCCATCTAACAGTGTAGTAGGGTGATGAAAAGGGGGGGGATCGATGAAGAGACTCTATTAATTAAATGACCGGGGCGGGGGCCAAATTGCACATACGCTTGGTTTTATTGCACCGTTGGCTCAGTGAGAGCAACATTTTGTGGCAGCACCAGGGGTACTTCAAATACGGGACGAACAAAAGTCGTTGTTGTTTCTATAGGAAGGCTTCCGTTGGACTTTTGAAACCAGATCAGATTAGGGATATGTAATTGACGGTTTTGACCGTATGTGTCCATACACGCGTCGTTGTGTGGTGTGTGGCGACATAAATTAGCGTATGTGCTCCGCATGGCCTTTTTCCTCCTTCCTTACAATGGTAATTATCATCCCCCACTACTCTGGGTCGCCATGGACGAACTGTGAATGTGTTGACAGTGCGGGCCCGAAACTAGTACATGGACATCTTGCCCCGGTGCGGTGCGCTCATCGTTATTCCTCCCAATTTAGTTGTCCGTTTCAAATGTCTCCGGTACCCTATTGGACGAGACAAGGAGGTGATGGATTTGCAGGCGGGGAAGGAATTACATGATGTTTGGGAGATTATGGAAAGGTAGTTTCACCTCGTATTATATGGTTCTACAAAGACCAATTGTCTTTTTTGTTCGTGGCTCAAATGAATAATTGGTACGGAAATATAGAAAAATGTCCGACTAGGTAATAGAATTGTTTCTATGTTTTTAACCAAAAATAGCTCATACTAGTGCACTTGAGTGTTGAATTTTCAAAGGTTTTATTTTCAAATAGAGCATTTTCAATACTTATAAAATCAATTTTCGGTTCAAAAACTTCTAATTTTCTCACCGAAAAAGTTCTCACAAGACAGTGACAGAGGGGTGGTCGCGTGCGAGTCGTTTTGATATCCATCTCGATAATCAGAGAATGTGATCTATGCCTCAATGACACAGTTCCGCGAAGGAGTCCGAGAAAAACGTACAAAAGAAGAATATTGATAGAAATAACATTTATTCAAATCAAAGGATATTAAAAAAAAAGAACATAAACTATTTAACGAATTCACAAAAATTCGGAAGCATATTTCCTATAATGAAAACATCCTAAAAATTCTGAAAATGTGTACTGCACAACATTTTTACGCGCATAATCTCTTGTAGCAAAAACTACATTCGTAATTCATAAAATTGACTAATGTAGCGCTTGTTTAGAGTTATGTGCTCTACGAAATGAATTTATATACTTTATCGATGGAAAAATAATTTTAAGCAGAATATGAGAAAATAATATGAAGAAAAAAGAAATTCGAGTCACGTGCTCTGAGAAATGAATTTAAAAATTTTATCGCTGGAAAAATATTTTTAAGCAGAAGATGAGAAAATAATATGAAGAAACGAAACTTAAGCAATTCATTCGAGATTACGCGCTTAAACCCAGAGCTACAGTAATCTGTGAAAGAATTAGTGTAGTATTCGCTACTAGATATTAAGTGCGTCAAATATGTGCCTATGCGCAATAAACATTTAAGTTTGTGTTTCCGTAATATAAGTTTTTTGCGAGAACTACAAAAATATAACTATTTCTATTCCAGGTGACCGGCCTCCCACATAACGTCGAGGCTGCCGGCAAGGAGATCGAGACGCACATCTTCCGGCGAACCGGAAATCTTCCAGAAACCCGACAAAATGACTGTGCCGGACAGGTGGCCGGTGTCTCGTTGATGGTTCAGAAGCAGCACAGGCTCAACAACAAATGGTCCACGAGGCGGTGTCAGCAACAATCGATATCGAAGAGCATTCGGCAGTAATCCGTTCAATCAGAAGGAGATGTCGTCGCCGCCATTGGAATGGAGAGCTCGGGGATTGGACGCGTTGCTCGCAGCCATCGAGGCGTAGTTCGTTGACTCCGGACTCTTTCCGGTACTGGACTGTCTTCTCGTCCATCGTGGAGGACAATCGGCGAAAAAAGGTCTGCCAACCTACGACTACTGGGGAACCGACAACTCGCTTAATATTATGGAGAACGGTTAGCTTTTTTTTCAACGAATTCATTAATAAGAATTTTAAATGACAAATAAGGATTTTTCCGAAATTCCACTCAGCCGCAAGTACGATGCTCTGTACGCATGGTCGTCGATGGGATTGGAGAAACGCGAGGAATCCCCAACCAATGGTATTTTTGAAGGAATTTTATAAATTACATTTTGATATAAAACAAAAAATGCAATTTTCCTTCAAAGTTCCCGTAAATTTTTGAAAGAAAATTTGATTTTCCGCTAAAAAATTCAAGAAAAAAACAAGTTCGTGTTTTCCACTCGGAACCTGACGGCTTCTTATGTTTTAAATAAAAAATAACGTTTCTAAAACTCATAATGTTTAAAAAATTTCACAGTAAAAAATTATTTTCCCGAAATCTTGAGACCTATCCGTTTTTGAAAATAAAAATTTAGGAGTAAAATCGTAGTTTTCTATATAAAAATTATAATTTTCATTTGAAATTCAATCAAAAAATGTTTAAATAAAATTGGATTGTGTCCGTCGAAATCTATAAAAAGAAAATTTTTTTTGAACAATAAAAGACAACTTGTAATTTTCTTTTGAACTTCGAGGAAAAATATGTTTTTTTTCACCGTTATGCAAAAAATCGATTTTTTAATAACCTCGTTTTTGAAAAAGGTGAAATTCCAATTTCAAGAGGTAAAGTTAATTTATTTATTTTATGAGAAAAACTTGAAATTTAAAGGAAAATTACTGAAATTTACAATTTATCATACATATTTATTTCGACATATCTCGAAATATCAAGTGGTAAATTTTCTCCACAAAAGTGTGATTCTCTTTAAAAACTAGAAAATTTCAATTGTATCTGAAGCAAATCAAATTTTGCAGGCTCATGACCTCCCTCAAAGGAACATCCGCCGGCTTCGGCCTTCTCAGCAATCAGGTCTGGCGGAAACATGAATCTGTGGAGCCCAGGATCGTTGGCTGTTCAGTAACATCTGCCTCGCCGACGTCATCCCGAGACCTGCGATCACCACGATCATACTCTCTTGCCGATCAATGGATAAGCTGTGGATCCATTCATCAATCCATTACTATCGTCTCTCATCTAGCAAAAACCTCAACGGGTTCCAATCTTTCCATTCTTTAAAAGATTCTTTTTCCCATTTTCTACTTTGTTCATCGGTGTACAAGTCCCTCCATTCCCATTTTCTCACCTCTTTACTACATTACTATGCGAACACACAAAAAGTCACCATCATTCTCACAAAATACTAGACAAAAAAAACGAAAAAAATCACATATATTTATATATAACTATTATTATTTGTTATTCATATTTTTGAATTATCGATATTATATATATTTATATATGTAACCCATACTGTCCCCCAATACATATATTCCTACAGTAGGTTTTTTTGGCTGTAACTTTCTCTATTATTTTTTGCACTAAGGACGAACAACTCATGTTTTTAACAAAACGGCAATTATATATATTATGCCTCTTTTCTCTCTATCTCTCACCTAGTGTTTAGCTCCCAATTTTCCCCCTCTCTACTACGCAACTAACGGAGAATTGAGAGGCCTTTTATATTTACAGCATCTTTATAAAACTCGAGTGATCCCCACCCCATCAAATTTATCGTATGTAAACGTTCTGTCGATATATTACATGGTGTATGTGAATGAAGCGTTTCGTGTCGTCTCTCCATATCGACTCTGGTATCCATAGCAACTCCCCGAGCTTTTCGCTCACTCGCGCCCGCCATATACTATACCTTTACTATTATTAAATGCACTCAAATCCTATCCTCCGTCAATTAGCCGATCAATTGTCCGAATTGCCACAATGCTCCATTGCGGGTACTATTAGCACAATAGTTGAATATATTAATTCAAAAATATTTATAGTTTGGAGGTGTCCCATTGTTTCAGATATCCGCGCGACGATAAGTGCCACGTTGGGGGAAACGCCAAAGAAAACGAGTAGGGATTTGCCTAGGTATAGAGGCGACATTTATGGAAAATTTGAAATTTTCTGAAAAAAAAAGGATTTTTGTTCTTTTATCAAAAATGCCTTGTCTTTTCGCCAAAAAAATCAAAATTTTCGACTTAAAAACTTCAAAATTTTTTCAGGATCACACTATACAAAATACAAAATATCTCGTAGCAAAAACTACAGTAATTCTTTAAATGAGTCCTACTGTAGAGCTTGTGTCGATTTACGGGCTCAAGTTTAATATTAGATAAAAATGAGAAGAAAGGTAAAGACACGAAGAAACGAATGATGCCAAAGTGTAATATCGAAAATATTCGAAAATAAATAAATTTCAGAAATAGTCCGTAAATCGACACAAGAGCTTCAGTAGTCATTTAAAGAATTACTGTAGGTTTTCGTTACAAGATATTTTGGTCAAATATATCGTATGTGCAATATGCATTTATTTTGTGTTTCCGGAATAGGTAAAATGTCAGAAAATCAAGGATGGAACCCCGCGTTCTACGGGTATTATGGCCACGGCCACTTTTTCCAAAACTGCAGTGAAAAAGGCGTTGTTATTTCATTTTCTGAAAAAAACATTGAACATTATTATCGAGAATACGATCTGACAAATTTCTCATAATTTATTTTTGATTGTCGCTACCTGTTTAACTTTACTCCGCCCCCAATCTTGTTGCCGGAAGTTTGATATTTTGTTTGTAGCTGTCTTGTCGAAGGACGGGGAGGAGGTCAACAAGGTAGATAAAAAATATATTATGCGAATTTTGTGCGATCGTATTTTTTCGATTATATATATATATATATCTTCATGTAATTCTCATGAAATCTTGAAAAAAAACGCGACACATGGAATTACCCGTTACTCGAGGCCCACTGTTTTATAGTTTGAGCGCGTTGCAATTTTTTGTCGATAACATAGTTTCTATTTAAACAAAAAACATCGTGCGCCCACATTGAAGAAAATGCTACAATTGGTGGCATTAACTTTCTGAAACAAGGATTTACAGAAAGTGTCAGGGCACCATAGCATGATTGGATTGGCTCGAGCAGAATGGATATCCAATATCATCTCAAGTCTTGATAACAAATGTCTGGAAACATGGAGAGTGCAGAAAAACATCATACATGGAAGATGCGGAAAAAATCGATAATCTATTGCGAAGTTAGCTGAAAATCGATATTCGCGATGGCACCGGTGACGAATTTGAACGAAAATCGATAAAATCGATTGGCGCGGGTTCCCGCCGGTTTTCAAAAATTAATAAAACATGGTCGATAAACGAGCACCGTTGAAAATTACACCGTTTAGTGATGAGGAATATCGAAAAACGTCGATGCAGAAACGGATGGAAATGGAGAGGGAACGAGTGAGTTGCGTTAAATAATTTTTTTTTAAAATATTTAACTAAAGGCGACAAGGCGATTTTTAAAAATCGATGTTTAGCGACTTTTATTCAAAAGAATAATTTCAATGCCCTAAATCACTCAAATGGTGATTAAAAAAGTATTTGCGCGCGCGCGTAAAATTGTGCATGCAGCGTATGACCCTATGTGGTAAACCTCCGGGTCCGACACTTTTTGGTGAGGGTTTCGCATCGCTATAAAGATTGCAGATCGCGGCGTGAGCGTTGGCGGCGTTCCGACTTGCATGAGAGTCCTTTCCTACTTTTGCAAAAGAATCGATCGCTCGGATTTTTCAGCTCGCACGTCTATCCAACCAGGCAGGACGAATCCGACGATATCCTCATCGTCTTCCTCCGACTCTTCCATAACGTCATCCGCGTCGTCATCTTCCGAGGAGAAGTTGACTTTTCAATTCGAATATCTTGGGGAAACCCACAGCAGCTGGCGCGGAGAAAATGATAGAACTCAGCCAAATTCCCAACGCATGGGGTCCGTCAAAATCCGCGTTAGTCACTACGTGGCCGTAAGCACTTCTGACCCACTTCCGGCGATTTTCAACGCACATCTTCCGCCGCTCTCCATGGGACGACCACCGCTGACAAAAAGCGCGAAAAGTCGGGAAATCGACGCCATTTTCGGCTCGGATAACGTGGATTATAGAGCGGGGATTTCGAGCAGGATGGCCGTGGCGAAGAAAAAGTCTATGCTCCCTATGGAGAAAAAGAAGGAGGAAGCGAAACCCTCAGAACAGGAGCTAGTGGAGCCGTTGGTCTTTGACTGCCTTATCAGAAGGTAACTTTGTACTTGCACCCTGCAAAAATTCCGAAAAATTATGCACGTGGTCACTGCTAGGTTTTGCATAAGCGAAGCAAAAGCGCCTCATTGAGAATACACGTTTGCGCCAACTCTCGCTATCCATTGGCGTGAGAGACACATATACTACTTTTTCCTCTGAACGTGAAAAACGAAAAGAATACCCGTTTTGCCGTCTGCATCTCTTCTTCCACACGCTATTTTAGCCGTCGAGGACGAGGAACTCTTCCAGGATTTTCTTGGCTTCTCATATTCGTTGTCAAGTTTTGCCTCGTCCGCGAGAAAACGTGAATTTTGAGACGGCCAGCGAGCACGTGATTCTGCAACTCTCCTAAAAATCGATTGTTCCTGTAGCTTATAATCTTTTAGAGGCGCATATTCCGCTTGCGGAGCAAAAGTAAACAAAAAACATGCCGGTCTAGATACAAATCGAAGAATTTCCTGCAAAATCAATAATAAAAAATTTTCAGGCGAATCGATCGGCTTGAAGACTTCGACACCGGTCAACTGTCCGGAGGATCCGATTATTGTTTTTAAAATTTTTTTCTTTTAAAAAATTTCCCGCCTTTGCAATAAATAAATTCTCACCTAGGCTAGAATTTCACTATTCAACTTGAAAAAATATGGTTCGCCCAAACTACGATAAACAAATGTGTGTCGAGCGGGCGAAGCCACTGAGAAAGGAGCAAAATGTACACAAAACCATATTTGAGTGTAATTTTTTCAGAGTTTGGCGCCGATTTTCTGTGAGACATGAGTTTTCTCAATTTATATTTGGTTATTTTTATTTTAGTTCTTACTGGTAAATGTCTGGGTAAGTCCTGATGACTTGTGAAAACGAAAAAAACTCTTTCATTGATGCTAGTGCGATTGCTAGGAAAGCAACTTTCATTCAGTTACCAAGAAAAAGTCCCCATATGGATCTGCGTGGCATAACAACTATCCATCCACGGAGATGCAAATCCGATCTATTGGCAAATAACATGGAAGAGTATAATTTCTCTTCCAAACACGGAAACCTTCCCCTTGGCGGTAGTGCCCACAACCCTGCATGTTTACCAAACTACACAGACAGCGCTTGTCTGCAAGTGGCAAAAAATGGCCGGCGAAATTTTTATGTAAATAATTTTCAAAGTGTTACCCTATTTGCACCTTTTTGGCAAAATTTCCATAAGTAAGAAATTTGATGGAAGAAACGATGAGAGGTTATGCGGGGAGTCTGAAAACGGGGCTGCATGACCTGTATGCGACCTGTTTAGGCCTAAAGCTAGTGACCCCTAGAAATCAAAGTTTCAAAGAGACTTTATTTTTCAGCACTCCAACAAGCTCAAGGCAGAAACTCAACGGTACGACGGATACAACAAGCTGGCGAACAGTGACTGGGCTTCTGCTGGTAGGTTTTTTTGGAAGAGAAATGACGTCACACTGCCCTACTTCTTCAGGAAGTCGGCTGCATGATGCACGCGGTTCCTACTACTCAGACGGCGCGTATATTCAGTGAATAACTCAGTCCTCCTGTCTCCGATATACTATTGGTTTAAAGGAGAGTCCGGTATTCCTTATACAAGAGGATGCCCCACTTGTTATTGGCATTTTTCAGTTTGTATTTTTTTAATACTAGTAGCTGAGCCATTTGTAGGTCATCAAGTAGTTGCTTAATAATGCAATCAAATGGAGTATCCTGTCCACTAGAGACACTTAAAATTCAAGATACCCCTATGTGATAATGTATTTGAAAATGCGAGTACTGGGGAAAACTACAATCCCATTTTACCATAGTGCAGACAAAGCAACTGGAAATTTTACCTCGAGAACAAACCGTCAATGAACGGACTTCATGGATTGATGGATCATTCATCTATGGTACCGCCCAGTCATGGGGGTCTAAGTTTTAGGACGGTTAGCTCAGGGTGCACCTGGATATCGACCACTTAACAACCCACATATTCCATTGAATATCCCCGCTCTGCCACAAGTACATCGATTGATCAGAGTCCTAAGATAGATTATTTAGTGTGTTCATTGTTCTATAGAAAAGCTATAAATAATTTGTAAAATTGAAGTGTTGGGAGACTCGCGTGTGAATGCAACAGCATCCTGGTCTTCTTTCATTTGGTCTGATCCTCTTCCGTGATTGGCATAACTACGATGCAAATCAAATCTATCGAGAACATCCTGACTGGACAGACGAGCAAATAGGCAGCACGGCGCTGGGATTGGTCATCTATGCAGAAGATTATTTGCTTTGTTCCAGGACCTCTAGGTTACTCATAGTGCATCATCTAATAGCTTAAACTCAGTGATTTCTGTTAAGGTGAAGTCGTTCGTTTGTCAAACTACACCAAAGGAATACATGCCACACATGCCACCTGGAATCTCGCTTTTGGAACACCGCCTTCAGGTTCCCTCACTCAATTGTGCCACCAGCAATAGTGGCTGCTGAGAAAACGAGTAAATAAATGTGAACCGGACGGAAGATGGTGGATATCCTGCATTGAGTGCCAGCGAATTGGTGGTGGAATGCACAGGATATTGGGAAGGAGTAGACAGTGTGGATGAAAACCTTATTCCTGGTTAGTTAATACTTGAGTGGTTATACTTTTGATAAAGATTGTTCAGGATGGCAAGCCAGATAGCTGAATGAGAAGATAACATAGTCGCAGATCTTCGTGATTACAGGACCAATGCATTTCTCTCGTTTGGATGTTGTTGCTTCATCAATAATGAGAGGAAGGGACAATGGAGTACCCCCGTATAATGAATTGAGAAGAACCTTCGGACCTGCACCAAAGGCATGGGAGACAATGAATGAAGATTTCTACAAGAAGCATACTGCGTGGAAAAGTTGAAAGAGTTTTGTGGATGGAGGCAATATTGAAACTTATTATATCTGGATGCTTATGTTGGAGGGCAAGGGTCTTTTATAAAAGTTAGAGAGATCCTCCAATATACCCTCATAACATATTGTATAAGTTTAATTCATCAATAATTCAGCTTGGACCATTTAGAATGCTGGAAGGAGGTGAAAATGGCCCTGAGATGTTCAAAGAAATCATAAAGGATGTTGGCGCACCCGTATTCGAGATGGAGGAGATCGATTCTGGTTTGAGAATAAACTAAATAGATTATTCACTAAGAAGTTCAAATGAAAGTTCATAGTATTACACTTCGTATATTATCAAAGCATTGCACAACCGATGTCGACGATGCTTCAGAAGGATGTGAGTTATAGTAAAACACCCGTTGGTTATGATCGCGTAGTTAATAGAATGTTTCATTCCAGTCATGGATCTTGAAATTTTGTCATGATTCTGTTATATAACAATATATGTATGTATTATATAATACTCATGTCTCAATATGGCATTTAATTTCCAGGTATTTTTCTTCAAAGAAGGTGATCCACGCCCCCGGCTTCCTAGTGAATACCATTGGACTTGAGTGCTCCCCAAGACTTATTCAATTCACCTACTGGGATGATAACGAGACTACTTATATCTACAGTCTAGGTTTGGCGTATATTCCTTTTAGTCAGTCTTTATTTCAATCTGATATATACTACCGATAGAGACTCAGCGATTATAGAGTTGATCAAGCTAAGAACTTTCAGTTTGCTATAATATCTCGCGATCATAATATGGTTGAACGACGTATCCGAATAGGTCATAACAGTGCTTGTGACAGCTTGACTACTGACTTGTCAACACAAAGTCCCAAAGTTAATGTCTACAAAGTGAATGGTATTTTTTCATACTTGATTTTGATTTAAATTATGTCGTGAATCTGCAGCTTTGGAATGGCTTCAAAGTACATACGGTCAGCAAGTTCGGATAGAAAGCGAATACCACTTGACAGTGTGCACAAGAAGGTTGTGCGGAATCCTTCGAAAAAAGGCTTCGTTTTGGAACTGGACAAAAGATTGAGGTATGCCACTCTATACCGAATCCATCAGCAATGCACGGACCATTTGTATTTTGTCTCAAAAGAATAATCTTCATTTGGTGATAAGATTGTCGTCTGATAGAGATTTTTCTAAATTTCTGATCACATTAGACAGGGGCTAGTGGAATGCAGGGGTTATCATAAAGGCTGACGAGACTTCTGTGAGTTTACTTCAAGAAATACGTCGAATCTGGAAATTATTTCAGATTCTCTTGTCCCAAGCAATCACAATAGAACACCGGCAAGACCGACTGTACCTGTTCTTCCGTGAAGCCTACGCAAAAGCATTCAATGATAGTGAACTTGCCAAGATTTGACTCGGAAACTTCATCTTTGGCTCATCGATGATGATTTAGTAAATGAGACAATATCTCGTCAGGAATTGGCAAGTGCAATGGGAATGAAAGCATAAATAATAAATACTTGAGTTTGTTGTGTGAACAGAATGTTCGCGATTGCAAAATAATTAGGATTCGCTCAGTTTCAATGAGTTTTTGACAGTATTCTTGATGGAGTTTTTTAATGGTGGGTTTATTGTGATTTACTAAAGTTCTGATCACAAATACTACACGTGAGTTCCAGTCTGTTTACACTAGGTTCGGTAAATATGTATAATGTTATAGGGTGACTGTTACTGAAGCGCCTTAGTAGTCTTCTCTTCTTTGAATGGCAACAAACAGGCTCCGTCATTAACACATTTAAGCTGCATTTCTCTGCTAAAAGTAACGGCTTAATCGAAGTGCGATTTAAACATTCGGGTCTATAATCGTCTTTTAGTATATTGTCGCGCCTACTAAGGCTCGCTTTAATAATCAGTTTTAAACGCGAATTTGATGGTGTTAAATACGATTTTAATTTGGGAATTGTTCACAATTAGATGCTATCTTGACTAATAATAAATAAATACAGACACAAAAACCTTTTACTACATGGACAAAAATCATCCGAATCTACCCAAATCGGCATTAGGTTAATGTCTTTGATTAATCACCTTCTTTAATTTGCAGCTCCTCAAAAGCAAAAACTGCACAGTCTATTCAAAATGAGTGATTTGGAGGGAAAGAACAAGGTTCTCCGAATGGATCTCGCAGAACTGGTCAAGTCCCTCAATCATACCGCCGGAGTTCACATTACCTAGAAAGTGTGCAGCTTCGATTAACTTTCAATGACGTGCTGCACAGGTGCAGGTATACATCCCTGTGTAGTATGCCAAGTATTAAGTTTCAGGAGTAAGTTCTCGACGATGCGGAGTACTTGACTTGTAATAATTTCGACGCATTGTTCTCGACGGAGATCTCTGACGTCCCGATCGGTCTGGTCCATTTAATAGATTATTACTCACATTTATCAAGTAGTATGGTGTTGAATTCAAATTCGCAAGTAAATACAACTTCAGGCCATCATGCCACACCTCATTCCCAATAGTGACCGCTCTACTCCTGCTCCACTTTCTCTGATTCAGAGAATTTGTGCATTCAAAGACTGGAAACCTATTCGACTACACGTCTTCATCATCGTCTGCTTTGTCGCCATTCACATTGTCCTTTTTTTCGAACTTTTCTGGCGTTTACTGTTTAGTTCGGTTTTCAAAAGCAATCAATTAAGATTCCTCCCTAAACGAAGATCTAGACCTCGGTCGGGTGTGGGTGCCGGGATCGCTATCACTCTCTCTTCTATTGCGGGAGCCTTGTCATTTAGCATGGCGTTGATATTGCGCTTACAGTGAAATATTATAACACTGCTTCGAGAGAGACAGTATTGCGCAGTATATTCCATTTGACTCGGCTTCGCGTTCCATAAGGTAAGAGCCTCTCTCTTGGCCTAGCGCTGTAGGTTAATTAAAACAATTACTCCAACTCGTAATTTCAGAGCGTCGCATTATTCACCCTATTCTTGTCTACCCTTCACACCATCGGCCATTGTGTAAACTTTTATGACGTTGGAACTCAAAGCGACCGTGGACTTGCTTTTCTCTTCCAGGAACAGCAACATTTTACGGGTAGCCGCACCTACACGACTCGGTTGGCAGATCTCTCAGTAGATTGAACGTTGGCTTGCTTTCAGCTCTGACGTCGCGCCTACCCTAAGCTGGTTCTATGGAACAATTACTGGGTTGGCGGGAATGGGATTAGTTATTATTTGGTTATGAGTATCATTTATGTGTTCGCATGGCCAAAGATCACTAAGCATATCACTCGTTTTCTCCGGCTGACTCATCTTGTGAATGTTGGGTTTTATGCACTCACGATCTTCACGGACTTCCTTTTTGGGGTAAGGCTTAATTTAATTTGATTCATTGCGCCTACGCTCTTTTTACGCTCTTGACGTCAATATTTGGTACGTCTCCCAAATTTGGCACGTTGGGACTCATTGTCCTTTCTGTAATCGAACGTATAATTGGGTTGATGCAATAACCCATTACAAGTCGTTTGATATAGCCCATGGAGAAATCCATCAGATATTATATACATCGAGTACCGTCGTGGCCAGGAGAATTTGAATATAAATCAGGACAATGGATTACAGTATCACCACCCTCTATATCATGTACCTTTAATGAATCTCACGCATTCTCGATTGTCGCCTCAATTCCACAGGATGAGAATATGAGGTTGTATATAAAAGCAGTTGGACCTTATCCCCCGGACATGGAAGTAGAGAAGTGGATTGATAAGCTCTTGAATACAGGGTCACCATTCCCATTGGTAATTCAGATGAAAGGACCATATGGTGACGGTAATCAGGAATAGATGAATTATGAAGTTGCAATAATGGTTGGAGCAGGAATCGGAGTGAGTCCATATGCATCCACGCTTGTTAGTACCAAACACATCAAGTGACTCGTTACAGAGTGATCGATGTCGTAAATATTTCCTGTGTGTTCGAGTCACAAGAACTTTGAATGGTTTGTGGAAATGCTGTCCTGAAAAATGACTATTGAGAATCATTTTAGCAAAGCCTCCTGGGCCCGAGACACACATTATTCGTCACTCAGATGTTCCATAAGTTTTATTTAAGCGGAACTACTATGCTTGAGTTTTTTATGCGTTTTTGGTTTTTACATGTATAACTCGGCTAAACCTAATGGAGAAAAAGGTTCCTTAACTAATAAAATGTTGCTCAGCTAACTATTTCTATGCAATAAAATATGTTTCAAAGTATCATCTCACAAGTCCAAATTTGATTATTTTTCTTAAACCGAGTATATTTCAAGTCCGAAATCTAGTTTTCTTGAAAAAATTTGGTATATTTTTTGCACATAATCATTTTATAAAGTGCTCTGCAAATCAGAAATAGTTCGAACAGTCTTTCATAGTTAGTGTGACATTTATTGGAACTTAAAAGAAAAAATTACGCGACATAGAAACGCTCGATTATCTGAAAAACCAATGGATTTTGATTCTAGTTAATTTATTTTCAAAAACCGATATAAACATATTTTGTGATAATTGTAAACTAAAAACTATACCTGAATATTTTTATATTTATGTGGTTTTTGATTTCAGGATTCAATGGTAAAATACTACCCTAACGGCTTACCCAAGTCTCAGAAAATTGTAGTTACTCTCAACAAATTAATACATATCATTTCTTATATGAAGTACGTTTGCGAGAAGCACTTCCGTGCCACCAACACAGGCATATCAATGTTCACTGGCCTACACGGTAAGAATCAATTCGGACGGCCCTTCAAAACTTTCTTCCAATGATTTATTCAGAGTGAGATAAGGAGGTTAGTTTCATGGTTTTAACCTCTAAATAAAGCAAATTTGCAGCAATCCGAAATTGGAGTGTTCAGTTGTGGACCTGTATACTTAAATGACAGTATAGCTGAAGGATGTGCATGCCAATCGACAACGAGATGCTCCATTTGCACTTTGAACCTTTCTAATCTTCCCTGTTAGATTTACTATGACAAAAAAAAGATCATGAATGACAAAACATAGAAAAAAAACCTGAAATAAAGATTTCACATTTGTCCAGGTAGTATATATCCCCAATACAAACATTTTGATACGGTCTCGAAACTTCCCCATTCCCAAATAATCATCAGACATTGTAATTAGGCAAAAAACCAGACCCCTCGGCTCCTCCCTCACCACAAATAAAAGCAATTCCCCCATTTCCCCCCAGTTCATTCACCAACAATGAGTTTATGACGTTCGTGTCATACACTTCGTTTTCTTTACGTGTTCATTTCTCCGTTCTCTTCCTTCTCGTCGCTTTTATTGTGATCTATGACATTTTCGATGAAATTCGAGAATTTCAAGAAGTAATCGAAAAAGATGCCAGGAAGTTTGAGGTAAGGCAATATGTGGTGCAGCAATAATATCCGCATTTTTCGTAGATCATACCGTTATGGGACAGTCTGACACCACGTGATAAAATAGTATACGAATGTAAAGCAAGGTTGAAACGAAAATGAAATTTCGTTTTCGAAAACGAAAACTTTTCGTTTTAAACGCGAAAGACTTAGAAAACGAAAACGAAAATATCAGTTTTGTCCTATTTAATTGGTAAAATATAGTTTTAGGTACATGAATTATTAGGTCCATTTTCGAATCAATAATAAACAAACAATAGTTTTATTACAAACAGTAAAAATAAAATAAAGCTAAAGAACAATAACAATCACACTTGCTGAACAACTCTTCCATTTATCCAAATTTAAAGCCACTTTTTGATTTAGCGTAAGAACACAGACTTGCTCAACGACTCTACGTAGACTTATTCCAGCTTTGTAGAAACGTGAGCCGCCAGCTCCTGAGAAAACTCGTTCCGATTCAGCAGATGAAGCTGGGGTTGTCAGATATCTGTTCGCTATATGAGAAAGCAATGGCAACTTAGATCGATTGAGCGTATTTTGAAAAAAGAGCGGGGTCTGATTTTCTATTGTTGTGGGTATCGGAGAAAACCAACTTCGGCACTAGCACCGAGCATGGAATCTACAGGCGCTTTGTATTCTTTTTCTGATCTTGGAATGCTTTTTCTCGTAAGCTTCAAACAGGAACTTCGTTATTCCCACTAGAGTTTCATTTTCTGGCTCATCGACTGCTTCTTCTCTTCTTTTAATAATCCTTGCGCTAAGCTCAAAACGACCAAGCTCTTTTCCGTCTATTTTCTTTTGTATCGTGGGTCCCAATGTTTGATGCAACAATCACCAGTTTGAATGTCACCAGTCGGTGCCCGCGTCGTAGGTGCGGTCAATGGCTGGTATGTATATAATATATATTAGATGGAAACTATAACATTGAAAAAAAAAAGCAAACATTGAAACACAATAGAAAATCAAAATATGGGCTCTTCTTGAATAAAAATCAGAATTACGAATTGTTCACTGGGGCTTATTTCTTGTACAAAATAATGATTTTGACCAGGCTCAAAAAAAATACGTTGTGCACAGAGAGAGGTGATGTTCCTTTTTTCGAAAATTCGAAAACGAAAACGAACAAAACATGACAGAAACCCGAAAATAACGAACAAACGAAAATTCGAAAACGACAAAGTGACAAGCCATTCCTGATTACAAGGTCGGTATTTCATAAATATTGTAGAGAAAGGTTGCTACTAGCGATGATTCCAAAAAAATTTAGATTCATCAGAGATGTACACCCAAATACCCAAGGCATCGGCCCTAATTATTGATTAGACACAACCGCGCTTCTTACTTCCAACAAGCTTTTCCTATTTTTCCGGTTCTACTTCACCGCCGCCTCACGTTCAATTGCCGGTTTCGACAAGCGGAGCCGATTCGGAGGAGCTGTTTCTTTTTAGTTGTATATACATCTTTTTAAAATTAAAAAGTCAGTGTTGTTGTTACCCATAAAACAGTGAATGAAAAAAAAAGAAGTCTAGACAGATCAAATGTAAAACTGGCACAGAATACTCAAAGAAGCATAAAAAATGTATTTTAATAATGGATGATATAGGGAAGGTTAGAACGTTTCAAAGCGTGTGGTGCAAATGAAAGAGCATCTCGTTGTCGGTTGGCAACTGCACATCCTTCAGCTATACTTTCTTACACGTCGACAACTGAACACTGGCCCGATTTTGGATTGCTGCACATTTGCTTTATTTCGAGGTTAAAAAGCATTTAACTAATCTCCTTATGTTCACTCTGAATAAATTGGAAGAAAGCTTTGAAGTTGGGCCGTCCGAAATGGTTATTAGCGTGAATACCAGTAAACATTGAAATTCCTGAGTTGGTGGCACGGAAGTGCTAACCTCTGGACGAATGTACTGCAAGTAAGAGGTTCAAAAGTTTAACAGCTTCAGACCTCCCGCTGATGCCACTACGTTTAAATGCGTCCGCTTTAATCAGTTTATAACCATAACCTGACGTTTGATTTTGAGAATTATCTTCAATAAACTCACAAGCATAGTAGTTCTCAAATCACTTGTGGACCGTCTGATTGACAAAGATATGTGTCTGCCATAGTTCCCGACCTTTCGTGGTCTCACGTTCTTTGAGCACATCCCCCCACAATCCAAGGTTTGCATAGTCCTTGTGAGCTTTCGAGTCCACACCCATAGGAAATATACTTTACGGCCACGTACTCTGTGAAATGAGTCACTTGATGTTCGTTGTACAGATCAACAACGATGCATATGGAGTCACTCCGATTCCTGCTTCAACCATTATTGCAACTTCATAATCCATCCATTCTAGGTTACCATCACCATATGGTCCTTTCTTATGGATTAATGGAAATGGCGATCCTGTGTTCAATTATCTTATCAATTCGCTTCTCAACTTCCATGTCGATGGTCCAACTGCTTTTATATACAACTTCATATCATCCTGTGGACTTGAGTGGGCAATCGCCAGAATGCGTGAGCTTTAAAGGTATTTGCCGTGATATTTATGGTGATATAGGGATACAGTATGACCCATTGTCCTGATTTATATTTAAACTCTCTTGGACGACGGTACTATTCATATCAAATATCTCATGGAAGGATTTCTGCGTTTACAATTTCTAAGTTTTTGTAATATTGCATCAAACCAATTATGCGATCGATTACAAATAAAACGATTGAGAGGGACGAACACCCACGTAGTAGCAAATTTGGGAGACTGCAGTTGTCAACAAATATTCGAAGAAACTTCTTGAACTGAACAGTGGCAAAACATCCAACAACTTTGGAAGCCCATGAAGAAGAGTACGTGCGTAAAAGGCAATATTGAAGATGTGATCCCTTCAGAACCGGAATGCGTGATAAGCTCTCTTAATGAGACATGGGAACGCGAGATCATAAATGATGCACATGACAGCGACCAATGCAATTCCTGTCAGACCTGTAATTGTGCTGAAGAACCAGTAAATGATTGAAGGAAGGAAGTTGGATCTGAAAGTTATTTGATGAAAGTTGTTGTCAGTCTTGAGAGAGTTTGTTAATGCGTATTCTAGTAAGATTGAATGCAAAAATGAATTCAAGTAAAGTATTACCCAAAGAATGCTTCCTGAAAGAGACAAGCAAGACCTTGGGCTTGACTTTGAGTTCCAACGTGATAGAGATTGACACAATGTCCAACGGTGTGAAGAGTAGCCCAGAAAGCCGCGAAAGAGCGCAACGATCTAGAAATGTTCAGTTATTATAGAGTTTTTGATACTGGCGGTCATAATAAACAATACTTTGTCCAAATAGTATTTCCCATTGTTTAATGTCATAGTTTATTAGGTGTATATTCAAAAATCTGCCACCATCCTTCAGAACACTTATGTAAAGTCGACTTAAAAACATCTGAGTTTTTTGAGCAACAAGAGACCCACACTCGTTCTAAATAGAAATATATCTGGAGCACAGGAAAATCTTTAAACTTAGGAGACACTTTTTTAGTAAACAGAACACTACACACAAGCAACACTGATGTAATGTTACCTTATCCTCACTTCTATTCATCATTTATTTTGCCTTTTAGACATCGATTTTTGTGTTTTGCTTCTTCTCCAATGTAGCCATTATTTTTTTTCTCATCCCTTTTTATTTTTGTTCCATTTTTATTTATGTAACGTATGGTTTGTATATTTTAATGTGAGTTTTTTTTCCGTAGCTCACGATATCTTACTATCGTAATAAATTTAAAAAAATTTTATCAAACACTTACGAAGTTTAGGCCGCTATATCATAAGTTCAAACATCTGGCTGAGACACCATGTTCGATGAAAAGATCTTTCCTTTCAGGCGTTGTATTCTATTTTAAAAAGTCTTTTCAAAACATTGTGTACGTACAGTACAGATATCCTACTTGCATGAAACCTCCGCATTACTGTACAGATAATAAAATAACACGTTTTCCCTTATATCTGAACATGCTAAATATTTTTAAAAACAACTGCTCATTTGACGGATAAAATTTACTAATGCCATCCAAGAATAATATTTAAAAAACATGTGTTACACGCTGCCCTAACGTTTCTCACCTTGTGGTTCCAACGCAATAGCCGCAAATAGTCTGGAAAATGGAAAATACTGCGTACAATGACTGTCTCTCGAAGCAGTGTGATTATGTTTCCTACAAACTGTCAGCAATATCAACGCCATGCATTATGAAATGGCTCCCGCGGCACCACGAGTAATAGCGATTCCAGCTCCCATTACTCGTCGGTGATCCATGCGCCATGTATAATCTGAAAACTAAATTAACATGAGCTCCCCATTATATGAACACGCCAAAACCGTTCGAAGAAAAGAACAAGATTGATGGCAACAAAGCAGAAGACAATGACAAACGTGTGCGATAGGTCTCCAAGAACGCTGAAACCTTGTGGATCAAAGTTAGCGGTGCTGAACTGTTGAGGTGCCGGATCGATCCACGACGGCAAATGAGTTCAGAGAAGATGTTCTAAAAGTTATAATTGTTATACGGTAAGAGGCCTCCTGAATACTCACTCTCCAATACTTGGCTGATAGACATGTTCTCTCGATTGAACGTCAGTCCAACTTGCTTGTCAGGTATATCCGAGAAAGCAATCCGAGCAGAAATCATCGTAAGTCAGGTACCGGTTGGCATCATTGCTCACTCCTGCATAGTTCAGCACTTCATTGAATAATCGGGATGAAGCTGCACACATTCAGTAATGACTCCAGCGGCGACTTTGATTGTGGGACCTGACGAGTTCCGCGAGAACCTTTCGGAGTACCTTGTTCTTTCCCTCCAACACACATTTTGACTAGAGTTTTTTTGCTCTTGAGATCTGAAAATTAAAGTAGGTGGTGCATAACATTTTTTAAAGGCAGTTTTGGTTTTTCTAATGTTCATTAAAAGAAAATCTACAATTGACTAATTTCTCGACACTTCGGTGCCATATTAGTTTTGACCTCCCTGTCACACGAGAACTTTCTACAGTGCTCTCGCAAATACTATCGGGCTCCCCCGAATAAATTCAGATTCATAAAGAATAAATAACCTTTAGAACTTTACTATGTGCTCTCGAAATATTGCCGACCATAGGACACCGAGTTTCCCGGCTAATGAACCAACAATGTTAATCCAGCGGTCGCTAACCGCCTAGTCCGTTTCAAGTATCTGGAAATAAATTTCTTTTGGAGACTTCGGCGTTCTCTTGTTGTAACCAAGGTCTAACCTTTTATATGTAGTTTTGTACGTACAAAATCAAAGACAGTTCAAAACAACTTTACCGCTACTGCTGTTACACGTAATTAAGCTGTATTAAGTATATATTCAATTAGAACTTGCAAAGTTAATGGGAAACACGTCATGCCGGAACATTCTAAAACGTAGTCTTTGTATCACGACAAATTTATGCTGAAATAGTCACCATTACTCTCTCAAGACTGTCCCCCAATTGCATTGAAACTGAGCCACGGCTCATTATGTTTTTGCTGCATTGGTCATCGCGAACATTCCCTTCTCAAACTCATTATTCGCTTTCATTCCCAACTTGCCAGTTCCTCGCGAGATATTGTCTTAATATATCATCATTTTCCGTGATGAGTCAAATGAAGGTTCCAAATCTTGAAGTGCACTATCATTGAATTCTTCCCATTTGCGTAGGCTTTCGCGCACGGATGAACAGGACCAGTCGGTTGACGGCGTTTCTTTTGTGATTGCTTGGGATAAGAGATTCTGAAATAATTTCGAGACTTCAACGTATTTCTTGAAGTAAACTGACAGAATTCTCGTCATTCTTTAATGACCTCTGCATTGATTCCACTAGCCGCCTGTCTAATTTGATCCAAAAATATAGATAAATCTCTTGCTATCAGACGACAATCTTATGACCAAAGCACTGATGATTATTCGAGACAGAAGTACAAATAGTCCGTGCATTGCTGATGGATTCGGCACAGTGTGGAATGTAACTGAATCTTCTGTCCAGTAAAACGAATTTTTCGGATTACACCGCGTGGCTTCTTAACTGCCAAGGTGGTGTTTTCTATTCGGCTCTATCCTGACATGTCGTATATACTCTTCTTGAAGCCATTCCAAAGCATTTACACCATAAATATCTCCCTTCGCGCCACAATCATCATAGTTTTGCAAAGTAGTTAGGCTGTCACAAGCACTGTTGTGGCCAATAGCAATGCGTCGATTAACCAAGTATCGGCCAATTCCATAGCAAACTGAAAGCATTTTGGTTTGTATGGAACTAGATGGAATAGCTCACTTAATGGCACAATGCTAATCCAATTAGGGCGAAAACGTAAGTGGTGATCAGTCCAATAAGTTGATTGCATAAATGGCACACATGGTTCAAGTCCAGTTGTCTGTTCACTTGGAATGGTTGCGGGGGTAACCTTCCTTGAAGAAGTATAGCTGGAGTGATAAATAAATTGCAATGCGGAATTCAAAAGAACATAATAATAAACCATTAAATTTGGAAAGTACTATTACTTACATCCTTCTTAATGTCTCATCGATATTGGTGGTTGCTTTGATAATATCTCGAAGTGAAATACTATGAATTATTTGAACGGATTCTTCATCAGTGAGTATTATTCTCAAACCTTTAGAATCTATCTCCATCACGAATAGGGGTCAATTGATCCTTTATGATTCTTTGAACAACTCTCCAGGCCCTATTTTCACCTCCTTCCAGCATTCTAAAATAATGACGTTTTATTGATTCACGTAATCCAATATATGTGCACTGAGAAAGAAACAAGTATGCGTAATTTATTCTGCCTGATTTGCAAAACATACTACCTTGCATGGGTAACTGAAAGAATTAAGGAATTGCTATACTATAAAACTGAGGTGACATACAACGTCCCGCTGAGAGTCTAGCCTGCTACAAATTATAGAGTATGACCTAAAGAAGCCGTTAGAAGTTACTCGTGAGAACTTTTTAACCCTTGAGAAGACTTTAGCGAATTCTATTCAATCCACTTATACCAATCAGTTATAAACGAATTGATTTTCATTGTTTTTGCTTGAAACTCTTCGAATTCACCGCATTTTAAGTTACGAATTCTACTTTAAATCCAAAACTAACCCTCCTAATAAGCATCCAAATATAAAATAGTGCCTCCATGCAACTCTTCGTTCAACTTCTCCACCTTTGCAGTATGCTTCTTGTAAAAGTCTTCATTCATTGTATCCCATGTCATTGGCGCAAGTTCGAATGTTCAATTCATTATACGGTGGTACCCCATTGTCCCATCCTCTCATTATTGATGAAGCAACAACATCCAAACGAGAGAATTGCGTTGGACCGAAGAATCACGAAGATCTTCAAAAATGACTACTATGTTATCATCTCGTTCAGGTATCTCAAGGCTTGCCATTCTAATCTGTAGTTACAATACCTCTATTATATAACCACTGCAAGCCTGAACTAACCACGAATAATCTCATCCACACTGAGCGTTATTCCTTTACAGGATACCTGCGCATTCCACCAATTCTGGGAGAATCTTGACCAATGCAGGATCTCCACCAACTTCCGTCCGGAATTCACATTTATTTTCCTCGTTTTCTCAGAAGCACTGCTGTGGCACAATTGAGTGAGGGAACCTGAAGGCGGCAGCTCCAAAATCATGCGAGATTCCTGGTGGACCATGTGTTTAAGCATGTGTTTGGTGTAGTTTGACAAACGAACGTCTTTAAAAGAAACACTGAGTTTAAGGTATTATAACATAGTTGATTAACCTAACAGCCCTCTCCGAAGTCATATGCAATAATCTTCTGCATAGATGCAATCACCAAATGACGTGCTGCCTGGAAGATTTGTTGGTCTGTCCAGTCAGGATGTTCTCGATGGATTTGATTTGCATTGCCAACGGAAGTGGAGCAGACCAAAAGAAGACCTGGATTCTCATTCACACGCGAGTCTCCCAACACTTCAAGTTTTAAATATTTATACTTTTATAAAACTCTGAACTCACTAAATAATCTATCTGGACTCATCAATCGATGTACTGGTGGCGGAGCGGGGTTATTCAATTGGAATATGTGGGTTGTTAAGTGGTGGATTATCCAGGTACACCTTCAGCCACCGCCCTTGTTTGAAGGATCTTAATGAGGACACCCATGGCTGGGTGGTACCATAGATGAATGATCCATCAATCCATGAAGTCCGTTCATCGATTTGTTCTCGAGGTGAGTTGAGTAATCCCATTTCCAGTTGCTTTATCGTATTTGGCACGTGTGAATGGGATTTCTGTCTATCCCTCACATTCTTTATCAAATGCATTATCACATAGGGGTACTTGTCTGAATTTTAACTGTCTCTAGTGGACAGGATACTCCATTTGATTGCATTATTTCATAAGCAACTACTTAGGACCTATAATTCTTATTACTAATTTTTAGAGGGCGATAAAAACCAACTGAAAAATGCCAAAGATATCGTGCATCCTCTTGTATTAGGTCTACCGGACTAACTCCTTTGAATAGTATATCGGAGAGTTCACGGGCGGACGCAAGTGAGTAATTCACTGAATATACACCGTCTGAGTAGTAGGAACGTGCATCTCTATGCAGCCGACTTCCTGAAGGAGTAGGGTAACGTCATACGTCTTCTCTTCCGAAAAAACCTACCAGCAGACCCCCATTCAATCCTCGCCAGATTGTTGTTCCATCAGTCGTATCTTTGAATTTCCTGATTTTGTTGGATTCCTGAAAAGATAAACGAGTTTTTTATTTCCAGGCCACCAAAATCTATATGACGGCCTTTTAGTTCCTTATTGAAATCTCTAGATCGCACAGTCACACATGCTCCCTTCACTACATTTTCACGATTCGTGCATTTTCTCACTGATCGCGCAAATTTCCGGTCAGTAGCGGAGCAGAGCAAACATTTGCCTAGCCCCTCCACCAGAAACAATTATTTTCGTATCAATTTCGCACCTTTATTCCGTTTGTTTGCCTCTTTTTTGTACATTTTATCCTTTTTCTAGCGACAATTGACGGCAAGGTCAGTACAACAGGAAATTGTTCCTGTCGTGAATTTCAGGAATTTTTCCAAAATTGGTTGGGAAACTACCACTGTGTTGAAAATTCGAAAGATACACATTTTGTTATTTAGGTGTAAACATGAACACTAGGTAATCTATGTGTTATGAAAAAGATAGAACACAGACACCGGGTGGCATACAGAGCTTATCAGTAAACAACTATCAGTGCTTTTGAAATTTTGGAGGGGCAGAAATAAATGTTGCGGACAAATTTTGTTTGGGATTTGAAGTTATGAGAAATACGCAATTTGAATTTTTGAACATTTTTTTGTAATTTTTATCCCATTCACGCTTTGTAATCTAACATTTTGAGAATCTAACCGGCAGAGAAAATAGTACAGACACGTTCAATTTCTTCCAAAAATTATCAATATAGGCCACTTGGTGTCCATCTTCCTTAACTGTTTGCTATAATTCCTACCTCTCTTTAAAAGAAATCAGCTACAATTTGAACAGATCTTGGTCAATACATTTTCAAAGATCGGCTCGATCCCTCTTAAACATTTAAGCTAGCAGGTCCGCTCTGTTGACAAATTTTCCACCCGGTCCTCCGAAAGGAATTTTGTTGGTCAGCCAACAACCTAGACCATGAACCGATCGTGCAATTTGCCTGCTTATAAAAAACGATATCTAGGCCACCCATTTTTAAATACTTTTTTGCCTAGTCTTAGGTATGTGGAATAAATTCTAGGTCAGGAGGTTGTCTAGGCCACGTTTCCACTCACCTTTCCGGCTGCAAAAATTGAACTGAACAGTATAGCTCTGTACAGCACATTTGAGCGCATTGCTCGTGCGCCTTAGAGTTTTAGTTGACCTGAAAATATTTGACTATTTAGAAATTGAAATTTTGAAAAGCAATGATTAAAGGTCAAAAAAGATGTTATTTATACACATGCAACATTTCAAAATTCTGATAACAAATATTTATAGGAACACTTTTTCCAACAATACGGTGACTAAGGGGGTTTACTGATAGTAACAAATTGGAGCGGTACAGGAGGAAAATTTAAACCGGCTCTACCCATTTTAGTGCTACCAGCCGACAACTCGCAAAAAAATCAATCAGCCGCACACCCTGCTTCGCCTGGATCGTCAATCACAGCGTTTTGGAATTTTCCTAATTTCTAAAATTTAATTTTCTAAAAACTGGGGATTTTTTCTGTAATTTTTTTTTTACTTTTAAATTATTTTTTAGGATCACGCCTTTTTGAAAATAACTTTCGAAAAATTGTTCGCTAAAAGAGTATAAATAAGATCAGGCTTCGAAAATGTTTCAAAAAATATTTTTTCACGATTCTGCAACAACAAAAAACAAAGACTGAAAAAAAGTAAGAAATTTATTTTGAACTTTTCAAATCTACATTTACAACAAAAACAGTTCTTTATAGACAATATTATTAAAATCCAAATAGATTCCCAGTAGATTTTGTTTAAATATTCAGAAAAGGACCAAACTTTCAGTTTTTGTGTTCTTAAAAAAAAAAATTTTAAATTAAAATTGTGTGATTATCAGTCTCAAAAATTCCAAAAAAGAGGCTTTTAGTTCTGTAACTTTTGAAGATTCAAAAAAAAATTGGGGGAGCCAAAAACTCACGCTTTAAACCTGCCCGCGAGAACTGTCTGCAAATATTCAACTTTCTCATTTTTATTAATTTAATGAGAAAATTTAAAAAATAAAAAAAAATTTTAAGGCATGGATGCGAAAGGCACGCGGGTAATTTTAAGCCCAGGCTGGCGTTTTAACTTAGGCTTCCATAGACCAAATATTTTCATACTTGTTGAAACTTCTGTAAAGGTTTGAAAATTTTTGAACAATTTAGGCCCAAAACCTTTGTTCCTAAAAGCATTCAAAAATTCTTTGAACAAATTCCGGTTATACTATCATAATGGGAGGAGGAGAAAAATATAATATGATTCTTCGTCAGACAAAAATAAATTGGTGAAGAGAAAAAAATGAATTGAGAGAAAAAGAGAAAGAAAGACGCGTCTTCCGAAGAAGAAGGAAACCTCCTGCGCGGGATGCCGAAACAATAAGCAGCAGCCGGGAGTGAGGGAGTGCACTGCACTAAAAAATGCGAGAGATTCACAGAAAATCGGGAGAAACCCCCCGTATGTCGGTCGAGAAACACCTAAGACCTACTTCATATTTCGAACCGGTTCATTTTCATTGGCATTCGTATTATTTAAATTATTTTGACAAGGGCAGTCGTCGTAGATGCTAATGTTGCCAGTTTGACGGGATGGCCGTGTCACTTGGGAAAAGATTGGCGGCAAAAATCGGGGGGTTCCTAGCCACCCTTTATCTTCTATGGTCGGAGAGGCGTTTTCTACTTATTTTGGTAGATGTTAATTAAAAATTTCATCAATTTGGGAGTAATAATGTGGCTGCAAATCATATTGAAATTTTCTATACAGTCAGTGCGAGCCAGCCTTATAAATTTTCTAGTGCCGCCCAGAAAAAAAAAATATCCTAGGCCACCAATTTTTGATCATTAATTTTTTGGCTATCAAATTAAGTAGACCACTAAAGTGTTTCGTCATTAAAATTTTCTAGGCCACCAATTTGGCTTGACTACTAACCTTCTTGGCCATCACAATTTCTAGGCCACTAAGTTTTTTGTCTAGGCCACTAACTTTCTAGGCCACAAACTTTGATGTCAGGCCATAAAGTTTTTCCCAGTAGTATGTTTTGCTCTTCAAATTTTTCAGGCCACCCACCAAAATTCTATTCCAACATTTCTCCGTCCCATCAAAGTTTCTAAGGCCTTTTATAGACGACTTCTTAATTGTAAGTCAAAGTGTTTCAAGACCATTATTTTCAATACACTAAATATCAAAAAACCAAATATTTTCCTTCAAAAACTTTGCAAACTAAACTAAATGTTTCCAATACGTGCTTTATTTTTATATGTAGGCGTTTAGACACCCCAGTGGGGAGGAGTAAATGTTAATTCTTATGATTATTTCATTGGGAGTCACTTTTCTTGTTCAACGTCTTTAATATTTTTGAATAGGATTATCATTGGTATTGGCAAATAAATAAAATTGTGAGTGACGTGGTGATATTGGACATTATTTGATTTTAGTTTGCTTTTTGAAATTTCAATTTTCGGCACTTTAATAATTGTTCAAAATGGTCATTTGTCTAGCAAATTTGCATTTTATTAAAATTTTTTTCATTTATTACATTTTCAGTGAAAATTGCACAATCTTTCATTTAAAACTCACTTCTAAAATGACAGATGCGAAAAAATAATTAGGTTTCAATATTCAAATGAATAATTTTTTAAACGATTAAAACAAAATTATAGTTATTACAAATTATTTAAAAGATGTCTATACTTAATCAACACTACAATTTATGTTTTGTTTTCATTTACTCGAAAATCCAGAAATTTTAGGTTTTCGAGAAAACTTATTTGTTTTTAATAAGTGGTTTATATAAATGAATCCACTTGAAAGTGCGAAAATGTACTTAAAAGAGTCCAAAATAAGCAAATATCATCACGAAGCGCCGAACGTAAGTTTTTCGAAATGTTCAGTTATAGTTTTGGTGAAACTGCCAACTTTACGAGGTTAAAATTTCGGGTTTAATTTTCAAGTCTGTTTTTATACAAATATAAATCAGAGTTATAAAATTTGTAAAAAAAAATTTCTTGGTCGGTATTTAAAAATGTGGGTGATAGGGCCGTTTTTGACAGAAAAAAAGTTTTATAATTGTTTTACATTTTACCAACATAGGAGCTGCCTTAAAAAATAGCTAAAGGCTTGGGGTTTTGCCCTAATGAACAGTCCCAAACTACCAAATATAAATGTAAAATTATTCTAAAAATCTTCAAAATTTTTAACGATTAAAAAAATTTGCGAAACTTTAATAAAGCAATATGGCGAATAATTGTTTCATTCCCGCGATTTTTTGATAATAATTTTTTTGTATAATTCTTGCATTTAATGGCGTCATTGCTTGTTTACATGTCACCATGTGTTTTTCGGCAATAGTAATAGAGGTTTTCAGAAAGCGATTTTCTAGTTTTTGAAGCACATTTCGTTCCCGTAAAGAAAACTTGATAATTGGAAAGAAATGTGGCAAAACGGCGCAATTGACCAAATCGACCAAAAAAGTTAACAAACTGTATTTAAAAATAAATTAATAACCAAAGTAAAAAGAACACCCACATAAATGTCAAAAATCACTCACCCATTTTAGCTGAAATTCAAAAAAGAATTCGGTCCTTCCCTTTTTTTCTAAACAAATATCTCTTAAATCATACATAGTATAATTTTATATGACCTTTCTGACAGTTATATTTGGCATAGTGGGACCTTTATAAGGGAAGTCAAAAAACTGAACTCCGGACTTTGACATGCTATAGTTATTTTTCGAAAAAAGAGTGAAAATAATGATCCCTCCAAAAAATTTTGCTTCCGCGGACCAGGTTCAGCAAAGTTATGACGTTTGGAAAGTGCCGAAAAAAATTCCTTGACCGACCCAAGCAAAAAAAAAAGATTCTTCAAATTTTCAAAAAAAAAATTCTGAAAGTTGATAACAACTATTGTAACTTATTCAAAAATGTGAAAAACGTTTATCATGCACGTTTTTTCTCCCCACGGACAAAAAACCACATTGCTTGATCAAAATTTCGTGAGCAAAATTCTAAAAATTACTTTTTCTTGTAGAATTATTGGTTTTCTGTTATGAGCTATATGCATGGCATTTTTCACTCTTTTGGATAATTTACAAATATTTTTTCCTCTTTTCAGAATTTTTTTTGAAATTTTTGAAATTTTTTAAAAGGGTGTTCCAGCCACTTTCAACATAACTTTGCTGAAGCTGGCCCAGCTAATTTCTTTTGGAGAGATAGCGTTATTTTCACTCGTTTATTGAAAAATTACTATGACATGTAATCCGGAGTTCAGTCGACTTCCCTTGTTAGGGCAAAAAATACCCACAGACGGTACTCCGCCTAATATCAAAAAAGTTCCCACTCGAGATCACTTTTTTACCATCTCAAAATCGTTCGGTTTGTTGGTGGGGGGGGGGGGGGCTTAAAGAAAAACGAAAAAATGAGACACTTGTCAATTTGATGGTAGCAAGTGAAATGGAGAGATACCGGAAAGAGAGTGTAAATAGAAGAAGGGAACAAACACAAATTTCAAAGTTGTCGGAAGGAATTAGGGTATGGAGGATAAAATATTGGAAATTGGGTTTAATAGGATATGTATCTAATCCCGAAGAATATTATTAAAATAACCGGTTCAAAGATCGTACTGAAAAAATCGATAAATACGTTGTGATGGTCCTACTTCCGTCCTCTTTACACAACCTCGTCTTCTTCTTCAGGGCGCATTCCTTGTAACAATGCCCCTTTTCTCTCTTGATGGAGTGCCACAAAACAGTTTGGCAGTTACACAATCGGAAGGCGAGGAAAGCAAAACGGGTATCAGATGATGATTAAGTGAAACCGGAACTGATAAGTGAGAATGGATTGAAATACAGATAGCCGTAAACTTTTAATAACCTAGAATATTAGTTATTAAAGGTGTTATGTATGTTTCGAGAACAAGATTCTGCTTTCTCAATTTTTGAATGAATTATGTTTGAAGTAATTTAAAATTGCCGAATGACGGGTTTGAATATTTGTTTTTTTAAAAAGATTTTTCGTCCGGCCGATTAGTATTTCGCGAAATGTTTTTTAAAATCTTTGGGTTTATGTTCTTCTCTTTTTTCATAAGTCTAAGCTTAGGTTTAGGCTTACTAATTCTAATCCGAAGCATAAGCTTAATCCTAAGCCTAAAGCTCTCTCAGCCTACTCTTTTAAGCTTAATGAATGCCCTAGCTTCATTTTTTTTCGCAGGTTTTTTTCTCTAAATCTCAAAAGCGATGCTACGGACCAAAAATTGGTGGTTCAAAATGTGTGTTTCTATTTTTTCATCAAAAGTTATTTTATGTGACTATACAAACGAGCTGACAATCTTTCTTCAAAATTCCGTTTTTCTTACCAAAAATAGTCAATTTTTCGAAATCTTGCAAAAAACCGTTACCGTTTCCCTAAGTTTTGCTTTCCGTAAATCCTTGTACCTTATGTCGTATCACATGGCATTAGAAATATTTCACTTGAACCAATCTTGTGCGCGTGGAGTACAAGTTAAACATCATATGTGGTGGGTGCAATTGCGCTCTATTGAACAAACTATGTATCAACAGAACGCGTTAACATTATAGCGGTTGTGCAGGTGGGGAAAACAGGAAAAACGATTAGGCAAAACAAAAAGTCTATTATATAAGTTTTCTTCTACACATCTCATAAAGGAAATTCTAATTTTTTACAAAAAGAGCGGGGGGCGCGATTGTAAAGGTTTAGACGGAGCGTTAAGATCTTTGTCGACAAGTGGTTCAGCCGACACCCTGTGAATGTGATTGCCGATATTGTCCTTCTCGTTGATTGAGTCTTTCGAGAAGAGCGCCAGAATGACGTGCAGAATGAAGAGACCGGTGGAGAGACCTGGGAGAGTTTTAAAATTTTTGAGTTTCTAGGCCACGAGTGTCGTCCACTATTATGTCCAAGAAGCTAAGGACAAAATGATTGTTCACTACTGTTTCAAAATCAGCTTGAATCTCAGTAGAAAACAAATTTCACTGGAATATTTCAGCGCTCACCAATAGCAACGACCAGAAAAACAGTCTTAGCAAAGCACACGATTGCATAAGTTGGCACAAAAATCAACGGAAGCATGCATAGGCATGTCGACAGTCCGGGCTTCACACATTGGCATTGCCATTCCTGCCAGAGTACTGTAGACACGTTCTTGTGGAGTGAAACCCACGTACACGAAGTTGTAGGCCACGTGAGCGGTGTAGTCGACCGAGAATACCGTGGCGAGAAGGACGTCCACTTGGATTACCGGGTCCAGGTCGGCACTCCAAAGGGAGAGAGACGAGAACTGTAAAAACTTAAAAAAAAGTAACTTTTTCAGATTAAATCCGAAGAAAATAACATAATTAATAAGGATTTTGTTTCAATGGTTTTTTAAAGTGACAACTACTCATTTTCAGGTTTTAAAAACTTTGACTTGATAAAAAAAAACATTTTGAGCTACTTAAAAAGGTTTTGAATTCCCATCCAAAATCTTTGAAGAAATACAAATGATAAAAATTCTTAAAAAAAAATTGTTAGCAACCCAAGCGTTCGCTAAAGATCGTTGTCGTTTTTTCTCAGACAATTTAAAACATATCCCGCCATGATATATATTTTCGGAGAATATCATTTCTCGTAAAATTGTTTTCTCTGCAAATTTGAATTCTCCGCCAATCATTTTTCTCAGAAAATTTGACAAAAAGGATCAAAAACATGAAATTTCCGTATGGCAAAAAATGTTTTCTCAGAGAATATGAATGTCCGCCAAATATATCAGATACTTTTAAAGTCTCGTCAAAACGTTTTCTTCGAACATCTTAGGATTATTTGGATTTGTAGAATTTTGATCTTGATTTAAATTTTTTAAGTTTTCTGAAAAAAAACAACCATAACAGATACTTGCAATAACAGATGTAATCACGCGAGCAACTGCATTAAAATTTGAAATACAAAACAAACGATTGCCATAACACAGCTAGTAACCGCAATCGATCCAAGTAAGTCAGTGGCCAACATCAAGATGATACTGAGAATTGCAGAGTCACAGTCCAAGAGTGTAGTGAATTGACTCATGAAGAAGTTCGGATATGTTGCATTGCACGTGCTCTTTCTGCCCATTCAGACATACGTTTACCGAGCCCTGAAGTGTCAGAACCCTGTGTTGGTCTGAAAATTTGGAAATTATTCGGATTGAAATTGAAAAGTGTCTAGGAATTAAGTTTGAACTATTTGAGAAGTTTGTATTTTAAATTTTGCGCTAAGTTGCCTGAAGAAAAACTAATTTCGAAGTACCTATATACCTACAATATTTTTCAAACTCAATCTTTAAATTTCGCGCCTAAAATATTTCGAACTTAAAATTTGCGACAAAACAATTTAAACTATTTGAGAAGTTTGAACTTTTAATTAACATTTGAACTCTTTGCGCCAATTTTTTTGCTTGGAAAATAACTTTTGAAATTCTAGTTGCAAGGAAATTCAGAAAAATTAAGGATGTAATTTTTTTATATGAAAAACTCTTAGAATCGATTTCGCGAAAATTTTTTACTCCTCGTGAATTGTCAAAATTTAAATTGAGTTTTACAAAAAAAATTGGCGGGAACGTGAAGTTTCATTAGGAAATTCAAATTTGATAGGCGTTTGACTAACTTATTATCATCTCCTGATATTTTACAAGGGTTCCGGGCGATCGCATCTCATCCATGTAGCGTCGGAAGATTATCATAAGATGGGTGGTAATTTTCTCCAACCAGAGTGGATAAAGTATTCATGGTCTTATCAAAATGCACATACTGCCGGAAGAAAAATCAGACTTCGATTGTCTCCACGAATACCTGGCACGTGTTCGAGCCGATCCATCAAATTGTTGAAAGAGGCGTACTGAAAATTGAATGGCCTAGTAAGTAAAAATTAGATCATGAGCTTACCTCTGCTTTGATCTCGATATTTGGAGGTTTGTTCACTATTACTGTAATGGGAACGTAACGGGATAGCAAGACTGGCCTGCAAAAATGATAAATGCTTAAAAAATACAACTTTTTTCTTTTAATAACGTAAAGAGCTTTTTAAATCGATAAAATCAGTAAATCGGCATTGCAACTGTAGACCAAAGATAACAATTATTGATTTTTCTTACAAAGACATTAAAAATAAAAAAAACTCAATAAAATTAGCGATTATCTTTCCAAAAATCTGAAAATCAAGTCAAATAATTTTCTTGTCGGTATCTTTTATGTTAACCTATAAATACCAATTATTGATTGTCTGGAAAATCAGTAAAGATTCAAATAGATTTTTTTGAGAACCTAAAAATCAGTAAAAAATAAAAAAGTTTTTTCAAACGCTTACGTTTCAAACAAATTCTTGATTTTACTTTCAAACCAAATTCATATTCGACAACGAATCCGCTTCGTTATGGGTCAGAAATGCCTTAGCTGGTTCAAAGGTCGTTTTCGTGGTCACATACTCCATCATTGAAGTTGTCAACGCATACATCCCAAGGCGCACCATACTGCACGCTACACGCCCCTTCAGGGAGCACACGAAGCTCGAGGACTTGGAGAGCCACGTGTCGGCTCCCGGGAAATTTTTGGCTCCGTATCATTGGCGATGGATTGGTAATCTGGGTCGTTGCAGAGGAATTCAATTGGAGCTAGGATCGTATGGGTGAAGATGTAGTCGAAGAGGCAAGGCGAGCGAGGCAGTTAGGCAGAACAAGAACATCTGGAAGATGAGTTTTATTCAAGCTAGCCCACGTTCTCACAAACTTGGCTGCGTGCCAAAGAAGGTTACCTGAGGCGTTGGCTTAGAATCCATTCCAAAAGCAATAATATTGGTGAGTGAGGTGATTTTACGATGGTCCAACATCGTGACAATCACTTGTTCCAAACGGCGAGGTCTCAAAATTTCATTTTACGATGCTATTCCAATACCCCTACAGTACTTTTGCAGTTTCTCTACAGCACCCCTATACAACTACGGTACATTTATTTATTTGTATATTTGTTCATCAGGGAACGATCCTAAAGATACAATTACAACAAGGCAGAATCTTTTACAATACAATGCCCCACCCTCTTTTTCCGTGAAAGGAAACTTACGTGTCAGTAATTGCAATATGATGTTTCCATCTGAGAAGTAGAATAAAAGCATCATCAACTTTTTCCAATTCCAAGTACCAAAAACTGGCGTAACACATGTAAATAGAGAACGACGGGAAGCCCATCCAACAAATTGCTCCAAACGAGGCGGCAGGCCATCGGAGTGAGCAATGATGTAACCAGATAGAATGCCATTTTGACAGATGACAGGCGGACAATGACAATGATGACCTGCGTCAGGTGGGAAGAATCCGATTGTCATTTCGTAGCTTCAATGGTTCCTCGAATCTCACGATTTGCTACTTGGTCACTGACAGTAGATGGTGAACTGAACGTGCTCGAAGGCAGAGGAGTTTGTTTTTTGGAAAGTTGGAAGAGCTCGTCGATTGCGCCCTGGGAAGTATAATTACGAAATGCCGAGTGCTTGCCAGTTTTTTTGATTATGTAAATTTGCTTCCCAGAATCCGAAAATTTGGTTTCCCGCAGAAAAGACTGAAATTTAAATTTCTAAAGATTGTTCAGATGTTTGTTTAAGTTTTCTTTAAAGACAAAGATTTGATTTTCCTATTGAAAATACATGGTGAAAATTCAAATTTACAAAAATTGAGTTTTGTTATAAAAACAGACTGAAAAATTGAACTTCCTGATTAAAATTGATTGAAATATAAGAGGCTCCTAAAAATCTTGAAAACTCGAAATGTAAATTCAAATTTCCCGTCCAAAAATTGACAAAAAAATTTGATTCTACTTTCCTGAAACAAGTTAAAAAATCAAAGGTCCCTCAAATAGTAAAACTGACTCAAAATTAATTGAAAATTGAAAGCCGTATGAGTCTTCTAGGCTATTCTCACCAAAGCTTAAACGCGAATTTTCCTTCTGGACATGTACCAGACCTCGAAAAATACCACAGCACCAAGAATTTGGGGCTGAGCCTCTTGGTCGGTGGTTCTGAAAGTGTCAATGTTTTTTCACATTTTTCCGGAACTTTTTATAGTTAAAAAAATGAAGTAGCTGGAAAGTGGCTAAATCATAAAAACCTTACTATTTTTCCATCAACTTTTCATTTAACATTTCAAAAAAAATCTAAAATCCGCATTACTCAAGTGAAGTCCCAGGAAAATATACGTGCCAGTCCGCTACATATCCGGATAGGTGAGAATACACTTGCGTGGCACCATGTATGTTTCTCCGCGTCAAATTCTGAAAATTGCCATCTGGTCGTTGAAGAGTTTTCTAGTCCACGACCACCACCAACAGTTTCGGTTTCGTTCGACTTTTTAGAATATCGAAACTGAAAATCCAACAACTTTTTGAGAAAAACTTACAAAGCTGATAATGTTTTTATTTTAACTTTTTTCACCATCATTCATTGACATTTAAGAATATAGATAAATGGGATAAGACCGTCCAGGTTTCTGTTCAGTTCTCCCTGTTGTTAAATTCATTAAGATTGTGGTCCCCAAAAAACAATGTTTCTTTCTTTTTTCGATTTTCAATTTTTAGATTTTTCAATCTTCACTAAAAACATCAATAATTGAAAAAATCGAAAAATGACACCCTAGACCACCACCTACCTCTAACAAGTGAAAGGGGCTGGAGAGTGGATCGGTAGCAATTTTTTCTTCCTTCCCATCATCGTGGTAGCCGAATGCCGCCGATAGTCGATTGTCCACAGTATAAATCTAAATTTTTTAAATTCCCGCCAGAAAAGTGGGCTTGACGGAGAATCAACTTACGTCTGCCAGTCCTACGCGCCTTCCTGGAGAATACTAATTTTCGCGCTGGGCGGTAAAAATACAGAATGCTCGTGCCGGATAGATGTCGAGTCCGTAGTATTCCATAGCCAGATACGGTTGAGTATTCACTGAAAAATGTAAAAAAAGTTTTATAGACATTTCCGCCAAAAGATTTAAAATAGGAGTTTTAAAAAAATTAACAAAATAGTTACGAACGAAGTTTTCATTTGCTTTAAAGTTTCTTTTTTTTCTTATTTATTTTTGATCAACTATTTATATTGGGTACTTTTTTAACTTCAAGTGGAATCCAAATTTTCTTCCCAGTCAACCAAACATTGACCATATCACAATAAGGGAAAAGGGAGAAAGGGAAATAGTTAGAAAAAGAAAAACATTGCGAAAAAACGTGTTATTTTTGACTGGTGGTGGAAGTAGGCTTCAAGGTCAGTAGTCACTTACTATCCAGCATCTGAATCATGATAAAAGGCTTTGCGAATATCTGGCTCTAAACGTATGTGCTACAAGTCCTGAACTGAGAACTCATAGGATGTATAAGAGCTCACTGAAAATTGTCCAACTTGAAAAATTTCGATTTTTTATGTTTATTAAATTTTTTCTGGTGTAAAATAGCAGAAAATGCCAAAAAAAAATGTATCAGACACAACTTCAATTTTTCAAACTTTTCGTTGTAAGACCATACAAGATACAATAAATTGTCGTTCGAGAGCGCTTTGCCCATGAACCCGTAACGGAGATTTTCATTCGACTACTCTATAGACCGCGTTGGTGATTCTGAAAATGACTTTTTCTTGGAAATTTAAAACTTTTAATCTGGGATTTTTCTGTTTTTTCCAAAAAATTATATTGAAAAATCAATTAATTAAATTTTTTCAAACCTATGGTGATTCATGATTTGATAACAAGAACATAGCTTCCTAGTTATAATTATCCTCAGTTTTCACGAGAGTAAAAAAAAACGGTAATAAAAACATTCTTTTTTCTATTTTTCTCAATTTTTCGATGTATTTACCAAGAAAATCGATTAATTTATCGATTTTTTTTTCAGAATATCTGACCGTTTTTGTTATTCATCGGAAAAGTTCAATATTTTATTTTTAGGAATTTGATTTCCAAACGTATATTGGTGGCCAAGTTTTCCCATTACTGATCGACGCATAAAAGTTAAAACCTCACAAAGTATCGAATAAACCGGATAGGCGGCTAACAGCCGGCACTGGCACGACGGCACTAATCACATCCCATCCCATTGAAACTTCGAAATTTTTTTGGATAATATTTTAACAGAATTTAAAGCAGCATGCAAACTCTCTCCAACAAAGAAAAATGTTTTTAAAAAATTGAAATTCGAAACACAAGCACGTGAAGCAGAGAATGCAGAAAACAATACCACTGTCCCAAAGTAGAAGTGAGGGAGGGAGGGCAATTATTTGCAGAGGTGACCAACGGGTTCGTCGGGTTCCAATTTTTCGGACACGGCGCAGAGGATTTGAGTCATTATTATTGTGTATAGAGAGTGTAAGAGAATTAGAGAATTTAGATGGGAAACTGTACGTACTTCTGCGAAATGGTGCACTTTTAGGATCGGCGGCCTAGAAATTTACATGGTGCTCTAGATGTCTAATAGATAGCCTAGATCTTTATAACTCCAGACAATTACTTGGTGGTCTAGAAGTTTTTTTTGTGACCTAGAAATGCAGATTGTGGACTATAAATTCACTTGGTGGCCTAGAAAATCATTTGGTAGAAATGTACTGGCCTGGAAATTAACCTTGAAGCTTATGCTAGAAGCTTTGTTAAGTGAGCAGACAGCCCAGCCAAATTCACTTGATTGCCTATCAATTCACTTGGTGGTCGAGAAATGTACGTGAAAGCCCAGCAATATTTACTTGGTCTAAAACATTTTTCAGTTAGAAATACATTGGAAAAAATTTCGATTAAGATTTATATTCTGGCGTTGGATGTGGTGACCTAGATATTTGTCAAGGGACTGATGAATTCATTTGGCGTCTAATTTTTTTGGTGACCTAGAAATTGATTTGGTGATCTGAAAATTCATTTTAACATGACCTGGGAATTTACTTGGTGGTCTAAAAAGTCTCATGGTGCCGGTCTTAAAGTGTGTTGCAAAAATTATACTACAATATTTAACTTTGAAATAAAAATTCAGCTCTAGATCTGCAAGAAAAATCTGTATTTTCTCAATTCAGGATTTTGATTAGTTAAAAAAAATCGAAATGATTGTTTAAAACGCGTTGCAAAAAACAATTTTGTAGCTCAGGAATGCGCTATTCTGGGGAGTCAGATTTACTGGATTTTACTTTTTTTCCTGCAATTCCAATGCAAAATAAGGTAAATGAGAAAACTAACACGGCGGTACATACAGGGGCATCTTGAATGTAAGGCAGTGTTTAGTAAGTGGACCGAGTGGACGGCAAACGCTTGTATTTTTCCTGTGTCGATGGGGGATATCTGTACCGCGGTTGCACACAAGAAACAAGTATTTTGATGATGATACGAATAAGAAAAAGAAAAAGGCAGCAAAAAAGTGTGTGGCAGACGACCACCGTCCATCGGATTAGGCTGAGCCGGCTAAGGCAAACTCGTTCTACCGAACAGAGGGCCGTTTGCAACCCCCAAAATCCTCTGAATGTGACGTCATTGTTGGGGCGGCGGGGTGGCGTCCAATAATTAGTGATTTTTTTTTTTGTATTCTGGAAAAAAAGGAAAAAATCGAGAAACATTCTTTTGTGTTTTTGGGGAGTCTGTCATGTGAAATTTAAAAATGTTGGGTACAATCAAAAAATCGTTTTGGTTTTTATATCTTATTTCAGGAATGTTTAAAAATCTCAATCGTTTTTCTTTGAAAAAACAAAAAACAACAAACATCAGCATCATTTTCGATTTAATTGTTTGTTAAAAAAATAGAAAGCGGAAAACACAAAATTTTCCGATCTTCTCGAAATTCACAAACTCATAAAAAAATCGAACTCCCCTTGTACCCCAGCACCCTAGCTGAGTCTTGCTTCCTGGCCAAAGGCATGGAGGGAGGCGGGCACCTCTTTTGCTTGACCTAAATAAAGGTGATATCCCAGTGATAAGGAAGGGTAATGATCCGGAAACCGCCTACCAAAGTGCATAGTTTCTGCGTTAAAAAAAGTGACAACTGACATCACACGGATGCTACAAATGGGGACTCACATGCCGGAGAGGGAAAATTGTAAATTTGTACGGGTAAGGGGATCAATGTTCAGTGGTGAGGTCGCGAGGACGGAGGGAAAAGGTGGAATTAGAATTGAATGGGAAATTGGTGGCAAAACGGTAAACAGTTCTTATTATCAAATGCATGAGGGATGGAGAAACCTAAGGAAACCCTTGCAGAATTTTGGAGGGGGTGATGAAAAGTATTGGCAACACCTTGGTGGACGAGAATTTTAAATTGATGATCCCATGGACTAAAAATTCAGATGATGGCCGAGTTTTTCATATTCGCACCGAAGAATACGGCAAAATGATGGCCTAGAAAGTTGTTGGAGCGACCTAATCTTTGTTCTTACAAATAGATCTCTAATGTTTCATCGAAGTCAAGGGATGTGAACTAGAAATATAAGATGGTGGCCTAGTCAACAATTATATTTATGGTTCGTCAAGAGGCCTAACTCTTCAATCACGAAATATTCTAGAGTTTAATCCTATAATTAGTATTGTGGACTAAAAGTCGAGATAATGACCGAACTTTAGCTCTCAACATCAATTTGGCCTTGAAATTCCGCCATGGCCGAATTTTCGTAAGTCGACCCCAGCGGTGGCTACGAGCCAAAAAACATAATTCCGCATTCATACATTTTAATATGAGGGAAGCCAGAAGTGCGAGCCTCATTATTTTGTGAGTACATTTTTGACTATCGTGCCAAAATTCCAAAATCCTCAAAAATTTGAAATTTTCGCGGCACAATTTCTGGTTTTAAATCTCTTTTTTTTAGTGTGATGTAGGGCTTTCCAATTTGCATAAAATAAAAAATCAACAAAAAGCCAAACATAATGTCAAATGGTCAGTTGCAATAAGAAAACAAACCTGCGTTTAGGATGGCCGAACCAGAAAAATAATTCAAGCTTTCGATTTCGCCCGAAAAAAATGAGGATCAGAATGAGAAGGTGTCGCCTATTAGAGATTGGAGGTTGTTGAGAAAAAGAGAATAGTGGAGCGGGGGGAAAATGATGAGGTAGAACGGAATCGAACATGCAAATAAAACGAATGTATTTGGTAGGAGAGGGAAGGTTACACTGTGTGTTCTGTGTTTGGAAAAGGATTGAAGTGGTGGAGGACTCTGGATTTAATACTACTTACCTGTTCTGATCAGGTTCAGAGGTATTTCAGCAGTCGCTCTTGTATATTTTGTCTTTTTAAGTTTATTTATCAAATCTTTTTTTGTAACTTTGAATCTGATGTCAAACTTTGGGAACTTTGAACTCGATGAAATTGCTCAAAAAGTAAAAGAGAATTTGCGCCCAACTCCTTTTTCGAATTTTTTTCGAGATACTTTGATTCTTCTTAATTTCAACACACAAAACTTCGCCAAAATATTGTTACAAAATTAACATTTTTATTTGTAAACAGCTGCTAAAGCACCACAAATGTGAAATTGATGCCTAAAATTAAAATGGAGTTTTTCAAAAAAAGCTGATTGAAATAAGAAAGTAAGCTAAATGTATATATATGGGGAAGATGCTATTTCGAATCTCGCGTTTTTTTAGTTGGGCATCTCCAAAATATGAAAAAAATACAATAAAAAGCTCCAAAAGATATCCAGGAATTTTTTCAAACTCACCAAGAAGTATGTTTTGATAAACAAAAATTTGAATTTTTCGAATTTTTTTATTCGTATAATACCTGTCACACTTATTTTCAGCATAAGAGGAAAAAATAAATGTTGAACTTTATTTAATGATAAAAATAGTTTGTCGAAAAGTTTTCGTAAATTTAAAAATTTAAGTTCTACCAAAATAGTTTTTCACCTGGAACAAAAAACAAGAATTTTGTTTGAGCTTATATAACACTACAACCACATTTTTGAGAACATGTCTAGCCTCTGTCAAACAGTTTTCCGGTAGTGGGTGTGGTTGCTAGTGATCAATAGATCTTCGTAAAAAATCGAAATTTTCCGTTATAGCCTGCTTTATTTTATGTGTTTGATGCTATAAGCGTTTGGATTGTATCAGTCCATATGATTTGACATTATTCGCAATATTTTTTTAAATCCGAATGTTTTTCGAGTCTCTATTTTTTGTAATTTTCCAGACGGTTTAAGAGCTAAGTTGTAGCTATTCTTTCCTATCAAAAAATGCAGGAATAAATACTAACTCAATTTATGCAAGATAAAACATTTACAGTGGTTTTTTTGGTCGAAACTAAATTCCGCAGAATTTGAAAATTACTGAAAGGGTTTTTCCTTTTTTAATTTGTACTCCCTACAGTACCCGTTATTTTTGAATTACAATTGGATGTTCGTACCTAAAATTGACACTTTTTCTCTAGTATATTTCCGAATTCAAAATTATCAGTTGAAACTAGATCCCACCAAAATAACAAATTGATAAGAAAACGTAGAAAGGGGAACGTGTACCCTTACAATAATATTAACTGTTTTCCCTCCAATTTTTTTTATTTTTCAAGGGTTTTATTCTTAATTCTATTCACAATTTTTCAAAAAATATTCAGCAAAAAAGTAGGCGTGCTGACTATATTAACAGTATAAAGTGAGTCTTTTTTGTGAGCATTAAAAAAATCAATTTTTTGTCCTAGCTTTGCAATAGTGGCAGCTCAAAAATTAAATGCATTTGTTCCATTTTCCGTAAAAAAGACAGTGGAAGAGTTTTTATCCGTACTTGGGCAGGCTAATATTTTGTGGCCGGTACAAATTTTTCGCGTGGTGCCTAGAAACCTTTTTTACGTTTTTTCTCGGAAACTTATTTTTTTCTGGCCGTGAACGAGTTTTGTTTAAATTTCAGGTGCTTTGAATATTTTGATGACTAGTTTATATTTTCCTGCTTCTAGTAATGCTTGGCCAAACGTCTTCACGTGGTCGGGCTTTTCATCGGTTAGCTTGATGCCCTAGGAACGTTTTTAACCTGGCGTTCTCTAGACAATAACTACCGTGGACTCGAAAGTATTCTACGCCACGAAATATTTGTAGCCTAGAAATCAAAGTCACTACCCGTGTGGCCTACGTCTCCCTGAGCATAACGTAGTCCTCGAGAAGTCCAGTCGACGGATACTGTCTACAAGATTAACGGCATGATAATCCTCCTGGTTCGATTACGATGTCCACTCATTCACTAGTCGGCGTTGTTGCAACAATGTGGAAAACTTTTTGGCATTTTTAAAGATTTTTAAACACATTTTTTCTGTCGGAACTGAGAACCGGCTGTTTGTAGAGAAAAAAATTGCATTTACTTTCCTTGAAAAATCTGTTAGCGTTCTTCACTCGCTGATTTATGTACCGTTTAAGTTTCAGAGACAGCGTGGGATTGGGGGACTGGACGCAGACAGCGAGTGAGTTTGCGTCTCCCTCTCCCTCCCACTCTCTCATAAGTTTTGAGTGTTCATAACTCGGAGAGTGGAGCTATCGAAAAATTCAAAAAAAAAAAGCCTAACAAAAAATTAATATAAAAAAATTCTACAAATTTTTAGTTGCTAATTTTTTGATAGCGATGCTAGGTTTTTAGAAAGGATGACGTTTTTAACTTACCTCGACTCTTTTTGTGTTACCAAGTTAGTATTCCTCTAACAAACCGCAAGACCTCACCTCATTGTAGCCTATTGAAATCTGTAAACGCCCAACGCAGGTTGCCTAGATTTGATATCCGCCTCCATCTCAGCCGTTCTCTTTCCATATTCTCCTAACTGTTTGCGTCTATTTTAATAATGGGATTATTCGGATTTCCTATTTCCGCTCAAAAACCAATAAATTTATTTTGTAGAGCGAAAAATTCTACACATTTTTGGAGTCAGCAAGTTTTTCAATGCACCTCTCCTCGCTGAGTTTCGTTAAGATCTATGATAGTAAAAATATTTTTGGGGCTAGCTATTGTTTTAGGATAATCAGGATCGCACGGACTTAAGTCTAGCCTCATTCCGAAATTTGTGAACTCTGTAAGTTATGTTGACTAATAGTATCCCTCTCCAGCTGTTGTTAATCTCCTCCTTCACTCCAGTTGTGATCGTTTTCGCTCTTCTCTCGCTTTTGCGCCCTCTCTGTAGGGTCCAGAGAGTATCAGTTATCTCCAGGACGCCGTGTGACGTCATCGCTGACAAGCCGTAACCTAGATAAAGCGCCCGGCAGAAGACCTGTTTTACCCCGACATGCCATTCGTGATAAATTTAGATTAGTCCTCTCACACTCTACATCTCTCCATGTTTTTTCACACGAACTATTTGTGTTTTGAAGAAATATCTTTAAAACTTTGCTTTGACTAATTGATAGCATAAAATGTATTTTTTCCGTAGCTCAGCAAATGGCGTAACTAAATGGTGTGAAATGTTAGATAGGGGACCGGTTTTGGCGGAAATCTCAGAAGAAATGGAGCCCTGCCTGCATAGAGACCGCTTTCGACTGATGACATCACAGAGTAAGGTGTCACATCTAAACACCATTCTTATTCTCTTTTTGAGGTCCAATTAGACTAGGCGGTCAGCGTGCTCTCGATTGCCCTAGCCGATGACGTCACATATTTGCCATTCACAACTTTCTAAACTTCAAACATTTTTTAATGTTTTCCAAATTTCAGCCGATTCCTCCAATGGGAGGACTCCCCTCCAAACATCACCACCTAACTGCCGTCCACGGCCACTTGTGGCCCAATAAAGGGTAACGTCGGATATGAGCAAGTAGCTCATAAATTGAGCTCTCTAAAGTTAAGATGAAAAGAAAATTATTTAGGAAGACGCTTCAGTGGTGTAGGGGTTCCTTGGATTACCGTACGCCACCAATTGGAGCCTTGCGCTTTAATAAGCCCTCATCGGAAACGGAGCCGCTGTGGATTCTGTTAGCCGCTGTTCGGGCCATATTAGGAGTCCGCAAAATGATGAGCCACTAGGGCAGGTAGGCGCCTAAATCAGAGCAAAACGCTGTCATTTTTATAAGGCTGTTCAGTTTCTAAGGTGAACACAGTCGGGAAAAGGTGCACTGTTTCAGCCTGAAAGTATTCACTCCAAAGTGGGAGTCAAATGAATCCCGACGGCTTCCCAGTGATGGTCTTCATCCATGGCGGAGGCTTCGGTGTTCACTCATCCAGCAACTATGGCTGCGTTTCATCGCACGAAACCTGCACCAAGGACGTCGTCGTGACCACCTGTTTTACTAACGCGTATGCTCGGCGGGATTCTTCACCACCGGCGAAGTGTGCCTTGGAAACCTTGGACTTTGTCCGGATCAGACTTCCCTGCCGCAGTCGAGTGGGTTCAGGAGATTCATCCGAGGAGACCCTGAATGTTACAATCTTTTTATGGCCAAAGTGCAGGTGGAGCATCTGTGGATCCCTTGCTTTGCCTATCGCCGCACTCGAGGGGATTGTTCAATCGGGCGATTCCGATGGAATGGAGAATGTGATGTTGCGAGGCGGACTAGTGAGTAGCAGGCTCAGTTGTCGAGGGAGTTTGCGAGATACCTTGGATGGGAAGTGGTAAGTGATTAACGCTTAGTCTTCAGATGTTAGAAAGTGCGTTGTCATCAGAGTTGGATTGAGTTTTTTTAAGCGTAATTTATACTAAAGCCCTATCGAAGCAGTTTCCTTGGCTACTTGGCCTACCACACTCAGCCGACGCCCGTCATAGCAACCACCTGGAGGCTCAAGACATTTCCTATAGTTATGTTCTATTGCAAATTTAATACGGTGATTATTCCAAAAATCTCATGACGTATTTTACCGAACGAGAAACCAGTGCAAACTTGTTGAGTACCTAATTACTTCACAGACAACGACAGTGAAGACCTTGTCCAATGGATCATCGACCAGAAACCCATAAGATCGAGATGGGCATAAACCCGAAAAGAGGATTCAAGCATTCTCAGGCTGGAAGCTTGTATTTGGTGCCAAACTTTTACGCACAGGCGACTTCTTCCCGAAACCCCCAGCATTAGAAAAGACGAAGCCCAAAGATTCGAATAATGACTCGGCAGGAACCACCAAGAACGGGGGTCTATTTTTCAGTGAATCTTCTGAAAATTTTCTGAAAATTTTCTATTATAGTCGCCCTCGGTGCCTTATCGAAAAATCCGGAAGGAATTAGTTCATGGGAAGAATCTTTAAAGAATGCGACTATGGCGAGCGTGCTGACGCGATGTGCTGCAGATGGTCTACGACTTTTATGTCAAGGAGGTACATCCGATCATGAGAAGAATATGCATTGTGAAGATAGGTCAGGCATAGAGCCTACAGGGCTATCGAGCCAGTGATTGAGTCCATTGGAGACTATTCTATCAACTATGGTACATACCGTCTGGCTAACATTATGACGGATCTTCAACACGATGTATACCTTACTTCTATCAGTTGGACTATCATACTCTGCAGGATTCGGTGTTCCGGTGGCTTCGGAGCTTCCGTGTTTGGGTGAGTTTAGGATGGGTCAGATTTTTCCTAAGCCCGGGGCCACATGCTCTTTGTAGATCAGCAGTTTTAGAAGTTCGAAGCGAGAAATGTATGAGTATGGGTAAAACTTTTAAAGATTGAAAAGAAATTATCCAAATAATAGGACTTGGTAAAAATCCCTTAGGCTACTTGTACGGCCGTAACCTGTCACTAACGATTCTAATAGTGTACCTTATCTGAACAGTATTGCCAACTAATTGAAATTAATTCTGAGACTCCGAGATTAGCTAGCGGTCCTTTTCGCTGTGGCCCAGTGCCCATTTCCTATGGCTCAATATCCTTTTCAGGCTCCACACATTTCACGGAAATCAGATATGTGCTCGGGAATAATCTCGAAATTATCCGACCAAATGATAATGATAAGAAGATGCTTCACGTTATGACAACTTATTTTACAAATTTTGCAAAATATGTTCGAGGTCCACACTTTTGTGTACTCGAAATTAAGCTGCTTTCAGAAACCTCACTAATGGAGAAAGGAGACTAGAATGGCAAAAGAACAACTCGGCACACCTTGGCGTTCGCCATTTCAAGATTGATCTGGACGATTCTGAAATGGTTGAGGACTCTCAGCAACGGAGAGCCGAGCTATGGGATAAACTGAGAGCATTTAATGTTAGCAGGGCTCACATGTTAAATTGCTGTTATTTTTACTTGATTGATTTTACGGTTTTATAAATAGTTTAGATTTGTTATATATTTATTTTTTCTGAGTTACATACATACATCAAGAAACATTTCTCTTGCAATCTAACTGAATTTTATTTTATAATCAGTTGTTTTTATTAATCCTGTACTATGCGGACAAGCGTAAAAATCTGTTTTAATCAAGAACTCACCTACCAATCGTTAACACCAAAAACCAACACGGTTCTGAAACAAACGATGCATAAGCTGGCACCATTATTAATTATCCGCATACAAGGTTTATCAAATAAAGGAAAAAGTCGGAAGCTTCCAACATTCAATATCTCTATTATACTTTCCCCTTTCCATGTATGTGCTTTTTGTGTGAAACCAACTTAACCGCCAGAAAGCACATAATCTATAACAGAGGTGGGCGGCAATTGCCGCTCGGCGAACATTCTGATTTTTTGGAAATTTTCATTTTTGGCTAGAAATTGCCGCTCTGGCGTTCGCCGGATATATTTGCCGAGGCGCAGTGTTTAGAGGATCCTCGTTTTACCGGAAACACTTAAAACTGTGCCTTTTTGAAAATATTTTATTTTTATTCTTTTTTTCGGCAAAGTTGCCGGTTTGCCCAATTTGGCAATACGCCGGAAATTTCAATTTCGGCAGTCGGTGCAAGTCAATTTGCCAATTTTCAGAAAAAAAATTTCGACGCCCATCCCTCATGCATACCGTTTTTGACTCAATTTAAATAGTAACCTTCCACATTAATGTAGTAACGGTAAGTTTGCATAATTTGTTTGAACTTTGAAAGCCGCTGGGCATCCAGCACCTGCGGTAATCGATCTCCTTAAAGGGTGTTTTCGCAAATCTACCAACATAACAGGAGTTTGTAGAAACATGAAACCGAAGGACAACACATTTTGAAAGTCACATTTATGTATCTGCACTTGCTAGCTATGGAGTCAATGAAGCATTACGAGAGACATGTGTTCATTCCCGAATGGAGTATGAGTAATAAGGTTCTTCGTTCACATTTTATTATTACAGGCTTGGGTCCCATATTGATTCATATTTTACTTACTTTTCAATTCATGTGTTTGTAATTTTTTTTCAATTAGAATACTATTATAATAAAATTTCTAATAATGGACAATCGAAATAGTTGCAAGTAGAATAACTATTTGTACAGTGATGCCTATAATTGTGGATGTTTATAATGTGTCTAATATTTCAACGCAATCGTGACACAAGCTCTATAGTATCTCGTGAGTGCATTTTCGGTGAGGTTTCAAAAAAATACTCCCTTGCTCGCCATACGTTTTCAGTTAAAAATTTCTTTAATAAAAAATTATACTGCTTATTTCTCGAACGATACCTTTAATGTTAACTGCGCCTACCATGTCCTTCAATCCCACTAGTCAGTTATTCTTTGCAATTAAATGTCATGGAAACGCTTCTTTAATGTCTAAATCATGGATATCTCCATCTCAACCATCCATCGTTTTTTATCATCATCATTCTCGTGTTCTCGTTCTCCGGGTCGCCTCCGCTTCTTCATCATCATCACCACGACAAAACGTTCTTCCTAATCGACATAATCCCGCATTTAATTTCTCGAATTGTTAGGTATGAATGACACCCAAAAACGGTCTCATATTCGGAAAAAATGGGAAGATTGATTCCTAATTTATTGGTTTTGACCGGTTAACCCCCACACATGTTTTTTGTACCTGCGTCTATTTTCGTCTAATTTTAAGAAGTCAATGCCTAATTGTCTTTTTTATTTTCTGTGAAGTGAAGTATCAAGATAAAATCAGTTTGGCGGTCGTCTCGCTTCTTTCTCATTTTTCGAAATACCCGTCGCAATATGGTTTTTTTATTACACATTTGTGCGCACTTTTTTGCTACCCTACCCCCCCAATTCTGACTCACGCTTGCATTCCGGAGACTGCTCTGAGAGTTATAACAAAACATAATTGTTATATAAATGTCAAAGTTTTTCGCAAGCTGAAAATTTTTGCCAGCTGAATTATTCCTTGCCCCTTCAAAGTAGCATAAGTCTAAAAATGCTCGAGTTATTGGAAAGTTGCTAATTACAAGTTAAAGAGTTTAATTGACTAGTTTCTCGATTTACAATTTTTGAACTTTATTCCTTGAAACTCTAGCAATGAGGGGCAGTAAGTGGGGACTCCCCCACTGGGGAGGGGAGAACCTTGTCAACCCACTAGGGAGGGGAGAACTTTGTCAACTTTAAAGCCACGTCCTTCTGCAGGGAAAAGACTCGCGCTATCAATAGGTCAACTAACAAAATGTGTTAAGCTCCACATTTTTGTAGTTAAACGTTTTCTGATATCACAGTAAGGTAGTTTTTGTGAAACCATCAAATCTGTAGGTTCTCCATTATTATTATCACCTAGCACAGTATTATTACCAGCTGATAAGTATCCGTCTTTTTTGGATGATCTTGTAAAGGAATATACCATTGTACTTCATCTCCTTTTTCTGTGTCTACCCTTATCTTGGGGTCGATCTTCTCCTTCCCGCATACGGTCTCCTCTTATTCAGAAAGTCAGGAGGAATATTCCGAGAAATTTTGTTTTGAACGACATGTGCGATCAATCGCTGGTCCAGAAGGTTTTCCCACTACTTGGCTCGTGTTCTCAGGTGAGTATGCGCCTTTAAACATTGAGGGTACTGTATGCACCATAACGCAGAATTGCAGATTCTAAAGTTGCGCAGGTTTGTTCTACACGGGATAACCGTAAAATTTTTATGTCCCTTTAATAGAAACTCGTCCGAAGAATTGGTAATGTACGTGGAAAACGACTTTTAAAAATGTTTTTTTACTCCAAACGATGCTCTATTGTGCCGAATCGCTTGTTGTTTAGCGGCGTTTTGGGACTAAATATTTATTTACTTATCGTCTTGTTTTTCATAACTTTATAACTGTTTAAACAAAATCGATAATATTTATTTCTAATACGATTCTGAAAATTTTGAATTCCAAAAAAATTTCGGATAATTTTTGATTTTATTTGGCAGATTATTTCTGATAGAATTTGAACACTCTCTTTGGCCAAAGAAATTCTGAAAGTTTTGAATTTCCCGCAAAAATTGAATTTCTGAGAGAATTTGAATTTCTTGCAATTTTTATGTGCAAAATCAATTGAAAATAAATGTGGTCGCCAAAACATAGAGAAAACTCCCGGCCACCGATTTTTTTTTCGCAAATTTTCCACCGCATTCTTTGCTGCATGACTGCCAAAAATTGGCGGCTTTGTATTCTACAGTGTTAATTCACAGATGGCCGAGTTTTCTCAGTTTTTTGCACGGTCACAGGCTTCTAGTTTATTATATTCATCTCCGCGGCGCGCGCACCGTACTTTCTCTCTACTCTCGGATCGTTATCCCTCTCTTCCAACCAACGCCCTCTGCGATTGTGTCATCATCTTTGCGATTTGTTCTGGAATCCCAATTTCCGTTTGGCTTTTCAATACCCGTGCCTTATTGGCTCAGGAATTTCTGGCCCGGAAATTTCCGGTCTACAATTCGGATTATTAACCATTTCGAAAAAAACATCCTTTAAATTATTTTTATTATAGTGATAAACGGCGGTGTGATTTTTTCTCGCTGGTGGGTCCTGGCACGACTGAAACTTTTCAGCTATGTAATTACCCAGCATTGCTTTAGAATTTAAATTTGCCGGCAAATTAGAACTGCAAGATTTTTGTTAGTTTTTAATTATAATTGTTTGGGAAAAGTACAAACTCATCTTTAATAAAACCCACCGTACTCCCATGTACTGCAGCCAAGAGACATAATTTGTTTCGTGCCAAGACCCATTTTTCCCTCCCTTTAAGAACTAGAAACCCCCTTGTTTACAACTGAACTTAAAATCGAATTAGTTTGTTCGCTAAACATGTTTTTCGCGCGAAATTTCGCTTTACAAAAAAGTTTTTCTTCATTCCGTTCGGTCGGCATGCGCCTTTAAGTGTAACTACTATTTTTGAAACCGACATAATGATAGAAAAAATTAGAAAATATTTTTAATTTTCGGCCGGAATATCTTCGAAAAAAAAACTAAATTTCATGGATTCTCAGTAAAAATTCACGGAAATTAAAACTTGCGTAGCGAGACCTCAACTATCACATTACCTATGCGCCTTTAAAGCTACCCTAACCCTATTTTTAAAAATAAAAGAATTTCCTTTTAAAAACGCCGGATTTTCTCCGTCTCTTTTCCCATCTTTTTTCATCTTCGGTACCCATCATATGTAGATGAGAATATCTCTGCACCTCTCCAACCAACCAAGTTCAACACTTCGATGCACCGTCCTTCAACGATGTGATCTTCCTCCTACTTCGACCCCCTCAATTCATTTCCGATTTCCTCGGATGTATTGATCTTTTTGCCTCTTTTATTTCTACGTTCTATAAAAGGATATAGCCAAATGGACTCAAACAATTACAATCCAAAGTTTTGACGTCAGTGAGCTTACTGCGAAAATCTGAAGAGATTATGTGAGTAAAAAGCGGCGGAAGACGTAAAACATATGAAATATTTTTAAAAAACTTTGTTAAAAGCCCCACATTTTCGAGATAAATCTAAATTTTCAAGTTTGTAGCAGCAAATCGCTAAGCAAAGATATATATTTCAGGCCGAGCAGACATAACAAAAATGCCGATGCTTCATCCACGGCATCAATCACTTATCGATGGCGATCGCCGTCACAGCGTCGAGCTCTCGATTTTTATTAAGTAATTTGTTTGCCTGCAACTCAGACCAACCAAATGCTTACGTCGTCTATTAGATCTTTCAACGATATTTGATTAGAATCTGAGAAAAAAGTATAATGGGGACATAATTAATAGGCTTATGGATATTATTTGATTTGACAATATGGATTTTCTAACCAAATATGGTTAAATTCTAATCCAATATGGAGCAAATCTAATCAAATATGGCTGAGATCGTGCCATATTGGATTATTTCGACCATATTGGATTAGATTTGTTTCTAATGAAATATGGAGAAAATCTAATCTCAGCCTTCATGAATTTCTAATCTAATATGGAGTACAGCAGCCTAATATAATGCAATATGGATTTAAAAAATATGGGTGAAGTCTCGTTGAATATTGTTGAAATCTAATTAGACGACTAAGCGTTTAGAGACAGAACTGGAGTTGAAAACCTTAAAAAAATGGGCGTAAAATTTTCAATTGTGTGGAAAAAATCAATGAAAAACTCAATCGTACAGTAATTCAAAAATTCGTTTCACTACTGGAAAAAATCAGTTCCCATTGAAAAAAGAAAAATCAATTTTTCCAGCTCTCAAATGGCAGTTGGGGCAATTCGAGCACTCGACCGTCTTCACCATCGCCGCCTTGCTCTTTCTGCTCGTCATTGTTCAGCTTTTCGTCGCGATTTTCTACCAAATGTACGGAAATCTTCTCATCTGCGACCGCACATCGTCATGCAGGTTCTGCTCGTTTTGTGCTTCCTGGCACTCACATGTGCGACGCTTTATGCGCTTTTCACGGTGCCACGTCTCAGGTGCTCGTCGTGGTTACAATCCGCAAATCGCCGCATTCCCTGGTAAGTGTGGTAAAAAATGAAGTAGATTTGTTTCCTTTGGAAATTCCTTCTTTTTCCTCAATTTTTCCTCATTTTTTTGCTTCCAAAAAAAAGACCCATTTTGCGAAAAAAATTGTTTTTTTAATATATGTCTTTTAAATTTTCCAGACAATTCTCCCGGCGCCAATGATCACAAAACGTGGTTTCCGGATTCTTAGTGGGCCTTCTCGTCATTTTCGCAGTCTCCTACATGCTCATCGCTGTGCTGAATGTGAGCTGTTCCCATGGCGACACCCATGTAACTTTAATTTTTGAAGACCTGGTGCAGTCGTCATCTATAGTTACCAGCTTTTGAGCCAGAATCAATCTTGTACGTCGGTCGAGATTGTGCGCCGAAGACACGATTCAACTCTCCCTATATCCCAATAAATCAGGCCACTGATTTTTAGTCTATATTGTGTAACACACCATTTGTTGAATTTTTCTCGAAAAAATCCGGTAAATTTTTGAGTATACATGTCCCGAAATTCTTCTTTTATCACATGTGTCAGGCTTTAATTTTCTTACTTTATTTTCGACTTCTGTACAAAAATCTTTGATATATTCTATTTATTCTTCTCAATTAATAATCACACGATCCATCTTTCCACTCGTCTCGCCACCTTTGCATCACATCTCGACAGTCGAACTTTGGTTTTCCCGTTTTTTCGTTGACTTTATAGTGTAGCTGGCACATCCATAGCGCAAACGCCTCGCGGCTTTCCACTTTTGGCGGCGATTCATTCAGATCTTTTATCTCTGTTGGCGCAGAAATCGCAGGGATATGTCTGAAAAATTTAGGCGTTTTTGTGTGAATCTTGAGCTTATTAGCTAACTTTTCCTAGAATAGAAATGATAAACTTCTGGCTCGATCCTTATCGTCTTGTAGGTTTTTCCCGGGTAGCGACATTGTGTGTAGCAAAACGCTTCCACATGGATCGCTATGCCTGAAATTTGAAATTTTTGGTGGAAATTTGAATTAAAAGCTTGAACCGAGCTCATCCTTGTTTCCTCTACTGGACATCCGTGCAATTTCGCTCCTGTGCTCGTGCTCGACGTCGATCTCGGATTCTGCAAAGAACTGAAATAATTGAGATTTTTTGCTCTGGAAATCTAGGTAAATCACATTTTTTCTTTATTTTTTCATCAGAGCCATTACTTCTCTGCCTTTTCTTCCTATCCTCTACACTGACGCATGCACGACACGGCTTCCCTCCATGGACCGATTTCCATTCTGAAATTTTTTAAGCACTTGGTTTTAGTTTCGTCTTTTAGAAGCCGTTTTAGGGCGTAAACTTATGACACTATACATAGACTACGACAAATCTATAGAAATGCATAAAAGATAGGTGAAAAATGTGAGAAATTGCGCAAAAACGCTGATGCAAAAACGAAAATAAATTAACTAAAAACATGAAATGCAAGTGCGCTCCACTGACACGCGTTAGAGAGCGTAGACGCAGAGAAATCTCGAAAAGATGAGGGATATCGTGGCGCGCGAGAATCAACCTTTTTTGAATTGTCTTGATATTAAAAGCCCAAAACCCTAATAGATCATTTTTGTTTTTGGTGGATTTTCTTGCTATGCAATGTAAAAATTTATTATTTGTTGCATCTAATCACTTTTAACAGAGATTTACAATTTGTGGCTGAAGGAAAATCCTTCAAAAATCAATTTCTACGATCCAAAAATTCGTTATTTAATTTTCCGCCCCGCTGATCAACTAAATTCTTCTATTTTATCACTTTATTGAAAACCCTCGCCCACCTCATTTTATCACCTGAAACTCGTCACACTTTACAATTTGTGAAATATGCGAAAATGGTTACTCAGCTAAAAAATCTGAAGCACGCGATAGCTTGCGACAACTTCTGGGAGTGGGATGGAACGAAAACGGCGAGAAAGGCAAATTTTTGGTGGAATTTAGCGAAAAAACCTGATATGTTTTTTTGCAGAAAATCGTCGCACGAGGTGCTTCGGAGCTTCTCTAGCTCTGGCCAAGAGCGGAGTCATTAAGTGAGGATAACCAGGAGATGTAGGATTTGTATGATTTATTTCTGCGCGTATATTCAACTTAGCTAAGAAAGTTTGTTTTTTTTTTGTTAAGAAGTCGTAAACAACTCAAGGAAATACCGTTAAAAATAAGCATTAAATAATATAGAGGCTTATGAGAACAAAAAATTCCAGGAAAACGAAGAAGCCAACCAACAATTCGAAAAAGAACGAAAAATGGGCACAAGACGAAGCGAAAAACCAGTCCCAACTCCACTGTTCGGGAGCTAGCTCAATACAAGATGTGCCAAAACGTTGCTGTCAGCAGGGAATCGATCATCTCAATCAGGTGCCATGATAGCATATTGTCTGAGACTACTTGAACTTCCAATCACAATCACCGAGAAAAATCGCACTATAAACGAATATGATCCAACGTGCTCCTAATGAGCTCCAACTCCTCACAGCGCCATTGAGCCGAGCATGCTCATTTGAGCAGCTTATGAAGAAATGGATTTGGAGCCGTGTCGAAACTTCCGCCGATATGGGGGCAATCGCGAGAAATTATATGGAATTGGCGGCGAACTTGCTGGAAGACGTGGATTCACCCACGTGGTTTTGAGAAGTCGCCTATTGACCTGATGGCGAAAGTGATGGGAACACTGAAGAAAAGTGTGGAAATGGATATCCCAAACAATAGTGCGTGGATATCTTGAAATAATGTTCAAAAAATTCAAATTGGCTTGTTAATGAATTAGGCTTAAGCTTAAGCTTAGATTTAGGCTTGCATAGGCTTACAAGTGCGGAAGTATTTCATATTCCCGGACTACAGAATGAAACCTATGTCATTTCGAAGGAGACTCTTTAAGTAGGTCCCTTCAAAAAATTTAGCGGCAGAGGAGCACTTTGACCTGGAAAAAAGTCGCTCTGAAAACTTTTCAGTGCATTTTATCACGGTCTTTCGAGGCCTGTAAAATGGATCCAAATGCGAATTTTTGTAGATTTTTGAAGATGTCTAGGATGCTGTCGCAGAGCACTCGGAACATTTTTTTTGGAATTTTTTAAAATTTTCGAACTGAAATTTCTTTTACTGTGAATAAGTCCATGGCAAAATTTTTCAGTGTATATATATATATATTTTTTTTAATTCAGAAAAGTTGTCAGTTATTTAAGATCAAAATGGGTGTTTTTACACAATGAATATTTTTTTGAGATTTGATTCGGACCTGCAAAAACCAATTTTGGAAAAAAATCGGCGTTTTACCCGGACTCGAACCCCAGTCTTAAAATATATTAATCAAACTCGCTAACCACTCGGTCATTCATCGACAATTTTTCTTGTAAATGAAATGGATGACAAAAAAACGTGACTCATTGATATCTACTTAAATATATAGGGACGTGAGAAATAGCTTTGGAAAAGGAGAGGACGAAGAGAATTCAGAGAGACTTTTTCCAGTTCAAAGTGCTCCTCTGCCGCTAAATTTTTTAGTAGGGGCCTGCTTAAAGGGTCTTCTTCGAAATGACATAGGTTTCATTCAGAAATCCGGGTTTAAGTTCTATTGAACTACTTCCCTGGTTAGGCTCACTAGGGAGTGACCAGAATAAATCGATAAAAAATTGTATCGGAAAGCTGGCATTCTCTACTATAAGAATATGAGTGTTTGCCCGTTCGGGCTGGAAATCTGAAATTTTTACGTCGGAAATTCTACACTGAAATCAGTGCTTCCTATGGTTAACAGTGGATTTTTGTCTCTGGAGCCAACAGAAGTCTCACCACAATGGTGGAAGGGCGAAATCCACATCGGTTCGGTGGTCGAGCGGTGAACGCGTTCGCCTCTTGAGCAGGAGTTTGTGGGTTCGGCTCCCATAGTCATGGGTTAACTTTTAGCCTTTTTTATACAAAATTTTCAGAACGGGAAACAAGTATTTAGAACATTTTTTTGAGGGTTTTACATAATTTTTTTGCTTTTTAATTGACCCATAATTACCCAGGAAACTTTTCAGAAATTTTAAATTTACATTTTCGAAAATTGACTCTTTTTCCTCCAACTCATGAGAAAATATGATCGAAAAATTTTTTTTTGAAATTTTTTTAAAAATGCATGGAATATTTTAGAGTGTCACAAATACCTATTCATTATTACGTTTCAAAGACCAATCATTGATTTTCTGATGCCTTATTAAGACGTTTTACCAAATCGATCTTTCAGGCAAAACATCTTGTATTTGAGGTTCCATATCTCTGCAGTAAAAAATCGCACTCAAATGTGATCAACTAGAAACTTGAGTTAAACACAATGTGATCTAAAACATTTCAGGGGGTTGAACACTTTTTTGTAAAAAACTTCGTTGCCGAGTTGGAACCAATTGATTTGAGATTCACTTATTTTTGAATATTCAAAATATTTGTTCTATATCTTGGCAACGAAATTTTTTACAAAAAAGTGTGCAACTGAAAAGTTTCAGATTACATTGTGTTGTACTTAACAGGTTTTCAGTTAATCACTTTGTAGTGCGATTTTTTCCTGCAGATATATGGAGCCTCAAAAACAATGTTTTGCCAACATCGATTTGGTAAAACTTTATTTCATTTTTTTTTTTCATGTTATTGTTTTTATATTGGGTCAAAACGTATTTGCTCTGCTATCACAATAAGCTGGCGCTAATTTTTAATTTTATTATTTTCATTTTGATAAATTTCACTGAAATTGTCACTTTAATGGTTTACATTCTATTGGTTTTCTTTTATTCAATGTCTTTTGATCGGAAACGTGATGTTTGCCTTGCATGACCGTCATTTTCCTTCCCAATCCCCTCCCATCAAATCCCTCGATTTCGAGACATGAGCAGAAGGTGGCAGATCATTTGGCAAGCATTATAAAGGAATCTTATCTTATGTACCAGTGTGGAAGAATCCGAATTTGGTTGAAGACGAAGAATATGTCGATTGGGAGCCAGAAGTTTTCAGTTGAGGTATGTTGGTTTCGACTCTATTAATTGTCATTTAAAAAACCTTTCAACCGTATGACTGTGTGTTGCCGGATCAAGATGATGTATTGTTCGGTGAGAAAGCTGTATCAAGGGAAGAGTTGGTTAAAGACGTGCGATCACCGTTCTAGCGTAGAAATTGGAAGTAGGCCGATAACGACTCTGCACCATAGTTATCGCTGGATACGAACCGATGCTCATATGTACAAACTGCGGAAGTACGGGAAAGATAAAAAAGCGTTCCAAGAACGGCTCGTTTGGCACAGCTTACACAGGCTTTATGGCCTTAGGAGGTCAAGGTGAAACTGAAATGGTGTACATTAAAATAACAAGTTTTAATATAAATATTTTAGGGGTCTTTGCATGATTCTGGTTTGATGGCTACGGGACTGGAAAACATCACCCGCGAAGTGAAGTTAAACAAAACGAAATGAAGTTGCAAAAAGGTCCGTCACAAACCTGGATAACCCGATGTAAGCAAAGCCACAGGAATGTAAGAAATTGCACTTGTATGTTAGCTATATATATATATATTTATATAATTTCGGAATCGTGAGTCGGAGAGTCGTACCAAGTACATGGAAGTGCCAGATCAATAAAGACGCTAAAAAAACGGGATGATTTTGTCAAGAATGCCAGAACAGAGATCTCAACCAACTATCACCCGTCGATGGTCTTCAAGTGTGAGCAAACCGGAATTCAGAAGGAGCGGTATCCAGCTCGGTCATTAGCCCTTGATGGTCGAAAAAACAGTCGAGATGTTGGCGCACCTCAATCGAAATCGTCGCTGACCCACTCGTTTACGTTTGTCCCGATGATTTTACTCGATGGCTCAATGGGACCCCAAGTTAAGGTAATCGCTGATCGACTAAAAGGCCAGTTTCCTCCGTCTACGTGGTCCAATTCAAAACTGCCCCAATTTTGTGCGGGCTGGATACAGACACACATCATGACGAAGCAATTGATGTGCGATTTTTTCGAATGTTGTGTCTTCATTCCGTCTAATGTGACCGAAAAAACTGTACATCATGCTGGACCGGCCAGCGTTCAAGGACCATACACAAGAACCTGGTTCCAAATGGTCATCATGTCGTCATTCGCAACATTCCAGAGCACACAACTGGAGATGATCCAACCGTTGGATGTCTATTGGGATGCGCCATGGAAGAAGGTATGAATTTTAATCTTTATAACTTTTTGAAAGTATTGTCCAGAGCTGGTGAGCTGCTCAAGAAGTTCACAGCATGCATGCCCTTCGAACCCAGACGGATTACGTCCTCGAGGAACAACCCAATTTGCATGGTATCTGTGTTGTATCTCCAGATCTCGGCAGTGCACTTCCGACCGTTACAGCTTGAAATCGTTGGAAGAAAGCTGGATACGTGGGTGCTGCCAATACTTCATCAACCGTACCACTTTTTGACTCCAGCTCATGCCATATTCCATTGATCATGGTGACCCAGTGATTTGCTATCACACTTATGGGATGTAACCATCACGGAGTCATCCGATGCGCAAGATGCAAGATGTTTGTTTGTTCTTCAACCATTTTGTGGTAACAACATCTTTGTTCATCTCCTGAATAACTAATAAATTCATGATTGCATTACATTCAAGTTTCGCTATGACTAAAATTGTTTATAAGGGGATACATGGTTGTAGTGGTCCATGGTTTAGTTTAAATTGGAAAAGATGTTGAATGAATCATTATGGTCTTGGTCGACACATAGATCATGCTGATGTCGATCAGAAAAATTAAAATTTGGGTTTTTATAGTTTCGAAAAAACACGTTTAAATTTTTGAAAAACTTTACCGTTCTTTAGGGTGTAATTGAACTCCAGATCCCACCATGCATGTCATCCACTCAATAGCCACTCGGCCATCTCCTGTTGCAGGCAGTACTAATTGGGGAGGTTGATAAGTAAAGCACGTCCGAATAATTTCAGACGTAAAAATATCAGATTTCCAGCCCGTACGGGCAAAAATTTCAGTCATTACAGCAGAGAGTGTCAACTTTCCGATACAATATTTTTTTTTTGAATATCGCTCTGCCATTTATTCTGGTCATTCCCTAGTCAGGATCAGCTCTACCTCAGGCCTAGGCTAAGCATAGGATTAAGGGTAGGCTTTGGCGTAGGCTTATGCTCGACGCTTAGGGGCTTGCTCAATCATACATCTTGCTTAAGCACGCAGCTTAAGACAGCAAAGCTTAAGCACACAGATTGGGCTTAGGCTCAGGCTCAGGCTTAGAAACAGTCGAAAAGTTAACTAAGTCAAAAAATTTTTTGTTAAAAAATTGTTTAAAAGGTATTATGATTTTAATAGAAAATTGGAAAAAACCCGAAAAAAAATGAACATAAATCAAAAAAAAAATTTTTTTTTAAAGAAAACTTCTTTTTTTCGAAAAAAATGCAATAAGGTTTTTCTGAAAAAAACAGGACTTTGATTTTACTGTAAAGAGAATTTTTTCTGTTTTCTTTTTCCAAGATTTCAACTTATTTCTGCGCTTCGAGTTTTTTTTTCAAATTTCCTCTTATTACAGTTGGTTACTGTCGAAAATTCTCGGTCGTCCACATTCATGACAATATCGTACTGGGGTCTCGAAGCGAGAGATTTCATTGTTCGTGAGATTTCTCACAGGTAGTTTGTCCAACTGGATATCAGTGGCTCATAAGATGCAGCTGGAGAACAGTCCTTTGAGTTTTTTTTCGGAGTTTGCAAACGCGCCCTAAAAAAGTTTGGAAAATTCCACGTGGAAAATAGTTTGGCGAAAGTTTTGATACAAATTTTTCGTGGATTAATTTTTTTACTGCTCGAAATTCTCTTTTGTTAAAATTAAAAATGTTTTATGGGCGAATTATTTTTCTAAATTTCAGCTTTTCTTTCACCAATAAAATATTTTTTTGAAATATCGCTTCGAGACCCAAAAAAATAATTATTCAATGAAATATCGAAAACAGCCAAAATCGAGAAATTATCGAAAATAATTCGAAAATTGGAACTTTTTAAAAAATATTTTAAATTTTTTTCAAATCAACACAAAGTCTCTCAACTTTTTTCTAAACAAGAAATATATTTCGTGACGAGACCCATTTCTACTAATTTTCTTTTTCAGAAATGCATAATGCGTCCATTGGATTGATGATCTCGCTTGCCATGATCGAAACCGTACACGGCCACCGTACCATGAACGAAGTGACACGTAAATATTCGAAAACTCGCGAAAACCGGAATCCAAGAGTCTCTGAAATTGGAGCACGTAATTTCTCAAGGAGTTCGACATCGATTCTCTTTCCGAAGAATGCGTGAGAGATCTGACGAGATGGTTGATGGCCGAACGATGACTTGAACAGCCGTCTGCGGCGATGAATGAATCGTTTGAATTGACCGTTGATAGCAGTAGTAAGAAGAAGGACGATGCCACGTTTGTTAGTGCGTACATAGAATTCTACCAAAAGGAGATCTACAAATTCTAAAGAAAATCTACGAAAGGAGTTGTCACGGCGCATGCCAGATCGATCTTTTTTCGGCTCAAACTTGGAAAAACCTGCAATTTTTATACATTTTTGGCTTCGAAAAGCAGGGAACTCTGCAATTTTAGGCCTTTTTCGCTAAAAAATTGGAAAAATCTGCAATTTTTATACATTTTGTGGCTCACAAACTGGAAAAACTTCCAATTTACATCTCAAACAGTCGGGAATCCGCAATTTTCCTCACATTTTTAGCTTAAACTAATTGAAAACATCTGCAATATTTCAGATTTTTGGGTCAAAAAATCGGGGAATTTTGCAATTTTTACATATTAAGTTTAACAGTGGAACATTGCAGAAAATCGGCATAATGTTGAACGTTTTCCTTTTTCCAGTTTTCTGTTTTGTTACGATTTTCGTTTTGCATGGAAAATGCTTCGATTGATACCCTTCTTTCGGAAACTAACCGACAGGAGTTTCTCCTGAAATAGGCGTAATCTCAAACCATTTATGGGCGTGGTCTTCTCTCTTATGGTTTTTATAAATGTTGTTCATTAAAACATTTTCAGGCCTTATCAATCTCTCCATTGGCTCGACGATTTCCGGAAAACATAAATTGAACGCGGGATGGTGTAATGCAAATCCTGAATGAGTTGCTAAAAAGTCGACGACTCGAACCTACCTTCACGTCACTAAAAAAATCGTGACAATCCTCTGGGAAAAGCGAAAATCCAACTGAGCCACTCCGTACTGTGTTCTGCTCTACTCTCCACGTCGTCTGCCAGGCCGATGTTCGATTCGCTCATCGGAAAGTGCCGACAATCAACTCGATTCTTAAATATTCGCTGTCTCTAATGCCAAATGTCGCATCTCTTCCTAGTGACGCTGCGTGGTCCGAAACGATTGTCAGATTCAGGACAGTATCACCGAGAGGGTCTCCGTAACACGTGGGATACCGTATCCCGAAACCCGCTAGCTCCGGCTCATAGTGCAGTGTTCGGCTGATTTCGGCATTTATCTCCGTTACGGAATTTGATGAGAATTCGAGATTCGCCAACGATGAGAGAGTTCGGAGTCTCAATGGAGGTAAGTCACTTTGCCACGTGGATGGATTTCCTTTAAAAAGAGTTTTTGGAAAACAAATCAGATTTTTGTATATCACCTTTAAATCGAGAAATTCTTGTTTTTCTGTAGTTTTCGAAAAGACATAATAGAATGGGTATTGCGGGAACTCCGGATGCACATAGTCACAAATTACTCTTCAGTTGTGCCTGTATCATCCAACGTATGGTACTGTTTCAGAAGCTTCTTCTAGTGTAGTTTATACCGTAGGGCTTCCAATTCTGGTAGAGGCGCGATTTCAGGGCCTGACGCCCGCCTGGAACCTGCTGACCTTTCGCCTCTTTTCTCTCATTGCTAATCAATTTGTTGAAAATCAAACTAAGAATTAAAAAAATAGTTCACGGAGCTTGTTCTGTCGTGGATTGGGGCGAGGGGCAGGTGGTGGTGATCTTAAGGTCAGGTAGGCAGGTGTCTTTTCACGCCTGCATTGAAGTCTAGTACCCCATATGCCGAAAACGCTGAATTTTCTCATTTTTCCAGACGACTCCCTGCTTCATAACTCTGAAACTAAGTAAATTAGCTTGCTCTCCAGCTCCTCCCCATCGGCTCCAATAGCCCTCCGAGGGGGCCACTTCTCGAAGAATTGAAGAGATTGGGAGATATGTGCATGGCTAATCTCAAGAGTATGTGAGCCTGTCGTTTTTTGATTTTTGAATATTTAAAAACCCAACATTTTCAGCGACTGATCACTCAGCCTCATTTGTGCTATGCCACGGATTTGCTCTGAAGTATCTGGATAGATCTTATGAGATTAGTTCAGCGGTTTTTTTTTCTAATTTTCGAAAAATTTAAGAAATTTTAGGAGCAATTGAAGAGAGAATTTGAATTTTTAAAAAATTTCGAATTTATGGAAACAGTAAAGTTTTTCGGAGTTTTTAAACGAATTTTCAGAATTTTGTAATAAAAAAATTTTCTAATTTTTATTCCACAATTTACAAAATCTAAAAAACTTTTTAGAAATGAATTGTTTGAGAAGTTAGATTTCCTAATTAAAAAAAAATTTGGGTTTTTATACAATTCTTAAAAGTTTGATATTTTCAAATGATATGAAGTTCACACATTTTTTAAAATATTCAAATAAAGAACATTTTCATTTTTTTGAAGAAATGTTCAAAAATTAACATTTTTTGAGACTTTCAGAAGTTTCTTCTGTTTTTTTTGCGTTTTCAAGTTTTTTGCAATTTGCGTAATTTTTATGGGGGACAGAAAATTTTGAGAATGCGGATTGCACAACCTTTTTGACGCGCAAAATATCTAGGAGCGAAAACTACAGTAATTCTTTAAATGACTACCGCTAAAATTTAGCATAAAAATAAAAATATATCGATGTATCTAGGATCCCGTAATAATCGACAGTAGCGCGCTACAGTAGTCTTTTGAGACGAATTACTGTAGTTTTCGCTATATTTTGCTCGTAAAATGTGCACGAATTCTTATGATATTTTGTTCTCACAAAAGTTGGTCAATTTATGGGATTCTCAAATTTTCGTTTTTTTTTGAAATTTAAGATTTTTAAGATAACATTCTTCAAAAAACTGATTTTTCTCTTAAATTGAAAAGGTTTTTTGAAAATGTACAAAAAGCTCTACTGATTCAAATCATGGAAGATAAAGAAAAAGACGAGTTTCTCCAATCTGCTCGCCATTTCTCAAAATGGCCTCAAAATCTGACACTACCAATTCAAAAACAGACACTAAATTGGCATGGCTGTCTTTTGCGAAGCGCTTGACAGCTCGTCGATCTGGTCTGTCAGTGGAGTGACCGACGATAAGTGCTTGTCGAGATGCTCGCCGAGCTGGCTGCCACAAGCTCTGAAATTCTAGATAAAGTTCCAAAATCGATGCCATTCAACAAATTCGTCACGGAGAGGATAATGCAGAATCGCGGTGATTTGTATGTACTGACAATTCGAGAAATATTCGTTTTTGCGTCTCGTTTCGGATAATGGCTACTAGGATGCTTATAACATGAGTGTTTGTTCTTGGGGATTGCCACGAAAAACTGGCAAAACGTTTCGAAGATTGAAAAAATATTTCTTGCAACATTATAAAGGAATTCCCATTTATATAATTTTGGAAAGTTTTTAGATTATATTAGGTAAAAAATTCGAATTTACAAAAAATTATGAAATTTTAAAAAAAAGTTTGAAAATGTATTTTTAAAAAATTTAAATATTAGTAAATATTTGAATTATCTAAATGTTTGCGATTGTGTTTTAAAAAAGCTTAAATTAAAAATTTTTTTCACCATATGAATAAATTAAAAATATATAACAAAAATTCAAAAAAAATTTTTTTCGAGAAAATTTTTTGCTTTTTTTAAAAATAGAATTATAAAAAAACTGAATAAAAACCTTCGAAAAAAAAACAATTATTTTGAAATTTTCAAAAAAACTAGCAAAATGATGTTAAAAAATTTGAGGAACAAAATTCACATCCCTTGCAGAAACGAAGCCGCCCAACTCCTAGGAGATGGTGAAACAATCAGTGAAACCGATATCTTCATGAAATCGAAAAGCGAATTACTCTTTCAACGTGTATTCGTAATGTGCCGTTTCCGAAGCAAGAGTAGAGCGGTTACACACTGGACCCCTATACCGCTGGGGAGCGGCCAACGTGCACAATGTGCTAATTTAAGCACGATCACATAAACGTCGAAATCAATCAGGAATTGCTGGAAAAGTCGCTATTTTTCGCAGAACCGTCATTGTCCGCCACTTGTTACGGCAGAATGGAAAAGAAGCAGAACCTGATGAGACGTGTCACTGCCCCTGTGCTGAAAATTGTGATGAAAGATGAAAAGTTGCTGGCGGCAAGGAATTTGGAAAAACTTGAAAAAAAAGAATTTCATCGTATTTTTAAATAATTTTTTGAATGAAAAATTCGGGATTTTTCCTTTTCCGCATTAAAAAAAAATTCAACCTATTGACTTATTCGAATTTAATTCTCAGGTGAATTTGTATTAACTACTATTTTCATAGTATTGGCTTAGAAAACAACAGTACTAAGCCTTAAGGTGAGATACAGATAAAAGAAAAAGAGTCCACGTTTTTATCAATGAAATATTCCTGAAAAAATTTCGGCGGGGTAAAAAGGAAAAGTACCAAAAATCAAACTTTCAAAGCTAACAATACGCAAGTATTCAAGTTAATTTTAATAATGGTTTAAATCCGGAATTAAGAAAGTGGTTCAAATGTCATTTGACTCATCCCTATTGTATTGACAATTGAAACGATTTTTGAGACTTGTATTTATTTAAGGAAAAAAAGTTCAGCTGTCACAAAGCAGGTCGTAATTTTAATTTGAATATTTAAAATAAAAAACTTATATGGGTGCTTCATTTTGCAAAACATTGCATTTAAAAAAAAAATTTTCAATGTTCGGCAAATCCGAGCTTGAAAAAAATCCTTCTAATTGTGTTTCCGAATTTTTGGGATTTTTTCTTCGAAAATAGGAATGGTTTAAAACAATTTGAGTTAGATATTGTTGCATATTTTTTTAAAATCAATCTCTTGCAATCAAAAAATTGAAATTTTAAGCAAAATAATAAAGTTTTATCTAATTTTTCAATTTTCAGGTATGGGTGGCCACAATTCTAAATATGGTTCGATCTCTCAAAGTCTATCAGATTCATTTCAGCCCGAAATCCAACGCGGCGAAGTTCTTGTAGGTTTTGTTACTGCGAATATCAAAATTTTGCTCGTCTAATTTGACGCCTGCTCTGTTTTTTTTTACGCGCATTTCAAATTATCTTAGAAATCCGTGACTTTCGTCTAATAACACCATTTTGTAAAATCTGAGCAATTTTCGGTTTTTGCGCGTCAAATGTGAGATATCTAAGTCAAACTTGACGCGCAAAATTTTCAAAAAAAAAATTCAATAATTTTCCGGGCGAAACACCTCGACATGGAATCGATTTCCCACTGCCAAGCATTGCGAAAACAGACGCAACAAAATAATCTGATCACGGCCGCCAACTTTTTGACACTTTTCGGATGTGAAGCGCTCGAGGTTGGAAGCGCCTGATTCTCAGATTTTGGAGCACCGCATTTTCAAGCAAACCGGCTACTGTGTTGCGAGGAAATGCTCATGCTATTTTTGTAAGCAATGATTTTTTGATAAGAAATTTCCCAAAAATTTTGATTTTTTGAATTATCTTTGTTAACTTCTTATTTTTAACTCAGTCTTTTTGCAAACTGAAAATTTCCAATTTTTGGGAAAAATCTCCATTTTTCAGGCTGAAGAATGTGTCGAACTTGGCCTGAACCACCGAATCGCTTCTCTTTTACGCGCACTGACAACCAGTCAATTCTGCCGAAAAGCTCTATGCGATGAATCTAATATCTGAAAATCGCGTTCTGACTTATCGATGGATTTTTTGATTTAAAAATGAGTGCAGGTTGGTGGAGAATAGTAGGATATGTGGAAAAACAATATTTGAAAAATAAAAAAAAAACTCATTGATTTGAATTTTCAAAAATTCCAAAATAAAGAATTGTATTCCAACTTTCATGAAAATGGCAACAAAAAACTCAAAGTTTCCTTGGAAAATTTTTGAAAGTACAAAAAAATTAATTTCTGAGAATAGTTTCAATATCAAAGTCGAAGTTTAGTTTGAGTAGTGTTGTCAACAATTGCCTATTAGAATAGTTGAAAAAATCTTGGAATTTACGAAAAACAATTTTTAAAAATTTCTCCGTCCAAATTTCGAAGCAAAAAAAAAGTCTTCTAATTTTTGACATTGAACAATTTGGAAATTTTTTGAATTTTCAAGAGTAATTTATATTTCGAATATTCAGAACAGTTCCAAAAAAAAAGTTTTGGATTTTTTTCCAATTTTAATAAAATTTTCAACACAGAAAGTTTTTTTTTAATTTTTTAAATTTCAGAAAAAAATTAATATTCATAAAAAATTGAAAATTCATCCATTCTAAAAATAAGTTTTCACATTTTTCCCAGAAATTGTGGAGCTCTGCTATGACATGAATACTTCGGAAGGATCTTCTCCAGCACCACATCAAACTTGTTGCGGCTCACCAGTTGGAGCACTTGAGCGTTACGAAACGAGACTCGTATTTTCTGTTGAGAAATTTCTGAAATCTGGAATTGATGGTATCGATTTTGAAGATTTAGGTTTACAGTCGAGTTTTATAAGCCGTTGAACGAAAATTTGACAAGACGCGATCAGGAGCAATGAGGCGAGAAGTAAGGCCGTGGAATATAAATAGGTGGCCGAGTTTTTTGTAAACTATGCCACCAAACTTGGTTTCTCCGTTCGTGGCCACAAAAATTTTGAATTTTTTGAGCTTCTCTTATAATGCTTAAAAGTGATTGCAAAAATTCATTTCTTTAATTAGAAAACTCCAAAAAATTTGAAAAAAAAATGTAAACTCAATAAAAAGTCCAATTGTTTCACATTTATTCTGGTTTACTGAATTATCAGATTTTTTCTTCAATTTTCAGTTTTCGACTTTTCAAATTTAAAAAAAACCAATTGTTGCCCGAACAAAAACCATTAAAAATCGACAGTATGTCATCCAATTGGGGTACAAAAATTTTAATGTCCAAATTTTCATGACGAACGAAGAAACCTCGTTTGGTGGCCTAGTTTCCGAAAAAACTCTGTCACCAATTTCTTTCAAAATTCAAAATTTTAGTGAATCCCAAAAAAACGAACATATGCGGCGAAAATTTTTCAAAAGCTTCCGAACAAAATCTAAAAACGTTCCGAAAGTTCTGGGTAATTTTTTAAATATTAAAAAAATTCATCATAAAAAGGGCGGCAGATAGCGGTTCAGTCGGTAGTGGTGGCCGCTAGCAGTCTGGACGAGTCAAGTCCGAAGCCTCACCACCTAGGTTCACCCAGCTTCTATTGGGAAGTGGAGCAATCCACGACTGGATTATCGGCCACCCGGCTAGGACGTGTCGTGCATACAACCTAGCCCGAACCACCAGGCAGATTGTACCAGGATCCCCGATCCGATCCAGTGCAACTTGAAGAACGGGTCGTCCTTTAAAGATTCTTTCAAAACTAATTTTTTACTAAAAAAAATTTCCAGACATTCGTCGACAGGGCTTCCTTCTCAACAATTTGGCTCCAGCTCTCAATCGCTTCGTCCCCAAATTCTACCGATTCTCGCCCGCTTCAAGCACATTTCCCCAGCGGGGACTAATTTCCCCGGGCACAGCCGCCTCATATTTCGACAAACGAGATATCATTTAACTTCAACATCTACGATTTCATCTTTATTAGATCTAGAAACGAGGTATGAATATCCGAAATCCATGAAGCAAGGCGAGTATCCACGTGTATTATGATTGACGAGCTACGACTCGAGCCATTTCGTTGCTGATAGAGAAAAAGCAGCTGGGCAAACTGAAATTGCAGCAGAGAGTGAGGAATGTTTTGTGCATTTTGAGCCGACTTTTGAAAGATCAAGCTGTGATGGGTAATGAAGATGAGACGATTATCGATCCGATTCTTTGTTAAGGCAATCACCAAAGCTTGACCGTCGTTTTTGTATGTTTTTATACGACGGAAATCACTGAATTTCATGTCTATGCCGAAAAATCATGAGCAAGTATATACATCACATGAAAGAAAATAGTTACAGGGCCGGTTTTTTAATTTTTCTGTCATACCGGCAATTTTGAAACTACTTTTTGAACTTTTTAAAAATTTGGGTAAATTTGGCAAGTGCAAATCTCTGTATCGATTTGTCAGAATCATAATAGTTGTTTTAAATTGAACATCGCGTTAATGTTTTTAGCATTTTATCTTCGAAGATTTAATGTCTCGCAGTTAAAAATACATCTTTGCAGGAAGACTCCGCCGCGTGCATCGTACCATTTTTGTTCAAAATTTGCTCATGGGGACTTCAAGGTAAAATACGATAAATGTGTGATAAATTTGCTGGGATGTCTTTAGGGAGTTCATGCAGGTATGATTTTTCGTCGGAAATGACTGGAACGCGTTTTGTTCGCATCAATTCAAATTTAATGTAATGGCATTTGGCATATGAAATGTCGAAAGGTGCTGGGAATGCCGAATAATATAATTTGGTATGGAGAGCTGAATAAACTAGACAAAGTTCAAATATTCACAACACTGGGGATTGCTTCACCCGTGACCCGTTTAACCCGTTCACCCATTTTTACAAGGGAAGGTTCTGAACTCGTTATCGGACTTTACGCCCCACTATATTCATTCGATAGAGAATGGTTACAGATGATCCTCAGACTCCAAATTTAGCTGCTTCAGAGCAGGTTCGACCAAGTTACGACACTTTGAAGATGCCGGAGTAAAAAAAGAATCATTGATGCACCCCCTTTGAAAAAATTTCACGATATTCACTGAAAATACCGCTTTTTTTTTCTGAAAGTTGATAAAAATAGTTGAAATCGATTTAAATAGTAAAAAACAAATAATATTTTATACAAGTTTTAGCCCATCACTCTAAAAAAACCCCGTAAATTAATGTACATATCTTGAGCGAAAAATTCCAAAAAGTGATGTTCATGTAGATCCATCTAAGCCTGGAGCCAAGCCTTATGAACTGAAACTTGTATGGTATGACATGTTTCCATCATTTGCAACTATTTGTAAACATTTTATATCAACTTTGAGAAAAATTATTTTATTGAACTTTTTGGAATTTTTAAAAAGGGAAGTATTTTGGCACTTTCAAAATGTCGTAACTTGGTCGAACTGCTCTCAAGCAGCTAAATTTTTTGGGATCATCTTAACTAATCTCTAACTAATATAGTTGACGAAGGAAGTCCGATAACGAGTTCAGGGCCTTGCCACCCTTTTTAGGCGTCTTTACGGGTGACGGGTGACCGCTCGCCCGTTTTTTTTTTCGTTTTAGTTGTTTTCACGGGTGACGGCTGGCTCGTCACCTGTTTTTCAACCGTTTTTGGAAGTTTTCACGGGTTATGGGTGATCCTTGGTTCCGGCAGCCAGTTTAGGTAATAGGTCGTAAATATCGTTTTGGGCCGCGTCTTTACAACTGGGCTGTGTGCAACTGGGGGTGCACTTGGGTTGAAAAGGATCGACCGGCGGTTCAACTTTAGGTAGCATTTGGAGCGACCCCGATAAATAAAATGCCGACCCTGAATGAAAAATTTTAGCAAGGCGGCCATGCTCGTTTAATTTCCATTCTCAAAATTATGAGCGCTCGCCGGACTACTGGTTGAGCTATTGTGAAACGGGTCGACCCTGCTCGACCCATGAGCACCCCTGGCAACCATGATTTTCGGCAACTGGCAATCAGAGTTGCCGCACCCAATAAGTTTCGGCAGCCGGCAATTGCCGAAGCGTTGCCGAACTCTAAAAAGTGCAACCGCCACCGGCAATTTTGCGCAGCCCTGGTTTACACCTACCTGACGACTTTTGGTAGACTAGAACACATGTATTCGAATTCGACAGATGCAGCCGAATGCCGAAAAAAGTATTGAACGACATTAGGCACATGTCCGGGATGGGCGGATACCTTTTCGGATAACCATCTTCACTAAATCAATTTATCAATAAGTATTGATTTAGCTTAGTCGGGAGATACTATACTGACTAGAATAAAGAGTACCTATTGAGCAACATGTTCATATGACAAAAACGTTTAAAATTGTACGCATTCTCCTCGAACCCTGAAACTTGCCGTTCTCTGATCAAAATCGGCTAAGAGAAAACGGACTTGCATACTTTTTATACGGCAAATGTGTAGAATTTTAAAATGAAAGATTTGTGCTATCAAAATGTTGCTCACCAGTTTTTGTTCTCCCGGATGCGCTTCTTCCAGAATTACTACATCAGCACGTATTGATAACTAACTTGAGGTGTTTAATGAAGTTACCCGAAATCCAAAAGTATCCACACCCCGTCATAATAAGCATATTTCATAAGTCAAATATCAAATTTACTGAATTCCGCACACCTCTGCTCTCCATGCTCCAACTAATTTTTATTGCAGAAGACGAAATAGTAGTCCGCTGCCTTGCCGAATTCGTCGACTCTATTGGACTCAACGTGATTGCTGCACGCGTTACGAAGGCCTGAACATTGAGACTCATATTCGCAATTCGGTGTGAAATGGTTCTTCAAATTATCCCGTCTCTTTCTGAAACATGTGGATTTACTACGCATTCCTTCGCGATTGCGAATATATTATTTGACCGACTTTCCCAGGGCGAGAAAACGAAATACAATGATGATTGAGATCGTACGAGATTAGACCGAATTGATCACAGGAACTTATCAATCTTTTGGTGGAGATCTATGTGCCGAGGGTAACTCGGTAGCGTTGTCTTCTCTGCCACCTGCGGTCCAATAGACCGGATGTTGGGCAGGTTATGATTAAGAGTTCAAAGGAATGTCAGTTCAAATTGCTCTCTTCGATTCAAATGAGACGGAGTTGACTATTGTGCAGTGGTGGTAATTGTTTATTTTGAAATTCATTAGAATAGAAAGCAGTTTTCTTGGAATTTTCAGGAAATTAATTTTTTACCTATTCTGCATTACTAGATTCTTCAATTTTTTGAGAAAATATATATTCCTTCGAAAAACTCACGTAACATCTTTTCGTATACAAGAAGAAAGTTACAGTCGACGACTTTAAAAAATTCAGTTAATAAGATTTCAAAAACAAATCGAATTTTTTAATTTGTACCGCAATCTGGAAAATATTTTAAAATGACTCCAAATTTTTCCCTGATTCCAAATATCTATGAGATAAAATTCATAAAATAATCCCTTTTTGATCTTGAAATCGCCGTATTTCACTTGTGCACGCATGAGATTTCGAAGTTTCGCGCCAGAGACCGCATGTGTTAATTTACGAGATTTGTGTATATTTACGAACCCCTTAAGCTTTATCGGTTGCTGTTTGCCGTTTTTCAACGAGTTTTCTTCAGTTTCGTCGGTTTTTGTTAAAGTTTTTGTTTAAAACATTTAAAACTTGACAAAAATGAAGGGACTTCAACTCGTTGAAAAACGGCAATCAGCATCCGATAAGGTTAAGGGTTTCGTAAATATACACAAATCTCGTAGCTAATCGACACATCGGAGTCTCTGGCGCCAAAATTCGAAATCTCAGCACAAATGAAATTCGCGTTAAGCTGAAATAAACCTCCAGGGAAAAACATCCTTTTTCACATAGTTGTTCGAAATCAGGGTCAAATTAAGAGTAACTTTTAAATTTTTAAATTTCTTCAGTGGCATCTAATTCAATGCAATCACCGGCGATAAATACCTGAACATTCAATTCTTCGTTGCAATTTCACGAGTACTCCAAAAAAATCGATTGACCCCATTAAAATTCGTCAATTTACAACTATTCCAGCTTATCTTCGACGAGGCAGTCTGGATATCGAAAAAGCCATTTCTTTGAGCATGCGGTCAATGGCTCCAACAATCGATCAAATGCGGCTTATGATCATGCCAACGCGACGGAACATCTTCGAACCCAATCCGTTGAAGAGCACGTTGTTCGAGCTGTTCGAGAGCTCCGAGAGACGTCAAATCGAAAATCCGGTGGAAATGTGAAGGGCACAAATTAATGAAAAACCAACGAAAATGGTGAAACTAGCCAACTCGAGATGCTCACCGAGAATAAAGCATACGATGGACGGAGCATAATAGAAAAGTTGAATTCATTCAATCATATGTCACAAAAAAGGAAATTTCCTTAATTTTTCGGTTTTTTTTTTCGGAAAAATCTAATTCTATGCAAAAAATTTAATTGAAAATCCGGAGAAAATCGTATACTTTTTGTCGAACCATTTTGTGGGCGGAGCCTAACTAGTAACACTTTTCAATTTATGGCCCATCTCGAACAGAAACGTGAGAAAAAATTCTTCTTTTTCGCGAAAGTCTAAAAGAAAAAAAAATCGGAAATTTTTGAATTTTTCGGTTTTTTCTGAATTTTCCAATTTTCATTCAAAGAAGGTCGAAAACTTTTTCGGCGATTTTCCGGTTTCCTTTTTGAAAAAAAATATAGATTTAAAAATGTGTAGTTTGTAGTTTGTAGTTTTTGCAGTTAATGTCTTCCATTTTGGATAGGCGGCAACAAACCTGCTCGACGTGGGAGCACGAGTGTCTCAATCAATGGACATCTGTCGCTGCCGATTCAATCGATATCGATTTAATACGAATCTGCAAACAACACCTGACGTGTCGGGAGGTCCAATAATGGCGGACATAAAACTACGACAATCACGTGTCCCGTTGATGGAGTGACCTGGCGATTGCCGAATGGTCACTCGCATTAAGATTACAATTGAATATCGTCGAATGATATGGAAGAGGATATTATTTTGGAAGATGCGCAACAAACATTTACAGAATACCACTGGAGAACTTTCTGTAGAGACGAGGTTATAATGGTACATGCGGTCGGGTTGTAGCGAAATAATCATTTTTAAAAATTTGAGAAAAAAATTGTGAATTTTCCGCGTAAAACGTGATTCAATCGCGAATTATTGTATAGATTTTTCCGACAATTCGGAAAAATGCCGGAATTGAAAATTTCCGGCAAATCAGCAATCCCATGGCCGTAATTCCAAATTTCCGGTAAAACGGCACATAGCCAATAATTGACAATTTCGGCAAGTCGGCAAATTGCCGGAATTCAAAATCTCCGGCAAATGGCCAAATTGTCGAAATTCAAAATTTCTCGAAAATCGTGGCTGCTAATTGCCGGAAGTGAAAGTTTTATTGATAGAGATAAATTAGAACTATCACTAGAATATGTAAAACAACTAGGAGTTATCATGTAAACTTGTCATTTGAATTTAACACTAGCAAATAGATTGGGCTTCAGATTTTGAAAAAATTAATATAACAAATCAGGAATTTTTTGAATTTATCCACATTAATCTCGATTCGGTATCAGGAGCATAAATAGGATCTTTTAAGATATATTGACAAGAATTTCCGATCAAAGTTTCAAATATTTTTTACCAATTAATGGGATAGAATGTTACATGAAACATTACAAAAAAATTATTCATCAGGTTCTCGTACAACTCCATTCCGTCTGTATTGGCCAACTGTCGAAACTCGAAGAATATCGTGAAACGGTATCTCCCGTATGAAGCAGCAGGCGGTCACCGCATTCGTACAACAAATTCAAAATTCGTGTCCAAACAGTCTGGCGCAATTCGGGTGACGACTGGACGAAAAAAACGGTGCAACGGGTGAGAAAAGGCATCAGTATGAGAATATGAATGATTTGGAAAGTGGATAATTCGTTGAATTCGGCGGCCCGGAAACTCTATGAACTCCGGGTTTTGTGCAGTTGCAATTTTTGAAGTTTGTGTTGAAAATTCAAAACTTGCACACGAACGGATTTTAAATTCGATTTTTCGCGATGGTTGAGCATTCAATAAAATTTTGAAAAAATGACAAATTTTTGAAATAATTTCCGAGAAAGAGTGTAAAGTTTCAGTAAAAAAAATTCGAAGATTAAAATTTATTTTAAAACTTAAAACATCTGACTTTAAGCGAATTTTTTGACAAAGTATTTAATTAGTCATAAATTAATTCAAAAAAATTATCTAAGATTTTTAAAAACTGTTTTATACAGTTTCAGAAAAATTTAAGAAAAAATTTTTTTTCAGAAAAAACCGGATTTTCTGTTAATTTGAAATTATGGAAAAAAAACCCCAAAGGGTATTACGGAACTACGTCAAAATTCTGAGAATGCGTACCCCGCAATATTTCTGTGGAACTACAATTCTAAATGACTTCTGTAGTGTTGGTGTCGACCTTTACGGGCTCGATTTTAGATCGAAACGTTATTGAGCAGAAAAATTATCACATAATACGAAGAAACGAAGGAAAATGAAACTAAGTTATAAAAAAATTCGAAAATCGAGATCCCGTAAATCGACGCGCTACAGTAGTCAAAAATTAACTTGAAATTAAAGGATTACTGTTTTCGCTCCGAAATATTTTGCGAGTCAAATGTCTTGCGCAATACGCAGAGACTAAATCACAAAATTCTATGCTCCCGAAATAGACTGAGAAAATTTTTCCAAGAAAATTCCGTTTACGTCGAAAAAAAAGAAAAAAAGGCGTAAATACACCAGTTTTAATATTTACTGAAAAAAATTGGTATAATCTAAAAGTTAATCAGCTGAAATTGATATGTTTTCGGATAAAAAATTTTGGCGGGAAACTCACGTTAAAAAAAAAAATTTCAGTATGCATCAGCCGACTGGAAGACGACGACGAAGCGATCCGCGCTTCATCTCTCATTTCCCTTAATCGATGTGATCTACGAATACACGAAACGGACGTCGGAGTGATCCCCTGGCCTTGCTCAAAGAACCAAATCGAAGTTCCAGTCGAGGCTGTGGATAAGTGCCACCTCACACATGTATGCCTCCAAGTGCTTCTCCATGGAAAAAACGCAAATCACGAGACACTTATCACAGATTCTGTGACATCTCATCCTACCCGTATCACGTTTTGCACACAATTTTGATGTATGACTGACGTGTGAGAAGAACGCTTCCAGAAAGGCTTCTTGAAAACGAGATACGCACGAGCTGACCAATTCGTCTTAAGGAGATTGTGATTACTATTCGATGCTCACCAAGCTTATACTCGGTACATACGGCGGCTAAATTTTTTTAGAAATTTCGAAAAAGACGAGAAATTCGATTTCTTATCAGTTTACAAAAATCTTCGCTCCTGTTTCTGACAATTTTAGTGCCGTGGAATCCATTCAACGAAAAAAATTAGGTTCTACTGGTTATTTTTGAGCATATTCAGTAATTTAAGCCATACTCTTTTACTTCTAAACTATCCGGTGACGATACGTGAACAATGTCCAAAATTATATATTATCTAACGCTACAGCATATAATTTTTACCAACCATTTTCATTCATTTTATGGAAAAAAGCATCTAGAACATATGTAATATGTTCAATTGTTCGATTTCAACAAAATTCAAACCGACGGCATGCTCCTTGGTTTGAATCGAAAGTTCAGAACAGTTTTTCATAGGAGAGCAAGAAATTGCAATGCTTGACGTGAGAGGAAACGTACGGATACAACGTGTTGAAATAAACGGAAAAAAACCGATGTACCGATGGCCACATGATTTGAAGATTTTCAAGTAAATTGTCAATTGTCGATTCACACCATTTCGCAAAAAAGGTTTGTTTTTATTTTATTAATAATTATTAATAATGAATACGTATTTGATCATACAAAAATAAAATGTCTTTTCCAGATTGGTTGACCGGGTGACTACTCGACGACTGACCTAATCACATGGAAACGATGAGGTAGAAAGATATATTCACAATTGCCGACGGAATTTCCACTCCAAAAATCAGGGCAATTGAGGGTAGCGATGGAAAATGGTATAAAACTGGAAGAAGGACGACGTACGACAGGATGTGCTTGTTGAGGATAGCAAATGTTTGATGTTACGAATAATATGTTGCCGAGAAGGCGATGCTTCGGACATATAATGTTCTTCCGTTAGACACTGAATGTGGAGTTATAGAGTTTTGCGGTTGTTAGCTTAGGTTCATTTTTTTTTCGTTTTTGCAAAAAACCAAAATACTATTACGATAACTAGGCTGAGAATGCGTTTGTACAACATATTTGACGAGCAAAATATCTCATAGCGAAGACTACAGTAATATTTTTAAATTCCGACCGTAGCGCTTGTGTCGATTTACGGGCTCGATTTTCGAATATTGCGGGGCCGTGATATCATGAGTATGCCTATTTACTGGCGCGAAAATATAGGCACGGAGCCCCGGGGAGAGAGCGTGTGGCGAAGAGAGATAAGACGCAGGTCCCTTCGCTACGAGATATTTCCCGCCAGAAAATAGCATTCTTTTTCATGATCTCATGGTCCCGTAATAAGCGATTCCATCTATTTCACTTCAAAAATCGAGATGCCGTAAATCAACACAAGCGCCAATTACTCTCATTTAAAGAATTTCTTTTAGCTACGAGATTATTTTTCCCGTCAAATATGTTGTGCAATACGCATTCTCAGAAGAAGAAAGAGGCGGGCAGATAGCTGAGTCGGTATTGGTGGCCGTTAGTGGAAGTCACGAGTTCAAGTCCGGCCTCACCCGCTAGGTTCACCCAGCCTCTATTGGGAAGTGGAGCAATCCACCACTGAATTATCGGTCCCAGTCCCAGGACGTGGCTTACATCACCCAGAGGGATCGCCACCAGGCAGTGTACCTGAATCCCAGCTCCCCAGTGCATAGCACTTGAAGAACGTCGTCAACTTTAATCCTTAATCCTTTAAAAATGTAAAAAAATTTCATTGCCAAAATATCAAATTTAACTATGAGACGTTTTTTCTATTATTTTTCAGAAGAAGTTATGTGTGGTGTGACACGAGAAGGCGGTTTCTCCACCGGGAGTTCAATTCAAAAGAAGTTTCGGCGAGTAGATAAGTGTCAATGACGAGACTAGTACAGACAGAGTCCACCAGAGACACGACCAAGTTTTTGTGGTGTCAGCAGTATTCTCCAGTTTTTAGGTAATTTTTCTGAAAGTTGTCGAAGTTTTTTGTTTTGAAATTAACATAATTCCCAAATAATTGGCCTTTTTTCATTTCCAAAAGATAAAATTACAGCCACTTCTTCTACACCAATGCGACGGCGCAGATTTGGCGGCAAAAACTTATAAATTGTGTCACAGGCAGAGCTTGGCCACGTGGCGCGAGTATTGGTAGGTCTCGAACTATGCTAATCGAAATGAATTTTCGAAGAATTCGAACATCTCAGACTTTTTCTGAAAAATACATAAAACGTTATTTTCCAATTTTATCAAAATAAGAATATATTAGTTTCTTGCGAAATGCAGTCTCAACAAATCTTTTTTTTAAAAATCAGATTTTTAAATGCTTTTTTTAAAACTTTTATCGTTAAATTGAACGTTTATGAAACATGGCGAGAAAAACTTTTTTATTCGCTTTTACAAATAATTCTCAAAATAAAAATTCCAGTGTGCTACATCGTTGGCCTCGGCGATCGACACGCGTCGAATATTCTATTCGATCAGAAATTGTTCACATTGGTGCATATCGGGATGATTTTGGAGTATAGTAAATGAACTTACCGGTGCCAGTTCAGCCCGAAGTTCCATGATTCCGTATAACTCTATGGTCGACCCGATTCTGATTGAAGGAATCGAGAATGGACAGTTGGCTGAGGAACGTACGCAGATTATGGCGATAAAATTGAAGGAAAATGGAAAGGTACGGCGGTCTGGGGAAATTTATACGAAAAGAAAATTTTGGATCGCTGACAATTAGACTTGTAAAGCAATTTAAAAATCAATTCAAATTTCCCCCCAAAAATATTTTTTCAAATAATTTGAATTTTAGCTAAATTTTTAAACAAATCTGAAATTCCCGCCAAAAGTTTTCCAAAAAAAATGTTCCCGCCTAAAATGTTTTATAAATTCAAATTCCCGCCAATTTTTTTTACACAAAATTTGAATTTCGCGTCAAAATATTTTCCAAAAAATATTCTGGGAAAAATTCCCTGAATAGTTCAATTGACGCCCCACCAAATATCATTCAGAATAAAATTTTAGAATTTCTCGCCAAACTTCTCTTTCAATTCCGTCAATCCCCTCAAAATTGCCAGGGCTTTAATCCTCGGTGTCGCCTCTGCTCTCCGCGAAACAATGACAAATTGCCAAGCCGAAACCAGCAGGCTGCCGGCCGCCCGTCCTACAATTCTGAAATGGCCATCGGGCGGCTTGGAGAAAAGCTACGGGGCACCGATGACGGTGTGACGGCCCAATCGTCGTCAAATTCGGCGACTTTTACGAGAAGCTACGAGTGCTGAGAATTTATCGCGTTCTGCGGATGGATGCCTTTTTTTTAGAGAAATAGAGAAAATTTATTCTCGAAAATTAAATTTTTACTGTATTATTGATTTCTCGTATCAATTTTTCAGAATTTGCTTTGTTTTTTACGCGCAAAATAATCTTTCTAATTTAGAAATTTTTAAAATCTAGTTTCTGAAATTTCTGCAAAATTCCAGGAAATCAAAAAATGTAGTTTTCCATCCTAATCTTTTTTTTCGTTGATTTTCCCCAGAAATTTCAAACTTTTACTGTATTAATCCCGATTTTTAGGCTCATATCATGTAATGTTTTTTGTTCACCATTTACATGTTTTTCCTACCTCTTATATGATTCCCCTTCCCCGAGGTCTCTTTCTTCACAATGTTTAAAATTGATTCACTGTTGAATCTGTTGTCTTTTTTCTATGCGAATTTTATTAGTTTTATGAAAAAAATTTGTAATATTTTTGAGTAAATTTTGAATCTTCTTACACTACCAGCGCAGTTAACCATTTCAGAGGAGTTTCTAAAATAAATAGTGAATTTTTACAAAAAGTATTATGATATTCTGATTTCAGACGTACATGAATTGCCCGTTTTCAACAAAATAAAACAACTTTTTATTTGTGCCCAATTTTTTTTCAGCCATCTAATGACTGTCCTTTTTTTTTGGGCAAAAGTAATAAATTTTCTAAAAGCGTTTAAAACTATTATATTTTGAAAAAAAACCATTTGGGTTATCAGTTGGCCTTGGCAATTTTAAGTTCTCTAGCTACAAATTGAACCAATAGAGGTTTCAAAATTGTGAGATTTTGCAAAAATTGCCACATTTTGCCACTTAATGCTTTTTGATGGGTTAAACCTAGATTTTCTGAATTATGCATATATAAATTACCCGTTTTTAACAAACGGTATTAGGCAACTTTTTATTTGTGTCGAACTTTTTTTCAATGACTGTCCTTTTTACTGTTTTGGGCAAGAAAAATAATTTATTGGAATTTTTTTCTATGTTCGAAATTTTTGAAGTTTCTTGCAGCACTCCGAAAAACCAAACGACCAGCACTACTTGCAAAGTCCGAAAAAGTTTAGAAATTTTGAAGTTAAAAACTCCCAACTCCATAAACTCACGATATAGAAATTAAACGTTTCCAAACATGTCCGAAAAGTCCAAGAAATATCAGTACAATTTCGAAATTTTTTTCATAACACTTCTGAAAATAAAAAACCGAAACTGCAAAAATTTGAAAATGTGCTAAACTCCAAACTGTACGATTTTCCACATTTCAGAAATTCCAAAATTCGTCTGCCAAATCCCTTCGGCGCAATAATCCCCCGGGGTACCCCCCCCGCCCTAGAACCTTTTGCCTCTATTGTCTCTGGCGCAGGAACTTGAAATTAAACAATGAATCGATATTTTAAACTGGTAATCGTAACCATCTGCTCCGGATGTATAATCGCCTACACGAATCTATTCAATCGATCGTTTTTCAACGGGTACTGTAGTATTAATGCTACGTGGCAACAGTCACAAGGCGAAAACGACAGTCAGTGGCAAACTCGTTGGATTTGTGTCGTGCTTAGTCAGGAGGGTGTGAAGCAGTCTATTCCGCCGTGGATTGGCGAGGTTCCCAAAACAGTTGTATCGGGTGAGAAAGATTGATTTTTAACACCCGTCTCGCCAATTTTTTTCTCAGAAATTGGAATCCCCGTCACAAAACTTTTACAGAGTGAATTTTCGAAGAAATTGGAATGACACCCAAAAATTTTCTGAAATCTAGATTCTCGGCAAAAGTTTTCAGAAAGTTTGAATTCTTGTCAACAATTTTCTCAGAAATTTGAATTCCCGCCAAAATTTAAATGCCAGAAATTCGAGTTACCACCCTTCTCTTCAAGTCTAACAGTATTCAACAATATACAATTAAATAGCTTTTCAAATTCCTAAAAAGTTTGCTGGAGTGATCAATTTTTTAGTTCAAAACTCGCTAAACCACTTGCCCATGTAGACTACATAATCAATTCTGAATAGAACGCTATTTTATCCTATTTTCAGACATCAAAACCGAATAGCCTAATCGCGTGGGTCATTGAAAAATCATTTTCGATCTTTCTGCTATTATGTGGTTTTGACACGATCCAGGCCGTTGATATTGCGCCAACGAACACTGGCTGATATTTTTGGAGACAGGTTTGCGGCAAACGAACTCCGCTGTCGACTCTCGAATTATCAATTTGTGCATAGCTTTGTAAGGATAAAAACCAATTTACCGAGTTGAAGAAGATCGGAAGCTGGCAGTAAATGGCTCGATTTTCACTGTGGTTCGGAATCCGATCGATGGGTTTTGGCGTAACTCAGGCTTCACGGATAAATGTTTAAGAGAAAATGTCTGGAAGTTCAAAAATCGCGCCGGATGTAAGACTGTGCGTTTAATTTGCAATAAAATCTTTTAAACAATTTTTTTGGAATCTTTTATTTTCGGGAGTTTCGAAAGTATATTGGAGTTTTTTAGGGACCAAAACAATTTCAATTGAAAAAGGTTTTTTGAAAGGGGGTAACATTTTTCTAGGCCACTAGGTGCCCTTTGTAAGGTGGCCTAGAAAATAATGTAAAAATCTAGGCCATAAGGGTTGCATATTGCCTGATGGCCTATGAATAAGCTAGGTGCGCCATAACTTTTATCAGGGTTTAGGAACGTTAAAACTTCGGGCAGCAAGATTCGCATAATGACCTAAAACTTTCAATGGAGAACTCGGCTATAAAAATCTTCATGATGGTTTCAAAAAGCGGAACACTCGGGGACCATAATCTTCTAGAATTTTTAGTAAAACTAGGCCATTAAGGTTTCTTCCGTGGTCTAGAAATCGATTCCGGGCCAATACTAGGCTGCCAGGGTTTCTAGGCCACATAAGAAAGGCCTAGGTACAAAAATTATCTCAGAACGGTCTAGAAAAGTGGATAACTAGGCCACCAATTTTCACTTCGTCAGGAGTTTCAAAAATATATGATTTCATGATTTACTTTTCGTAGTTAAGAGTCTTTTTTTTCAAAAATTCTAAGCAAACTTTGACACTAAAATGCTTGAATTTTTGAGAACTTTGAAAAGTGTTTAAAAATAATTTTTTGAAAATTTCTCAATTTTTTTTCTTCGAAAAGCTCAAAAAAACGATAAATTTCCACATTTTGGCCAGAATTTAACATTTCGTCGATAAAATGTACGATCGGAGGCATAGATTCGCGCGGAATCCGTACAAAGGAATCGTTTTCGACGACAGTCACTTTTTCCCACAATCTTGGTATCGGTAAACGCGCTCGGCATTATAGATAAAGTTGGAGCGCATTTGCATTTTGAATTTTGATGTCTGATATTTCTCGTTATCCGTCAGGCGATGCGAGTTCTCGTACTCTCATCTTGGAGTCAAATACCAAATTTTCCAATTAGCCGGTGCAAATTTCACAAATCGTGTGAACTTCTTGGACTGCTGTCCGAGCGGGGAGTTGATGAAATGGAATTAACTTTATTGTGAGTCTTAATCAAGTTTGGGTCTCATAATACCGCGAAAACCGTAATTGATTGGGACAATGGGACCCAAGAGAGCACCCCAATGGAGCGGAATTGCAACTCCTATTTTTCCAGTCGGAAGTCTCTGCCATCACCGGACCCCACACAGCACAAAGGATTCCGTGGAACGGGCGGCCGTCCAGGAAACTGCTGAGTAGTCCCCAGTATTTGTTGCGAAAATTCAAATGTATAATTTTGACTTTTTGCAAGATATTCGGGTATAAGCTTCCTGATATTGCAGTTGGAAATTAGTAAAAGCGTTAGTATTTAAATGTTGTTAAATAGTAATAATCGATAAACTTCTTGAATTTTGATAAACTACGGCCACGTCAATTTTTAGATATTTAACTGTCCGGGCAAAAAAAACCTAAAATTCCCGCGTTACAAATTGAAAACAAAAATTTCACAAAACGAATAAAAACGTCTAAATGTTTATAGCTTAGGCTGAGGTGAGATTTAGGCTTGGGCAGGTTAGTTTTTAATTTTCAAGGTTTGTCATTACGTACTTTATTTCCGAAATACACAACAGAAGTCTCACAACGAGTCAGGGGTCAGTGCGTGTTGGTGGGTGGGGTGGGAGATTCTGGTGGGGACCACCACTCACAAACAAAGATCACAACAGGGAAAATGTACACGTGGCAATATGGTGAAGCTATATGTATATATAATGAATAATGATATGAAAATTTGCATAATAGCAGGAACAGTACCTGATTGTTCCCTGGGGCGAGTAGAAGATATGTGGGTTATCTATCGATTACCATTACACATGAATTACGCTGTTACGGTTAGAATTTTGTGAAAAAAGATGAGTAAAACGCTGGGACGGGGCTATAAATCATATCTATAATTGTCGAAGATGCTCCACGAGCCAGGAACGAGGGGAACATTGCGTCAAGGGCGGTCATTCCATTGTAGTGATGATGGTGCAGCTCGTGCATTGATTGCTGTAGCAGTAGGGACTCCCCTCATCACCGAATTGATAATCTTCTTTCCAGATGAGAAACGCTCAAGACGGGAGGCGTGTTGGAGCACACGCTGCTTCATTTAATTCTCGTACCATCCAGAGTAATAAGAGAAGCAGAATAGCTGGTTGAACTTGACGTCCTCTGGAAAAAAACAATATTTTCTCTAGTTGCCCACTTAACACTTGGACAGAATTAGAAATATTTAAATCAGGGCGGGCGGCAATTTAAGGTTTTTACACTGGGGCAAATTCAGCAATTTGCCTATTGCCGGAAGTTTTTAAAACAGGCTCTTTAAAAGACGGATACACTTAAAACTGTGCCTTTTTGAAATTTTCTCCCGATTTTTTTACATTTTTTCATAGATTGTACTGACTTTTCACAATAAATGTAGGCATTTATAGGATGCATACAATTTTGCCGATAAAAATTGAAACTGTGAAATTTTCAGAAAAAATGTGCCCACAATTTGCCGAAAATTTTAGTTCCGACAATTTGCCGTTTGCCGGTAAAGTTGAAACCGGTTCCCAGGCCACGTACGGATCAGTTTTTGAAGAAAAAAATACGGCAAATTTACAGAATTAGTACCATGTGGATTTCTTAAGAACTATTGCCAAAGTACGTAGAATGCAGAAAGTTTCTTGCCTTAGTGAAATTTTGGAATTTTTCGGGATTTTCGGAAAAAAAAATTTTTCCATGAAGACGAATTTCTTTTTCAAAATTTTTTCACGAGTGTAACTCTAATAATACGCCTCAGACGCGAAACGTTTTCCGATCAAAACACGGCCGGGGTCTCGAATCGACATGCAGTATTTTTCTCGCTTTGTCATAGTTTACTTCTCGACAAAAATGGATTTTTTTGAATTACAAAATCCTTAAGTTTATCTACCCAGAGGGAGAAAAAGAAGACCTCCCTATAAAAATTTGAAGAGTACTCATTAAAGGCGCCCTTTTTTCGAACTTAACCAAAAATTGTCGTGTCGAGGCCTGGTACCGTATTGTGGTGCGAAAATCATCTAATTGCGGCATTCGATTTTTGCGTTTTTTGTTATTTTAAAAAAATGTTCAATTTTTCAAAAATAGCTTTTAGATAAAAATAATAGGTTATTCCTTCTTTTATTTTACGGTCTTCTAAATAATTTTAACATTTGGCACTTACGTTTCATCACAGAACAGAAACTAAAGACTCTGTGCCAATCAAAGGGGCGGTGCAAATCGAAATCATTTGGTGAACAACATAGTTGCCATACTGGTGGAACAGAAGATTATCCCAAACGCATCACGATACGACTCGACATCAATCTTCACAAATCCACACTATGAAAATCTCCTCCATCATCTCGTGAAGCAACGGTCGGGCGGTGCAAACAAGTACGCTCCCTCGATGACGTGCGACGCATACTTGGTGACAATGATAGCTAGTTACGGAGCAGGCATATATCGATGATAGTGTCTCTGTACATTTCCATGATACGTTCACCGACGATTTGATGATCCATATTGGAAGACGTAGTTGGCGAACTCGTTGGAAGACAGCCGGTAGCAATTACGGACGATACACGTCATCAGAGAATGCAACAATTGAAGATGGAATTTGAAACACGGGAGCTTGGGATTCTCGGGGGGTCTCTCGATGACCTGTTGCACGAGAAGACATCCATACTTGTCATCGGGACTGGCACACGGCCATCGGTGAATCTCCTGAGGAGAGGAAATGCGCGAAAAAGGTCCACATGTCGACTGGACGGTTTTCGAAGTTTGACGACACGTTGAATCACGTGGATCGAGATTTGATCATCATCCACAAGAGATCAGCACATTGCCGCCAGGCGAATGTGCTTAGCTCTTGGATGAGCTGGAAGACGTTGGCATGGTCGAATTTCTGTTACAAATTATTGATTTGTTACACCTCGAAAGGCCTAAAGACACCAAACATAGCCCTAAAAATTTCGAAGCAATGGATTAATTTTAGCTAAAACGTAATTTTTTGCCAACCTTTCTGTGTCTTTTTTAAACCAAAATCGAACAATTTCGTTGTACGATATTTTGAACACATTTCAATTTTTTCGGGGATAATCGTATATTTCTTTTCCTCTAGGAGCCTTTTATGTGTATGTTTTTTTCATCGACAAAAAATTTTCGTTAATGTGTGGACCTTTAGGTAGTACTGTAACTTCATTAAACTTTCATTGCTGCGGAATTTTTTAAAATTGATTTTCAATGTTTTTCTACAGTTGTCGTCCAATTTCATCAAAGAAAAAAACAGAAGGAAAAAACATCGATGTGAATTTAAAAAAATTGCGGATCAGTGAAAAGTTCGGAGTTTAACAGTACTCTTTGAAGGCGCCTGTAACACCTTTTTTGTTTTAAATTTGTCGTGATGAGACTCGGGACAGTTTTTCGTTGCGAAAATCGCTGCTTCGGCTCATATCGAAGAAAAATCAATTTCCGACCGCTGCGACACCTTAGCAAAGGAAATTGTGATTTTAGCCAAAAATCAATTCAGTTATATATCGGAATTCCCTGGCGAGACGTATTTCTCCCACAGCAACTGCACAACGACATGCGAATTTATCCTTGCACATGGCAAAGGCAAAAGCCCACCGTCGATCATTTGACAATCCCCGCTGCTCGGCCGGTGTTGCGAGCTCGACGAGCTCAGCTCTGAACCATGAAACGATATTGCACTTCGACTGTGGCAGAGCCCCACGAAGAGCGTCGTGGATTCGCTGAGCTTCTCGAAGCCGGCTGTACGAATCTGATCGTGGGAATCCAGTGGGTAGTTGGCTCCAAGAACTTCACGCCCGATGGATCGATTGCGAAATCGATGATCTGCCCGTTGCAGCACATCTTCGAGCGAAAAGAAAATCGGAGCAACTGGTGGTGGGGTCTCATCGTCGGAGGAACCCGATCCACTGGTAAAGATGTTGCTGTCGAATCGGAGAGTGTTGCTTCCGTGGCGGTAGGGAAGAAACTTGACCGACGGCTTCGGATAAATTCGAATTTTAAATTTTTATTATTTTCTATTTAAATTCGAATTCCGTTTTATGCGTTCGAATATTCCGCGTTGTTCTTGTGAGTTTTGTTCGACAAAGCGAGAAATCCGGGTCGAAATCGAACGACGCGCCGAGCATGTTGGGCTGTGCTTCTACGAGTCGGGGTCATTTAGACGGAAATGAATGAATACAGGTTAGTAGACGCTGAAAAAATTTGGGAATTAGGATTTTCAACGGAAAACAGAGTGAAAATGAGAGGAAAAAATGTAATGATTTTTTTTCAACGAAAATCGCGAAATTACATCAAAATTCAACATTGAGGCCATTTTTCGCGGTGGCCCAGGTTACGGTGATTTTTAAGCATGGTTGTTTTGAGTAAGGTCTTGACCCGTTTAAAATTATTGAACATTTCATCATTTTATTTTTAGTCATTTTTAGAGAACAAAATGATTAAAATTCGATTTCTTAAAATACATTTTCACAAAAATTGCAAGAAATCGCTGGCCAAAATTCGAAAATGAAGAGTTAGGCGGTGCTCATGGATTACGGATTTAAAGGCACATGGCTTTTTTTTTCACCACGAAAGGAGGATAGTTTGCTTCCCATTTTGGGGCCGATTTCTTTTTTTAATTTGGCTTTCGCTCGATTTCCACACATTTTCACTCATTTGCACTCAATTTTTTTGCAGAAAAATGTCAATGGATATGTTATGAAGTCAGATGAGCCGGCGTTCATCTCTGCGCCGGTGCAATATGACTTTAAGTAAGCTCAAATGTTTGTTATTCTGGCCTAAAATTATTTTTATGATTTTCAGAACGTTCGCATTTTTCGCCAAAGATCCGAAGAGGAATGCAAACTTATCTTCGGGCTCGAACGCTCGAGAAAGTTTCCAGCAGGCCACGGGGCGCTCGGAGAAGATCACGGAAGACATTTCCGCCAAATTGAGTAGGTTTTTCGATTTTTTTACCCTTAAACTACTATTATTTTCCAGCGTCTCCCACATTTCGTCGACGGCCTTCAAGAGAGATGGTCGGTGGCATCGAGAGAAATCGGCTCGGCTCGCAAGCGATTCTGCTCGACGAGGACTCCAGGCGCCGCAGTCCCAGCATTCTTCAAATCGATCACGCTCCGCTCTCCGCTATGATTCGAGAGAGTTGGCAAGGAGATCGCCTCATCTGATGCCTCCGACTTTTATCGTAAATTATGGGATGATGAGCTCGAAGAGGTGAAGGAAGAAGTGGTTGCCGTTGGAGAAGCCGTCTTGCCCACGCCAAAAGTCGAACTGAACTATGGACCCAGCATCCGGAAAAGGACCTGATCGTCAGCATTTCCGTGTATCTCGGCTACACCCGTACCCTTCAAATACCACGTGATTCGCGGACGTTTGATGAAGATCACGGATCCCGGCTCGAGCTCACATCAGAGACACGCTTCGCTGAAATACGCGTTCCCCCATTCTCGTTTTCCGACGATTATAGCGAGAAAAAGCCGTCGAAGAATTCAAGGATATGGCGAAAAATCAATGGCAGTCGACGATGTTCTTCATTCAGGACAGGTTTCATAATATAACTGGAAATAATTTAATATTTTTCGAACAAATTTGATATTAACCCATCTTATTTTGATAAAACTCCGCCGCTGCTCTCTGAAGCAATGAACTGCAATCCGACATCAGCGAAGGGATCAGCCGAACTGAGACGGAACCACTGCCATTGAGCTTCTAGCGAAGGAGAATTAATTTATTTGAATTTATTGTACGCAATCGTTCCCATATCTGTGAGCTAGCAAGCTAGCTAATCGTGATTAATTGTTGGGTATTCCTTCTCGTTCTTCAGCTTCTCCACAAGCATCTTGTCTGCTCATAATCACACAAATGATGTCATCAGCATCGCTCTGATCTTGAAAATCCTGAAATTATAACATTCTAGAGGGTTTCTGTTGAGTATAGTTACCTTACAACCAACACCAAATATGTTCTTCATTATGGCATCCGGCAGCTTTCCATGAATCGCAGAAGAAGTGCTCGGCATCAGATCGGATGCTCTACTTGGGAAATATCGACCGATGCGGCTAGACACGAACCATGTTGAGTGGCCGAGAGAGGGATCATCTCAAAGATCTAAATGTAAACTAAACAAGAGTTTAGAAAATTTAAAACAACCTCCCTGATAACGTAGTTAGCTTCTCGCGGAGTGAGCTTCTGCTTCAAAATGAAACAGAATGAAACAAGAATCAACTGTGTATTGTACAAAGTGAAGTATTTCAGACATTTTCGCTAATTTTGGCAGTAAAGACCTATAATTTTGGTAAAAATCGCTTGTATTCTGAAAAAAGAACTCAATATTTAATTTTTTATTTTTAACTGATTTTAAAGAGAAACAAACGAAATATATGAAATCGAAGAAATCCCTGAGAAAAAAAAGGTGCTCCTCCGCAATATTTGTGATTGTTAAAGGGACAACGACTGTTCATCGAATGGGTCCCTCCACGATTGTCCATGTCGAGCGCTTTTAATCGCGATATTTTACTACTGTAAAAAAGTGTACTAGGAAAAACCTGTGTAATGTCGAAAACGTCACAAATGTATTTAAATACATGTTTTTATTGCTTGAATAAGCCGGCAAAGTATGTATTTAAATACACTTTAATTTTCCGACATTATTTGAATAACCCCAAACCCCGAAATTTATTTTTTGTGAAAGTGATAACCAGAAAAATACATGTTAAAACAATTTTGTGAACAAAAAACTAAAAAATATTTTTTTTGCAGAGATGAATCCCACGTGAACGGTCGAATTTCCACGCAGCCTCGTCGAACGGACTTTCAGAAGAATCGCATGTGACACGTAGGAGGCGCCATGTCGGCTCAGTGAGTACAAAAAAATCCATGGGGATTTTATAGAAAGTCGGAATTGATTCAATAAAATCGATTTTTATAATAAAAAAAAGGATTGATTATTGGTTTTTGAAAAATTTAAAAATTACAAAAAATCTATAAAATCGATTTTTTAAAAATTGAAATTCAATAGATTTCTAACTTTAGAAAAATCGAAAAATAATGTTTTAAAAATCACCCAGTCAGAATCGATCAAAAATTCAATTGTCATCGATTTTATTTATTTTCAAAAAAACTTAATTTTTATGAACATCGATCATATCGGATTCCAAAAAAGAATTGGGAAAAAAGTAAATTTTCAAGAATCGAAAAATTTTAATTTTGTACAAATAGTTATTAATAACTCATTTTTTAGGTTTTTTTTCAAAAATTTGAACTAAAAACACTTATTTCTCGAGCTTTTTTCACAAATTGACCCTATTTAAATTAAAAATTCACAAGCCAAAAACCTTCTATTTTAACCAAAAAAAAAACGAAATTCCTCTCCCAAAAATCATCAATTAAATCCTTTTCAGCTGGATGATCGTAGACCACGACAATCGGCTTCCCAACTCGCCAGGCTATCTGTGCTCTTCGTGCTACAAGGTTAATTTCCTCTGTTTCGACGTGAACGGCAACAAAGTGTGCCATAAGGCCGTACCGTATTGTGATCGAAGGGAAATTGGCCACGGACGCCAAGTCTTTATCCAGCTCGATCTTTAGAGAGCGAAATTTAAAGTATCATTTTTTCTTGTTTTTTTTTATGTTTTTCGATTTGATTGTTTAATTACCAATTTTTGGCCTGTAACTGTGTATTGGTTGTGCAAATTTCGTTTTTTGAAGGTTTTAAATTTCTGTTTGGGGCAAAAAAATTTATCCAATAAATAAACGGAATATATCGATGATATGGCACGTAGGGGGAAACGGACGGGCAAGACTATTTACAGCAAGGGCGCGCACCAGAGGTTTCTCGACCCCCGAGGCGGGTGGCGGAGCCTCAAATCTGTCGGAAAAATGTGAAATGAGAGAAGAAGTAACCTCTAGAAAAGGAGATGAGAAATCGGAAGTTCTGGGAAAAAAAAATCAACTTTTGAACAATTCACATTGACGATAATATTGATTTTTTTAAAATTCTCTAAGATCGAGAAATCTGGTTTGGAAAAATCAATAAAATGAATCTTAAATATCTTTTTAATAAACTATTTTCAAAAATCAATAATATCGATTTTTGAACAATTTGAAAAATCGATAATGTTTATTTGTAAATTTAAATTTTATTGATTTTTTGATTACAAAATCGATTGTTGATTATTGATTTAAAAATCACCAGAATCGATAAATCTGTTTCGGAAAAACCATTAAAATTGATTTTTACAAAAATCAGCCAATAAAATAGATTTTTTATAATCAAAAAAATCTATGTGCTTTTTAAAACCGAAAAAATCGATATTTCAAAAATTGAAAAAAATCGATCAATAACTAAACAGTCAATACATAGGTGAGCACGTCTCATCTATTTGTGTTTTTGCGATTGGTCTCGACAGTTTTGAGACCGCTAGGCGTTGTTCCGCATTCTGGAATTTTTTTGTGTTGGGAATTTGGCACGCCCACCAAATGGACGGTGGCGGAAATTCAATTATTTTAAATACCTTTCTGGATAAAGTGCAAAAATGGATTTTTCCACTTTGTCCCTTCGAGTGATTCGGAAATTAAATAAAACATTCAAATTATTTAGGGGCAACGAAAAAACTCTCAATGCACCCACTGTTATTCGGAGTGTCGTCGCGGTGTGTTGCTATGGATCGTGTCCATGCCCAGCTTCATCGTCGACTGACGTAGCCGTTTTCTGGTGATCTGAGCGAGATTTATTTAATTGATTTTTAGGAAAGGCGCATGGCCTAAAAAACACAACACTTCGGCCAGGGACTTTGGCGGCCGAGCTAGGCCATGCTGCGGCATTTAAAAGCACATACCCTACCATGATAAACTACTGAAAATCGCCAATCCGAAAATGATGACCAATGCGAAACTGATAACTGCTTACAATCATCGATGAAGGAATAAGATGAAGTTTGCGTGGAAATGGAATCGATGTACGCTTGTGAGGTCATTCCTGGAAGTTATTGATTTATTTTTCGAAAAAAATAATTCCTTAACGCAATAGTCACACTCAGAGTCAGCGAATTTTGTTATCCGAAATCATAGAGGTATTGCGTGAAAATGCGGCTTCCAACCTGAATGTTAAAAAAAAAATCTATAATATCGATTTTTTGAAAGTTTTTGGCGAAAAATTGATAAAGTTCGATTGATTGTTTGCCCATAGAAACAGATAAAACTCTATATAACTTAATATCGATCTTTCGTTTTTTTGCGCACCTTTAAAGAGTACTGTAACTTCAAACTTTCATTGCTGCGAAATTTTTTTATCGGTTTTTACAATTTTTTGTACAGTTTCCGTCCAATTTTACAGAATTGAACAACAAGAAAAGTGAAAAATCGTAAAAAATGTCCGCAGCAATGAAAGTTTGGAGTTACTGTACTCTAGGCTTTAATGGCGCACACCTTTTTTGCTTCAACAAAAATTTGTCGTGGTAAGACTGGGGACTTTTCGGCGTAGAAGTCGCACAATTTCGGTATGGAAGAAAAATCATTTTCCAACAGCAGCGATACATAAAAATTAGCAAAAAATTGTGATTTTAGCCTAAATTTAGTTATTTTTCGGAATTCCCGTGGCCAGACTCATTTCTCGCACCTGTGATAGAGCCAACTGCACACCTCGACATGCAAGCATTTTATCCTTGCAGATGGCCAAAAGCCCTCCGTCGATCATGACGAAGCAATGCCCGCTGCTCGGCTGTTGCCAGCTCGACGAGCTTCTGAATTAAGATTTGCGATTTCGATTGTGGCACCCCACGAAGAACGTCGTGGAGTCGGGGCGCGAAGACGGCTTTACGAATCTGATCTTCGGAATCAAGTGGGTAGTTGGCCTCCAAGTACTTTACGCCCGATGGACCGATTGCGAAATCGAGCTGCCCGATGAGCAGCACATTTGAAGCGAGATGGTGATCGGAGCCACTGGTGGTGCAGTCTCATCGTCGGAAGATCCAGATCCGAAGGCTGTCAGAGTCGGAGGATAGTGTTGCTCCCGTGCGGCGGTAGGTAAGAAGCTTGACGGGCGGCTTTGGTTTCTGGAAATTCTATATTTGAATTTGAAAAGCAAGAAAATTCAATATTTTACCCTCGCGTCTTGTGGGTTCTGTTTGACATAAGCGACAAATCCGGGTCGAGCTTAATTACCGCATGAAACGCCGAACATGCGCGCCAACAGAAATGAATGAATACAGGTTAGTAGACGCTGAAAAAGTGGGCAATTAATTCAGGATTTTTTAACGGAAAAATAAGTGAAAGGAGAGGCAAACACATCTGCAAATTAAAATCTCCCGAAATTACCGCGCTTTAAAGGGACTCCACCGATCGGACAGACGAGGGAAGTGGAGAGACGCAAATCGAAGAGACGCCTTTCAGATCATTTTTTCGTGATAAGTTTGCATGAATTGGCAAGGAGAGCTTACACGTTAGGCGAATCATTGATAAAAACATCCAATTGTTGTTTGTAGTGTACTGAAATTCCGGAACAATAGCTCTCGTAGACCCGAAAGTCGCTCGTGGCAGGAAAGTGGAATTTGGATAATTTTGTTCTTTTTTTTAAATATGACGTTTTTGAAGGCTTGAATTTGTCTCATAATTCATCAAATTCATAAACGGAATTATCCAAATTCCACTTCACGGAGTGACTTTTGTGTCGAGTCACGAGAGCTATTGTGCTGGAATTTCAGTACATATGTAGCAACAGAAAATGTTGTTTTTACCAACGATTCCCATCATGTGTAAGCTCTGCTTCGGTTGCCACTTCATGCAAACTTATCACGAAAAATGTCTGAAAAGGCCTCTCCGATTCGCGCGCGTGTCAGGCCTCCACTTCCCTCGTCTCTCCGATCGGTGGAGTCTCTTTTGAGATTCGACCCAAATAAAAAGTGCAGGGCGCCCGGGTTACGGGAACTTTAAAAGCGCATCACGGTTTTGAGTGCAGGTCTCGACGCAAGATTAGCCGGCTACTTTTTGAAGATTTGTCGTTTATTTTGGCATTTTTGAAGGAAACATAAGTGAAAAACAATTTTAATCTTAATTGAGAGAAACTTGAAACTAACATTGTTACACATAAAAAATTGGCCAAGAAATTGCGCCACGTTTTCAAATAGAAGTATCGCGGCGGTCAAGCCGTTGATTACAGCCGTTATACACTCATATAACTATGCGATAATGTAACTCGATGATTTGTTGATGTGATCTTTAAAAAGGTTGAAACTGCCCCTTATGTGCCGGAGGCGCTGTGAGCGGCTGGTTACTTGTATATAAAAAATGTCGGGAAAAACGCACTTCCGTTCCATTTGTTTCTTTGTTGACGTCACTGAGAATTATGGGGGTGCGGGCCCGTCTTCGTGGTAAGACCCATCTTGGCGAGACATAGCGTGGTGATATCCTTCGTGGCGAGACCCATCGTGGTGAGACCCATCGTGGCGATGACCCATCGTGGTGAGACCCATCGTGGTAAGACCTACATCGTGCCGAGACCTTTCGAAAATTTGGTGGGAATTCAAATTTTCTTAGAAACATTTTTGGTGGGAAGTCAAAACGCCTTTTCAAAGAAAAATGGCTGGCGGGAATTCAATTTTTCAATAAATCATTTCGGCGGGAATTCAAAATTTCTAAGCATAATTTTGACAGGAAATTCAAATTAGTTGAGAAACTCGAGTAAATGGAGTTCTAGAACCTTCCTGGAGATTGGGGAAAATTTTGGTATGTTCTAGAACCATCGGCGAACTTAATTCTGGAAAGTTCTAAAACCTTCTAGAAAATTCGTGACAAATTCTGGATTGTTCTTGAAATTTTTAGAAGAATTCGAGAAAACGCTGGAACGTTCTATAGAGCCTTCTAGAAAATTCGGGAAAATTCTGGAATGTTAAAATCTTCAATGTTTGCGCAAACGCTCTCGGAAAGAACCGGAATGGATTCTGTTGTATGTTTGAAGAACGTCTAGAAACGTTCAAGAACTAATTTAGAAGTAGTTCCGAAACCTGGTATTCTTAAGTTGTAACTCTTGGTGACAACTTAGTTATATAATATTCATGTTGCGTTAAAAGCTTCTGGAGCAAACTGAGAACAACGTTCCAAGGCTTAGTAATTTTAGAATTTCATGTTAAGTTCGATTACCAGTCGGAGCACGCGCATTGTTCGGAACGGCTGGTATACAAACAATAGTCAGTCAATCCCATGGATCAAATCTTGAATTTTATGGGTCTAAAACTGAACTGTTCAACTTTGATATGCAAAATTTTATAAAATTATTATTGAAAGACATGAAACAAACTTGAATTACGCGAAGTAATGCTGTGAACTGAACTTACTATTAGATTCCTTTTTAGCGAGCACACTTGAAAACGAATGAAATAAGGTATGTGAGAATACCGTATCAATCAGATACGTCTGACACTTCCCCAGAAAAAACTATCAGAATATGAGTACATGTTAATGCTAGTGTGAATCTTTCCGCGACGACCATCATGGCTCAGCAGGTAAGACTTCGGCGACGCCTCGAGACGACGAGGTAGTTGACGACTTTTCTCAGTTTTTTAGGCAGCGCCCAACTCGTTGTCCGAGGTCTACAGTAGCTACATGTTTCGGACGGACAGAGTATTTGCTTTATTAGTAGTAACAGAAATACACATAAAATCAATTAATAAGACATGAAATGCAATACTGAACCAAATCCAGTTTTCACCCACTATGTCTCTCATTGAAGAACGTTTTAAATAGCTTTTGGTATAGAATATATTAAAATTCATTCTTCGATTTTCTGTGGAATTTCCTATTTGAATTTTTCCATTCCAGACAGTCACTTCTCCAAATCCGTGCATCCTTGAAATTTTCTTTGGGGATATTTTAAATATCATCGAGATACCAACAGTCTACAGACTGGTTTTTCACTTACAAGACGTGCTCTTGACTTGAATGTCTGGGATACCCTCTATGTTTTTCTCCTTTGTCATGCTGATAGTATAAGTTGAATGTGACACTTCGATTTCTTCTGGCTGTTTTGTTCAGTCGATCGGATTAGTTGGAAGCCTGTGACTCGGTCCATATTGTTTCTACCAGAGTAATGAGCGTGGACTAGGAAGTAGAACGGTCATACTCTTGGCTGGGAAGTTTCGTTGAACATATGGAGACAATCACATTGTCCATTGGTGAATAATAGTCGTTTGCCAGTTGTTCGTTCATTTCGAGTAACATATCCTCAGAGTATTGTAAATCAATCTCCACTTTTCCCAGAAGAACCCTCGAAACGGGTTGGGTGTTGAATGGTACATTGAAAACGGCATTTGAAACACTAGTCTATAGACGGTTCCAAAATTAGGAATCCAGATTTGAACTAAACATAGTATTAACATTACCACTGTTTCGATCCGGAACTCCATTCTGAATTCTTTAACCTACCACTTTGAAATAAGCATCACTGGTATAAATCTCGGATTGAAAGGAACTCTATTCCCTGTATTAAAACGGTCAATCTGTGGCATGTTACCAATTAATTGGGGCAATAATTTGCTCGAGCACCAACTACGTACCTCCCTAGTTGCTTTTCGTATATGGTCCGATAAAACAACCTGTAAAATGTTGTTAATCTTTATAATGTTCCTGAACATATCATGTCAAGAGTGTCTTCTGGAGTTTTTCATCAACAAAGACAAAATTTGATTTTTTAATTATCTAAACAATCCGATTTTTGGTTTTCCGAGGAGGAAAATTGAAACATGGAAATCCGTTTTTCTCCATTATTCGATTCTCCGATTTCCTCTCGAACGAAAAAAACGAGAATAAAGTTTCCATGACATCTCAGTGGGCTGTGGTTTTGGGATAACTTTAAGTGAAGGAATGGAGAGACTATCTAAGTATGAAAAACACGAGAATTTACTCCCTTTTGATAACCTGTTACAATACGTGGACTGTTATACTAGAAGAACTAAAGCAGTGATTCAAACATCCTGTTCAACGGTGTTCATTACAATGTATCAATTTACACCCTCACCAGTCTTTCATTTCCAGCGCTTTGTAATGTTAGTACGTGGAGATTTCCTCATTTGATTTATGATTTCTATTATTCTTAATTCTCCAAATAGCTCTTCTCCCAATAGTCGCAACTCATCAATTCCAAAATTTATGCTCAATCGAAGTGACATATGCGAATTTCCCGAATAGGTCGTTTAATCTGTCCATAAATCCATGCTCATCAACTCCAAAAATTCAATATGTCATATTCAAAACTGCTGCGTTATCGAATTTCCACATAATGAAGTTGAGTACTATGAACTATACAGTTTTTATTTCTATGAATGTCTCGACATATTTGACGACGACAGCAAACTAAAATCATTTTTTATATTCTTCAACGAGTCCATCTATGAAAACATGAATGTCATGTTAATCAGTTGTTCAAAAGCCATATATTTTACTCAGGATTCTGAACAGGCGCTCATGTCAAAAATTGACTTACAATCTACTCCAATCAAGCAATCGGGTAGGAGATCATTGAGTATAATTCGAGCATCCACTCCGCACGAAATTTCGTTTTTCTTAATCGGTGCGACATACGTAATCTTGTAGTCTTTCAATTTACCGCATTTTTTAAAAGTCTGAAAAAAATGTTACAGCTGAGTACAAAACATTAAAAATTGGGTTATTGATTGAAATTTTCACCACTTCTCATATTGTCGACCACTGAACAAACAAGCATAAAAAGCTTCAACAGACTCATAAAACACTTTTAAAGGCAAGTGTTGAACCACCTATTTTGATAAAATTGTCTGAAACACATCACAGATCGACTTTTCCGTAGCTCAAAGTGATCCTCTGCCCCTAGCTCTTGAGTGGTCATTCGAAAGTCGGGGTTTAAGTTGAAATATTTCCCTAAGCGGTCAAAATTCCATCATCAGGCGATCAAAATAAAATTGAATTTATTGGTGCTACAGTTAACACATGAAGCGGCGAGCAAAAAAACCAGGTTTTGAACAATTGAATTCAACTTACTCGAATCTAAGTGTTTCACCTGTTTGTTATCCACATTCAGTGGACATTCAGGTATAAGAAACGCAAGTGCATCGACGAAGCTGTTGCGTAAGTTCAGGATCAACTTGATTGTTAATGACTATTGATCTTTTCTTCAATTTTTAAAAGTGTTGAAACTGAATTTGTACGATGCTTCGAAAATGTTGTAGTGCAAAATCGCTGAACAATGTATTTAATAGATCAGCTGAAAAAAGAGCGAATTAGAGCAATATTGAACACAATTTTGATACCTGTCTGTAATTAGGAAAATCAGTCCGCTGTATTGATTGTTTGAAAAACTGAGTTTTTGTTAATTTATTTGCAGTGGCAAATTTTTATTATCATTTTTTTTGATAAAAGTTCATCACCAATGCCATCAGTGTTGTGGCACCACGGAGTGTGGACGCGGAAGACCGAACCCTTTAAGTCTCAAGAGGAGCCGAGCAACGAAGACTATGTCAGAGGTGGCATAGCACCAATGGCATCGTCTATTTGTATATGTATTGGGAAGAACAGACATTAAATTTATTACTCCCAAAGGGGAGATAATCAACAGAGGGGGGGTCGTACACAAGAGTGAGGGAATTGTCAGGGAATATGCACGTCCTGCCACGCGGGTCTTTAGACTAGTCTGCCAGGAAAAGGTCGAGTTAGGTATGAATAGTCGGGGTCTTTGCAGCCTCGTAGAATAATATCTTAGGACAACTACACTTTCCTAAAGGGAGGGAAAGGTAGGAAACGTCGGCAATTAGTCTGACTGGGAGGTCAATAACGGGGGGGGGGTCGGGGGAAGAGACCAAGGCAAAACCGAACCAAGAGTGGGGAAAGGAGAGATCCTTTTTTCCTGGTGCCACCGACGCTGCAGCTCGCTCCGTATCCCCCCGTCGCTCATTGAGTCGCCGCGCAGCCAATCGTTGCTACGGGGTGCGAGTGTAACTCTCTTTAGAGAGCGTGTCGGATCAGACGCAGACATACAGGTAAAACTTCTGCGACTCCTAACTGTATGGTAAGCTTAAGAGCTGGTATTAAAAGGTCGAATTGAATGTACCCGTCGCTCGGAGAACATCCTGCTGAATCTAAGTCGAGAGCGAGACTGCATTGTGAAATGGGCGATACAGCAGAGCCCAGTTCACAACTCTCCCGGGGGGCGGGACTTGTAGGCTGGTTCACGTAGTGAACCCGCTTAAGGTTCGTTGAAGCCTTCCTTTGCCGTTCTTGGAATGGCGGAGTGGAAGGTCGTACGTCTGAGCTCCTGGCTTCTTTTCGTGAACGCATTCACCTTCTTTTGAAGATCTAGTATTAGGTGAGCTCGGAGCCGGTTCTTCTCTAAATGTTGCTTCGTCTGAGCTTAAAGCTTCTTTCCTGGATTTAATAAATTTTAAAAATGGAAGGACATGTAGTGAGGGTTCAGGAAAGTCGGAGTCCGTCTCTTCGTTTTTTTGTTGAGATGATTTTTTCTTTATTGTCTATGTCTTCCGCTGTAACCTCAAGAGGATACAGTTGATTTAGTGATCGTTCCAACGTGGAGATTGAAACGAACTCCTGATTCAATGTTTCCTTCAATTGTTTACTCGGAATGAGCTCCACAATTCCCAGAGGCCATGTGCGTCTTGGCAGCATTTCTTGTCCGACGAGAACAATATCTCCTTGTTTAGGATCTCGAAGAGCATCCCTTGTATTAGGCCTGTCTTTTGTCTTTCCAGAAACAGGAGATATGAGTCAATGTCGACCAGATTTGCCACAACTTTGCAACTGTTGTTTCAACTCTGGCTAATTGTCTTCTCATTTGCTCTGTTGATCGAGTTCGGAGAATATTCCATCGGTTCGTCTAGATCAACATATTCGGTGCATCTAGCTGATTTGGTAGTAGAAAGTCGATTGTGGCGGAGAGCCGTCAGATCATTGGGATCTGTGTTGTCTGGTGTAAGTGGACGGTTGTTAATCATCCCTTGGTCACCTGTCCGTGCTGGGAGAGCTAGAAGAAGGTTAATTTTTTTGCCAATAGTCTTGCGAAGTTTAGGTGCTTCGCAATTCAAACAATCCTCTCGTACACTACCTCCTTACCAAGGGGCGAATGGAGTGATGTTGTGTACGTGAATTTCGTCATTTGGCTAAAAAGCAAATCATTGAGTAGCTTGGACTGCATTAAGTCTGATGTCTAGGTTGACCATTTGGTGGCCTAGTGTAATGTTGGTGCATTGTCACAGTAGATATGGGGCGGTACACCACATGAACTGGAGATTGCTTTGAGTGCGAGAAAGTAGTTGGCTGTAGTAGCGTCTGGAATGAGTTCAAGAAGGCTAGGCTCTAGTCTTCAGACAAGTATAGATTAGAGCATAGGCTTTACCTAGCTTGTCATCGTCTGTCTTGTATTGTATTGTACCCAAATAGTCGAGTCCTACATGGTCGAATGGTGCAGAAGGTCCAGTACTGCAGTTTTGTAGTCGTGTGTCGTAATTGTATTTAAAGGGTCGTGCTTTCACCTTTTTACAGTTCACGCACTGAGTAATTGTAGTTCTTGCAATTTTGCGATCATCTCTGATCCAAAAGTGCAGTCTTACTGTAGTGGTTGCCAAATAGTGTAATGGGAAGTAGGTATTGCGTTATCTGACATCTTCCACAATTAGACACAATCAGATGTCGGATGGGGTCCCCCCACTATCCAATGATGTTTGTTTCCGTCCTCGTCTACTGGTTTACGCAATGTGTCTTGCAAAGTGGAAAACGTCTGTTACAACTGGAGATTTAAGTTGTGTCAAAAAATGGCTGAATCAGTATGATTTTGTCTCGTCTTTGAATTCGAGATTCGGTGTTTATTGTTGCATTGACTTAGCATAAGATTTCCTGTTATATGACTCGGTGACGAGCAAAGCATGTACCATTGTTGATGCAGAAGCGTTTGACTTCATTCGCACCCATTGTGCTCGTTTGAAGTGGATGGTCTTTTTTGAAGGGAGGGCACGGATCTCCATCGAGAAATTCTTGCCAGCGCCATTCTCCACGAGTCTGGAAGTAGTATTACCCGGTCTTTTGTTGAAAATGCGGGTTCAGGAGGTTTTCCTTTGGTTTTCTGTCCCGTTGGACATCAACCAAAGTACGTCTATGCCAATCTTCCGCGCAGTTGTCAGATGTTTTTTGAGGCTTACGATTGGATAGTCAGCCCGTCTGGGTCGTATTACGTCACGCGGAGTCAGCTCGGTATCACCTTGAGAGTAACCGTATAGTCTTGATCTTTAATTATCATGTCTTTGGATTTTACGCCGCTGAATTCGGGTTTAACAGTTTCCCCAACAACAAGTCTTTAATCGTCGATAGTTATGTCTGTCACGCACAAGAAATAACTATCATTTTCTGTATGGCCAGATTAGTCGTGGTTCGTATGATATCTAAATTCAAAATTGGCGTACCTGTATCCTTTGCCTTCTCGACGCCGTCCTTGAACATCTCATCGAGGGTATCCGGCAATGAATTGGCTTCGGCAATGTATTTCAGTTTGTATTGTAAAGATCCTAAAATGATGTAATCCATATGCTGCTGCATGTCACAATCGATATTGGCGTCAATCCAGTCGAAGACTTTTTGCTTCAAGTCTTCAGTCTTAACAACGGTGCGGCGTCAGACAATGCTATGGATGATGAAGCGGAGAATGGGGTCCTGGATTCCCTTCCCTAGCTGCCACCATCCCGGAGTCGGGATCAAGACTAGTTCCCCGCGACCTCCAAGATGAAAAGTTATTCTTCGTTGAAAACCGAGAAACTTGTTATCTAAAATCAATAATTGGTTAAGAAGAAATAGACAAAATGCATTTTGAGATTAAGTAAAAGACTTAGAGATTAGGAAAGAAAGATGGGGATGAGGACTCAACTTGAGTGATAAGAAAAAAAGGCATTTTAATATAAGATTCTACAATAGGGATTGGGAAAGGTGTGCCGTGGCCTAATATAGGTTTGGTGGTACAATAAATAGGGGAAGTAATGACCCAATATGGGTTCCTTGGGGGGATTATTAAATGTTAGCCAATATGGGTGAATTATTAATTACTCATATTGGCAGGGGAATGTCGGTGAGGGCTAAGAGTTCCCTGTATCTGTTGCTTGATAGTCATGTTCCGGAGGGGACTTGTGTAGAGTAATTTGGTTTAAAGTAATTTGATGTAGAGTAAGTATTTGGTGTAGAGTAGGTTTTGGTGTAGAGGAGATTTTGGTGTAAAGTAATTTGGTGTAGAGTAATTGCTGAAGAGGAGGGATGGAGGGATTTCAACACCGACTGGTCGTGAATTCGGCCCTTAATTGGGAGGGTAGGGGACAATAGAAAGAAAGAGGCTACCGTGTGGACCAATTTCCCCCAGCAGGGACCTAGTTGGGATTGTTTTCACTTGAACACGAAAAGACAATGGGGGTTGGGAAAGTTAATAGGGACAAAGGAGCAAAACGGAACGCCCATTCCCGCATCGAATTGATAGGCACCGAACCCAAACTCTCCTGCCGCTGCAGCAGTCAGGGATCCGACGCTCCACGCTCTCTCATCGCGACTGGAGACCAAGTTTTCTCTTACAGTCTTTTTTTTCTAGTGGCGCCGGTTACTTACTCCATTGCCAACTAGCTCGAGTCGGTGGTAGAAGTCAGAAGTCAAATGCTTGCGGACGTGGAATATAGAACATGTTTGAAATTAAAGAGGGTGGTTTAAGTCTTGTTTTTTTTGAGATCCCTATGGATGAATTTTGGTTTATTTTTTAATTTGAAAGGTTAAAAGATGTACAACAAATAATTTTTAATGATGTATAATTTTTGGTGAAGGTACTAGTTGAAAAATATAAAGAATTATTGAGAGTTTAAAATTGGGAAGTGGTGTAGAAAACGATTTTGTTAAAATATATTTTTGGAATTTATGCAATTTTATAATTTTCAAGGATTTTTTAAATTTTTTAGGAAGTTTTAAAAGGGGGTAAATAATCTAACTGTTGGGTCCCCGCGTCCTCCAACGAGCAAAACCTCTATCCATCCAGAGTTCTTGTCTACCCGGCTTGTCGCCTCTTCCGCCTTTTCTTCTTGTCGTTCTAGCACACAAGAGACTGTGCACTATAGTCTTTCCGTTGCAGTCAGCGAGCCGCCAGCAGTCGCATCGTTAATGGCACCTTTGCCACTGTATTGAACGCTGTGAGCTGTTTTAAGTGCTATTATAGTCTGTAAAAACAGGAAATTTTGTACTGGATCGTCTTTCGTCTTTCGACTTGAACCATATTAACAGCCGAGGTTTATTAAATCAAGGAACAAATAACTCAACAATTTGGTATCAGATACCGGTGAGGAGTGGTGAGGGGGATTTCAAAAAATTTAACTCCAACATAAAAATTTCGTGATCGAATAACGAGATATTCGATGGGGATTGTCCTCGTGCCAATCTTGGTCCTTGGTTGGTATCGGCGTCTGACCGGCTAGTGTTGTTGCTATAGCTGTTGCTGGAGTTGGCGGAGGTCCAAATCAGTTGTGGAGCAGGAACGCGATGAGTGGTGGTGTGAACTCCTGTCCGGCTGGTACGAGTTGTGGTGGAGGTTGCTCTTCGGATGGTGATGGCGTGTGCCAGCATCGTATCCTCCAGGGAGACTTCCATCGCGAGGGATGTTGATCGTGCGTGCACCACCGCGCATCTATTCCCCTGTCGTACAGAACGACGTGATCCGAGGATTGGATCCACACTTCCTGGGAGCAAGATTGTGGAGCCGTCGCAGTCGTCGGGCCATTTGGGTCGCGGCCGGTCTCGGGGGGCTGGGCCCGTACTTCCAGGGGCAACGTTGAGAAACCAGTCTTGGAAGAACTCGGATGGAGATGTGTCTTCGGTGCGAGCGGCTCGGGTCGAACGGTCTGAGAAGATTTTACCGAAAATTAATAAAGTATATGGAAAAATTGGATAAATTTTTAGAATTTTGAAAGAATTGATTGAAAATGTGGATAAATTGAATTTTTTAAAATGAGAAAATTTTTTAGAGATAATAATAATTTTTATATCCAATTTTTAAATAAAATCGACTTCCTTCTCGAGCAGTCTGGCGCTTCGTCGATGTTACTGGTAGGATCCACTCCCACACAAGCTGTCAACTTACGTACTACCAATGAATTGCAGTATAATGTGTCTATGAGATGCAAAACGACGAGAAATAGCGAATCATAAGTCGGGGAAAGTCGAAATTGGGCTCTATATCGGGAGCATGAGTTTGCCAAACATCACCTCCCTCGCGTCTGTGGGCTCGCGAGCCGCCCTTGTGTACGATTTTAGGGGTAATTTTGAATTTTTAGACTCTTAAATTATTTTTAAAGAAAGTTTGGTAGATAATGGGACGGGGGATGCTTAAATGATGTGTACCTGTCGTCTATCAAGTCTGTCGACTATCGAAAACGTCGAGTCGTCGAAGTTCATATTGAATCGTCTCTTCACGGCCCGGCGAGGGGTACATGAGAATTCTCTACCGTATATTTGGCTGACTGCGTGCTCAACGTTGATTCCACTCAGTTTCAAGTTTGGTACACTTCACGCGTACTGCACACAGTTTAATTGACGAAATTTCGCGAAAATTAACAGAAGATTTTTTTCGGAATTACAGAGCTGAACTCTATTGATAAAAAAACTATCAAATTTTCATCGAATTTGTGAAACATCGTAAGGAAGATCTTTTCTTCACTATATTCAAGGAAAATCGATATTTCGCTTTTCACAGACGAATGTTGTCTCATTTTACTCGATGAAAGTTTCTGATGAGCTTCATCGATTTTTGAGATAAAAATGCGATTTGTTGATAAATGGATCAGTTATATAAAGAAACAACATATATTGGACACTCTGAGATTACTTTTTGAGAATCAATTCTTTATTTTTCTGTCATTTTAAATTAAACATTGAAATAAAAATATTAAATAAATAATAAAAAAAACAGAAAATCGATATATTACTTTCTCTTCGGAATTTCACCTTTTTTGGATTTATTCTGTAATAAACTCTCTTCTTCGAATTTGGTGTGTCCACGTGGCAGACGAAGAAGAATCTGCTGCACTCCTTCTTGCTTGCCCACAACTTTCTCGAATTTTCTAAAATTTTAAATTTATGGAAATTGTCATTTCACCATTCCACTCACTTCAGCTGATACTGCATTTCGGAAGTTGATCGGATACTGGTGGAGCAACGGATGGCTTCCAGTGATTGGCTGGCTTGTCGAGCAAGTTGTGTGCTTGCCTGAAATAATTTTTGATTTCAATTTTGAGTTGATCTAAAGCAGTAAACCTACCACCGGGTTCGTACGAGAAGGAGCATTACTTGGTAGACCACGGAATCTTATCGTTGAACTGCCTCCAAATGCAATAGAAGTTTGTACGTTTGGTGAGAAGTCGGGCTGAAAATTTTCAAAATTTGACTTTTCGAGAAAAATAACTCACCACAGCATTTCGAGATTTTGTCGATTGTGGAAGCCTTTTGAGTCCTGGAGCAAGAATTGATTTTTTTGTCGCTAAATTTTTTCTTTGTTGTGCAGCCGTGACGTCCCGAATAACTACTTTTGGGTCCCGAAGATTATTTTGCGAAGAGTCAGAATTGGCAGAACTGTTGCATGGGTAACACGACGGAAAGAGCGGGAATGGACGTGTTCTGAAATAGTTGTGTTTTTAAGAATGCAGAAATGTTTTTCTGTACCAAAATTAGCATAGTCTTGTCATTCATCATGTTAAGACACATGAGCTCTCCCAGAACATGGATGTAACGCCTTTTCTTGTCCCGGTAATTGCAAAATCTCCTCTCAAGTGCATTAAAAATCGCGTGGACAGATTCAACTCCTTGTTCTGTGATCCTTCCAATCTCACATCTGCCATTTGTGGTGAATGGTAGACCAACGAGCAGGTGCAGCTTTAAAATAATTGTTTCTTCGGGAACCGCTACTTTCAAATACTCCACAAATCCCCGAATCGAATTTTGAAGTATTAAGACGTGGGAATCATTTAAAAACTTGTTTCCCGAAAGTGACATAATAGTTGAAAGCTTTCCCATTGCTGATTTGTGCTCAATCCGAGCAACATTGGTCATAAATTTGCGCCAAAAATTTAGAAAGACCCATCCTACCAGCCGGCGTTAGCAGCAATTTCAAATAGTTTCCGGAAAAGGATTGGCAACCAAGCCTGCACCTTGTCCGCTCCAAACTTAGCCCAACCAGTCCCATTTTTTCAAGTCTCCCTCGGGAGTACTATTCACAATTATCTCGAGCAACAATTTTTTCGATTGAAGTGCTTTAGTTCAGCATGCGACTCTTCATTCCGGCGGCTCCTTGATACTTTTCTTCCGCACTTTTAATTTAACAGCGATTTTTAGAGTTGCTTTTCGTGTTTTCAGGATCGGAAGTAGTGTTACCTATCTAGATTATCAGAATATAGAGGTGATTGAAGACCTATATTTGTCAAAAATACCCATGATAATGCGCAGAAGAGGAATCAAATAGGATCGCAACAGTGTGTAGGAGGAGTACATCCTTTGCGAACACACGACATTTTCACAACAAGCTTTAAGATCGATTGTTCGTGGGTGGACATATGATCAGTTCTAACTCATCAACATTCATATCCTTGATTTTCATCCTCTCTTCAGCTCCACTTTGGTTATGGACTGTGCTGCAAAATCCATTTAGGAGAAAGGTGCGAAATTGTGGGATGAATGTCCTGTTTGGTGTAATATCAGATTGAAACTTGCTATCTCCAGTTTCACGGAATTTGCACAATTACTTTTGCGGTTTTTTGAACTCGACGTCTTTGTCCAAATATCAAATTTTCGTTATCTTGACCTGCTCAAGAACGTCCGCCGAATGAACTTTTTCAGAGACGAATACTTGTCGGATCCGTCATATACTGCAATTACCATAACGTGTCTCGAAGAATACGGTCGAGATACGTTTCCGATTACAAATGCCAACTTTGTGCTTCCACCTCCAGCGTCACCAACGACTCCAATCTTACTCCTTTCGTGTCTACGTCGTCCCTACAAATTGATTTGAATTGCATAGAAGCTCTATACGAAAGGACAACTGTCTGCAATTTTCACTGCACAATGGTAATCACTTTTCCTTTATTGTCGAACGAAGTGGAAGCTTTGAAACTGGAGATCATTGATACCAAATGGATTGACAAATCTGTGGTGTTTACCGATGGAAGCAAATCATAGAATGGCAGTATCGTCAAATAGTTTTTGATTATTCTGTCCATCTGACTTAGAGATAATCCGCATTGTTATTGATAAAAAGTCAACGGCGTCAAACTTTGAAGCGTGTGTTTGTAGATTTTTCTGATTCTCTTCTGAATTCAGGAATTTTGTGAATTTGGTTTCGAATAAATGGTCCGACCTCATAGGTTCGTGTTGAAGCAAGTGAAGAGCTTTGCGAAATCGATTTTTGATACAACTTCTAGTTCTTGCTTCTTAGATTCGATTAACTTTAAAAGCTGATTTTTTAAGGCTAATTTTCAACTGACTATCTTCGGCGTTACTCAGAACCATGGCTTTGCCACTTATCTTCACATCTGCACAGCTTCTCACCAATCGACCCTAAACCACTGACGATCGTTGGTATATTGTATACTTCCATCTGCACGAATGAATTAGATGCTCTTATAGTGAAATTTTCATGGCGGACTATTTGCATTTACTCTCTTCCGAAAACGCCGCAAACTCATCAATCCGCTTTTTGTAGATTATTTCTTATGATATTTCATTTTTTTCATTTTTCAGTCGTTCTATCGTTAGTCGGAGCATTTTGATCTGCGGAATTTGCTCAACATTGGAGATTTGCATATTCGAACCCTCGGTGGAACGAGTTTCGTACAGGTGTCGGTGGAAATACGGGATTGGAGAATCTCTCCAGCAATAATATTAGTTTTGAAATATTGAAAAAAATTACATTGTGAGAAGAAGTCGGAATTTCGTCATACGAAAATCCATTTCCACGTCTCTCGTCAGAATTCTAGCTTCGTATATTGAAACAATTCTGAGGACCGGCATGTAGTTGCGGAGCATACTGTAGAAGCAATGCACTCGGGATGGTTATTTGGGAGTTTCGATCCTCTGAACTGATTTCACCCTGATTAGCCTGTGGCGACGCTACACTCTGAAAATCACGTTTTCGGAGTTAGAACAAACTCCAACTTAATTAAAGTTGACAAATTCCAATTGAGCTGAACGAGCCTCCACCTTCGAATTGTTCTTCCTCTTCAGTTTGATCTTTTGAAACTCCATTAGTACTGTTCCTTGCGCTCTGGGCATTTGCTAAAAGAAGGCCTGCACAAGATTTTTCTTTTCTTTTTTGTTTGAAGTATATCCGCTTTTGTCATCTGGAAATATTGCATGAATATTTTAAGGGAAACAATTTTTAAATATCGATTTTCACGAAATTTGAAAAAATCAATATTTGGGCGCAGATACTGAGCTGAGTGTTTCGAATCTCGAATCAGCATGCTTTAATTTCCATATTTTAGGATCTTTTTAAAAAATCTGCCAACAGTTTTTGAAAAAAAAAATACTTTTCGTTCAGAATGTACTGATTTTCCAGTGATTTTCACGAAATTTGAAAAAATCAATATTTTAGGCGCATGATATTGAGATGAAAGTTTTGAGAATAAGCCAGCATGCCTTTAGATTTTAGGATCTGTTTTTAAAAAATCTGGACCAACAGTTTTCGAAAAAATTTAATTTTTGTTCAGAAATGTGAATATCTAACTATCGAAAAAAAAAATTGCAAAATCCGTCGGCTGAACATACAAAACTTATCAATTGGTGAATCATCAGCATATTTCAGTGTATAGATTAAAAACGGTTTCAAAAATTCTGAGACTAATTTTTGTTGAGAAAAATAATTAGTTTTCGTTCGAATTATCGATTTTTCACGAAATGCCAAAACATTAATCTTGGGGCCCATGCTAAAAGCCTGAGTCTTTCAATATAGCATGATTTTTTCGATATTCTAAGACGTTTGAAAAAAATCTGGACCAACAGTTCTTGAGGAAAGTAATCTATTTTTTATACAAAAATTATGTGCTGTGATTTTTTACTAAAAAAAAGAATCAAGTTGAGCCCATGCTATACGCCTAAATTAAAATTCAGAACCGCCATGGATGTATTTATACCATAGGCTCTTCGCAATAAAAAAAATCTGGACCAACAGTTTTTGAGATATGAAAAAAAACAACTCACTTTTTGACGTTTTAAGGTTTTTTCCCGGATGATGCTGTCGATTTTGGCGACTGGTGTCTTTCGCTGAAAATATTATTTTTATTTCAATTTTTAACGAAGAAAACAAGAAAAAACGACGAGAATCAAAAAACACGAAAAAGACGTCGAAAAACTCCCGCTACCTCATGAAAATAAAGCACTGCAGCCGCTGGACTTGTTTTCTCAACTTGCGGTATAGGCCATGTCCCGTTCAGAAGGCGTGCCGTGTCTTGTCGTGGCGGTGTGAAGTGTGTTGGTGTTAACGCAGCGTGTGAATACGGTAGGCTGCTGCAGATGTGGTGTGAGCTGTAAAAAATCGAAATAATTCAAGAAAAATTTACGACGATTTTCGTATTTTGAGAAGAAGAAAATTTTAGAAGGAATCACGAAAATTCGAGAGAAAAAATGATCAAATTCAGTCTCAGAAGCGAAAAGTGAACTGCTTTGTCTAGAAAACAGCGGTTGCTCGTGAGAAAAAATGTTTAAAATTGAAGAAGATCAACAAAAAAAAGACACGTAGACGTGTTTTTAAAGTTCCCGTCGTGGCCGCGTCGCCGCGCCGAGTGCGCACTTTTGTAGTAGACTCCGCCCCCTTTTTTCTTGGCGCCGTGCTTTTTAAGGGGAGCGTTTGTGGTTGAAATAATCGATTTTCGACGAGAAAATAGACTAAATCAAGACCTATGGTGAATCTGATTAAAGGCATATTAACTTTGTAAACACAATTAACTAGAAGAGGAATCGTTCTATAACCGAATATACTCAAAGGGTCGCTGACTTCCCCCGGTCTAGAGTCCCAGGTTCATCTTCGAGCTGTTTCCTGAGAAATTGTACAGGATTTGTCTGAGTCGTGAACTGAACACGCTTTTCAGGTAAACGTCGTCTGGCTGTCCTGGAAATCAAATGTTAGTCTTTGTATCGATGGCAAACATGTCTCAAGGGAGGAAATAGTCGTAAAGTCGGTCGATGCACCATGTTGTGGCACCACGGAGTGGCGGAAGACCAAACTTTAGCCTCAAGAGGAACGCAACGTAGACTATGTCAGAGGTACAGCATTCGTGGATCCAATTTGTATATGTATTTCTGGAAAGAACAGAACACAGTGTTAATAATGTTTATTACTCCAAAGGGGAGATAATCTACAGAGCATAGCGAGTGGGTGCCGTCGTACACAAAGAGGGAATTGTCTGGTGTGAGAATATCACATCTTGGCATGCGGCTTTAGTCTGAAAGGGTCGAGTTGATGTATGAATAGTCAGGGTCTTTTTGCAGACTCGTAGAATAATGTCGTCAACTACACTTTCCAAATAAAGGGAGGGAAAGGTAGGAAACGTCGGCATTTAGTCTGGCTGGGAGCTGTCAATAACGGGGGGGGGGGGGTGGGGGGAAGAGACCAGCAAAACCGAACCAAGAGTGGGGAGGAGTGTTCCTTTCGTGCCACCGACGCTGCAGCTCGCTCCGTATCGTCGATTGAGTCGCCGCGCAGCCAATCGTGGCTACTGGGCGCGAGTGTCACTCTCGTTAGAGAGCGGCGCAAGAGACGCAGAACTGAATACAGTAAACTTCTCCTAGCTGGTAAGCTTAAAGCTGGTCTTAAAAGGTCGAATTGAATGTACCCCTCGCTCGGAGAACTGCTGAAGCAGTCGAGAGCGAGACATTGTGATGGGCGATACAGTTTCAGAGTTCACAACAAACAAACTTACTGGCACTTACGTATAAAATATTGGGTTTCGTCGCGCCCCCTCCAAATGTTTTAAAACGATTTAAAACATAATTTATACTGTTTCACTACCAATGAAAGTTCATGGTTGATAACATAAATCCCCACATTTCAGAAAAATGGATAAGCAGACAAAATATTAATGAACTCATAATTTTCAATTAGCCAGCTATTGTTTCGGTGTATTACCAGAAAACAAATTTAAGTGATCTTACTCTCAACTCCAACCGAGTATCTAATTGATTAGACACATTTTTTACAATCTTAGCTGACAATTGTGCGATTTTTTAGATGAAGATTTTGTCAATAAGCACGCTGAAAATAAAAAAGCGAGGTAATTTCACGCTCGCGGAATTGTGAGCCAGTGGCTGCCTCCTTAGATTAATTTGTTACATAATTTTTCAGCCATACTTGGACCATAAATTTTGGCGACCATTACGGCATTATAATTTTGAACTGCAAACAAAACATGCAAATATATACGTTTGATAGGAATTCGCACTAAAGCTAAATTATTGAAATTCGTCAGCTTTTATTTTCATTTCTTATATTTTGACTAATTTTCAAATCGAATTATTGAAAATGAGAATTTTTAATTCATATTTCGTCAAAATTAGTGAACGCGTGAACGGAGACGGCGAAGGCGGGCCGGCGAGAGGCCGGCGTGGGAGAAGGCCGCCCGCGTTTAGCGCGCTCACTTAGCTGGAAACCCTAAGTTTCTCCAATTAAATGAACTTTCAGGTGATATACATTTTTCCTTTAGGATAAGAAAAGAACATTTCCTAAGCCTGACAATACAAAAACGTGGTTTTTAACACGTTTTTATTTTTCATAACTTAAAAAAATACTATGCATTAACGCTAAATGAGGGCATGGTAATACACAAATACCGGCAAACGGTGTTTCGCTAAATCAAATATTGAGACAGAAAAAACAAAAATATGATGAATTCTCTTTGTTCTTACCAAAATCCATCAAAATTTAGCAATTTTTTACAGTTATATTTGGTCATTACGATATGCCCATTTTCTATTAATATGAAAGAAACAATTGAAACTGATACACCTTGTCCGTCGACTATTGGGCATCGACAGATGGTCTTCTCAAAATCCAAAAAATTGGTGGAACTCTCTTGCACGAGGAGGACGCTCTGCAGGGGTCGTTCTCCTTTGCAAAGGATGGCATTCCATTCATTTGTCTATACAACCTCTCATCTTTCATGCAAACCGACATTCCCCACATACTCGAAATCCCAATTATGTAGGAAGTTCTTGTTTCTTAAACTAAAATTAGCCAACTATTTTCTAGAAATAATCTATGAAAGACCGAAATACCTTTTACCCTTGAATGACATCAAAAGTTGAAAACTGTTTTATCTGGTAAATATTCAGTCAATAATAACAGGGCAAAAATTTCCTATTTGTAAGACGGTTTGCCAGCAGCCCTACTGATGCAATGTAAGCTAGAGGTCCTACAAAAAATACCTGAATTTTGTGTCTGGAGCCTTTGCTAACTACAAATCGTAGGCAAAAGAACACATTTGTGTACAAAAAAGTATGCAAGCAAAAGAGACACCGTAGGCAGGCAAAAGATTCACGCCATAAAAGAGAGATAGCACCCGCGGTGCTAATCATTCTACTAGTGGCTTGAAGCCTCTGTTTGATAAAAGTAACATTTTAAGCATTGTTTAGGGTTCGATTTTTCTAACAAATAAAATTCATATCATTACTTATACAGTGCGTGCATGTTGTTCATTCCACGCCCAAAGTTTTTAATCATGGCAGTTTCTGAGAGTGAAATTTCAGGTGAGCAAAAAGTATTGAAAACCTATTCACAATGAAAAACCTAAACTCAAGAAATGTTGCGATTATATCTCGATGTGAAAAATAAGACAATCAAAAATTGGGCATGGCACTTCTATATGCCACCTCGGATTTTTTTATGATTTCTTATGATTTTAGACTATTAACTTTTTATTCAAACAAGTAATTCGAATTCGTATACATTCCTCAGTGCTAAATAACTATTCCTGTAACTTCTCCCAAAGACGATAGGATGATCAAAATATGGGGATATGTTCTAGGAGTTACTAATTAAACATAGTTGTGAATATTGGTTCACATTTGTGGATTTTTAGCGTCGCCGCTAAGAGGGTCATATTTGCCCCAGCCGTTTTTGGTGAAAACACTATTTCTCTTTTTTTTCGCGGTGCCATTCAAGTTGAGAAATTTCAGGCATCTCTCGAACCTGCACGGAAAGATGAATACTGCAGATAAACCTCTAGACTAGGAAAACAATTGGAAGTTTCTTAAAAGTTTGGAATTTTAATACTAGAATTTTCTGAAAAATTTCAGAAAAAAAGAGACTTTCAAGAAACTTCTGAAAACTTCGAGAAAGTTCTGGAATGTTCCAGCGCCGATTTTTCTAAAAAGTAACATATGCCGTTCCCGGTAGAACAATGTTTTGAGTATATGCCAGAATCTTACTAAAGTAAAATAGTTTGTTTTAAATAAGAGTCTGATACTCCAAAAATATTATGAAATTTCAAAAAAATTAAATTTAATAGGTTTGCAATTCGATTGAAGACCTGAAAAAATGTTAGAAATTTAGAAATTGTTCATTTTGAAAGTATTCGAAATACTGTTAGATTATTCATGAGACTGATAATGTTATCAGTTTTTTTTATTTGAAAGCTTTCTAAGAGTTTCATATGAACATCGAAATATTTTTACTTTAAAGAAACAATTGCTCCTGGAAAATTTTCACTGCGAAAACCTGGCTACAGACATCTTATGATGCTCATACACTTCCTGGACACTGAAAAAAAAAAACGTTTCATCTGCAAAGAAAAACTTAGAACATATTTCAATAATTTACTTTAGTGCAAATTCCTAGTATACATAGATGTATATTTACTTGTTTGCAGTTCAAAAAATTATAACCGTAATCAAGAATGGTCGCCTTGAGAGTTATGGTCCACGTTATGGCTGCAAAATAATGTAATAACTTGAAAATCTAGGCAGCCACTGGCTCTACTCGAGCGTAAAATTACTCACTTTTTTATTTTCAGGCGTGCTCTTATTGACAAAATCTTAAAAAAGATGTTCGCACAATTGTCAGCAAGATTGTAAAAAATGTGTCTTAATCAATTAAATACTGTGTTGGAGTTGAGAGTCACTTGGATTAAATTTGTTTCCTGCTAATACACCGATAAAGCTGGCTGATTTCGTTGAAAATTATGAGTTCATTAATAACTTTTTTTCTGCTTCTCCATTTGTCTGAAAATGTGGGTTTAAGTTATCAACCATGAAAAACTTATTCTTTCGTCAGTTGTAAAAAAAACGGTATAAATTATGTTTCACATCGTTTTTAAAACATTAGGAGGGGGAGCGACGAAACCCATAATATTATTAATACGTAAGTGCCAGTTAGACTGATGGCATTGATAACATTTATCAAAAAAAATTAATAAAAATTTGCCGCCAAATAAACAAAAACTTAGAGGTCGCCTTTTCAAACAAAAAAGAGAATCAGCCTGATACAGCGAACTGATATCCCTAATTATAGACAGGTATCAAAAATTGTGTTGAATTTTACTTTTATTCGCTCCGCTTTTTTCAGCTGATAAATAAATTGTTCAGCGAAGAAAGAGTTTTGCACAAAATTCGAAATGAGCAAAATACAAATTCACAGTTTCAAGACTTGTAATGTTAATTGAAGAACTCCAAAAATCAATATTCATTAACAATCAAGTAGATCCTGAACTTTCGCTAATTCGAACAGCCTCGTCGATGCACTTGCTCGTTTCTTATAAATGCACTGGAGATACAACAAGGTGAAACACTTATTCGTGTAAGTTGAAGTCAATTGTTAAAAACCTGGTTTTTTTTCTCGCCGCTTCCGGATCTGTTAACTACCAAAAAATTTAATTTTATTTTGATGTTGATCGAATTTTGACCGGTAAGGGAAATATTTCAACTTAACCCCGGACTTTCGAATGACGACTCTAAAAAAGAGCTAAGAGCCGCAGAGGATCAATTTGAGCTGGGGAAAAGTCGATCTGAGAAGTGTTTCAGACAAATTTTCATCAAAATAGGTGGTTCAGAACTTGCCTTTAAAAAGTGTTTTCTGAGTCTGTTGAAGTTTTTTATGCTTTTTGCTTGTTATCGTGGAAACAATATGAGAAGTGGTTATCAAGCAATTAAACCAATTTTTAATGTTTTGTACTCAGCTGTAACATTTTCAGATTTTCAGATCTTGTGTAAAAAAGTAAATGTGAAAGTCTACAAGCTTTTTGTCGAACCGATTAAGAAAAACGAAAATTCGTGCGGAGTGGATTCTGTCGAATTATACAATGATCACTTCGATTGCTTGCTTGGAGTAGATTGTAAGTCAATTTTTGACATGAGCGCCCGTTTTTATTCTGAGTAAAATATATGGCTTTTGAACTACTGATTTGACATTCGTGATTTATGGACTCGTTGAAACAATCATTTTTGCTGTGGTTGTTAAATATGTCGAGACATTCATGGAAATAAAAGCTGTATAGTTCATAGTATTCAACTTCAATAGGTGGAAATTCGAATATACCGCAGCAGTTTTTGAATTTGATGTTGGAAAACTTTGGAGTTGATGAGACATGATCGGTGACAGATTAAAAGAACTACTCATGCGCATATCTTCGATTGAGCAATTTCGGAATTGAAGAGTTGCGAATATCGGGGTCCAGAAGAGCGAGTATTTGGAGAATTAAAAATAACTAGAAATCATAAATCAGATCAGGGTATCTCCACATCATTACAAAGCGCTGGAAATGAAAGACTGGTGAGTCTAAATTGATGCATTTGTAATGAACACCGTTGAAGAGATATTTGAATCTCTCCTTTAGTTTTTCTATTATAACAGTACACGTATTGTAACATGTTCTCAAAAGAGTGAATTCTCGTGTTTTTCATACTTAGATAGTCTCTCCATTCCTTCACTTAAAGTTATCCCACAAACAGCCCACTGCGATCAATGTCATGGAAACTTTATTCTCGTTTTTTTCGTTGTTCTCGCTGAGAGGAAAAAAGCGAATAATTGGATAGGTTGAATAACGGAAAATTTCTTCAATTTTCCGAAAAACCAAAAATCGTTTAGAATATTAAAAAAATCAAATTTGATGAAAAACTCAGACACTCTTGACATGATATGCTCAGGAACGTTATAAAGATCTTTTTACAGGTTATCGGACCGACATATACGAATGAAGCAACTAGGGCGGTACGTAGTAGGTGCTCGAGGAAATTATTTCCTCAATTCATTGGTAACATGCACCCACTTTCACCGTTTTAATACTGGGAAAAGAGTTCCTTACAATCCCAAGACAGACTTGTGAATACCAGCTTATTTCAAAGTGGAATAAGGATTTCAGACTGGAGTTCCGGTTCGAAGCTTACAGTGGTCATTTTAAATGTTTAGTTCAAATATGGTCTATTTCATTTTGGTAACGTCAAACGACTTTTCGCGAGAAATGCCGTATTCAATGTACCCTTCAACACCCAACCCGTTTCGAGGGTTCTTGGAAAAAGTGGAGATCGATTTACAATTCTGAGGATATCCCGTTACTCGAAATGAACGAACAAATGAAAACGACTATTATACACAACCAATGGACATGTGTTTGCAAATGTTCAAAGAAACTGCCCAGCCATGAGTATGACTGTTCTTCCTAAAACGTATCTTCACATTACACGCCCGGAAAATATGGACAGAGTCAAAGCTAATCCGATTGACTGAACAAAACAGCCAGAGAAATGGAAGTGTCACATTCAACTACTATCAGCATGACAAAGGAGAAAAACATATTCCTCTCTAGAGGATATCCCAGACATTTTCAGTTCAAGAGCACGTCCTGTAGGTGAAAAACCACTAGGTTGTTGGTATCTCGATCGATATTTAACAAAGAAAATTTCAAGGATGGATTTGAGAAGTGACTGTCTGGTATGGAAAAAGCTTTCAAAAAATAAGAAATTCCGAAAATCGAAGAATGACTTTTGATATATTCTATACCATATATCTGAAAAAGTTCCAATGAGAGACATAGTACATGGGTGAAAACTGGATTTTTATTGCATTTCATGGATCTTATTGATTGATTTTATGAAGTGTATTTCTGTTATTACGAATAAAGCAAACAAATACACTGCCTCCGTCCAAACCATATAGCCTACGTCAGACAAGAGTTGGGCGCTGCCTAAAAAATGAAAAAAGGCGATCGTCAACTACCTCGTCGTCTCGAGGCGTCGCCGTCTTACCTGCTGAGCCATGTTGGTCGCGCGTAAAGAAGCACACTAGTAATAACATATCCTACTCATATTCTGATAGTTTTTTTTGATTAGGGGAAGTGTCAGATGTATCTGATTGATACGGTATTCTCACAGACCTTATTTCATGCGTTTTCAAGTGTGCTCACTAAGGATTCTAATAGTAAGTTCAGAAATCACAGAATTACTGGTAATTGGCAAGTTTGTTTCATGTCTTTCAATAACAGACAATTTTAAAATTTTGCATTTCAAAGGTACAGTTCAGTCTTAGATTTAAAATTTGATCCATGGGATTGACTGACTATTGTTTGCATACCAGCCGTTCGCAAGTATATGCGAGTGCTCCTACGGACGCGAACTCGAAATGAAGGTGAAATCTAAAATTTCTAAGCCTCGGAACGTTTTTCTCAGTCTTCCAGAAGTTTTTAAAGCAAATATTATATAACTAAGTTCTCAAAACTCGGTTACAAATGTTTTCGGCCGAAAGTAGACTATTTTGCAATATTTTGTTTTCGCAGAAAAATGGTACCCATCAGAGAGTGCGGAATGTGCCGAACGGCATGTGCCGATGTGCCGAAACAATTATTCCAGCACATCGGCATGTGCAGACCTCTCTTTGGTCGGCACATTTCGGCAGTCATTTCGATTCGGCACTGTCTGGAATGTACCAACCGTAAATTGATTTTTTAAAGAATTTTAAAAATGCAAAGAAACTTCAAAAAATTGATTAAAATTAATTTATCATTTCAACTTATAGTTTACTAACTTCACTATTAAGAAAACGCAGCATTTTGGGGTTATCCAACTGAATGTTCCCGCTTTTTCCTCCTGTGTCCCCCCTCTAGTCGCGATCCCACTGGGAGGAAAAATGCTTTTTCCTCTCAGACGGTTTTCGCATTTTTTAGCTGCGAAACTTCAGAACTGGGCTTAGGGCGGCGCATATATAGACTTTTTTTGATTTTTGGTACCAGACAAAGTTAAGGCCATTTTTATACTTATTTTACCAATTGGACCTGTGTTATATATGAGGTATGATATATCTTTGTGGTAAGCCAGATTCATGGTGAGTGATTAACGGCCTACAGAGTTGTAGCAAATCTCCTTCTGTTTAAAATTTTGTTAGTTGATCAATTCTTGGTATCATAGATTTTCACAGACTAACATAGCTGCGAAACTGGACAATTTCTTTATGGAAATTGCGTACACGAGACTTCTCTATTTTCCGCGTGGAGTATTAATACAAAAAATTGATCAACTAACGAAATTTAAAACAGCGAAACCTTGCTACAACTCTGTAACTAGTTGATCACTTACCATGACTGTGTCACCACATAGATATCATAGCTCAAAGTTTCCAATTCATTTTAAAAAAAACTATAAAAATTTAGAACTATTTTACTGGTCAAGCTGCCGCATTAAAAATTATGTTATTACAGCTTGGTATGTCAACAAATGTCTAACTGTGAAAATTAAAAGTAAGTTTGATTTCTTTAAAATATTTTTTGATAATTTTTTCATGTCCTGTGCAGATTTCAAATTTTGAAACAATACTTTTAATTCTCATATACGTTGAAAAATTTTTTATGACAAAGTGATCAATTAATAGCAAAGTTGTACTTTTCTTTGGATTAAGAAAAAAAAACTTTGTACTTGATCATTTTGCACATAAATTTATTCCACGGAGATATACGCATCCGAAGTGAATGAGTTTTCACTATCAATTATACTACGCGAAACCCTATGTTTTGGTCTGAAATCGCCATTGTTCAAGAATCCAAACTGAAAGAAACAACAAACATTGCAAGTAATTTTTTGTTATTTATTTAAATTGATGAACTTTTTGTTTTTTTTAAGAAGCTATATAGTATCTTTGCAAATGTGCCGAATGTACCGATTTTTTTTGGTTCGGCATGTACCGCGTGCCGAGAATAAATTGATTCGGAACAACCGCATGTGCCGATGTTATTAGCCGACATTTAAACAAGTGCCGAGCACATCTCTGTTGTACCCATCGTCTCGTCCAGATTTTTGTTAAATTCGAGTATGTGTGCGTCCAACCTTTTAAGAGTACTGTAATTTGAAACTTTCGTTCCTAATTTTCTTTGAACCTTTTCATTTTTTCCACTGGTTTTTATCCAATATTCATAGAAACCTTAAAAAGATAAAATTTTTCTAAAAATCGAAAGTTGAAGTTCCAGTACTCCTTAAAGGCACGTTACGGAATATCCACAACAAAACTTTGTCGTGGCGAGACCTGAGTATTATTACAGAGGAACGCAATAATTCGGAGAATGCGTTTAACACAACATATTTGACGCGCAAAATATCTCGTAGCGAAAACTACAGTCATTTTTTAAATGACTACTGGAGCACTGGTGTCGATTTACGGGCTAGATTTTTATTCATTTCTAAAAATTGAAGTCGGCACCCGGTAAATCGACACGACTGTAGTTATTTGAACAGGATTACTGGTTATCGGTACGAGATAATTTGCGCGTCAGATATTTTGTGCAATACGCAACCCTTATAAAGGACAAGTTCTGCTGGCCAGTGAATTGTCCCAAATTGAAATCCTTCTATTTTGAAAATTACTCAAAAGATCAAAGTGTCGATTTCGCCATTGCGCATGAGTAATTTCTGAATCTTGTTCGTTCTTTTGCACTTGGGTAAGAAGTTGCGCAGCCTTTGTTTTAGAGGGAAGTCAAACAATAGGACGTTAATTTCGCATTTGTGGCAACATAGTTGAAACTACGGTACTGTGTATGGGTACACCGTTTAAATTTTAAACAAAAATTTGTCTTGTTGAGACCGCAGAACATAGCTATTCTCAGTGTGTATTTGTCTAATAACCTGCCAATATTTGTAAATCTTTCAAAACTTCAATATTTGGCTCCAAAAATTATATTTTTAGCAAATGATCTACAAAAAGAATCCAATTTGACTGAAACTGTTAATATTTAAAAATCAAATGTATAATTTTTTTGCTCCAAAAACTGATTTTTCAAATAATCACAATTTCAATTCATTTAATTTCGATAAACACAAAAAAAAAGTATAGCATTTAAGAATTTCCTTGTTTAAGCTTCAACCGCGTAAGGGAAGGCCTCGTTGGCAATCGTCCTGCGTGTAACTTCGGCGGCGCTGAAAATTTTGAGGTTTTGCTTACATGGTATGTATTACTGATCCCTCAACTCCGCCATGCTCCGAGACGAAGTGGTATCTCTCCAGCATGGTGAACTCTGACGTGAGTCCAGTGAACCAGCCGTGTTGCAGTATACGACATCCCTCAGATACCGCAGTAATACGGATAGGGAAGGGTATGCAGATTTGGTAGACGTGGCGAGCCCTGTTGGATGTTGAGACTGACTTTTTGAAATGACTGGAAAAATAATTACAAGTCAACTTGCTGTCCGAAATTCATCATTACAAGCATTTGAATTGTTGAGCATGAGGAGATTCCGATTGCCATTCCGATGGGGTTGAGGCTCTTCCATTTCCTGAAAATTGTAATTTTAGACTTTTTAGATATCACAAAATCTGTTTAGGAAAAATACTAAGTTACAGTAAGAAAATTTTGCTCTGAATTGCTCATACAGGTTTTTAAGCTTGCACCCTGATTTGTTTAAATTCTTCAATCTTTGGATTCCTCGTGTACAAAAAATTCAATTCAGTCTCCTGGGCGTCGAATTGCGATGGAGCGCGTTTGCCGTGCGTTGGCGCAGCCGGTGGTTCAGTTGTAAGATGGGTGCAAACACGCTCCACAGAGTTTTCGATCCCCAGGAGACTGTGTCCAAGTAAACTGAGTGGTCGCTTTTTTGTTCAAAAAATGTGCCCCGCCCATTGGAAAAGCATGACCTTGTAATCGAAAATCCTTCAAATACGAATTCATTTACGAAACTGAAAAAGAATTAATTAACACTTTGTCCATTCGGTAAGATTCTTTCAGGTGTGACATCGTTTTCTCTTGTTACGAGCAATTTGGCTCAGGCACCGCCATCTGACCGGCCTAAGATAAGAATGTTTAAAAAAAGACGTGCATTGAGGAAGTTTAATATTCAAAACAGAAGAGACACATTCCAGATGAAAACAACTTACATTCTGAACGTTTCCTACGTCCGCCGATTCCTCTACGCCGTATCGATCGATTGAAAAATCGATCAGCTGACCGTTGAGCAGTACCTGGAGCGAGATGGTGATCGGAGCCACCGGTGGTGCAGTCTCAACGTCTGAAGAACCAGATCCGAAGGCATAGCTGTTCGATGGTGTTGGGTCGAATTTCTGAAAAAAGAATTGACCAATTTTTCATTTTTAATAGACTTCTAGGAAAAGGCCTAAAAAGGACAAAACGAGCCCCAACAATTTGAACAAAAGGGGTGAAATTTTATATTTTGTTAATTTTTCTGTATCACAATTTTGATTTTCAATCTATTGATATTTTGAATTCAATTTTTTCGGGAAAATATTGCAAAATTTAGCCATATTTCCTCAAAATAAACCAAAATTTGATTTTAAAAGTTTCCCTGGAGAATGAATTGTGAACTTTGGAACACCAAAATTAGCTCTAAAATTTCGAAAAAAACTGGGGAATTTCAACTTTCCGTATCTTTTAAGTTTGTCGGAATTTTTAAAAAATTTTATTACAGAAAACCACCAATAATTATAATCTTTTTTTTTTTAACCCGGGGTAATTTTTTTCGAGAAAATATCTTAACATTTAGTAATTTTTCCTCTTTTTAGGAGCTATTTGTTTTTTACTTTGATTGTTCCGTCAAAAACAATTTTAATTGTAAAGGCTTTTTTTTATGATTTTTCCAGAAAAACCGGTAAATGACACTATTACGGGAACAAAAAATTTGGAAAAAGGCACGTACTGAACATATCTGACGCAAAAATATCTTGTAGCGAAAACTACAATAATCCTTATCAAAAGGGTACTGTAGTGTCAAATTACGGGGCTCGATGTTCAGAAATTATTTTTTTGATCGAGCCCCGTAAATCGACACTACCAGTAGCCATTTGAAAAGTATTACTGACAATAGTTTTCGCTACGAGACCCTATTTTGCGCGTCGAAAAGTATGTTGTACAGTACGCAATTTCAGAATTTCGTGTTCCTGTAATAATAAAGATCTCCTGGCCACGACAAAGCGAAAAATTTTTATCGATTTTTCAGCAATTTTTCTCTTGTTTTCATAAAAATTGGGCAAAAACCGGAGGAAAAAAGTGACCAATTAATAAAAATCCCATGGCAACGAAAGGTGTTTGAAGCTACAGTACTCTTTAAAGAAGTGCACCTTCTTGGATTAACAAAATTTTGTCGTGGCGAGACGCTGGCATTTTTCCGGCGGAAAAGTCGCAAAATTAGCGATTTTGGGAATTTTTCGCGAGACAGCTGCAAACTCGACATGCGAGTTTATCCGTGCAGATGGCCAAAAGCCCTCCGTCGATCATATGACGAAGATTCCCTGGTGTTGCGAGCCCGACATTATGCTTCTGAACTATGAGATTGCCCGACTGTGGCACAAGACATTGCCCCACGAAGAGCATCGTGGATTTGGTGAGCTTCTCGAAGTCGCACGGCTTTACGAATCTGATCTTCGGAATTGAGTGGAGAGATGGTCCCGCCTCCAAGGACCTTACTCCCGATGCGCGGATAGATTGCGAAATCGATGAGCTGCCCGTTGAGCAGCACATCTTCGAGCGAAATGAAAATCGGAGCCACTGGTGGTGGGGTCTCATCGTAACGGATGAAATCCCGATGTTGAATCGGATAAAGCTGTCCGAGTCGGAGGAGGGGGTGTTGCTTCGTGGCGGTAGGGGAGAAGTAGCTTGACCGGCGGCTTTGGATTCTGGAAAATTTTAAAAAACTTGTTTATTATATTTTTATTTAAATCAGAATTTTTTATGCATTTATATTTTACCTTGTTCTTGTGAGTTTTTTTCGACAAAAGCGAGAAATCTGGGTCTAAATCGAACGACGCGCCCAGCATGTAGTACGAATCCGTTTTTACGATTCGGAGTCATTTAGACAGAAAAATGCATGAATATAGGTTAGCAGACGCTGAAAAATTGCGAATTTGGATTTTTTAACGGAAAAACGAGTGAAAATGGGACAAAAACATGTAAATTTTTTCAACGAAAATCGCGAAATTACCGCGTATCGATTCAAAATTGAATTTTTCGCTGTGGCCCGGGTTACGGTGATTTTTAAAGGCCCATGGTTGTTTTGAGACTGGTGAGGTATTGACGCGTAATTTAGATCTAAATTATTGAATATTTTTTTCTTTTTACATTGAAGAAAAAAATGATTAAAATTCGATCATTTTTTTGGGAAACTTAAGCACAATTTTCACAAAAATGAAATCACTCGCCAAAATTCAAAAATGAAGAGTTTCGTGGTGCGCCGGGTTACGGTGGATCTTAAGCATGGCTGTTTTGTATTAGGTCTCACCACGAAACTTGGAGTTTTTGATAGTTTACTTCCTATTATTTACTGTTTTAATTTTCGCTCGATTTTCACACATTTTCACTCATATTCACTCAATTTTTTGCATAAAAAATGATTCAATGGACATTGTTATGACGTATATGAGCAGCCGTTAATCTCTGCGCCTGTAAGCTTTTAGTAAGCTCCAATTTTTCTTATTCTGGCCTCAAATTATTTTTTTGATTTCCAGCTCAACGTTCACATTTTTCGCAAGCATCGCAGAGGAATGCAAACTTCTAGCTTCGGGCTCCAACGCTCGAGAATCCAGCAGGCCGCGGGGCTATCGGAGAAGATCACGGCAAGACATACCGCCAATTTCAGTAGGTAGTGTTCTTTTTTTACCCAACTACTTTTTTTCTATTTTCCAGCGTCTCCCACATTTCATCGATGGTCTTCAACAGAGAAATGGATGGCATCGTGAGAAATCGGCTCGACTCGGACATGTGATTTTGCTCGATGACACCAGGCGCCGCAATCCACAGTTGAAATCGATCGCGCTCCGCTATCTCCGCTACGATCACAGCGATCATAGAGCGTTGGCAAGGAAATCGCATCATCTCCTCCGACTTATATCAAAGAGGAAATTATGGATGATGAGCTCGACGAGGTGAAGGAAGAAGTGTGTGTTTCCGTTGGAGAAGCCGACTTGCCCACGCCAAAAATTGAACTGAACGTGGACCATCCGGAAAAGGACCTGATCATCAGCATTTCCGTGTATCTCGGCTACACCCGTACCCTTCAATACCACGAGATTGGTCTCGGACGTTTGATGAAGGTCAGGGATCGGCTCGAGCTCACCGGAGATCACACGCTTCGCGATCAGAGAAAACGCGTTCTCGTGCCCCATCGATTTCTCGTTTTCCGACGATTTTAGCGAATCTAGAAAGCCGTCGTTCAAGGATATGGCGAAAAATAAATGGCCGTCGTCGATGGTCTGCATTCTGACACGCTTTATATCGACTCGAACACCTGGCGACAAGTTTGTGGATCCGTCGATGTGAGCAAGGGTGCCGGCTAAAAGTTTTTCAGTGTTTTTTGAGCGAAAAGGAACAATTTTTTTCCCGCTTGAAAATTATTGATTTTCCGTTCTTCAGTAAAAATCCTGACTTTTGACGCCGCAAAATCGTGAAAAAACAAAAACTGAAAATTAAGGCACCGGATTTTCGGCCGTTGATAAAAAAACCGAATTTTTAGGTTTTTTCTTTTCAGAAATATATTATTTTTTGCTTGTTTCAACAAAAAAAACCCAAATTTACAGCACAATCCGAAGTTGGGCCAAAAAGTGACTACATCGGTCCGATGCACGTGCAGATGTCGGTGACGAGGATATGCGGGCGATCTCACTTGTCGGCTCGGTGCCATACGTCTACATTCATCAAGGCGTCTGCGAGCACCTCATCGTCTTCATTACTTGTGCCTGAGGTACGGAAATTCTGGAAAAATCGAAAATCGTTTTGATTTAAAAAAACGCAGATCTTTATGTGTTCTTTTTACTAAAGATTTACAAATTGTTTATGATAAAACCACTATAAAATAAGTTTTAATGATTTAATCACAATTTATATTTTCCGATTATCAATATTTTTTTTTTTCAAATAAAATACCCCGAAAAATATATATTTTCTATTTTTTCTATTTTTTGAGTACAGAGATGTATCCCCAAACGTTTCCACGCCGCATCGTCGAACGGAATTCAGAAGAATTGTGTGACACGTGCAAGGAGGCATCGGCGCAGTGGGTAGTAGCATTTAGAAATTCGGACTTTTTTGTGAAACCCCCGAATAATCTAGTTTCCGCATTATCGGAGTTCGAATTTTCGCACAAAAAATCCAAAGAGAATCTATTAAGGCAAAAATCTCAATTGATTCCAATTTATTCAGCTGGATGATAACACGACAATCTGCTTCACAACTCGCCAGGCTATCTGTTCGGCTCTTCGTGCTAAAAGGAGTTCTGTTTCGACGTGAACGGCAAAAAAGTACTGTGTCAATTTAAGGCCGTACCGTATTGCGAAAGGACATTGGCGACGGACGTTGCCAGTTCTTAGCTCGATCTTTAGAGAACGAATTTAAAAATCTGTCATTTTTTGTTGGTTTTTTTTAAATGTTTTTCCATTTGATTGTTTAATTACGATTTTTGGCCTGTAATTTGTTGAAATTTCAAATTTCTTCATTTTTTTAAATAAAATTTTTGTTTGCTAAAAAACTTATCAATAAACGGAATTCGAAGATGAGGCAAGTAGGGGGAAACGGATGAAGCGGGAAAATGATTATTTACAGAATAGAGCGCGCGCCAGAGGTTTCTCGGGGGAGCCCCGACGCGGGTTGCCGAGCTTGGCTCATCTGTCGGAAAATTAGGTTAAATGGGAGAGAGGTAACCTAGAAAATGAGAGAAATTCGGAAGAAGCTATTTTGATCAAATTGAATCCCAAATCGAAATGTTGAATTTGAAAAATAAATTTATTTTATTGATTTTTTGCAAAATCGATTCTATGATTATTGATTAAAAATCCCACTAGAATCAATAAATCTGGAAAAATCAAAAAAATCGATTTTTTATAATCATGAAATTCAATTTTTAAAGAATCCAAAAAAGTCGATATTTAAGAAATTGATAAAAAATCGATAAATCAATGGAGAGCTCGTCTCGTCGATTTGTGTCTTTGTGATTCCGGCTGCTTTTGAGTCTAGGTAACGTTGTTCCGTAAGTCTGGAAATTTTTTTGGGACGCAATGAGCACGCACAAAATGGACGGTGGCAGAAATTTAATAATTTTAAAAAATTTTCTGGATAAAAAAATCGATTTTTGCACTTCGCTTTTCTAGTGAAGAAAATTTAAAAAAAATAGCATTCAAAAGCTTGTTCAGGGTCTCGTCACGAAAAACTCACAAATGTTATCACGTTATGCGGAGCGTCGTCGAATTCCGGTGTGTTGCTATGGATCGTGTCGTTCCATGCTCAGCTTCATCGACTGACGTCGCCGTTTTCGCTAGTGGTGATCTGAGCGAGATTTATTGATTATGTCTTTAAAGACGCATGGCCTAGATAACACAACACTTCGCCCACGAACTTGATTGGTGGCCGAGTCTTCTAGGCCATGCTGCGGCTTTTAAAGGCACATAACATGATAATGACAAGATCGCCAACGGCCTAAAATGATGACCAATGCTAGACGGTTGAGGCATTACAATCAGCTGATCAGCGATGATAGGCCAGGAATATGACGAACTTTGCGTCGAAATAGAATCGATGTACTCTTGTCACGTCATTCCTGGAAATTATTGATTTTTTAGGAAAAAATCAATAATACAGTCAACAGTAACCCTCAACGAATCAATCTTGTAATCCGGTGAAATCATAGAGTAATTGCGTGAAAATGCGGCTTCGAACCTGAAATGATAAAAACATTCATCAATTATCGATTTTCTTGAAAGTTTTTATTTTGAAAGTTTTTACGCCGAAAATCGCGATTGATACATTAACTTGATAGATTTCCCCCCGTCGGAAAACCTATGAATCAATGAAAAAGTTAATATCTACATTTTTTCGAAGAATTGAACTAAAGTCGATTATCCAGCAGAATATCGATTTTACTAATCATTTGAAAAATTATCATTTAGACGATTCCTACGGAAGCCCAGAACAAATCAAAAATCGATAAAATTGACTATCGATATTATTCTAATTTTACTTTTTTCGATAAAAGTCGATATCGTTGATAATCGATTTTTTAGAGTTCTCCTCAAAAAATGGTAATAAAATATTTCTACGAACTCACACATTAACAGCCATTTGAGCATCACCAGGTGATTTTTTGCAGGTTCTTCGGCTCCGACAACCACTGATCCTTTCAGTGACTTGATTTCAACATTCACTCGTCTCCTGAAATGGAATTGATGAATTCTCTGATCTGGAAAAAAATACAATAATTGTTTAAAATTGATTTTTTTCAGATCATTTTTAAAATAACTAGTCTAAATCTATATTGAAGTCTAACTCAGCAAAATTACCACAGGCAAAGGATACGATTAGGCTTAGGCTAAGGCTTAGGCTTAACAGGCTTAAGCTTAGGCACACGCGAGATGAAAACAAAAGAGTTAGTGAAAACAAGAAAACTTTTATAAAAAAGAAAAAAAAAAAAAAAAAAGTGCAACACGTCGCCAAGCAATTCTAAATAGAACAGGTTCAAATACTATCTGTGACTCAAAAATCAGTTTAATATCGAATTTTTCCCACATGTCAATAATCCATTATCCATTCACCTTTGACTCGCTGGCACGCACCAAATCTATTTCTCGGTACCAGGGCCACTCTGAATATCGTTGAACTCCTCTACAAATTTCCAGTTAAATAATAGTAAAACTATTGGTGTTCGAATGGATTTAGCCCGAAGGAATACTTTCGATGTTTTGAAGTGCCACCGGCACAGTTGAAATATCTTCAAAAGTCGTGGATTCCTCTGATGAGGTGGAGGTGTTCGGAGGAGGTAGTGACGTCAGTGGAGAGGGTTTGGCTCGGGTTTCGGCCATGGTGGTGTCCATTGTGGTTTCCATAGTTTTTGTAGTTTCCTTGAAGTTCATTCTGAGGATGAAATATTTGTGCGAAGTTTTGCATTTGTTTTTTCCTGCAATATCTGAAGACTTCCGAACCAGCAAAACTCACTAGGTAGTGTTTTAACTATACGGTGCGTACAATCAAGTAAAAGTGTCATGCGAAAGCTGGCAAGGCTTTAAGAATCTGTAATTTGTTCCGGCGGAAGACCTCTGTTGAGTCTGGAAATTTTCATCTGAAAGTACTGAAATCTGCATTTCCTATGGATAACAGTTTTGTGTCTCTGGCGCCTACAGAAGTCGCACCACAATGGTGGAAGGGCGAAAACATCGCTTCGAAGCTGTTAACCATAGGAAATGCAGATTTCAGTACGTGAATTTTCGTCTCAGCGGGGATGAAAATTTACAGTCTCTGACAGAGGTCTCCCGGCGGAACAAATTACAGATTCTGGAAGCCTAAGATGCCAGCCTTGCTATCGCATGAACGATTTACTTTTACACGAGCACCGTAGAGTTAACACTCCCTAGTCAGATATGTGCTCTACACTTTTAAATTTTGAAATCAATTTCAACTTGAATATAAAATTAAGAGATTTTTGAATTTACTAGGCCACCTCGAAAATTTCCAGGCCACGGCAGGTTGGTAAGGTGAAGCTGCAGACCCCATAAACCTGTGATAAGTGAACGCTTGCAAATTTTTTAAAATCAAACATTTGTGAAGAATCTGAATATTATCAGAACAAAAAATAATTTCGACAAATAGTAATAAATTTTTTTATCAATATAATTTTTAACTAGTTCCCAAAAAACTCAAAAAAAAACTCACCGAGACAGTCGTAGTGCTCTCATCTGCCTCGTAGTTTTCCGGGTATTCGACAAAATATTTGACTCTTCCTCAGACATTTTCAGAATTGGGAATGGGGGGCTCTGACCTGTGCTCAATTAGCTTTCAATAACACTTCCATCCTGCTCAAAAAGTCCTTCCAGTGCACTTTGATCAAATGGGGTTTCTACCTACAGCTTCTGATGGGTCGCTTACTGGTTGGATGGTATGGGTTTTGGTCACCTCTGTCTAAAAATTGGCAATTTGGAAGAGAAAAACCGCCTCGGCCATTGGTGACGTCATACTTTTGCCACTTCTTCGACCAGCTATAACCCGCTTTTAGGAAGTTTTATTTTTGGTAAACCAAAGAGACCAATTTTAAAACTGTGTCTCCACGTTTACCGCCAACTTAAGGGCGTGTCCGTACAGGGTTTGACCGTTTTATCGGGCGTCTTAATAAATCATTTTCAAGTTTTCAGTTTCGTGGAAAATTAACATCGGAAATTGAGTCATCAGGTATGACGTCCGCTGCCGCGCGGCTTCCCATCACGTCACTCCATGCGCTCCCCCGACGTCCCTCTAAGACGTCACCACCTCTCACCTGGGTGTGTCATCTCCTTCTCAAAACTCGTCTATCAGTGACCTCGTCCACCCAGTCAATCGGAAGGGAGCTGAACGTAATCACCCCGCCCACAAGGGAGTGGTTGGCATCATTTCAGTTATTTTCAGCGCCGAGAGTTTTCTCAGTGGTCATCCTGATCCTCCATACTATCATCTTCGATTCTTGTGTGTGTTAAAGTTCTGAACATACCGCCGTCAAACGGAGTTATTGGCTCTAGGAGAAGACCGGACGTTTTCTGGTTGGGTTCACTCCTAGGGAGGTGTGGTTCGGCGAGAGATTTTTCGATCATTTCTGTACTTGTCTCGAGGTCTATCCGATATGAAAGTTATGACACATATTTTTGGTGGCCTGGGACTAGGCCTCCTGTCAGCCTAGAAATCTCAAACCTCGGCCTCCAGCCCTCACTAGCTGACCTAGATTTGGTAAATTACTAAACATCGGCAAGACCTCTTTTCGACTACTCCCTTACAAATTTAACAGTTTTTCATCACACAATTTTCCGATGCTTAACACTCATCATTTCTTCATTCGGAACAGCCAACCATATCATCATTATCAGGCATTACGGTGTCGTTGTGTCTTTTGCCAGCTGTTTGTCGAACACTTCTTCTGAATTTTCGTGTTGCGCGAAGGAAAAAAAGTTAAATTACATTTTGTCTAGGCCACCAGTTTTTGCATTTAACTTTGGCCTAGAAAATGAAATGAGAAGCTAGACCATGTGGGTTTATTGCGAGGAACGCGCAAGCTTACATATCCCACGAAAACTTTTATAAGCGTCTAGTAAAGTAGAAACCTCGGACCAAGTTTTGCACTGTGACCTAAACAATTTTGGTAAAATAGCAGCAAAATTTCCATGATGGCCTCAGGAAAACTAGGCCAATAAGGTTTCTTCCGGTACCTATCCGTTTTGTAAACCTAGGTCACCAGTTACTAGGACAAGAAAAAGCTAAAAACCAACATTTCAGATTGGTCTGCAAAAGGGCAAAATATAAGCCACTAGGAATGTTTGCATGGTGGTAAAATATCGTTGGACGTGAACCAGAAGTTTATCGGTCATCAACTTACGTGTCGTTGAAAATGCAATGAATAGATAAAACAAATGGTAACACTGTGCATCGCTGAAATATTGCAAAAATTAATTTATATTTTGGAATATCAGAATCGGAGAGTTCATTTTTTTGGGTCAAGATAAAAAGAGTGAAATGGAGAAAATTTATATGATATATCAGGTCAAAATGACCTTCGGAAATTGGGAAGGAGAATAATCCAAATTAATTCGCGTGGAACTGGTTAAGATGATCGAAGATTGGAGCGAAAATTTTGACAGAAATTGCAACAATACTAATGCAAAAAGTTGTATAATTCTTTCAGTTTTCAGAAAATCGATAGCAAAAGTCTTTTTTTTTAAATAATTCAACTGAAATATTTTCGCTGCGAGACCTAAGGTTACAAATTGGATTAAAAATTTTATGTGCCCATTAAGAGTTTTTCTGGAAACTGAAGAAGTCGAAAAATCTATAATACCCTACTTAAATTTAAAGGCGCACGAATAATTGAATTTCCAGAAAAATAAAAAAAAACACACAAAATTTGATACTCCAAGTTTAGAGATGCATGGGTAATCAATGTGAATGAGAATTTTGTTAAATTTTTGAACTGCAATTTCAGATATTATGAGAAAGCACAAAATTCGAATAATGCGTATTGCGCAACATATTTTGCGCTCAAAACGGCTATCTCGTAGCGAAAACTACACGTATTTCTTTAAATAACTACTGTAACGCTCTGTGTAGATTTACGCGCATCAAAAAGTATTAAGATCATACATTGACCGACAAAATGTTAAAATTAGGCAAAAAATAAACGAATAATGAATTTCGTAAATCGAGCACGTAAATCGACACAAGCGCAGTGGTCATCAAGAAAAATCACTGTACTACGCGTTACGAGATATGTTGACGCGCATAATATGCTGCGACGCATTCTCAGAATTTTGTGCGCCCGTAATAGACCATTTGTAAAATGCTTAAAAACTTCAGATTTTATTGAAAAAAATTTCTATTTGAGCAAAATTTTTCGAAAAACAAATCTCGGAAATATATTTTTCCATCGAAAAAGTCTCGTAAGGTGTGCTTGACATAATCTTGGTAATGGCATATTTTGTAAACAAGGTTACAACAACCCCTTCCTTCAGCCCACCCGCCCGGGAAGCCTGGGCATGGCGCAAGTGCTGATGTTTTGTCTGTTGTTGCTTATGTATATGCTTATTATTTACACATTTGTGTGTGTGTGAGTGACTACACTGCACACCTCTTGAAACGGATTATCCGGACGTGGTCGAGCAACGGAGGGACGCCGAATTATGCACAATGCTATGTATTGTGATATGAATACTTCATTTCAATAACTTTATATATGTTAGCACACGATTTTTGAAAATTGGGGTTGTGGAAGAGATTTTCACACTGGCCTAAAGTTTTTGAGTTTACTTTAATACTTCTAAATCACGTGGTGTCGGGCGGTCTGCTGCAATACTATTTGATCTACAAAAAATGCGGGCATTTTTTCCCAGAAAAAACGTCCGCACGCTCTAAACCATAAAAAATCGAGATCTGCGTCTCAACTCCCGTATTTTTTGAAGATCAAAGCGAAATGTTTCTGCACTCCACGTGCTAAATGAATATGAACGTTATAAAAATTATCTCTGGAAATTTGAACAGAATTGCTCCCCCGGGTGGAGCGCGTTTGCCGCTTAGTAGCTGAGAGACTTAGCTGCGCCGTGAAGGGAGGGAAAAGTAAGGAAGTTATCAAAACCAACAGACGCACTTATGAAAAGGAACACAAGAAAGAAAGTGTTCTTTTTTCGATTTTTGTGATTTAGTTCGTGTGTGATAAAAGTTCAAATGGCTCGGTAGGACAATAGGAAGGAAAGTGGAATTTTATATTTCATCTTTTGTTAAAATTTACTTTTGTAGGTGTATGATTAGGTAGTGTTAATAGAAATCGGGACTCGCGGCTTTCATTTTTTTGTGGCCGAGTATAAAAATCTTCCCGTCAACCATACGTGTTAAAGGTAATCAATAGGATATCATATTGGTAAACTTTAACAGAAATCCTAAACCTAGGTTTTCCGAACTATGGAGCTCTGAAGTAGGCCCCTTTGGGAAACATAGGCCACCAACCTGAGAAAGGTAAGGTGAGGGCAGGGTGCATAAAATACAACTTTTTCTCTGAAGTTTTTAATTAAGCGAACAAGCCGATATAAATTTTTCAGTCATGGCCTGACTTGACATTGGTGGGCGGATTTTTTCGAAAAAACTCTCACGATTTAGAACATGAACTTGGCAAAACTTCAAACAAATCCTAGAGATAGGTTTTGAATTATGAAGCTTTGAAACTTCTAGACAGGGGCGTTGAAAAAGCTACCCCTTCCACTGTCATAAACTTATAACAATTCACAATTCGGCAAACAAAAGTAGAGATTTCTTTCATATGTAGAATTAGCTCAATTTTTCAATCCATTGCACGGCTAGATTTGAACTCATAATTTGAAATTTTTCGGCCACGCAATAGAAAATTCTAGTTCATGGGAGTTGAAAGCTCGGACAGGAGCTAATTTTAAAAGCACAAGAGACAGGAAAACCAAAAATTTGTAAAGTCATAAAAATCAAGTTTTTTAGCTATGAGAAAAGGATTAGAATTTCAACACGGCCACCGATCGCCGGAGCGAAGATACAATCATTTTGGGCATAGACGTCGTTTGCGCATAATCTTTCTCACCAAAAAAAGATTGAAATCTTTTAATACGAAAAAAAGTTGGAAAAGAATTAGAAAAATGCTGAGGAGAAATTTTTTTTATGAAAGCTTAGGCTTACAATTTTAGGCTGCTATTTTTTCAGTGTTTTCCATGTGCAGAAAGGAAGAAACCGATCCCGACTTTCTATCACACACTGAGGGGAATTTCACCCCCCCCCCCCCCCTCAATTCCCGCTACTACTTTTACTGTACACTCTCACCGAAAAGATATTGTGTCATCACGCATCATGCCAAAAACGCAATCGTACAACCAAGGAGAAATAATTGATGAGAAAACGCAAGTGTTTCTTCATACACTACATAGTGTTCAACACCCCTGCATGATATGGCCGCGTGAAAACTCTTCCACGGCCAGGAGTAAAAGAAAGTTTTACGGAACAATCTAGCAAATTTTCATAACAATCGGTTGGGAAACTAGTTACAGGGGTTTGAATTTTCTAGGTGGGCCATGCGGAAAAAAACTAGGTTCGGCCACGTTTTGGTTAGGGAGGCGGTGTCTTCAAAATAAATCTATATACACCTCGCACCTAATGATCCGCCCATGAATCTTCATACAGGGGGAAACAATGAGGTATAATCTTAGGTGGCCGAACTTTTGGTTCGTGAAGAAATCTCGGCCAAGACCGCGAAAAACGTATTCTTTTTTTGAATCGTTAATTGAAAAACTGAAAACAAGAAGTTTCTAGGCCATGTTGCTTAACCTTGGGGCAGTAAATATTTTTCCTAAGCCATTAAATTACTACACTGAAAAGGCCCTAGGCGCCCACGGCTTCAAAACATAGGCCACCAAAAGCTGAAAGAGGGTTAGGACCGGAGCCTGCTATTATGAAGCAAAGTGTTTGTGGAATAAAAAGTTTCAGAATTTCCACCAGTTTTTACAAACTATTTTTTCTCTGGAAATTATAAACCTGAAATTTCGAAAGCGGACGAGATCGTCAAAGAAAAATAAGACGAGCTTGCAATTCGGAGGGCCAAAAAATGAGAAGAATTTGAGAACAAGAAGAGGGTATGACGTTGACCTATACGCGTATTGTCTTTTTTGTTTTCCTTCTTCAGAATGTGAAAGAGAAACTGTCATAGCTAGTCGTAGTTCTTCGATCACCTAATCACGTTATTGCGCCCTTCGAGCACAGTTTTTTTTAGGAAATGTGTGAAAAATACACATTCTTTGCGCTAGGAAAAATTGTGGGAAAATTGAGGTTATTGAGGTCCCTTGCCACGACACCGTGGCCTAGGATACCGCCGTGCTCTTGAAATCTCGCTTGTAGCCTAGAAAGTTCCCATGGTGGCCTGGAGAAGTTTAGCGGGGCCTAAGACTTTTAATTGTGAGTGAGTTTTTTTGGCCTAAAATGCTATACGTGGTTAAAATTCCTCATTGTTGAAATTTTTAGCGCGGCTTAGGATTTTCTATAATGGCACTGGATTCTCGCCGTTACCTAGAATTCCGTAATGTGGCCTGAAACTGGAGTTTAAGGGTGAAAAGTTTAAGTATTTTCAATCGTTGCCTTGAGATTTTTTACAAGAATTCCTCATTGTGGCATTTTCTATTCTGGCCTAGAAGTTTGCATCGTGGCCTAGTAGAAATTTGCAGAGCTTGGTTTTGAAATTCGGTTTGTTACCTAGGGTGCTATATCGTAAATTCTTCCATCATAACGTATTTCACATTTTGACCTGAAAATTCTTTGCGTGGTCTAAGATTTCTCATTCTAGGATATTCTCGAAGTTAAAGACACTATTGTGAGAAAAAGTTCGTCATGGCCTAGAAATTGCTCCCGTGACCTAGGAAGTTTCAAATTTTTTCAAAAAAATTTCACCAGAAATTCATCAAAATTTTCAATTACGGAAAAAGAATCATTAATGATTAACCACTGCAACTTTTTTCGAACTAAGGACGAGGCAAAAAGATTAGTACACTAGGCCATGGCCGAGTTCCCGACAAATTTCAGCGGCCCACACGTTTATTTTGCTTTGTTTCTTGGTTTCTCTCGTTTTTCACCGATTTTTTCCGCATTTTTTCCTATCAAAACTAATAAATAAATTTTGGAGATGCTAAAACAATCAAATAAAATTGTGAGTTCAGTCGTGCTGGTCAAGTAGCGGTAAAAGTGGTCAATGTAATATGGATTACGGCAAAAAAAAACCCAAACTTTTTCCCTAACATGATACATATGCTGTTTAGAAACGGGAAAAATCGTGTGAAAACAAGAAAACAAAGCAAGAACTGTCGTAATAATGCGGTGTATTGTGTGCAGACACCGATTTTTCGCATTTTTTCTCGGCCCTCGAATTCGTAAAAAGTAGCAGTGTTAACGGCGGTAAGAGCTATACCTACAAAAGGTGGCCACAAAAAAAATAGAAGAAAGGATCTAAAAAGAGCAGGGAAGAGTTTCTCAATTGGCCTCGTTATAGAAAATAAATACAATAAATATGTTTTTTGGAGAATTAAAAAAACAAAAAAGTTCAAGAAAAATTTAGAATATTTTTTCAGTTTTTTTCCTGATATTCATTAAAATAGAATAAATGGAAGTTCCACAAAAAGCAGGAAGGTGAGCTAAATACTTTAATACACCTCCTCCTCTCAATTCTTCAGAAAAAAGAATAGGCTTCTCCTCCTCCCACCTCCCAGACACTTATCAACACTTTACCCCATTCCTCCCGGCCCCCGGCTTTTTCAGATTTTTCAACCTTGAAAATGACGAACATTTCAGATAAATGTTTCTGAGTGTTATCTGAAATCAGGGTGTTGAAGCAGCCCCAACCGCGTGTAGCGTGGCCTAGAAATCCGAAAAGTCTTTTTGATCTTCCGCTTTCTCCAACTAGCAAGTTAGGTCTTAAGTCAAATGGACTCTCCATGACCAAGTTATGACGATTTGTAGTTTCTAGGCCATGGAGTGCTCTCCGAGGGGCTGAGACTTTGACCCCCTGACGCCGGGATTTGTAGGACTTTTCACCTGTTTATGCTACTGTAAGCGAACTATATACGTTCTTCACGCCAAGATATCCGTCAAATTGTGACCACCGTTTCAGCACTTTAAAATTTCTACTTGCATTCGCCACGCTGTCGCCATAATGGAATATTTTTCTCACGAGGAATAGCATAAATTAAAAAAAAAACAGTCTTCAACTGGCCGATATTTGGAAAACAAATCCTAACGAAAATGTTGCAGAATTATTAAAAGCTTAATTAAAACAAACCACAAAAGTTACCTAAAATGAAATAAAGAAATAGGCGTACAGAATTATAAAACCTATAAGCATGGGTGGGTCACAGGTAAAGATTATGGAAAGTTTTTGAGGGAACGTAGGAAGATATTACTGTAAAGTTATGGGGGAGAAGCGAGCGGCTGAAATCAAAATGGACTCGGTTGAACGCGTCGATTTGAATCACGGAGAATCGTTTGTAGGGCTTCCAGATAAAAAATGTTCTGCCTGCATTGTTGGGCCAAAACACATGAATCATTCAAAAACAAATTGGCATAAGAAAATACATACTTCTCCAAAAAAAATCAAAAAATAGGCGATAGGTTTTTAGATACAGTATAATTTGAGCAGTTAAACTATTCACCCCCTACAACTGGCGGGCCCGCAGGGCCTTCTAGTCAGGCAAAAAATATACGGCCCACACTCACAGCAATAAGAAAAGTTAGGGGATAGTAGAGACTTTTACTCAAAAGGAAGGCCGCATTACACAAATGTTTAAACATTAACCTCAAAGCGGGAAATTTTTTTTAATGCGTACTGAAGAAATCGACGTAATGAAACTCAATTCCTACCACCCCGTAAACCTCCTTCACGTCCAAAGTAGTCCATAGTGACATGAATCCTTCCGACCAACGTAAAGATTGGAGATGACGAAATTTAAGATGTACCAGTATACTGGTACATACAATTTCTACGTCACAACATCTTGACAGTCTTTTTCCCTCAAAGAGATGAGCCCCTTGTGAGATACAAACGCTGCGTCCTATCGTGGGTTCAGTTGTGGTGAAAAATTGTAAAAACTGTAAGTACCAACTATGCTGATATGCCAACTACCAACCAGCATAATTGGTGCCAAGAGACTTTTGCCACCTCGAATCTGTATGACGTTGGTCGGAAGGCCTTTTGTCACTATTGATTAGTGGGAGGCTTACGGGCTTGAAACAATCGTTTATTAAAAGACGTATCTTATTCAGTACGCAATATTGGTTCCCAGCAGTCATTTTTTCCGCTTACGTAGATCTTTAAAAAATGCTGGAGAAGATATGCAGTGTTCTCAACTAATTTCGCAGAGTTAAGAACGTGCTGACGTCACTTAATTTTTTTGAGCAAAAAATTCCGGCATTTTTTGTAGTTCATTCATATCCGTAACCCTTGGACAGCCTGGCACCACGTGTAAGAGATGTACACGATGCCTTGCCTCTATGTTTGCCCGGGAGTGTGGGAAAAGTTGTAAGCTGTAGAAAAATGGACAACAAGCATGTTGTCAGTTATCGCAGCATTTTATAAGTCAATGACAAGTACAACAGAGAGCTTAACTGAAAAGTTTGAATGGAAAACTTTCAAAAAACAGCGAAGGTTCTTTGATGGATGCAAGGGCAGAAAGTGACTAATGCATGTGTTTGAACTTAAAACAAATTGGCTAGTCTTTGACTGAAACTACCTTTTATAAAAATGAAGAAAATGAACCATTACGAAAATGTTAAACTGAAAGTTGGTGTGTTTTTATTGTCGTTCTGTAATTAAATTCCTTGAATGATCGCTCTTCTGCAAAGAACAACCACAAAAAATAATTCGATATACTCAAGTATCGACGACTTTGATTGGAATGCAAACATATAACAAATTAAAATAAAAATTCTACGGTCATTATATTTTAGGAAAATTATTGGAAATTTTTTAGGCTTCTGAAGTGTCAAAAACTTTCAGAACTAGTAAACACGCAACATTTTATATGTAATAAAACACTCAGCGAGTTTAAACTTTGCAAGACATTTTGGGACATAATTTTGGCCTTTTAAGAACAATTAATTGGAAAATAAAATAGTTAGAATGATCGTTCTTCAAACAACCTGACATAACAACAACACACCTACTCTGTTATAATAAGAAAATGTAACTACTCATCCGAGTTGTCAACCTGCAAGACCGCATAAGTTTATACCACTCGAACAAAAAACAGTCTTCGTTCTCTTTCTTGAAAAGAGACATAATTGAAATGAACTAATCACCGCTGCCCGGGATGGAAAAAAGAAAAGAAAGTCCTATCATCCTTTGACCTTGTTATTTTTGCAAATCATGTCTGACTAATACACTTTGTGTTCGATACATATTTCACTGAATCAGGCGTGGGCGACAACCAATTTTTACGGCAAATCGGCACATTGCTGGAAAATTTCCGGCCTTGCAAATCGGCAACAAAAATGTTTGAAAATCGGAGAGTAAAAAGGTGGAAGTCACCAGCAGTGAAGTACCTACTTTATTTCACATGAAATTAAAGTATACACCATCTCTCTTTTTTTTCCTTATTTAACAGTCTTTGGTCTGTGTTCTGACTGTTGAGAGATCAGGGATCATGGACGAGTTGTTTTTGGGAAAACAAATTCTTTTTGGACTCCTTTAGTTTAGTAAACGAAAAATTTAAATTTATAAGCATATAAATATTTTTGTGGGAATTTGAAAAAAAAAGAAATTAAAGAAGAAACAAAACTAGTGTTCAACATGTATAACTGGGAGAAAGAAAGAAGTGCGCTTCCAATTTTCAGAACTTTTGCAAAATTGTAGAAAGTAGTTCATGCTTCAGATCAAAGTTGTAGGAAAAAATGTGGCCATCCGAAAGAGAAAATTCTGCCACGACCAAAACTCAGCACTAGACTGAAATTTCAGTAGTAGCTGACAAAACCATCCAAAAGATATTGTAGGTTACAATATCTACCGTGAAAATTAGAAAACTCGAATCAGATATCCGTGGGCAAAGCGAAAAAAAAATTAGAGTTTTCTAGGCCATTCGAAAAACTCGTCCACGTGTGCATGAACTGTCAAGTCGCCAACGTAAAAGGTGTGAAACCCTTGAGAGCACTGAGAAAGAAATGAGATAAAGTAGCAGGTGAGACCTCCTGTCTCTGAGAAGCAACGTTCGAAATTCTTTTCCCTACATTCCATCTATTATCATTATTATTATTATTATTAGGACGGTATGGAGCCAGGAACTGGTTGTTTATACTGACCACTGCCTCTTCCCGATTAGGATTATGTGATTCGGATTTCGGGAATTGAGAATGGCAGATGGTTTATGTAATTTAATCATATTCCTCAAAAAGTTAAGAAACAAAAGAAGGAAGATATAGATCGCTGAATCAGTGAGGAGCAATAACATAGCATATATGGAATTGGTAAGACTGGTTTACAGTTACAAGGGAAAAAAATTTGAAAGTATTCGTCATCTTATCTAGGTAGTTGAGACACTTGATTACTCAGTTGAATGAACAAATGGATGAATACAAGTTCGTATGCTGAAAGCATCTCTAATAACATAGTATTGGTTTTAAAGGTGGAGTACGGTCGTGGTTTTAACCTAACTGACAAAACAGTCCCAATATACCGTAACTGTTAAAGATTTATATAAATTTATTCTGGCAAATTGTTTATAATTTGTAAAAAAGTTTTTTTTTTAATTTAAAAATTTATTAATTTCCAAAAAAATAGTTGATTCAAAACTAAAAACCCAAATTTTCTGAAACTTTACCAGTTTTACTTATTGTCTTAACAATAATATACACATATTAACGAAATACTCACCGTTCAAAATTTGACTTCTTGAAATCTCCAGTTTTAACGGCAATTAGAGAATTTGTTCAAAATTCCAATCTCACACCGAACGTTTTTCTTCGTTTTTCATTTTAAAACAGTTCTATCCAGTTTAAAAATTTACCAAATAAAAATGTGTCTATACCTCTCACCACCAATCCCGTGCATGTGTTCATGTTTACCTTGAAAAGTGTGTATTACTATATAATACAGAACAAATATCAAATGGCCACTCTCCTCCAGCAGAAGGAATGCTTAGGTGTACGAACACTGCAACACTTCCTATTACTCTTACTAGTTTTGCGCAATTTTCTGGTCCTTTTATGTAATTTTTTGTCTGGAACAGGAAGTTTTGTGTTGTTTGGAAAATTAATGTTCTACGTGAGATTTTTAAGTGATTTTTTGAATGGAATTTCAATTCATTATTTCATTGCATTTGTCTTTTTTTCTCACCGAAATCCACTTTTTTTATAGAAACAATTTTTTTTTCTACATTTTTTCCGATTTTTGTCATTCAATTTTTCAACTTCTCCATTTTTTCTACAAAACACCGACAACTACAAAATACCTAAAAATTGCAAATTAAAACAAATTTAAACATTTTTGCCGCAAAAAGTTGTTTTTTTTTACAGAACATCTAAAACTCCCTTAAAAATATGCTAAGTCATTTTTCTGAGAAGCACTTAATTTTTCGATAATATTATTTTTGCTATATTAAATCCAGAGAAATTAGAAAAAAAGAACGGTTTTCTACAGTACCTACCCTCCCTCTCCCTCTTAAAATCATTCCTACAGTGTTCTTACAGTAGTCTTACCTGCACCACTCCTACACTGCTCTTACAGTGATCCGATAATACTTTTATATAACCACACACTCCATACCTATACCTTACACTACAGTACCCCCGCCGTACCCGAGGCCCCCCCCCCCCCAGTACCCTTGCCACTTCAGTATCCTACATTATCTACAGTTCTCCTACACTACCTCTACAGTACTCCTACAGTACCATTACCAACGAGAAATTTGAATAGAAGTGAAATTATGAACATTTTTTCCTGTATACCAATTTTTAAAGTTTTAGTTTTGTAGTTGTTTTTGACAACGTAATCAATTTCAAAGTATTTTTCTTTAAACAATCGTACTTTTTGCGTACCGGTGGTTCTTGCACGGGGATTTTGGAATAAAAGTGCCCTCCGAAAAAAGCGAGTGCGGAATTAAAAGCACAAAAACCGGATAGAATGAGGAGGTGCGAACGATGGAATGAAAAAAGAAGCAGAAATTAGATTTGGTTCAGAGAATTCTGTTTCTTTTATTTGTCGAGATTTTGGTTTTGGAGTCTTGGCAAAATGTTTTATTTTTGTCCAAGAGTCCTAACGTTTTTTTCCACCAAAACTCCCAATTTCAAAGTTTGGAAATTTGATTCATCGATCTGCCAAAACTTCCGATTTAGAGAAATTAAATGTTCAGTTTCCCGTAACAGGGTTTCGTATCAAAACGAGTGTGAACCGCCTACCTATGTTTTTTAAAAATGATCATACTCTAATTTCCCTTCAAGCACTTTTTTTTTTGAATGACTATTTGAATATCCCAGAAAATTTTAAAAACGTCATGAGTTTTTTGAAAATTCAATTTTGCGTGTTCCTGTAAAAAACCATAGAAACTGTTGACCTATAACCTGCCCGACGTTCTTCCTGTCTGTTTATACCCCATCCGCTCTGCACTCCAGAGACCCCTCGTCCTAACTACACTGATTATTAAACTGTTACCCCGCCCCCCCCCGTTTACCCCTCATTTGTTTTTTATTCGGTAGTGCATCCCTTCCGTGTAACCTGACACTTTATTCAAGAATCCCGCATTTAGGAGGATCAGCAATTTTTCTGTTACTTAATTTTCCACACGGTAGGAATCGGAGACAAAAAGAAAACGTCATAGTTAAAAAATTTATGCGTTTAATTTTCAGTTGCTGAAAACTCAATTTTGTGGAACCGTGTTTTTCGATCTTTGTAAAACTGAATTTTTTTGAGGAAAATTTGGATTTTTGCTGGAAAGTCAATTTTTGTGAGAAATGGCGGGAAATTTAAATTTACTGAGAGAAATTTTAGCGGGAAATTAAATTTTTTGTTTGATAGTGAGAAAAATTCAATTATTTTTGTAATTTTTCATAATATCTCAAACTCAAAAAAGTCTGAAATTAACTCGAAAATATTGTCATTTGATATTTTGGCAATTCAAAAATTGCTTAAAGTAAATAACGGAACTCGTTTTTTTTCAAAAAACGAAAGGTATTAGTAACATTTCCGGTAACCAAGGTTACTCTTTCCCCATCAATCTCCCATAAGCATGCCAGAAACAAAAGAGTGAGAGAGAGAGATGCGTGTATGATTATTTGACAGTGCGCAACTGACACACATAAAACAGCTTACATCTTCTCTTTTTATTTCAACTGATTTTTTTACCTCCTTGTGTTCTCCGAGTCTCTCTGATTTATTCAGTTTCTCGATTTTCTTCCAAATTCATTCCCTTATATATTTTAATCTATGCGTAAAGTGGAGGAAGATTTCTTCTACGAATTTTGATCTTTTGCAAATTTCTCGGGTTTTTCAAATTATGGATTTTGAAAAAAAAAATTACTGAAATTTATTTTTTTCATGTCACAAAATGACTGTCTACCCTGAATTTTTCTATGGAATATAAAAAAAATTCTGAATTTTTTTTACTTGTTGATGTGTAAAACAAAAAATTAGAAAAATCAGATTTATCTGACGATTTTTTGAACTTTTTTTTAAAATCAAAATTAACTTCAAACAAGATTTTTTTCGGAATTTTGAAAAAAAATGTTGTTTTTTTGAGATTTTAGTACAACATTTTCGTAAAATCGAATTCATTTTTAATTTTTATTGTGCAAATGTTCTGACTGATTAACTATGAGAAAAATTTAAACAGTGTGAAGTTTGAACCCCCCCCCCCCCCCCCCCATTATTTGGACGGAGATACGAAATGTGAATTCTCAGAGAAGGAGGTGAACACTCTGATTGATGTGCATATTGCTCATTATCCATATTAGTTTGGGGCATATCGCACAGCGAGCATGACATGTACTTTTACCCATTTGCGTAGGCTCCGCCATTTCACGATTTTTTTTTTCCAATTTTTGAACTAGTACAAAAATTTCTGAAATTAATTTCTGCAATCTCACATTCCATTGTATTTGTTGCTTACTTCTATTGTTCCACAAAAGAAATTTTCGAATTTTCGTAATGTGTCTTTCAAATATACCATATCCACGCACATATGTCCCTTTTCCTGAATACTAATTTGGTGTCCAAGAGGAAATTTGTTTTGTCGAGATTACTCAGTTCCATTACGGAATATTTTAGTCTCTGAGAAAAATTCACTTCCTAAGTGTATAAGACTAAGTAAGTAAAACGATACTACAGTGTCAAGAATGGTTTGTTTTTTGTTACAGTCTTTACTATGTAGCTTTTGTTTTGTGTAGTTTTCCAACTTTTTTTTTGCCAAAATGAAGGCTGAGGATAAAAAAAAGTCAAAACACAGATTGGTTGCTGAGGCGGTATTATTGGTTTACTGTAGCATTACGGGGTTACTCTAGTTTGGCCCATGTTTGGTGTCGTTAGTAGTAACAACATTTCGCTCATTTGTTTTTTGATTTGGTAACTTCTGGTGACTAAACTTTTAATGTACCTAAATCTTCTGTAGCATTATTGATTTGTTGTTTTCTTCTTTTTAAGTTAAACATGCTCACATTAAATTGAAATTGAAATGGGTTGAAAATATTATTATCAACTTGAATACCAAAAATTTTGGACGGTATTTCAACAAAATTGATTTCAAGCCTCTTCGACCTTCGACACAACAAACGAATGCTAACTTTCCCAGGATTACCCAAAATAGTTCAACGGAATCCCGTTTTATCAATTTTTAGCACATACTTCTTCATAATCATGATTGTAATGATCGATCCGGTCTTCTATTATTAGATGAGAGAAGGCAAGAATATACATATGTGTCTTTTATATTAAATTAATTATATTTCGACACATTCTGCGCATATCACTACTGTACTAGAATTACATTTTGAGTAAAATGTAACCAGAAGAAACAGTTGTTTGCATTTATTGTAATAAACAGAATAGAACATGATGTTAGGAAAGTTATTAAAACTTGCAAAGTGACACAATTCATACCGATTTCTCTGCAATAGCTACTTAGTTCACTTAGTAGGCAGAGTTTTGATACTGATACGGATTCTTAACGGATTTTTAATTTAAATCACTATTGCTTTAATAACCTTTTAAGATTTTTTTGTTTCAGCGTGCAATTGTACTATTTTTTATTCTCTTTCCCCTAGAATTTTAATAAATAGAAAAATTTTGAATTATTTTACGTTATAATTCAATAGTAAAGAATCACACATCAAGCTGCCCCTATTCAGTTTCACATACTTTGCCTGATAAACATGACTCCATAGTAAAATGGACACTTTCATCTTATACAGACACCCGCCCCCCCTTGCTTCCCGATTAAATCCCAATAGTGTGGCAGCATTGTGTTTCATTGAATTTATTATCATTTGTCATACAGTACATGAAATTACAAAACAGGAGAATTCCTAGGTTAAACTTTTATACAATGAAGAAAAGTCTTCCCTAGAATCAATATTAAATTATCAAATGACTACGGTATTTACGTTTTTCAACGACGGTATTAGTTTTTATACTTACTAGTTATTAGTAGTTAGAACATTACATTTTTAAATGCAAGGTGATGCTGTCAAAATTTTTTTAGGGTAGACGAGAAATTGTCATAGTTTCCAGCACCATCACTGACAAGTCGGCCAAATTTCAAACTTTAATTTTGGAACGTCAGTTGGGCGGCCATAACTCTTTTTTTGAGACGTTTTCGGAAGAAGTTGAAATTTGGTATTTTCAGCATAGCGTTGTATCTTATTTAAAATGAGTATTCACTCCTTTTACCTGCTAGTCGGCAGCCTCGTTTTCTCCTATTTTTCACTAATGAGCACACACCACTATCATCAGTATTTTCACCACCTGTTTTCTAATAATAAACATTCCCCTCACTTTGTTTCCATATCGATGCATTTTATAGAAAATGTTCCCCCTTTCTTTCCAATTAGATTCACCCTCTGATTGCTCTTTCTTGGAGGGAATGTTCCACAATTCCCCATCATCTTATTACATATTTATGCAGATTTTATAGCATTTTAGTGCGCTAGATTTTTCATGGGATATTGCTATGCAATCACGCTCTAACTGGATAAAATTCTCAGTTTATATAATGTTAAACCCTACTGTGTGTAAAATTTACAAACATAGTTGAATACATTGAATAAGTATGAACATTTTTCGAGGGATCTATAGAAAATTGCCGGCTGTTCCTAAATAGGGCCCTTTCACTGGTCACCAAGTTCCTGTTCATGCAATTCAAAAGAAATGTTCAGCCCCTCAATAGTCGCCCGCACCACAAAATTGAAAAGCGATCACATAGTTTACTAGTCGAACGTTTGAATTGAACATATTTGGAGTATTTTAAAGAAATTTCAAGTCCACCAAAACATATGCCAAGGGCCACAAAAATTTCAATTTTCCGCCAATTTTTTTCTCACGAAAGTTGAATTTTCTCGAATTTCCGATAATATTCGATTTATTTGAAAGTTATTGAAGTTTATATTTTCTAAAACCACTTCCACAATAACAAATATTAATAGATATAATCCAAAATTTGAAATTCCCATGCAACACCTCAAAAAGTGGCTCGCTTAACTGAGTGCTGTCGCGGAGCACTACCCTTGCATTCTTTTCCCAACGGAGTCATGAACATACGAGCATTAAATGAGTAGACGACATGTGTATACATAGGACCCCCCACCACATGTTCCTTTTATGAGTAGACATGTCATACACACAATGTCTCTCCTTTCCGATTGGAAAATTAAAATCATATAGGAGCGGGGGGGGGGGGGTCTTGACATTTCAATTATTACCCCCCCCCCCCCCCCACATCCGTTACGTTGCATTTTGGTAGGCTTGGGGCCGAATAAGTCTCCCATGCAGGCGTCAAAACGTCTGCGGACCTACGCCTGCACGCCGATCGCGACAGCTGTACAGGAACCCGAAAAGTGGAACGCGGCTAAAGAACCATTCGCACTATGCGGTGTAAACACAAGGTTTTGATTTGTAGTCATAGTGCGTATATGATGCGGGACGCTGACAGGTAGGAGGCAAGCGTTCAACCGCGAATGCACACCATGGAAGCGCTAGAGCCTAGTTTTAGATGAGTTTCAGCATTTTTGATCTACAAGATTTTGAAAGTTTTACAAAAAGACCAAGATTTTTTGTAATTTATGAAGAGATTTTTCTACATTTCATAAACCAGCAGAGTTGTTTTTTTGGTAATTTATCATTAGCGCGTTCGCGTCATGAAAACAAAATGGCGGCCGAACTTTGACAGATGGCTGAATTTTTCGAATCGAACAAAAGTCCGTAGCTATAAAGCACAGGCCTACCTTGGTTTTTATTTGCTTTTAAATGATATAGTTTTCTAAAAAAAAGTCTATGGCCGAATTTTTAAATTATGAATAGGGGCTATTTCAAAAAAAATTTGAGGCCAACCTACTCTACTCAATTATAACTTGCCATGGCAGAACTTTTGAACAACTATTACAACGTTTTCAAAAAATTGCAAGTTAATTTTTTCGAATAAAGGTTAAATGTAGCCTAGTTTCTCAAAACAATAAGTGAATAAATATCGATGACCGAAGTTTATATTTGATAAAATAGTATTTGACCTAGAACTTTTAACTATTCTTCCAATGTCTGAAGTCTGGCTTCTGAGAAAAAGTTCGTGGCCTAAGTGTACCACGATGGTCTAGTTATCTCGATAGCCATAGCCTAGTTTTCTCAAAAAAATCTGGTGGGTTCCTGTATGTAGGCTTGTAGGTATTTAATTCTTATCTTCCAGGTATCTATTTCTACTTGTAACCAGGAGCAATAGTTTTGAATTCCCTCTCCCTATTCACGCTTCTCCCCTCACACTCGTTTTTGGTATTCTAATGTTCTCACGAAACTCCTCTTCCCAATCTACCCCCATTTCTTTTCCTCTTGGAGACCTGTCTCTCTCTCTTTGTATTGCTCTTTTACGTCTTCGAGTAGGCTTTTCCTTAAGGAACTTGTGTGTGTCTTGAATCATCATCGCGTTTACGCTCTCGTTCCAATTCCCTGTTGCTATTTTCTTGGAGACATTTGGAAAGTTTCAAAATTCCTACGTACACCTGCGAGGCCTCAAAATCTGGTTGTATATGGCATGACATTGAATTTCTAGTGCACACAATAGAATTTTCCGGGAAATTCAAATTTCGCGATCTGATAATGACTGAGGAAAGACTTTGGCGGAAATTCAAATTTTAAAAAAGTAGGCGGGAAATTCGAATTTCGAATTTTCTAACCTTTTTGGCCTTGGTTTCAAATGTTCTGAAAAATAATTTTGGAGCGAAATTCATATTTTCTCAGAAATATCTCAGAAAATTTGAAGTTTCTCCCACTAATATTCTTCTCAAAAAACAGTTACGTGACCTATTTATGTCCTATTTATTGGTCCATTTATTACGTGGCCTAGCGAAAAACATTTTTTCCCCTGCGATCATTTGAGATGGCGTAGAAAACGCAGATCCGTTAGGCCATCAGGTTTACGGGTTATAGTACAGCCTCTTGCAGGGGACAGGTTCAGAAAAACTACAAATTTAGTTAATTCCCTACCTACTCTTGCAAATCAATAACTAACCCAACTGTGTTTCAATCCGGGGAAATTTATTCTTAGAAAAAGTATATCTCCGCAAGTACATATCCCTCCTTCAAAATAATAATAATGGGAGGCTTCTGCTTCTCTTTTTTTAGACCAAAAACTTGTTGCACAGTGCCCTAATATGTACGGTCGTTGAGTTTTGTTGTTCAATAATATGTTGACCGTAATTCGCGCATCTGAAGAGGGGAGGTGTAAATGCTGTGTCTAAATGTTGCTGTCACCTCCAAGTGGTACAGGTGGCCTAATTTGGGAAAACTCTTCCACGACTATATTTCTCAAAAAATTACTCATAAAATTTGATTTTCTCACATATTTCTCAGAAATATTTGAATTCCCAAAATTGTTTAAAAAAATAGAATATCTTGTCAAAATTTTTATCAGATTTGAGTTCCACTAAAATTTTGCCGAGCGATTTTGTTTTCCAACTTAAAAGAGTTTTTTTTTAATTTGACAGTGAAAAGTTATCTCGGTCAGTATGCTTATACATTACAGGTGGCCTAGGTCGCATTATACAAGCCACAAATCTCCCAAAGGGGTATTGCCACACCTAATTGACACCTCCCCGGGGACCTTTGAGCACTAAGTATGGACACCCACCCCTCACCTATCAGCTTAATAGCTGCCTTTGACCGCTAAGGAGCATACCAGCCATATGTTTACTTAATTCTCTCACTCTCTCTCTCGGCTTCTAAATTGAATCTCCCCCAGTCACGCCTCTCGTTACGTGAGGAGTGTTCAACATGTTCCATTCCCTTCTCCGATAATCCGTGTTTTTGGTAGGCAGGAGCGTGTACTAGTAGAGGACATTTGTCGCTTCTTGGCCTTTCGCCTCCATTTTCCTTAATTTGTGACTTAGAAAATCGTAGAAAAAAGCATTAGTTTGTAGGACAACTTTTTATACCTCTGAAAAAAATGAAACTCGGCCACCGACTTTGTCTGTCACTTTTGTGTAGATATGATCACATGCTAAACTGTCGAACCGATGAGGTCAGGGTGGCTGAGTTTGCACTTTTGCGTGTTCTATACCATTTACAGAAGCTAGTCCCCCCGTCATTCTTCTTCCAGCAAAATGTTTTTTTTTGCCTCAATAGCGGTGTCTCATCAACAGCACAGCAGCCAGTTCATATTATTTGTTTTTTGTTTCGTCTTTCGTCTTTTCGGAAACGCTCTATTCTATGACAAGGTGACGTCATTGGACTCGTGGCCTAGAAAGTTTGGCAAACTCTTCCACCATTCGATTACAGGAGCCTCAAAGCCCCACATGGCTAAATCTTGACATTAGAAACATCCATTTTGAAATTTTTCGAAATTGGTGCAACCTAGCGACCTCTAGAACTTCTGACCTAGAAGAAAAAAAACCTCAAAATGTGGACTAGAAACTTTTAAAAACTCTTCCATCGATTTTGTTTTGTGGCGGCGGACGTTTTCCAGTTTGGCTTTTCACATAAAAACCAAAAAAAAACAAGACGTAAAGCTGTGAAAATGATTAGTCACAAAAAGAAGAAAAAAGTGTCGTTACTGCAATTTCATAGATTCCTTCTTGGCTTCTCACGACACGAGGGGGGTAGGGTCTAATTGGCACCCCCCCCCCTACTGAGGTGAGAGAGCAAGCTTGAGACTCACCCGTCGCTCTTGTTTTATGCATTTTTGGCACAAAGTGAAGTGGGCGAAAATTGTAGTAGCTGTGTGTGTGATGTGTGTATGAGCATTTCGATTTTTAAAATAGTTTTTTAATGTACCGCAGGCCACGTGGGTTAAAGTTTTTTTTCATAAAAATAGGATTTGTTTTCTTGCAGATAAGTTTTTCGAATTTTGAAATGAAAAGGATAACTGGGAACTCGGAGAAAAATTATGTTTTAATTTCCAACTAGGCCACGTACCAATGACGATGAGCAGTCGTTCTAGATCACAAGGTCATCTAAACTTTTAGGAAATTTAAAAAGTTGGTGATTACTAGAATTTCTAAGCCACGCCGCATACACCGGCGCGTAGGCGTTTTTACACTTTCTAGACTACTAAGATTTTCCTAGGCCACGTCCAAATCAGGGCTGTTGCAAAAAAAAATTTTCGACCAAAAAACAAAAAACAAAAAATTTTTTGGTGATCTAACTTAAGAATAAAAAACAAAACACAAAAAAACAAAAAACAATCGCAAAAAAAATTCAATGTTTGATATTGAACGGGACAAAACGGAATTTTTTCGTGAAATATTCTGGTGAATTTTTAATATTGAAAAATTGAACGAACAGAAGGTTTCTTGTTAGCTTTTTTGCTGAATCAATTACGTAATCTATTTTTTGGTTGTTTTTGGTTTTTTTTTCTCAAAACCAGCGATAAAAAACCAATCAAATCAATTTTTCCCAAACATACCAAAAAAAACCAAAAAAAAATGCCCAGCCCTGGGTCCCAATGTACAGGTGTTGTGGTGTGTGAGCTCTTAGGCCAGCTGGACTTTTCTTGGCCACTTGTAAATCAATAGCTTTTTTTCGGTGTTCTAGGCCACCTGTCACGCCTAGACCATTGACCTAGTAATGTTGAATAATAAGTCCAAGTACTCACATACCCGCAAATGCACATATCTATCTTCATTTCGTGATCTTATCTCTTCATCTCATCTTATTTTCCATTTCGGTTTACCCTTTTTTTCTCTATGAATATATTTTTCATGTACTCGCTCTTCATTCCCTCTTTGAAAAGCAAGATTCTTTTACACTTATTTTTCCTTAGGCAGTTGTAAAGAACTTGTCATTAGAACTTTCAACATCAGAGTACGATGGCCGAATTTTTTCTAGGCCCACGGCTTGGGAGCCAAACATGGCTAAACATTCACTAACTTCCTAGGTCATCTAGAAGTTTCTAGGTCTTATGGGTGAAAATTGGCAAATGACAGAATTTTCTTAAGTAATAGTTGAATTTCCCGCCAAACCGATTTTTTTTTGATAACATTTAAATTTCCCGCCAAAAATTTTTTGAAACTAAATTTTATGCCACACTTTTTCTGAGAGAATTTGGTTTCGCTCCCAATTTTTCTCTGAAAAGTTTAAATTCGCACCTGTGTAAATTTTTCGAGAGCTTTTTGAAGTTCCCGGCAAAATTTCGAAAAATTAGACCAACCTCCCCGACCGTCAACTATGATAGAGAAGTGTCCTCTGTACCCTGGCCGAATTTTCAATATATTTCTAGACCCGCCACATATTGCCAGCTAAATTATGTTGTGGAAGAGTAGTGACGTCACTTGGCGACCGCGACCATCGAGGAGCGTGAGGGGAGATGTATCCCGGCCTTCCCAACCCTAAAGACCTCGCTTATCGCTCCTTTTTGTTGTATCCGTTTTTTGGTGTCTCGATTCGTTTTCTCCTGTTTGTTGTCATTTCTGAACTCATCTCTACACTTCTCTCGTCTTCTCTGCGTCTCTCCATCCTGCACACTATTTTTTACCTCGATGATCTTTCTTATTGCGTGTGTGTCACTGACGAACGAAAGGCTGACACAGACTATGTATTGTTTGTTTTGTTGTTTAGAAGTAGTTGTAGTATTCCAATCGTTTTTCACACTACTTTGCATTATTTCAGATGGCTCAGGACGGGCCATCACATTTTTGTCAGGCTCCGCCGCCGCCGCCACCTTCCTCGTGGATTCCAGCTCCATCGCAGGTAAATTTAAGGTTGCAAGCGCGCTATAATGACCTTTTTTGTGCCTACGCCTCCTGGGTTATTGCCAATGCCCCCCAATTCGAATTATTTTTACTTTCAGCCAAATAGAAAAGGAGCCGCTCATCGATGAGGAAACTGTTATTTACGAATCCCGAGCCACGTATTGGAAGGGATGTGAATGAAGGCCTCTGGCTCGTACGACTCGAGTAAATGTAGTGAGTTGGTCTAGAAAATTTGGTAAAGCTTCCACGAAGTAATTAATTAGGGATATTACTGCCGACACCCAGGAACACGTATACCACGGCAAATTTTAATTTTTTGAAAATATTTTGGCGGGAATTTAAAATTTTAATATGAAGATATTGATTGGCGGGAATTTAAAATTTAAATTTTTTGAGAATATTTTGGCGGGAATTTAAAATTTTAATTTTTTGATAATATTTTGGCGGGAAATTTTATGAAATTTTTTGAAAATTTTGGCGGGAATTTAAAAATTTTTTGAAAATATTTTGACGGGAATTTAAAATTTTTATTTTCAAATTGGCGGGAATTCAAATTTTAATTTTTTTAAAATATTTTTGCGGGAATTCAAATTTTAATTTTGAAGCTTGAAAATATTGGCGGGAATTTAAAATTTTAATAATTTCTGAAGGTAATATTTTGGCGGGAATTTAAAATTTTCATTTTTTGAATATATTTTGGCGGGAATTTACAACAAATTTTAAGATACTTTTTTGAAAAGATTTTGGCGGGAATTGAAAATTTTATTTTTTTGAAAATATTGCGGCGGGAATTTAAAATTATAATTTTAAAATATTTTGGGAATCTAAAATTTTAATATTTTGAATATATTTGGCGGGAATTCAAATTGTAATGTTTTGAAAATGAATTATTTTGGCGGGAATTTAAAATTTGATGTTAATTTTTTGAACGGAATATTTAGGCGGGAATTTAAAATGGCTTTTAATTGTTTTGATGAAATTATTTTGGCAGGAATATAAAATCTTAATTTTTTGAAAATATTTTGGCGGGAATTTTAAATTTTAATTTTTTGAAAATATTTTGGCGGGAATTCAAATTTTAAGTTTTTGAAAATATTTTGGCGGGAATTTAAAATTTTAATTTTCTGAAAATATTTTGGCGGGAATTCAAATTTAGATTATTTTTTCTGTTTCTAAATATTTTGGCCGGAATTTAAAATTTTAATTTTTCTGAAAATCATTTTGGCTGGAATTTAAAATTTCTGAGAAAAACCTTCGTGTCGAGGCACTCGGTGAGACCCTTCGTGGTGAGACCCATCGGTGACATCCATCGGAAGGTGGTGAAAATAGACCTTCGTAGTGAGACCCTTCGTGGTGAGACCTTTCGTGGTGAGAGGCTACCCATCGTGGTGAGACCCATCGTGGTGAGACTCATCGTGGTGAGACCCTTCGTGGTGATACCATCGTGGTGAGACCTTTCGTAGTGAGACCCACTACGGTGGTGAGACCCATCGTGATGAGACATCGTGGTGAGACCTTCGTGGTGAGACCCATGTGAGACCTTTCCTGGTAAGACAGGTTTTCGTGGTGAGACCCTGCATCGTGGTGAGACCTTTCGTGGTGAGACCTTTCGTGGAGAGACGTTTCGTGGTGACGTAGGACCCATCGTGGTGACACCCTTCGTGGTGAGATCCCCATCGTGGTGATACCTTTCGGCGTGGTGAGACCCATCGTGGTGAGACCCTTCGTGGTCAGACCCATCGTGGTGAGCAGACCCATCGTGGTGAGACTCCCTTCATGGTCAGACCCATCGTGGTGAGACCCTTCGTGCTGAGACCATTCATGGAGAGACGCAGCGTTGTGAGACCCTTCGTGGTTAGACCCATCGTCGTGAGCTTTCGTGGTGAGACCCATCGTGGTAAGACTCATCGTTGGAAACCCTTCGTGGGGAGACTCTTCGTGGTGAGACCCTTCGTGGTTAGACCCATCGTGGTTAGACGCATCGTGGTGAGATCTTTCGTGGTGAGGATTCCCCATCGTGGTGAGACCCATCGTGGTGAGATTTGGTGAGACCCATCGTGGTGAGACTTTTCGTGGTGAGACCCATCGTGGTGAGACTTCTTTCGCGGTGAGACCTCCCTTCGTGGGGGACTCGTCGTGTTTGATATTAGGCGAGGAGCTATGGAGCTGGAGTGGGATAATGTCAAGGTACTATAGGCGTCTTGTGGATTGGCTGTAGGGTTACTGTCAGTTCAGAAAAATTGACTTTGTGCTTTTGAAGAGGTATTGGCTCGAGAGTTAGAGACGCGGAAGCTTCTGTGTTTTTTACATTCAATGTTTGAAAAAGTAATTTCCAACAGTTTTCATGTGACTTGAAAGATTAAGATATGCGGTGTTTTAGGTGTCGAACAATTGAGATTTCGGCAGTCGTTGGCCGCGCCGTGGGCGCGGTCAGCGGCTGGTTTTTCCAGAAGAGGAATAAGAAATTTTTGTGGAAGTTACTAGGACCCTGAATAGAATTCTAGGCCATGTCGAAAAAGGGGCTGGGTGCACGTGGGAACCTTCGAGTGTTTGGATATTTTGGTAAGAAGTAAGAAGAAGGAAGGTCATAAGAAGTTGTTAAGAAATTGACTTTTCTAGAGTAAGAATGACTTTTCTAGAGATCATCTCCCCCTATTATTCACAGCGTCACCTAGTTATCCGGAAAACTCTTCCACCAAAAAATGTGCTCGCGAGTCCAACTGAAAAATGCGTCATAAAACACACGGAAAAGGTACTTGTGTATTACATGCCCTCATTTTAATAGTAGTTTTTTATGAAATAAAAACGTGAACCATAATTTGAATTTTTAGGCTTAGGAAATAACATTTTCTAAGCCTAAAGAGGAAAATGTGTAATACACAAGTACCACGGATAATTTTTTGAAATCTTCCGAATTTGAAATAATTTAACTAAAACTTTCTAGGCCACGATGAAAATAGAAACAATGTGTCCCGATTATGCTGAAAATTTCTGAGCTTCCATAGTTATATCGAGTAAAAAGATTTTCGAGAAATGAGTTTCTAGGCCACCAGAAAAGTTTCTAGGCCATGATCCCTTCTTGATCTCGTTTATCATTAGGATTATGATATTTTTTCAACGATTTTTTAGGCCACCAGGCGCAAGGGAAAGTCCGTGTCAAAAAAAAAAGAAAGGGGGTATTCTGCGTTTCCTCGTCACGTAAAAATCCCGTTGGCCTTTTCAATCAAATTTCTTCAATTTTTCGCATAAAACTTACCTCCGGCTGTGACAAGCCTCCTCCCGTCTCCCAGTATTCTCAATTAATCATCACCCCCAATGCCCTCATCCAACTACAGTATCCCTGCAATCCCCGTCTGCAAATATGTGCCGAATATGTCATACTTCTACGTCAAGACTACGCAGTCAAATCCGCTCATCTAATCACCGTGTCGATGCTCTTGGGAACACTGCTCTGTGTGCATCGTGTGTTGTGGTGAGCTCTTTCTTTGTAAAATTCAAAATAATAATTAAAACTTAAAAAAGAACGTGACTGGAATTTGCAATATAAAATCGTGGCTCTATACAAAAATTCAAGTTATACTTCCACATTGTCGTTCCAAAATAAAAAGAAATAGCCAAGCCTACAAAATGGGCGGCGCTTTCATAGCCACGTCCATTTTGTGGGCGGAGCATCAAACTTTTTTCAAAACCCTACTATAAGTTGAACACGGATTTCTGGCTTCCTCATCATAAATCGACAATGGCTGAGTTTGACGAACTAGGCCATTTTGGGTCGGAGACATTTTGTGTAGATTTACGGCGTGTTGCGTGTCGCGTCGCTCGTTTTTAGTTGTAACACTGCTTGTGCCGTGTACATGATTCCAGGTTTTCTCCACGCGCTGTCCCACGCGTTGTCAATGAGGAGCGTAAATTCAATGCGAACAGAAGCCCGTGGTTGAAGTTTGTTTTCAATACTACAGAAGATTTTAAAGAGGAACAAACAGCTCATGTTGCCTGGCTACAAAATGGGCGGAGCGTTGGAGGCGTGGTCTAAGAAGGTGGTCATCGCCCTTTTCTTTAAATACTTGTTCTGATGTACAATAGAGCGCATTTACATCAAATTAATAATTAGTTTTTTAATTTTTCCAGATGGCTGGAAACATATGTCGACTCGAAAAATGGGCCCATCACCACGTTGCGAACTATTCGCGGCTACGATTATCGACGTGAAATTCGGCATACTTCAAATGAAAACATTACATGTTCCACACGTGGATCGATCATCTTGTCTGCACAATTTATGGTGCTTTTGATCAATCGTATTAATTATGATATTTTGGTATTTTACGATTCGATTCATTCAGGAGAATCCTAGTTAGTCCGCTCTTAAAACGAAGGTGGGCGAAGTTTTCTGGTGATGACCTAGGAAATTGGAAAACTAGTGCCACCCTCGCAAATGTGGCTAAAATAAATTTGACTAATGGCCTGCGGCCTAGAAAAATAAAAGTAGACAGTATATAATAAAGTCTCATCAACCCTTTTGGAGAATGAACTGGAAACCCAAATTTTTAAGAAAATATTGACCTCCTTTAAAACGGTGGCCTACTTTTTCTGATGGCCCTAGGTTTTTCGACCAAGAAGCCACACAGCTCCATAGTTTCAGGAAAAAAAATAAAATAGGCTCCGCCCACATCTTCTTGCACGTTGAGTTAGAATATATACGAGCCATTTTTGCTAAGTTTTGAATGTTAGCTCCGCCCACATAATGATTTGAATTTCCCGCCCATTTTTCTCTCAAAAATATGAAGTGCCTGCCAAATTTTGCGAAAAACTCAATACTTTCAGGCTCTTCGCGCACGACAAACAGCGTACACGTGGAAACGGCTTGGCTAGTTCAGCGGAAGCGGGAATGGAGACGGGCGGTAGTTCGGACGGATATTTCTCGCGTACACCTGTCTCATCACTTTTCGACATAAAAGTGGTCTTGTGTGCCAGCATGTTCTTGGTCTCGTTCATTTTGGCCCTTCATCAGTATAAGTGAGGGCTTTTTTGACACGTGCCCTGGAAAATGATAAAACTCGGCCACCTATTTTTTCAGCCGAATTTTTTTAGTTTTTAGCGGTCACACGGGCTTCTCATTCTCTCTGCATTGCAGTTTCGCGCTCCATTGGCACTGGCTTGCCGGACAACGTAGGAAACTCGTGTACTCCACACGATAAAATTGTTCAGTTTTACATTGAAAACCGAGCCGTGACAAAGGTCGCCGTAACTGTACCCCGGCCGTGGCCGGTGAGTCAAAATGGCATAGTTCGGCAAATTCTTGAATTTCAAAATATGATGGAAGCCTGATAGAGCACGTGCGGTGATAAAAATGAATAAAGTATCCTGTTTTTTTTTCCAGAGGCGAGTCCACGATATTCCGATGTATTTTCCGATTCGCTTTTGTGAGCTCAATAAGTATCGGCGCGATGATCAAAAAGATATCAAGTTCTGAGTGGGCGGAGTGTATCGGCGGGAAATTCAGGCAACTTTGATCTTTCAAAATTTTCATAAAAAATTCGCGCAAAGATCAAAAACTCAAAACTTTCGGTTAATTTCGGCGCGAGATTCAAAATGTTTTTGGGAAATTTGGGAAAATCTAAAAAACGTTTAGGCGTTTGAAATTTTTTTAATTTTCAGAAATGATCCTGGAATGGCTAATCGCCGCGGTCTCCTGAAGTCTTCATATCACCCGTTAACCGTACTTCTGATATGTGTATCCGCGTGGCATCCTAGTCATCTACGAAATAAACCATTCGCTCAGTTACAATTTCTCATTTCTTTACCACTTTCGGGTTTTTTGCAAATTAAAAAAATTTCGATATTTTTTTTGAAATTTTAATTTTCCAATATTTTTATTCCACAACTCAGGTTGCTCAACTGTGCCTAAAATAATTTTTATTTCTTTGATTTTTTATAAATTTAATACAATAAAAAAATAATATTACACATTCGTGAAACACGGAAAAAAAATTCAGCCTATTTACATTAAAACACGTGGAATTTGAAATTTTAGCGATATATCGATTACCCCTTCTCGGAAAACTCGTAATAAATGTGAAAAAGGCGAGGAAATTGGAAGAATTAAATGCGGGTGTGGGTTTCTAGAAAAAAAAAAGAAAGTAATTAAAGAAAAATTCAAAATAATGCTCCGGTGTCATCGTGTTCCACAGTGGTTAGATTCTGGTATTTTGTGCTGATGGTGTGCTCTGAAATTTAAGAAAAAAGTAAAAAATTGAAAAAAAATTTCTTAAAATAAAAAAAATGAACTTGTTTTTAAAATTTAGATTCAAAAATAACAGTTGATATATTATTCATACATATGTTATCAATTTTAGAGAAACTTCAATTTTTCAACTGACTAACGTATACAAATCTACTCGAAAAAGACCTCGGAACTAGTTTCTCACTTGGTGGCCTAAAAATCGCCACTAAAACCATCGACCAATATGAGTTTGTAGGCCTCCATATGAAAAAAAAACTCGATCGGGGACTAGGTTTCCACATGTGGCCGATTATCAACTTCAAATGTTTTGGTTACCTAGATTTGTCAGAACTTGGATTACTAGTCCACTAAAAGATTTTCGGTGGCCTAGAAACCAAATTTGCGTGAATTTTTCATAATTCTATATCAATTGACTAAACCGAAAATAATGCGATGCTTATATTTCATCAGTTGGTGACACTATCCCACGTGGCGACGGGATTACGGGCGACCGTGCCATTGATTAGAGCCAAGGGAATTTTGAGCATACTCGTCGGCGGTGCACTTGGCGCAAAAATTTTTTCTCTTCCGTTAAAGACGCATGGTGGGTCTTGATCTAAGAAATTTCGTGATTATTCGAAAATTTTTTCCTTGTCCTTATTGACAATTTGTGTTTTCACAAAAAAGGCGGAAGTCCTAATTGCCAAAAATGTAGGTTTCTAAACTAGGCCACGAAAAATAATTCAGTTTTTTGCTTCAAACATCCTGCTTTTTGTCCAAATTTCGCTTTAAATTGGAAGTGGTGTCCGAACATTATTAACAAAAGTTCAATTTCTAGAGAACATCACTTTGTTCTAATGGGTATTTCCTCACATTTGGATTTCTAGCCCACAAATAACGTTTTTATTTCATATTTTTATAAAAATCGAATTAAAAGTAGATGATGACCTAGTTTTTATCAATAATTTGGGTTTCTCGGCCACCAACTTTTTAAACATTTTCTTAATTTTCCATAACCAAAAAAAAAAAACAAAATCGATGGCCTAACTTATTGCGCTTCCTAGGCCACCAATAACTCTTTTATTACTGATTTACCTCACTCTATGATGTCGATATTTCTAGTCTCGACTATCGCTTCCCACAGCCATCACACTCAAATGCTCCATTCGTCTCATGAGTGAGCGAGTGTTGATTGAGCCCATGCTTCGGAAAGTTTTCTCGCAGTCCGTTATAAGGTTGGTTCCATTGTTGGGCTGGGGTGAGCCGACGACGGGGCCGCCCGTATTGTCGCCCTTTTCCCGGTTTTTTCCGGTGAAAAAGTGTCGAAATAAACGCGTTATTGTCGTCTAATTTTGGTACATTCGCCGACATTGCGAGATTCTCCTGAGCCACTGTGACGTGTAATGTGATGGTGCTGATAGAGGTCTGGTGGTGGCTGAAAATGGGGAATATTCCCGGCCCCGAACATTTTCAGAAGTTCCAGGTCGAATCGTTGTTGAGCATCCGCGTCGACTACTTGATTGAGGGAGACGGTTCAGTTCAGGAGACTGGTGGATGGCAGTTTTATAGACATAAATCCTGCAAAAACTCAGGTTTGTTGCTAAATTTTTCAATTTATCATTCTCATTTCCGAAAAATTATAGCTTAATTTTAATAGATTTTTCGCTTGATTCTCAATTTCTCGAATAGTTTTGTGTCAATTTTTTTTTGTTTTAAATGTAAAACTACGGTATTCAAAGGGAGGAACACTAATTTATCCCGATGGGGCTCGCGGCGAAAACATTAAGTGCCTTAATTAAGCCTTGCGCCTGGAAGGTAACTGTAATTTTTATTGATTTGATCGATTCATTTCATTCAATTTGTGGTTTTTGAAGGTTTTCAACCCATTTTGAAAGCTGAAATTTTAGATTTTTATTTCTGACAAAAAAATTTTAAATGTTAAAATAATTTTTTTTCTTTTTCACACAAAAATTGTAACCGAAAATTCCGAAAAAATGCAATTTAAACAGCTCTAAAATATGAAAATTAACGCGATTTTTATCATTTTTTGCTTCAACTGACTTCTGGCAAAAAAAGGAAAATTCAGCAAAAATCAATTTTCCAGAAAAATTTGATTGATTTTTAATTTTTCTTAATCCGTCGTCCGTACCGTATGTAGCTTCATCTAACACCTTATCCAGCAGATTGCTTACATCTAATTGCACGTGGTTGCAGTTCTGAAAAAAAAATGTTTTTGAGTTTTAGAAAACTTATTTTGTAAATGTTCTAGGTGGGTTTTAATTGTATAATTAAATCAAATTCTTATTCAGTTTCTCCCATAAATCGCTCCAATTCCGCTTCTGATTTTCCTGAACTTTCTCCACTTGCCATCACGGCCAAATCCTGCTGCTCACGCAAAAATTATTTGACAAGACACGTTAGCTGGTTTACATTATAGATTGCTGGCATTTTTATAATCTGAAATTTGAAATTAAGGATTTTAGTTATTTCCGCAAAACGTAAACTTTTATCGCTGGGAAAACTCACATTTTTCGAACTTCGCCCCAATAATCGTCTAGTGAATTCTTGAATAAACCGTTTGCTTTCTTGACATAAAATTCTGAAATACCTCATTTCCCATGAATTCGCCCATTTTCCCATGGAAGAAAACCAATGGAAACACGGAAATATTTGCGCACAAAATCGATGCTGAAGTGTCGTCGGACCCAGTGTTTCGTGTGCAGTACACGCCTACGACAAATTGCGGACTTTTTTGTTATTGGAGAGAGTAGAATAGAGAAGAAAAAAGAAGATAAAATGGATAAAAATTGCGCGTTTTTCTCATTGTTTTTTCTCTGAATCTCTCAATTTTTAGGTTTTCGGTCCATATACGTCCCGAGTGGAGATGAAGCGATAAATTTTTCGCTAAAAGTTTCTTGCCCCTCCAAGTCGCTTATTCTTTTTTAATATGAAAAAAAAATGCTAAGATGCTTATCAAACCGCAAATTTTTTATTGGAAAGTCCCCAATATTTTGCAATTTATTGCTCAGTTTAAATTCAAGGTGCCATTCTGCAAAATTGCATTCATCTTCATATGTTACATTTTTTAAGTAAAAACTTGAAAACTCTGCTTTACATAATAGTACTGGAATTTTTCAATTTTCAACATTCAGGATAATCTTTGACCATTTTTTATTGAAATTTTCAATAAAATATTTAAAAGATGTGGCTTTCCAAGCAGATTTTCCAATTTTTCCGAGTTGAGTAACTAAGTTTCAACCAAAATGATGTCACAAGTCAGAAAATTTCCCTAAATTAAACAAATGGTGAAGAACTTGATATAGGATTAGAACAAAGATTGAGTCTTGAGATAATTTCGGACATTTTCGGAAAATATACGTTTCCTGTAGTTTCAAATAGGCAATTTGACTTAAGGTTGCTAATAACATTAAGAAAAATCTATAGTCTCCACCCAATTCAGATTGGTTTTGTAGATATTTTCAAAATATCGTGTAACGAAACTACAGTAATGCCCACTTTGAAATTAAACTTAATCCTGTATTGCTTTTGTCCATCTACGGGCTCGATTTACGAAATTAAATTTAATAATCTTTAATCTATAGAATATTAAAATTAAGCTCTAAAAAATGAGAATATAATTACGTAGAAATGAAAAATGGAATCTCGGTGTAAATATCCGAAATAAATTCATTTAGAAAATCGAGCCCGTAAATCGACGTTACGAAGAATTACTGTAGTTATCGCTACGAGATATTTTGCGCGTCAAATATGTTGAGCAATACGCATTTTAAGAATTTACTGTTATCGTAATAGTTCAATTTCGAGATAATAATTCCAAAAACAATTGTGAATTTAAGGTTTTTTCCGTAATCTAAAATTGATTATCACTACACTGGACACTGTTCAAACTTAACCATTCAGAACTTGTATAATCCATCTCGGATAAATTGTTGGTGAGACAAAGTGTAATCTGTTCTAGTTGGGTCACACGATCCCTTTTCCACTCACATCGCTTACCCACTCAACACTATAGACGATACACTCACACAGGAAATAGTATTGTTTACCTGTTTTCTTCTGGACACTGTTTATAACTTTTCCCTGTATCTCCGTTTCTCTACCTTTAAATTTATCCAAAATTAATAATTTTTTAACTCCACATTCAATACTCATTTAATGACCGGTATTTGCAGAAAATATTTTATTTTTATTTAGTTATTACAGGAACAGTATACTCTAGGAATTCGTATTGCACAACAGATTTGACGCGTATCACGTTAGCTGGCATAATATTAGGCATTGTCTCTACAATCTTGTAATGTATAACTGACTCTTTGAAATAAGTTTGTAAAAATTGTGAGTAGGAAAACATTGTGCATGGATGTCGCGTTTCGCGCACGCGCTAGAGTAGTCATAAACCGCAAGATTACTGTTGTTCTCGCTACGAGATATTTTGCGTTCGGCGTCAAATATGTTGTGCAGACATTTATGCATTCCTCAGAATTTTGTGTTCACGTACTAATAAATTAACTTGTTAAAAGATATAATAAAAAGTGTTAAAAGATACAGAGATCTTTTCTCCCTTCCCTAATATGTTTAACTGCATATTCAATCATCTTAAATTGTGCCGAAAATTTTTCGTTGTCCAATTGTTCGGAATTTTTTCGGTTTTGCTCGAAAAAACCAAAAAGCAAAATTTTATAAATTTCCCTGGTGTTCAAAATTTTCCCGCAATTTTTACCGATTTTATTTGCAAAATATTTTTATTTATTTGAGTTCCCCCATGTCACACCGTTCGATGTTGGAGAAATGGAGATAATTCCGCTGCATTACGGAGCACGTTGGGATTTAGGACTTGACGTCTTGGCGAAAGGTTGGTAGATTTTAATTTGTTTTTTAAATCCTGGCCTTGCACATTCTAGCAGGGAGACGTCACTCTGAACATTGTTCAACATATGTAAATTTTAAATTCAAACTACTTAAAACCCGGAAATCACTTTGTGTCAGATACACAGAAATAAACAAGTTTTACCTTTTAAAAAACTTAAAACCATTGAATTTTTCACAAATGTTCTTTGAGACTTGAGATAATCTAAATCCCAAACTTTTGGAAAAAAACTGAACATAGGTAGCCTAGAAAATGAAAATTTTCAATAGTTGTGTTTTTCAAGTTCAAAGAAAAAAAATTGAATTTTTAAATCGTTCTTTTTTTGGCTACAAGTCAATAATGATATTATATTTAGTTTTTAAGAACATTACTAAAATGAGTGCATATTTAAAAAAAGTGTTTGTTTCGGCGAAAACAACTATTAGTAATTCCGTGCACTGCAATCATCAGATTAGTGAGGAATTTAGTTCTATTTTTTGCTTGTTTTTCTGTTTCAAAGTCGTTTTTTCATGAAAAATAGACCTTAGCTACAGGTTCTTTTGAGAAATCCCGCATTATTTCAATTTTCAATTTCATGATGAACAACGTTTTTGGTAACACATTTAATTCTAGTAGAATATTATCAACTTTTTCTCTAATTTTTCAAAATTTACACTGTTCCTAATAGTTTTTCTGATCAATGAAGGACTACCATTTTACGACAATATTGCCTTCAATTTTTTCTTCTGAAAATTCGAAATTGATCTGAATCAATGGTGCCGGTTTTCTTATTTCATCCCTGAATAACGAAATTGATTTTTATTTATTTTTCAACAATTCCCGGAAATTTCTCTATAAAACAAATGAAGTGAAAATCGATTTTTTTACTTCGAAAGTTAAACATGAAATTCGATAAATTTAATCTATGATCTTTCAAGCTCCGAGTTTGAGGCGGGATGTTGATAATTAGAGATATGCCGGGGGAGAACACGACTCTCCAATTATATCTTCGGTCGAGAAATAATTTTAAACATCAATACTATACTAGATTCTAAAGAAAACTAATTTTTTTCAATAAATAAGTGTTATTATTATTCAGGAGAATTATTTTGCTTCTTGCTCGAAAGAAAATAAATCCGAATCAAAAACCGACGCATTTACAAGTCCTGAATTTTGTAGTTAGTCAGAGATAGATTTTTATTTAGCCTCAAATTCTAAGAATTCAGACCTGGCTATTTGCCGAGCCTAGAAAATAGAACAACTAGGCCACCGATCGAAGATTTTGTGTTTTGCCGTTGTCAGGCTACTGGCCTAACTTTCTCTATCTTAAAAGATTCCCAAAGTCAAACTACTGGCTTTCCAAAACCTTAATGTAATGAACTTGTGATTCCAAAGATCTGATGTCAAGAATGTCCATAGTTCATATATACTCCAACGACACTTTTGGAATTTATTTTAAATCTTCATGGTTTTCAAAAAGAATCCACCAAATTATTAAGCAACGGGGTTTTCCTTTCTAAACAATTGTGTGACACAAATCAAGGAATTCTCCGTCACTTTGTACAATTTTTCTAGTTTTGGTGATTTCCCCTGATGAGCTCAACGCCAGGCGGAATAGCTCTTTCCATGCAGGCGTTAAAACGCCTGCCTGCCTGACTTTAAGGCGGCCTCCGCCTGCCTAACGCTTTAGTCCTAGTCATGTGCTAAACCATACATGAACTATTTTTCTAATTCTTAGTGTCTTAAAATTGATAAAAATTAGGAAAATCCTTTTGAAATCTGAACTAAATTTCAAGTAAATGGGCGGCAAACTTTGTATAAAAAAAAAAAGAAAGCTCGCCCACCACTTTTTCAAAATTTCTTGCCGCTATCTTGACTCGAAGGCGCAAAGCCCTAAAACTTTAGAAAACATCCCCGAACAAAAAAGTAATACATCCTTCAAAGTGTATGCCCCCCCGTGTATATGTCACCTGTAGACTCGTCGAAAACGTTTGTGCCACCCGGCTCTTTACCTCGTCTCCTCTTACTCATCATTTTATGCCCCCGTAGCTTTACCGTCGGCTAATGTGGTTCTTAGGGCGTAGGACGCCATTGATTTTGCTCTTTTCAAATTTTAGAATTTATTTCCCGGTCTGATTTCACTCAATTATCAGACACCACATCTTAGTTTTTTGACATGTTCAATGCTGGAAGCAATTTTCGATTTTTTTATCGACCATGGCCTACAGGTAAATTACGGGTCAATTTCCTGAAACGGACGAACATTTTTGAAAGCAAAACAGTTAGTTTCGCTAGAATTTCTGATTTATCGAAATAAAATCGGGCACACCGAACAAAAGTTCGTTTGTGTCAGGAACTTAACGGTACGCACTTTTGCTCGGACAAACCACGTGTGGCTGATTCAAAAATGTCCAACTAAATTGACGTCTTGAAAACATTTTTTACCTGAAAACCGCTAACAATGTCAGGTTAATCCGATTCAAGCGCTATTTTTATAAATCCTGAAAGTTTAAGATTCCACACGTTGTGAGGGAAATTGACACATTTTTAGAAAACCTGACCTCACGGTTAATTTTTAAACACTTCGAGGGCCCAGAAATCCTAGTTTTTTTTCGGGTTATTCATAGTTTTTCTAGAATTTAATTCCACATCTACATTTCTAAACAAAACTTTTGAAGGTCCTTGTAATTCTTCTCTAGTTCTTTATTGTTATGTCTTCTCCAAACTAGGACGAAGCGATAATTACGGGGTTTGTGAGGGAAGTTTGTCGTCGGTCCATTTGTTTTGAAAATGAGAATCGGAACTTTCCTGTCTCCCGTAGAAACCAATTAAACGACAACTTTTTTTTTTCATTTCGTTCATTTTGCAGGCATGCTAGCCTCGTCTATTGGAATTGTTTTGTGAATGCTAGTTGTGATTAAAAAATTAATCGATTTTTTTGTAGTATGAGTTCAAACAAGCCGAAAAAATAGATCAAAACTGAAAATTTTATAAGAAAAATTTCCGTATCTAGTTTTCAATTGGCCAACTTATAATTTATATACTCTCGAAATCAAAAAAAAATGTACTTCCTATATTACCCACAAACATCGAAAGGGAAATCCTCTATTCCCGTCAATTATAAGAAATGTGAGAAAATCTTACTCGATTCATGGTTGCTATGAGACAGATTGCAGATGTTTCACCGGATAAACAAGACGTTATCATTACTTTTCAGTAATGCTCGTTTATTTTTCTATTCCATTTCTCGAATTTTGATAGATGTTGTATTATTTAGAGAGCACTAAATTCTAAGAATGCCATCGTATTGCGCAACGTATTTGCATGAGGCACAAAAAATCTCACAGCGAAAACTACATGACGTAATCCTTTAGCTACTGTAGCGCTTGTGTCGATTTATGTAAATCTTGTCATATATTCGTCGATATAAATTGAAAATTAAGATAAATAATAGATAAGCGAAAAATTAATATCGAAAATCGAGATTCCGTAAATGGACACAAGCGCTACAGTATGTAAAGAATTACTGTAATTTTTGCTACGAGATATTGTGCGCGTCTAATATGTTAATACGCATTTTTAGAGTTTTGCCTGATTATGTAATGCGTATTTCCTCTGCATGCAAGACTAACGATTGGTCTGTAGAGGTCAGTTGGCTGGCTGACTTTTAATACTTATGTTCCTTCAAATGTTCAAGTACGATTAGGAACCCTTTCTCTCATTTCACTAGTTTACCTTAATGTGTGTCTTTGGCTAGCTGAGACGATCATCATTTCTTTTGTTTGTATTTCGCAGGAAAATTGTGAAAAAAATTGCAAAAAATTGAGAGCAAGAAAAGTAAGTGCACACCGATTATGACTCGTTGTACCACGATTTCCCCCTTCGTTTTCCCTCTAATTACCTATACGTATAGGATTAACTAAACATGATCCCGGGGATCACCAGTTCATAGTTTCCTTATCAATTTTATATTACTCGTATGCCTTCCTCGTTTTTTTTTCTAAAGCCATGAAAATGTATCGCAGCGGGTCGTAGCAGGAGCACAATGTACTCGAGCTCGTCACGAAGGCCGTACGGCTGGTTCCGCTTATTAAATGGTTAAAGAACTGGGTCTTGATTCCTACCAAATTCATTTTGATAAATAGTCCCTATAGATCATGTAATAATATAGGTTGACCCTACCGTGTTTTCCAGAATAAAGTTTTACAATAAACTTTATAGCATGGGTGTGCGGCAACGATTTGGGCGACTTCCGTTTTCCGAGATCAAATCCGAGTTTGCTGCACACATGAAAAATGTTTAATTAAGATTTTGCGCAAAATGTAGCCCCTGGTTTACACCTTTTTACGATATTGTGAGTACATTCGAAAAGGATGTTTTGATTGAGTATCCCCAAATCAAAAAAGAAAGTTGATGAGAATTTAAAAACTTTTAAAGAACACATTTTCAGGCACAAGGCCGAACGGCAACCGACTACGCGGGTCAGAACTACGAAGAATGTTATGATAGGTTAGATTCTTTTTCTATTATTCCATTCAGAATATTACGAATTAATGCTTAAAAAAATTTCAAATTAATTTTCGCCGAAATCATCTGCGCCTTAGCTCCACCCAGCTCTCTAGATCGCAACCCGCAATAAAGCCCATAAATCAATGGGCAGCTGCTGCATGGTCCGTAGTGTATTAGTCTGTCGTCTGTCCGATCAGTGCGCTCCCGATAATACTCTCCATTTGTTTCTCGCTTTTTGTAAACTATGTGGTCGACAGACCGTTGAAAGTCGTATCAATTGCACTTTTGTAGTTACCGATAAAATTGCCCAGATCGACGAGTTTTCCATAACAATTTCTCTTCCATTTTCATCTAACATCTGTGACCCCGCTCATTAGTGTTTCTCTAGCCGATGCTATTCCAGGTTCCCATGGCAATGTGTACATGTGTGCCTCGTCGAAAGTGAGCCAAAATGCTCTTTGTATTAGGTTCATTCATCCTATGTTTTTTGTCCTCAGTGACCTGCAACTGCGCAGAGTTAAATATTAATTGGCACTGAAGAGAGGCCGCTCGGGCAAATAATTTTACAAATTGATTTATATTTGAAAAATGAGACACTATGTTATTATCGCCGAATTCGTTCTCTGAGTATCGCTGCGTTCATATCTTTGCACAGCTGCTCTATGAACAATTAAAATAATTTGTGGGTCCTGTAACGAAAAACCCGAAATAAGTCTTGCCTATACAGGAGTTTGTGGAAAGTTTTCAAAATTTTTGATCAACGAAGGAATTTGGAGACGTAATACGATCACTAGCAATCTGAATTTCTACTTTTGTGCCCCAAAATGCTTTTTTCATAAGTCCCATTATCCAAAATCCGGCCACCTTGCTAATCATGATGTCCATAATAGGCATTGAGGCAAATCTAGCGCACTTTTTTGTCCGATGAAAGACTTTTTGATAATACCAAGCTTAAACCTTATTCATATTGCTTTTAGTAATCCTATAAGTTTTGTTTGCAGTGGTTCAGAATTGCCGAACATTCCAAATTTTTTGATAAAGGTTTTACATATATGTTGAGAAAATAAACTCAAAAAAATTAACAATTAGTTCATACGTTATTAATTCCAACGAGTTTTAGTGTAAATATATATGTGGTCCTCTATATATTTTGCGTATTACTATTATTATTGATTCCCTCCAAAGCTGAATGTCAGTCTCAAGACTACCACGTACTGCTCAACTGTGTTGATTCCCTAGTATTTTCAAACGAACAAAAAGTGACAATACAGTATACTTTAAACTAACAAAAAACTTTGTCGAGTCTATCGATCAAACTAGCGAAATCCGCCCGTTAAATCGGTTCTGTTTCCCGCCACCAACACTTATTGTGTTTTCATAGCTTTAACTCTTTGACGGAATTTCCTTTCTTCCGATTTTTCAAGCGATATTTAAGCCCAAAACTTACTTCAAAGAATCTTAAAAGGGATTTTTACAACACTCTGGATCAGATTTTATGAATTGTTTCATTCGCAAGAGAAGAGCGACTCAGTGCTATAAATGGAACATTCACCACACTATCTCCACATTTCATCTCTATTAATTCATACAAGGACACTAAAATAATCCCGGCCCACTTGCTCAGACTCTGTCTCGCGGGGGACAAATTTGAATCCATTCTGTCGGTCGACCATTGAACCCCCACCACACAATATGGTTCAGCGGGGGGAGGTCCAGTTTTATGGCTTGTTATTACGTATACTGCTAGGGGAACCCAATTTTACCGGACCCCGTGCGGAATATTCAAATTGGAGTGTGTGTGTGCAAAAACTTTTATGGTCCATGTCCAGCAGACCAGCCAGCAGCTGCTCCGATCAATTGCCGCTTCAACTTTCTCCACTTTCCCATGGGACATCTAACCTTATTTGTCGTTCTTCTAGTTTCTCCTCTTACTTCTTATTCTTCTTCGTTGCCCAAATTGTGCTCGAAGAACTAGAGATCCTGAATAGAAATAGGAAAAGAGCACGAAGACATTATTTATGTCTTGTTGTCCATGGTTCGCCTCGAGTAGTTGATTAGGAGCTTCTCCTTGTTGTCTTCACTCGGTCGTGTTCTATATTTTATGTCCACTCTTGAATTCCTGGAGTTTTCAGTGCCCGCATTTCCTGGTTGAGCAGTTAGAAAGCTGCAGGAGTTTCCAGAATTTGATCGATTTGCGGAGTCGGCTGTCGTACTACTTACTTCCGGATTATAAAATTCTGAGAATCTCGCGTATTGTACACCATATTTGACGCGTCAAATTATCTCATGGCGAAAACTACAGTAATTTTTACGCGAGAAATAGTCGAGGCCCCCTAAATCTAGAGTTCCAAGAGCTACAGTAGTAATTTGTTCTAACAGAATTACTTCCGAACCTTTCTCATTTTTCAACAATTTTTTAACTTGCGTAGCGGAAAATTAGCGCTAATCGCGTCAAGACCCAAAACAAAGCGCCAATTTCATCAAGAAATTTGATGTAAAAGTTTGTGAAAACAACCGTCACTACTTCTGATGACGAATCCCTACTTCGACCCGGGCCCAGTTCGTTAAACATTTTTGAATTTACTGCCACCACATATCTTACTTCATCGACCAAAATTCAACGTGCTGCGATCATCATCTTCATCTCTGTCTCATCATCTCGCCCAAATTCAATTCCGTCACTGCGGCTCGTACTGATTTTTTTTCATTTGTCAATCATTTAGAGGCCAATGTTAAAGACCTCCTCTCAATTTTTTTCTGTCTGTCATTGACCCCTCTGTTGCGAACCGATTCAGAGTTTACAGGGTAAACAAGCTCGCTTTGTATATAATGTTGATTTATGTGAGCGAGATAGTGAAAGAGAGAAGAGTCTTGTAGCAGGAATCTAAGCGTTTCCTTTGTTTCAAGCTCTGTCAAAGTGTCAATCGCTTTCTAGCTAGATGATTCTTATGAAGCTTTGAACATTCTAGATTTAGTTTGTTACCTTCAACATTGGTGGTCTTTCTTGTCCAGAACTGGATAAGATTTATCGTAGCCTTTTGCGAAACAGTATCAGATTTCCTGCAGGTTGTACAAGGGCTTTCGCGAGGCGGTAAATCGCCTGCCTGACTTTAAGGTGACCTCCGCCTGCCTCTCGCCTCAATACGTTATGCACAAACGGGAACTTTTAAAAAAATTTTTTCAACAAATTGATAAAAAAACAATTTGAAATTTAAGGTCCCTGCCTGCCATAGAAGCCCTACCGTGTTCCACTATTGATGCGCTTCATTCTATTACAAATCAATGTAACGAACTCCGAAGTTTGATAGCCCGAGGCGTTTTCCTTGTTAAGTTGATATCGATTATCAGTTTGACCAACCAAACTCCATCGAGTTGGGTAGATTTTCAAGGAATTTATAGAATTTCGTAGAGTTTTGGACTATGTTTTGCAACGTTGAATGGAATTATATTTGAATAGGATATTGAATAACTTGTTAATGGTTCAAGGATTTTAGCACCCTTTCCGAAGTCTAGAAATGTTCCACCCTCAGGTGCCGATAGTCGGCTCCCGTGAGAACTGTAAACCGATAATCAATCAATATTGCGGGTATTAATTGGCTAATATACATAATCCCCCTGAAAAGTTATGTGAATAACGGCAAACCCCAAGAAAGAAACGACCATTTCCGAGGTGTATCAGAATTTTAACAAGACCTACTTAGGGTACATAACCCTATCAGTTTCAAAAACAGCATGTCGGGATTTTGTGCTACCATGGTAGACAGGCGCGGAGGGTCTGATGCTTGCCTGAAAGCCGGGCAGACAGGCGTTTTAATTGCTGCATGGAAGCCCTAAAATTCCGCATATACGGAACCTAAGCCAATTATCAAATTCTACTTAAAAACTCATTCCACAGGTGTTCCTGTTCTGCTGCATCATCGTCACACAGACACTTACACGCGGCTTTTCTCATTTCCCACTTTTTCTTCGTTTTTCTCGCTTTTTCTTCTTCTCGACACGACTTAATATTCGGATGGATGACGCCGAAAGCCAAAAGTGTTTCCGTCGGCGTTTCCACGCGCACTCGTACTACAAGTGCCACACTTACACACTTGAAGCAAATAGAGAGAGGTGCAGGAGGGAAAGGAGGGGACAACTTCTGTAAGATAAACTACCTCTATTTGAGTAAAGAGTGCAAGAAATATATGCGCGTGTGTCTAATGAGAGGGTCTTGGAGCGATTTTTAAGCATGTACAGTCATGAATCAGGCGGCACGTTCCAGCTTTCAGGCTCTGAAACCGCGTCTGCATACCAGGCAAACCCAACGATGGTTTTTCTTTGCCCTCAGGGATCCGTTTCTTGGATAGTTTTAGTCTTCGTCCTTTTTTCTTTCGTACACTTTTTGTAACTGTTCAATAGTTTCATCTAATCGTAGAAATTCGAGAAAAAGGATTTTTCGAGGGTCTGATAAAAGATCCCAGAATGTGTCTAATTCTAATTCTCTCCAAATGCCCAAAACGAAAATTTTTCGACAGATCCTCGTATTTCGAAATTCAGGAAAACATTCGGCAAAGCTGAAAATGTCACAACTTGCCAAAATGAACAATTTCGGCAAATCAATAGCTGTATTTTTCAGCAACTTTCGGTAAACCGGCAGTTCGCCAAAAAAAATTCGGCGATGGTCTCGACTCTAGAGTTGGGCGGCAGACAATTATTTCGGGCAAACGCAAAAATTAAAAATGGAAATTGGTGTTCGGCAAATCGACAATTCCGGAATTGAGAGTTTCCTGTAAATTCGGCAAACCGTTTGCCGAAGGGCAACTTCTCAGAACTGACACCCCTTCCAAAAGTCCGAAATTTTTTTAGCTTCACCCCCTTCCCTCCCTTCTCCGGGTTTTTTAAAAACCGGACGCACCTCTTACAATTATTACAAACACCACTACCATCGTACGTATTAAACGTCTCTCGTAATAAGGGGGGCCATAATATAATGGTTTTTGTTGTGTTTAGTTAGCCTCCTCTCTACTTCTCCACCATCATCAAAGCTACCCACAATAACATTACGATCATCAACTGACTACTTTTGTCTTTCAATATTTGTAGTTGTTGGGTATTTGAATTCTTATCCACTATATAGCTCCATCCCTATGTTGAAAATTTGAAATTTTTGGTAAATTTGAAAGATACCAAGTTTATGTATATTATAGTATATTATCAAAATTTCCGGTAAATTTATATCCTGCAAACCGCAAACCGACAATTCTAGCCGGAATTGGAAATTCCCGGAAAACCGCAATTTGCCGATAATAAATTTGCCTTTCTTGATTCTAGGTAAAATTTAGTACGTGATCCGTTTTTTCTTTGTAATATTAAAATAGGAATATCAAAATTTTTTATTTTTTTATTGCAACTGCAAATTATGTTCAAATTTTATAAAACAATTGTAAGTGTGAATTTGCACACTAATTAATTTTCTTATTGATAGGTATCAGTTTTACTAGCGGGCTATCATGTATGTACCAAAACGCCTACGGCGCCTTCTGATCTAGTGCGGTGTGACCCGAAAAGTGTCGGAATCATCTTTCGCAGTATGTGGTGCTGAAACCAAGCTTTTGAGTTCTCGCCATAGTGCGGCGAGAGGACGGCATGAGGCGGGAGACAGGCTAGTAGCAGGGCAGGCTTCAGGTACTGTGTCGCGTCTGCCTCCCAATCATTTTTTTTCAAAAAGTTGCAATGGAAATCAGATTTTCAAACGCAACCTGTCTTCCCCTTGTACTATCACAACTTTTACTTGATGATAGTCGATAAAACGCTGGTGTGAACGCGGCGAGGTGTAATCGTGTGACAATACAGCATTATTCTTTTTCGCAAAAAAAAACATTCTTTTGGGTATTATCATTCTACCAACGTATCTTATTTTATCGATTGGTTTTTTCTCCGGCGCGGAAAAGAAAAAATTGAAAAAAAACGTCAAAACAAAAACATTTGGAAAATATAAAGGTGGATATAAAAACGGTTTCGAACTTTTTTTTGCCGCGAACAGAGATTCATTTCCTGTTAACCATTCCTACATCTTTTGACGCTAAAGCAAAACAGAGACAGTCGAGACTGTCACATAAAATATACGTTTTTTGGTATACTTAATTATTCACAGGTGCCCCTTTCTAAAAGTTTAATATTTGTCGCGAAAAAATGCAAGAAATGTTTTTTTTCTTAAAACTAAAAACTCGAACTCAAAAATAATAATTGGGTATTTAAACATTCCGGCATCTGGGTCCAATTTCTTCCCGTTCCTGCCCTTCCATTTTTTTCTTCCTGCACTTACTCGAGTATTCCGGGATCCTCTTCTATTGCTGCCATAAAAGTTCTTCCGCTTCACAGAACTGCAGCGTATCCTGCTTCATATCTCGTTGCTGAACTCCATATAGGTTGTCATAGCTCAGTTTTAGACGGATTCAGGTAAACTCGAACTTAATTTCTGTAGGGTCTCTAGGATGAAGTACAGTAATAAGTATACGATGTGTCAAAAATTTGGCCTAAACTGTCATGACGCTGCTATAGATTACGGTGATAGAAATTTGAATATGTATGAAATAAGTGAAAAAACAGTAGACTGAGCCTTACTCAAATTCACATCCGTTCGAGGGTCCATATTCCTGAGTTGTGAATTTCTGTTGGTTGCAATTGCCGTAACTTATAAGGAAATTGAACAATTTGGAATTTACAGCACAAAATTAGTTTGGTGCTTCTAGAGCCCATTTTATAAAATATATACTTGACACGTGGCACTAATAACAACATCTCAAGAAATTCAGGAACCACAATCGTTTCAGTCCGAAGAAGAGTGTGGCGATCGGCAGGCGTGCCGCAGCGAATGGATCGGGTGCTGCTCAACTCGAGTCGGGAAGATCGCCATCCTGGTCATGTCAATCATTGTATTATATCTTATCATATCAGGTTGGTTTAAATATATTACTCAAATTTATCTGAGTTTACAGGACAATGAATGGCTGTCAGCATTAACGCCCTCCGACTCACCACAGGCAGACGGACCTCAACGAGCCGCGGCCTGGTATTAATTTAACAAGGTGTGATTGGGATATTACTATTGTGGGAAATTGCTCGATAATTCCACACTTATTGAGTTCACAATTAATTTCTACTTTATTAACTGTGTTTTTGGTAAAGACACTTTTTCCCCTCCCAACGATAATTCTCCTAGATTTTTTATAAACTTACGACATACTTATGAAGCAACGACTTGATGCGCAAATCGCAAAAAAAAAACAGAAAAATAACTATTTTATGAATATTACCATTATCGTATGGTGTCGTCTGTTTTGTTGTTAGTTTTTTTTTACTCGAAATTTTCTTAAAACACCGAATTCCACATTGAATCAAATTTCTTAATAATTTATTAGACAATTGGCGACTTTACAGAGCCAATCTCGGCAAGTACTCACCGGATGTATTATGTGATGCCTATGAGCGAGCAGACGTTTCCGGAGACTATTGTAATCGACTTTGCTATGATCGAAACTGGAGTTACTTGTCACTGACTAGTTTACGAAGGGCGGAACAAGACTGTGGTCATAGTGAAAGATGGCGGATAGATTGCTGTCTATAAAAGCACCCAATGTTGATGGATCACTTCGACGAGCCGAAAGACATCTGACGGATGCCCAGAGTTCTCTGATCGAGTAGTAGATATGGTGAATGATGAGCTGAGATTCGGATGGCCGAAACACTATCGACGGAGCAACATTTAATGGGGACTGTGGCCGACACACTGTTACGGACCAGGGAGAAGCCATGTCGAAAGCGGATCGATCCTTGTGGGCTTTGTTCAAGCAGCCTGAATTCATCCTGTGCCGAGTGTTACCGTTGAGACGTGTCACGCCGAAGCTCTTTGGGACGTGTGAGTATCAGACTGAGTCACTGGTGGTGTTCAAGATGAAAGGGTATTATACGAATTTGAAGGTGGTTGGGGATTTTTTTTTAAATTGATTTTAAAAATAAAATTTTCGCTCAATCCAAATTTACAGGCAAAAATCTTGGTGCATGTCATGGGAACCCTGAAGCTCTTATACGAATTTCTCGACGAACCCCCAATGGTGTGTTCGATTTGATCTCGGGTTAGCAGCAGCTTATGTCCGAAAAGGTAGGTCCGCCTGTTTTTTTATTTGATTTTTTTTTCCGAAAGAACCTCCATTAATTATTCGAAACTTAATTTAAAAGTTATTATGAATGATTTTTTAAACAAATTTAAAAATTGATGATAATCCAACAGGCCGGAAACTCAAACTGTGAAAACTGTCCCGTAAAACTCCATATTTCTCAATTTTTCTGCAGATTCGTTCTAATGGACGGTGACATACACGAAATCGACTGACAATTGGATTCTCTCCTAAAAGGACGTCTGTGTGAAAGTGATAATGATTTAAGAGTAAAGTACTTGGAGACTGTGAGGCGAGATGCATTTCTAATATGGTGTGGTCGGCGAGGAGTAACGGGAATGGTAAGCTTGAAAGTTGTATGAAGTTTGGAAAAATTGTGAAAAATCAATAAAATCGGCAAAAATAACTAGCTTTTTTCCAGATGGCCGAACTTGTTTTGCATCGTCACCTGTGGAAAAAATTGCTAATAATGCAACAGCATCTTGATGTTTTAGTATTCATAAAAAAATAAATTCGACAAAAACCTTTTTGATTTTTCCAAAAATCAAAATCACATTCTGATGCTCAAATTGAATTTTCAAAAAAAAATATAGAAATTTCTTTTTTAATGCTCAACAAACGAACGAATGTCAAAAAAAAAAGAAGTGAATTTTCCGAATTTTTTCGCTTAAAGAAAAACTGAAAATTTGAGGAATTTCAGTCAGAAATATTTTTTTTTTGATTGAAAGGATTTTATTTTATAGAATTTAACTTCCACTATTAGAAATTACCTATTTACTTAGTAATAGGAAAGTTGTGAAAATGTTAGGAAAATTTTTTTCAACTGTACAATTTCCCGGACAGGCCTGTCGTTCCTTTTTTTCACAACGTAAAAGAAAAAATTAATTAAAAAGTTCAAACTCCTAGTATTTATACATTGATTTTGCTTTAAAACAAAGTTTTTCTTGATTTTTTTGTGTAAAAATTGCAAAAAAATCCAAATTTTGTAGGTCTTCAGCGATAAACTGGTCAACATTCGCTCGTTACAATGGTCCAAAAATAAAAAATATTTGGTCGCATGCCGGGATACAGTAGAAAACAACTGGACTCAACGAATTACGGTTAACAGGGTGGGAATCTGCCGGATGTTTAAAGGAATCTAGCTCTATTCTTTTTTTTTTTCTTCTACTCCATGTGTCAAAAAATCCCCATGTCTTATGATTTTCTGGTGCTTTTTTCCATATTTTGCTTTTTTTGTGTTCTGGTTCATTTTTCCATGGCTCACAGAGCCCGAAAGGAACTTAGGATTTTCAAATTTTTCGTTTTTTTCTCATAAGTCTGTCATCATTTTTTGCTCTGCATCATCATCGTCATCGTCAACTTCATCTTAAAGGTTTTATTAAGGGGTATTATTACACTTTCCTCGAAAAATTTTGACGAACGTATATGTATGCTTCCCCTGCACTGTCTCCTTGCATTTGTACCTTCATTGTTACGGGTTTCAAGTTTTAAAACTGTGAATTTATATCGAAGAATTTTAATTTAAAAAAAAACTTTGTTTCCTTTTATGAATTGTTACAGACAAATTTTTTCTCGGCTTGAAAACTGAAGAATCCTAACCCTGACTAAACTAACTATATGTGTTGGGTATCAGCGTGTATTGGTCCACCCACGACGTCATGGCTAAGAAGATCGTACAACGTGAACTCTATGAACTAACTCTTTATTCCTTAGTTTAGTACACGCTAATAAACTACTCGTCTTTTCCTCCTCGTCTCCGAATACACAACATTATGAAAAGAGTTTTTCTTAAGATAAGAAATGTTCTAAAAAATCGATGGCCGAGTTTCCTGTTTACGCGGGCGCAACAGTAAAAAAGTGTTAACACAAGTGAGAAAACTAGACGACATTTATTTTCAAATTTCACCCGATTTCAAAATGTCAACAAAAAAGTCACAAAATTTAAAATATGAACAATCAATATCCCGCTGGCGCTGACTCCTCCCCTTATCCGAACTGTTCGCAGAGATTTGCCGTCGGAAAGTCGTTCGGCGGCGGTAACAATTGTCAAATTGTTCACTACCTCCATTACGTGGTGAACCACGATCGATCAGGGATTTCAAGACGTAGGTTCGGGAAGTATGGTACCACGTGTAATTTGGCTAAAAAATGAGAGGAAATTGGGAAAGGTTTTGATTTTATTGATTGAAAAATTTCATGTGAAAGTGGAAAATTGATTGATAATTAAATTCAGAAGTTTTTTTTTTGAAAATTATTGATTTTTATTTTTGAGAAATCCACTCTTTTACTTATCGCTTTAACGAACGAAAAAACAATCAAATTTCGCGGGCTCTTAACTGCTTGTGCATCACTTGGAGCATCAACAGCTTGTTTAACATCTGCTTTCAGCCATAACCAGTGCAAATCCAGCAACACCCGAAATAATGGTGGATCCACCGGCTCCGCGACCGCCATAAGCTCCGCCCCTTTTGTGTTAAAGATCACTAATGGGCACTTTGACTACTCGCCTGATGCGTTTTCCAGGGCGAATGAAATTGGCGGGAGACGGTGGGAAACCGAAGAAAAAATTCGGAGGACCGGGAGTGGAACGTCCATTCGTTATTCCACAGAATTCCCGTCGATTCGGAGGATACTAGGCCACCAAGGCTGGAAGAATTTGAGATGGTGGACATAGAGTTTTTTTGGCGTGGCCGAGAAAATGTCTTCATATCCGAAAAAGTAAAAGCGATGGCCTAACAGAAATTTATGTGGCCACCATATAAACCGATTTGAACTGAATTCTGGCCTAAAAATGAAAGATTCGTCGTCCTAAAAATGTTTTTAATGATTGGGCCTAGAATTGAAAGGCATGTGATGGCCTCCAAATTTCAGGTGGGCACCTATATAGACTTTGGTTGATAGAAATTACACGTGGTCCAGATTATGAAATCACTGCGGTATAAAATCCAGGTCTAGGAAAACAATTTACTAAGACTGCCTACCAAATCATCCCCTGGCCTAATTCGTTTAAATTTTTGGTGACGACCTCGAACTTGTTCATTTTTATCAACTGCAGAAGCCTTGCTAGTCGACTGAGGACACCTTCTCACTTTTGGCGCTGGCCGAGTTTTCGAAGGTCGGCGACCAAAAATTTCCTTTAAAAAAGCAACTCACTATAAGTTAATGGTTAACGGTCGAAACGGCATTGCTGTCTGCATCGATAATCGATACATGAGTTGTTCCATCCTGCGGCGGTGCTCGATCCTCCATAGTAATCATCAGGATGCGTCGTGTCTGTGATCTTCGACACTAACCCAATCCGCCCACTTTTGACGTAAAATTTTTTTTACGTCGTTTGCCACAGAATTTCGGGTCGCCAAGCCAGCTTCTAGCCGCATAACTAAATTTGCCGACTTACATTCCAGATAATGATGGGTCGTATAACGTTGCGATTTCGTTGAAGACTTCATGTTATATTCGAAGCGGGCCATCCATCACGTTAAGTATTGCCTGAGCCACCGCTGAGCCCGAGGGAGGCGGCCGCAGACCCCGCACCCGTTTTTCAGCTTTGTGTAGATCACATTTTTTGAGTCCTGGACTATTCATTTGTATTTGTTGATGTCCTGAAGCCGGATGATCCCACCGTTGGCTTCGAACTATTTGGCGAGTTGCTCGGCGAGCCGACCTGTATAAAAGTCGGCGCCATGATGGGATCTGTGACTGAGTTTGCGAGCAGCCGGAATGTCTCTAGGAGCTTTTTGGACGCGGGTTTTTATCTGGTCTCCTGGTTGGAAGACACGCTGAGTTTCGGGGTAGATGAAGTTTTTCATGGTGGGCTCCGCGCGGATTTGGTTAGGTGCTCGTTTTGGTTGAGATGCTTTTGCAAGGTCATGGGTGACATTGGGTAGCCTGGAATTTTTTAGGATGGCCTAGAAACGCCATGAACCGATAACATAGTTACTTATTTTGTGACCTCGAAATTTTCATGATGGCTTAGAAATTTTATGATGACCTAGAATTTCTAGCTGACCTAGTAATTTTTTGATGTCTCGAAATTATTAGTAATGTAATAAACTACTCGTCTTCTCCTCCTATGCAAAAATTTGGGCCCATCTCCCTTCGTGGTGAGACCGATCGAGGCGAGACCTGCCCATCGTGGCGAGACCCATCGTGACGAGACCCATCGTGACGAGGCCTATCGTGGTGAGACCCATCGTGGCGAGACCCTACGTTGAGAAACCCATCGTGATGAGTCGACCCATCGCCATGGTGAGACACGCCGTGGTGAGACTTATTGTGATACTGTTAACGTACACAGTAATTGGAGAAACTTTTAAACTGATTTTTACAAAGAGTTCAACATTTAACTTACCAAGAGCTCAATCCGTTGCCTCGCTTTTTGTTGCGGGATTATTGTTCTGTTGCCTCCATTTCCGTTACCCCTGTTGTGTTGCCTTCGACCAGCGATGAATCCGTTGACCCCCCCCTTTTTCGTTGTCCCCGGGGAATATTAAATCGGTTGCCCCCGTTATCCGTTCCTAGGGCTTGTTGGCCGGTCTAAAAACGGCCACCAGAAAATTTATCAGAAATGTTCTACCGTTAGGAGTTTTTTAGCAGAAATATGCTACCGTCGCAGGAAAAGTGCCCACCTTCAGCCAAAACCCTAATCAATAGTTGGTTTCAACAACCCGAATGTCTCCACTCGTTCCATTTCCGAATCTCTCGAATCCGGAGGCCGTGAAGCTCTCCGGGCACCGCAATCGCCTTCCATATTCTCGACTGATTCCACGTTTGTCACGGTACATTTCCTCTGTTGCGCGGCGACGGGGCAATCTCCCAAGCATCGATTACCGTACACTCTTTTGTGTTCTGGAAGAATTTTAGAGGTTTATAAATCATTGATAATATTTATAGGCCACGGCACAAAGAAGTTTCTAAAGGACACACGCGCTCCTGGCATTTCCTCATAATAGATTTTGAAATGGAAGAGTGCCGAGTTAGCCCGTTTGGACTACGTCCGGGGTAAATTACGGAGGGCGTGCAGACTTGTTAATGGAGCGCGAGAAAAACGCTTGAAGGCCAGAAACCAACAAGGTGAGGCCACAATCATGATGTTTCCAAAAATGTTATTAATAGGAAGATCATTCTTTTGTCTTCCGAAATTTTTCTTCTTTGTTTTCCTGTATTTCGATTATTGACTTTTAGTTGAAGAATCAATACTAATTATCTTTTTTAATTATTGATGTTCCGCTCCAATTCGTGGCGAGACCAACAACTCACGCATTATAAATGTCATAAAATTTCCGCCGCCAATTCCGGCCGAATGTGTATCAATTGCACCGATACAGAAAAGTGCGGCGATTGCCGAATCCACCGCATGTCCGCCTTTCAGCAAAATATTCCGACCGATTTCTGAGCAAATTTCGTTGTCGGCGGCGACGGCCGCTTTCGAATATTTTCGAGTGGAGAAAGTGCTGGTCCAGGCCAACGGGGGAGGCGGGCATTGTGTCTGGAACCTTGCCGAGTTTTATTTTTATGACGGCCACGTAAAATCCAGCCATGAACCGACAGCGGACTATTCTTCCTTTCACCCTCGTGGCCTAGCTTTCTAACAAGCCGGCATTAGTAAATCGGAAAATACAATGAAGCGAATGCGAGTCCTTTGAGATTAACATCGTTCGATTACGAGAACCGTTAAGCCGACCGCCGCGCGGCCTAAAGTACGGATTTTCATGGGTTGCTCGGCCTCGATAAGCGGCTCAACTTCATCAAATGGTCGATATTCTGGCTGTAAATTATCATCGTCCGGAAACGTGTTGTAGTATTGAACAGGAGGTGGGTTACTGCTGAAAAGTCGAGTTTTGGGCGTCAAATTTGATGCATTGAGTGGCCTGATCACGATAATTACAAGATCGCGACATTTTAAGAAGGCGTATTGCACAACATTTTTCACGCGCAGAAATCTCGTAGCGAAAACTACAGAACTGTTTAAATCACGGTAAAGCTTGTGTCGATTTCCGCGGTTTCGGTTTTTTCATTTTTTTTTGTGTTTTTTAATTTAAAACAATTTATCGACTAATGAATGATTTCCGTAGAAATAGACACAAACACTACAGTCATTTAAAGAATTATTCGTAGTTTTTGCTCCTAGATATTTTGCGCTTCGAATATGTTGCGCAATACGCATTCTCAGAATTTTAGTGTTGCCATAATAATTCTAAATTTAAAAATGGAATTTTCAAAATCAGAGGTTTCCCAAAAATTTGAATATTCCACCAAGCATAAAGATGAATCTGAGAGTATTCAATTTTTTGAGCAAATAATCGATTTTCTGGATTAAAAAATTGCGTTGAATTTATAGATTTCTAGTAAAATTTGAATCTGTGCAATCTCAGACTAAAATGTATCGATTTTGATCGACTTTTCATAAAATTTAATTTAATTTTCGAAATTCCCAAAATATTGCCTGTTTTTCATCCCAAAAAAGTCGTATCAGTTTTTTCAACAAATTAGCGAAATTTTAATCGAAAGTTGTTTTCAGAGCATCATGATTTTTGAAAGAATTTGCAAATGTGAGAACTAAAGTACTCCCTTAAAGGCGCACGCTTGTTTTATTTTTAAAAAATTGGTCGTTTCGAGACCTGGTACCGTATATTCGCATTTGGGTAATATTCCCAGCATTATAAATTGTAAAAACAATGCACTTTTTAAATCTTGAATGCATATATTTATTTTTTTCAGAAACTCATGTCGCCTTCGGTCTCGATTCGAATTTATTCTCACAAACGTATAATATTTTCTCGAAAAACCCGCGAATTCTTGTAACATTATTGATTCTCACCGCGTAGATTGCCCTTCATCATTAATCAGAATTGAGTATGAATTAAAAAATCATAGAAAAGTCCAAGCGCTGTCTATTGGAATAGGACGAGAATGCCAAATTGCAACTTTGGCTTCAAGATAACGGAAAATCTTCTATCGCAAAACGCACTAGATAAGAGCTACAGTTTGCTGCGTGTAAGCGCCCTCCACGACAATGACAAACGAGAAGGGAAGAGAAGAGGGGGTAACCGCCAATAGCTCTCTGTATCGAGGATAGTCTTCAAGTGACAGAAGTGAGATATTCTGTGGGGAGAGAGTTGGGAGGAAGGGGGAACAGCGTATAAGGACTACGGAAGAGTGACTTGTAGATTTGGTGTATACGAGAAAGTGGAGGTTTTGGCTGAAAGTCTTTTATTTTCAAAAACTTTTACTTGTAACAACTAACGAGTAGATTTGACAATGAGGATAATATTCAACACAACAGAAAAAAAGTCGATGGGTAACTAATATAAATTAGAGAAAATGTGGCATCGGGGAGAAGTGGGAACAAAAGAAGAAACTGATGATGATGATAGGAGGATAGCCGCGAAACAAGCGATTAACAGAGAACAAGATTCATTTCGGTGAAGATAGAATAACAGCAAAAAAAAAAACAACAACAAAAGTCTAGGTCTTATTGCCCATTGAGAGCTATGCTGAAGGACACTGGTAAGGTGCTCGTCGATTACATCTTGCTGCGCGAATTGTGGGAACGATGCGTACATTCAGGATTGTGACAATTCTTTGCTTGGTTTGGTTGCCGCTATCGTCGTCGCGAGGTTGAAAGAGCCATCGTTGGTGATTGAGAGCAAGCCTGCAAAATACAAATAAATAAAATAAGTTACGGATTTTTTTAGATTAGAACTTACAAACAACGAAGATTCTCGGAAGATCTGATTTTCTGGTCCAAAAAGTGCGGCGTTTATCAAACAATTCGGCGAGACAGGTGTATATGTAGGGGCTTTCCTCGGTGTCTGAATATGGTGGCAACCAGCTCAGGAACAGCTCTACGACCTGGAAATAATATGGAACTTTTTTCTTAACTGAAGTTCTAAAAGCAACCTTTCCGTAGGAAGGTCTTCAGAAAGGCAGGAAGTGGCACATTGCGATTTTGGCTAATGCAGAAATCGCGTTTTCCGTGGCAATTTACAGTGCTCTCCTCGGTGGCGCGTCCTCTCGTTGAATCATGGCGGCCAGTGGCCCCAAACAGCCCAAAAACTCGTTTCGTGGTGGCTGATCTGGCGCTAGTTGATGGACATAACTCCGAAACCGTAGCTCGCTTCTGGTCTCACTTCAGGATACTCCTGATCTCCCAACAACATGTACATTATTGGGAAATAAGCTTCGGGAAGTGAATTGGGATATGTCCGTAACACCGAACTCGATGGCGTCATCGAGTCTCATGGCACATTCCCCACTTGTCTCTCCAAGTTGTTTGAATCCCTCGATGAGTTGAACGGCACATTTGAACATGTTGATCATTCCCTCGAAGATAGTTCGCTTGGACTCCTTCATAAGCTGAGAGAGAGTCAAAATCGATGGCCTCTCCAAGGCCTGAGGCCTCCATTATTCCATGAAATAATCGAAATGAGCTCCTCATTAGCTTTACAGCATTCCCTATTCATCGTCATCTTCATCTTCAACTGGACGATCGCTCATTCTCTTTAGTTTTCTGCTCGAGCAGCACCGAAATGATGAGTTGAAACTCTTCTAGATCTCGGCGATCCCCTCAGTTTTCATCCTCAATGAGCCGATGGTCGTCATGTACGAGGCGAGAATCTCGACATCGTCCTCCTCCTCCGACGTCAATGCCTTCAAGAACTCGCACCAACAAACGACGCTTGACAGCCAATCCTTGCCAACACAGGTCAACAAGCATGGCATGATTTCAGCGCCCGTACGGAAACTCCGTCGTGAAGCCCGAAATACATCCGAGATTCTTGATGGCGTGCTGGTAGTCGACGGCGTGTGGCATGAAAGCCTCTGGCCTTCATGTCCTTGGAAATCGAACGCGACAAGCATATCGCAAGCAGTTGCCTTTTCCTCAACACCTCTGGTGCGGATTCCGACAGTCTTTTCTCCTCCGATTCAGTGGTATTCAACTCACTTCCTCGTTTTCGTGAACATCTTCGTCTGAAATTTATATATTTTTTTAACACGTAAAACTAAAAAACACTCACTGTTGAATATATTGAATTCTAGGCGGTAACGAGCGGCAAGAAATGGATCCATGACACCTGGGAGGAATGGTGCGAAATCGGCTCCAAGAAAAGAGCAGAAACGAGTCCATGAGCTGATCATGTAGCTGTATTGTGGATCACCGATAGCCAAATCACGACTTCATGTCTCCGAGAAGGTTCAGGATCTCTTCGATTGCAGTAGGGTGGAATTGTTCCTTTCCGACAGCATATCCGATATGAGAGAGATGCATTCGATCGTCTTTCCTCTCAACTCCTTGAGCTCTCCGACGTTTTGAAGAATGTGAACGAGGTTCGGGATGAGGCGAGGCCATGATGTTCCTTGAAGAGCTCCTCGGCGGCTTCAGCGACGGAGGCGATGGGCAACGGTGACGATGTTCTCAACGACAACCTGTTATGTCTTGTCTCCGACACGAATTGAACAGAGCGGAACAGCATCATTTTCGAGTTTCTGAAGAATGAGTAATGGAAGCTATTGTCCAATGATTTTCACTCCTCAAAGTTGACAAGAACCGAAGCGGCATGAACAGACACGTGGAACATCGGTTCTCTAAACTCGACAAGAGCTGGGTATGACGGCGGCGTGGCACTTCTTCTGAAGAGTTGGAACGAAGTCAGAAGACATTTGTCCGATGGCGTTGCAAGCCTCGTATTGAACTCTTGGATGAGCTTGACGTAATTGGTGATATGAGCCATAATTTGCTCTATGTGCTGGTTCCACAGATCTCACCCTTAAGGCGGACAGGCGAAGAGCCGCGTGCTTCATCTTCCAGTCTTCGCTGGTCAATAGCTTCTCGACAAGTGGAAACACTGGGAGCACCACCTTTCCGTTGAGGCAGCAAGCAACACGGTAGATGACGCGCTTTCGGCGATGATTGGGATACTGAAAAATAATTTAATTGAAGAGAAAAACTAGAAATCTTAATCTTCATAGTCTTCTTCCTCTTCGATCTCGTTGAGCCACTCATTGAGCACATCGTCATCCATTTCGGTCATGCAGGAAAGAAGAGTCTCGAGTTGGTCCAAGAGTTCACTGCTGGTTACGCGTATTTCTTGAGTCCTTTTGGTGCGCCAAGTACGGGCAAATATACTTCGATGGCGTTCTGACGGACCATCTCGTCCTTTTCCTTGTATCCAGCATGAAATCTGAAAAAATTAAATTTTTAAATGGGGCCATTTATATTACTTACAGCAAGAGTGACTTGAAGAACCTCGGCTGAGACCATATGAGTGTTAAGGCATTTTGGCAGAGAAGAGGCGGGCTCGGCGAACTCTCCGAGTCGTCCATGTGTCCGCGTCGCTGGTTTCATCGCAAACTTGAAGGCTGAACATTGGAACAAGAGAGGTAGCCTGACACTTCTCCTCATCATTATCAACAGCGAAAGCGCTAACAGCACGGACGGCGGTGGCCCTTGATTTGCAAATCCGGTGTAAGCCATCAGCACTTTTCCAAGCTTTTTGGAAGGATCTCAATGGGCCAGCCTGTTTCCAAAAATTATTGAGGATCTGCGAAGAAGAAGCAGGGCTATGTAGTTTCCGGTAAGATCCTCTTCAAACCATGATCCATCAGCGGATCGAGGACTCCTCCCCATGTCATATCTCTCGTGCGATGAGGTTTGAAGCGATTTACGGCAGAGGTATCAAATCAGCAATCTTCTTCTTAACCGAGAGTTCGGCGTGAACTATGCAGCCATCTCGAGAACTCTGTCGAGAATGTGCTGTTCTGCTCGTTCTGCGCAGCGTTTCTCGCATCCCAGTCGCTGGCGAGAACTCGTCGCAACCAAAACTGATCTGGCCTGAAAATCGAAAATTCCTGGACTATATACGAATTGAGTGAACTAACATCAGAATTATTCGTGTGGTGGGTGTAGGCCTGGAAAAGTGCAGCTACTCTTCCTTGGTTGGTGTCCTTCAGACGCATCTTTTCATAGACTTCTTCAGCTTGTTTTCGGATATCATTGTCTGCTGACTGCAGTTCTGTTGAGCTCATGCGTGAAACCTTGATTGACGTCCATTGTAGGGCACCCTGAAAATCAGAATATGTGCTAAAAATCCCTCTTCACAATTGAGAAGGATACTAAAGGATGAAAGCTAGTCGGTTTTGCAGATTAACGCCAGACCGGGAATACGCGGAATCTCGATGAGCACTCGAAAATAGATTTTTACTATAAGAATTGTCATTTGCAACAAAACCTATCGTAAAATGTGAAAGATAGGCCAACAATTATTGATTTGGGACAAAAACGCCTCGAGTGCACGATTCTTAACGGAGCGCACTTGCTGCGTCACACGCACCTTAAACTGTACACGGCGGGAAGTTCCAGTTATTAAAAGGATTCCCGTGATTTTCACGACATTTACTGGTTTTTTCAGCGAGTTTTCGCATCTTTTCTGCGACAAGCGATGATTATTAATGTTTGGAATATATGATATGGTAGCGTGTTGCGATATAAAAAATCGATGGAATGAGTCCGCATCAAGAGAAACTAATATCTGCATAGATCGCACTGTTTGCAATTTTGGCTACATTGGCCAGTTCACTGACAAAAAAAGAAAAAAAAACGGCAACATGAAATCTCTAGTACCTATTCCAGGCAACCAGTGTCTGGCGACGATGGAGTGTAATTCTGAAAGACGCAGTATTGAAAAGAGTGTGTTTTTCGCTTTTTTTTTCAGACAGACGAGTCAAAAGAGTAAATACGTCTCAGTAGTACAAACAATGTGCGGCTGCGAAATCAGTAAAAATTAACGACTTGTGATACAAATTCCTCAAGGAATGAAGGAGAAAGTGTACTTATTTTTGAGACCCGAAGAGCTCGGGGGATGTACAATTGGGGGGATTACCAACTCGATTGGCCCCGCCCACAGAACCCGACGTGGCTTGCAATACGCCCATTTCTGCAACTGCCGCACGGTTTTAAAACTGTACTTTTCTCAATAGAGCGAGATTAAGAAGAAAAAATAATAAACCGTGCGGCAGTTGCGGACATGGGCGTATTTTGGGGCAAGCCACGGTTCTGTGGGCGGGGCCAAACTCCCGAATTGGTAATCCCCCCAATTGACATCCCCCTCTTCGGGTCTCCTGTTTTTTAATTTTGAATTGAAAAATTGTCCAAGCGCACACGTAGAACATCAAAACCAGTGGAGGGGCGAAATTTGATAGATCGCATGTGCAAGAATGAGCATTCTACGAGTTGAAGTCGCGCCACTGCTGCGTAATCGGGCGCGCACAATATTGTGCAATAAATCTCGGTTATTTGCGTACATGCATCATAGCTTAGACGCGCAAATCATATTAGAAATTTCCCCGAAACACGGGGAGGCAAAGCTAACGTGGCCGAAGAAATTGGGTCTACAGTAGTCCCATTTGGCTACTGAATATTCAACGCGAATAAGTTTTGTACACTATTGCGTACTTTGCGTACGGTAACGCATTTTATGCATTGACGACAATTCGTCAATTTCAGCTCAGCCTAAAAGCGCTTTTCGTCATTATGTGAGCGAATAAAAGTCGAAAAAAACTGTTGTTGTAGAGAAAGTAATTTAATAAATAAAAAAGTGCATGTTTTATGTTTCTCATTATGTTTCCACTGATTTTCTTAGAAAAACCGACAATTTCCTCGTTTTTCGAAGAATTTCCGCTGAATAGTTTGTTTTTATCTAGTTTTTCTTCCGATACTGAATAAGACATTTAATAACATCAAATATAACGTTAAAAACATTAATTGTCTCGAAAACCAATATAAAACTCGTCAGAGAGGGATACTTAGTAGATATGCTGAACAAGGAAAAGAGAGAGAAGAACATTAACCTGAGAGGGGGGAATAAGAAATCTGAACAGGAACGAAATAAGAACATTATTAGAAAGAACCATGGTTCCCTTGATCTTCTTGGCAGTCGTCTCCTTATCCTATCACTTCTTCTCGGCGTCCTTCTGATCACGCTACCGAGCAACGTGGCACGATCGAAGGGTTTCACAAGCACGGTTCGATACCGCTCCACGAGGGGGCTCCCAATTCAGCGAGCCATGGTCCTCTCACGAAGTTGAATTTTTTAAAATTAAAAAATAAGTAACGTCAAGAATTCCATCGAATTTGTGCTCCTTTGCAATAAGACAAATTTTTTTTAACGGACTTGAACAGGATCATTGACGGCATGAAAACGGCTTCCTCGTTGAACCATGTTGAAGCTCCTTCACCAATGCACCTGAAACAACTTCTAAATTTCAATTTAAAGAAAATCCACACACTTATCCGTCGGAAACGAATCCAATATTCTGGTTGCTGAGTGGAATTGCTTCAATTGATCTGTTTTTTTTTGAAATATTCGATCACACATCTTGTATCCACCAGATCGCTGAGTGCTTTATGATTCAGAGTCGCGCTTGCCAACCTCTTCCATCAGCACTTCTTCTGCTTGGAATTTTGATTGCTTTCGGACCGATTGACTTGTAGTTTCTTCTAATAGTCGCTGATTGAGCAGTCGACCTTGCAGTCCTACCGAGTTCTTTGGCTTCTCCTGCGGCACTTGAGCCCTTGTAAGAGCAGTTGAAATTGCTGCTTAACCTTCCTTATTAATAACTTCTTCTTGTTCGCATCTATTTCGAATTTTGTCTTGAAATCTTCCAAAGCAGCGACAACGTAATATCTGGAAATTATAAAAACATTAAAAATATTTTGAAAAAAAATCGAAAATGGCTGTATTCCTAAATTTTTTATTAAAAAAAAAAATGAGATACGTGAGTTATCATTGAGTTTTGAGAATTAAATCAGCATATATTTCTCCATATTTGAGTAGGTTATCAGAAATATTTACCATAATTTTTGGAAAAATGTAATTTTTAATTCGAAATTCGCACCGAATTTCGCGAATTTTTCACTAAAATCGAGAAAATAAATATGAAATACGCGTGTTTGAGGTTCAAGGCTTTTTAATTCGGAATCAGCATATATTTTTCGATATTTGAGTAGATTTTCAGAAATATTGTACCATAATTTTTCGAGATTGATAATTTTGAATAATAACTTACTCTACGATTTTGCCTTTGTCCGTTTCAATCCTCGAATTTCGAAGCGGTTTGCGTAGATTAGCTGAAATCATTATGCTTATCCCACGTAGTAACAAGGAAAAACAAGAAAAAATAAGCAAAAACGTGGAAAGAAAAATAATAGCATATCAGTCAAATTAAAAATGTTTATTCGATCAAAATTCTTAACCATAGGAGGCGGTGGACTCTAGCGGGCGCACTCTCGCGGCCACGTTAGCTTTTCCCCGTGGAAAGGAGCCATGATAACGGAAACACTATTTTCTGAGCACCCGAAATATATCGTAGCGAAAGCTACAGTAACCCTTTCAATGACTACTGTAGGGCTGGTGTCGATCTTTACGGGCGTTCATTTTTAAAATCATTTTTTTAATCTGTTTTTTGTGTGCGTCACTGTCGATGACTAAATTATAAATTAATTTCCGTAAATCGACATACAATCGCTACAGTAGGTTCATTTAAAGAATTACTAGTTGTTCGCTACGAGATATTTTGCGCGTCACTCCTTAGGTTCAGGCCACCAATTGTCTTACACTCAAAATCGACGTGAATTTCTGTGTATTTGACAGCAAAAGTGACGTGACAAACAATTAAATAAGGCAATTTGAAGAGTAAAAAACTGGGGAACGATGTGAGATAAGCCAAGAAGAAGCGGGGCTTCGACAACGTATACTAATCAGAGATGGAAAGTAAGAAATCAACTTGAAATTTAAGACAAAAAAGTCAACGGGGGATTTTTTTTAGAGAGAAGCGAGTAATCGGGCACAGCAGGCCAGAGAAATAAAAAGATAATAAACAATTGAAAAAATATATATATCGAAGGGGGAAATTATTGCTGAATAGACTGCAAAGAGGTGATCGGACGGTACAGATAAACGAAGTGTCTCTGGACAATTCCGGGTCCACGGACAAGAACGGCCTGCGCACAGTAGGCCTTGTGGTTGACGATGTTGGCAGCGACGGCCGGATGCTTGGGAGCGTAACTCAGACGACAGAATGGGTTCACAAATTCTCCCCGGCGTTGTACATTGAAGCTTGCTCTTCTTCTGCTGATAGGACGGCTTCGCGGAGGCTGAAGCAGCTTCCAGCGGCATTGCCACCTCGTATGACAAAATGTTCCGTATTGACCAGTGCAAAAAAAATTTTATGAGAAATTGAATTTAAAATGATTTTATTTGTAATTTACTTGTTTTGTTAATTGGTTCGATAATTGTTTTTTTTTTGGGAAAAAACCGAAAAAAAAATTAAAATCTTTCATTTTTCATTTAATTTTTTTGTTGAAAAATCGGCAGTTTTCGATTTTTTTTGAAAGAATAGGGAAAAGTCAGTAATTGTCGATTTTTCAAAAAACTGAAAATTCCAGATTTTGTCAGGACAAAAAACGAGGAATTCGACAATATTTCAATTTTATTTTTTTAAATTTGCGTTTCTCAAATTTTTTTTTGATATGTGATTTTTCCGTAACTTTTCTCTGGAAAAAAACCGACAAATTTGCAATTTTTCAATTTTTTCCAAAAAAATCTAAAAATAGAAAATTTTCGATTTTTCCTTTTCTGAAATATTTAAAGTAACTTCCTATTTTTTTTAAACGCGTATTAAAATTTAAAAAAAAAATCGGAGAAAAAAAATGAATCGAAAATACGATTTTCAATTTCCTTTGAAAAAAATAGAAAAAATCGTAGGAAAATTTTCGTTTTTCGATGTTTTTTCTGGTTAACCTAAATTTTTATTACTAACACAATGCTGTCGGCTAGCAAATTACCCATTCCAATGGCAATAACGATTCTCACCCGCTTTGTCGTTTGTTTCAGGCAAATCAATGCATACGACCTTCTCGATGAGCATTCCGAACATGCCATTCTGAATATTCTCACACGAGTGAACAAGATCCTGTGCACTCCGGGCGTTCGTAACTCGACACAAGAACACGACGAATAGCTTCATAAAGGTTTCGCCAACGATTGAACTCTTCGAATAAACATTGTATTGAGCACCAATGTTATCGCGGACCACATCCTCGGAGTGCTCGATGGACAGAATCGTCGCCGTCAACTGTAAACCGTACATTGATCCAAGGCTAGTTTTGGAACAAAAGCCGCCCACATGGCTCAAGATCAACCCAGAATTCTCCGAGACGACAACTCGCTGAGCATTCACAAGGATCACTTCGATAGAGAACCGATAGTGCCGCGGGAACTTCGCTGATCTCGCCCAAAGACGTTCGGATAGCAGAAACGGAAGAACGGTGAGAATTGATTCGATGAAGGAGTTTCTAGCGATACATGAAGACCGAGAACTCGCGTGATTTGGAGGGCATATCGGATCTTCCCCTCGCGGAAGATCACTTCGTTCACTGAATGAGTTGAGCAACCAGAGAGGCGCCGATTGTTCGGTTCTGGAACAGGAAATTCACTTGTTAAAAAATATAATATGTTCTTAAAGCTATCACTATTTTTTTGAATAAGAAAAAAAATCACAAAAACTGGAATACACGAAAAAGCAGACAGAAATGTTTTTTCCCGAATCAGTTCCATATTGCAATTTTTAATTTTTTTTTTTCAGAATTAGCGATTTCCTCTTTAAAAAAATTCAGAAGATTCTATTCGATTTTTTCGGAAAAAAACAGGTCGAAAAATTGAAAAAATTCCCAAAAAGTTTGGTGTTTTTTTTCAGTGAAAATCTTTCAATTTATCGGGGTTTGTTTCGACAAAAATAATAAAAACCAGATTAAAATTTTTCAGTTTTTAGTTTTCTTTTCAGAAACATTGAATTTTTTCAATCCGAAAAATTAAAGAAAGGTATATTTTTTGAAAACACAAAAACGGTGGAAAAGTGTTGGTTTTTTGTAAATTTTTGCGTTTTCCAGCAAAATTGCCAATTTTTCCGAAAATTTTCAGATCGAAAAAATATCGATGTTTATTCTCCGAGTTTCAGCGATTTTTTTTGCAGCAAAATTTCAGATACCAAATTTGACATTCAGTTATGTTCCAATTTATGAAAAAAAACTTGAGACCAAAGTGCGGCACGGAAAAATGGGCGCAGGTTGAGTGGTATTTTTCTCTCAAACTAGTCCTTGCCCTGGTGATCACCGTCTCAAAAGTGCGTGTGCAACGAACTCCGCCGGATTTTTCGTCGCCGACTCCTGGCAGACCAACTGGAGCTTGACCGCAATCGCGGCCGCATGCCGAATCGCGTCGTCATCGAGAATCACTGATCCTCAAAATCGCCTTGATATCATCAGCTACGGCGAGTTGCGCTTTGGCATCATTGTCGAACGCGGAGGTTATGAAGAATCGAGGAGACTGGAAGAGAGCCGCGAAGATTTTGTTGGAATCAGCGAGAAGGATCTTTTCAATAGCGTAAGCTGCGGTACTTGTGGAATCGGAGTATTCGAGCTGAGAAGCGCGTCCGCCGACTTGATCGCAATCGGTAAGGTGCTCTGGAGCTGTTTCCTGAAAGTGACCGCAAACTTCAGTGCATCAGCTTTAAGGATCGCAGTCTGATTGAGATCGGTGTTGAGGTGTGTCTTGTGTGATGAAAAAATGAAGTCGTTGATGTCCACCAGCGGGTTCGTCGACGTTACTCCACTCTTAGCAGTCTCCGTCTTCACCGCGATCGCCGTGATCAGCGAGTAGACAATGTCGATCTTGATCCAATCACCACTTGCAGGTTCTGCACTCCCCAGACATGGAAGCCGCCTCGAATCTTCCGACAGAGACCTCGCGCAAGATCGATGGCTCAACGGCGGAGTTCCTACATCGGTACCCTCGATGTCTTGCCGCTTAATATAATCCAGTGGATCAGCCTCGATCAGTTCCATATCCTGTTGACGAAGCAGAAGCTTCTGAACGCACACGTTCTCGAGAGTCTTCAGAACGCTTTCACCAGTGAAGTGTGTAGTACTGTCACTGGCTGACCATCGACAGCAATTCCAGCGCGGCGCACACCATAGTATCGTATCGAGTGTCGGGGCCGGTAGACTTGAGCAGATTCCAGACGGCAAGGAGGATGTCGGGCACGAACGGAGATCTCTCGTTGCGTCGCGAGTAGTGCGCGCAGATCTCACAGATCTCGTGCTTAAGCTCGTCCAGAGTTGTAGGTTCTCCCGAGTTGGAGGTCTGCGTCGGCGCAGTCGATTTGCACGAGATGCAAGAAATGTGGGCATCCAGTGAGACTCATTGATCCTCGAAGGCCTATTCCGGAATCCCTGTGAGCACAGAGAATGGTAGACTTTTGCAATAACTAAGACTCGGAGCCATTGGGCGATCACGTCGGCTCCGAGTTGATCCTTCCGCTGTCTCACCTCCATCATGTTCCGTAGCAACAGAGTAAGAGGCGATCTTGGGGCTGAAAAGGTTCTTTTCATTTGTAGCAAAATCTGGGGACAGGTTTTCGGTCCAAATTCGAGACTGACATTCAGATTTCTTCAATGGCTCACCTAAAAAATTTTGAAAATTTGTCCATTTTTATAGAACGAAAATTATCAATTTTCGCCAATAATTCCTCATTTCAGCGTTGCTTTAGTTATAATTTTTGACTAAAAAATCATAAAATGTTGAATTTTTCACGATTTTTCGGAAAAGGCCAGCTTTAGCTAGCTTACAATGTCTAATTTATTTTTTAGGGTCAAAGCGGACAAAAATTCACGACGGCTGCGACGATTGTAAAAAAGTGGCCCGAAAATAGGGGATTTCGATTAGCTGAGCCAAATTTTGAGCCAAGCAACTCACGCTCTGTAGACACTTCTGCGTTCAGCTCTTTCCAAAGCTCTGCTGACTTGGATTCGAAGCGGAATTTGCGGAAAATCTGCTCCATGCCAGCGGTAGGACACCAGGTGATCGAGATCCGCTCCGTTCAGGCATTTCGACAAATAACCAAATCTGGCCATTTTTAGGGAAAATCTCTCTGAGCGATGTGATACAGAGCATTGGACAGGATGCGTTCCTGAACACTGGATTTTGTATTGAACATCGCTTCGAGAAGCGTGCTTCTGAACTCTGGCTCCTTGTCTTCCGGGCCCATTTCTACCTCTGGTGCCGGGAAACAATTTCTAAATATTCACGGATTTATTCAAATTTTCCAACCCAATTTCTATTCACAAAATATTTCAAAGGGACAGCCGCGGCGATTCGGATCTGTGGAGCTTTGTTGCTGTTTGACCACCAGTTGAAGACTTTGAATGATATAGCGTGGATTTGAATGCAGCGAGCGGAGCGCTTCTTCTCTTGCGTATCGCAGCCTCCGGCTCCAGAGTCTGCTGGAGAGCTGCTTCCCGATTTGCTTCATCGGGCAAAATTACCTAGGGAAAAATAGCTGTTTTGGGGGTGAAATAGGGAAGAATTGGGTAAAGGACAAAGATAGTTTAGCTTAAAACTTGGAATCATATTCCGGTCAAATATTAAAGTTTTACGCAACTTTTCGCACCCGAATAAACTCGCTAAAATTCGCAAAAATAAGAATTTACAAAAGTGTGAAGTGTTTACAGCGCACCCGACCCGACGCGCAAATTTTCTTCAGTATGTTTCCATCGTTTTCACTGATTTTTACTGTTTTTTATCCTAGTTTTCCCTTGATTTTCTTCAAATTTTCCACTTTTTCAGAAACGTGTATTAAAAAATAAAGCGTTAAAACATTTCAATTCCTTCAAAACTTTGCAAAATAAAGGCGTCGTTGCGTACAATGCGCACGACTTGACGCGCAAACTTCCCAATTTTTAGTCTTAAATTTTCCTGGATACCACTGGTTTTTTCTCTGTTTCCCCCTTTTCGCATTTTCAGCAAACATGGGTGTTGATAAAAAGCAAAAGAATAACCAATCCATGCGAGTTAAATTTTAACAAATGCATAGCATGTCGTGAGTTTTTCAGAATTTTGACGAAAAAATCGATTTTGCTCGCAGATTCTCGGCCGGACTAAAAAGGGCGACAAGGAGCACCGACTGCGTCACGAAAACGAGCTCACGAGCAACGTGGACAGACGCTAGGCGTAGAAATGACCGGATAAGATTAGGAAAATTGTCGACAAACGGGTCGGCAGGGAAGCAAAGAGACGGTCTTGAAAAAGCGAGCAACGAGGAGAAGGGCGCGATTAGATTCACAGATGAAAGAGTCAAATGAATTAGAAAAGAGCATCGAAATTCAACTTGACAGATGATGGATATGAGGAGGAAGAAGGTTTATTCTAAATTGAGAAAAATTTTAATAAAGTAAATTTCAGCACTTACTCACAAGGGAAAAGCGCTCTCAGACATTGAAAAATACGACAAATGATTTCCGACTCGGAGATTGAAGAGGCAGGAAATTTGGGCTCAAATATCGTAAAAGTGGCTCTTTTCGGTGGTGGAGAGAAGACCGCCGAGGAGCAGTCCGCGAAAAAATCACCCGAGAGGATATGATTTCGAATTTCATTGCGAAAACGAAGCTGGCGCGTCACGAGAACAGCAGCGTGAAGGATGAGCTCGAGCTGATGACAGAGTCGTTGGATCCCAAGTATCAGGCATGGGCAAAATACCGGAGGCTTCATTTGGGCCGACCGGGCGCCAGCCGTTGACAGAAAAAGATGATTACGACACAAATTGTACGGGAAACATCCCGGTTTTCTCCCCGGCAAATTTTTAAGACAAAAGATAATTATAAATTTAGAGTGAAAATCGATTTTTTTCACAATTTATGAAAAGCTAAAACCCAAAAAACATGATCTGAAAATGCTAATTTCAATTTAACCATTTTTGCGATGGAAGATTAATCGGAAATTTTCATTAATTTTGCTGTAAAAGTTGAAGAAATCCAAGTTTTAGCTCTGTAATCAGAGAAAACACTGTCAAATTATTTCGGAATTTGTGCAATTAAGTGAAAAATAAAAGACATGTAACTAATCGCGAAAGAAATTGAGCTGAACTGAGAATTTTTTTGACGAAAAATCATTAAAAAGTCAATTTTTTTGACAAAAATTCGAGAAAAGTAGGTTTTTCTTTTCACAAAAATGACTGAAAAAGGCAATTTTTAATTTAAAAAAATAAACCCATTTTTCGCCTAAAAATAACTTTAAAGAAAGCCGTCGTTTTTTTACAAAATACAACAATTTAAAATAGCTATGTTTTCGACATAAAAATTAAGAAAAAGCCAATTTGTTTAAAAAATGATAGAAAACGGCTTATTTTTTGTTTCGTACGCCTAAAAAATCAAGCAAATTAGGTTTTATTCCATTTTATATCAAAAAATTATTATTTTTCCCGACAATCACCGTGATAACCGAAGCCGCTCGTGCCACCCCAGCAGATCGTACGCTATCCGAAGAATAATGGAGAAGCTCTGAAAGAAAAAGAACGTGACTCTCGAGGCCGCCCGTTCGATAATGCATTTTTCAACGCATCTGATTTATCATCGCCGATGCCGACGTTGATATCGGACATGCGTTGGATCGAAGGCCGACGCCAGAAAAGTTCAGACGGCGAAAAATGCCAGATTTGAGGTTTGACGATGAAGGTGGCCTGATCGATGAGGATACGGTGGAAAATTCCACGATTTTAAAGAAAAATCTGGATGGTTCTGTTGAATCTGAGGATGACGAGGATCTAGAAGATGAGGAAGAGGATCTGGATGATCTACTGGAAGATGATGATGAGCTGGAAGAGGTGAGATTCCGATGATGTGGAAAGTAAGCCCCAAAGGTCGGCAACATAGCGAAAAAATCTGCTTACCAGAACCCGCTGAACTCTGCCATTCGTATTCGAAATGCCGAAAAACTATACAAAATTCTGAGCTCTTCTGGAAACACAGGAATCGATGGCTATTTAGTGCTGCAACTCGACTCGTGAAATGTCATCATCCGAGCCTTAAAGAAAATAAGAAGCGTCTGAATAAGCTTTTCCTCTTGTGTTTAAGATGGTTTGATATGTGTCGAAGGAGGAATTGACAGCGGAAAGTGTGAAGGAAATGAATTTAGCGCAGGAAACTTATGGGAGGCATGCGTTGTGGTATGAAGGTAGCGATTGGGGCTGGAAAAGCTGAAAAATTACCGCACTTATTAATCTGAAAATTGAAAAAATTCCAGAATTTTTGACCTAACATTATGAAAAATTCCCGATTTTTAAACCCCAAAAATTGCAAAAAAGTCCCGATTTTTTACCAAAAAATGTTTTAAAATCCCCGAATTTTTTACCTAAAATTGAAAAGTTTCGCTATTTAGACCCAAAAATTGCAAAAAAGTCCCGATTTTTACCAAAAAATGTGTTATAATCCCCGACTTTTTGACCTAAAAAATGCAAAAAGTCTCGATTTTTAGACCCAAAAACTGCAAAAAAGTCCCGAATATTGTTACCAAAAAATGTTTTAAACCCCGAATTTTTGACCTAAAAATTGCAAAAAAGCCGGTTTTTTTACAAAGAAATGTTTCAAAATCCCCCGATTTTTTGACCGAAAAATTGCAAAAAAGTCTCGATTTTTAGACCAAAAATTGCAAAAAAGTCCCGAATTTTTTACGAAAAAATGTTTTTAAATCCCCGAATCAATTTTTTGACCTAAAAATTCTGCAAGATAAATTCCAAAAACTTTGGCCAAAAAATTAAAAAAAATACCCGAATGTTTGACCCAAAAATTGAAACAGAAAAAGCCCCGATTTTTTCAGAAAAATCATGTGAAAAAACCTTTTTGAAAATCAGTCTCGAAAAAAAAAAGAAAAACCAGGAAAATCCTGAAAATCAGAAAAAAATCATTAACAAAAACTAGGAAACGATCATGGAAATATTTTTAAAGAAACATTATATAAAAAATCATTAAAATTTCAGAAAAACAATATGGAAAATCCTGATAATAAAGAAAATAAAATGCTCTATTAAAAATTTAAAAAACCAAAAAATTCAACAATTGAAAAACTGCTAATTTCAAATTGTTTTTTGCATTTCGACATTCAATACGGAGTCCGATGTGTGCATGCTCTAATCTGTCAACACTGGAAGCTAGGCCGCCAGGACAACCAGAAGAGTAGCCCAGTGTTGGATTAATCTCTCAATTCGTCTTGTCTACGGCCTCTTCCCAGTTGCCGATTCCTGGCAGCCAGTAGTGGTTCCGGCTCTTTTTTCAACTGAAGCACTTTGCTCGGCGAAATGTGCCAATCTGACTGTGATGCGTTGGCTAAACAAATTCATAAGTTGGCTAATGCTATTCTTGGATTGTGTCTGAATCCAAGAGGTAATACTTGGAAACGAACATTTAAATAGGCAAATTTTGAAAAAAATACTGAAAGCTTTGATATAGAATAGGAAAAGAAACGAAAAAAAAAGCCAAAACCAAAACCCGCAAAAATATTAGTTTCAAAAACTAACGAACCTCAAACCCAAAATAAATTCAGAATTGTTGCTTAAAAAAATCGATTTTTCTCGATGAAAAAAGATCTATAAAAATTCAAAAAAGCAATTTTTTAAAATATAACTTGATTTTTATTTCTGAAGTTAATTTTTTAACAAGTAATTGCATTAACTTTCCATTTTAATGTTAAAAAAAAGCGAATTTTTCAAAAATTGATATTTGTTTTGGCAATTGTTAGATCAGAAAACATTGAAAAATACAAAAACCCCGTTTTGTTTTAAATTAATGGTTTTTTAGAAAAAATTGCAATTTTTCAAAAATCTTGGTCATTCTGTCTCTAATATTAAGTCTCCTCGTCTCTTTGAAAAAACTTTAAAAAACCTCCGAATTATCTAAGCGTATCAAAATTTTTGAAATTAAAAAAAAAACCGTACTCGACATTTTTACGAAAAGTTGAAAATTGTTTTAAATAAAATCAATTTCAGATACGTCCCCGAGCTGGTCTTGCTCGAAGTGCACTTCTGCTTGCAAGTTACAGAGAAAAGTGAGAAATTCGCGACAAATGGATTCCCGATTTCCAAGCCGCACACGGTGTTATGGAGGAGAAGGTAAATTTATAAAATTTGTTTTTTCAATAAAATGTTTTCTTTTGGTTTTCTTTAAGAAGATTTGCTTAAAAACGCTCAATATTTAAAAAACTGGCAAAATCGAATTTTATAATATAAATTAACAATTTTGTTCAAATAAAATTTTTTTTGAAAATTTATTTTTGAAATTTAAAATTTTGAGGAAATTTTCACAAAATTGCCAATGATAAAATGTTTACTTTTTCTTGTATAAAACTGCTTTTTTTTAAAAGCAATCCGAATAATTTTTTAATAGATTGCAGAAAAACCGAAAGACCTCCGTTTGAAAAACGAAAATCAGAGTCAGTTTTTTTCCGAATTTTCTATTTTTCAAATTAAATGTCGATTTTGCAAATACAAAACGGTTAAAAAAAAACTAAAAAAATTGCCGAGAGTCCAAAAAAATATTAGTTTATTTTGAACTTTTTTTTTTAGTAAACACGGCCGCCTTGGCAACGAAGGGGGAGGGATTGCTTGCGCGTTTCGCAATGCGCCTTACGCGTGCTGGCGCACTTCTGAAAGCCTTATTGAATTATTTTTGCGGAAAAAATTCATTTCTTCTATGAAATTTTCTTGAGAAAGCTAAGGAATGATGAAATTTTATAAAATAGTTTTCTCAGTTAAAAGGAGAATACCTTGCTGCAAGAGGTTAAATTTATTGAAAGAGAAAATAAGAAGTTTATCTTTGTTTTGACTACATAAAGTGGGGAAATCGCAAAAAAATTTGAAGACAATTAAGAAATATAATTAAATATTTAATTGCCCGAAAGTAAATAAGAAAGTTTGGTCACAAACAATTTTATTTTTGAATTAGGGAAGTGTTGAGAAATGAGCATGTGCCAGAATCACTAAATCTGAGACATTCAGCCCAATTTCTCTAATTTTCTTTGATTTTATCATGGAAGTGTGGCTTTTTCTGTGGTCTTGCCCGTTTTGTTGAAATTGGAAAATCCCTTGTGAACTGGGAAACTAGCAGTGAAGCTTCCATAAACAAGCCTTACTGCCGGAAAGGAAAGTAGACAATTGGAAAACTAAAACCGAAAGCAAGCATTAAGAAGATCCCGTTTTTATATATTTGATTTGCAAGCATTTTACAGTTTTTTCAAGAATTCAAACTTCTAGATTAAGTTGAGGCACAGAACTCTAAGATGGTAATACTAAGTTTTATGTTGAGAATAGCCAAGAAAGACTATCTGGAAAACATTGCTTTCAATCATTTTTTGTAAGTAATGTAATGTTGAAACTCTTAATAGTTCAGCACTTTGTATGGCTTCCTAATTTGACCCCGAACGTACAGTAGTATGTGGCAAGAAATAAAATATATTGTGCAAATTGGAGCCGAAAAACCCGACCATGATAAAATGTTAAATACGTGTATTGCTCTATTAAAATACCAAATATTAATTAGATTCACTGTCTCGGAACTCTTTTTAATTCAGATTAATTTTTAGCTCCTCTTTTTAACGTAAAATCTGGATTTATAGAGTTCGATCCTGATTTCAACAGGTACATAGACGAATTCTATCTTAAAATGACGAGAAAAGTTTGCTCTATAAACTTTGAGATCCAGGTTATGAGAAAAATAAATAAAAATTTAACTATTTTAAAAAAAAAAATCCGAAAATTCAGCTGTTATTTTCAAACAAATGGTTCGTTATGCATTTCCTCGACCGAACGATTTCCGAGAATTCTTGTTACTTTCGTTTCAGTCTACTTTATGAACACCTTGTTATCATTGATTGAAATAGTAACTAAATCGACGAGTAAAACTAGTAAAAATAGAGGGAAATCACTCTTCAACGGTTCTCGGTGGTGTCGACGCAATGAAGCTGCAGCAAAAAAATTTTGCAATTTCGGTCATTTCAGCTTCAAAAAGGTGTAAAACTTATTAAAAAATTAAATTTCATTTCAAAAAATTAATTAGTCATATGTGCTAAAAAATAAAAATTAGAAAAATTCTAATTTTCAGCGAAATTTCAAATTTATTTTTATTTCAGAAAAGGATTCAAATTTTGGCTTTCAAAACAGCTTACAAAATATTTATTTTTAAAAAATCTAAGAGCTTTCCCATTCTACGGGGGACCCGCACTCCAGCCACTCTCCCTGACCACAATAAACGCTTCAACAATTCCCCATCCGACCAATTACGACTCTATAGAGCTTCACGTTCATCGTGCTCTGCTCTCCCTCATAATCCAACATCTCCGTTTAATCTACGCCAACCAAAATGACTATTCTATCGTTTTCAAGTCATTCCTCCGGATTTTGGAATCAATTCAAGCCAAAAATCTTCAGCCGAGGTCCAGGACTGAGAGCTGGAGACTCTGTGCGTCTCAATGAAGGCTGAAAATGGAGCCGTGCCGTTTCTGGTGCACCTATCGCTGGTGAAAACCGCAAAGAGCATGCTGAAATGCTGGAACCTCGACTGCGTGGGATTTCGATCCGGAACGCCCCCATCACGTACCCAACAAACGAGAAGAAGAACGCTGACGAAGACTCTGAGGAACGAAAGACGTGGAGCCATTACTCAAGGAGAGCTGCTCAGAAAAGGATACTTGGGGCATTCGTGGCCAGGAAGCAATTGTCGAGTGCCAAGACGCTAAGGATCGAGCGAGAATTGCTGTGGCCACGAAACGTGTCATGGGCGGTCTTATGCAGGACAGCATGGGCGAGTGGATTAAGGAGAAGCGTACGGCGGATGTTGAGATTAGAAGAATAAGGATACTTGAAGAATTAATTTAAATTTTCCTATTTTTTGTTTGTTGAGAATGACTTTGGTATCTGGCAAAAAAAACCACTAAATTTCAGTTTTTCTCGATTTGTTGAAAAATACTCATAAAACTGATTTCTATGTTATTTTTGGCAAAATTTGCCTTTCCCCATTCAAACATTTTTTTTGCCATTTTTCCTCCATTATTTTTTTGTTATTTTCTTTTTTTTTCGTTTTTGTTATGAGATATGTTTCTGTTCTGTTGCCATTTTTTATTATTGAAAATTAAACGAGTTTCCTGAATTTTTTTGTTAACCCAATTTTTTTGAAATTTTCCGTTTCACATACGTTTGTCAACCTATCTCGATTAATTTTTGAAGTTTTCCAATTGACTCGCGCATTTTTTAAAAAGTTTTTAAACTGTACATTGACAATTACACCCCTCTAACTCGATCTGATTTTATTCAGATTTTTAGTTTTTTTAGGTGAAAAAGTTCTTGTGCTAAATTCATCCATTATAGTTCGTAATTCAGCAAATTTTGGGTCCGATTAAACTTTGAGCGATTTCCAATTTCATGGGAGTTTCTTGTTCAGAATATGTCTCGAAATTTTCTCATTTCTGGAAATTTTGAGTCTGTCACACAGTGTTCCGTAATTAGCTCGATTTCACTTACATCTCCTCAACTCTGCAAACTCTCAAACTTTCGGAAGGGTCTCGCCATGAAATCACGGGTGGGCGGAATTGCAGTTCGGCAAAGTGCCGGTTTGCCACGGATATTGTCAATCCCGGATTCCGTTTGCCGGAAGTTTTTAAACGGGATCTTTTATAAGACAGACGGAAAGACTTAAAACTGATTTTTAATTTTTTGCCCGTTTTCTCTAAATATTTTCATAGAATTTACTGACTTTTTAGGATAGATGTTTTCATGGGATGTGCACATGTTGTTCCGGCAAATCGGTAACTGCCGAAAAAAAACGACAATCCAAAAAAATCGTTTGCCGTTCTGTATTGTACCCTTTTTGGCGAATGTGCGTAAATTTATATGTGCTTGCGTGTGTAATATTACGTTCATATATTCTAAATATCCGCACCTTTTGAATTACTCATAATCTATGCATTTACGTACCGCGAATATATTTTGGGAATACACATTTATCATCATTCCCACCCGTTGCCATAGTATCCTCATCCCCGCCCCGCCCCGCCCCTTTCTCTCTTTCCTCTTCCAAATCCTTAATGGCTCATCCGGTCATTGGAGAGAGAGATATGGCAGATGTGGCGGTTTTGCCTAAGCAAATGCTCTGGAAAACTCGTATTTTATATAACTATGTAGACAATTTCGATATTAAAAACATTTATATGTAAAATTTTCATTTTTATATGTTGAATTTGCTCGCCGAATTTTGACTTACATTCTGACAATTGTGTGTATTTAAGAGGGTTATGTATATTTACGATATATTTTTAATCAGTTATCGAATGCTCATTTCCGTTTTTCTACGAGTTGTCTTCATTTTCGGTGGTTTTTTTTTGTTTTTTTTTTTTGAAAGTGTATTTTTTAAGTTCAAAAAACTACAAAAATGTTTTCAGTCAGGATCAATTTATTAGGTTTTTTCAATATTAAAAAAGTTATTGGGAAAAATGAAGTGAAACTCGTCGAAAAACGAAAATCATCATTCGATAAAGATTAAATATTTAGTAAATTGACACACATGTAAGTCTCCGCCGCGAAAAATCGATAAATTTCATAGAGGCATAAAAATTCACAATATAGTTTTTTTATTTTTTATTTTAATCCAAATCCCTATGCATGCTTAGTGCGAATTTTTAGCTGTTTTCTGTAAAAAATCAAAATATTGTATATTACATATCATAAATTTTTCCCATTTTCTCAAACGGATCTCGCCACGACAATATTAAAAAATTCCCGTACTTTTCTCCCGCAGGAATGCCGACAACGGAAGAAGCTGCCAAATCGCCGCTTTTCCGACGCAATCGACAATAATGACACTGAAGCAGCGCTGGCACTGCTGAAAACGAAGGAACAGGCCGCTCACGGGATAGTGGAATGAGTGCCTGCTGGCAGCTACTTGCCGCGTATAGGTATGCACTTTAAAGCGGCGACGGTTACTTTGGATCCTCGCAGATTGTTTAAAGGTACATACCGTAATCCATTGAATTTCAGAGGAAATCTTACGTTGGTCGAGAAAGCGATTGAGCTGAAATGTGAATGAGAAAACCGATGGAACTCTGTACACTCCACTCATGTTTGCCGCCAGGTAGGCAAAAATTTTTTAAAAAAATTCCGGATTTTGCGTCAAATTTGATGCAAATTCTGGTTTTTTTTCCGATGATTAAAGTAAAAAAAAATTCCGAAAAAAATCGGATTTTTATGCTAACAACTAACTTTTAAATGAAAAATCGTGGAAAATTACAAATCACGTAGTTTTGATCTCAAATTCAATTTAACGAAAAGTCAAATTTTATGGTTTTCGCGGTGACCAATATTCGCCAATTTTTTTTTGCCCCAAATACAACACATTTGACGCGCAATTTCATTTGAAACTTTTTCCCGTTTTTACACTCTTTTTAGACTGAACCCCAATATTTGAAGGCGTAAAAAAACAAATAGGACCAATACACTATATCTTACGCGCAAATGTTAAATTTTTATTTAAAATCCTCGTAAAGTTCTATGTTTCTTTTTTTGATCGTTTTCAAGCTCAAATCAAGTTTCAATCCGAAATATTACCGGAACATAATAAATGCGTACTGGTCAACATATTTGACGCGCAAAATATCTCGCGTACAGTAATTCATTAAATGACTACGGTAACGCTTGTGTCGATTTACGGGCTCGTTATTAAAAATCATTTTTCAAAAAAATCGAGCCCGTAAATCACCACAAGCGCTACCGTAGTCATATAATGAATTTTACCACTGTAGTTTTCTATAGGCGAGATATTTTGCGCGTCAAATATAATACACAATCTCAGGACTAATTTTGCGTTAACGTATTACTCTACTTTCTTAGTTTTTCCAAAAAAAAAATTCGAATACACCATATTTAGACGCGCAAACTTTTTTTTACGTTCAAAGCAAAATTGTCAAACGTTTGCAGGAAAACAGGCACGTATGCCGCCTGAATGGACTCCGCAGCCCGTATGTATTTGGTGAATGGAATCGGAAAAACCGCCTCTGAACTGGCGGAGGCATTTGTGGGTCATCACGAGTGTGTGGCAATTATCAATAATCATATAACAATTGATGTGATCGAAGATCTTTTGCGGCCAAAAGTGAATGGAAAATATTATCGAATGAGCTGAGGAATAATGAGCTGGCTGTATTTATTCATTCCTTGTGTGGATCACATGAGATTCATCCTGTTAAAATTATTTTTCGATTCAGTAAATATCCAGCAATTCGTTGAAGTACAAGAAAAAGGTACATAGCTGTGTAGTTTGGAAAAAAAATGAAAAATCTGAAAATTTGAGAAATTTCCTTAAGCTTTTTCAAGATGCGCATTTTTGTTCATTTTTATTTTCAAAAGAAATCCAAAAAGTTTGTTAAAAAATTTAATGAGCATTCTTTTTAATTTCAAAACAAAAAAGTTATACCAAATAAAAACTTTTAGTAATCAAAATTTTTTTTCTCGGTTTTTCTCATCGTTTTTCAAATTTGAGATCTCTTCCCGAATTTTGCCTAAAAATTGATTTTTTCAAAATAAGAACTGATTCTGTGAAAAAATGTATGAAAATGCGAATCGCAAATATTCGAAACTAAAAAAACTTTTATTAAAATAAATTTTTGAAATTTTTCAGAATTTAAAAATTGAATCGAATTAGGTCTCAGTTCAGATCACGATTTTTTCGAAGTTCTGAATCTGTTAAAAACGAGAAATTAAAAAAAAATTTGATGTTAAATGTTTTTCGAGATTAAAACCGAATTGACAACCCAAAGAAAGTGTATCATGTAAAATGTTTTTGTTATAATAAACCAGAATTTTCTCGAAATTTTCAGAAAGTTCTAGAATATTTCAGAATTTTAGGCTCTCGAAATTTCCAAAAGGTTCTAGAACATTTTCAGAATTTTCTCGAGATTCATTTTTCAGAGGGTTCTAGAACATTCCAGAATTTTCTCGAAATTTTGGTTAGAAGATAGTAGTTCAGAATTTTCTCGAAATTACCAAAAGGTTCTAGAACAGTACATAATTTTCTCTGAAATTTCCAGAAGGTTCTAGAACATGCCAGAATTTTCTCGAAATTTTCAGAAGGTTTTAGTATATTTCAGAATTTTCTCGAAATTTCCAATCGTAAAGGTTCTAGAACATTTCAGAATTTTCACGATTTTCAGAAGGTTTTAGAATATTTCAGTAGCAATTTTCTCGAAATTTCCAAAAGGTTCTCAGAACATTACAGAATTTTCTCGAAATTTCCAAAAGGTTCTAGAACATTACAGAAATTTCTCGAAATTTTTAGAAGGGTTCTAGAATATCTCAGAGTTTTCTCGAAATCTCCAAAAGGTTCTAGAACAATCCAGAATAATGTTTTCAAAAAATTCAAATTTGTCCCGCCAAAATGTTTGCAAGAAATTAAACTTCGAATTGCCAAAATATGTACAGTACTCCTACAGTACCTCTACAGTACTACTACGGTACACCGAACGTCCCATATCCCACTACTAACCTAACCTATATCTCTTCAAAAGACTAGAACACAATTTTTCCTAAACTACAGTAATCCTACCGTACTCCTAAAGTACTACTACAGTACCCCCACCATACTCCACTGCTAACCCCAAACCTATATAATCATCAAAAAAACACAATTTTTCCTAAACTAGAGTAATCCTACCGTACTCCTACAGTACTGCCCTACGGTACTACTACAGTACCCCCACCATATCCCACTACTAAGCCCAAACTAATATCCTCCATCAGCCAAAAATGCCTTGCCCCAAGTTTGTAAACAATGAGGTCTCTAGTTGATTAACAAACGGACACTATTTTTTTATTTTTTTCAAAGCAAAAACCATCCATTTTCCAGATCCTCTATGTCATGGGTATCGTGTCTTCGAGAAACAGCTTCGATGTAGGGCAAGCAATGAAATAATGTCGCTCAAGCTTTGGCTAATTCTATTTTCAAGGCGTGAAACCTCGAAATTTGTGGAGTCGAACAAGGAAAAGTCGCCAGTAGTACAACCAGGTACGCAAAACTGAGTTCCACGTGGCAAGAGGTTGGCGATGAAACTAGGCGAGCACATGAACCCGCGTGATGAGAAATACGGTTGCATGCGTACGTTCCCTAACAGTATAAACATTCATTACTTCATGATACTCTACAAAAAGCACTGCAAAAAAGTCAAATTGGTGCGAACGATACACCCAATGTGCCACGTATGAATACATTGTTCAGGCACTTTTCCGACAACGAATCGCTGCCGTCTGCCCGTTTTGCTCGGGGGTCTTTGCGGACATCGGAGCCAAGAAACGGTGCTCACAGTGCAAGTAGGGAGTTTTGTGCTAGGGTTAAAAATAATTATTTAATAATTTAATAAAGCTCGAATTTGTGGAAATAATCAATCTCCAAATTTTAAAAATATGTAAAAAATTTTATTCCGTTATATGCTATTTTATAAATTTTCCCACAAACTCGGCATTTGGCTCTAGCTTCTTGCTTTAGCCCAAATAATATTAACTTGAAGCTGTCTAAACACGTTGGGAAAAGTTAGACAAAGACTTTGGCAAAACTTGGATTCAGCTTTACCAAGGTCTAACCCAAGTTTCACCCAACTCTTGCCAAACTTTGGCCCAAAGTTTTCTTATTTCGTTTCAAATTTGGGCCAAAGTTAGGGAAGAGTTGGGTGAAACTTGGGTTAGACTTTGGTATAGCGTGAAGCCACGTTAAAGTCTTGCCTAACTTCCCAAGTTTAGACAGCTTCTGATCCAAGTTAACATTTTTTGGGCTAAACTTGGGTAAGAAGCAAGAGCCAAATGCCGAGGAAATCCCGCCGAAAATTGAAAGTTCAAAATTTCAGCTTCGTTTTTAATTATTCTGCAAAATTTGGAAGTTCCAACAATTGTTTAAAGATTCTTTAAATTAAAAAAAAGAATTATTAAAACTTTTTAAACACCAAAATTCATTGTAGAAAATTCCGAGCGTAAAATACTCTTTGAAAATCCGGGATAAAATCAAAAAAAAAATAAATTCTAGACATTCTGCCATTAAATATCGAAAAAAGAACATGTTGTCTGTAAATGTATTAGTCAAAATTAATTCTGTTTTTCCAATCAAAATTTTAAGTGTCTGTAGAGACTTATTTGAGTTTCCTGTTTTTCCTCGTATTACTAAAGTTTTCTATAATATGCTGTGTTTGAAAATTAACTATATGTGAAAATATCGAGGCACAACGTTTTCAAGATCTGGTGAAATTTCGGATCTACGTTTTTCGGATCTACCATTTCCGGATCTACGTCTACCGGATCTGGCACCGTGCCAACGCGCAAAACGCTTTTTTGATCACTCGGCGCACGTTGTTTTTTGTAAATTTCTTCTAGAAGAAACGCTTAACCACACGCGACGCGTAACAACGGAGCATCGTTATCACGTTTTTCTCCGAGATTAAAATCTTCGAGCGTTTTATCAAGAGTCACGGTGCAAGACGAAAATGGTAGATACCTCGGGAAAACGGAGATCCGGAATTCCGCCAGATCTTGAGTGGTGCCTCAAAATATCGATTAATGAATTTTTTCCGAAAACCAATTTAGCTTCAACAACAGAATAGCTAAAAAGTGATCAAGAAAAACTCAATTCTTATAAATTGCAAACACTTTCCAAATTTTGATAAAATGGAAAAGATTTTAAAAATTTCAGGCAACACATTTTTTAACTCTAATAAACGTTTTTTAAATTCCAACAATTTTTACAGCTCGCCTACTGTTCCCAAAAAGAATGCCAAAAATGCGACTGGCCAATTCATCTCAAAAAAGTGTGCTCATTTCTGAAGAATTAACGCTACAAGAAGTGTCGCCCACCGACGAGACCGCCATGGCGCTGGACTCGGCTCAAATCGTGGCGCCAAAATCGAAGTGTAGAAGTGCCGATATTCGATCTCAATATACTTTTTTTCTGGTAAATTTATTTATTTTTATATTTCGGCTTCATCTCATTTCACGCAATTTTAATTTCATTTTCATAGATTCATTTTTGAAGTCATTCCTTGAACAGGAAAATTCACTAAAACATGCATTAAGAAATATGGAATCCAAAAATTAATCTAAAAACCTTTTCAAAAAACCACTTCGTCAAAAACTGATGATGGAAAACTCGTTGACAAAAACGGAAAGAGTATCCAATAAAGATTAAAAAGTTCGACATTTCGTAAATCGACACAAATCTCGTCGACAAAATCAATACCGAAAAAATCAGGAACCCAAGAAATTCAATATTCCCATTTGTAAAGACAACTCGTAAAACATTTTCAAATCAAGAAATTATTTTTTTTGCCCTCAAAATTGATCCTGAGTGAATACTATAAAAAAGAAAACTATAAAAAGTGGCGAAAATTCGAAATTTTAGCCCCTCTAAATTGGTTCACTTTAGTTGTCTAATGATACAACAAAGTAGACATAGGTTACAATATCTGATATTGGACTTGTCTAAACAAAAGTGTTTTCGTTTTTTTAACGGATTTTTAAAATCCAGAAGAGTAACGAAAAAAAATTATTTTAAGAGAATAGAGTAAACTATAATCATGTTCGAGAATCAAATCCGCCTAAGAATATGAGGTACGGACCCAAGTGTATCATAATTATTTAATTTCTGTGTATCAGAATTATTTTAGTTTCCTTACTGTGATAGGTTCCCAAACTGCTTAAATTTAGGAAATATTTCTTTACTGGACACTCTTAGCCACTGTACGCTGCCGATCCCAACGCATAATAAGAGAATACAGAACACCAATTATGCCCGAGAAAAAGATACTCAGAATATAAATATAATTTATCGGATGGATCGGCAAACATTGAAGACACTTTCTAATTACCCAAATTGTTCAGTATATTCTAAATCTAATTCTCTTAAACTAGAACCCTCTTGGCCAATGTACGCGGACGAACGTATCATAAGTAAATACAGAACACCAATTATGCCCGAGAAAAAGATTAGCACTCAATAAACATTAGTCAAATTCGGATGTATAATGATTCCCGAAGACACTTTCCAACCCACATTGTTCATATTCTAAATGAAATTCTTTTACTAGAATTGTCCAATGTGTGCTCCGAACGTATCATAAGGTGAATACAGAACAACAATTATGCCCGAGAAAAAGATCACTCAGAAAATAAACATAGTTGAATTTATTGGATGTATAAAGATTCCCGAAGACACTTTCCAATTACCCAAATTGTTCATATTCTAAATGAAATTCTCATACTAGAACACTCTTGGCATGTACGCAGCCGAAGGTATCATAAGTGAATACCAGAACACCAATATATGCCCGAGAAAAAGATCCTACTCAGAATATAAACATAGTCGAATTTATCGGATGTATAAAGATTCCCGAAGACAGTTTCGAATTACCCTAATTGTTCATATACTAAATGACAATTCGCTTACTAGAACACTCTTGCCAATGTACGCAGGCGAACGTATGTGAATACAGAACACTAATTATGCCCGAGTAATCCTACTCAGAATATAAACATAGTTAAATTTTGGATGTATAAAGATTCCCGAAGGCACTCTCCAATTTACCCAAATTGCTCATATTCTAAATGAAATTCTCTTACCACTCTTGGCCAATGTGCGTGACGCGGCCGAACGTCTTTTATGATAAGTGAATACAGAACACCAATTATGCCGAGAAAAAGATCCTACTCAGAATATCAATTAAACATATTCAAATTCAGCGGATGCATAAGGATTCCCGACTCTTTCCATACCCAAATCATTCTAATTGAAATATCTCTTACTAGAACACTCTTTATTGGCCTATGTACGCAGCCGATAACGTATCATAAGTGAATACAGAACACCAATTATGCCCGAGAAAAAGATCCTGCTCAGAATATAAACATATTCGAATTTAACGGATGTATGATTCCCGAAGACACTCAATTACCCTAAATTGTTCATATTTTAAATGAATCTTACTAGAACATTCTTGGGCCAATGTACGCATTGCCGAACGTATCATAAGTGAAAACAGTACACCAATTATGCCCGGGAAAAGATCCTACGCAGAATACAAACTTATTCGAATTTATCGGATGTATAAAACAAGGATTCCCGAATACACTTTCCAATTACTCAAATTGTTATTCTAAATGAAATTCTCTTACTAGAACACTCGGCTTGGCCAATGTACGGAGCCGAACATAAGTGAATACAGAACACCAATTATGCCCGAGAAAAAGATCCTACTCAGAATATAAACATAGTAAAATTCTGATGTATAAAGATTCCCGAAGACACTTTCCAATTACCCAAATTGTTCATATTCTAAATGAAATTCTCTTACTTGTCTAGAACACTCTTGGCCAATGTACGCTGCCTAACGTAACATAAATGAATACAGAACCCCAGTTATGCCCTAGAAAAAGATCCAACTCAGAATAAAAACATATTAGAATTTACCGGATGTATAAAGATTCCCGAAGACACTTGCCTTTCCAATTAACCAACTTGTTATTCTGACTGAAATTCTCTTACTAGAACACTCTTGGCCAATGTACGCAGCCGAACGTATCATAAGTGAATACAACAAGAACACCAATTATGACCCGAGAAAAAGAGCTTACGCAGAATATAAACATAGTCGAATTTATCGAATGTGATTCCCGAAGACACTTAATTACCCAAATTGTTCATATTCCAAATGAAATTCTCTTACTAGAACACTCTTGGCCAAGCAGCCGAACGTATCATAAGTAAGGAATACCGAACACCGATTACGCCCGAGAAATAGATCCTACTCACTCGAATATAAACATATTCGAATTTAACGGATGTATAAAGTCCCGAAGCACACTTTCCAATTACCAAAATTGTTCATATTCAAAATGAAATTCTCTTACTAGCACTCTTGGCCAATGTACGCAGACGTATCATAAGTGAATACAGAACACCAAATATGCCCGGGAGATAGATCCTACTCAGAATACAAACATATTCGAATTTATCGGATGTATAATGATTCCCGAAGACACTTTCTTACCCAAATTGTTAATCTTCTAAATGAAATTCTCTTACTCGCACACTGCCAATGTACGCAGCCGAACGTATCATAAGTGAATAACAACAATTTACCCGAGAAAAAGATCCAACTCAGAGTATACACATATTCGAATTTGATCAATCGGATGTATAAAGATTCCCGAAGACACTTTCCAATTAACCCAAATTGTGCATATTCTAAATGAAATTCTCTTACTAGAACACTCTTAGCCAATGTACGCAGCCGAACGTATCATAAGTGATTACAGAACACTAATCATGATCGAGCAAAAAGATCAGATCCAGAATATAAACGTATTCGAATTTATAGGATGTATAAAGATTCCCTATTGGGAAGTCGAGCAATCCACGGCTGGTTTATCGGCCACAGTCCGCGGTTAGGACATGGCTTATATTATTGGGCCAAGCGGAGCACCACCAGGCTGTGTACCTGACTTCCAGATCAGCAGTACATAGCACTAAGAAAGGATCGTCCTTTATATCTTTTAACCTTTTAAAAAGAATCGAAGGAACTCTCAGGGTCATGTGGTTCTGGGGACAAAGAGGGAGGCTTACATCAATACCAAACACTGGTAGATAACAATACCTGTGGTAGATCACAAGCCACCCTAGCCACAAAGAAAATCTGTGGACGTCCTCAAAGGAGGCCGCCGGCGCCCTTGAGCTGGCCAACAAACCCTTCGAGCAGGGTGGAGGACTACTCCAGCGACTGAAAACGGCGGTATTAACGCCACGTTGTCGCCCAATAACAAAAAGCCCTCGGGAGAACCTCAAGAAGCCCACGGCTTAATTTTCAAATCAATTACCTTACTATGAATCTCCTTTTGGCTCTACGAGTCGTCGTTGATGTTACCATCCATTCCGTCCTACCTGGGTCCCGTCAAACAGTCCATCTGACGTCCAACCAACATGGGTGGAGTGTCCAACGCATCTGAAATTGAAAAGTATTTATATCCACTGATTTTTTAAATGGAACCATTTACAAACAAAAACGGAAACGCTTAGGTAACCAAAAAAAAAAACAATTAGTATTTAAAACAACGGAGACAAATGCTCTCGCGTAAGTTATATTAATTTTCCAGTCGACTGCAAGGCATCTGCTCCCACGGGTTTATATAAAATTATGTACCTATTTTTCTTGAAGTCGACTTGTCTTGAAATCTTTCAATCAGTACTTTTCAAGAGTTTTTGGTAATTTTGTCCGTCGATTTTTCAGAAATTTCAAAAAAACGGCGAAATTCCAGTCAGAAGCCTCATTAATATATCACTAGTCCAGCTCGCTGACCCAAAAAATTATTTTTTTTGAACTACAGTAATCCGACAAAATTGCTACAGTACTATTACGGGACAGCCACATAACAAACTTTTGAAAAATGCGTATTGCGCAACATATATGACGCGCAGGCGCAAATATCATGTGTAACGAAAACTACAGTAATAATGTATGACTACTGTAGCGTTTCTGTCGATTTACGGGCTCAATTCTAATCGTAATGTTACACGACACATTTTCGCCAAATGCAAAAAGGTGTGCGCCTTCAGATTAAAAAAAAGTTGATTTTTGTGCCGGCTTTTAACACATCGAGAAAATAAAAGAAACGAAAGTTTGTAATTACAGTACTCTTCTTAAACGCGAACACCTTTTCGCTTTTCAGAAAAACTTGCGCCGTTTCGAAACCTGGTACTATACTTTTATAATTAAATCGATTAAAAATAAATTTTGCGGTGGAGCATAAGTCATCAACTCGAAAAGAAAAAATCTTGCATGCGGTAAAAAAAAAGCAGCAGTACTCCAAATCACCCATTGGAGAATGGCTGGAAATTGAAATCAAGTCTGCACTTTGAAAAAATGCAGCGTTGAATGAGAGAGGGACAAATCGAACAGCATTTTATAAGGAGTCCAAAAAAAATGTTTGTGGTAGGTCTTGAATCGTGCAACTCATCGTTTTAAAATCAATTTTTAACACTTTTATATCATAAAAGAATAGTCTTTCATCATCAATCGATTAAAATACCAACTCTCGAAAATTAACAGCTTTGTTAACAGCGCCGTCTACCTGATTTGAAATTGCTCGCAATCGGTGCCGCTCAACTAAATGTTTTGCGCGTCACTTAAAATGCGCCCTTGTACGTTTCAGAAGCGCGTCTCCTAAAAAATAAAAAGGCTAGTCCAATTTTATTAAACGGGTATTTAATTCATGTAAATATATGAGCTGCAAATTTAGGAAATCTAGGTTTAACCTATCAAAAACTATAAAGTGGCAAAAATGGGCAATTTATGGCAACAATTCACGATCTTGAATCTAAAGGGTTCATTATTATTGGTAAAAGAGGACTAAGAAATTGATATCCGAACCCTAAAAAAATTGTTTTTCAATATTCAGAAGATATTATGAAGTTAGTGTACTTCCATTTTTTCGATTGTACGGTAAATCAAAACTAAAGGTGGGCACGGGCGTATGATAAAGTTACGATCGTTCCAATCACCAAAGTCGCATAATCACAGCCAGAGCCTCACATGAAAACCCAGTGTGTGGGAAATTTAAAAATCAGTACAAGAAAGCCTCAAAAAAAAAACAAAATTACAGGAAAAAACGGAAATTTTCAGTAAAAAATTATAGGGTATGTACAATCGATAAAAAATTTATTGAAATTCAATCGAATTCTCCGTTTGCGGCGTTCGGATCGTTCACTGAGGAAGAGTAGTACGGGATGTCGAAGTTTGAAATTGAAGAATTCGCACCAACCGGACCCCTGGAAGTAGATCGTAGGAGCTGCAAAAAATGTTCGTGGCCGCGAAAAAAATCGGTGGCCGATTTTTGTTTTTTCGGGGCCACGATGTGACTAGTCGGCGAAATTAAAATTTGTTTTTTGGTAGTGTTCAAAACTGTTGTTCTGGTTGAAATTTTATCGAATTTTTTTTTGTGGTTTTTTCAACTAATTTTTTTTTCTGAAAATACTTTTAGAACAGTTCATTTTTTTTTCAATTTTGTTCAGACCCTTACTCCCTATCATAAAGCCTCGGAAAATCGGAATCCCATCCCTGAAACTCGTGAGAACCGTTCTAGCGTGTACTTCGACGGAGGCCGGTGAATATCCAGTAGGTCTCGTTTTGGACGACGGCTTCAAGGACACGACCGAACAGTGAAAAAGTTTTATTTATCAAAACCATTTTTTTGAGGAAAAAATTTATTGAAATGTTTTTTTTTTAATTTTAAAATTCCAAAAAAACGCAAAAGGGCAAAAAAACTTGAAAAAAATGTTCATTATTCCGACTCACAATCAAAGATAATGTGTATCAAAAAAAATTAATTGTTTTCTTTTAAAAATTAAGGAACTTATTTTTCTAATGGTTATTTCAAAAAAAGTTAAAAATAAATTTTTCAAGTGTTTTTCAAGAAAAAATTAAAAAATTTCGAAATTTCCGGCAAATTTTAATATACTTTTTATTTTGCCAGGGAAAATTTGTATAAAGCTCCGCATTATATGGATTTTTTGTATTGAATAATAAAAAATTTTTTTATTGGAAAAAATGATTTTTATAGTTTTTTTTTGTTAATTTGAAAAAATTTTATCACGGCAACTCAAAATTCTGAGAATGCGTACTGCCCAATATATTTGACGCGCAAAATATCTCGTAGCGAGACGACAGTAATTCAGAATGACTACTGTAGCGCTTGTGTCGATTTACGGGTTCATTATTTAAATGACTTTTTCGTATTATTTCTAATTCTTCATTTAAATTAATTTTAAAAATTGAGCCCATAAATCGACGGTACCGTAGTCATGTTCAGGAATTACTGTAGTTTTCGCTACGAGATACTTTGCGCGTCAAATATGTTGTGTAGAACGCATTTACAGAATTTTGAGCTGCCGTGATAGAATTCGCATTTTTCAAATTAAAAAAAAATTTAGTCAAAAAAATCACGATTTATTTTTGCAAAAAAATTTGTCTAATTTATAAAAAAAAATAAAAATAAAAATTGAGCAACGCTGAGAAATCGGGCCAGATTTTTTTTTGTTATTCTTTGAAAAAAAAAACTTTTGTTGGAATTTTAAATTACATAATTTATTTGGTTCAATCAATTTTTTGGTTAAAAAGCGTTTTTTTTTCATTCAAAAAAGCCCCTCAAACATGTGCCTTCTCTCCTTGTTCGGCTACGGCCTAACTAGCATCTCATCAGGAATTTTTTTCCGCCTGGCTTCTCCATCAAATACCACACACTTCCCACTTGAATTTCCCGGGCTCAGTGCCATGCAAGCCGATCCAGCTTGATTCCGAACTTCTCAGCATAGCCGGTCACAGGATGCATAAAATGTTTAGCAATATGAATTCGGAAGGATTCATCGTCCGATTCCGTCTCATCAGGCGAAATAATTAAAAAAGTCCAGGCGTTTTGCATATGTTTCGAATTGTTGAGACGCAAAATGACTGGCGTAGGTCAGAATGCTGAGTGGATCCAAAAGTTCAAATTTGTGGCCGACTTTTAATTTAAATTTGCAACAATTTTTCAGCTGAAATGTGGTTTCCCAGCAAAAAGTTGCTCGAAAGTGACGTCATCTTAATGATAACTTCCAGAACCTTCTGCGATCCGTCTGGAGATGTTCGAAATAACCTTCCGTAGCCTTAGTCCGCACCATAATCAATTAAGCATCATTGCAAGAATCCGACTGGAAAGAGGAAGAAGCTCGACTCATTCTACCCATCAAAACTCGACTTTTTCAGGCTGAACCTGCCGATCTTTGGCCTCTACGGAGATCTTCGGGATAATCGAGCGGTGACCATGACCTTCAGACGGCGGCCAAGGATAGGATCCATGCGACACGGATTTCTGGCTCCGAGTACTTGAGTCGCTCGCTTGATTCAGCCGGAAAAGGGCAGTGGGCAGTCAGGAGGCGGAGTTGGTCGAAGATTTTTGGATCATCATCAGAGATTCGATTTTCGTGCAGCCCGGCCTTGCCTGCCGGAAAATTTTTTTAGGTAATAGGAAAATCAGAAGGGTTTTTTGGAGTTTTTATTCAGTACACCTTATTTTTTTTGTTGTTTTTTTGAGGGTTATAAGTTTTTAGGTAAATTTTTTTTGTTGATATTCTTGGTTTGTTTAAGAATAAATCATTTAAGTTAGACAAAAATTCGTTTTTAAATATATTTTCGGTTTTTTGCTGGTTTAGTTAAAAGTTTTGTTTTCGGATTTTCATTTTGATAAAAATTGAAGCCTTTTTTTTTTGGTGTCTTTCTTAGGTTTACGAGTTTTTTTTTTGGTTTTTGACGAAAAATTTCTTTTAAAAAAAACGGACTTTTTAAAAATATGGGTTTTCTTAAAAAAATAAATTTCAATTTTTTTTGTTGGATAAAAAACTGTTAAAGTTTCTTTTATGGCTGAATTTTCGCCTTTTTTCACATTCTCCACCAGAAAGAACATGAAAAAAAACATAAATGAGTAAATGTTTTGAGTATTCAGGCAGTTTTTCCGCTCAGAAAATAATTTTGGCCGGATTTTCATGGTTTCTTACATTCAGAATCTCCTCTCTGCTGTTGGCCGTGGTACGGGCGGTGCAGGCGTAGATCCGCGTCGACAAAATTTCGGGCATGGTCGGTGTCAGCAAGCTCAGTGGCCTGTATTGAAGCTCAGCCATTTCATGGATCCTTGAGACCGCTGAAATTTCGCGTTTTTTTTTGGAGATTTTGTTGAAATAACCTTCCAATATGAATCGAAAATATTTCCCTCTGAAAGCATATGAAACCAGCAGGGTCTTCTAGTTCCCCCACAGGCGAATTTAATTGCCACGTAGAAGCCGCAGACAGCAGTCGCTTCGCCGAAACAGCCAGGATTCAGTTCTGGAGATTTAGTGGTTATAGTCCAGAGACGGTCGGACGACTACTTCTAGCTGAAAACATTAATCCAGATTATGGCTTTAAAGTTTTTTAACAGAAAAACCAACTCGAAATCTAGGTTTTAGGTGCTGATTTAGCTTTTCCAGCTAGGCAAACAACCCTCCAGCGCCTCGACAGGTAAAAATTGACTATTTCCATCATAATTACAACGGAGTTCATCTGTCCATGTGAAAGTTCCTTCAATTTGTGGCTTTGGAATCCGCTATCTCAGATTTCATCTGTTCGACGATACTGGAATAGCCGTTCTGATGTGAAATATCGGTAGTCTGCTTCATCAAGTTTGTAATTATATTGACGCTGAAAGTACTAAATTATGTTTTTTCGATAAAAATGCTTTGAAAAAATACGGAAGCTTTTTATTCGAATAATTCAATTGATTTAAATTAAACATCTATTTAAATTGTTTAAATTAAAAAGTTCCACTTCTGTACTTATCACGTCGAGACCCAACACATACCAAATGGGCCTTTATATAAATTTTAAGAAACTCAACATTTTACAAGAGTTTTACAGTTTTTTTGTCGTTAAATCGTTTTTCGAAAATAAATGATTTATACTCACAGTTAACTTGCTTCGTGCGCAACTTGAATATTAGCTTAAATTTCACAGTCTATGGGTTAAATTTCAAGTCCGACTGATGATACGGGAGGTGCGTGGAAGTACGGTAGTTTGTTTTGTTTTTTTTTATTTTGCCGCCGAGTGATTCAAAATTGAATTTATATCATCCGATTTTTTGATTTTTTCTCAATACTTCTCGATTTTTCAGGAATCTTTCAGTGTGATTTTCCAACCGTAGCTCGACCCCAGACGAAGAAAGCCTGAGGCTGGTCGCCAGAAGCACTATGAATTGCGGTTTTTGATTTAAAGCATAATTTGCATTAATCTTCTAATATTTTAGCCACCCCACACCGTCCACGAACAAACTCCGAAACGAAGCTCGGGGCTCGCGAGCAGCTTCTCCGGGACTCTATACGAGTGGGTTTAAGTTCTTAATTTCATAGAATATCACTTATTCAAAAATTTTATTTTTTCGCTTCAAGCAGCTTCGGAGCCGTACGTCCACATGACAAAGGAATCCACGTGGGACGAGGCGAAAAAACTGGCTCTACGATCAGTCTAAAAGAAGCCGGACATTGTCCGTAAAGCGATATACAATCGTCGTCGCTTCAGGGAGTCAATGAAAGGATAAAAAGTTCGCTGGTCAATAGCGCGAAATCATCGACCCAAGAAGCCCGGCAATCAAATGCAGTGCGGCGGAGGTATTTTAAAAGAAGACAAATTAATATCTAATTATTCCCTTTAATCTTTCAGACAATTGCCATAAACGTTGTGCACTGCTTGGAGACTCATCACACAAAAATACTCGCTCAGAAATCAAAGCGGCCCCGCTGCTCGGGAGCCAGCGCCCAGCACTGCATGGAGCGAATTAATTCAAATTAATATTTTACAATAAACTCATTGCTCGTTTCACACATAATCATTCATGTGTTTTTCACTCTCGAAACCCATATACCCCACTCTAAATATCTATATAATGCCACATTTCTCATAGTTTTAATCTGCCCTTACCAATTAAATCTTGTCCCACCTATTTTCCGCCATGATCCCTTTTTCCATTTTGAATAAAATACGACGACGATTTTTCCTCCATTAAACCAAGGAGAATTATATAAATAGAGTCAAAAGTGGCGCTTGTGTCGCTCAGCGGTCTCCTCCACTTGCAAGCACTATCTCACCGCGGCCTTCCAATTTCTCGTCCATTTCAGCTGTAACAAGTAGTTTATAAAAACTGAAAAAAATGCAAGTTTTAGCAGAAAATCGCTGAAAATGGCAAATCGTCGAGCTAAAGTCGCTTTTGACTTCGGAGCCAATTAAAGCCATCGAGTTCTTCGATAGGCTCGTTGGACAAGGTTTGAGCCGAAAATCAAAACATTTAAGCTGAGATTTCTTTTAAAAATATCCCTTGCAGATGCCGACACAATCATCCAAGAAGCCTGTGGTGACAACCCTCGCCACCTATATCCGGCATCCCTATAAGTGTTTTTAAGCGACGGCTTCTGTGAGCTCCTAATCGTTTTTTGCGAAATTGTGCATTTCGTTTCAATTTCACAGCTTTGAAGACAAAGTTTTGCGGCGAAAATTGATTGAGCATTCGAACGATTCAGCGTGTTTTGCGGTTAACTGGAAAAGGACAAGCCACATGGGGTTTCGTTTATTGAAAATTGAAAAGATTTTTGCAAAAAATTAGATTTCATGTAGTTCAAACTAAACGCTGCTCGATTTTTAACCGAACCTTTTTCTTTTTTCCGTGAAAATATCGGTTTTCCAAGTTTTTCGAACATTTTCCAAAAAAAAATTACGTAAAATGTGAAAACGATTTTCAAGTAGCCTACAAATCCGGAAAAATCAAACTTAAATGTTTTCGAAAAATTTCATAATTTTCTTCAAATCTCTTTGAAAAGTAGATTCCACTTCTGGGAAATTTGAATTTATGTCATTTCTTTAAAAGCGCATGCTCTTTTGTAGGGTCTCGCAACGAATTATTCAATTTAAACTTTTCGATATTCGCGCCGAAATTTGGGTCTCGGCGCGATTTAAAATAAATGAAGAATATGGACTATTAATTTTTCCTTGAAAATTATTGATTTTTCGGAACACCGGCACCACGTCACCGCTGTCGGATCGAATCGTTTCTTCATTTTGACTACTTTCCGATGGCAGCCCCGTCTAAGAACCCCGACTGGTCCCCGTGCCACGTGTAATGAAATCAAATCGAGATGACAAATACACACACAATATTTTTGACTGCTGAAAATCAGATTTAAGGCTGCGGAACAGCTTCATCTTTTTTGCCGGCTAAAACGGAGAGCTGAGACGGACGGTGGTTATGTGGCACTGCCCACTTTGGTAGAATTCCAAAAGTTACTGGATACGTGGCAGATGTGAAGGTGTTCGAGGAACAGTTTTTGATTGGCGACAAAGCCCTCTACGGTTCTAGAAAATTGGTGGCGGAGTATTTTCTCGCGGCCACATGACTATTTTCTAAACGAAAAGTTGTGTAAAAGACAAGTCGGAAAGGGCGCCCTCATGGCTGTAGCTGAAACGTTTTTCATAGATTTTTTGGCTTTAAAAAAATCCTTAAAGGTGCATTTTCGTGTCGAGAATCCTAGTTGTATAATTTTGCTAATTTTGCTTAAAAATCTTGTACAGTACCAGGTCTCGACGCACACGAATAGTTTTGATAAATGCAAAAATGTATGCGCCTTTAAGGATGTAGTAAAAAATAAGAATTCCTTAAATTTGATAATTTTGTGAAGAAAAATAGAAGAATAATTCTTTGAAAATGGATAATTTTTTGGAAAAATTAGCTTTGTTTTTTATTTTTTCTAGACGTACACCTTTGTTAAAAGATTGTCGCGCCGAGACCTGATACCGTATTTCTTGAGCGCAAGATCGTGCCGAGACCCAAATTCGTGAAATCTGTCAGTTGGTAGGTGTGGAAAATTTCGATTTCCGGGGAAACGCGACGAATCTCGTCGAATTCTAGCTTTTTGTTCTGGTAGAGGAGGAAAACGAGGAGAAATTGGAGAAAATGACGACAAAATATCGATTTTTACGTGGCAAATGTGCCGATTGAGGAAAGGATTGTGAAGGCGGTTTTTTTTCTAAATTGAAAACAAAAAAACTAAAAAAATAAAATTTTAATCGTAGTTTCTAGAATTCAAGCCAGTTATAATAATTTTTAAACTAAAAATTGCATCGGTTCCGAACTTTCAAGGTTTTTTTTTCTGAAAATCGTTTAAAAAAATATCTGCTTGAAAAATCAAAATTTCAAAAAAACAAACAAAACTTGAAAAAAAAAAACGTCTTTAGCGGTATTTTTTCTATAATTTTTCAATTTTTTCAGCGATCCTTAAGAATCGAAAATCGTAATTTGACTTCTTCCTGGTATATCCAAAAATGGACCAAGATTCTGTGGGATAAAACGAGCGATTTCTCAGCGGAAAAGCCGTTTCCTTCATAACCAGTGGATTTCCAAAAATGGCAATTTTCGAATCATTTCAACTTTTAAAGGAACTATTTATGGCTGATCGAGAAATTGACTTTGCACAGGAAAATTGGAGCTATGCGGAAGAACAAAGATGACGGGGTGTTTGTGAAAAGCGGAACTGTTTTGGAGCATTTTGACACAAAATATACACTTAGTGCACTGATGGAAGTGGTCCCCGGTACTATTGGAACAACACAGAGTGTTTTTCAAAGTTTCACCAGATGGGCAGATTGATTATGAAGTTTCGTTTTGTTTGGAATTTGAAGGAATTCGACCTTAAAAATATAAAAAATTGCACTGATGATGATTATGGATTTTTTTTTCAGAAAAAACGAAAAACGAAAAAATTGAATGCTAAATGACAGAGTCAAATATGCCCCTGTAACTTTTTTTTTTTGAACTAAATTTTATATTATTTTTTTCAGTTTTACGCAAATCAAAGAAACGGGTCCACCGAATTAAATTTGAATTCCCGCGCACCAAAGAGTGACGTCATTTTTTTTTTCCCGATTTCCTGATGTGTTATTAGGTTTTTATAACGGTTTGTCAATTTTTGCAGACATTTTTTTTTAAGCTTGGTAACCCGAAAAAAGTGGCCTAGAAATCGGCTTTAATTTTTTTTTTAAATCGACAAACTGTGTTTCAAATTACGAAACAAGGAAAAAACGAAGAAGAAAACAGCCGGAAAACGCGAAAATCTCGAATGACGTAAATTGCGCGGGAAAAACTTTAGAATTTTTTTTTAATTAACAGCTCTAACATAGGGTCGAATCATCCTAGGGCTTTTGTCAAAAACCTTATTCCTCGCACAAATTGATTTTTCGTTTTCGTAGTTTTCACATGGAACAATCGAAAAATTTTGTTTCTCAAAAAAAACAAAAAATTTTTATTAAAAAATTATTTTAATCCCAAAAAAAAATATTTAGCAAACTTTAAAAATTCATAAAACATTTAAAAAAATTTTTTAAAAATTGTATTGGGACTTTATTCTAATACTTGGACTAAAAAAAACCCACATTTGACAAAAAATTCAATTTAAAATGAATATATCGTTTTGGGATACCAAAACGAACAGAAAACCGAGAGATTCGAATTCGAGTCTCCCAAAATTCACAAAATCATCAAAAATGGTGACAATGTGATCCAGTTGATATGTTAGACGCGACTATTCATATTCATCAAAATTATAGACTAATCAAGACGTATTGAAATTTCAATCGAATCGATTATTATTTGGATCTAGCCGAGTTATTTGTTTCAAACCGATGAGATGTTTTTCAACTGAACAAGAGACTGTATTTGCTGTGGATTTGGAGAATTTGGAATTGTGGAGGGTTTCTTTTATTAATTAAAATTTTTTTAAGTGGAAAAATTTTGGTTTCTCTTTTCAGAAATTATTATAATGTTGTAACTAAATATTACGGGAACACGAAATTCTAAGAATGCGTATTGCACATACACAATCGATTTGACACGCAAAATAGTAGCGAAAACTACAGTACTTCCTTTAATTACTGTAGCGATCGTGTCGCTTTACAAGCTCAATTCTTTTTAATACTTTAAATTAAAACTTTTTCTTTAAATTTTAAAAAAATTCGACTTATTTTTTAATTTTTACTTTATGCCAATATTCTGTCGATAAATAAATCATTTTAATAATTAGAAAATTGAGCCCGTAAATCGACATGCGTGAATCCATTTAAAGAATGTAGTTTTCGCTACGAGATTTGTACTCCTAATTGCGCGTCATATATGTTGCGCCGTACGCACCGTTCTCAGAGATTTGTGTTCATATAGAATATTAGGACTAGTATGTTAAAATTTTTAAAAAGTTTGTTTCGACTTTTACCCAAAGATCTTTTTTTGCAAATTTTTAGTGAAAATTATTATTTTTTACAATTCCGCACGCTAAAATTTATTAAAATTATATTTAATTTAGACTGTATTCTATACAATCAAAAAACAACAAACATCAATAATGAATGTTCAATGAGTTTAAAGAAAAATTTTTTTGTGTAGACTTTTTTAAAACTCTTCTTCGTTGACAAAACGTTCACAAAACTTAAAATATCTTTCAATTTGCTTAAATATTAACAAAGAATTTTTAAAATTTTTCAGCCCGAAATACCAACCTATATCACCAGAGGAATTCGTTCCCACCGACACTTCTCCCTCCGATATCTGGTATTTCAAATCCCGAAATTGAAATTCCCTTCTCACAAGTACCCTCTCCTACTACATTCACGTCAAATTGGAGCTCCAGAGATTTCATTCAAATAATGGGAATTTCGATATGTAAGGATGGTAAATCAGAAAATGAAGTGGAAATTGAAGCGAATGCAGTGTTGAAACTGTGAAAAATGCGCTGAGAGTGATGCTCAATATTCGACCTCTTCTCAAAATTAAGACTATTGAGGTAATTGGATATTTGGTGAAATTTGAAATGAAAAAATATTTATAAAAATTGAATTTTTTTTCATTATTTCAGTCACCATAAGTCAATAGCCGTTTCCATTAACTTAGATAAAAATTGATATTTTCTTTTTCCAAATGCGATAAAAATTGGAAATTCTATAAATTCCGGAAAAATCGATTGATTACAACAAAATCGATAATTTCCGGAAAATTGATAAATTCCAGAAAATCGGTAATTTCCGGTGTAAAAGTCGATAATTACCGGCAAAACCAATTAATTTCCAGAAAAATCGGTAACCCTTACCGGAAAAATCGATTGATTATCTACAAAAGTCAATAATTTCCGGAAAATTATGATAATATCAGAAAAATCATTAAATGATCGATAAATTCCAAGCAAAACAAAATCGATAATATCCTGACAAGTGAATAAATTCCTAAAAATTGAGGAATTTCATAAATTCCCGGCCTTGAATATTTTTTAAATTTAATCTTTAAAAGAATAATTCTTTAAATCTTTAATCCTTATCTAATTTATTCAAAAAAAAACTGATCCACAAAATTTTTTTTTTTCAAAAATTAAATATTTTTGCCTAGTTAATGTTTCATCAACTTGATTATCATTTACTCGAGAAATGTTCAATGATTCAATGCATTCTAATGGAAACAGCCATCACTGAATTCACACTTCCATTTCTCTACGAATTATTCTGTCGTATTCGGGTTATGAGGACAAAGTGTTGGATGGACTTTTGCCGAGGAAATCTTTGATCATTTATAACAACTCGATTTCCAGTGTTTTACCGCCAAATTCTTTGTACGGTAAGTGAGTTAAGAAATGGAAAAAAACACATTTTTGCTACTGTTGGAATTTTTTTTCTAAATTTCACAAATATCTTATTTTCCATTTTAAAAGTAGAAGTTTATTTGCTGGATTTCATATCAATTTTTAAATATTTTGATTTTCCAGTGCGGAATTTCTGTGTTTTTTGAAGCAGGAAAAAAACCACAGAAAACTAACTAAAAGAATTAGCAAAAATGAAAAACATACGTAAAACGATGTAACTTGTCCACGCCACGTGTAGTACAAAAAACCGATGTGCACCAACAAATTTTTGCAAAAGCTATTTTTCCATTCAAAACGGCGCCCCAACAGTTGAAATTTTATAGACGAAAATTTGCGAAACTGTTCGCTTCTCCGAAAATAAAAGTCTCAGATCCCATTCTTGGGTCTTCCAGATAATCGTTGAACTCCAAACTGGAGACCGGTTGCCGCCGACACCAGGAGCACATTAACAGTTCCGTCGAAATTCAAAAATCTAGAAAATCTGAGCACCTATGAGCCCCAGGACATTGTCAAATATTTTCTGAATCTCGACCAAGAGTCGGAGGATGTGACATGGCGATCGATACGTCACGAATTCCACGACACACTTGACACGTGGCACGCGGAAGCTGTGAAGAAGAGAGACGAGAGACGTAGGAGCAACACGGAGCAGAAAGAGTAGTATTCGTAAGGAGAGCTTTACGAAAATTCAAAAGGCTTCGATGACGGCATCGCCGGTAGGAATATCGATTTTTATGTATCGAGGAATTTACTGGAAAACAAAGTTTAGGAAAAATGTCGATTTTCCAGAAATTTATCGATTTTCCTGAAATTCGATTTACCTGAAATTTATCGATTTCCACCCTGAAATTTATCGATTCTGGAAATTATCGAGTTTTCTGGAATTTATCGATTTTCCTGTTTTTTCTGGAATTCGATTCTTCTGGAATTTTTCGATTTTTCTAGAATTTCCACAATCGATTTTTCTGGATTTTATCGATTTTACTGAAATTTATCGATTTTTCTGGTATTTTTCTGGAATGTATCGATTTTTCTGGAATTTATCGATTTTTCTGGAAATTCGATTTTTCATATATCGATTTTCCTGAAATTTATCGATTATTCTGGAATTCATCGATTTTCCTGACATAACAGATTTATCAATTTCTGGAATTTATCGATTTTTCGAATTTATCGATTATTCTGGAATTTATCGATATTTCTGGAATTTATCGATTCTTCTGGAATCGATTTGTCTGGAATTCATCGATTCTTCTGGAATTCAGTTTTTCGAGATTAATCGATATAATTGTCTGTAAATTTTACTCCCCAAAAAACAATATATCGTGCCGAGACACGAAAAACTCTAAAGAATTACAGATTCCAATCGGGGCGGCCGCTCGAGTAGAACCCGAAAGTTTCTAAAAATCAATCAATAGTCCTGTCATTCGCCACTCAAGCTCTCCCTCACCAATCAAAGGAATGCCAGAGGTAATCGTCGAGAACCAGCACGCCCCCTGAGCATTTAAATTCCACGTTGTAGTCCCTGAGCCACGATAGTATTTCCAATTCACTGGACGCCGAAATGAACATTTCACCGTCACCCTCGACACCGAAATCCTCTTCCTGTGGCGGAAGGTCGCATCGCACACCAAAAGCGATTTAAAAAGTGATTTCGAAATTCCGAGGTCGTGAAACCTTCCCAGTCACCACAGAATCCTGGGTGGAAAATGGGCGGAGCTTCCGCGTCGATTCGCGAAGAAATTGATCCGCAGGAGATACGCGACGAAGTTGTGAAGAAGGAACAGAAATTGCAGACTAACGTGCGTCATTTGAAATTTTTGAAAAATCGATAATTTTCAAAAAAATCGACTTTTTTTGGAAATTATCGCTTATTCTTGAAAATTATCGATTATTTTAAAAAATTATCCTCGAATTTTCTGAAAAGGATCTGTTTTCGGGCAAAAAGTTCCGAAAGTGTTTTCTCGAAAAACAACGACTTTTTTTTTGAAAGTTATCGATTAAAGAAATGTCATCTATTTCTTTGGTATTTATCGATTTATCTTAAGAAATTATCGATTTAAATATTTTAAGGAAATTATCGATTTTTTTAAGGAAATTTTCGATTTTTATTTATCGACGTTTTTTTTAGGAAAAAGTTTCGAATTTTCTCGAAAAATAACGACTTTTTAATAAAATTTATCGATAAGAATCTATGTTTTTTGAAATTATCGATTTTTTTTGAAAATCATCGAAAATATTTTAAGGAAATTATCGATTTTTTTGGAATTAATCGATTTTTTAGGTAATTATAGGCCGTTTTTTTTCAAATTTATCGAGTTTTTTAGGAAATTATCGATGTTTTCTGAAAATTATCCCTCGATTTCTTACAAAGGAAAAGTATCGATTCTTGGAAATTATCGATTTTTAAGCAAGTCTCTTATCGATTTTTCAAACGAAGAGTAAGGAAAATTTTTTGAAACTATCCATTTTTCTTTATTGATTTTTTTCCTAAGAAAATATCCATTTGTCGATGGCTAAAAATGTGGATTTTTCTGAAAATAATCGATATTCTGTTTGGAAATAAAATATCGATTATTTCTAAAAAAAATTATCGATTTGTGCAGGAAATTCTCGATTTTTAAAATAAAAACAGCGATTTCTTTTTTGAAAATCGATTTTTAGGGAGATTATCGCATTTTTCTGATTATCGATTATTTCTTCAAAATTATCGATTTTTAGAAGAAAAGTATGGATTTTTAGATATAATCTATTTTTAATTATTGATTTTTTCACCTGAAAAAATATCGATTTTCTGAAACAACATATAATACCACACATTAATTTCAGGAACCGGAGTTCAAAAAAGTGCAGCTTCTACCACACGTGGAGACGGAAGAGCTCGACGGAGCTCAAACTTTGGAGGTTTTTCGACGAGAAAGGAATTCACGATGAGGCGTTCATACGCTTGTGTAGGAACTTGTGATGGTTTTTCTCTCAAAAATTTGAAATTCTTCAGTTGGAACTGGTGTTTGATGCGACGATTTGGAGGGGAGTTGGAAAACGAGCAGATCATCTGGGGAAACATGCCGGGACTTGTTCGACGTTAAATTTTCAATTTTTGAATTTTTTTTCTCTTGTAACTTGCATTTTTCGTTTAACTTAGTGTTTTCGGTGTTTTTTGGACTATTGAAATATTCGGGTTGTTAATATTCAAAAATTAATTACATTATTAATAATAAATGCATTTTGAAATGGTATAAATTGAAAATTTTCAAAAAACCCCCAACCCAGTGGTTTAGGATGAAAATCGTGGAAAAGCCGAACGAGAGAGTTCCGAGTTGGCCACGTGGGACTGAAGCCTAATTGAGTGAATTTAATTTTGGATAAAAAAATTTTGGAGATCTCTTCGACATTTTCTCAAAAAATGATCCATAGCTTTTTCCCATTTTTTTGTTGCTTCATTTTCAAGCTCTTCGGTTATATCGCAGACGTTGAAGCAAGGGCCTTCCGGGAGAATTTCCTGAACATTTGAAGCGCCTTTTTGGGTGAACAAAAGCAGCTTAAAGGCATTTTTTGGTATTTTCAAATAATATCGGAAATCTGCGTTTAAATTTTTTTTTTAAAATGAATTTTTTCAAATAGGTTTTCGAAAAATCGAAAAAAAAATTTTCGGGTTTCCGGTGGAAATTTTAATTAAATTATGTGTTTATGATGATGAGAATAGTTGACAATAATTTTTTCCGATTTGTCAACACGTTTTTCAAAAAATTTGTCAATATAATTTTTTCCATTTTTATTCCTGAACAGAAAAAAATCGAAAAATTTTCGGTTTTAATAATATTTCGGAAAAATTTTGAATTTACCGTAGTTGTGTGATCGTTAAAGAAACTCACAATATTTCTAATCGAAGTATGCATATTTTTTAAATGAATTTTTGGAAAAATTTCAAACTTATTTTTTGTTGAATTTTTCGTTTTCTTTCGTTTTTTTAAACAGAACCAAATTTTTCACCATCTTTTCTTCAAAACAAAACAAAAAAAACCAATTTTTGTTTTTTGAAAAGCGAGAAAAATTTCGAAAAATTATTTTAAAAGTTAGAAAAATATCAATTTTGAACGGAATTTTTTCAAAATTCGATTTTTTTTTTTTCTAATATGTTCGAGAGTTTGTCGCCATTTTTATTTTTAAAAAAGGCTTTCAAACTACAAATTTTAAATGAGAATTTAGATTTTTTTAACGAGTAATGTTGAATATTGGAGAAAAAATAAATCAATTTTAAATAGAAAAGTTTTCTTATTCGTAACATTTTCAGTGTTCTCAAAATACAAAAAACTCGTACATCCTCCTGACAAGTACAGTAATCCATTGGATCCCTCCTGTCCAACACCGTCGCTTCCCGAATGTGAACCAATTGTTCATTTTCATAAGAACCGAGCTCACAGTCAATTTCCCGACCATATTTCCCTCGTATTCCTTCGAAAATGGCTGAAGCCCGATTCAAATTTCAAATATCACGGTGGTGGAGAGAATACGGACAATAGATCCGTAATTGATTTAACTTTAAAATTTTTTTCATTGTCATAATCATGCTACGTGGTCTGGACATGATCTGTTAAATTCTCTCGTTTCGGCGGAGAATATAATCGATATTCCAGTGGCACGAGGTTGTCGAGAAATCTATTAAAATTCTGATAATATCGTTCCAATCTCATTTCGAAGCTCGTCAGTTTCGGCTTCAGCTTTTGAAGCCAGTCGTTTTCAGATTGTGCTCCAGCGCGTCTGAGCTCTGAAAGTTTGATTTCAAGCAAAATTTTGTGTAAATGATTCAGACAACCCCATTTTTCATCTAATTCGAAATTAGCCACATCTAGAAATTAACCACATTGACTAATTAGAAAATTTTCTAATTAGAAAGGATGAATATCTAATTAGAAACGCTGCACAACACATCTAATTCGAAGGGATGCCTCGTCGAATTAGAAATGACATCGAATTAGAAAGGTGGCGCGTTGAATTAGAAGTTACGCGTCTAATTAGAAAGGAGGCACATATAATTAGAAACATATTGCGCACGTCCACATCTAACTAGAAGGGATGCTCGTCGCATAGTACTACCTTTTAATGTATGTACTACCTTTTAATGTATGTACTACCTTTTAATGTATGTACTACCTTTTAATGTAAGTACTACCGTTTAATGTATGTAGTACCTTTTAATGTCTGTACTATTCTAATGTATGTACTACCTTTTAATGTAAGTACTACCTTTTAATGTATTACCTTTTGGCTCTTTGGAAATATATCGATCAAGAAACAATGCCGAATTAGAAAAAAGGCATGAACTGGTGCGCGTTAGTTGACCTTTTTTTCTAATTAGATGAGAGGAATATGGTAGTCAAGACTGCAAATTATCAAAATTTTTTGGTTCAATTTGTTTTTGAAAAAAGTGAAAATTCCTGGGTTGCAATTTGTCGATCAGTATTACGTAGACGTCGAAATATGCGATTCGCCATTGCGGTCTTAGGGGTCTCGCCACGCCGACAATCAATGTAGTTCATGTCGATTTACCACTGTTGCATCGTAATATTCCAACAAATTTGCCGCCGAGGTGAAAAAATTCAATAAAAGCCCGTAAATCGACATGAACTGCAATAGGGTTGTCGGCGTGACGAGACCCAATTCTCATCTTTCGTACCGACGTCCACGTGATATAGAACTTTTTTTTTTGAAAAAATACGATTTTGCCTAAAAAAAAAACTGTAAATTCAACAAATCCCACAAAAAAAAAGCGAAAAGAAAAAAGCATCGCGGAAGACAGTGGCGCCAGGCTGTCTCAATACTGTTTGATCTACAAAAAATGCGGGAATTTTTTTCACAGACAAAAATTGTGACGTCAGCACGTTCTTAATCATACCGAAAATGAGATTTCTGCCTCTGCCATCCCGCATTTTTCCAAGATCAAAGTGGAAGGACTTTCACCTGAATAGGACTTTCTGATTCCACGTGGGAAGGAAGAGAAATCCAAAATTGCGATATTTCACTAATTTCCCTGCTTGAATTTCCTTCCAATCAGCGTCTTCAAACTCCGCGGCCCACTCCATCTGTGGATGAAAAATGGGCGGCGCAAATCGCTCTGATTGGTGGCAGTTCTTATTGCCCAATCATTCAAGTTCAATATCTGGATTTTTCATTTTTGACCACCTCCAATTTCAAGCTTCTTCCTTACCTTCAAATCGTAGAATATTGCCGATTCTCTCGGATTGATTCCTTCCTTCAAAACCAGAACATCTTTCAACTCGAACCCCGAAAGCAGATATTTTTTAACCTGAATTCTCCTAGAATATCCTTCGCTCGTAGCAACTCTCCAACGATTCCTTCTGTTTGTAGAAACTCTTGTAGAGTGTACACTGCCTCGTCCAGATCTTCGCAAGATGCCCGTAATTCGATCTTCCGAGCTAGTCAAAATTGCATATGTTGGTGTTTTTCGTTTCGAGCAACACATGCCAATGAGGATATAATCCGAAGTTAGACTCGTTGTTGTTAAAACGCTTTATAATGCTGGCGAAGATTTCCTCGAATTTCGTTTTTCTTTCTTGAAATTTTATCAGTCTGTATAGTTTTGAGGGTACAATAAAATCTCGGGACAACTTTTCGATATCTATCATCATCGTCATGTTATAGAAACCTATATACTACAGTGTTTTTTGAAGAGTTTACACCACGATACGGATTTTGATCGGTTTTTGATGATCAATTTGACTAATACGCTCGTCTCCGCAACGTCTTAATCGGTCCTAATGCAAGGCTGTGCGTTGTGTACAAGTGCCTTGCTTAGCTCTTCAAAACCGGAGCGATACATAGACACGAATCGTTTCATGCGCAGCGCAGCTGCTCAGGGCTCTCGAAAGTTTTCAGACATTCCGTGAAGCTCTCAACAATGCTGTTGAGGTTATCCTTTGGCACATTTTCCCGAATTTGATTAACTTGTGATAGATATTTATCTGATATATTCGATATTTTTATGATATTTTTCCGTGTTGTTTAGGATGTTTTGCCATCGCAAATTCAAATTCCACATAGTATTCCAAAAACTTATTCAATGGATGCAGGAAGTGAATTGATCCTTTGGCAGAAACGCTTTATATCCAATAATTGCTCTGCACTTTTATCGTCGAATAATTTCTTCACGTTAGATTAGGGAGCCCTAGAGATCCACGAAGTATCAATTCGTTTTTGGGAAGGAATAATTCAAAAATACCCAAAAGAAAATAGCCTGATGGCCTGGAAGAAAGCCGTCCGAGGATTGAATACAACGAATAACGTCCCTGACCTTTCGCACCCAATTTGAAAGCCCCAGTGTCGTATTGGTGTCGCGAATAATTTCTAAATCAAACGCCCCTTCGAAATTGTGTCCCACTGACAAGAAGTCTCGAACACTTTTACTCGCTTCATTTTTCATTATAGTCGTAGCGGGTTCGAGATAAAATGGAGATCTTGAGCAATGCGAATACTTTCTTGGCTCGTTCCGGAAGCTAAGAAATTTCTGTAGTAGGCGCCAACCTCTTCGTCCGTTTCATATTTCCGATCTGTACGATCATTAAAACGGCAGAAATCTGGGGAATATTTCTAAATAACTCCAACTTTGCTCCTCAATTATCCATGTGAAAAAATTCAACCCGGATTTTGAATTTCGGCTTGAAATTGCCGAATTCCCTTGGTGCACACATGCAAATTTTTCAAACGCGCGGCCCAAAAATTATTATCCTTGGAGCGCGTTTGCCTGCTCATTTGATTCTCTCCCGGAGCACGGTAGCTCAGAAACTAGATGGATGCTGGTTCATTCTAGATACTCAGTCTGGATATATTGGCTACTATCTCGACCCGGAAACCATCCACATAAAATCGATCTTTGCGATGCAAATAAGAAATGACCGCAATGAAATTATCTATCTCCATTCGTGATGAATTTTCGATTTTGTACTTCCTGGCCAAGTTTATGCACGTTTGTTCGGAGCGCGTTTTCACCCATCTAGCAACTGACGGTTCAGTAGCCAATATAGGTTTCACTGTATCATGAACCACTCCATCTAGTTGCTGTGCTACCCTCGTGCTGAACCACCGTGCTCCATCTACCGATTTCTTCCATTACGATATGGCTGCAATACTATTTTTTGATGGTCTTCCCGCTTGGTCAATACTAATAGGGAGTGCAATACTAATTTTCAGAACATTTTTCTGCCTTTGAGACTAGTTTTTTTCTGAAAAAACTCGAATTTTATGTAAAAATTCAGTCCAAAATTTGTTTTGATTGTAACCTATTTCAAAAATTAATCTCGTAGAAATTTATTTGAAAAATTGCTGCAAAATATGCAAAAAATATTGTAGAAGTCCTAAAATTAGCGAGAGGGGATTGCAATAAAAAAAGTAAACGAAACACTATTAGGGAGTTCAAGACTAATAGGTGCCAGACTAATTTTCCGCAGGTCTCCGAGGGGCAATACTAATAGGGAGTGCAAATCTAATAGGGAGGCCATGCATACTAATAGAAGAAATACGGTATTTTTAGTTCCTTTATTTTGTCAACGAGAAGAATCAAATGAGGGCACCAAACGCGCTGCAATAATACTATAATTTATTGTGCGCGCAAAAAAACTCATTCGGCACGCAAAGAATATTCACGAATTTATGCTGAAATATAATATCAGTTTTTATGTTTTTTTTTAACATCCAGATATTCTGAAACAGAGGAATTTTTTTTAGTTATTTGACAATATTTCCTAGATTTCGGAAATCATGTAAACAGCAGCTTTTGTACAACAGCTTTTTTTTAACTGTGAAACTTGTTTAAAAAGTCAAACCACGTCCATTTTGAAAATTAATTTTTAACATATAAAATAAAAACATGTGGAAGGCTTTTGATTCATGTACATACAAGTTTTGAAAAATACGGCATTTAAATTTGAAAAATGTGTTTGCTAAAATCTGATCAATTTTTTTGTTATTATCTATTAATAGCTGGACTTTACTTTTAGACAAAAATTACTCTAATTAAAATCTACCTTCAAACCATTTTTTCAGTTTTTGCAAATTCTCCTCGGAAATCAGTAGGACTAGCGATCGAGTGGCAAGTGAAAATCACGGAAATTTTTCAGGCGATTTTTCAGGCCCCATGTTGCCACGCCAACCATATTTTGGTTTCATGAGAGATCGGAGCTCATGAAATAAATGCAAAGCAAAAATCCAGCGAGGTGGTGATCTTTTAGTCATTCTCGCTGTACTTGAAGATGTGGGAGCTTCTTTAGTAAAATTTACAGCATTCTTCTCTATCCTTATAAACATGTTAGTCATTAGTGTTCTTTTTTCCCGACAATCTCCTTTCGAAAGCTCTCTGCTCATCCCATCCCCCAATAGCTTTTTTTTTGTAGAAACTTGAAATCCTATCAAAATCTATCCCGATCAGCTGATTCGTCAGATCCGTAGAAGCGATTTCGCCTCTGAGAAGCCCAGCGACGATACGATAGCAGTAACACAGGAGCGGTGGTAGCAGGTGAGCTCATCCAGTGAATCCGTTCGACAGGTTTATAGAGTACTTTCCGTAGAATTACTGAAATTATATTTACTATTAAAGTAGAAAAAAATGATTATATAAACTAACTATACGCAGGAAGACTCGCATTATGTTCCAGATTTCGACCTAAGAATTGTGGATGGCGTCCAGCCGGAAATTTTTATTTAAATTTAGTAAATCCTTTAGTGAAGAAAGTTTTTTAATAAATACCTGTCAAGCGCTTACCCTTAATGTGCTCCAACATTTGAATACCTTGCCGCTCCCTTTCCGAAATTTCGAGATCTCCGCATCAGCGTTTACCCGGTAACAAGAAGTAAGGGAATTATCGTTATAATCATCTTTATCTGGGAAAAAATTAATTTTCATGGAATATATTTCAAATTTTCGACAACCAAAAAAATTCACATTTTTTTCAGGAAATTTCGTTGAAAAATCTGTTTTTCATAATATTTTGAGAATAAAACAAGCGTAAAGGTATTCAAGAGCGCATGCAATTCACTTAAGCCAGGGTGACCCTCTAAGCGAACATAAAACATACGGTATTTAAAAATATTCTTGTTTTCCGCGGAAAGTCGGAGAATTTAATTTGATTTTTTTTAAAAAAAAAGAAAATTAACCGTTATACGTTTTGAGCAAAAAATTCTACAATAATAATTTAAAAAAATTAATTGAATAAACATTGAAAATAAAAGTGCTTAAATTTCAAGGCGCTGCGCGTGCATCAACCGTCACTTTTGTTTGGGTATCACCCCAGCACCCCGAATGTAAAAAGTACCAGGGTAAGAGTGCGCGCTTTTTTTCATTTTTCGAATTTGTGCGACCAGTTCTCATTATTTGAACGATTTTTGCGGTAATTTTGGACAGCCATTTTTTCTAGTTCCCACCGACAAATTGCATTATATCCGTAATTTCAAGAAAATTTTGTTATAAAACCAACAAAAATCTAGAAAATTGCTGAATCATTTTGCGTATGAATGGTCAGGCGGATCTGCTCGCTGCGACCGAACCGCCTATCGGGTCTTCAGCCGACAATCTCTACGACATAGAACTGTTCGAGGTGTTCAATCGTGTCGCTAACGTCGTCACAGAAAAGGCGTTCTATGGAGCCGCCCGATCACGCTCTCGGATCATTTGTTTTCAAGTTGGCATTTTTTTTCAAATCATTTGTCCTCACCTAAATCTCTAATTTTCCTATTTTCAGAATTCAAGGCCTGTATCAAGCTCGTAAACTTTCAAGGAACAACTCTTCACGGCCGTGCTGCACATTCGTCCACTGCGAGAAAGTTCGCACGCGAACAGCGAGGCCATCTCAACGATGTTCGAGAAGGTCAAACATAAGGGAAATTCCGGGAATTCTTCGTAGCGTCCAGAGCACTCGTTCCCCGAGTACCGAAACCAGAACCCACAGGCTTCATCATACCTTCCAGTCCACGTGGTCATCGTCGACGGGCAGTCTCAATGGTGGCGGCGGGGGCTATCGACGCCGACGTTCCGCCGGTGGCAATCAGTACAATCAGAACAAGTATCCGAACGAAAGGTACCAGGGATGACTCGATAATCATCCAGTGCAGCAGTATTCGGGCTTCAATCCCAGCGATTTTTGCTGTGATGACTATGTGGAAGGAGCCGAAAAGGTGCAAAATTCGCCAAATTTCGCTAAAAGAAATTTCGCCGACTTTTCCCGTAGCGCAACAGTTTTTTCTTTTAGGCACATTTCAGGCATTTTGGGCATATCAATATTTTTCCACCAGATATGTTCTAGATTTAGATGGACTAGATTTTATTCTCAGACGAATCAAGTGATTTTCTATATTTTTACACTATTTTTTCTTGAAATATGACCATAAAATGCAACAAAGTCTTCAGCAGCTGATGGGAAAAGGAAAAATCGGCGAAATTTCGAATTTCAGTCTATTTAATATGTTTAAGCAAAAAGAAAACTAATTGTTGAATTTCAGACTCGACAACCTTGCCAACCTGATTCGCTGGAGCACCTCCACGGATCCGTTCGCAACCTAATTATCAAAAGTAATTTTGAATTATTTTGAAAATCAATAAATTGTTTGTTTTCAGACGTGAATGCACAAGCACATCTTGTTCTCGTACGAATTGAGCTAAAGATCAAAAGCATGGCCCGCCAACGTGGAAAATGGAGCTGCAGATTAAGAAAGATGACCACCACCACTAGGGCCGGCGGCGGAGCAGCAACCACAGGACAGAACAGACTGACCCCACAACAGTTTTTGGCTCAGATAGCTCAGAGACAACAATCGGAGCAAAACGCGGATGAGGTGGCCAAGAAGAAGCGTCCGAACCTTTCGGGTATCAATCCAGCGCTTTTCTACATGAGCAATACCCGAGAACATCGCCAGTTGTTTATGCTTAAAATCTATAGAGTAATATGGAGATTTTGGGAAAAAAACATATTTTCTCGAAAATACGCCCGAAATAGTGTTTGTAAATTGGCGAGACCTATTTCTTCTGAAAAATTATAATTTTTTCGATTTTCACGTGAACTTGCAGGTTTTTGGATATTTTTCTCGAAAAACGTCAATTCATCGATTTACGCTAGTATACTCAGCAATCGACCCATTTTTTCGCAGACAATTTGGTATTTTTCTTAACTTGATTTTTATTCGACTTCTCGTGTAATCACTTATTCAAATGCGCGCCCTAAGAATTTCTCATTGGAGCGTGCTTGCTTCGTGTAGATTTCCGAGAGCTTTCCATTTATTTTAACTTCTTTCGTGCTTTTTCAGTTTTCCAGCGACTTTCTGGCTCGACCCCTCGGTATATTTTGTGCAAACACCGTCACGCGCAAATGCATGCCCTTTTTCAACGCGCTGCGTGAAAATTCACGCGATTTCAAATATTTTTTCCCGTAGTTTCCAAAATTTTCGAGAGCGGGGGGGTCGAGCCAGAACACCTTGGTTTTCCAGCGAGCTTCCTTCATTTACGTCGATTTTTTTTTTAATCTTCGTTAAATCTAAAAAAAAACGACTTAAATCATTTTAAAGTTTCCAACGGTTTTCTGCATAAAAAATCAATTTCCAGAACCGTCCGGCCACTACGACGACAAACATCTCCACACGGCAGTTCTCGCTTACGGTCGCCTTCGTGTACCTCAATCGGCCTTCGAAAGTCTCTCACCAATCGACAAATTGCTCATTCATCACATAAAACACGACAAACAACCGGTGCTGAAGCGTGATTAGTGACGACCGACGAGTTGTCGGATGCGAATGATTGTAGTCTACTGGAAATCTCCGAATCAATCCAAACCACGATCATCATGACGAACCGGCACCAAGCTCTCCGCTGAAACGTCTTCGCGCCGAAAGTGGATCCCTATCAACTGCACAAGGCGCATCGCCCGAGTGTCTCACCGACAAAGCAAAGACAATAGAGTTCCACGAGACTGAGATAATGTTTTTGAAACTGGACCACCAGAAGACCAACAACTACAGCTTATCCGAAGGAAACGAAAACGCGGATAAGATATGTGTTGAGCAGCCGAAAACCAGGTAGATCAACCGAGTACGACGACATTAATAATAGACGTCTTCCGTCGAATTCTCATTCGGCAGCACCGAATTCCGAGAAGAAGCATTTCGTTTTTCCGGCACGGGGGCTTTTTTTTGATTACCTAAAAAATTCCCAACTTTTTAAAGTTCAAAAAAGTCAAAATTTTTGTCCATCTGGGCATGACTGCTTATGCCCCGCCCCCCTTTTTCGAAGTTTCTGCTTTTAGGAAAATGTATTCCCAAAGTGCCAGTTTGGATGCCCCACGAATCAAAGGGAGCAGAACGAAGGAGGCACCACGTATTCAAGATCTGGTGCGATTCCGGATCCGGCACCGTACAACTTGAAAACGTGGTGCCTTTCTGAGGGAAAATTTGCCTGCCAAGGTTGAAATATCGAATGCATTACCCGTAAATCGACACGAACTACAGTAACCTGTTATCCGCGTGGCGAGACCCATGCGCGTCATTTGTCGAATATTATACTAAAACCTTTAACTTGCAGAAAAACTTAATTTTTTTTGTTAAAAATTGAGCCAAAAGACTCAAAAATTTCATAAAGCGAAACTTTAAAAAAATATAATTTGTTAAAATTTCAAGAAATATTTATGAATTAATTAATTTTTCCAGGAATACCCCATGTGCCGTCTCTCCAGTTCCATCGGTTTCTCACTTGGTCGGTGATCTGACTTTTGCCTACACGATCCTACAGCCGACGCCATGAGAAGATGCTGCTCGACGAGGCGTCTTCAATCATCGAAAGTACAACTCTAGCAGTGTCTACTGCTCTGTTCTGCTCCAGGAGCTACAATGCTCCAAATATAGGGTCACATATACAATCATATAATCTTATTGCATTTTCGCAATTTCTCTCCACACACATACACACATCATCCCAAGTATTCGTGTGCTGAATCTCAGTTTGAATGCAATGTTTCGATACCGTTTTTATCCCACTATTGCCTTATCGTTTCCTGTTTTATTATATTTCATATATATTGCCACCACCACCACCAACACCACCCTCTCTATCTTTTTTTGTTCTTTTGCTGCAACATCATCACCTAGTTTTCTGTGAATTGAATTTTTTGTTCCCCCGAGTCCCCTCTGATAGGATACATGGTAGGAAAGACAATGAAAATACGAGTTTTTTCAAGGAAAAAAAAATACAAACTAGGAAACTATAGAAACAAAATACTGAAAAAACATTTGAGGCGCAGTAAACCTCTGCAAAGTTCGCAAATCCAAAAGAAAATATTTATTTTTCTAAATTATTTTTCCGCCACTCCAGCCTCATTCTCATTGGCGGGCGCAAAGTCATGTCGATTTACGAGATTAAGATTTTCAACGAGTTTATTGTTATCGATTTGCGTGTAAAGTTAACTAACTTTTTTGAAAATTTTCGCAAAAAATTTTATAAAATGTTCAATTGGCACGAGCAGATCTTCAGCAAAAAAACCGACAGAAATGTGTTAAACTGAATCTCGTAAATCCACATGGCATAATCCAATGAGAATGTTTTTAGCGAAGAAGTTTGAACAAAGGAATATCAAATCAGGGCCAAATTTGGAGCAATTTCTAAAATATTTTCTCAATTCTTTCGGTATTCCACATTCAAACAATTATTCGGCCGTTCCCAAGGTGATCAATCTTTCGATGGGATCCCTTGGTACTGCAGCAGTCAACAGCTCAATCCCCAGCTTCACTATTCGCCACGTCATCCTCGATACGGTATCTAATGGAAACTCTTTGACAGGCCAATCCATCCGAACCTACACTCCCGGCTCAATGGTAAATGGCACATTCGGTGGTAGAATGTCTCGTGATACTGTTGGACGATCGTGAACATCAATTCCCAGATAATGACTGACGTGGTGGGGACACAGCTTGTCCGCCTGATTTGATGAATCATCTCCTGGTGATGATCGAATCAGGTCGAGTTCGGTGAAACTTGCCGCGACAAGTTCGTTCATTCGGCGTAACAGTGCGCTTAGGCGGACTTTTTCCCTTGAGTGGACGTAGGTGAGCAGTTCTTCGTGAACGTACAGAAGCGCTTCGTAGAGGGATTGTTGGGCCTCTGACCAGCTGCAAAAACGAATTTTTTTTTGGGAAGGGTTTTTGAAACAATTTTTCAAATTTCGGTCGAAATTAAACTTTAACCGTAAAACGATTATCCACGGATTTCTGGCTTCCCTCATAAATTGGATTGGAAGAGTTTACCGAACTAGACCATTTTGGCTCGGCTATATCTGGCGCCGAGTCGCGATTTTAGTTGTAAAACTAAATGCATTTGTACATGTGGAGTACACGACTTTGCCACGCGTTGTCCGGCGGGCGATTGTCAATGGATCCTGCATGCAAAAAAAAAAGTTCACTGAGGAAGAGAACTCCGTGATTAGCACCCCCTATTTCTCTTACGAATCTATCTTCGAAATCTTCTATTTTTTAACAAGTCCTGAATTCTGAAATTCATTATAGTAATTTTTTGGGAATCCTTCCATTCCTACGGAACAACATCTCGGATTGGTGACTCAAATTATCTGAATTTTCAAAATCTCCAGAAAAAAATATCATTTTGCCTGAATTTTCTACTTTTAACGGAATAAAGTGCAAAAAAGACTCTTTTTGAGGCACCACCGAAAGGAGAAAGGAGAACACAAACCACGCCCATTTTTTCCTCGTGCCGCCATCGCGCAAGTTTTTCTGCGCGCAAATTTTTATTTTCAACCGAGACAGCAAAACTCCGAAATAACGCATATGTTCTTTATCATCAACGATACTGTTATTTCGGAGCTTCGTTGTCTCGTTTGAAAATAAAAATTAGATGCAGAAAAATTTGCGCGCGGCACGGAAAAAATGGGCGTGGTTTCTGGCGATTCTCCTTTTTCGTGTCTGTTCTCCTTTCTGGTGCCTCTTCTTTTTATATGTTGCGTAATTTTTTAGCCATCTTGGAATAGCCCCGCCCATTACTCCCACAAATCCATATCTACGAAATCTCGAACATTTCCAGAATGATTTGTAGTCTCTCAAACGGGAATATTTAAAATTTCTAGAAAAACCCCATTTTTCTTGAATTTTGGACGAACTTCTGTAATTTCTCAAATTCTGAGAAAAATTTTCATTTGAGTCACCACAAATACTGGAATGCAATCGTAGAAATAGACTTGTGGGCGAAATCAAATAATGGGAAAACATTCATTATTTTTTAATTTTTTGGGGTCACTTATAGCACCTACAATTAACCCCAGAAATCGGAAAGCCAACGTGTCACATCTGACTCATACCCATTCAAACCACACCCAGCATCCACGAGAACACATTCCCGGGGATTCGGTTAGGTCGGATTATTTGCGTCCAAATAGTGAATATTGGCAGGAACACCACGGGCAATCACTGGTGGATATGCTTGCATTTCTGATCCACGACGACGTCCTTCAAACTCCAAGAGCCCGCAAATCGCGTTCTCGTTGTGTACATCACGGGATCCTGATATCATCGAGCTCATTGTCTGAGCTCTGCCACGTTGCACGCGTCACGCATTGAGCTCATTTCGGATGGAGATTTTATTACTCGGCTACGTTCGATCTGCTAGGAAAACTTGAAAATTGGCAAAAAAATACTTTTTTTTTTGAAATTTTAGAACGATTTTTCGGGTGTTCAGAAATATTTTTTTTAGGAAAAAATTGGAACTTTCCAAAAGTTTCAAAAAAATAATTTACAACTTTTTCCTAAAAAAAAAATGAATATTGACAGCTTCGAAAACAGTAAAAATTGTTGGAAAATTTTATTACCGTTAAAAAATTTTTTTTTTTCGTAAAAAAAACTTTCAGTTTAAAATTTGGAGCGTTTACAATTTTATTGATAATTGGTGAAACAAAATAAAAGGTAATTAAAAAGTATTTTTTTTTAAAAATTTGAAAAATTAGATTAAATGTTTATTCTGGGATGAAAAAACCTCCTAAAACCATTTTCTGGAAAATTTAGCGAACTTCCTATTTTGTTAATTCTTTTTTTTCAAGAAAAAATTTTCCACTAGAAAATGGAAAAAAATTGACGTCGTTTAGAGTCAAAATTGGAAATTTGAATTTTTACTAGCCCTTGAAATCGCGCTCGAAAATCGGATTTTTTTTTCAAAGCTTGAACAATTTTCTGCAAATTCTATCTCTAAACTCACAAAAATGATTTATTTCCCGAACATAATTAGCTTTAGCCTGTACTAACTTCTAGAGTAATCAGTCGAATCAAAAAACACTGCAATCGTTCCCTGCGTATCTCAAACTTTTTCCACTGTTAAGTCTTTATCCGGCTAGTCGGATTCCGTGAATTTTGCAGTCTTTTCCCATTCGGATTCAGTTGGTAGGGCGCCTTCCCATAGCTCATCATAGACACTAGTCAGCAAAAAGAATATTCTTTTGAAGATTCGGTATTCCTAATTGCATTATGTAATAACATTCTGGTGTGGTGATTCCGTTATGTGCAAAAAAAAAAACTTATTTATCAAATTTTTTTTTAAAAATTTAATTTATTTTTTTTATCAAACAATTTTGAATTTTTCCCAAAAAAAATCCGAAAATTGTGAACAAATCTTATTATTTTCGTTGAACAAAAAAACAAATTGACACTTTTTAATTAAATTAATTTTCGTTGAGAAAAAGAGATTTGTCGATTTGTGTTCGTCGCGGCAATGATTTTTTTTAACGAAATTTTCCTGAAAAATTCAATATTTCAATAATTCCTGATTTTCTAGTTTTTTGAAAGAAGAACATGTTAAATTTCTATTAATTGTATAACAAAAAATTTCGGGAAAATCTAGAATTAAAAAAAAATGAGAAAAATTCTAGTAATATATTAATTTTAGGTGTAAATTTCGATAATTTTAGGTTATTTTTCAATTTTTTTATGCCGGGCGAAATTTTGATTTCCAAAACAAAAATATGAATATTTCTGACAATTAATTTTCATTCTAGATTTTTTGCACAATTTTCAATTGTTTTCTGAAGAATTTGGTACTTATTGTGTAGTACATGCCCTCATTTTTAAATTAAATTAAATGTTCATTAATTCCTTATAAATTAAACGTGATATACATTTCCTCCTTTTTAGGCTTAAAAATTGCTATTTTTCTACTTAGTAAAAATTAAAAATGAGGGCATGTAATACACAAGTACCAAGAATTTCAAGCCCGTCAATTCTTGTTTTTGAAATCTTTTTTGGGAAAAATTCCATGACATTTTCGCAGATTGTTTCTTCGTTCAGAAAAAAATTTTCTAAAAATTATTTGTTTGAAACTTGGGTCTAAAAAAATATCTCTAGAGCACTTTTTATCCTTTTTCAACTTTTCTGGAAAAAGCTTTTTTATAACTTAAAATGAGTTTCTGTGGCCGCGTTTTCTCTCAACATTTTCACTTTGCGGACAGGGCCACCAAAACCGAACCTGAAATGGCTTTTCTGTCGGAACGCGTGTGGAACATCCGGTGCAACATATGATTTCCGAGCTCCTTTCATCACAACGACCACTTGCTTTTCTGAAACTTTGAGAGGTCATGGCCCACGATAACTTTTAAATGGTTTTCTATGCATGGTGATTTTATTACGGTACCGGGTCTCGACACGATGAATTTTATAGAATAAATTTTTCTGAAAAATTTCATTTTTTTTTTTAGAAAAATCAAATTTTCAAGATACATGGGCAAACATTTTTCAGGAAAAATTTAATTTCATAGAGAAAAATAGAATTTTTCCTATAAAAAAATCTGAGCGTAAATTCGGATTTTTGAGACTCTTTATTTGGATTTTAAAATCCAAATTTTCAAAAAAAAATTTAAAAACCGGAAAATTCCAAAACTTTTTGAGAGTAAACTAGCCTTATATTTTTCAATTAAAATTAATTTTTTAAAAGAAAATTGGAATTTTTAGAACACCAAAAAATTGGCAATTAGTCCCGAGTTCTTCAACGGAAAAATCTGAAAAATCCGAACTTTTGAAAATCTTTAAATATCCCAATATTCAATTAAAAGCGAAATTTCGGATTTTTGAGAAAATTTCAATTTAAAAAAGTCTTCTATTTGTACTGCACACATTTCTAAGACAAATGCATGGCCTAGATAACTTTTTCAGAATAGGCCACCAGGCCATTTGCGACTGACATCTGCCTCTTACCCCCAGTTTGGACCTCTTTTTTTAAATTCATCAAATTCGTCCTTCTCATCGCATATTCCGCATTTGGAATTCGCGATGGCCACATTGGTAGGCTCCGCCCACTTCTGAGCATTTTTTTCTTGGATCCGATCTGTGTTCAGTGGGAGGGAAATTCGAATTTTTTTAGAAATGATTAAAACTGAAAAAAATAGATTTTTTGGGAAGGAACCTGAATTTACGAGAGACTAGTAAAAAGGAGGTAAAACAAAAAATTCGACTTTATAAATTGAGTCAAAAATTAATAGAAAAAATAAACTTAAAATTATGAACAGAAGAACCTACTAAAAAAGTCTAAAAAATGAATGAAAAATTGCAAAAAACATCTTCAAATCTATACGAGACTCCTCCTCCAACAATGCGGTTCACGCGGGTGATGTACCTGAAAAAAAGTGATTTTTTTTTGAAATTTTAGAAAACAAAATTATGAAATAAAACCAAAAAATTTCCGAATAATCGAGATTTTTCGGAATAGTTTGAGGTTAAAAAAATTTTCCCAATTTTTGATGAAAAGTTTTTTTTCCAACAATTCGGAAAACTAAAAGTACCAAAAAATTTTAGTTTTTTCGATTGTTTCAATATGATAATGGTTTTTTTAAATGTTTAAAATTGTATTTTTTCCAAAAATATTATCAATTTTCATACAATTTTATGGTTTGGAGATTTTTTTCAAATTCAGACCAAATTCGATATTCGAAACGTTTCTCGAAACAAAATTTTTCAACTGAAAAACTACAAAAAATCCTCTTATGGATCTTTGAAGAAAAATCGATATTTTCTCAAATTGTTCAGATTTTTTCTGTTTTTACCCAAAGTGCCCAAATTTGAGTTCGCCACGAATGTTTAAAATTATTTTTCCCGTTTTTTCGATATTTGCGGGTTAAATTTTTTTAAATTTGATTCAATTTTAATAAGTTTGAGTTTTTTTACGATTTTTTGTCCTAATTTTTTCCAATTTTTTTCCATTGGTAGAAGGCAAAAAGTGCGATTTTTTTCCTTTTAAAAATAATTATTCAGTTTTTCGACTGTTTTCTTCTCGCTTCCAGATTTTAAGTTCTCGAATTTTTTTTATATTTGAATTGTATCTTTAACTATTACCTAACGAAAAATTAGTTTTATTTTTAGATTGGAAAAGAACGTTCTTTTTCGTAAATTTTAGTGATTTTTGATTCCAAATTTTTGGATATTTTTCAAAATTTCCCATAGAGAAAGTTTTACCAGGCTTTGGTAGAAGCCAGAAATCGATTAAAGCTTTTTTGGGTTTTTCGACAATTTGTCAAGTTAGGAATTAAACTTTTAAAATTTATTTCAAAAATTTTAAAAAACTAAAAGTATTTCTGAGAATTTTTCTGATATTAATTATTCAGTTTTTCGACTGCTGCTTGCTTCCAGATTTTTTCTCGAAGTTTTTATATTTGATTTTTTTAAAAAATACTCTATAAAATTCATTTTTTTTAGGCATTTTTTCTGGATACTTTCTCTTTTCGAAATTTTCGTAAGTGTCAGTGTTTTTCGATTTTTGATTCTAAATTATTGGATTTCTTAAATTTTTTCGGAAAATTCTACCTGGCTCTGGTAGTAGCCAGAAATTATTGAAGAAGCTTTTTTTTCGATTTTTTAGACAATTTTCCGAAGTTTTAGTTAGGAGTTAGACTTTTTCAAATTTTTTTTCAATTTCAAAAACTTTACAAACAAAAAGTACTTTAATTTTTGCGAAAAACAGCATTTTTTTTCTCGAATATTTGAACTTTTTAAATTTTTAAAGCTTGTTTTATATATATTCGAGTATTTTACTCTTAATCAATGAAAAATCTTTTTTTGATAATTTTTTTCAAAAATGTAAAATTCGAATTTGAAATTATTTTCATTCAGAAAAGGGAAACTATTTGAAAACAATTTTTTGTTGAATTTTTCGTAAATTTGAGTGATGCTTTTTGATTCCAAATTTTTGGATTTTTTTTTGAAAATTTTCCACGTTTTGGTTAGGAGTTAGATTTCTTGGAATTTTTTTGAATTTTTTTCCAAAATTTTAAAAAAGAATTTCTGAGAAGTATTTTTTCCTTAAAAAAGAGGAATTTTTTAGTTTTTCGACTGATTTGTGCGTGCTTCCAGATTTTTTCTCCAAGTTTATAAACTTAAATCTTGAAATTTATATTCTAATATTTCAGATATTACCTAATCGATAAAAAACTTCGTTTTCTTTTCAAATTTTAATTGAAAAAAATCGATTTTTTCGATAATTTTTTAACGGCTTTTTTTATTCGAATTTGTTCAAACACTTTTTCATTCAGGAGAATTTGATTATTTGCAATTTTTAATTTAATTTTTTAATCCTTTAAATTTTCGTAAATTTTGAGTGTTTTTTGATTTTTTCCAAATTTTTTTTTTGCAAATTCTCAAAATTCTTATTTTTGCAGAAAATTCTACCTGGCTTTGGTAGACGCCAAAAATTCGATTTAAGAAGCTTTTTTTTGATTTTTTTTGACAATTTCCCAGGTTTTAGTTAGGAGTCATTTTAAACTTTTTTCTTTTCTTTTGACTTTAAAAAAAAGTTTAAAAACTAAAAGTGTTTCTTAGTTTTTCCTTAAAAAAGAGGATGCACATTTTTTTCGCTAGTTTTCCTGATCGACTGACTTCGTTTTTGAATTTTTAAAAATTCAACAAGTGTATTTTTTAAAAATCTAACCGATAAAAGAGTCGTATTCTCGATTTTTGTTTTCAAATTTTTGGGATTTTTTTCAAACATTTTTCCAGAAAATTTTACCTGTCTCTGCTAGAAGCCGAAATGTGTGATTTTTTTCCAAAAAAATGCTGGCTAGTTATTTAGTGCTTGTTTCTTTCTCGAACGTTTTATTATTTGAACTTTAAAAATTTTTATATAATATTAAAAATTTAAATAATAATATAGAATTTTTTTGAAAATTCCTTTCTGATTATGGAAAAAACATTTTGTTATGTATTTGAGAAACTGAAATTTTCTGAAATCTTTTAAATTTGGAAAATTTCGAATTATTTTTGTTGATTATACTCTAGGTAATCGATAAAATTTTTTTCCAATTTTATGAAAAAAATGATTTTTTCGATAATTTTTGATTTATTTTCGGGAATATTTGAAAACAAACACTTGAAAAATAAATCAAACTTTTTTTTTGAAATTTTCGTATTTGAATTTGAGTCTTTTTCGATTTTTGATTTTTCTAAATTTTTGGATTTTTTCCCTCCAAATTCTTCGTCAATTTTTAGAAAATTCTACCTAGCTCTGGTAGAAGCCAAACATTGATTTAAGAATCTTTTTTTTTTCTTGGATTTTTTTTTGAAAATTTTCCAAGTTTTGGTTAGGAGTTAGTGGATTCCCTCAATTTTTTTCTTGAATTTTTTTCAAAAGTTTTAAAAACTGAAAGAATTTCTAATAGGAGATTTTTTCCTTAAAAAGGAGGAATTTTTTAGTTGTTCGACAGATTTCTGCGTGCTTCCAGATTTTTTCTCCAAGTTTTTATAAAATCCTTAAAATTTATATTTTTAAATAATATTTCAGATATTATACTCATAATCGATATAAATTCGTTTTTTTTTCAAATTTTAATTGCAAAAAAATCGATTTTTTCGATAATTTTTGAATTTTTTTTGGGTTACAAATTCGAATTTGCAATATTTTTCATTCAGAAAAATTTGATTATTTGAAAACAATTCTTAAGGATTTAATTTTTTAATCCTTTAAATTTTAGTAAATTTGAGTGTTTTTTGATATTCCATATTTTTGGATTTTTTTCCAAATTCTCCGAATTGTTATTTTGCAGAAAATTCTACCTGGCTTTGGTAGAGGGCAAGCCAAAAATTCTAAGAAGCAACATCAGACGGTCTTCCAAGTCTTCCCAACGGAATCATCGATTCCAAGTGTTGTTTAATCTGGCGAGCTTCTTCTCCAGAAGCATGATCCCATACAGCACCAGTTTCCTTTTCAATCATTCCAGACACCACACTAATCACGCGGACTCCTTGTTTCGCGCACTCGCTACGGATTTTGTAAGTGGGACACTGCTAGATGCAACTGAGTAGAGGGACCCATATCGATTCATGGAGTGAAGCCGAAACATGACGTTAGGTAAATGATACTGCCGTTTCTGTAAAAAATCGATTTTATTTGGACGGGAAATTTTGCCTGCCTACGTGCCTACCTGCCGGCCTATTAGCCTATTTTTCATATTTATTTTGTTGTTCTACTTTTTTGCCGTTTTTTGGGAATTTCATGAGTTCTCGGGTCGGCACGACTTCATGCCCACGTGCCTATCTACCGGCCTAACATGATATTTTAATTCCATGATTTAGGTAGGCAGGTAGGACGAATACCTGCCTGCCTACCGCTGTTTTTTTGAAATTTTTTTGTGTGAAAAATTAAAATTCAAGGGAATGCTTTTTTTTTCAAAATTCAATGATTTTTAATGCAGACCGCGCCTATCTGCCTACCGCCTATTTTTGGCATTTTTTGTGTGCAAAACAAAATCAAATTGGAATAGATTGCCTTATCTTTTCGTTTTTCTAATCTGTTTTCCATTTCAAGATTTTTCGGATAGGCACGACTTCCCACCTACTGTGCCTACCTACCTACCGCCTATTTTTGGCATCCGGTTTTTGTGAGTAGCAAAAAGAGATCAAATTAGCTTTTTCTCCTGTTTTCTCCGATTTTTTTGGCAATGTAGGCACGACTCCATGCCTAGTACCTACCTACCTACGTCTCCTATTTGTCGGCATGTTCTCGTACAGAACATAATCAGATTTTGAAAACACTAATATTTTTGTTTTCTGAATTTTTTTTCCAAATTTTGTGATTTCTAGGGTAGGCACGGACTTCATGCCTACGTGTCTACCTACCTACCGCCTATTCTCGGCCTTTTTGTGACTGAATAAATTAACATTCTTGAAAATCCTTTTTTTGTTCCCTTTACTTCAATTTTTTCAAGTTGCATGTTCTCTAGGGTAGGCACGATTTCATCCATGTATCTACCTTTTATCCCCCTTTTTTGGTTTAGGTCGGCAGGCTTGAGTCAGTGATGCACGAAAATCTAGAAACATAATTTTGATTCTGTACGGTAAATTAGGCTTTCAAGACAGTTTGAATTTCTCGAATTTCTACCAGCAAAAAATAATATCTGAAATAACTTTCGCAGCGAGCCCCAAGAAACTGACTGATGGCGATAGCGTCGACATAGCGGCTTTCGAAAGACGGGAACGGTGTTGTCAGATTGTTGGCGAAAAGCTGAAATTTCGAGGTGAATTTTCCACGTGGAATTTTCAGCACGCTCGAACCTTATCAAAATCCTCGCCGGATGTCTCAAGAATCTTGCCGAGCACCTCATTCTGTGGTGGAACTGTACTTAAAGTGTCCAGACCGCCGAGCTTCTCAGCCACTTTCGTGATCAGCTTCCGGTCTGTCCTCGGCTTTTGACACGTTGAGAAGGCTGTGACTCACCTCCAACCTGAATTTATTCCCGAATTGATTCATTGTCAAGTTCTGAAAATCTTCCTAAACCTTTATATTGTCCTCTCCTTTCCCCACTATTCGGACAGTCTGCGGCGGCGGCGACCTAGTAGCCGGTGAACGCGAGTCTTCTCACTACGCTGCTTTGCCCAGTGTGGACAGCAGTTGCCCCGGTGCTTACGAGTGCACATGACATTACTCTGAAAGCCCGATGATGTGGAGGCACATTTATAGATACACCTAGACATCAGGTAGATTTATTTGGAAATCCGTAGAAAATAAAGATCGTGATAAATCATTTTATTAGAGGGGAGAGGGAGGGCGAGCAAAGGAGATCGCTGACAACTTTCGAAAACCGGTTATTTACTCCAGTTGGACGGCTTATTCATGCCATATTTTCCAAGTTATTTACACTATTCTGTTGGTATTGAGAATGTTGATTCTGCTTAGCTGGCGGCTTCGAGCTAGACATCTTTGTAACTCGCGCTCGTCATCCTTCCGTAGAGTTGACGACCTCCAGCGCTGCTTCCAACATTCCGGGGCATCATGTTCATGAATGTAGTAGGGAACTAGTAGCAGGTGACTAAGAGCCTGCTCCATGAACAACGGCGACAAGTTGTTGGCTGCTGCATATAGTTCCTGGAACCCTGGTGGTGGTCCAACATTCGACGCCTGCTGTGGCAGCTGATCCGGAGAGCTTTGAGATCCAAACTTATTGAAGTCCAGCGATAAATCCTTGAGTCTCTCTCACCAGATTGCACTTGTTGCGCAGAAGCAGCCTGTGACAGACGAGCAGTTCGAAGCAAGCTTGTAAGATCAACTCCCATTCCGTATTGCATAAGAGGTATATTGCTCATCACGAACTCCTGGCACTGGATTGTACCTGTTCATGTAGTTGTTCATGTATGGTGCATATGGGGGTTCTTGAGTGAACATCATGATGGGGTGCTGTTGTGGATTTCCAGTCGGTTGTGATTGAGCTGGCGGAGTTTATTACTGCTGCTGCACTGGGCTGTTGTGGGGCTTCTTGCTGCTGTGTGGCTGGTGCTGCTGAGCAAATTGCTGTGTTAGAAGTCTGGTCCAGAATTGTTGAACTTGCGGCGCCATCCTGTCCGTTGGTACTGATATGAAGCGGACGAAGTGTCCTAGGACAATCCTCAGTTAGATTGACCATAGGAGAATGGAGATGAAGTCGATTTTAAGTGTAATCGCCGTCAGGAATTGACGTCCTTTCTGGCAGAAAAATAATCGAGAATTAGAAATCGTCTTTGCAACAAATTTAACTCCCTCAACTTGTTTCGGGATTATACGAGAAGAGTTAAATATATAGAATTTCACTGTGAAATCGAGGCAAATAGGCGGAGGATTCAATAGAAGGAAGCTGTGGGCTTGGAGCAGCCTCAACAATACAAATGAGTAGTCATGAATGTTCGTTGGTGCAGTTGTGCGAACAAATTCCCCTACAGGATCAGGAATAATCTGGACTGGTGCTGCACTGGAATTGGAGATAATCCTAGTCCTGGTGCTTCACTCAGATCTATTCCTAGATCCGTCCTCAGTTCAATGGTCCATGCTTGATTAGGTTCTGGGGTGCTTTGTACATTTTGATCGTGATGAGTCGACACATTACGCGTCTGCTCCTCAGCCAAAACTGATGATTCACTGCAAATTAAATTTTAAAAAATCTAAATAAGTAAAAGGACAGAACAACTTACTTTTTGAGGAAACCATCTTCATTCTCCGGCTGGTGCGAGGGTTCTGGCTCGAATGCAAATAAAGGCCGGCGCTCTGGCTCTTCTTTAACTGGTGCAACTGATGGAAGTGGAGGTCTATATGTGAGAGACTCCTTGGCGGAGCTGCTGGTTGAGGATTCTGTGCCTGGTACTTTCGGAGTGCTGCTTTGCGATGGGCAGGTGCTGCTACTGCAGCAAATGAGATCGGTGCCGGCGCAGAAGATGTGGGAACAGTGGCGCTGACGGGAAATTCCTCTACTGGTGGTTGTACTTCTGTGACTGTCTCCACTTTAGTCTGCTCCTGGAAAAAAAACACGTTTCGTCATTTCCTTCTTCAAAAAATTCTTACCTCATCAAGATTAGCCGTCTGAGCGCATCTGGGTCAAGTGCTGATGATGGAGCAACAGTTCGGGAATATCCACCTCTGGCGCCACCTCCACGTGCTCGTTCCCACCAATACGGTTTTACAAATCCTCCTCGAGTCGTCCAGCGTGGTGCTCTGCTCCTTCCTTCATTATATCACGGTTATCCTGATTATTATCTCGACTTTCTGGAGCTCCATTGGATCGCCCGCGGCCTCCTCGATCGTCGAAACCGGTGACTCCACCTGAAAAAGACATATGAATATTTGATCTATTTAAGCACGAACCTCTGCCTCTTGCTACAAATCCTCTGTTGTTATGACTGCCCTCTTCCGGCTTCTTCTTTTCCTTTTTAGCTCTTTCTGTTCTGTGCACGAGTCAAGTTTATCTCCAGCATCCAGAATGTGATCGAAAGTGTTGCGCCGTAAAGATTGTTGTCAGTATCCAATAGCTATCTCAGCTTTTGCTTGTGTACATCCGGTGGTTTTGATAATCTGAAAATGAAAAAGGACATGAGCAGTCTGAAAAAACCTCTCTTGGGAATGCGCGAACACTTTAATTAGCCCAAATGAGTAGGGCATGTGGGTACTCTTACTCTCGCTGCACCATCTCAAGCGCGCCTGCTTTTGTCCTGTTCAATTTGCCATCTGGCCCCGTCTTATCGATTCGAAATTCCTATTGACACTGCAAAGCGGACACTAGAGAAGTTCAGCCTAAACAACAAAGTCACGTGCGTCATCATGTCGGTGTGTGTCGAGCGTTAGCGTGAGTGCAAAGATTCACTATTGAAAAGCGTCATTTCCAGCTTGGAGACTTACCATCTTGATCATAAACTGTATGTCCTCCTCATTTCCGGAATTTCCTTCTTCAGTGTCGTAGGGGGCAAGTCTGATCGCTGGTAGCTTTTTTGTCGCCTTTAATACCCATTCTGAAAACAAATTATAAATAAAAAGGGTCAGTCATGTGAACGCAGACTGAGAACTAGTTGAATGAGAATCACGTCTTAGAATACAACTATCAAAGGAACGTTGAATGAAAGGAAGCAAATAGATGACACACCACTAGTAGGACGAAGAAATATGGAACCTTCCATCACAAAAACATTATCAAAAGAAAAGCCTCGTACAGAAGACTCTAACACAACATGAATATATCAGTTCAGCAATACATCACGTTACGCTTTGGAGGATATTCTAGAGCAGAAAACCCCGACTACAAAAATTTCGAAATGGAAAATTCGAATGAACTGCTATACAATGGAGAATCCTATTGAGCGATGATAAAGTGTAGGTGTTACTAGATTGAATCAAAATTTCGAAATGTAACAATACATTGAGTGAAAATTTGGGTATTTGCAGAGTGTGTATCACAGCGGTAAAATCAATGTTTCCACTAAACTCAAAAGTTCTTACGCTGAAAGATCAACATTAAAAAAGTGAATCACCGCAACCTAGACGAATCGCGTTGCCGTCAAATCTCGCAAATTCCCGGAGTTGAAAATGCAGTCGACCGCGACGCGAGCGGCAACGCACCCCGACCTCCAAGCGGCATGGGTCTCGCCACGACCAAAAGTACGACGACAGCCTCTATCTGGCAGTATAAAAGGCGACCATTTTCCGCTATTTTCCGGTAAATTTTGCGATCGAATGAAACTGTGTTGCTGAGGGGGTGCTAATTTTCCGGAAGTTTACCTATTTAATGTAAAAATGTGAATTAAACAAAAGAAAGTGGGTAGGATTATCAAGGAAACACACTGTTCTGGGAATTCGATTTTGTGTATGGACTCTTATGGCGTCAACATTATCGACACGAACACTCAACACCTTGTCACATTTCTGAGAGGGAAATATCATTTTCAACATGAGTCTTCCCAGTTCATTTCGACTCGTCGGTTCAGGTAAAGGCGATCGGCGAGCGATCAACCAGGAGCACACCAGAGCCGGTAATTGTTCTTTTTTATTTCAAATTTCTACAACAACAAAAAGAATTAACAATAAATTCCTTTGAGGCCCCTACCCACATAAAGTAGGAAGTCGACTACCAAGATGGTCATCAAATGGCTCCGGAACCCGTGGAAGCACCAATGTATAAAAATTTAAAAAAGTTAGAAAAAAAATCTGAATCCCAATTTCCAGAGGCTCAAAACGATGAAATGTAGCCACCTCAACCTAACCGCAGATGCAGAGAAGCATTTTAGCATAGCCAATGGCTCCCCACAAAGGCCGCCCTGGACTCCACTAAACTCTGCAGCGGCGGCCGCCGCTGCTTGAGATGACAAAAACGTGAAGGGAATGCGTCCGCTTTCTGAAAACTTTAATTAATGTGTCGAATAACGATGATCCAGAAATGTCGGACAAGGCCGCACGTCTCAAAGAGCTTATTCGAGTGAGGAATTGAGCGAAAAACGCGATAAAAACCGGACAAATTCGGATATTTCAGGGTGATTTAACTGGAAACGACGGCTGAAGAGTTTACACGAAATCTGCAACAGATCAAATCCCAGGCTCAACCGCATCTTTTACCTTGAGAATACTCTTCCGGCAAGGAATGCTGTTCGAAATGGTTCGGTTTTATGTGCAAAAAAATTAAGATCGCGCATATTCAAAAAAAAAATTATCGAAAAACAGGTCGAGTAGCATTGCGAAAAACTTGAATTAAAGGTAACATAAAAAATTGCAGAAAATCCGTTGAATTACATTTTTCCAGATTGTCTGTAGAAATTCCATGATAAAAATTCAAAATTTCCAAATTTATTGGCTATTTCTAGGCTCAATTTCATTAAAATTCCATTTTTGATAGCGAAAATTATCAAGTTTCTAACAATTTCAAGCTATGTTTTTGGTGATTTTTTCAATTTTTCGGCTTTGAAAGTCCATTTTCCGGATTGTCAGAATATATCCGAGTTCCACAAAATTGAGTAAAAAAAATTAAAAATTTCCCTTTATTTAAAAATATTTTCAGCTGTCAGTAATAAATATGGATTTTCCGCAATTTTCTCACAATTTTGAGCAAATTCCTCAACCGATTTTCAGCCAATTTATAAGGATTTGCACCCAGGGGGTTGTCATAATTTAGGGTTCAGCTGAGAAATTAAGTAGTAAGTTTCTGAGAAAATTTTTATAGATTTTCTCAAATAATTTCAGCTCAAAAATTCGATTTTCAGAGCGCATTTCCAGGTTTATTAAGATTTTGCCACCAATTCTTTTAGCTTAAACTTTAAATTTTCCACATTTTTTGTCTATTTCCAGTATATTTCTTTAAAATTCTATTGTTGAAAGCAATAATTATCAAGTTTATCGCACTTTATCAATTTTTCCGCAGTATCTTTTTGTGATTTATCCAAGTTCCACCAAAATTGAGCAAACAATTATTTAATAACTTCCCTTTATCCTCTTAATTTCCACAAATTTTCTCGCAATTTACACGCAACTTTCATAATTCAGGGCTATTTTCAGCTGAAAAATTGCAATTTAAAGTTTTTAAAATGTTTATAGATTTTCTCAACATTCAGCGTCAAAAATTCTATTTTTAGAGGCGCATTTCAAGGCAATTTATGAGGATTTTTAACTATTTTCTAGATGAAGAATCTTTTTTTTTCCTCTTGGACTATTTTCCCTTATTTTCAGATTTCCAGCACTGCATCAGTTGAAGGCGTAAATCCACCGCCTGGCTACGTTTGTCAACAATGCAAGAACCCCAGGACCCCCTCAGCCACCGACGTCCACCTCAACAACAATCCCAGCAGCAGCCACCACTAGAAATGCGTTAATCCGAATCAAATACCCCCACAAATGGTTCAAGGGGGTCCCCATAGGGTTGTAGGCGCCCGGCCAATGATCAGGCCTTCGAATGGGCCGCGGCGGCCCTAGCCCGGCCTACAATGCGGCCCCGTACGAGGGCCGATGGGACATCAGATGGTCCAGATGCATCCTCCTCCCCCACCACAGCAGATTCAACAGCAGCACCCGGCTCCCCCTGTAGAAATGGAGGTGGAAGAGAATTTACAGCCTACCGCGGCGAGGGACCGACGGCCAGCAATATAAGGATCGCTCAAACCGTCGCTTCTGAAGCGGGATGAGGTGCGGAATAGGATCACGAAACGAATGATGTCATCGTGTTCGTGGAAGAGGAGGGTGCGCTTGTCGCGATTTCAGCTGTTGAGTCGCATTAACTTTAAGGAACTTATTACACTGATGGCGTTGCAGAACATCGGGTGGAAGAGTTTGAGGTATTGAGGAGAATTGATTTTGCTTCAAAATACGGCAGCGAAAACAGCAAAAATTAAGGAAAAGGAAATTAAGACGGCTTAACAACAATTTTACATTAAAAAAAAATTTAAATTTCAAAGGTTCCGAACTATTTATTAAAAAAACATCTAGATTTTAAAATCCAAACAAAGTGAAATTTACGCTGAAACGCGTTAATTGTTTTTCAAAGTCCCAAAATATAAAAATCTGAGAAATATTTTCAAAAATATCTCCAATTTTCCCCAGATTCCGAATATATTCAAATTCAAAAAAAAAATTTCACCTTTATATTTCAGCTTGAAGCTATTCGCTTTGTGCATGCACACCATGACCGACAAATTTTTTCAAATGCGCGCCCAGATAAATAGCTTCTCATCGGGGGGCTTACTCGCTTCGTGTCGATTACGAGTTCATTTTTTAATTTCTTTTAAGCTTTTTTTTTCAGTTTTTCAACGAGTTTCATTGAAGATTCTTCGTCGATTTTTTGTCATTTTTTGAAATTTTGTTTTGTGTCAATTTGACACTTTTTTAGGTCAAAACCCCTGTGTTCGTCGATGACGTAAAAATATAAAATTCCGGGACTTTGTTTGGAGATATAAAAAAAATATTTTAAAAATTACGCACAAAAAAAACTGACAAAAAAGCATAGACAAAATAAAAGAAACGAAAAAAAAAAAGAAACTGTAAAAAAGCACGAATAAATTTTTTTAAATAAAGGAGAGCTGCCGTAACCATCGACACGAAGCAAGCATAAAATGGCTTTTTTCCTAACGATTTGTGAAAAATCCGAATTTTCCATCCTAATAAAAAAGCAGAATTCCGGAGAACTACGTGGCAATTGATGACGTCAAACGGCGCGTGATTAACTTCGCTTCCTTGAAGATTTGGATCGTCAAGAGGAAGAATTAAGGGAAAGTCGAGAAAAAGAGTCGCTAATTCGAATGAACAAGAATAAGAATAGTGGCAAAGAGACGATAGAAAAAGCGAAAGAAATGCAACACAGGAGATGCAGAAGCGAAAAGGAATATTCGAATGCGGCTGCAATTAGCACTTTCCAGTAATCTAAAACTGTCAAGAATAAGTCCGTTTTGAGCGTGAAATGTTCAAAATTAATTATAAAAAATAGATTTAAAAAAAACAATTTCCTCACCAAGGGCCGTGTCATTTTTCGATTTTTCGGTCTACAAAAATTCGAAAAATGAGTAAAGTTTCGTGTTTCGATTAAAAGTCAGAACTGAAACACCGACACCTTTGTTTCTGAGATTTGGATTATTGGAAATGAGCAAAAAAAAATTATTCAGAAAAAATTGTTTTACAATGCTGAAAAATCGATGAAAAAATAAAATAAATCAATAACTAATTTAAAAAATGGAGAAAAATTTCGATTTTTTCGTTTGTATTTCACAAAAAAAAATTTTTAGAGATAAATAAAAATTTGCAATTAAAAAGAATTACTATTTAAAATAAAAATTGAAAAAAATAGAAAATTCAGAAAAATAGCGAAAAATAAGTTTTTTTCCAGAAATTTCGTTAAAACGATCAAGATCTTAACCCTAAAATTTAGATAAAATCAATTTCTTGTGGTTCTTAATTTGAAAAAAAAAACAGTACTTTCCATTAATAAATCACTTTCAAGCGAATAAATTCGTTTTTATTGCGAAATTCGCAAATTACGAAAAAGTGAAAATAGAAGCTGAAAGGAAAGAATGTTTAATAAAGAATATTTTCGGCATTAATTGGTTTTTATACATATTTTTTTGTAGAAGTAAAATAATTACTAAAATCAGTGAAAATATTGAAAAAAATTTTAAAATCTGGAAAAAAAGCAACAAAAACTTAATTTTTCCAGAAATTTCGTTGAACTATTCGGTATTTTAAGCCTAAAATCAAGATACAATCAATTTGAACAAAATTTGCATGCTTTTACTAAAATTAATTCGGAAGAAATAGGAAAAAAAAGAAATTCTCGGAGAAATTTGAATTATTGGAGAAAAGCTGAACACTTACAAAAAATTTTTTACTCCGTTTTGAGAAAAATTTTTGAATAGAAAAAATTTTAAATTTTTAGAATTTTTTAACTATAATTTTTGAATTTCAGTGACTTATAATCACTTCCAGAAAGACAATGAACGAAAAACAAATGCTTATCGGCAAAAAAACGTATTCTTAAAAAAAAATTTAAATTTCTAGTGACCTTGAAAAAAAAACCACATTTTCCAATAATTTCCAGGAATAAACTAAATTTCTTTGGAGAAATTGGAAATTTATTTCACATTTCGAAAAAATTTATATAGAAATAAAAATTTATATGAAAATAAAAAATTTGCAGCTCCTTACAGCAATGAAACCTGTCATTTGTTGAAAATTAGTTTTTTTTTAATTTAGAAATTCTCTTTTCGAAAAAAAAGGTTTTTTTAAAACGTGATTAAAAATTAATTCATTCATGTCATTTTTCGCCAAAATAAGGGAAAAAATAATTTCTAAAATTAGACAAATACCTTTTCTGTTGAAAAAAACAACATTTTAATTTTCTTGTTTTTTAAATTGCTTCCACTAAATTCACTTTTTGAAGAAATGTTTTGAAATTTTTACTGAAAATTGTTGGAAAATTATTAAATGTGCATTTTTTTGCAATTTCCAGTTGATAAACTAATTTCGGTTCAATTATAAAATAAATTTTGAAGTGGAACCAATTTCAAAAAGATACATTTTTTACAATGTTTGTTTTTGTTGATAAAACGAGCTTGTTTCTACATACCGCTTTTTTACATTGAAAATAAATTCAGTCAGATGGGAACACACGGGAGCCGCAACGACGCACCTCGTCCACGAACAGTACGTGTAACAACCAATCGTGAACTACATCTTTTATTCACGGCATCCGGATAGCCGATTCACAGGGTAGCGATTTTTTTTGTTTAAAAAATTTAAAAACACCGTATTAAACATTTCATTGGAAAATACTGATTCAAAAAGTTTTCAAAAAACTTTCAAACGAATGGTAGTTTATTTTAATTTTAAAAAATTCCAATAAAAATCAATTTTTATACGATTTAAAATTTTGAAAAGTTATCCCATTCGCTTCTCCTAATAAAACTCATTTTTTTTCCAGAACATTCATCCGTGAAAAGATGTCATACGGTGGTCCGGTGACAGTCGGTACAACTATCTGAACTAAAGAAATCTCATGGAAAAAGGAGCGAAAATTCTGCTTTCGCTTTTTCGTTTTTTAAATTTAATTTTATTTTTCCACAAATTAATCACTTATTTCCAGTCAAATAATAATTAATTTTTCATTTTTAAACGAAATGCTAGACATAGAAAAAAGCTTCTTTCAGCAGAGATTTGCAGCCAAAAATTTCAGATTTTTCACGAAGAACAAATTCAACAGCTAAAAATTGGCAAAGTGCAAAAAAACCAGAATTAGATATTAAAAATACAGGAAAAATCGAGAGAGTTACAATTCAGAAAAGTAGGCAATTTTTTTCAAAATGTCTCAAAAAGAATATTTCGGTATTTTTTATTGTCCCTCTTCTTGAGCACTGAACCTCGGCTCGTGTTGCACCAATCGAACATTTTGAGCGTCGGTGGAAGTGGAAGCTCATCGATTATTCGCGATAGACACCGTCGGCACCGGCGCCAGATTTCTACGGGCGAAGGTGGATGTCACGCGCTGGAAAAATTTCTAATTTCGAGCTGAAAACTCTTTATGAAAGCAATATTTCATAGTTTCAATTCAAAGTTCGAATTCCTCGTAAAATTAGTCGGAAAACCGAAAACTAGAAGTAGGCTCTTGCTCTTTGAAATCAAGGCGTACGGTATCCTCGAAAGTACGCAAACACCGAATTTTGTTTGTTCTTTTGAAGTTTTGGCGCCAAGAACACAGTACGAGCCGGGGTCTCGACACGACAAATTTTTAAAATTTTGAGGACCCTGTAATTTCAAACAAAAAAAGGTTTTTTTCGAATAAACTTCGAATGATACGATAAAAAACATATTTTAATAAAAACCTTGGCAACGAAAGTTGAAAGTACAGTACACTCTTCAACGGCGCACACCTTTTACGCATTTAACTTCCGTGGCGAGACCGGATGTAATTTTTGACTAAAAATTAATCGATAAATCCGTTAAAATATTATTAAAAATTTTTAGATATTTTTCAAAAAGACTGTCGAAAAATTGTTTTTGCGGTTCGATAATTTTTCAGAATATAAACAAACAGTTTAAAAATTCCAACAAATTTTGTTTTTCATACCGAAAAGAAGAAAAATGGACAAAATAGTAAGCTATTTTTGTGTGTCAAAGTGTCTTATTTCGTCTTGATCTGACGTAGACCGATCTACAAAAAATGCGGGAGAAGAGACTCAGTTTGGATTTCTCAACAGAGTTTCGCATGGTTAAACGAACGTGCTGACGTCACATTATTTTCAGGCTAAAAAATTCCGCCTTTTTTAGTAGACCAAACCGTAATGGGACAGCTTGGCACCACGTGACACCGCCCGCTTCTCACCTGTTCGTGATTTGGGAGGGCGAGCTGCCAGTTCTTTCGAAATAATCGTCTAGCGGGGGACTCGATGCCGAAGGAGTAAAAATGTTTGATTCCAGTTAGAGGAGCATTCTGACACATGCGTATTGCACAACATAATTGACGCGCAAAATATCTCGCAGCGAAAACTACAGTGATTCTTTTTAAGTGACTACTGTATCGCTTGTGTCTTTACGTTAGGCATCGATAGAATATTTTTAAAAAAGAAGAAAAAAGAGGGAATGATACGAAGAAAAAAAGGAAAAAAATAAATGCATTTATCAGAAATCGAGTTCGTAAATCGAGACAATCGGTACTGTAGTCATTGATTAAAGACATCCTGTATGTTTTCGCTCCGAGATATTTTGCGCGTCAAATATGTTGTGCAATACGCTTTTTAAGAATTTCCAGTTTTTTCAAACCTTTAAATACATTTTCGCGGTTGTGCTCTCGGATTTCGGGGAACGTATACGTGTATCCGCGACGTTGACGGGGTTGAAGCAGGGTCCGTCGAACACCCTAGCTCTTCGTCTTCCGATACTTATTCTGTTGATGTTGACGGTGATTCCTGCTAGGTTCCTCTAGAGCATCTGAAAGCTCTTGCTCATCTTCTGATAAATCTCGATTGGGGCGTTCAACCAGGCCGGTGGTGGAAGGATCCTTGATGAATCATTACAATCTCCATTCTCGGAGTATTTGGAGTTTCTGGTCGAGCTATATCGAGGCCCCAAAGTATGCTTCTGATGATGGCGGGGTCTATCATGATTAATCGTCCATTCGAGCACATATGCTGGTGCTGGAAGGATTGAAAATTGTAAAAACTAAGTTATCGATCTTTGGCCAAAAAAATAATATTTTCTCAAAAATTTTGAAATTCTCGACAAATTTATTTTCACTACTGCCGGTACAGAGAAAAATTGTAGATAGTTGAAGAGACACAGATATCCCGGGAACCAAGGGACGGGGCGGGGGATGTCTGTGTCTCTTCAACAACCTGCACTCTGTGCAATAATATACTTTTTCCAAAAAAAATACATTTCAGAAGTAAAAATGGACAATTTCGGAGTATACACAATTGGAAATTTTAATTTTTAAAAAATTAAAAATTGTTTTAATTCGGAGTTTTAGACGGAAACAATTATTAAACTCTAAAATTTTTAAATCGAAAAAAAACAAGTCTGAGACTGAAAAAAATTTCGAATAAATTTTGTACTGAACAGTATATATTTCGATTTTTTTTTGAAAATCACATTAAATGTTTTCTCGCAAAATTCGGATTTTTTTTACCTGCTCGATTTTCAGTAGCCAGAGCTGTATTTCCGAGATTGGCACCATCCAAATGTGCTCGGGGCGCTGCAATTTTGACATAAAATTTCACTAAAACGCCAATTACCTCGGTACTTATACAAATTTGCTACTAGAAAGAAATACTACTGTTAAGATAATCGAAAGTTTGGATTGACAGAAATCCAATGTTTCAGCTTCTAGAACCAATATTTTTATTTAGAAAAAAACTTCCAGAAAAATGACTTAATATTTTTTTTTAGAACTTTTGAACATTTTTCCTGATTTTTCTTTTTTTTCCATGTTTGGAACTTGCTGGGAATTTCTCTTTTACATTCCTTCATCCCACAGCTTCGCTTCCTAGGCCTAAGCCTGAGCTGAGCCTATGCATAAATCTAAGCCTAAGAGCCTAACCCTATGTCTAAAACAAAAGCGTGGACAGGCCCAAGTCTAACTAAGTCTTCAAGCCCACGCTCAAATTTAGATCGACTCAAGTAACTACTTTAAAGTTGGCAGAGATATTTAAATTCAAAAAAATTTTTAACGCAAAAAAAAAATACATTTAAAAGAAATTGTTTTTTTTAAATAAAATCTTCACCTTTGCGTAAAACCTTGGATTTCGGTCTCCAATTGAACATTTCTTGAAGGACGTCAGTTCTTGTTTCATTCCATCGACGGACATGATCTGCTATAGTATTTCGAATATTTTGTATTGTTTGCCCTTCTTGTACTCTGGGATGACTATTATTACGACCCAAATATTGATCCATACGTCATCCAAGTGATTACGGGTTCTTCTACTGGGAATGTATATAATCACTTAATTTAAAACATATTTTTTAGTTTATTTACCTTTGATTCGAATTAAAAAAAAAAAAATAAACGGTTAAATCCTGACGGGAGCCAAGAATTGGGCGTGTTTTAGGACGTACTCTTCACTTACGCTTTGGTCTACAAATGCGGAAGACGTTTGCCCCAATCACGTCAGCACGTTTTTAATCATGCAAAATCATTTGACTGAGTTCTGCGTCTCTCCTCCCGCATTCTTTCTACGTAGATCAAGCCTAAAGGAATGACAGCTGGAAAATAAAAATCGAACCCATTTTCAAAAAAATTACTCAATTGATTGTCTGCTGGAGTTAGTTGGTCGATTCTGAAAAATATTAAAGTGTTACTAAAAATTTTCCTTAGCAAAATAGCGCGGTTGCATCAAGAAAGGCGCGATCTGATTTTTATAAGCCCGCCCTTTAATGGAGGATCATCAATTTCTAGGAAAAATCGATATTTTACTAAAAGTGATCCAAGTAAATCAATAAATCGGAAGATTGATGTTCCGTGCTTTTTTGCAAAGATTTATCGAAAATGATTTCCATTAGAGCAAGCTTGCAATCGTTTTTTCACAAATATTCAAATTTCTTACGGTCTTGGATCAAAAAGTTGGCGGGGCACGCCGATAACTCTTGGAATTAGCTTAATGCCTTTGAACATGATCCATATACCGTATTTCTTCATCACCATCATTGATCCGCAAATCTGACGATTGACACGTGGATTGTAGGCGTGTGGGAACCGAATGTCGCGGCGGCCTGACGAGCCAAGTAGGTCAACGTGCGGGGACCAACTAAAAAATCCGGGTTATTGTGATTTCGTGGTGAGACCCGAAAATAGTAGAATTCCCTCGTACATCCTGTGCCTAAGCAGGTATTCAGTTCTTGATGGGTTGATGCGGTACCTGCATACACCTACCGTCTGCCTTTGTCACTGCCTGCGTCCCCGCCTGCGACTAAATGTGTGTATCAAAGGCCTACCTACAGTCTGTTTATCTGCCTCAACGTCTTCATACCTACTTGCCTACCTTGATTACATACGTGCCTACGCGACTACCAATTCGGCATACCGGTTGGCAATTAGAGAAGGCTAACGTAGGTAAGCTGGCAGGCCTGAAATTTGATTTTTGCGAACCGAATTACCTTTCGAAATGCGTGCGTTGAGATTCCTCCTTCGGCAGCCTGATCATTGGAGAAAATGTCATACTTCCAGGGACGTCATACACAGTACGATGCTTGGAAACTCTTCTTTATCGGCACTGAAACCCTTTAAAAGTGGAGGAGCCAACAACTAGACGGAGCCCTATGTAAGGAGTATTGTTTCCGGAAACATTTCAAATTTTAGGCTCCACCCACTCACCACGGAAAATTTCATTTTTGGCCGCCCAGGAACAAAAATAAATGTGCAGAAATAATGTATTTAAAATTGTAAGGAAAAACCATGAAATAGGGTGGAGCCTGCCTGCCTGCCGGGCTCCGCCCACTTCTGGCCAAACCATACCCCCTGTATACGTGGCATGACGAGTCGTCTTCCCACATTCAACATTCCAAGCATTCGTTGCAACAACTGAGAATCATCGGCAACGAATCCGACAAATATTCGATCATATCGATTTTGATGAGATTCAGGTGAAAGTTGTGCTTACATCGGTGATGTCACACACTTTGAGCTCCGGCCGAGCCAAGCGAGCTCGCTTCGGGTGTAGTTATCCATTGATCCATGTTTCCGGGTAGGTGACGAGACTCGTTCTCGTAGAGTTCGATCCCATGGTTCGCTATATACCAGTTTCACCTTAAAATTGTTGTCAGGCCACGCCCATTTTTAAAAAATGAATTAAAATTTTCTGTAGAAGAAAAAATTTCAAACTTTGGTGGGGCATTAAATTTTTTCACACAATTCGGCGGTAAATTCAATTAAAAAATTCTTTTTTTTTTGGCGGGAAATGTGCCGCAAAACAGAAAAACTGAAATTTCTAAAAAAAAAGTTGGTGGCCGAGTTTCCTCATTTTCGTGGTCAGAAAACTCGGCTACCGATTTCTTTTGCGTCGCGCCCTGTGATTACTTAAAAAAATCGGTGGCCGAGGATTTTTATTTTCGCGGCCACAATGAGTAATGAAGATTGCACAAAATTGAAAATAGGGAAAACGCGGCAGTCTAACATGTGCCACGTGGCCCGCCGTTAAAGAAGAGCCCTTGGTGGCCGAGTTTTATTATTTTTCTAGGCCACGTAACCAGAACTACACCCAATAAATGCCAGCAATCGTACTTAAATACCCTGAACCAGTTCCAATATGAAGAAACGAGTGTCCCTTACGCAAATCCAAATAAGCGAAGAATTTCGCTTAAATATCAATTGCTCCAACACGAAGAACTTGCTCACGGATAGAATGGACCGCCACCTCGGTTCGGCTGTGGAGGTCAACGACGGAGGACGTGTAAATTTCTGTTCACTAATCGGAAGAAAATCGGATCGATCGACAAGTCGAAAGGCTCGTTCGATGTTCGACGACGGATTGTGTCGTTTTTTACGAGAAAATCGATAAGATGTCGAGTTTTGGCTTTCACTATTGCCCATTTCTGGAAAATCGATTTTTTAAAATTTTAGATTTATTGATTGATTTTAAATAAATAATTAGATGTGAGCAGTCATGTATTTTTCCTTGTATATTTACGAGAGAGATCTCAAAAAATTATTCAAATAGGAAATTTTACGCCAATAAAATGTACAGTTGTGTGCGCCTTTAAAAAGTACTGTAATTTCAAACTTTCTGGCGCAATGAGTAGTTTTCTTTAAATTAAAAACAAAAAAAAAGCAAATCAAGATACATACAAAAGTTTAAAATTACAGTACTCTTTAAAGGATGCACAACATTTTGCATTTAAAATTTGTCATGTCGAGACCGTAATTTTAACGCAAAAAATGAATTTTCGCGTCTGTGTAAAAGAAGTGAGTTGAGGAGAAAAAACAATTGAAAAATCAACAAAAATTGAACTTTAAAAATCAAAAATCGTTGCGAGTTAATTTTTTAGCCTTGAATAAGCCTTAAACTAAAAAAAAAATAATCGACTCAACATCAATAATTTCGTTACAAGACCCAAATTAAAATTTTTTATTTTGGGATAATCTATTCCTAAAATTAATAAATTCCAGAGAAACGAGTAAATCGTGGCGAGACCTAGCATGTACCTTTAATATCGCCTCAAATTATTTTGGCCCGTACATCTCGAACACACGTGTTGCCTAGCTATCGAACAAAAAACGAAAAAAAAAACAGGTTTCTTTGAAATGAAGATAATCAGCGACACAGTGTGGCAAGATGTCTCAAATTATTGGAAAAAAAAAACGTGAAATTCTCAGAAAACGGACCGTTCTGTGGCAATGGAATTGTGAACGGCGTGCAAGGCCACGACCTGTGAAGAGGGCGTGAGAGTGTAGAAAAAAAGGAGGCGAGAGAAAACGGCTGACCCGTGGATAGACTTATTCAGGAGACGCAGAGCGACCGTGAGAGACCTAAGCAGGAATATTTGAAAAGGCGTGCAATAGTGTTGGAAATTCCCATAATAAATGGGTACGGTAGGTATGACCTTACGGGATATTTGTGGGTCTCGCCGCGACGAGTTTTCAAGGTGCATAAGCAGTTTTTGCGATGGGTCTCGTCACACACGGGATTATAGATTAAAATTGTTGATTCGAGATAAATGGAAATTCGAAGACGTCTAAAACAGTTAGAACTTTATTTTAGTTTACATTGAGCTCAACTGTCCAACCCCTTCAAACTTTTTCCACTTTTTTCTTGATTTACTTTTACAATGCCTTTATGCTTTTCGGCCGTTTTCCTGGGGGTTACGACCACGAAATAGAATCCTAACTTGGTAAAGCCTAAGCAAGACTAAACCTTGGTCTTTCAATTATACATACACATCCTTTTTAAACGATATTAATTAATTTACAAAATACCAAAAAAATATACAAAAAATGATTTGAATATATGCGTTTCCCGCTAAATACCTACCCCCAACTTTTGGTCCCGTGGAGCGCGCTTGCACTTAAACTTCAATTGTTCACATCCCCATCTTGTTTTAAATTGTTTTTCCCTTTATTATTATTATCCTTATCACGAGATGCCCTTGCAAAACACATTGTAAAAACAGTATTCTACCTCAACTGATAGATTAATAAGATTTTGTGTACCCCACAGTCCTTCAGGACCATAAAAATATTGATAATTGCTGATAAGCTCTCTCAGTGGTCTGTAGTTTTGGTGATATTTTGGGCAACAAATTTAGATTATGGAAACACGGAAATTCTGACAATGCGTTTTGCGCAACATATTTGACGCGCAAAATATCTCGTGGCGAAAACTACATACGGTAATTCATGACTACTGAATCGCTTGTCATTGTTTTACGGGCTTGATGTTGGAAATTAATTTATTTTCGAATTGTGACAGCAACCGATATTCAGTTTTCCTTTGATTTTTTGTTCCGTATTATTTTGTTATTTTTATGTGTTCTTTCTTTTAATATTTTATCAATTAATGAATGATTTCCGTAAATCGACACAAGCACTACAGTAGTCATTTAAACAATTACTGTAGTCGCTTCGAGATATTTTGCGCGTCTATGTTGTGTAATTCGTAAAGAAAGTTTGAAATAATAGTTTTTAATTAATTTCTTATTCATTCACTGTCAATTCTCACCGAAAAAAAAAATCCAAGTTCGCCGACTTGCGGCACGATGCCTCTCCAAAAGGTTCTCAGGCCCATTCATGTCATTCAATCCATCCAAATGAACGACTTTTCGTTCAGGGCCGCCCTTCTTCTTTTTCCGGTTTAGTACTTTTTCAAACCGAATAAAAAAATCCGAAATTGACTGCAAGTGTGCTCTATTTGAACTTAGACTTCACGCTATTTCGGAATTTTTTCCGATTTTCTCAAAATCTTTAACACTTTTCTAAATGCATTGTTGCATTAGTGACATTTTCCTAGAAATTCTACTGCAAACGCGCGCATCAGTTGCGAAAGTTTTTGGGTCTCACAACGATTTCGGAAGAAAAACGTTTTATCCGAGACCCGGAACACCATGCCCGGATGGAGCGCGTTTGGAATTTTTTTGGTTAAAAATTTTGCGCAACGACAAAATAACCGCGAATTTTATCGTATTGTTAAATTATGACTTTTCCCGGTCCCAGAACGAATTAAAGCAATTATTATGAAAAATCAAGACCACAAAAAAAAGCGCAATAGAGCGCGTGTGCACCTTTTTTTCTTTGAAAAGTCTCGTTTTTTTCTCGGTAAATTCACTGTGACATAGACCTTTCTCGGAAAACGAAAAGTGTAGTAATGGAAAGTGAACAAAAGTGACAATAATCTGAATTGCGTTGTTGTATTTATCTTCTTTTCTTTTTAATCTGCGAAACATAAGTTTTGGAGAGAAAGTGATTTTCGACGAAATTTTCCTGATTTTGCTAAAATTGTACAAAAATCATCATTTTCTGTGGGGTTTCTCATTTCTTATCCCAAAATTTATGCGCCTTTAAATTTGGGGGATTACTGTAATGTTTGTATTTTTCAACTGTGTTTCGGGAACACAAAATTCTGAGAATGAGTACTGCACAATATATTTGACGCAATATCTCGTAGCGAAAACTACAATGGATTAAAATTTAATGAAATATCGTTATGACTATTCGAAAAAAATTTCATTATGGAGCCCGTAAATCGACACAAACTCTATGTCCTGTAGTCATTTAAAGAATTACTGTAGTTTTCGTTACGAGATATTGTGCGCGTTGTCCCCGTAATAGTTTAACTTTTACCACGTGGTCGCCAGAAGGCAAGAACTTCTGCTACCGGATTTCATTTCCTCTGCCACAAACCCTTTGGACCCCCAGTAGAAAAAGTACATAAAAACAATTCCGGGGACTGGGTCTCCAATCTCTCGCCCCCACTCACTAACAAGGGGGACACCCTCAGAAACGAATGCCGTCTAAACGTCTGCACCCTCTCTCTCGTCGCTCCAAATTCTTGGATCAATGCGAACTAACACGCAGTGACCCCCCTCCACCTTCATCCACCCAAATGTTTCATCAGTTCCCGGCCACCGCAGGCTTCTCTCTCTTTCTCTAAAGCTCTCATATAACTACTGTCTCTCTCTCTCTGCTTCTTTTGCTCAATTGTTCTTCTTCATCACTACTATTTGCTCAATTTTCGTAAAATGATATTTTATTTTAAAATATTCATTTTTCCTCCCCCCGCCTCTGCTTTTCATCGCTTGACGCGCCACATACACTACAAAAACCGGTTTTTTCTATCTCTTCCGCCCGATCATAGAATAGATAGTGTGTGCTGTCAAATTTCCATTTCCTGGAAAAATCGCGCCGAAATTCCAGAAAATTCCACTTTTTCTAGAATTTTCAGGTCGTGCAGTTTTTTCGGTTTTTGAATCTAATACAAGGCGAATTCCGTGAAAATTAATTTTTCCTCATTTGACGAATAAAAAATATTAGTATTGTTTTTCTTTCAAGAACGTGTGATTTTTTCACAATCTTCTATGGTTTTTACGTGGATCTTGAACTTCCACAACTTGACAAGTCTTTGAAAATTAATAAAATTTCACCGTATCTGCCGATCGTTGCAAGACACACTCCACATAAGAAGTCGTGCGCCTTTAAACTGTGTACGGTAACTATAGGAAACTGATTTAATCCACTTTTTTCTTCGAGCGCTTTATCCGTCTATTTTTCCAATTTTTCCTCACTCTGATTTCGAACGATTTTTTGCATCTTACCTCAAAAAAATTAATTAAATGCATAAAGTGGAATTGCTGATTCTTTACCAAAAAAACACTTAAAAAATCTTCTCATCAATTTCAGTTCTTTCTGGCATGGCTCATTGTTTATCGACACCTGCTTGTTTTGCTCCGTAACTCCGCTCCCAAATTTTATGAGTTTTTCTTCGAAATTTCTCCATTTTTCCCGTGGTTCAAAAACCGCCAAAATTCGCTTTTTCCAGAATTCGCCTACTAGCACTACTAGATGTGTTAATTTGGGGCGGAATTATTTTACAAAAAGCAATGTATCCGGTTGTACGGGCTTACTGAAAATGAGAAGCTCAAAGACCTTGAAGGAGCTGTGCATATGGTCAATATATCCGATGAGGATGCCATTCAATTTTTAAAAGGTGGATAATTAAGCTGAAAAGTGGAAAAAAAAATGCATTTTTTACTTCAAATTGACCTAAAAATTGGACTAAAACGTCATAAAATTACTGAAAAGTCAGAAAATTGTCTAAACTTAATTTTCGCTAAATAATTCCAGAAAAGCCGACTGGGACATTGCAATGTCATCGCGAAGAGTGTTTCCGAAACAAATGAGGATAAAACAAAGTGTAGGTTCCGGGCACTTCGAGAGGTAAATTTTTGAAAAATTTCAGAATCAAACTGAAAAATAGATATATTGTGTGAAAAAATGCTACCATTTTCTCCGTAAAAAGGGAATTTTGACCGGTTTTTCAAATTTTAAACTGAAAAAAAAAATTATATCTGAAATTTTGCTCTTTTCGGCGCGTTTTTTCTCAAAATTTGATGAAAAAGTTCTAGAAAACAAAAAAGCCTTTATCAAATGTACTTGTTTCTGCGATTTCTCAAATTTAAAATTTTACGCGTCAAATCTGGTGTTTTGACTCCGCCCACTAAATTTAAACCTTTCGTGAAAAAACAATGTTTTTCTCCGATTTTTAATAATTTAGGCAAAAAATATACAAAATTTGCCTAATTCACCTATTTATTCCAAAAAAATATCACAAACTTCCTGCGCGTAAAATCGGGTGTTTATGCTCCGCCCACAAAAATTTCTTAGAATTCGAGTTTCGGCGGATTTTTTCTCAAAATTTCATGAAAATTGTGAGAAAAACTACAAAAAGTCTTTGAGCTTTACTCTTTCTCTGCGATATCTAAATTTGAAGATTTGCGCGTCGAATCTGGTGCCTTGGCTCCGCCCACAAAATTTGAATCGTTTAAAAAAATGTTTTCACCACTTTCCCCGCTTTTTCGCCTGACTACCAATCCCAATTTTTTTGCAAATCGATTTGGATTGATTATCGTGTCGTCTACGTGTTCTTAGCCTTCTATCTTCTAGATTTTGGAGGTTTCCCTGATGAATGTCGAACGTTAGAAAGATTTGATAGAGACGCAGACACAGAAGAGCCTTGAGTCGCGCGTCCAGTAAGTTGTTTTCTGGAAAAATTGTAAAAAAAATTGAATAAAAAAAATGATATTTTTAATCGAAAAAAAAAGTTTTCAAAAATCAAATTGGAAAAGGTGAAAAAAATTCAACAATAAAAAAAGAGCGACAAATGAATAAAAAAAAACTTTTTTTTTTTCCAAAAAAAAGAAAATGACCAAATGTTATTTAATCGCCCGAAAAAATAAAAAACGAAAAATGAAAAAGGAAATTTTGTTTTTACAATTAGAAAAAAAAAATTAAAAATGTATTAAAAATTTTTTTTTGACATTTTCTTTCGCTTTTTAATAAGTTTTGACTAGCGGGGCCTGCGGGCCCGCCAGTTGGGGTGTAGATCGGGCGAGTCCCCCAGTCGGGCGTATGTTCTCGTCTTCGCCTAGAACGTCAGAGGATTCGCGACAATTGCAGTGAGTCAATGGGAGGGAGACCCACTCATATTTTATAAAATCGAACATTTGTATTTGAATCCCGAGCACTCAAAAAAAAACGAAAAAGGTGTTTTGTCTGTTGGGGGAATCGAGCGAAAGAGCAAATTATTCACAGCTATACGCACTAACCAGCCATGCGGGAGAGACCTCTCACAGAGATGTAGGGAAGGAAAATTTCTGGGGGGAGCGCGGGGGGGGGGAGTTGTCTTTCGCTTCCGTTTTATTCAATAATGACAATTTGGGGGAAGCCGTTTGAAATAACCGTTTATCACTGATAAGTCAGCAGTAAACCAATTTTTTGAAAGTTTTTTATAGCATGATTGTACTTATTATTTAATTCCCGAAAGAGAGCCGAAAAGTTGAAGGTGTTATCTTGTAAATTGTTTTATTTGAAGAAGAAACCAGTTTTGGCTGAAAATTTTGAAAAAATAATATTGGCAGATCGAGCATTGCGTAATGCGACGAAACTCCAGCTTCCAATTGATAAAATCAAAAACTATGAATCTGAAATACATTGCGCAAAACGACTTTAGTGGACAAAATTTTCAGCAGATAACCGAGGAAACCACTCCCCCCAGTACTAAATTGAATTATTGTTTCTTGAAATATTTTCCCACGGAACTTTTTAAATTTTATATGCTCTCGATGCGTCTTGATGAGACCTACACATCAATTTTTGGAAAACTAAAAAACTTAAAAACTAACCGCTTAGTTATGAGTGAAAAAGTAGATTAGCAATGGGAAAGTGTGCAAAATTTGGCACTTATTCGTCTTGCTCGGCGGACTCATATTACTTTTTCCAATTCTGCGTTAACAATCGTGTTCCGTACTTTTGTACGTGGGATAAAGATAAAATATAAAAGATGCAGTAGAACTTGAGACAAAGAGGAAAAACTACTTTTTCGGAAAAAATTTTTTGTTGGCAAAATGGCATTTTTTGGCCTTTAGGTGTTTTAACACAACTTTTTAGCCTTTTGCCACTTATGAACTCAAATTTTCTTCTCACTCGCTCAAATATCCACCTCCCTGATTGTAGTATCTTGCACATAAATTTAACAAACCCGAGCAAAACCCGAATTTTTCAATTAAAACATGGTTTTTTGGGGGTAAAAAAAGCAACATAAAATTTTTTCAAACGGGGGAAAGCCGCCCTGAGCTCAGCTTTGCTCCAAACTTTGTGCAGTTTTGCTCCGCCGTGGGGTGAAATATTACTAGTAAGCTGTCTAATATTACAATATTCAGTCAAACCGCTCTGCGAGTTATTAATGAAAACGCAGTGTGACTTTTCGCAAGCCTAAAAAAAAAACGCGAAAAAACGCGAAAAAGGGGCGGAGTCTGTACACTCGGCATTTAGTAGAGACTGCTGGCAGATTTTGAAATATCGGAAATACTTTAAAAGTTCGTTTTTTTCCACGACACCTAAACTGGTGGCATCATGTTGATTCGGCCAAAAACCCGCTATCAACTACTGGAGAAGGAAATTGCCTTCCTCACGTCGCATCGTTAGGTAAAAGGTTTTTCAGAGGCGAAAAATCCGAAAATCGCTAACTTACTATTTCCACTGAAAAAATTGTACGCCCTTCATAATTTCACTATTTTCTGAATTGAAAAAGACGACAAAACTATTTCAAAGCTAAAATTGCCCCGAAAATTGTTTTTTTACTAAATTTATTTTGCTCGGCGAAGTGCAAAAATAAATTATTGAATTAAATCTTTACATGTAATCTTCAACAAAATTTAATCGTAAATTTTCAGGTATGTGGGGAGTACGATCGTCCTATCACTTCGTGAAACTCTGTACCTACGAACTTCTTACATGGCGCCAGAAAAGAAGCAACGACTGCGGGAATCGGTTGACAATCATATGAATCAGGTCAATTGGCGGGAGAACAACCTGTGAAAAATTTCTTAAAATTCGGAAAATGATCAAAAATGAGCTGAAGACCGGTCACGTAGTTGAAATCCGCGGAAAATTCCCAGAGGAAACAAGTTTCGGTCAAGTTCGCTTGAATTTTTCTCAAAAAGCTCGAGTAAAAACACGGAGTTGAAATCCGCAGAATTCGAAATTCCCACAGGAAGCAATTTTCGTGGATTTCAACTTCGCGAATTTTGCTCAAAATGCTTCAGTAAAAACTCACGGAGACATGTGAAATCCGCGGAATTCGAAATTCCCAGAGAAATCCTAATTGTAGATTTCAACTTCGCGAGTTTGTGTTCCCAAAAAGCTTGAGAAAAAACTCACGGGGTTGAAATTCGCGGAATTCGAAATTCCCAGAGAACACAATTTTCATCGTAGATTTCAACTTTTCTAGATTTTTAGCCAATTTTTTATTACATTATGTTACAAAAAAGCTGTAAATACTCACGGATGAAATCCGCGGAAGTCGATTTGATGTTGTAGATTTAATCTTTTCCAGAATTTTCCAACAAAATACGTTAACCGGAAAGAATTATTGCCGACACTCCAGGAATCTAGTTTTCAGGAGATGGCTTTCAACGTCGAGAACTTCGCACATTTTTTTGCATTTTTAAAAAATTTCACCAATTTTCCAATCAAAATTTTTTAAATTTCCAGAGTAACGGTCTCGCATTGACCCGTCTCTCGGAAAATGAAGAGTAAAAACTCACGGAGTTGAAATCCGCGGAATTGTATTTGAAATTCCCAGAAGCACAACCATTCTCGTAGATTTCAACTTCGCGGAGTTTTCGGTCAATTTTTTGAGATTTTTTCTCAAAAAGCTTGAGCAAATACTCTCGTAGTTGAAATTATTCCGCGGAATATTCCAGGAAATTCGATTTTCGTAAATTTCTTCTTTCCCAGAATTTTCCAATTAAAAAAGAACGGAAAAAATTGTCCGACATATCCTCCATGGACTTTAGCTTTAGATTTCAACATCGAGAACTTTTCTCGTAGATTTTTTTGCATTTTTTAAAAATTTCACCAATGTTTCAATTAAAATTTTTTTAAAAAATTTTCAGCGTAACGGTCTCGCATTGACCCTGTCGCGGAAAATGAATGGGGACTCGAATCGGATCGATGTTGTACTCGGATAAAATATCATCTCAGTACCCCGTAAACAAGAGGATAATGGCTGGATTCAAATTCCACAGAATCTACGAGAGTCTTGAGGCAATCCACGAGAGGTGTTCGCGTTGGCTCATCTGCTCTAAAGACCAGTTGTGGTTGTATCGGACACGGTAGGGAATTTTCCATTAAAATTTTTTCTTCAAAAATTCATTGAAGAGAAGCAGTAACAAAGAATTTGGTTAATTGTGAATTTTACAGAAATATAGAAAATTTTAATTTAAAAAATTTCGAGATTGGTGAGCAAGGGTGTCAAGTCCACCCGTGTCCCGTTTGTCCCGTGGTCCCGTTTTTTGAGTGTTTTTACGGAACTGGACGTCTTTGGTCCCGCTAATTTTTGAGCGTTTTCACGGGAACGGGATGTCCCGTTGTCGCGTTTTTTGTTTTCGCGGGAACGGACGTCCCCCCGTTGTCACGCTTTTAAAATCTGGTTTTGTATCACGGGAACGGGACATCCCGTTGTCCCGTCTTTTGTCTTACGGTAATATTGACACCCTTGGTGAGAATAAATCAATAATACACATAATTTTTGGAAGAAAAAACGATTTTAAAAATGAAGCTTAACATTTTTTTTCGAAAGAAAAAAAGTGTAAGAAGTTTAGCAAAAAAAAAATGAAAAAAATATCTTCAAAAATGTTCAATATTGTTTTAAGGTGCAACTATTACAAGAGCACACAATTCTTAGAATACGTAATGCGCTACCTATTTGACGCGCGAAAGCTACAGTAATACTTTTATTGTTTACTGTAGTGACTAGCTTGTGTCTAGATTTACGACTGGAGCTTGTGCAGATTGATAGAATATTCAAAGGGATAATTTATTTATCGATTTAATATTCAAATTAGGCAAAAAATGAGAAAAAATATACATGTGAAAAAATTATTTAAAAAGAGAGCTCGTAAGGCATCGACACACTAGTACATTTAAAGGTTTACTGTAGTTTTCGCTGCGAGATATTTTGCGCGTCCAATTTGTTGCTTAATACGCTTTCTTAGAATTTTCACATAAGACGGGTTTTCTAGGAAAAATTTTAATTCTTCATAAAATTCGTCAATAATAACTAAACCGTTAATCAAAAAAAAGTTTTTAGGGTGTCATCAGAAAAAGTCTCAAAAAAAGGCGGTCATCAAAAATCCATCAAAAAAAGAAAATTGAAAAATTTGAATTGAAACTTTTTCGAATTTTTGAAAAAAAAAGTGTTTGAATATTAAACGTAATTAAAAAAAAAGATTTTCCTTTTTTAGAAAATTCTATTCATATTAGAACAGTCGATTTTATAAAAGTATCGATTTTTTTCAGAATTAATTGGATTTTTTGTAAAATAATAATCGATATTGAAAATAAAGACCTTTCGCCTTAAAATATTGTATTTGACAGAAAAAATGGTGTAAAAAATTTTTACCAAAAACCCTAAATAAAATTGCAAATAATTTTCACCTACAAATTAATTGTTTATTAAATAAAGTTTAAATAAATTGCAAGAACAGGAGTACGTGTTTTCAAAATTATTCTTTAAAAACGCGGGTTCTTTTAATTCAGAAAATTCTTTTACAAAAACTCAATAATTACGGATTTGTCAAAAATTCGGATAATTTACCAGGAAATTCAGAAGATTTGGATAACATAATTCTAGTTCACTTCCAAAAAAATGATATGCGACTTACTTAAGGTACAACTAACATTAATTTTCCAACACTTATGCTGCTTAAAGACACGCCAATGGGGTCAAAATGACCGAATATTATGTTTAAACAAAAAAAATTTTCTGATTTTATATATGATTTGAAAATTGGAAAAGTAACAGTTTTAACCTAATTATTTTGAAGTTCTGCCAATTGGATTTGTTCGGTGCAGCGCGCTTGCAATAGTTTCATTTATTTATTTATTTATTTATTCTCGTTATTTCACGGAGGATTTTGCACTTCCATTTTCGATGTTTTTTTTTCTCCGAACGAATGAAAGAAATAAACAAGACAAATGTGAAATGGTTGTTAAAAAGTAATTGAAAATGCTTATAAAACTGTGATATTCTTAGTTCGACGAAAAGACTGAGATGAGGATATTTCTCAGTGTCACTCATTTTCAATTACTTTTAAACAAACGTCATATCGCATTTATCTTTTATTTCTTCTCCCGATTTTCTGAAGAAAAAACATAGAAAATGGCAAGAAAATCAGTGAAAAAACGAGAAAAATATATATAATTCATTAAATAAAAATAATGCAAGCGCGCCCCTCCACCGAACAAATCTAATTGGCAGAAATTCAAAAATAATTAGGTGAAAACTGTGATTTTTCCAATTTTCAAAACGTAAAATAATATAAAACCTAGAAAATTATTTTGAATTTTTTTATCATAATTTCCGGTTATTCCCATGGGCGTGCGTTTTTAAAACAATTCCCACTGAGCGTAGACCTATGTTCTCAAAAAATGAAAACGAGTAATACTAATTATTTTTTAAAAATCCAATAGTGTTTAAATTTTTTTTTTGCAGATTCTGCGAAACGCGGGGAAAGGCGAAGATGACTGTCTCCAGTGGCTTTTGGTGGAAAATATATTCCATAAGAATGCCCACCATCACAATGTCATCGATGACGACTTGTTTTATGCTATGATTCTGCTCATTTCTCACCGGACTATTGTACCATGAAAACAGAGACTAACAATAAACTTAAGGAGTTTTTTTATATGAGCAAAAATATTTTCAAAATCTTTTAACTGAATTTTCAAATTTCCCCCTAGCCACCGGCCCCCCCGTTTTTTTCGAAAAGTGAATTGGAATTTTCGAAAGTTGCACAAATTTTTCTTTGAAAATTCAAATGTTGGTCAATTATTTATTCGAAAAATCGACATTTTTCCAACTTGTAATCTTTTTATTCTAAAAATCCCAATTTGATTTGGTAAAATTTCTGTCAACAATCAATTAAAAATCCAACATTTTCAAAAAAATTGTGAATGTATTCGGGAAATTCGAAATTTCCTATTTATTGGATAAATAGGCTAAAAGTTTTCGATTTTATAATTTTTAGGAAAAGAAGTTGTCAAATTTTTTTTTATAAAGTTTTTTTTTGAAATTTCACTAAATGAGCCAAATTTTAACAGTGGAGCACCGAAATTTGCGACTTTGCTTTTTTAGACTCAGGATCCAAAACTAACGAATTTTGTAATGATACATCTGACAATTTCTCAAAAAAAAGTTATGGCTGTTTAAAGTTCGGGCAAAATAAGGCCCATTTTCAGCTAAAATCAAAATTTTTTCCAACTTCTAGGTGTCGCAACGTCTGATGGACCCTAATTTTTATCTATTCATCACTTTAATAAATATTGTGGCCTTTGATTGAGCATTTAATCGTTGTTTTAAGTTCATTTATGATCTTTGGAGTACAAATAAACGTTACATTTTGTACCACCAAGACCATAAATGTATTTAAATCAACGATTAAACGCATCATCAAAGACCACAATTTATTAAGTAGAATAAATTAATGCGAAATGTTCCACACGTCTTGCGGCACCTAGCCAAGTTAAATTTTGATTTATTTTAGCTGAAAATGGGCCTTATTTTTCGCCGAACATTGCCATAACTTTTTTTTGAAAAATTTTCAGAACGTTTCATTACGATATTAGGTAGTTTTGGGCCACTTGGGTCTAAAACAGCAAAGTCTCAAATTTCGGTACTCGACCTTTAAAGAATTCATATAATTTTCTAAAACAACATATATTTACACAAATACTTAATTTAGTATCAATATGAATTATTTGAAAAATCAAAAAATTTATATGTATTTTCAGAAAAAATTCCCATGATCGATGTGAACCGTAACCTGCTGCTCCTGTCCATTCTATTTACAGTTGATCCAGGAGAGTCAATTGGTCCAAATAGAAACAAATAGTAATACACAGACAACTACAGATATGTCACAAATATGGGTGATAAGCTTGCGTTGATGTAAGTCATATGGATATTGTTAGGTAAGAAAATGAGAAAAAGGATTTTTTCAATTTTTTTTTCTAAATAAAACATTCAATATATCGTTAACAAGCCAAAAATGTGTACATGTTTTAGTTTAAAAAATATTAAAATTTTTTAGTCCCAAAATTAAAATATCGAAATCAAAGTGTTTCCGACATTTATATAGACGAATTCTATTTTTTTAAAATCGAAATCATATTTTTAATGAAAGTACAGAAAACAGCGCCAAAAAAGAAAAAAACGTTTTTTTTTTTCGAATCTTTCATTACAAATATTTGAAAAAACGAAAACTACAATTATGGGAATTTCGCGAAAATTTTTTAAAAAAACTTTAAAAAATTCTTAAAAACAGCTATATAATCACGAATGAGAAATATATCGGAAATCCGGAAAAAATTAAAAAAATTTTGTGCGTATTTGTCTGAAGTTATTTTACAAACACCAAAAATAAATCAATTATTGTTGGAAAAAATTGAAATACAACGGAAAACGAATTATTTATATTTAAAACGAACTAAAAAAAATCCCGCATCACAAAATTATTGGAAAACGAGAAAGCTGATTTTTCGCTAAAGTTCAAAAAAATTTACAAAAAAAGAAAAAAGTATTAGAAATCGGTAATTTTCCGAAAACTGAAAAATTCGAGTTTTCTAAAATAAATTAAAAAAAAAAATCAAATTCCACACTTTTGGAAAATTACGGAAAAAAAGATGTAGTTTTCTTTAGCTTTCAGCCAAAATTTTACATAAAAATTTCCGCAATGCATAGTTTTAGAGAATAATTTTAAATTGAAACACTAAATTTTTTAAAAAACTTGCGTTTTTTTTGAAAATCCCCGAATTAAAAAAAAATAAAATTTGAATTTCAAATAAATATTTTGCTAGCAAAAATAGTTTCTAAAACAAAAATTTGAAAAAAAAAATATTTAATATTTATTTCATATCCTTTGATTAAAAAAAATCTAAAGAAACATTTCAGACTAGACGTCGTCGTGGCTCAATACGCAGCTCGCGGAGAGTTCGAACGTGCTCACGCGCAACTTCTCACCGAATCTCGTGGTGAAAATGGGCAAAATTTGCCCAAAAATTAATGAAACCAAGAGAAAGTGCACATTGTTCTAGTGATGAACAACTATCAAATAATGCAAAAGGAATCACATTAGCATCAAGTGGCATTGGTTCTGGAAGACATGAGAAATGGAGATTAAGCAATAATTAGGGAAGCATTGTTTTTTTTTTTGGCCTAAAAATTTTAATAAAAAATCTGCTTGAACAGAATTTTTGAATCTTGGAAATAATTAAAAAAAAATGTAGTAATCAATTTTAATTTTAAAAATTAGAAACTTTTCAGATAAAACATTTTTATTTTTTCAAAAATCAGAGTTTGAATCATTTTCAGAATAATCATAACGTAATGAAATCAAAAAATTCAAACTACAATACTACGGTAACAAAAAAAATCAGAATGCGTACTACGCAACATATTTGACGCGCAAAATATCTCGTAGCGAAAACTACAGTAATCCTTTAAATGCAATACTACTGTGTCGATTTACGGGCCTTGATTCTATTTTTTAATTAATTCATTTTCGAATAGTGACAGCCATATTACATTTTTATTCTCTTCTTTTTTGTATTATTTTCCCTTTTCTTTTGCCTAATTTGAACAGTCTATCAATCGAGCCCGTAAATCGACACAAGCGCCACTATAGTAGTCAATTTTAATGGCAGAAGTACTGTTGTTTTCGCTACCAGATATTTTGCGCGTCAAGTATGTTGCGTAGTACGCATTCTCAAAATTTTGTGTTCCAGTTATTTGGTAGTTTGTGAATTTTTTTAATTTTCATTAATGATTATTCTGAAAATGAAACTCTAAGTTTCTGAATAAAAATGTTAAAAAATTTATTTTAAAAGTTCCTCATTTATTTAAATTAAAATGGATTCTTTTAATTTCCAAAATTTGTTTACAAAAAATTCGTTTAAAATCGAAAAATTGAACTGTTAAATTTAAACTTTTCAAAAAAAAAGTTCAAAATTTTTCTAAAGTAAATTTTCAAAATGATACATGTAATTTAGATTATAATTTAAAAAGACAACCAAGACAAACATTTTTTAAAATATTAAAATTTTGTAAAATATACAAATGAATGTTTATCCGTTAAACGACTAAGCCTTAAAAAGCCTCAGTCTAAGCCCAAGTTTCCAATGCCCCTAAGCCTAAGGTCGAACTGCAGTTTTTAAAAAAAAAGTCCCAAATCCGCTTTCCTAATATTGGTACCAAACCTCTTATTTGCCAAAATGAAGAAAATGTTTTTAATTTGAAATTTGTTGATCTGAAAAAAATGTGAATTAATTGCCTTTGTCGGCTGGATTTTTTTTTTGGAATCTATTTTAAGAATAAAAATTGATTATCTTGCGTTTTAAACTTTGATTAGGGTATTTTAAATTCGATGGACGGCGAGTTTTGGTTCAAAAAAATTAAAAATCTCGCCGTCCATCGATTTTTAAATACCCCAATCAAGTTTAAAACGCAAGTACTTAACTTGCATACTCGAAAGTTGACGATGTTCAAAAAAAAATCGTTTCCAGCCCTTCGACATCGATAAGTTGGTCAAATTTCCGATTTCTTATTTTAGGCCATTGTTTGAGCCGTCATAACTTTAGTTTCCGTGATTTCAAGAACGCGTTTCATTATTAAATTCGGTGTTCTCGGACAATTTTGAGTCTACGAAGCGAATAAAACGACTTCACCACCTTTAAAGCTCAAAATAAACGTGCACAAATTTAATTTCCTATACAGAACCCACGGGCTTCGAACTTTTCGTAATTCCTCATCAACACGTGGCAAAGAAAAACTAATCGATACGGACGATCGTATTGCAAGAATGAATTCGACGTGCGTTCTTCGCATCGGAATTATTGCCAACTCATCACCAATACATGGACAAAATGAATCATACTTCGAACGAAACAACGTGCATAATTCCAACAGAATCAACGAACACAATCGGATAGTCGGAAACGGATTAGTCGAAGTGTCTGCAGTGCAAGCTCACTAATGCTCGTGTATCGGTTGTGATTCGGTACGGGACCTACTTTTTGATGTGAATTTCGAGAAAAAAATTGTCAAAAAAAACGGAGAGAATTTGGCACAAGTAGCCTCAATATTTGAAAGAAAAAACCGAACAAATTGATGAGGGGAAGCCAAAATACCAGAATTTACACCCAATCTAAAGTTTTATTGATTTTTTACAAAAATTTGCTCAGTTTTTCAGTAAATTTGCCAGATCTGACCATTTTACTATTAGGAACCGTCATAATTCTGGGTTTTGCCAGACAACTTCCTGAAAATTTAGAACTAATTAATTTTTAATTTTTTGTGGGGGGATCATGTTATTTCCTAACAGAATACTTTGATTTGAATTTCGAAAAAAACCGATTCTAAGCTTAAACATTGACAAAAATAGCAATGAATGTCAAAGAAATTGCTAATACATAAAAATTGTGAAAAAATACACAAATAACAATTTTTATTTAAACTCGTCATTAAAAATTTTTTCAAATTTTAAAAAATTGAAAAAATAAAAAATTTCTAAATTAAAATTACTGTAAAACATTTTTTGTTAAAATTTGAAAAAAATTCTAGAAAAAAAAAATTTGCATTAAATTTCGTTTCTTCAAGCCGGCATCTCAAGTTACAAATATCAAGTGTGATCAAAGTTTTGCTTGGCACAAAATGAGTGTTCTCACGTCGAATTGCGACCAATTTATGGGAAATGCTGGGCCACCGTGCAAAATTTCAACACTCCCGTCATTTGGTAGTAATGATAGTAATCAGAATGATAAGGAAAATATTGTGGAGGTACTTAACGTGGTGCCTAAAGATGGAGCCAAGACACTTACCAGGTATGGGGATTTGAAATTTTGAAAAAATTAGAAGTTTCAATGAAGACAGAAAATATTTTAAAAATTTATTTTTAATTGAAAAATAAAACTCCCAAAAAACAGTTTTCCCAAAAAAAGTGTTTATGTTATTTGTTTATAATATTTACGGAATTGATTTTAAAAATTACGAGAACACAAAATTTGGAGAATGTGTATTGGTCGCTACATATTTGACGTGCAAAATGTCTCGTAGCGACAAACTACAGAAATCCTTTAAATGGCTACGCGCACTAGTGTCGATTTACGGGCTCTATTAACGAAATGAATTAAAATGATTTAGTTATCGAACAAAAATCATTTCATTAAATCGAAAATCAAGCTCGTACATCGACAAACAAGCTACAGGAATAGTCCTTTAAAGGATTACTGAAGTTGTCGATCCGAGATATTTGCGTAAAATATGTTGCGCAATAGCATTCTTTGAATTTTGGCTTCTCGTAATATACGAAGGATGAAAATTTCAGATTTTTAACAAAAAACTTGTGAAAATAAAATTTATGAAAAGTATAAAAAGTTGAAACAGAAATTTTTTTGAGAAATATCGATGTCAATTTCTTCACAAAATTTTTCAAAAATCGATTTTTCTTTCGAAAATTTTTTTTTGTAATTTTAAATCAAAATTTGGCGATTTTCAAAATGTTTATTTTATATTTAATTTCTAAAATTAATTATTTTTATTAAAAAATATATAAACTCAATTTTAAGATTGTAAAATGAATTTGGTATGCCGTTGAAAAATAGAAAACTTAAAATCTTTTTAATAACTGACACAACTGAAAATGTTGTTTGAAAAATTACATTTTTGCAAATCGAACATTTTTGACGCGCAAATTTGTAAAAAAAAATTTTCCGATTAACAGAATAGGGAAAACTGTAAAATAGGAAAAAAATTTACCTAAAAAGCGTATGTGCCTTTAAAATGTGCAGTAACCCAAAAAAATCGATTTTTTGCAGTATGCGAGCTGTGGAGGAAAGCGAAAACGGTGTGGAGGAATTCGTCCACTATTATATGGACGATGAAGTAGCGGATTCATGATTCTATTATACCCATCTTCGATTTTTTTGAAAATATCTTTACTAGAGACCAGTTTTCATTTGAATTTTTATCGATTTTTTTTGGATTCCAAATTTTTGTTCTTTTTTTGGGACCTTGCTTGTGTGTTTTTTGCCGGCTGTCCTTCTGTCCTGCCAGCCAACGGTGACCTTTTCTCTTCTTTTTTCTGTCTGAAGAACTCAATTTTCCCGCCTTTGCTTTCTTCGAGATTTTTGCTTCCATTTTTCATATCCGCGCCAGCTTTTTCTCTCCCCTCCAGTTTTTTTACCCATATTTTCGAGCTTTTTTCTGTGATTTTCACCCCCAGAAATTTTTTGTACCAAAAAATTGATGCTTTTTTTTTTTCTCGTTATTTCCAGCAAAATGCTTGGGCAAAGAAATAAACTCTTTTCTAATTTATCATTCAAAATTTGAGACCAAATTGAAATCCCACGCAACTGCAAAGTGGCATTTGACAATGCACAGCATGGCACGCCTTTTCGTCTCACCCGGGGGAACGCGTATTCTGGGACCAGAATGAGGAGGCGGTGGTGATCGGAGAAAATGAAGTATGGACCACATCTGGAAGAGACACCTGATTTTACGCGCAAAAATTTTGAAATGTATCGATATTTTCGGTCAAAAATCAATATTTAGCGATTATGGGCACATGGGCTTCTGGCCTTCCTCATTGAATATTCGCGCTCCATTTACTACCAACTGCCTGCGGACACTGACGCGTGGAAAAGTGTGGTGTACCTCCACACGGGGGCCACAAACATCAGTTACCGCTTACAACTAAAATCGAGTCGTTACGCGACACGCAACTCGCCATAAATCTACACAAAATCTCGCCGACCCATAATGGCGTAGTTCGGCAAACTCTGCCATGACGTTCGAGTTATGAGCGAAGCCAGAAATCCGTGCTATGAGGGCAACGATTGAACAATCTGAGTGAAATCGTTTCCATACAAAATTTTTTGAAAATTTTAGTCTGAAACTGCCTAAAACTCGAAAAGTTATCTATTTTCAGGTCTAATTTCTGAGGAATATTCAAAAATTGCTAATATTCTCGAAACAAAAAATCGGAGCCAATACATTTGACGCGCAAATGTTGAATTTTCAAATTTACAACCCACTAGCGGGATTCTGGCTTCCCTCATAAATCGCAGTGGCAGAGTTTGACTAGGCCATTTTTGCAAGTGTCGGAGAGGTTTTGTATTTACGGCGCGTTGTGTGTCACGTCGCGGCTCGTTTTCACTCAGTTGTAAACTTGTTGTATTTGCCCGTGTGGAGTACACGGAGGACTTCTTCCACGCGTTGGGCATTTGTCAATGGAGCGCGAAAATTCAATGAGAAGGCCAGAACCTCGTGAGAATCCTATACATTCTGAGAATGCGTATTATGCATCAAATCCGACGCGCAAAATATCTCAAAGCGAAAACTAGAGTAATCCCTTCTATAACCCTAATGTAGTGCTTGTGTCGATTAAATTTACGGGCTTTCGAAGAAGTTACTTTTTTAGTTACTTCGTATTTTTTTTCATTTGTCTAATTTTAATATTCTATCGATAAAGGAATGGGTTTTTTTTTATTTTTATTATCGAGCCCGTAAATCGACACCAGTGCTACAGTAGTTATCACTACGAGATATTTTGCGCAATATATTTATAAGAGTTGGCGGGCCCGGCGCGCCCGCCATTTGTAGGGGTGTAAGGCGAGTCCTTGCGTAGGTTGTGCGCTCGACTTCACGACCCTTAGAGGGTTTGTGAAAATTTCAGTAGGTCAATGGGATCCGGTCTTCTTGTTTTTTGAGTTCGGTTAGGACCAAAGACAGATGCACCCGATGGATAAATCTGAGTTTTGATTGTGGAGTTTGGGGAGGCTTTATATTAGGGGTCGTAGACGTACTATTTTGTATAAAATTGAGTATTTCTATTCGAATCCCGATTACTCACAAAAAAACAAAAAAAATTGACACTTGGTAGAATTGAACCAACTACCAAAATTTCTGCAGTCATACGCACTAACCACACGGACATGCGGACGGAGACACCTTAAACTGGGATGTAGGGAAGTTGTTCTGGAGGAAGTCGTCTTTCGATTCCGCTTTCTTCAATTATTACTATTTGGGGAAGACGTTCGAAAACCGTTTTAATCACTGATAAGTCAGCGGAAAACCGAATTTGTGAAAATGTTATCACAGGATTGTACTCATTGTGGAATTCCCGAAAAGGAGACGGACAGTTGAGGGTTATATCTTGTACACAAAGACAGATGTATACAATAAAACAAGTTTTGGCCTGAAAATTAAAAAGAATAATATCTCTTGGCCATTGCTAACGCGCCGAAACTTCATCTTCCATTAAATAAAATCAAAAACTATGAATTAAAAATACATTCCGCGAAAGTGGCAAAAAAGTGTTCAGGGGACCCAGGAAACCACTCCCCCCAGTAACATATTTTTGAATTATTTTTTTCTTGAAAAATTTTCCCACTGAACTTTTTACAAATTTTATGTCTCGATGCGCGTCTGGATGAGACCTACACGTTTTAGAAAACTAAGAAAACTTTAAAACTGATCGAGTTATGATTGAAAAAGTAGATTCTAGCAAAGATGGGAAAGTGTGCAAAATTTGGCTACTTATTCGTCTTGCTCGGCCGACTCATAGTACTTTTTCCAATTCTTGTGAGTTAAAAATCGTGTTCAGCGTACTTAGGTTTTACGTGGGATAAAGAAAGAAAAATATCAAAATAGATGAAGTAGACTTGAGATAAAGACGAGAAAACTACTTTTTCGGAACAAAATTTTTTGGCAAAATGTCATTTTGCCTTTTGTTTTATCACAACTTTTTTCCGTTTGCCGGACTTATGAACTCAAACTTTTTTTCAAAAAATCAGTCTCTCTGAGTAGTATCGTGCACAAGAGTTTGAATCAAAACAGAGCAAAACCCAAATTTTAACTCAATTAAAACATACTTTTGTGGGGGTAAAAAGAGCAACAAAAAAATTAACTGGGGCAAAAGCCGTCCTAGAGGGCTCAATTTTGAGCCTCCTGGAACTTAGTGCGCGTTTTCTGCTCCACTGTGAAAATATTTCTAGTAGGATTTCACAATATTAGAGTGTCATGAAGTGACACGGTTCAGGAGTTGTGAATGAAAACGAAGTGGGACATCGCAAGCTCAAAATAAACGCGAAAAAACGCGAAAGAGGGGTGGAGTCTGTACACTCGGCATTTATTAGAGGCTGCTTGGCAGAACCGACAATTATCAATTATGTATATGATACTATAAGAATTATATTCGAATTTCACGCTTAGGTTTTTAGCAGCATAGCCGCCTGAAGTTCGACATTTAAAATAAAAACACGAAATGTTTAGTACGTGACAGCCAACGTGGCAACAAATGGAATCTCATCGACAAGTCCTTCAGAATTGAATACCATGGAATGCAGCAATTGACGTACGATAAATGACCACGAATTCACGTTTTCAAGCGATAATTTTTTATTGAATGACGTGGTAGTTTGGTGGCACCTGAGCGCTGTTAGCCAAGCCACTGTTGGTAGAGTTAATCGGTAAACACCACCCGTCTCGGTTACTCCACGCTTCTACGCCGCTAAAATTTGGTTTTGCATTTCCCATTGGGTTACGTTTTTGAAACGGGTTAGAAATGTAGAAAATGGGCAAATTCTAGGCCATCAATTTTCCTTTTGCATGTGTGCAGGAAATTGGCTAACATTCTAGAATTAATTTTATAGAAAGTGAAATTTTCGCAAAATCAATAATCCGAGAAATCGATAAACTTTGATAGAATCTTGTTCATCAAAAACAGATAATGTCCGAAAAATTTCAGAAAATTATTATTTACAGTCTCCGTTCATTTCGTGGCCTAGAAAGTTATCGATTCTAGGCTATCGAAGAGTTTTTCCAATTAGATTCACGACCACACGTACATTTGCATGTAACAATTGAGCGCGACAGGCTTATTTGAAGGAAGTCGAAGATCTTCAAATTTTTCGCGACAGATCCGACACTGTGAGCTTTGTCCCGCCGAGTTTGAGTCCTGATGTTCCGATTTGCCATAAAATTAACCTTATTACCATCCTCGGTGCCTGATAAGAGCCCGTGACGACAAATTTCTAGGCAAGTTACTGCTCCGTTGGTTATCTGGAATAGATCGATCATTTGGAACTTGTCGATTTTAAGAAACATTTTAGTGTACTTTTTTATGGGCAGAAAACATTGTTTTTTTTAATATCCCTAAACAAAACTACTGATAATTGTAAAAAGATCAATTTTTTATTGTTTGAAGATCTTTTTTGAGTTCCCTAGCTACAAAATAAACAATTTTAGAGTTGCAAAATTGTGAATTTTAAAAATAAATTGCACAATTTTGCCATTTTTTAATGGTTTTTGTTAAACCGAGTTTTTCTGAATTCAGCATACATGATTTACCGCTTTTTGACATAATTAGACAACGTTTGATATTTGTCCAATTTTTTTCAGCCATCTAATGACTTTTTTTGGGCAACAAAAGAAATTTCCTAAAACGAAACTTCAATATTCTGAAATATTGTGAAATAGTAGATTTTTAGGGCTCGGAGATCAATTTTAAGTGTTATTCTCTGGCTACAAAATGCGGAAAAAAACGTAAAAAAGTTTCGTGGTACTTGTGGATTATACCCCCGCCATTTTCAAAATTAATACAATTTCCAACAATAATTTATTTCTTTAAATTAAACGTGAGACCATTTTTCCTTTTTTGGTTATGCTTAGGAATGGTTTTTTCGCCTGGATTTCCACACGTTCTTATTTAATGAGTTAAAATATTAACTTTTAAAATGGCGGGGGTGTAATACAAATTCCAAAGTTTCTAGGCCCCATTTGCTGGGCCACAATTTATAGGCTACAGTTTCTAGGACTTTCCCTGGGAACATTTTCAGAGTTAGGCCACATTTTTTAGGCCCACATTTTCTTAGCCAAAAATGTACTCACAAACTTAGCAACGTGGCAATTTCATAAAAAACCTCATACCTTCTTCTCGAAAATTATTTTTCGAACACATTGAGATATTTCCGGAAACGTCGCCGAGAATAAAGTGGGTCGATGAGTAGAAATCTGCAGAAATTGCACAAACCGGTAGAGGAATCGAGAAGTCTGAAATTCTTCTTTTTTAATGCAATTTTAATCTCGGACCAATCAGCGTTTTGCCACGTCTTTTTTTTTTCGAACCAATCAGAGTTTGGTGGGCGTGGCTAGCTGCTGATTGCTCAGTTTTTTTACCAAAAGGCCTACCGTAGAAGAAGAGCAAAAGTGCTCTCGCCTGGTTGATGGGAACAGAAGAAAGTTTCATTAGAGATACCGCCGAACATTAACGTTTTTCGTGAAGAGCTTGAAATCATTAAAATGATATTTTCATTTCTGAAATAATTCATTTTTAAAGGTATACGCCAAACCACCGTTTCCTCTTCGACATGGTACTTCTGCACAGTTTCCAGCGCAACTTTATCGAATTTGTGAAATTCCAAAAGCTCCTGTCCTAGTTCACCTTAGAATCGTCACGCACGAAATCGTAAAGGAGGTTTAGGACCTAAAAGTTTGAAAAATATGTCCAAATCAAACTGTGAATTTCTACGCCAATGATGGAAATGCTCGTATGAAAAGCGACGAGCAACCTGTGGCCTATTAATTGTGGCGTAGTATCTGCTGCTCACCTACAAGATGTGGCCTAGATAAAATGTTCCTAGAGAAATTGTGACCATGGCCTAGAAATTTTGGCTAACCGACATAGAAATGGTGGCCGAGAAAGTGTGGGGGCAAAAGTTTTTAATTTTCATTTCGGTTTTTTTTTTCACAAAATGGAGAATTTTTTGATTTTTTGAAATTGAATGGGAAAGGTGGAAATATTGCTAATAACCACCTCTTTGCTAATTGTAATATCCTTTTCCACATTCTCGCCGTACACCATCATGCACAGAATCCGTCTGAACTTCTTTATTTTCTTGAAAGTTTGCCACGCATTCTACGTCTCTGCTTTTTTATTTGTCTCTATCGTCTGCGTCTTCCGACGTCTTATACACTATTTCTCCCTGAGGCGGATAGGTTTTCTCGTGAACTGGAAGAGTATGACGTCTGCCATTATTAGCTGAAAATTTGAGTTAAAACTGCTCTATCACACTAAACACGACGACACTCGTGGCCGCGGAAATTGGGAAACTCGGCCACGTAACTTGGTTAAATTAATGAAGATATTATAAAAAACTTCCGAAAATTTGAAACATTTTAACTTTTTTTAAAAAAAAAACACATAATGTTCCTAAACTGGCTAAATGAACAACGCCGCGGCGGAGCTCTCCCGGTTTTCCATGCAAGCGAGAATGCGTTGAGCGGGCCAACGGATGTCAGTGGAGTAGAGACGCAGAGCAGTTGTATAAAAGGGGCGGCGAAGAAATAAATTTCTATCCCAGAGTTTAATCTGTACAAAGTTGTTTTTAATTACCGATGACCGAGTATGAGATTTGGTTTTCTAGGGCACGGAACCAAATTACGGCGGAGTAACGGTCGGTTGAAAATATCGCTTAAATGTTTTGTTTTTTCTATGAACTGACTGAAAATCCACGAGCGTTTGTTTTTTCTAAAATTAAGTTCTTACAAAAATCACCTGAGTGTTCCTTGATTTGTTTTCGTAACTTTTTTCTCGCCAACTCTTCTTTACACTACGGTTTGACAACACGATAACATGTCTGTTCAGTTGAAAGACTGACAAGAGTCTCGTAGTCTCTCGCGGACTAGCTGACGCCCTTGTGGTCTAGAATATTGAAAAACTTAGTTTCATTATTCCGCGAAATTGGAAAACTCGGCCATCGATTTTTTTCCCACGCCCTGGGGCAATATGCACTAGACCTTTCATTGTAACAAATATTTCAAAACTAAGAATTAAAAAAATCCGCTCCTACGCAATCTCCCCAGTCTTGGCGGACGCTCCCTATTTCCAGAACCTCATTTGAATAACTTGCTTCTCCCATGTGTTTTGGGATGGGATAATCTCTTTTTCTACCAATGTTTTCTCCTTACTTCTGTTTAACGGCTTTTTTTCATATTTACTGATTGAGAATAGGTCAAGTGACGACGTAATAGAGCGCGTCGAAGAGGAGAGACGCGTGGCCTAGGAATCTCTGCGATCACCACATGAAATACGTTTTATTTTCTAGGCATCTCGACCGTGCTTTGTCCTTCTATGTTGACAATTTTTTGCAAGTAAATTCCCGTCTGCAACAAGGACACCGCACACAACACAAAATAGGTGAAGGTTCGATCGGATCTCTTTTTTTCCAGAGTCAGACAACCAACACACAAATGATGTGGGTCTCTTCCATTTTCCGGTCGTCAATTTGTTCACTATGCGCTTCACTAATTCCTGCTTTGCATTTCAATGTCCGTGCCCTCTCGGGACTGGAACTGACTTTCACCAATGTTTCTTTAGGTGGAAATTTAGATTTGGATAATTGCTGGAGCCAAAATTTGGAATATTTAGCGACTTGACCGTGCAAAAATTTTGGTGGCCGAGTTTTCTCTTTGCGCCGGCCACGTTGAAATAGTCGCCAGGTGCAAGTTTTTAAAACGACCGAGTTTTCTCTATTGCTTGACGACCAGATCTCGCTTCATTATAGCTGTCCGTCTTCCCACTTGCGTAAAAGTGCGACGTGGCCGAGAATAAATGTCAGTGGCCGAGTATGCGACATTTTTTTAGTTTTTTAGGAGGTGCGGCCTAGTTTTTTAAAACCATTGTTTATCTCCACCCAATCTAAAAAAATTTCTGCGGATATTTTAAACCATGGCCGTAAAAAAAAGCCACTCTCATATATGTTTTCGACACCTTTCGGTTTTAGAAATATATTTTTAAAAATTAAATAAATGGCCGTTATTTGAAATCCAAATAGAAATAATTTTCCAAAAAAAGTGGGAAAATTGGCCACTTGAAATTTTTTCCGAGATCTTTTTTGCGAAAAGATTTGAGGCCTAAAAAACAAAAACTCGGCCAGTATTTTTTGACCTTCCATGTGACGTCACTTGTGACTTACAATTCCTTTTCTCAAGTTCCTTATGAGAAATCGTTTTTTTAAGACCTTTTGTGACCCTTTTGTTGCATTTTCTCCCAGTCGGAAATTACGCCACGTGGAAATAGTACGGCCACACTCTTATTTTATTCCTTTGGCGTCTTTTGGGACAAAGTAACAAGTGAAATTCAAACCATGTAAATTAGATAGCCTAGACTTAGCGACTAAGGCTTGTTGAAATATTTTCGTGGTGTGGCATAGAAAAATAAATATTGGGCCATTCCTTTTTCTTCTCATAGTTTTGTCAGAAGACGTCACTGAAACCTAGAAATCTCTGTTCCAGGGCTGCAAATGGGTATATCCTCCATACCTTCGTCACAGACCGGGATCTTCCACGTCATCGACCGCGCCGAACATTGCATTTTGCTAGAGATTACATGGACCACTAAGGTAAGCTGCCTAGAAAAATAGAAAGTTCGGCTCTAATCGATTGATGATGTTCAGTTAAAAACGCGAAAAACTGCGGACGGCGAGGCGACGATATCGATTTCTCCGAAATTCGCGTGACAGTCCACCAACTTATTTCGTTTCAAGGGAATATTCGAATTCATGCCACTTCTGAAATGGTAAGGCTTGTTTTTGAGGTAGGCCACGAAAGCGTATGGTTGCTTTTAAACACGGGCCGCGGACTGAAGTATCAAACTCGGCCACCAAAAATTGAAACTGTGAGTCGCCCTGATAGAATTTTTTTTTTTCTCGGCCAAACAGCAAAGGCCGACACAGTGAAGTTAAAAAGGGAGGGTGCATTTTTTTAAATAAAAGACTAGACTCCTAATGCAGAAATATCATATTTTTAAATGAAAGATCTAGTCGGCTACGTCCGCGGTCGATTGATACAGTAGTCGCGGCTCGGTTTTCATTGATTGAGCACTGAGAAGTTTCACTTCTCCAATTTCAATTTCAGAACGATGAACTAAGAAGTGGACTACGTGGCAGCCAGTTGACCTTTACCGGATAGATGGTCCTGTAAAGGAGGTGAACGTTATTGCCGAGGTGGGGGCTCTAGAGAAACATCCACAGCATTGGGCAGCCTTCGCAGGTCAGTCCCTAAAGAAGCAGAGACTAAAATGCAAAAGTGCTCTGGTTGTGAGATAACGGATGCGCCCACGAGAATTGTCGAAGTGTTCTGAGAGAACGTGGAGAATATCATCAAAAGCTCCATAATTATAAATATGGAGACAAGACTTTACCCTCAACCTATTTGGAAGACTGACTCATCTCCAACTCCTCGAGCATCAGGCGTTTTCTAACGGCAAACTAAAATGCGAGAGTAAACAGTAAGGCATGGAAAAGGCGATCACGCAAACGGAATTGAAGAATCGAGCGAAGATAAGTGATAAAGAAGACTAAGTATGAGAGTAAAGTACGAAATGATATTGGATGAGGAATCACCGGGAGAAGCTGTGTGATAAACGAGTGTTGTTGAAGGAGGATGATGGTGGATCGAGAAGAGCTTCGCTCTTATGATTTCTCAGTTCAGGGAGAAAATCAACATGAATCTGTGTTGATGATCATATGTTCAAGTCGGAGTGAGGTCTTGATTTTAATTTAATGCCTAAATAACTTTGAGACTGAGGCAGTTCAATAGGCTATATACATATAAGTCTGGACCCAACAAGTTTGTTACAATTATTTTTTCTAGATCCTCGTTAGCTGCTGTGAATCTTCGAGCAACGTCGTCTATCGTTCATGTGTGACAGTCGTACCTAGGATGTTTCTGAAGGGGAAGATTGTGGGCGAAAGACAATGAAGAAGATGATGGAGAAGGGGGCTCCGATGAGGAGGAGATGGAGGGGAGCCTGGTCTTGAATGTGATAAGAGTGATTAGGAGCATGTCCAGGATGTTCTTAGGTCTCCATTAAAATATCGTCGATGAAAAAGCTTAATTTTTTAGATGCTAATTGGCAAATCTATACTTCAACAAAAATAAGTAGTCCTTCCCGAAGTGGAATCATGCCGAGGATTTTGTTGATTTCTTAATTGAAGCGGAGCTTAATGACTTGCCAGTTCTCAAAAGAGCTTGTGAGAGGTATTTGTGCTGAGCTGAATTCGGTAGGCTTCTGTTCAAAAAAATATAAAAATCTAATCGAAATCTTTTCTAGAAAAAAGACATCGGAAGGCACCTGTCCCTGTTGGACTTTTCAACTGGATTGTATTCAACTTGCCTGTCTGGTTATGGAGAAGTCGATGACCGTGTTTGACGGAGTTGGCGAATCGAACGCAAGAGTTTGTGGATGCTGACACACTTTTGGCCCATATCAGGAAGAATTTAAGTGAGTAGGGTGTGAGGCAAAATTGCCGAATTTGCCGAGTAGGGCATATTGCAAAAAAGTAGATTTGCCTAATTAGCCGGGCAAATTTCGAAACACTTAATCACCAGTGTGTAAAGAATCTCAGTAGTTTTGGTGCTCCAAAAACATTAAAAAATATTTTTTCACTTTGTCAAGCACGGCAAATTTGCATTCCGAATTTGTCTACAGGTTCGGCAAACATTAAATAGATTTGCCGAATTTGCGGAGTTCGGCCACGAAATTTTGAGATTTGCCGCACACCCCTGGCGTGCACCGTGAAAAGTTCTTTTTTTCCAAAAATCTAAAACTTGAGGTTTATAATGTGACCCAAAAAAAAAGAAAAGAATTCGCCGCGCATTGCAAAACCATAATCCGCCAAAAGTTTCTTTGTTTTTTTTTCGAAGTGCAGACCGGGTTTCCTAAAGTCAAAATTGGAAACACGACAGGACTTTGCCGAAAATTTAATTTTTGAGTGATCTGTTGATGCGAAAGGTTATTATACGATTTCAAAAAGCTCGGTCACGTGTAATTTTAGAGTGGGATTAGCTATTTAATTACATTTGGGTGTAATGTCCAGTAACCTGGATAAAAGAATGCAAACGCTTTCGGCCGAGAATCGGAATCTTGTGGAGCGCATCGAAATGTGCTACGTTTCGTGACCAAAAAGCAAGAGTTCGCGTTGTACCGACCGCCAAATCATTTGATATTCGGCTTAACTATTCAATAATATTGTCACTGTTTTCCTCTCTTTCTTCTTTCTCATTTTTAAAAATGAATACTTTTTTCTTTTTTTTTACTTTCCACACGACTAACTCCACAGCCGCGCCTTTTTGTCTTTTACCCCTGCTTGCGATTCCACACATTTATCAAAGCTGTAAAGACAGCGAAGTAGGAGTAGTAGTGCTTTTAGAGTACACTTTTGGCAACTCTTTTCTCCAGATATATTATATGCTGTGGATGGAAACTTTCCCAGTTTATATATAATATTATTCATTTTACATATTCCCCTTCTTATACTGCTCACCATCCAAGGTGCATCTGATTACAGCTATTCGCCGGATGGGGCGAGTTATCAAAGCACAAGTGGGGCTCTTTTGTTCATTTTCATTGCTTTTTTCATTTCCTTTCGTTTCAACATTTTTCCATTTTCGAAATTAATCGGCTTTTCTGACCCAGGACTCACGGGAGATGAAAATAAATCTCCTTTAAGAATTGTGCTTTGAAAACAATATCATACAATTCAAACTTGAAACTTCATTTCTCCGTTGTTCCCCGTAAATTCCAAGCTGTCATCCATCAACTCTTTGAATAAAAAATAATCATTTGGTCCGTCCGTCGCGATAAGGATGTGAAAAAAGGTAATACCGGCATGTTGAAATACACATTTCGTCGCGGAGTATAGTTACGCTTCGATTGCTCAAGAGGATTCTTCTTTCCCCTATCATATTTTCGGGCAAAGAAGAAATCTCTGTCACCCCCCCACTAATAGAACAAAATGCAGCGTTCATTTGGTGCGATTTTCCGTTTCAAAAAGAAAAAAGTGTGTCAAAAACCTATCAAAAAGTAACCGCCTAAAGTTAGTTAGCACCTTTTTCCATTGTGAAGTTTTCTTCTTCAAAACAACTACTACAGTTTGTGTGTGTCGTCCTATTGTTGTGGTTGTAATTGTTCGATAGAGCGCGCACAAAATCTCTCGAATTAATTGATAGTGTGTTGTAGTGACCCTTGACTCCTTTGTCAACACCGTAATTAGGAAGGAGTACACCGCCGGGCGGGCGAGTACAGTTATTATAACGGTGGAAGATTTGTTTGTTTACATGTTATTAATAGGTTAGTTGTGTACTTTAAACGTTTTTTATTTGAAAAATATTCTGTTAATTAAAAAATACGTAATTTAGAAAAATGATGACTTTTTTTCACTTTTCAAATTTCTCAAAAACCGAACCCATGGGGTTTATTGACAAAAAATAAGAAAATTTTTCTAGTTATCAAAAAATCTATACATTTTAATATCTGTAAATAGTAAATGTGGAAGACAAAATTTTGACAATGCGTGACTAATGAATTTGAGTTTATTTAACTTAAAGAAGAGGAGTAGACGATAATCAACTATATATTGCGCAACATATTTGAACAATACATATATTTTTCGTAATATTTATTTTGAAAAATGATTGAAAATAAAACACGAAGAAAACTATATTTAAAAACGTCGGTGCTTTTTTTACATCCTGTTTTTAAACGAAAAATGCAAACCAATTTTCCGAGTTTTTTCTTCAAAATATTAGTCCCTGTTCATGAAAAATGTGGCATTCTCACTTATGTAAGTAGTTGTCACATGCACTTTTTGACCAAAAATTATTTTCCGAGTAAACCCTATAATTTCCAAATCCTCTTTTTCTGAAATTTTGAACTTTCCGCAAATCGGGAAAATGTCATTTCAACTCGAATTCATACTAATTATACATCTGTATAATTATTTAGATTCGTACTTTTTCCTCCTTTTGAAAAAGTGCACAGACATCGCCGATCTTTACAACCGTCTGGGCGCAGGACCGGTGTTGTAGGCATTAAATAACTATTTTACCATAAATTTCTTATAATTTTTAGCTGAAACGGTTTTCCAACAAAAAAAAACGCACATTTAAAAGGGTTACCGTATTTCTTCTATCAATATGGCTGCAATACTATTTTTCAATGGTCTTCCCGCCCTTGCAATACTAATAGGGAGAGCAAGACCATAGGGAGTGCAATACTGATTTTTCAGAACATTTTTCTGACTGAGCTTACTATTTTTTTTGCTGAAAAAACTCGAACCTTGTGTGAAAATTCAAAATTTGATTGTAATTGGAACAAAAAGGTGAGTAATTACTTCAATTTCATGCTCGAGAAATTCATTTCATTGTTGCACAGTAGGCAAAAAATGTTGTTAACATCTCAAAATTAGTGAGGTGATTTTGTACAAAAAGAAAGTAGACGTAAGACTATTAGGGAGTGCAACACTAATTGCGAGTGCAATACTAATTTTTCGGAGGGCGTTCAAGGAGCAATACTATTTGGGATTGCCAAAAGTCTAATGGAGAAGGAGGTCATATTAATAGAAGAAATACGGTTAATTATTCGCGAGGTGCATTTTCATTTTAAACTTTGTTTGAAAATCAATTATCTTTAAAAATCCTTTTCTTCAAATTTGTAATTATAAGAAACCAAAAAACCTTTATTTAATTTTCAACAAGTGTAGTTTATAATTAAAATATGAAAATTTACAATAAAAGTTCAGGACTGAATCCAAAAAAACTTTTTAAAAAACGAAACACCTTGTTTGAACCTGATAAGCCTGGAAATAACCTGGAAAAATAACATCGATTCAAATTTTGCAAATTTTAAGCGTTTTCTAACTTCGAAAAAGTTGACCTGGCAAAAAATAGGATTTTTCAATGTATTTTATAAAAAGGCGAAAAAAAGCAAATTTTTTGAGAAAAAAATTGCTTAAATTTTCGACAAATCATTTTCAAAACTATTCTCGATTAAAATCCGTTTATAGCCATTTCTCCTTCAATTCTTCCAGGTTCGAATACTTGCTCAGAAACTAAATTTGCTCTTTTTCGTATCCACTACTATACGACTAGTAGAAGTTCTTCATTCAGTGGGTGGCCGGACTACTTTGAATCAAATCACAATTGTAGAAGGAGGTCGTGCATTTGCACGGGTGTTCTGGTCACTCCAGAAATTGAAGAAATTGAGCACCTCAAGTTTTGGATTATTCCAGGCAACTCGGTCGTTTTTGAAAACCTATTCTATGAAAAACTGCAAACTATGTGGTTGCATCTGTCTGGCTGGAATTTTTGTTTCAAATTTTGACCCAGGACATTTGAGAATCAACCAGTTTTCTTACCAAGTATGCTAAAATCCGAGTCAAAAAGTGACTTACACGGGAAAGTTTCAATTCATTGTCCGTGAGGACGTTCGCCTGTCCAGCTCATTCCTTTCTTTTGTCTCCGCCAGAACCGTCTGGGGAGCTCTGGCGAATGAGTTGAGAGCAAGCACATTGCATGAGCTAGATACCTCCAAAAGATATGTGCAGGCGGGAGATAAATTGGACGATGAAAAATCGCCATAAGCATAATTTTGGTGCGGCGAGACCCGAATAATGAGACATTTACGACTTTTTGGAACATCTTCTACGGACAGAATGGCATTTTTGGTAATTTGAGTTGTAGTTTGAGGGGCTTCATTTTTTTCGATTTTTAAATTCGTATAGACGCTTATACGCAAAAACAGAGAACTGCTATAGGCGCACGTGTAGTCAAAATGTCTTTTTGATCTTCAAAAAATGCGGGAGTTAAGACGCAGACATATCATCTGATTCGCATGGCTAAGAGCGGGCTGACGTCACAATTTTCTGGAAAAATGTTCCCGCTTGTAGATCAGGCTATGATGTGTGTGAGTTTTCAATGAGACAGCCTGGCACGACGGTAGTCACATGCTGGCAGTTTTTTTCCTGAAAAAAGGTACCTGGATTTTCGTTTTTTCTTAAGTAGTCAAATTATCGAAAGCTACTAAGCTACGTGAGGAACTTAGGAAAAGTAGGATTTTAAATTGTTTTCGGCCTCGCAACGAAAGACTCACTACTATCACCTCCAAAAAACGAAAATATTTGTCGTGCCGAGCCCCAAGGCTCCGTTGAAGCGAAATTCCTAAACTCCCTAACCGCCGAAATTAATTTCTGAGTTGATTTTCCCATCACCTTCTATATACAGTCGTTTCGCCCCGAAAACGATTTGAATTCGGCTTCTCCTCAAATCCTCATTGCATCCTCTTTCTTATTCGATTTATTTCTAGCGGACTCTCCCCTTCCCATCCGTGGCGTTATTGTTCGGTTACGATACGCTTCTTGTGAAGGTTATATGCAAACGACTACTTGCCATTCGATTCTTTCTCCACAAACGAGGTTATTCCATTTACTTCAACTAAGGAGCTGTTTTTTTCTTGTTTTTTGTACCTACATTCAAGGTCCAAGTAGTGCGGAAAGTCAAAAATCACCTCGCAATTTAATTTTTAATAACGCCCGAATTAGTGCACGATAAGTGAATAAGAACAAAATTCTAGTCCCAGAGTCGTGACGATTTAGACAGCATATAAAAAAAACGATTTTATTCCAAAGTTTGAACTGCCACTACATTTCATGTATTGAGGTTTTGAATTTCCATCATTTAGTTTTAACCACACTTTTCTTCCGATTTCCACCGCAAGCGAAAGTTGTCTTGTTTCCGAATATCTGACCGCCATAACTTGGCTAGGTTTTTTTACGACCGTGCTGCCGAATTTTGAATAGTTTATCAGCATAGACACTCTCTCTGTCCCCTTTCCAACCTCGCAAACCCTTATGTCTGTAGTTGGCATCTGTTGCAGCTTGTTTTTGGGGCAATTTTTTGCCAGCTTGTTCTACATATTAACATTGCCTGACCCACATATCTTGAGCAAAATTCCAAAAAGTACGTTTGTGGCCTAGAGTGATTTAATTTGTGGTTTTTTTTTGATAGTTTTGAGCTAAAACTTGCATGGCTTTTTCACTGTTATAAATCATTTACAAATTCATTTTTTGCTCTTTTTAGAAAAAAAATTGTTAAAATTGTGGAAAAATTTCAAAAAGGTGTTAATCATTATCCACTTCCAAAACGTCATAACTTTGGTGAAACTGTACCGGGCAGCAGCTAAATTTTTCGGAGTGATCGACATTATTTCTCTTTTATCGAAAAATTACTATGCCAAGACCGGGGACCCATTTTTTCACTTCCCTCGCGGTATAAGCCGAAGCCTTAGTCTAAGTCTAAGCCTATGACTGATCAGCATAAGCCTCAGCCTAAGCCTAAGCGTAAGCTCAGCCTAAGGCGAAGCCTAAGAATAACGGGAAACTTTTTTTGTTGCTTTTTTTTGTTTTTTTTCAAATGCCGAAAAATAATTGCGGGATATGAATTATGACTTTGTTTAGCCGTTCCCAGAGATGCTGGTTTTCAGGCTACCATGAACCTTAACGATGTTCTTCTGCCCGCCCTTTGCACACTCTGAAGTTTCCCGCCATGTCAACCTTTTCGATCGTTCGGCACGATAACGTTCTGAGTCCCGCGGTGCCCGTTAATTTCCATCGAATCGTTAGGTTTTCTCCTTCGATTCCTAGCGATCAAGCCATAATTTATCCGTACAAAATCGGATTTTCTCCCTTTTGAGATAATGATGATGATGGCCTCCCTAGACACCTAACAGTGGAGTGATGAATGTCTTCCTTAACACGTGTCCGTTTATCATTTATCACTCTGTGCTGAAAACCGGTCTCTCTCTTCCCCTGACCTTTTCGGTTTTTTGAAACAGTGAAACAGAAACGGAAAACAGGCGGTGTCAGATGTTTGACACGTTGATGTCGTAATCCATTTCGTATTAATGGTCTGCTACTATGTACGCCATTTGCTATATATGGCCATATTTTCAATAGCTTTGAGCACAAGCTTTCAGAATTGGCAATCCATTTTTAAAATTTTAAAATCGTTTGAAAACCAATATATGGGTGGAGCCTATTTCTTAACTGTCCGTAGCTACCGAAAAAGTCGGAAAGCGCCGATTATCTAATATTTACGACTTCGGCAAAACTGAAATTCTTCAGATTTTTAAGATCTTGAGAGAAAGAATTATATTTCTTTCAAAAAACATGTATTATTTAAAATTCGTTTGTTTTATTATATTTGAGCTCATTAACTCTGTATCAAATTGACAAACAGATTATTTCATTCGCAAAAATGCCTAATATCGTAAATTTGAATGTAAAGGCAATTCCCGAATTGCTGCACATCTTGGTTTTTTGAGCTTATTAATTGAATTTTTAAGAACTTTTATTTTGGTAATCTAAATTTTAAAGTTCTTACTGAATTCCGAAAAAAATTTCTTCAGAATAGGGCTTCCATGGCGTCAAAAAGCTTGCCAAACCTTAAGACGACCTCCGCTCCTCTGCCTACCTTAATCTATGTGCTGAAACATATGCTTTTTTTGCAATTCTTGATTGTTTCCTCTAATTGATAGAAATGAGAAAATTTCATAAAATAGAAAATTTACGCACAAGTACAAGGATTTAGGCAGGCCAGGCCGTGAAACCCCGCCTGCTTACCATGGAAGCCCTACTGCAGAAAATGAGAATTCTGACTGTTCAAAAAAAAAAAGAAACCAGCCGTGTTTTTCCTTGAAATTCGAAAAGTTCCCCGATATTCCCCTCATTTCCGGAGCGTTGTGTTCCCATGGTGGAACGGTAGTTTCAACACACCGTCAAAAGCGATTATCGTGTCTATTTGTCTGTCGTCGACGCGACCCATCACACCAAATCGGTTGAATTGGCATGTCGCTACCCCTTTTTTAAATCGGCAATATATTTACTTTTTATTTGACTAAGAAGTAAACACTAATAGTTTTGACTGCAAGAATATACATAACACCTTATTTCACTTGGTAAAGTAATTGAACCGTTGTAATTGAGCTGAACATGATTTACCTACGAAAAAATGCCTGTGACCTAGGGCTTGCATGTATGGTTAAAAGGGCTGCCTGCCCGACCAGGCAGCATGCGCTTGCCTGTGCCGGTTTATGCTAAAAACAAGGTTTATGCTACGGTTGAAATTATTTTTTCATTTTTAATTTGATTTTCAACTTTTGTAATCTGAAAATTCACAAAGGTAGAAAAGAGGGGGAGGCAGGCAAGTTGGCACGGCGTCAGGCCCTGAATCGGCGCCACTGCCTATCATGAAAACCCTAGTCTGAAATCGATTTGGCCCAAAGACCAATTTTCGAGAATCATTCTCCTTCCGTCCTTTTTACGCACTTTTTTAATGAATTTGAAGTGAACGTGTAGTCGAGGGAAATTTAGTGAAACTACTACAAGTCCACGGTTTTCAGCAGCAACTTTTTTAATTTCGTAGAAATAGGTGCTTTTGTGTTAAAATTAATAATAGCTGAACTATTGGATAATGTACTTTAAGACGGGCAATGTCACTCCATATTTTATAAAATGTTGAAAATTTTGGTCAGAAGGGATCGACGGAAGATTTTTAGAAATCGAAAATTTTCAATTTCCGATTCCCATCAAACATTTTATAGCTCAACAGTTTATTTCGAAAGATACAAAAAATCAGAGTCATCTGTTCGCACACCGTTTTACCCCTATCAACAGATGTGTTGCCCTGCACATCTGTTAGAACTTCTCACTATTCTCTACAACAGATTTTCGGAACAGAAGGTGTGATGTTTCTACCTGACTATGAGATTCACGTGCAATTCAAAATGATTTTTTGAAATTTGGAGATTTTTGAGTTATCCATAATTCCGTCAAAGAGAGATCACAATTTTTTTCGTAGATTGACAAGAAAATTACCCCAACAATACTCAAAACAATTGTAAGTACAATTGCATTATTGCTCTTCAATTCTTAATTTGTGCTGAAACTTTCTTTTGACGTTAACCCCTGCAAAAATGCAACTAAAATTGATCAACACTCGTCTAGTAAATCTACTAACTCGCCAAGGGAGAAGTCTTTGAGGGGGTCCGTACATTTGGGGTTTTCATGCTAAAATTCCTACAGAAGAGTGTTAGTTATGATCTCTCATTTTTGCGCATTTTTAAAGTGACTTTATATTCGGGAACCTTCAGACAATCATTGTCCGCACTTTATGGAAATTTTTTTTCGTTTTCGCTCAAAATCACTAATTGATCAACTCCAAGCATAAAAAATCAAACCCCGGTTTTTTAACAAACATTTTGTTAGTTGATCATTTTTCAAAATAATTTAGTACTCTCAACGAAGTTATGCAACTCCAAACTTGGTTGAATCAGTATTTTGCACAAAGTTCGAAGTGAGATGTAGTTCATTCCGACGGTTTACTTGCGAATGGCGAGTTAAAACTTGTGTAATGTACCATACATTTCTGAACATTAAAGAAAGTTCATACATTTTTACAAAAATAAAAATTTTCCTATTTTTGCTAGGAGTTGATCAACAAATTTTGAGAAAAAAATGAAAAAAATAATTTCGAAAAAGTGCGGACATTCTAGGTTCCCGATTAAGAATAAAATCACTTTAAAAATGCTCAAAAATGTTTGAATGAGTTGTGTAAAACTTTACTTACAAAAATAAAAATAGAAGGAATCGAACCAAACCTTAAATATTATCAGACGCGCGCACTCCCAACTCGGCCACCGCGGACAATTTTCAACTGCGTCGATGTGGTGTCACCCGACATTTTTACTTCGGTGGTCACGCAAGCTGAGATTTGCGTGGACTGATAGTAAGACAGTCGATTTCAATGGGGTTCTATCAACCTAACTTGCTGAAACACATTGACCGGGGCAGCTAAATTTTTTGGAGAGATCACAACTCACTCTTCTGTAGGAATTTTAGCATGAGAACCCCAATTTCACGGACCCCCTCAAAGACTTCCCTTGTAAGTCAAACAAAAATTCTGAGATTTTTCAGAGTACTATACGTAGTATATATTTCTGAACAATTCCCTCAACAAAATCCTTTCCACTTCCTCATTTTCCCACGTAAAGTCAGAATACATTTTACTTATTACCATTAATACCTAAATGAAATACAGGTCGATCTTGCAATTCTACCGTCTCACGGCTTTTGTACTTGTTCACCGCCACTTCCCCCATTCTTTAATCCAACCACACACTTTTGGCACACAAAGTGTTCAATCGAAATGGGACACTATTTGCTATTGCTATAATCGACAGGCTGGTGGCAGGAGGAAAGCAGCAAACGACGAAAGGCATAAAACAACTGGGCGTTGTGTTAATCACCCGTATTAAGCATTCTATATTAAGCGGTCGACAAACAGTTCATTCATGTTGACTCGATTTTCGATCATTTCACAGAGTTTTGCTTCGAATTGAAGGTTCATGGAGAGATAGCCACTCTGTCTATTTTCAGATTCCGCTGAATTTTAAGATGTTTAATACTTATTTGCCACCTTTTCGACGGAATGACATGTACCGGTCGGCTAAATCATGGACAGAATCGATCTGCTAAGAGATGACAATTTTTAATGTATATACTCAGGGCTCAAATGATCGAATTGCGTAACGAATTTTTTAAAAACTTTTATCAAAATTTTCTATTGGTTCAATGTTTCGAAAAATAGACCGGAACATGTAATTCCGTACAAAAAAACGCGCTTCTATCGTGTCTGAAACAACAATCTTTTTCATAATAACTTTCAACTACAAACTTGTTCTTTACAAAAAGATCAACAATTCGATTATTAGGTGAGCACGCTGGTTTTCTGTACAAAAAATTTTCCGCGCAGATGTGATCTACCAAAGTAATTTGGAAAACCCGTCAATGCTTCGTTGCGTTTCAGTGCTATTTTAGGATCTTTGAGAGCTCACCTGCCGTGAGCTTGGCTCTGGAGATTCGCAGCTAAAAAGGAGTGACCGTTTCTTGAGGAGCCGTTTCAAGGGGCTATCGAATGGCATAGGTCTCATATGCAAGCCGATGGGCACCTTCTGACGGTTCCCTAGTCAGATAGAAGCCAAAATTTGGGCGAGGTATGCCCATTGTCATTCTAACGAAATGGCCTCCGACGTGATAACTTTTCTCTGTCAATTACTCTGGGCACACTCCCAATAAATCCTACACACCGGGGGATTTGAATTGAGTCATTCAAGTGTCAGTGGTTCAGTTTCTAGCAGTTGATACGTGTTGGGTTGTGTGGTGGTGGTCAACCTGTCGCCCGATCACTCACACACACACATACTTTTCCTGCCATATTCCTCCCCACGAAGAGAGAGAAAAAGAAGTTGCATCTTTTCTTTTCTATAAAAGTCTCTATCCACCAACACACCCTTATTCGCATGTTCTCGCACTCCATTTTCCAAACAACGCAATCAGTGCATCCAAATCTACATAATCGATTCAGGGGGAATAAACTGTGATAGTTTTCTAATACTTTTCCTTAATTGAAATTTTATATTTTTGAAATAATCGACCGAATATGCCTAATTATAATTAAAATTTAGCGAATTAGATTTGAATTTAACAACTATTGCGATGTTTTGAATTTTTGACCGGAGTATTTTTTCAAGAAATTCTCTTTGCTAACCATAAGCTGAAAAATTTTGATTTTCTAGTTTTTGGTTTGCCCGGTCAAAAAAAATCTGTAAAAATTTTGGGGCTTTTTTCTCAAAAAAAAAAAAAGAGATTCAGGAGATTTGATTCATAACTTCAAAACTTAGATGCAAAATCTTTTACGTGGTGTCGATTTTTTGATATTCGAAAAATCCGGTTATTAAACAGCTCTATTAAGAAAAATTATTTCCTGGACCTATTTTCTGAAGAATTCCTCGTGCTTATCCCACTCTACAATTTTTCGATTTTTCATAAAATTGAAAGTTTCGCCGTTCAGTTTACCCTTCAAAATCAATTTTCGACGATCCCGAATGTTCAGAATGTTGACAAATAAATTTAAGATTTTGTCAAATTTTCCCACACGTACTTATCCACCAAAATTGACAAAAGACCCTTAAATTTAATTTCTAAAATTTTCAAAAAATCGTGATCCATTCCTCCATGTCATGTCTTGCAAGCGTTGCCTCAAAGTCATCAATTGAGCTAGTTGTCATCAATTCAGCGATATTTAGAGATTGAAAGAATGAGTAACTCATCCTTGTTTCTTCTTCATCTCCTCACTTCACTTCCAATTTTCTAGGTCATCTGTTACTCAATTTGGCCTGGCGATTAGTCATCTATTTGTTCGTCAGACTTTGGTGCAAATTGTCGTGTCACTGAGTAGTTATTTTTTCTTTTTGGTTGATAAGGTTACCTGTTAAGGTCATATCCTTTTTGGCCTATTTTTCCAGTAGTATGATTCCTCTAATGGTCGTTTAGAAGTTACTAAATGTTTCGAAGTTGTTAAAGTATTAGATTTTTTTAAAATCATTAGGAATGTTTTTTTAATTAAAAACAGTGTTTACAAAAAAAATTTTATGTTTTAAAAACTTAAAATAAAGTTTAACAAATGTCTAAATTGTTAATTTTTAAAACTATAAACAGCATTGGCATTCATAAAAAACAAATTTCGACAAAAAATTCGTAAAAATTGCTGAAATCGCAGTAAAAATACTCACAACGCTGAATTTCTCATAAAATCTGGAAAATCAAGTCGTTTTACTTGATATTCGATGCCATAGGAAATTAGACAAAAAAAAAGTGATTTTATTAAAGGCTGGTCAAAATGTCAGATTTCAACAACGTTTTATAAAACCGCTGTCAGAGTAGAAAAATATAGGTGTAAAATGTAGTTAAAAACTATTCTTCGATTTTCCTTATTTTTTTCTGCTAAGTGATTGAAATTTTCACGTGTAGAACAAGAAGATTTAAATTTAAACCAAGTTTTTAAATTTTCAATTAAACATACAAAAACTACTATTTTCGAAATTTTTAATACAACAGTTTAAATTCCAATTTTTCTTTAAAACATATTTTCCAATGCTGACTCTGAATGAAGTCTTAACACTTCAATTTCAACATTCTGTTGCGACAAGTCGTCCCATCCATTGACCGATAACAATGGATCAATCACTGACGAGGGCCCCCGGGCGCCGCCATCATTTTCTCTCTCTCTCTATCTATCTGTCTCTCTCTCTCTCTTTGTTTCTAAAAAGAAGGAAAATGAGCTGCAATTTATCAAATCCACGGTCTTTTTCCCTCAAATTCTCTGCCGTCTCTAGTCTTCTCTCATGGTCATTGTCGCCCTAGGACATTTGTGACTCACAAAATGTGCCGTATTATACAAAAATAATTAAAGTTCAATGCGTATGCGTGGGTGCATTTGTTGCATGGGTGAGGGCAAAAATTAGCCACCCACAACAAACTTAACGTTTTTTTTTTTGTATTTTGCCTTTTTCTTCTTGATGAATGGTGCACATTACACCTGTTCTTTGTTACGGAAAATTGGGCGCAGAGAACTAACTGAGGTGTGAATACTTTGTTGGTTTTTTTGGCTATACCTATTAGTAACCTTTTGAGTATTAAAAAGAAAATTTGAGGCATGTTATTTGTCGAGTTGTTGGTAGGATGTTGATAATTACTGTCATCGTGATATTCTATTAGAAATTAATATTTATTTACACGTTTTAGAAGAATTGGGGATTTTTATGCAAATGATCCAAAATAATCTTTCGACAAATCACGACGGCCCACACTGTTTTTGTCTTCAGCCAGCAATCAACGTATTCAAACTCCGCCTACTCTGTCTGATTGGTAGGAAAAGTGGGCGGAGCAAATTGCTGATACTTTTTCGAAGTTCTCGACCCTTAGCAATACCAGAGTTCATCAAAACTGAAATATTGCGTTTTTAAAGGATATATTATTAGTATTATTATTTACTCTCGATTTTTTTATACTATTCTGTGGTTGCTCTGAATTTCAGATTATTCGAGATAGTTTTCGATAAAGCGACAAGTGATTGTTCAGTTTCTGATTTCCATAATTTATCCTCTAAAAGGTCAAGGTTTCGTTTCTTTGCAAAAAACTCATTTTTTTGAGAGTTTTCGGAATTTTGGCTAGCCTCTCCAATAAATTAATTCAAAATTTCGGAAATTATTCTTCCATTATATCAATAGTGTTAATCTCACTATTCTAATTTGATACAAACAAATTGACTCTTCATCGATTTCCAGCCAAATACTTTACATGCTTGGCAACTGAAAATTAGTGTTGTTTTTCAAATTCTCAGTTTCCAGCCACTGAAAACATGAGCCTCCATTGGGTCCGTCCCTCTCCTTTAGCCCTTCCGAAACTCATTTCCCAGTACTCTCTCCAATCTGGTCAACATTTGAAAGGCTGTTGGGGCGAACGAAAGCCAATTAACAACCGAACAATAGTTTTTTCCAATGTCATCGAATCCTGGCTTCTCATAGCCAAAAATGCTGATGACTCGAAATTGCTTTTCGTTTGATATACACACACATCATCCTGTGCCACACACTCTTTTCCCCACTCTTTTTCACGAGCTTTTTCATTCGGAAGGCGACAGAGATCAATTACCGACATATGGAACCAATCGAAGTACTCTCTCCGCTGCGACTACCTAATTAACCCTTTATTGAAAAAATGAGAGAGAGACAGAGAGAGGATATGAACGGAAGAAGGAAAAAGAGGCAAAGCAATTGTTTATTGTTTTTCGAAACAATTCAAACTTTTGTTTGGGCTGTACGCCTTTAAAGATGGAAAAAAAACGGAAATTTTCCAGCAATCCGTAAATTTTTTTGTCGGCAAATTGTTGGCATTGGTAATCGGCTAATTATTCGCCGATTTGCCAGAAATTCATAATTTCGGCTACTTATGCAGGTTCGCCTATTTGCCAAAATTTTTCATTTTCGGCAATTTGCCCGTTTGCCGTTGCCGGAAGTGTTTAGAGGAGTTGTTTATGAGACGGAAGCACTGTGCCTGTTTGCCAATATTGAAATTCTGAAATTTCCAAAAAAATGTGCACAAGCACCGCCAAAAACTTTTTCAGTTGCCGGTTTGCCGGTTCGCCGGAAAATTTAAGATCCGGCAATTTGCTAATTTGCCGGAAAAAACCGGCTACCGCCCACCCCTCCACCGAATTCGGAAATTTTGTAAAAAACAAGTTTATTTTTGGGCCAATACGATACTACTTTTCCTAAAGAAGCTTACAGTAATCAATGTATTATCTTTTCCATCTCGAATGGTACCTGTGTTTAACGGTCACATAACTGTGACGAGTACTTGAGATGACAATACTCTTATCATAAAACCTCCCCGCTCGTTATACCCCTCTGCTTCTCGGGTGTAGGGTTACCGTGGTTGCTGACGGTTTCGTAGGGATTACTGATGTCAGAGAATTGGATGAGTAGTTGGGATTAGGAGATTAGGGAAATTGGAAGACATGTCTATGCACTCCATATGTTTCTAATAAGAATCCTTGGAAATCGAATTGCATATAACTCAAGAATGGATAGCTACTGGTCCTGTTTCGTTTTGTTATCTTGATTCTTCGAAATGGTGCTCACTCACTCGAAGCCCCAGGACGCTAGTTATTTTCGTAATCGTCGCGTTCGTTCTCGAGCTCCTCCTCGAGTTGGAAATGTTAAGTTGTGAGGGCTATCGCGTCCACAGATTTATAGAGTCCGTCGTGCGGTTTCGCTGGGTTCTCGCAGCAACCCCCTCCCCCCGGCACCCACGCAATATCGGTGCAATCGCGTAAACTTTTTGGAGCACGCAGCACACAATGTGCGCGGCTCAACTCTGTCTCACTCTTCGGACATCCAACATATGGCACTCCTCAAAGTGTTCACTGGCCTCCGCTCGGAAGTCAGGCGAATTTATTCATCTCTTTGGAGATTGGCTCACAATTTTTTTGATTTGAATTCAGTGACTATTTATCGATTTCTAGGGCTTCTATGTAGGTTGCCTGTGTGCCTGTCGTCTGACGTTAAGGCGTCCTCCGCCTGCCTCTTCGCCTCAATCCGTGCCTTGTGCCAAAACATACGAATTGTAAAATGATTCTCAAATTGATAAAAATGAGAAAATTAAGAATTTGTGAAATTCAGACAGGCGGCAGGCAGATCTCAGACAGGCATCAGGCTCAGAAAACGCGCAACTGTCTCCCATGGAAGCCCTACTGATATGTAAAGGAGATATTCGGTTCAGATAAAATAAATTGAAGTTACGCGAATTCTGAATTTTGAATATTTTCCAATAGTTTCTAATAGTATGGGTTAGATGTTGCATTCTAGATACTTACAAAATTTTTAGAAAATTCCGTGGTAAAGTTCAAAGGACACTCTTTGGCTCTGAATATTGGTTAATAATATGAATCCGTTCTGCTTTGTTTTCCGTACTCCAATTCTTGACGTTGATATGAAGCCAGCTCGAATAATAGCCTCGCACGTAGTCAGGCTGTCCCAATACGGTTTGATCGACAAAAAATGCTGGAGTTGCCCTTCAAAATGTGACGTAAGCGCGCTCTTAACCATGCACTATAAAATCAGTTGAGAACTCTGTCAAATCAGCTCCCGCATTTTTTGGAGATCTACGTAGATCAAGCCGAACGGATACTGGTACTCTGTCACCACGAGCTCCTAAGCACTATTGTGCAAGGACACGTCTTATTTTCTGAACCGTCAAAAATTGGCACCGTTTGAGAATGAAAAGATCTAAAATTTTCTGAGTCTGTATTTTTTTCTGTATATAAGTCCTACCGAAAGGGTCCCCCGCGCTAATAATTACCCGCTTCAAAACAATGTGTACTACTAGCCGAGATAAGAGTTTTGTTGTCATGATACAACAAGATTTCGATCACCGCCCATTTTTCTTGTCAAAAAGTTCCGCTTATAATCTCGTTTTCTGATAATCAGAGATACTCTATGGGAATTGGTTGAGATCCACGCCATTAGTGAATGTTCCCCCAATAACCATGGAGCGTTAGAACAAAGACGAAAACCCGCCAGAAGACACACATTCTCGAGAGCAGGAGAAAAACGAAGAAGTGGGAGGGGAGCCCGCGGGGGCCGAGACTTCCCACTTGCCGATTTGTGCAACGCAATATCGATGAGGAGTGCTCCGTCCATTCGATACAGTCTTGCACCATGTTTGTTGAGAAATGCTATTTGGGTGGCTGGCAGAAGTTATTGGTCCAATTTTCTTGTCAATTTGATCTGACAGATTATAGGTTCTTGGAATTCGACTCTTCACCGAAAAAATCGATAATTTTTCGGAGTTTGTTCAATTTTTCAGTTGAACATTTAAAAGTTTTACTAAATTCGATTCTAAATTTTAAAGCACATTTTGACCTAGTAGGACTTTCGGAATTTTGTAGCCTGTATAAAAAATCGGTGGCCAATTCTATAATTTTTTTTCGTTTTGAAATTGCCTTTTTATGAAGTTTACAATGTGGAACATTCGACTTTGAATGACTTAGTTTTTCAAATTCCACCTAGGGTCAGAGTGTCCCATCCCAGTTTAATCGACGTTGATCTACAAAAATCGCGGGAACTGGTCTGACGCAGAGCTCGCCACTGATTTTGGCAGGGTTAAGACTTGCTGACAGCACATTTTTTCCTGGAAAATTTTCCGCATTTTTTTGTAGATCAAACAAATTTGATATTGCCTCGAGTTGTTCGCTATAGTTGGCTAGTTTTGAAATCGTTCCGGAATTTCTTGAACTTCGAGTTCTTGAAACATTTATGTTTTCACCAGTTTTCTCTGCGTGTTTTTTGACTGTTCGAAAAAACGGTTCTTAGAGACTGCTTTGCAAATTTCGAATTCATCCAAAAAAAAGTGAACAAATTCTTCGTATTTTGCTTCTAGAATTTTTGGAAATCTCATTTAAAATGAGTTTTTGTGAAACATTTTAATCTTTAAATAGTCAGAGTTACGTCAACCAATTCTATTTTTTGAGGAAGTTATTTTGAGAAGAAATACAACAAATCCGCAATTTTTTCCTTCCGAATAATTAACACAATCCAAGATCCCCCCTCAAACCGGATGGCATTTATTCGGATCCCGGCAGGTGTTCGAATGAGATTTGTATCCATTAACACATTGTGCATCACATAGACACATTGTCAACGTATGCACACAACAAAATAACTGCGCTCGTTCGCACCTCAATCCTTTGATGTTCTCCGCCGGGGGCTCCTGTAAGGTCAGGAGTTTTCTAAAAATGTTGCCTTCTTCTCCGTCTTCTTCCTCTTCATCATCGAATATTCCAGAGGGGGGCCGACACGCTTCACTTGATTTTCGATGGCAATTTGTTTGAAGAATTCATGAATTCGAAGAATTTATTTGGGAATACTCTATTTTGCTTTACGTTTACATCCAACTTTTGGCAACTTAAGCGCCTCCAACTGCAACCATATGGTGCTCAATGAGCCGAGAGGGATCATCTGTGAATTTGGTGTTTTTTATTGGTTCCCTATTTGATTGGAGAGTTCATTTTGCATACAATTACCTCTATTTGGCTCAGGGGTGGACGGGCACAATCCGTTCGGCATTTATATTTTTGCCGACAACTAGGGCAAATCGGCAATTCGCCGATTTGCCGGATTGCCGGAAGTCTTGATTTTCGGCCAACCGGCAAACATCAGCGTCCTATTTTACTATTCAAGATAAATGTAGGAACATTCATAGGATGCGGATACAATATTGCCGATAAAATTTAAATTCTGATCAAAAAAAATGAACCACAATTTGCCGCAAGTTCTAGCCGTTGCATTTCAATTCCGGCAATTTTATGTCCGTAAAAAATTGCCGCCCACCCCTGATTTCTATCAGTCTGTCACCGATTCTAGTGAGCCGGGGGGTCTTCCATGCAGGATGAATCGGTGTCTGCTACATTAATTGCGCAATCCACATTGATACAGAGCAACCTGCTTGCAATTGTTTTTCTGTGGCCCGTTCTGGTTACACCTATAAAAATGTGGTCGAAGAATCGTATAATTTGGGTCATGAGATGGTCCCTGGGTAATTGGAGAAGTGCCGTTGAGAGAGAGAGAGCCAATTACGTATGAGGTCTGGTTCCTCTGCACTCGGGAAGACGCTATAACCCTTCGTGGAACTTTTGGCGGGAGATATCAAGAGATATTTTCCACTTCGGTAATTATCGCACTTATGGTACTCTCTTTGTGAATGATTTACCTATAATTTATTGAGCAGTTGTGATTATCCTATTTTGAGAACCTAGAAATGTCATAGGAAACGTTTAATCGGTGAGTATTGTTTTACGTTAAGTTGCTCCGTTTTTTATTTGACTAGCTCGACACAGCACCTTTGAATTTTACATTGGTTTTGGCCAAAGGTTTTCTGTTTACTTTTATTTTGCAGTCTTATTGATCTGGCCTGCTTTACCGAGCTAAGCCTAATCCTGTCCCGGTTACAGTCCATAAGACAACATCAGCTTTTGAACTCAATAATTGCCGAATTGCCAAAATGCCAAAAAATTACGATTGCTGCCCGTCTGAGTAAGTCTGAAACAGTTGTGATTGAGCCGAAACCTACTCGGAGTGGGCCACTTCCCTATTTAATTTCTCGGTTGATTTTCACACTTCCCGCCGAGAGCCCGCAAGCATCTGCGAGCTGAACGGTTTCGTCGTCGTTTTTCATGTCTATTGCTAAATAGGTACGTGCGCGTTACACACTCATAAACATCAATTCTTTCATAAAGTGGTGGATAAGTCGAGTGGATTGCATCTGACACCACACTTCCGATAATCGCTTCGTCTTCTTGTCATCATCGTCGTTTTCTTCTTGTTGTCGTCCGGTCCCCACACACACAAACGGCTACTTCCGACGCGTCGGTGTTGTGTGTATGTGTCAAACGGCACCACCACAAGTGATTGCCCTCGGCCGTGTGCTAACTCGCATTTTGTCTTGTAATCACGCAATAGTGATAACAATCGTTTCCGGACCATTGCTAATATAATATATTGGGGCTACTGCGGGCACGTCTTGGCAATAACCTGGATGCAAGTTTTATCGTTAAAATGTGAAGCCCATGTATGATTGCGAAAATCCTAGTTGAAGTTTTCCCATTCAAATAATGGCATATTTGAAACATTTCGAACTTGAAGATTTATATCTGTCGTAAGTGGAACGGTTCATTTGGTTTCTTGCGTCTCGTCGCGAAAAGCTTTCACTATGGTATGAAGCACGAATGGGGAAAATCGAAGTCGAAGGTCGGCTCGATTTCGGCAATTATCGAGTTCAAGGTTTCGGAAAAACTCAAAAATAATTTTCAAATCTATTTATTAGTTCTGACACGCGGACTCGGCAAGTCCCATTTCGCTTTGATCTACGAAAAATGCGGGAGTTGAGAGACTACCGCAAACATCTCAACTGATTTCGCATGGTTAAGAGTGTGCTGACGTCACTTCCGGAAAAAAATACCCGCATTTGTAGATCAAATCGTAATGGGATAGCGACGTAGAACAGACTCGCCAAATCGATATATGCATAATGAAAACTCTAGAACACTGCCACCCTCATAAAGTGAGTGACAAACATTTCTGCTTTGAGGAACTATAGAACCCCCTTTCAAGTCGATCTTCACGAGCGCAAATTCTAGAAAGATCTGACAGTGGCCGATTTTTTAATGTTTCTAGGCCCACGTAAAAAAGCTATCTGATGCCTTGTTACATTCCAATTCGAAAATATCCCTTTTTTTAATTTTTCGGCAGCAGCCCGGTCCGTGCCAACAACTTACTAAACCCTTCAATACCCTGCCCTCCAAACTTCTGGCCTCCCGGCTCCGTGTTGTTCAGGGTGTTGTACCCCCCCTAGACACCCAACTGACCATTCACTCGTCCTCCCCCTCTACAAGAACCACCACCACCTGATCCATTCCGCAATTATATTCCGGATACTTGTCATACAGAGAATACCCGGTTTGCTGCTGCCAAACGGTTTTCATTTACCATTTCTCACTCCTTGATTGTTGTCTATTCTTCGATTCGATGCGGCAAAACTAGCGCCTGGTTTGGGATTGCTTTAATAGTAAAATTTTTTCTTATTTAAATTTCCTATATTTTTTGTATAAGATTTTCTTTTTTAATTGCCAATCCATGGGAACGTCTCAAATTGCATAAAATTCCAATTTGAATTCCCTCCAAGATTTCACGATGGAGCGCACTTGAATTATTATAATTTTTATCAATGAATTTTTAGAGTTATCATCTCTGACTGATTTTTTTCTTTGTTAGTAGTTTTAGAGGAAAAAATCCAAGTTAAATGGACATTTCCTATTAGTTTTACAATTTTTGGACTACTTTCCCCGCCGCCACCGCTAAAAATCCCAATGCAAGTTTTCACCTGCTCTTGCACGACTCATTTCCGCGAGCGCGCGCGCTCGTACTTTTTATCTTTACTATTTATATATCTCAAAAAAAAATCCCGTTAATTTTTTTTCCCTTACAATCTCATATTTTACTCATTTAGTTTGGCTTATAAAATGCTAAGATTAAAATTTTTATATTTCATTTCCAGATCACATACACAACGAAACTGAGGGGAAAAAGTTATTCCTGATTGATTTTTATGATTAGTAAATAACATAGTTCGGCCGCAGCTAACGGTGACGAACGCCCGCAATTATGAGTTTTTCGCTTAAACATCAGATCTTTTTCGAATTTACTGTGAAAAAGCGGGCGTTTTGAATTTTCCGACTTAAAACTGCTTTTTTTTGCAAATCCCGACTTATTCAGAGAAAAATAATTCAAACTCCATTTTTCAGCTGTAAATGTGCTCCGGATCATTCCGGTGGAGCCGACGTCTAAACTCCTATTATGCGACTATTCTTTGAAATACACGACAATTACAACTATTGCGTCGTCGAATTATGATCAGGTTGCTAATATTCGGTGAGGTTTTTTGATTTTTGAATGCAAAATTTGAGTTTTAAAAATGGAAAAAATGCGATTTTTAAATCAAGATATCGGAAAAAAAAAATTTCCAAGAAAATGGTGGTTTTTATCGGGGTAAAAAAATATTAGAATAGAAAATTTGGATTTTCGAGTTCGAAATGAAAAAAAAAAAGTTTTGTTTTACACTAAAATCCCCATTAAAATTGGAATTTTTTTAAGAGAAACATAATTTTTCAATTTCTAACTGTAAAAAGCACACAAAATTTCTTGAAAATTGGCATTTAGTATTTTTTACACGAAAAATGCATTAAAATTGAATTTTTAAAACAATTTAAACTTAAAAGCTTAAAAATTTATTCTACACCGGTAAATGACGAATATTCAAATAATTAAAACTTCGAAATTGTAAGTTAGAAAAAATCAAATTTCCTCCTTATTCTCAATTTTTTTTTGACAGCAAAATTTCAGTTGAATTTTCCCATAATTTTGAATTAAAAATGTGTTTTATTCCAAAAGAAAACTATTTTACAAAAAACTAGATTTTTTCCCAATTTTCTATGAAAAATTTAATTTAGGCCAATAACTTATTTTCTTTTTCCAGATCACTAATCATATCTTGTGGTAATAATAATTTCCAATTTCCGGATGCCTACTTCAAGTCCTTAACCGCGTTGCATCATCTGCGGATAGTGATGAGTTATGATATTATCAGCTGGGGGTGTACAGAACATCTGCGATTTTTGCGTGGAAATTTAGAGGTCAATTTTCGGAAAAATTGGAAAAAGTGGGGCCTAAATCTCAATTTGAAGTAGATACGTGTTCAAAACTTTCAAAAAATTCAATCAAAAATTCGATTGGAATACTTCAAAAAAATTTGATTTTCTTCGCGAAAGCCGGTAAATTACAAAAAAAATTCGTTGGCGATTTTTTGGTTTCCTCTAGTCAGAAAAACAAACGAAAATTTTAATTTTTAATTATCGTTTTAATTTTTCCAAAAAAAATTTTTAAAAATACATATGTTCATTTAAATTTTAAAAATATCGGAAAATATTCAAAAAATGAACTTTTCTATCGCAAATTTAACAAGAAAAACTGACGAAAAGTTCTTTCAAAAAATTAAAATTCTTCTATATCTTAGAAAGGCTAACAGTTTTCCCATTTTTTGACTCTTTGAGCAAATGTATCACGGTCTCATTACCATAACCATCCAAAAAGAAAGATGTGTCGTCTTCTATTCATCCTCCTCTCGACACCAAATTCTTAAGATGAGCCCCAAGCCACTCGATGTCTCTAATTAGGCAAGTGCCCCGTGCGTCATTTTGCCATTTGTACGGCGACATATGACCTCCGGTGTGCTTGGAGGACTGCGAGAGAGGAGGATTAAGGGGATTTTTATGTTCTACAATTGATTTTTCTTTAGGTCAAAAGTAGGGATTTTAACGCCAAAAATAGAGATTTTTTAGGTCAAAAGTAGGGATTTTAAAGCAAAAAAAAAAATTTTTCGGCCAAAACAGTGGTTTTTAAGGAAAATTTAATTTTTCCGTTTATGACACCTAAAATTGGGGTGAAATTTTTTTGGATAATCTAAAATTGCAATTGTTAATTATTCCAAGATTTTTTTTTGCATTAAACGTTATTGTAAATACATTGAAAATCACTTGATCCGAAAATTTCATTTTTTTCAGAGAAATATGGTGTTTTAATAAAAGATGTGTTAAAAAACCTAGTGCATAGATATATAGATAATTTTGTACTTGAAATTTGCAATTTTTAACTTCCGACCCGAGTAAACAGAATTTAAATCCAATTTTAGGTGAACGGAAAAATCCCAATTTGCGTCTTGGCCTTAAAAAATCCAAATTTTTCGGCCTAAAACTCCTTTTGGCCTAAATCACCCTATTTTTACCCTAAAAAAGTCCCTTGTTTTTCCATCCCCAGGAACACGTAGATGAACACGTGTTAGGCGTGAAGAGGTTAAGACCATTAGCCATGTACAATACTGGAGTATAGAAGGGCTAGAAGTAGCAGCAGCATGGGGTGCTCCAAGAGCACAACCTCAACAGATGTATAAAGTGGTTTTTGAGTAGATTTGTGGTTTGCACTCGGTGGAAAATCTGAAATTTGAATTTTTTAAAGCCTCGTATTTTTGTGCTGAAAAATGTACATATGAAAACCGAAATTTCACCACCCTTTAAGTACGGGAAATCTCCGGGGAAAAGTGGAGCTCAAAAATTGCATAAAAATGGAGATTTTAAAGCTAAAAATAGCTATTTTAACAAGATTTTTTGCAGGGGAGACCACATTTCTCTGTGAAATTGTTCGAAAATGTGGCCGCTGCGAATGATTTGAACTCGATCAGGTTTTTCTTGGAAAATCTAGAAAATTTTGCTGAAATTGGCTCAGAAATGTCCTAAATAGTAGAATTTTTCATTACATTATAACCCTCTCAAAATAATATTAAGTAAAAACAATCAACATTTTTTCACAGATCTACACCGCCTCAACCTCTTTCGAAATGACCGAAGACGTCCTAATGCCGTTGGCTCGTCTCCTCTCGTAAAGATCTCCCCCACGAGATCACGGAATATCGAGCTTCCACAGCGACTTATGATTTGTGCTCGCCGCATTTACAGGTATATTTTTGGGTAATTGATAATTCGCCAAAAAGAACAGCAGCCGAAAACTCAAATTTTTCACGATATTTGCCGAAAAACTAGATTTGTAAAGTAAAAAGAATGCAAGAATTTTTAGCTTAAAAATCTCAATTTTGAACGATTTTTAAAGCAATTTCAGTATGAAAAATCTATTTTTTGGGTAAAAATTTGGTGAAAACGCGTTAAAACCTGCATTTTTAAATTCGCCAAAAATCAAGACTTTGTTTGTAGTGAATTTTACTGTAAAGAATATTGTGTACCTATTTTCTATTTTTATGCGTACTGCGCAATATATTTGAGCGCAAAATACCTCCCTTAGCGAAAACTACTCTTCAATGACTACTGTAGCGCTTGTGTCGATTTACGGGATCGATTTATAGAATATCACAATTAGAAATAAATGTGACTGCGAAAACAAAAATTTACTTCAAATATTGAGTCCGTAAACCGACACTACAGTAGCAATCTAAAGATTTACTGTAGTGTTCGCTACGAGAGGACTATTTTGCGCCTCAAATTAATGTGTTGCGCAGGATGCATTCCCATCTTGTTCTCTACATTACCACCACGTCTCACAGAGAGGGAATTAGTTGTTTATTAGTACGTGGGGGGGGGGGGGCTTTAAAGCTTTCTACTTCTTCTTTCTTTCCGCTTTCTGACGTACAACCATCTGGTATTCCTGGCGGTGGGGCAATTGAAAATGAGAACAAAACATCGATGGAGGGAGAAGAGAGCTTAGAAATTGTGATCTAAGAATCCGCGCGGAAGGAGGACGTCAAATATCACAAGCGACGGAAGTTCAGCCAGAAGCAATAAAGGCCTAATTAATGATGATGAACAACCTCCCTGAAAGAGAATAGCGAAAATGTGAAGTTTTTATCCCATCTCAAGGAGCGATTTTTTAGTGATCATGGAGGAAGTGTGCACATAGTCTACGTGCCAGAGGCCCTATGCCTGCCTTATGCCTACTCACATGCTCACCCAGCCAAACTCTCATCAGAGTTCTACATTGTAGAATTTACAACACTGGAGTTTTATCCTGCCGTAACGTGGAAAATAGGCACCCTACGAATACGTGCCTGATCAACATGGATGCCATATAGTCCAGGCTGTATATTCGTAAAACAGGGGGCTATTTTTTAGGCTCATGGGTTTTTGTCGGAGAAAATCGAACATTGAGAAAACCAGAAATTTTTCAAATTTTCGTATATCCACGAATGCTATCGTTTCACCCGATTATCGAATCTCCACGTCGCTCTGTAATTTTAAGTTTAGTTAGTCCATTCGCCCAAGAAACTCCAAAGTTACAAATGCTTAGTTGTAAGCATTTTCAAGAAACCAAGAATTGCAGTTCCTGGCATGTTTTGGCGCATTCAATAATGCCGCTAATAATAATAATAGCATTATGCCTCCTATTATGATGTCGCGTTGTCATCGTTTGCTTCATGCTGCTCCGACATATAGCAGCTTTATGGGGGTTTTCTCCCTCCGCATCAAACGAAGTTCCTCTCTTCAAAATGATGATGGATATACATATATCTATGTTTATAGAAGGATTGAACCCCACACTTTACATATGAATAGATGGGGACCTTGTTACCTTGACTACATTCGGGAAGAGATTGAAGGTTCCAAAGACGGCTGGCTGTGGCTCACTAGGCTAAATGATGCGTGATATTATTCGCTACGGCACGCCTCTATGATCCAGGTATAGCAGTCTCAACAAGAGTCACAGCCAACAATACTCCGCTCCGACTGTTTTGCGGCCAACTCCCAGAATTTCTATTTGAAATTCTAACTGGGTGTTGCAGATGGGTCGAGGAAATAAGATAGCAATAATAATTGTTACGTGGCAATTGTAATCCGTCAGATATCGTCTCGAGACATGTTGACTCAAGAATGTGAAAATGGACAAATTTGGAAAATAGGTAGCGGAAAATTTTCGCAAGGTTTGAAAATTTCGGTGAGCATGATACGATACGAACTTTCCTCTTGATTTTCGCAGCCCGACAAGCCGTACGCGTACGCAATTTGTCTACCGTATACCTGGACGTTCAGGCTCGTCTATCTCGAGATGGTCCAGGCAAGATTTTTGTGGGGCATATAAAAAAGGTCAGAAAATAAAGTCTAATATTTTTTGGGCCCTAGCTTGTTTCGTTATCACGCGCCCAAACCTGATCTACACTCAAATTATCAGTCGAACGCATTTGCATGGATGTACCACTTGGCTTCCGGGTCGTGAAGAATTTTGAATGGAAAATTCGTCTCACGTCACTCTAGTGAAACTCCGCTTCTATATGCTTAACTCATCAAATTGAATTCATTTTCGGATAAGGCAGTTGAAAACAGTTGTGTGTGTGTGAGTGAGCTCATCCTTCATAAAATGAATAGAGATAGAACACTGACACTCTCTCAAAGTCAAGAGGAATTAATAAATATGAGAGCTCATTAGTTGCTCTTCTCGTGACTACTAATTAGGAGGGTGGTGTACATGAAACAGTGTATGTGAAAAGGGTTCCCCGCCGCCGCCGGCCAATGTCCTTGGGTATATGGCATATCCGACGTGGTGTTTCTCGTTTTGAAGAGAGTATTAGGATGCAACGTATCAAGGAGAGACATAGTTCAAAGATTGGAGGATTTGAGATATATTAGGTGTCGAAATAAATAAGCAGGAAATAAACCTAGAAAACGATCTACTTAAATAGCAGTAGTTATTTGAGTTCTTACTGTAGTCTGTCTTCGCTAAGAGATATCGCGCGAATAAACTGCTCTACGTACGCATCTTCTCATGATTTATCCCGTAATATAAACATGGCAAACATTTTTAAAAATATCCTCAATGCTATATTGAAATTCAAATTAGTACAAAGAAAGCAATTTTTCGATTTTTTTAACGAGAAAACTAAGTTTTCATCGCTCAAAAAAAATATGTAGATTTTGATGAAAATAATATGACAATTTATTTAAACCTATATATTTTTTTCTCATGTCCAAAACCACTTTACGAAAAAAATTTTTTTTTAAATAAAATTATTGGATTTTACGTCAACTTTACTAGAGATAAATTCCGAAAAATTAACAATAAATATAGGAGAAAACAATCCGACATTAACGAAATTGTTCCCGGTTCTGATTATCTCGTACCCAAATCAGCTTCCATCACTGCGAAGAGAGGAATCGGGTGTGTCGCTCAGCAGCTTCTGATCGTCGATTTGTCGAGAACTCGGCTCACCAACATCGAGTAAGGGAATATCCGGATATTTTATAATTTTGATCTTTAAAAAATTTGCTTGTGAAAATGTGAAAATCTAAAGTGAAACCAATATTGGTTTTATTCCAGCTATTTAATACCCCAGTTAGAATACTTTGAGATTTTTCCGGTGAAAAATTGAAAATTCGAAAATTTAGATCTCAATTCAGGCAATAATCCTACGTGGCATCCCGCAATCCGGCAAATTTCGGTGGCTTACAACTCGTCGCAGAGCTCGATTTATCGCTGGCAACTCCATTTCCACACCAACTCGATGCTGAAGCCAATCGAATCGTCGACTTGACGTCACCCTACTTCCAGGCATGTTGTACACGTGAATTTGGCTGGAAACACGCTGAAAAGGGTGCCGGATGCGGTAGCCGAGCTGGCGTTGTGGCGTTAAATGCGTCGAGAAATGAGATTGAAGCCGGAAATCACAATCGTCGGTTTTTTAGTGGGTTTTCAGATTTTGTTTTGGAAATTTGAAATTCTGAACAAATTCAATTTTTACAGACAATTTTGCGTGAATTATTGATCATATTTGTTTTAAAAGAATCGAAAAATTTAAAACAAATCAAATCTCGCTTTTCATTGGAGAATACATGACAAAAGTATTTTGTTTCGAAAAAGAAAAATAGCCAAAATTTAATGCTATTTTTTTGAAAAACTTCGATCTTAATTCTCTTTTTGAAAAACTACTGAATAATTTCATCAAATTTGTTTTATTTTGATAAGATAATCACGTGAAAAAATGAAAACAGCAAAATTGAAAATCAGACAAAAGAATAATCAGATTTATGCAATTTGGCCTGAATTTTCAAAAAAAAAACTGGATTTTGGAAAATTTCATCAAATTCTGTGTATTTTCGTGCAAAAAAAGATAGCTATGAATGTCCAATTTTCGACCTTATTGAGAAAAATTCGTAAAAAATTGTAGAAGAACGTTTCAAAATCTCGATTTTCTTCTGACAATAATTCTCAAAATCTTCATATTTTTCCAGCCAGAACTCGAAATGCTCGACGCCTTACGACAAATTGTACAGTCTGCCCAATTGCTTCAAAAATGCGATACACGCATTGGGCTCACCTCCATTTGGAGCACAATTCGATTGAGAAGGTGACTGGTGGATTGCTGGCGTGCGACTAATTTTCCTACAGACGGTTCGTAGACTTGTTTTTTTTTTTTTTCGTTTTTTGAAAAAAAACACGGTGAAAAATAATAAAAGCGAGCCCAAAACATTTTTGTTTAAAAAATATGAAAAATTGTTCAAATTCATAGGTCCTCCTTCAATATTTTCAACAAAAAAAATATTCTAGAGCTTCCATGGAGGCAGCCGCGGTTTCAGGGCCGACGCCGACCTTTCGCCTCTTTTTTGCATTTTTACGGGAATTTTCAAATTTCAAATTTTCCCCATTTCTATCAAATTATTGAAAATCAAATTAAAAACGCGAATCGGCATTGAGGCGAGAGGCACGCAGAGGTTATTGCCTTAGGGTCAGACAGGCAAGCTTTTTAACGCCTAACGTAATTTTAAAACCTGAAACATAGAACTTCCCCACGTTTGATTCCTCTGAATTTACTGCACCTCTTCATAAACAATGTATTTAGATCAGTGTAAGTTTTAAAGCTGCTCTGCAGTGCCCAAATTAAGGACTTTGCTTTTTTAGACCAAACTTAGTCCTAAATAACCGAATTTCGTAATGAGACTTTCTGAAAATTTCTCGAAAAAAAGTTATGGCGGTTCAAAGTTCAGGAAAATAAGGTAAATTTTCAGCTAAAATCAAAATTTTTAAAATTTTTTATTTATCACTTTTTGATAAATATTGTGGTCTTTGATTAGGCGGGGCACCACTAAAAGTTACATTTGCCCCACTGACCATGAATGTATTTAAATCAGGACGAAAACGCCTAATTAAAGACAAATATTTATTAAGAAGTGATAAATATAAAATTTAAAAATTTTGATCTTAGCAGAAAATGGGCTTTTTTTTCTCAAACTTTGAACCGCCATATCTTTTTTTTTGAGAGATGTTCATTACGAAATTCGGTAGTTTTGGACCAATTTTGTGGAAAAAAGCAAAGTCTCAAACATTCGGTACTCCACCTTTAAAGATTCTATACTGTAATTTTTTTTTATTTTCCAATCAGTGCAACTCCAATACTCTACTTATTCGATTCAATAAACTCGAGGCACAGTGTTTTGAATAGGCGATCGCGTGTCAGGTTTTAACCAAAATAGTCATGATGACCTTTTGTTCACCTTACAGAATCTTCTCAGGTTCATGCACACACAGGTGTCATTTACTCTTTCAAGTGTATATGTGTTATCCCGGAGTATCTAAGATAAACGGTAGTTAGACCACCCTTGTGGTGCGCGTAAGTTGTTCGTATAATTGTAGGGGTGGGGATCTTACCACATTTATACGGCCCCCCTCCTATTGTATTGTATTGCTGCCACCAGTCGTCTTAGAGAATCTCTTTGATTACGGGGTGACAGAATCATACTTTTTGGAATGTGTAATAGGTGGGTCTCGAATGGATATTGAGCACTAACAGCTGTGAAGGGATCCGATGGTCTTTCTAGGGTAACTTTCCACTATGCAGTCAATATTATTAATCTTACAAGGAAAGGGTTTTAGTTTAATACTTTTAAGACATGTGTGATTTGAAAGTGTTCCATAAGTGTATGTCACTCTAAAATTTCAGGCGGCATAAGCTCTAGTCTCAAACCCTCTAGCATCTATCTGAAAACGTTTCAGTGCGTTTTTCACTACTTTGAGGCAAGTAGAATATCTCCAAAATGTTTTTTTTGCAAATCTTCAATGATTTTAGAACGTTTAAAAGAAGGAAAACAATCTGGGAAAATTTTGGAAAATTTTTAATTTTTTGAAAAAAATCTGAAATTTCTTGGACCTGGTGGCGTGAAGAAATTTTCAGATTTTATTCAAAACTTAAAAACTTTCCAAAAATCTCCCAGATTGTTTTCCTACTTATAAATGTTCTGAAAAACATTGAAGTTTTGCATGTTAGTAGGGAGCGATTTGGTAATCGTGTTTAAATTACGTTACACATAGATAATAATCAATTGAAATATACAATTCTTAATTCCATATAACCTGAAATTGAGATTAGATACCTTATACAACAAATAGAATGTCGAAAGTTGTCTTCAGCAGACCCCCATTTGTGAAAAATGCCTTCTAAATTTTATTTTACACTTCTCCTAGTAGATGAACAGCACCTGCCAATCATTTCCTTGACAGCCGGATGGTTGCTCCTCTAAGACAGTATAATCCGGTCTCCCCCGGGGGGATGTAGGGTGTTGTTGCAAATAGCTTTGCGGAGCAGGTGCTTTTTTAATGGATTTAGCTTATTGGTGACGGAAAAACCCTAGAATTGATACAATTTGGTTTTCAAGGGGATTTGGGGAAGGGTTTAGAGGGGAACTGAAACTTAGTAGATCTTCGTCTGTCGTGGAGATCAGAAGATTGGAAGTACTGGGTTTAAGGGGGTCAAGGAGTACTGTAGCGCATTTCGACTACTGTACTTTAGATAGTTTTGTTATTATATCAATCGGATAATATATAATCAAGTTGCACCAAAATTGGAGACATTCTAGTAGGCATTTTCTTTATGCTAGGTATGTATAAGTTTCTACTAAGTGTATAAACCTACTATGTACCTAGGGGGAGTAGAGTTTGTGGGTATTTGTTTGCTTAAGTGCAATAGACTATAAAACGTGTCCAAAACCACCGAATTTCAAACTGAGATAGAACTTCACAAAAAATTTCCAAAATTTTTTTTATGGAAAAAAGAGCAAAATTTAACTAAAATCCGACATTTGGCACAGTTTTCTTTGTTGTAGCACAGCCGCGGGATTTGAATTTCTCGGAAATTACTTTAATCCTACATAATAATTTATCTCGAAATTCGTTGATTGAGACAACTTTTAGGCCGATAGGCATCCCATCTTGATCAGGATGCCTATCGGCCTAAAAGTTTTTTAATTGCAGAAAAACTAAAATCCAGCTGTACTGTGACAAAGGAAAGTGTGCGAAATCCAGATTTTAGCAAAATTTGACTCTTTTTGTTCGAAATTTTGAGTCGCCATAAAAATTTTTGCAAATTTTTTGTGAAGTCTCATTATTAAATTCGGGGGTTTTGTACTAGTTTTCTAGTCTGTTTAAGCTAAAAATACCCACAAACTATTACACTTTACTTTAACACACAATAATTCACTAGCATGGTGTAGTATCATGCCGGAATTAATATAGGATTGATTGAAGAGCGAAATTTTAAATAGATTATTGCAGACTATCTAACACTATTTGTATAAACTAAATTAACATAGTGTATTGAATAATGACTTTATTGAAATTAATACAGTTCTTTTGATATCCCCATCTTCTATGAGTATCCAATACTAATATGTCATATGAATTTCACTTTAATTGTTATTTCCCATGCGTCGTGTTTATACAAATGCTTTATATACTCGAATAGTCTAAAATCCAATTAAACTCGAGCCAATACAGAATATAGAATGTAACAACACTTGTGTTAATATTCTAATATACATGCACACACACACCCACACACCGGTTTTACACCAGTTCTACTAATATTTGCACAATACCATTGAGATAGCTGAAGTTCCATAGATATGCACGGGTTCGTTTCCGGCACTGCCACGGAAAATATTGAAAATGTGCGGTTTACGAAAAACAACAGAAAAAGCGATTTTCCAGAGAAATACGAAAAAAAAGAAAATATTTAGAAAATTAACAACAAACAAAAAAATTTTTTTTTATTAAAGAATAAAATGTAGGAGTTCACTTCTTTTTTTCCCCTTTCGGTTAAACTAGGGCTTCGATGGTAGGCAGGCGCGCATTTCAGGCAGGCCTGCCTGAAACCTGCGCTACGCCGGCCTCAGGTCGCCTTAAGACGGCTCCTAACAAAAATTTGAAAAAAAAATTTCAAAAATTGAATTTCCGCGCTTTTCGAATTTCTAGAACGCTTTTTTTTAATTAAAAAAAAATTTCAGTTGGACCTTTCATCGAATCAACTTCGAGTTTTTCGAGACGAAGTACGAGAATTCAAAAAATGGAAAGAGACTTGCTGTTCCAACCACTCTTTGGAGCTCCTCGAGCCGTCGGGCCTTGAGCTTGAAATTGGGTAATCTAAATTTATACGAATTTTGCAAATTCTAAAAATCCTAATTTTTTCTAGAATCCCTTGATCTGAGTCAATAAGCTAGAACTGCCCTGCCGCAATTGGGAAAGTCTAGCAGCTGAAAAAAGTGGATTTGAGCCATAACTAGAATTGCGAAGGTTTATCAATTTGTGCTCAATAATATTAAGCAATCGCAAGCATACTGTTGATTTGTCGAATATCAGTTGCAAAGTGTGAGTTTTTTGTTGATAAAAATTATTTGAATTTTTTCTTTTTTTTTAATTATTAATTCTGAGTTAAAATTCATCGTAAGTTCCGAAAATTTCTAGAGTTGAAATTTAAATTTTTATCCAGAATTTAGTCGATTATAAAAACGGAAAAAATAGGGATTGTCGATTAAAAAAATTAATTTATTTTAAAAGCACACAGTTTCGATAAAAATTTAATTAAAATAAAAGTTCCTTGCTAAAAAACTATTTCCTCAATTTTTTTTCTGAAATTTCACTCTTTCATTTTTTAATTCTTTTTTGTCTATAAATACGAAAAACACGAATTTTCGATAAAAACGCATTTTTCAAGTTTTTAAAATAATTTTAACTTGGAATTGTTCTTTAAAAAATTGTTTTTTATCAAATTCCAAACACATTAATGCATTTTTTAAAAAATAATTTCTTTAAATCTTCCAAAATCGGTTGTAATTTTAGCGAAAATAACTATTTCTTTCAGTTTTTATTTAAAAAATCCCTCGAAATTTGAATTTATCCAGAATTTAGTCAATGCAAAAAAATATACGAATTTTCGATTAAAAAAATTAATTTATTTAAAAAACACTCTCGAAAAAAAAATTTTCAATAAAGAAACTAGTTCTTATAATTTTTTTTTTCAGATTCACTTTTTCATTGGCCTTTTTAATTCAAATTTGAAGTAATCTGCAATTTACTCTATAAATACGAAAAAAATACAAATTTTCGGCAAATGAAAAAACACTTCAAATTAATAAAAATAAAAAACATATACTAAAATTTTAAAAAATAATTTCTTGCAATTTTCCAAAACCTCGAAGGTTTTAATCGCAAATAACGATTTTTTCAGTTTTTATTCTTTTAAAATTCCCTTGGAATTTGAATTTCTCCAAATTTTTTCTTGAAGTTTTTAAAATTTCCATCATTTTCTATTGGAACTTTCAAAAAATGTTCCTATGGCAAAAATCTTTTCCGCTAATTTCTACGTAAAAATTCTGCCAAAAAACAATGACAGTTCATGTTTTTTTGTTAAATAAATAATTTTCTTGTTTCTATGGAATTCGATCTTTTTTGAGTTTTACCCCAATAAAATGTATATTTAATCTAAAAATATATCCCAAAATTCCAGATCGGCACTACATCTTCTCTGACTGTTCTGAACTTCATTCCCTGGACGTGTCGAATAATGAGATTTCACTGCTGTACAAGCTTTTGCGAGCAACAAAGCTGAGGAAAATTTCGATGAAAATGAATAAAATTAGTGAGTTGAAGCACGAAAAACTGCAATTAATATTTTGAAATTTTTGTGTTTAGAAACGAAAATCGAGATAATGTAGGCTTAAAGTTGCTCAAAATCCGCAGATTTTTTGAAATCGATTCTGAAAAGTGCACAGGGAGCTAAATCAGACTTCAAAATTTTCAAATTAATTGCATATTCACTCGAAACCCTCTGAAAACTGCCTTCAACTTCCTATATTAAATCAAATTTTCTTTCAGATCCCTCGACAAAGGTCTCGCACAGAAGCTTCCGGCCTCCACGTCTCGACGTAACTCATAACGAGATCCTCGTGCTGAAATGGTCGGCATTACCTGAAAACCTGGAGATTCTCAACGCTGATAACAATGATATCAATCCCATGACCGCCGTCCATGTTCCCAAGCACCGCAAACCTGAAGTCCGTTTCGCTTTCCAACAACGGCATCACCATAATGACTGCGGACCAGATTCCGAATTCGCCGAGTCGCTGGACGTGTCGAATAATCGACTTGCAAAGCTCGGAAGACAGCGTTGGCCGCGACAGTTGAGAAGGCTCAACTTGAAGGGCAATCTGCTTACCGTAGTGGCCTCCGAGTCGATAAAAGTCGTAGAGGCTGTGCATCCGTTGAAAGTGGAAGTCTCGGAGAATCCTCTGATCTGTGATTGTCAGATAGGATGGATGATTGGTGCGAAGCCAAGGGTCCTCATTCAGGACTGATCTCTGAAACCGCAAGCTGTTCCCATATATGGCCGGTGAGGCATCAGATACAGATTCAAAGTCTCAGCAAGAAGGATCTACTGTGCCCATACAAAAGTGTATGTGAGCCGAAATGTATCTGCTGTCAATACGGAAATTGCGATTGCAAATCCGTATGTCCCGGAGCCAATTACCGATGCTTCAGAGATCAGTTTATCAACATTGTCAGATGCCAAACATCAATGGTGCCCAAAAGAGAATTCGTGGTCTCCGCGCCCCCGGTCTCTGCGACAGAGATCATTCTGAGCGGAGTCACCCTTCCACAGCTCCGAACTCACAGCCTCATCGGAAGACTTCGTCACCAGAGGCTTCATATCAATGGAACCGGGCTCCGATCCATCCAAAAGGTTCCATACTCTTCCAGCACTGAAGACGCTGGATTGGCAGTGTCGGATAACTCTTTGATCTCGCTAGAGCGAGGGGGAATTTCTAGTGGAGAAGTCTCGCACTTTCAATGGAAATCGATTTCTATCCCGTGGAATCGTCGAGAAGGTTCCGAACTTGAAATATCTGGCACTTCATAACAACTCCCTCCGAAGACATCCCTAAACAGGTGCTTCACTCGACGGCGCTCTCCAAGATCTCCCTGTCATCGAACCCCTTGACATGCGACTGCTCGGGAGGATCCCAACAACACCTTCAACATCGTCGTGACCCATGAAAGCTAATCCATTCTGGTAGCATAATGCGGCCTAATTGAGTGGTTCTCGTTGCATCGGCATTTCGTTGATTTCTCCAAGGTTGAATGCTCGGAGAACGCCGCGTGACGAACTGGGCTTCCTGACGAACGATACGCCAGTGCTGAGCGCCTATCCACCTAATATGGGAAATGACGTCTTTGTGATGCCTATTGAAGGTTGGTTTATTGAAATTTTTAAAAAAACGCGCGTCAAATTAAATATTTTAAAGTCTTTGTTCGAAAAATAACCATTTTACAATATGTAGGATATATCTATAACAGCTTCTGTACAAACGTAATCCAGATGTTAATTTTTTTAAAAATGCGGTAAATATTATATTGATTACATATTATTATTACACCGGTGTATTTTGTTCCACTACTACGACTTTTAAGGGGGGCGCATTTACGCGCGATGGTCCCAGCATTAGTCTCGCCACGCACCCCAAAAATCAATGGGTGGCCCGGACACCATCGCGCGTAAATGCGCCCCGCTTTGATAGTCGTAGCAGTGGAAAAAAATTCACTTGTATAATTATTAGTCAAATGATACTTGCATTATGATATTAGAAATTAAAAAATTGGGTTTGAACATTTTTTTTCCTCAATTTTTTTACGGTATTTCACCATGTATGCGTTATAAATACAAATATGATCCCTACCTTTTTATAACTTTAAAATAACTTTGTAAAAAGGAATATAATACATGCACAAGCACCATAAAATTTCGACGTTTGCATTTTCTGGTCCGAATTTAGTTCAATACGTTTACTTTATATATCACATATACAAAACAATATACTGAGAATGCGTATTGCGCATTATATTGGACGCGCAAAATATCTCGGAGAAAACATACAGTAGTCCTATAAATTCCTACTGTACTGCTTGTGTCGATAGAATATTAAAATTGCAAAAAAAATTTAAAAATCGGCGAAAAAAAACCAAAGTATAAGGGAATATATTCAAGCTATTCCAAAACTTTAAATCAATTTCAAAAATCGAGCCCAAGAGAAGGACTTACTGTAGTTCTCCTACGATTTTGCGCGTCAAACATGTTGTGAAATACGCATTCTGAAGATGTAGTGTACTCGTAATATATATTTTAACAATTCAAACATTTCCAGAATTCCTGCGCGACTACAACTCAACACTTTGTGTTTTCTCATCTGGATTCTTTGGACAAGACCCTCAGAATAGTATACTCTTTGTCATAATAACTAGATTGCTGTTCTCCTCTGCGCCCTCGTTATTCTCGCAATTTTATTCGAAAATCTCACGACGCAATCAATCAACGAAGATAAAAAGCATCATCTCTAAATTGTGCAACATCTGCCGGCTCGTCGCCTCTTCCGGTTCCGCTGTTGAGTTAGCACTCATCTTTGTGAGCTATTCGAAGAAGGACGAGAAAAGGGTGATTCATCAATTGTGTCGACCGCTGGAAGATGACGATTATCAGTTGTGCCCGTTGCATCGGGATGTGCCGACTTGTTGCTCGAATTTACGCGATATCTGATGAACTCATAGCTCAGACGGACTCGTCGCTTGATTCTTGTGTTGACTCAACATTGGAAGTGGAAAACGCTGCAGATTAAAGACTTAACAAATTCAAACTTTCAGTTTAAAATTGCTACGTATTCGTAAAAATGATGTTAAAATTCCGAGAATGCGTGTTACGCAAAATATCTTGTAGCAAAAGCCACTGTAATTATTTTATATGACTACCGTTCAAAATTACTATCCAAATATTTGATTTTTTGGCATGTTTTAAAAAATTATTTACGATGGAATTTACTCAAATATTGAAAACAATATTATCGAAATTCCCGAAAATTTGGTGGAAATTGAAAATTTCAATTTTTTCGCTAATTTTCGAGAAAAAAAAAATTAAAATTTGGATTATCTGAAATAAAGTTCCCAAACATTAAATTAAAAATTTGTTTTTTAAACGTTGGATTTTCCAATCTCGAACCCTCAAAAATTGAGTTTTTTTGAAATTTTTTTTCGGACAAAGTAAAAAATGCTCGCAAATATCGACAAAAAGTGGAAGTATTTTTTTAAGTTGTAAAATTGTTGGAGATTTTTGCAATAAGATATAAAAAATCTGAATTTCCATTCAAATCTTGAACATCAAAATCAGCAAAAAAAATTGCTATATATTCATTCAAATTAAGATCTAAAAAGAGTAATTCGCTATTTCAAATTTTCAAAAAAAAAATAAATTTTAAGTTTTAATTTTTGAACACTATCAAAAAATTTGTTTTTAAACCTAAAACTGATAATTCCGAATTCTCTGTAAAATCTCAAAACAAACATTCCTAGCCAAATTTAATCGAATATGATTTAATAATACTAATTTTAAATCATATTCAATTACATTTCTAGGAATTATTTTTGCTAGTTAAAAGTGTATGAAAAATTAACACTTTTTGAAAGAAAAACTGTTCTTATAGGATTTATAACACCGGAAATTCACTAATAACACTCCACATTTTTCCAGACCTCCCACCAACTCTTCCGCCAAAAACCGTGCAAAACGAGGTGATCGCCGTGCTCGGCGACGGTGTGGACGCGAATCTGCTGGACGACGAGCTCGGACAGAATCTACGGAAGCACACGAGAATCTAGATGCGGAGCCATTTACGGTTTATGCACACTTTAGCACGCATCACTTCCATCACGACTTCGATTGCGCACATATCTCGAATAGTGGCGATGATTCGTCTCAACTATGTTCGGATTGGAATTGTGCCCGAGTGTTGTTTAGCTTACAGTTTTCCCGTTTAGGTCACAGAGTATTTTTTATCCTCTTCCAAATGTACGAGCTTCCATTATTCACTTTCTTTTTCACCCCCAATTCTGCTGTGCACAATTTGCCATTTTTTGAATTTTTACAACAATACCGGTACTATTTTTCGATTTTCTTTCTTTTTCTCGCATGAATCTTGCCATCACTTCTCTAATAATTGACCAGCGATTATATTTTTGATTTAACATAATAATTGAATATTCTCGTTTTTCAGTTCAAATTATTGCTTTCTGTGTCACCACAAATTCAAATTCTCGTCCTAACCTCGTGTGATCTTCAGTAATATATATAGATTAATAATCGTCGTTTCTTATTGTTGTCATTTGCGGATGCTTATGAAGCTTGTAATTTTTTGTTTTGTTTTTTTGCCTGTTTCAGCTGCAAACTAAAATTCGGTAGAAATTCTTGAAAACACGCAAAAAATGAATAAAAGAAATAGTATATTAGCTTTCGAGAGGAGTTCACAAGCGGGTGGCACATCTCCGCGGCCGCCCAGTGGTGTACTCGTCTCGGGTGAAAGAATTACTTTATAATCTGTTTTTCGGCCTATTTTTAGTTTTTCGCAACTAAATGAGTAAATTATCTCTTAAATAATGTCGAAATTAATTTAATTTACACTTCCAATAAAATTCCTCTCATTAAATTACCCCTTTCTAATGACTTTGCTCTCAAAAATTTTTCATCGATTTTCAATTCTCAAAATTCTTGAATCTTCAGCGAAGCTGGAATTCAGCAATCAGAAGAGGGAAATATCTGTCAAGAACAAGGTGGCGGGTGACAGTAAAAAAAGCGCAACGCATGAAGGCAGACGCTAAAAATACAAAAGACGGTGAGGATGTTCAGATCGCAAGGCGTTAGGAGGGGGCTTGGTGAGAGTCAGAGGACGTATCGTCGCTCTTCAGGGGAAAAAAAAAAGGAAACGGCGAAATTCTTGATTTTGATTTGTTTTTTCAGAAAAAATTGGCCTCCGGAGGGTGCAACACCTGCCAAAAAGTGAACGGAAGATTAACCGCAAGACAGAGCTTCCGTTCGAGAGAAGTAGGATTTTGTCGATCACTCCAAACAAAAATTGTTTTTTTCAATTTCAGCAAAACTGGACGCTCCGACTGGAAAACGCGGCTGACGTGCACCACTGCCCAATACATCACAAAAAAGAAGGCAAAGAAGATGTACAAGAAGAGGACACACGACGCACGCGACAAATATCGAAAAATGGCGGCACTGGCCGGAGACGGTGAAGATGACGAGGAGAGTGAGGCCGAGGTGATGGAGCAGGATTTTGGATTTTTCCGCGGCATTTTTAAATTGTTTTTTTTCCTTTGTTGATTTTGTTACTGTTTTTCAGTTTCGACATAAAATAATCGAAAATTTATTTATCACAAAAACTTTTGCAATTTGCTTAGCTGAGTGAGCCAACTGTTTGCCACGTGTCACGATTCGATGCATCCATCCTTTGGGCGCCTCGAGCTCCGCTTTCGGAGCCTGTTGTAAGCTCCTTTAGAATTATTGTCCAGACCTTAGAAATGTTCATCGAGTACCGGAAACTTCGACGAACTTGCACTTGTGTACTTTCAAGCAGGCTCCTGCCGGATTAAAATCAATTTAAAAATCGATCATTTGAATTTCCACGTGGCGCGACGCGGCACGCGTTGCATTGTTTTTTCAAATTTGGTTGAAAAACATGGTGCATCGAAGAATTTTCTTTGACGATTTTATACGCAGAATCACATTTGACGAACAAAAATTCAAAATACTTTACTTTGCAAACGCGCTCCATTGATAAACTTATGAAAAATCGATAATGCTCAGATTTCACCAACGAGAATTTTCCTCCATTTGAAATTATAGTTAAACAAAATTAATATAACCAAACATTACGCAGTTCCGGTAAAAATTTCGATAGCTTTAATGCAAGTGCGCTCAATTCTGAACAAAACCCACCCATCCTTTCGACACCACCGTATTCCGACAATTTCAAATCGATTTTATTCGCAGGCCAATCAGTATAATATTGGCTCCGCGAGCAATTTTTCGATACAAAAGCCGACTGAGCAGGTCTGTGGCACACACGAATAATTCTCGACTTGTCAACGTTGACACTATTGCGTACATTGTCAGTGATGACGCGAATGGAGAATGCTGAAAAAAAACAAGAGTTTAAAGGGTGAGCTCTCGCACCACGATCCATGTTTTTTTGTGGGAATAGTGGAAATTTGGAGTTAGTGAAAAAATCAAATTTGTGCAATTTTTAATAAATTCGGCAAATGCGCTAGAACATCAGATTTCACGAGCAAATTTCATTTTGTGAGATTAAGATATGGGCATTTGAACTGATTTTTTAATGGTATACACACGAAAAAAAATACATAAAGTCGATTGCGAAAAATTTTAGGTTTCACCCTCGGCATTGAAAGCGCAGTAGTAGGAGTGGCGATAGGGCGCCCTGCTAAATTTTCTATTTTTATGGTGTTTCCTTTCGTTTTGTGCTAATGAAGAGTTAAGAATCTGACGCGACAAACGTAATCGTGTCAACGCTAAGACAAACGAATAATTGTATTTCTCAACGGTAAAAAGATTCACTCCTGCGCCAAGGTGCCAGCAAGTGCGCCCCAGCCCAATTCGACACTATGGGAATAAACTGTGGGTTTAAAAACTTAGAGAAGTCGTTTTTGTTCAAGATATCAGCCTAAGATATTAAACACAAGCGCGTGGTCGTCAAGGTGTCCCGTTAATTCGCTTTGATGTACCAAAAATGCGGGATTTTAGACGCAGACTTCTCAGCATTCGTATTGTTAAGAGTGTGGCTGACGTCCCAATCATTGCATTTTTCTGCAACAAATTCCCGCAATTTTTGTCGATCAAGCAACACCAAAATGGAACTGTTTGACAGCACGTGCACAAGCAGATCACAAGTGGGATTCTCTTCGAGTTATCCTCCCCAAATCCTGTCCAGTACAGCGACCTCCAACGTGGCTTGCAACATTTCCAACTCGATTTGCTCGTTATTCAACAGGAGATTCATTCGATGAAGTGTCATCTCCCTCATTTGACTCATTATTGTATTGGGTGACGAGCCGGGTGGAAAATTGGTTAATTGTTGACATGCTTTCTTCCCGCTACCTTGATCCATAGACACGTAGAACCACATGTTGCATTGGAACATTCGACGTTTCTTGGCGAATAGCAAGACTGGACACGTGCTCGGCGATCTCATTCTTAAAAGTTTTAAATTGTAACAAAAATTTGGTTCAAAATTTCAAAGGAAAATCAATAATAAAGCTACTCCAAAGTTTTCAGCCTGATGGGTTGGAGAGATGAGCAAGTCCTACAGCGCTTCAAGAATTCTAGGCCACGGTCAGAGTGGTGGCCGTGATCCTCGTACTTATTTCTTTTAGATTTTTTAAATGGGAAACTCGAATTTATGTGAAACACCTAGAACATTCCAAGAAAAATTCAAAAAAACTCTCTAAGGAGGACATCGATAACCCTCCCCCAATTCGAGATGTGACGTCATCAAGGGGAGCCCGTGACCTCGCTTCAAATTTCAATTTTTCAACGAAAAGTGTGAGATTAGATGTAAAATTACTAGGAAATTAGAAGAAAGAGTAGAAAAGAAATTTCGGGGGTGTCGCTCACCACCCCCACCCCCCATTTTTCTAGTGTGACATAGAAAGTGGATCGGCCCCGCTACCTTCCATTGGGTTCAAGTTAGTTTTTTTAATTTTCCGATGATTGTATTACTGTAGTCACTGTAATTATGCGAAACAACTGGTTGTCCAGTGGAGCACGTGTGCTTAATTGTCCGTCACAATTCCATTCTTAATTCCAAAACTTCGAAGACTTCCCTCCGGTTGCCGTTTATCGACGTGTCTTCGATGTTGTTTTGGTGCATATGTAGATTGGTATTCCTGGAATATTAAGGGGAAAATGGAGAAAAAATTCTGAATTGTACAGGTAATCGAGAAAAAAAGTTAAGACTCCATTTTTTTCAACTAAATTTTTTTTTCAAAATTTCAAAAAAAAAATTTTATTTGGAAGAACTTTTTTATAATGTTCAGGATTTTCTAAAATTACCTTTATCTCTCAAAACTTGCTCAACTGAGTTTTAGATTTCTGAAATTTTCCGCGTGAAGTACGAACACTCCCAATATATCGAAGGACAGGCGCATTTGCGAACTAATCTTATTTAAAAATTTCACAAATTTATTTTTTTTATTAACCTAATATTTCCGTTTATCGTATTTTCTAAATTAAATAAAAAAATTGTCCAGGAGGAGTACATGGCCAATTTATCCGAAGAGCTCATATGCACACTTCCTGTTCAAAAACAAAAAAAAAACTTATTCACCTTGGCGGTGGGTACCTCTTTTTTACACGACGAGGCGAGTTTTCCGAGCTGAAAAATGATCCTTTTGGCTGGGCAGTTTTAGAATTGTGGGGAAGTTATAGGCATTTCCGGTGAAAAAAATTGTTTTTTATTGGAATAGTTTTTAATATTCTAGGCCATGTCCTAAAGACTTGAGTCAAGATCTGAATTAAATTTTTGAGGTACGAGCTTCCAGTTCCCTCCACAATTCCCCCTATGGCCTAGAATTTCAGAAAGCTCTACCATCGATTCAAACTGTTACCCGTTACTTTTGCACAGGTTACGGGTTCCGGACGCCCAGCCAAACTTCCGCCCGTGGCCTTAAGAACTCCCAACTTGTTCCACCGACCTGGACGTGTTGCTCGTACTGGCAACTCATCAACATCTGGCAGTAATTCAACCGTTGGGGACACGGTACGCGGGGTCGACGGTAGACTTCGGCGACTGATCGGCGATGTAGGAGGACTTCAAAAATCAATCAATAAATCAACGACACTCTGCTCGTTTTGCAAGGATCCGCCCATCCGCTTGTTGTTTACCAATTTCTTTTACAACAATTCTAATGCGCAAAATTAATAGAACTACCTTACTTATAATTTTTTTTTAACTCAAAATTTTCAAAAAAACGACACTCCGCTTGTAGAATCCGCCCACTTTCCAAAAAACAATTCGGAGTGTCGTTTGAAAAATATCCTATAATTTGAAAAACTCATTAGTCTCAAATTTTAATGAAAATTACGTGAAAATCTATAAAAACTACGCTTTTGGCTCCGCCCAAAAACGTCTTTTGGCACCGCCCGAAAACGGGACGGAGCCTAGCACTAATATTACAAGATGGTTTTTATTTCCATAAGTGATTAAAAAATCAACAAAATATTTAGAAAGTATCTCAATTATTGAATTAAATTTTATAAAATCTACGACACTCCGCTTGGAACCCCCTCCCCTGGGCTGCCAAGAATGGGGCGGAGCCTAGAACAAACGTTTTTACAAGAAAAATGTTTCTTGAAATTTTAAAGACGATTAATAAAAATCCGAGTTTTTAGAAAAAATTGGGCCAAATCGAATAATAAAAAACGTTACTCCGCTAATAAAACCAGCTCATTAACAAGATAGGGGCGGAGAGTATCCAAACGGAGCGTAGTTTGAAAAAATATTTTTTGGAAAACTAAAATGTTCCAGCGGGAAAGATTCTGCTAAAGGCAATCTAATCCAGGTTTTTTCCGGAAATTCAATTTCCTCAGGGTTCTCTCTGCAAATTTGTTCACGAAAAAACTCGTGTGTGCTGGAAATGCGCTCTATTGCTAATTTCATCCAGAGAGCGCTATTACATCAAAAATGGAGGGTTGTTGCATACCTTCTCGTTGCAGCGGGACTGGTGACGGAGGTGATAGCCGTGATGAAAATTGTTGGGGTATCGACAGCGCAGAAGGGAAACACGACGATTCGACATTTTTCTAAAAATCCATGATAAAACTTGTAAAGATAAAATAATGTAAAAGGGGAGGTGGCTAAGCGGGGACACAAATACGCGGGAAGTCCGCTTATTTTTGCTGGATTTGACGTAAAAACGAATCAAAAAACTGGCACTCGTCGCGTTTTGCAACAAGAAAAAACTAAAATTTCATATATTGGTGGCAAACACAGTTCGAAAACTGTTGAAGCTTACGTAAAGTGTGTATATTCCATATTAGAGAATAAGATTGGAAATGGAAAAATAAAATCTTGTAATTTCTACCACCGCATAACTTCTAAGTCACCTATGAAATATCTAAGCTACCGTGAAAATTCTAGGCTATCATAAAAATAAAATTTATATATGTTTGTCCTGAAACGAAGTCCACTTCCGCCAGAAATAATAAACAAAATAGACAACACAAAAAATTGAGAACTCTTAAGAACAAAAGAAATCCGACCCGAAATCGAATACCCAACGAAAATTTTCGGAATTTAGAAAGAAGAACTATGAGTTTTGGACACTTTTCACTTTCCCTTCAAAAGGAGGAACTTTGTGGCGCGGCCTAAAAAATATAAAACTCGGCCACCGATTTGTATGCGGCCACGGGACACTCCGCAGTTGCAAAGGGTAACTACAGCTGCAAATACTGTAAAACTAGGTCACCAAGTGGAAACCTTGGTCATCACGTGGAAAAAAACCTATTTGACAAAAAATTTTTGAAAATTTTATAAATCTTAATTCTAGGCCACCACCTGTCCAGGTCACCATGTGGAAGGCTAGATCAGCTAAGTGGATCGTAGACCAGCACATAGGCCTCTAGGCCACCACGCAGGAAATTAGGTCACTGGAAAGCTAGCGAGCCTCCACATGGTCAATAATAAGTCATTGTTAGTTGGAATTTCGTTTTGACCAGAGAAACTTGTTTTTACCAAAATATTTGAAAATTCAAGGCCGTCCGGTGAAATCTGTTTAACCCTAGGCCACCTAATTTCGAGAAAGTCAGGACATCTAAACTGGCACGTCACAACTAGAAAGCTAGGCCATCAAGCAAAAACCTAGAGCCCACTCTGCCAAAATAGATTCCTTAAAAGTTTGAGGGAAAAAATGTTTTTCAACAAAAATTTAATCGGCCGAGTGGACTTTAATAAATTCTACTTTTTCAGCCACATTGTGTGGCAGAGGGATATCGGAGCATCGTTTGAATTTTCTAATTTCTGAAAGAAAACCGGAACACATTGCAAGAATACGAAAAATATAACTGAAGCCGACATATGAAATGAGTTCTATGCTCCCCGCCGCGTATTCTTCTCATTTTTCTGCATATTTTTAGCTTGGCGGTGGGGTGCGAATGCTGGTATCATACTTCGTCCCCTCTTCATTCATTGCCCGTCTATGTATTAAAATTAGCGTGTATTCCTATTGGATTCTGACGGTCTCCCCGTCGTTTTTTTTTCTATGCGAAATAGAAAATACGTGGTGAACGGGAATTTTCATGAAAAAGAACGAAGAATTTGATTTCTAGGCCAACCAAAAAACATAGGCCAGAAAACGGATCTCTAGTAAAAACAACCACAATAAAGTTGAAACTAGGCCACCTACGAAAAATGGGAGATACCGCTTGTGTGTACAAGCATTTTTATAAAATTCTAGATTGTTTTAAAAACTTAATGTTTCCAGTACAAATCGATTTCCGTGAAAAACAATAAATATGTCAAACTCGTGACGTTTCGACCGTCAATAGAGCGCGTTTGCTTGTCAAACCAAACATATTCGGTGTAGATTTACGGGGTTTTCAGACAAAACAAAAAACCTTCACAAGGATCCGCGCCAAATAAGAGCTAGTAAATGGAACTAATTCCCGTTTTTTTTTTGTTGGTGAGTGTCTTGTGAGGAGGGGACCGCCCGTGTCTCTACCTAAAACATTGTTAAATTAGTGTGACGTCACCACAATTTGATAAACGACAAATATAGTTCGAGTTTTGAAGAAAAATTTTGGAATTTTTCTGGTAATAATTTGAAAAATTTCAATTTTTTATGTTTTTATCTTAAAAAATTTTTTGATATATTTTTAAATTCAATGTTTGATCGTCCTGATAACCAAATTTTCACACAAAAAATCTGGTTTTTGACGTCTAAATCTGCTTTTTTTCACCCAATTACGAGGTTCTCCGTGGGAAGGTGTGTCACTTGAGCTTTTGCTTTTTTATTTTTTTTCTGATTGAAAATGATTAAGCTAGATATACTTTCTCGTCTTTTATTAATCAGAATTGTATTGTTATTGAAGATTTTAGATTTTTACACTCCCGTGCAGCAAATGCGCTCCGATGTATGGAAATTTACAACTGGAGATTTTCAAAATGTTCATTTATAGGCTCTTTTAAAGGTTCAAGAGTCTAGTAAACTAGGAAAAGGTGAAGCTGTGACGTTATCGATGACGTCATCACAATTGTCGCTTGAAAAACTTGGAAAAACGATGTGGAAAGAGGGTGATTATTTGTGCTTCAAATAAACTTTTTGCTCTAATTAATTCATATAGTTGTGTGCTTCTTTAGATTTTAAGAGAAATTGCGAATTTTGCACCCAAAAAGCGTACTAGGCCGAGTAAGTTATGGGAAAACTCTTCCACATACCGGACACAAGACGTGGAAAACTAAAAGTTTCTGTAGTTTTTTATACCCCCGCATGGCACATCCCCGCCCCAACACTGTAAATTTTCAGGTGTTCAGGGTGAAAACATTCTTTCAGCTGCTGGGCGGCTTCTCGTGCAGCTGGAAATGTATTTCCAGACGGGTTGGAACCGGGATTTGTCATTCAACTGTTGCAATTACGCTCTACCGAGCTAAACCTCGTTAGGACTCCAGTGGACAACACGGGCCTTATTGTAAATTTCGCTTCAATGTCCACAATTTCAGAACAAACCGTCGCTTTTATTCCATAATATTATAATTTTATTTAAAGAAATCTGGAAACATTTATCGCTTTTTGTGAAAATCTATGTGAGATTATTGCCAGAAATACAAGAAAATCGATGCAAACTTGCTCTATTGCTAAATAGTTCGTGTACTATACGTCGACGACACGATTTCAAGTTTCGTTTTTTGAACAAATAAGCGTCTGTTATTATTCCAAAATTCGGTACATTCACTCAAAAAAAAACAATCATTGATAAATGTAGAAACATACATGCAACCACGGCCTCTCCGATGCAAATTTTTGATTCTCCAACTTTTGTTGTTAAGTTATCTTGAAAAAAAAAATGATACAACGAGAAGTCCTTGGTGGTATCGGGCGCCTAGAAACAGATGAAATGGAAAAACAAGTATTACGGGCGGCTCCGTCTAGGCGTATTATGGGGGGTGGGCCGCAGATGTTCCTTTAGAATAAGAAAAATGTCTAGTATTTTGTGATACTTGTGAAACATAACCCTAAACTTCACAAAAAATAAAGGGCTCAAAAATGGTATTTTACTAATGTAAGCCTACAAGCACAAAGGAAATCAATTTTTTCAATAGCTAAAAAATTAATTTTTGTGATATATAATACTTACACAAGTACCAATTTAGTTTTAAACGATAAAATATACCATAACTTTTGGGTAGGATCTGCACAGCCTCGAAAAAAACGGGATTTTCAACAAACGGAATAGTCGGACTTTTTAAAAACAACGAAAAAGTTTTGCTTGGGACCAAGTCTCATCGATTACAAAAACTGATTCTTCCAGTCAAAGATTTTATATACTCACGACTTAACAATTCTTTCGTGTTGCCTACCTAGCAAGTTCCGAATTCAGAAAAGTTGAATTTCCCTCCAACAATTTTTTACTATCATAGTCAGCCAATTTGCAATATTTCCCGCGACAAAATTTACGGATTCCCCACAATGGGTCTCCAACCAATAAAATGAATTATTCATTTATCTTCTTAGGTCACACGAGATGCCAGCGACCAAGACAGGGCAAGTGCGACCACTATCCCGAAAAAGACACCTACAGAACCTAACGAAGGCTTCCAAAATTAGCATAGAAAGAGACATTAGCAGAATATCCCACTTGATGTTCTGTCACTTTCAGCATCATTCTGCCTTTTTGTTCCCTTGTGTATGGTGACTATAATTTGATTGTGCTGAATATGATGTCTACTTGTGTTGTGGACAACTATTGATTTTTTCTGCTTTGGTTAATTTGAGGTATTACTTTTACAAATTTGTATATCATCATTTTACAAATTTCAACAGTGTTTCCTATTAATCCGCTAAACCGCAACTGAAGAATAATAAAAACTTTTCTCAAAACTGTATGGGAAAGCTCAGTGTCGGTTATGATAGTATTACAACATCGTTAATGCAAATTAGGTTTCGCAAAATTATATTCAAAAGATTTTTTAAATCGTTTATTACGGTACCAAGTAAAGTTGAGAATGCGTATTACGAGAACATATTTGACGGGCAATATCTCAGAGCAAAAACTACAGTAACTCTTAGAATGAATTCTGTAGCGTTTGTATCGATTTACGGGCTCGATTTTCGAAATAATTTATATTTGTAAAGTGAAAGCTATATTCAATTTTTCTTCGATTATTTGTTGTTTTGTTTTTGATTGTGTTTTTCTTTTATTTTAATAGTATTTGTCACTTTTCAAATAGAAATTGATAAAATGGAGCCCGTAAATGGACACATATCCAGTAGAGTCATTCAAAGAGTTACTGTAGTTTTCGCGTCATCTGAGATATTTTGCCCGTCAGATATGTTGTGCAATACAATGCGCATTCTCAACATTCCTGTTACCGTGAAAAACGAAATTTTTTGTTAAAACTATTTTTGTAAGTCGAACAAAATTCACAACTCGATAAAACTGTCCTAGTCATCAGATTAATATAATTGAAATAAATAATATGAATTAAATTAAATTTTAAATATTAAAAATGTTATTGTTGTTTTAACAAAACGTTATTGGACTTTTCAGCAAAAAAATGAAAATAAAAATCGATTATTTTTTGAATTGTTGATTTTTCGGTTTTTAAATGTTGTTGAAAAGAAACGAATTGTATATACGTCAATTAAAAAGGCCGTTTAAATTGTTTTTTAAAATGTTTTATTTTTTTCAGATAGATCAACAGGAGTGAACTTCATATACTTCAAAAAGCCAGTATGGGATGTATCTATCCAACCACTCTATCAGCCACTACTCTTAGCACTAATCACAATGTACGACCCCGTGAGAGATTGTTGTCTGTTTTTTACTAGATATCTACACGAGTGGTAGAATATAAAGAAGAGTGGTGACAAGTTTGGGATCTGAGTCCCGTAGAAAAAATCATCCCACCGAAACTCTAAACTATGAGGGACTGGTCAACTATGCATTTGACGACGTCTACCTGTTTTAAGTTATTGATGTGGTGAAGAGTGATTTGCCTTTTGAAGAAGTCGCTCGACCTCGACCTTCTTCGACCTGATTGAACTGAAAGATCCTCGGGAATCATTTTTAGAATTTAGAAGACTGTACCGACTGTGGATCTTTTTGTTTGCTCGAGACGATAGAATACAGCCCCATCCGAACAGGGGTGCGCGGCAATTGCCGTGTGGCAATAGAATATTTCGGCAATTTCGGCAATTGCGGCAACTTAGGCAATTGCCAAAATCGGAAAATTCAGAGAACCGGCAATTGCCGAAATTGCCGACTGCCGGAAATCCGAATTGGAAATATAAACTTGCTTTTTTTTTGTAGTTTTAAGAGATTGAACATGCATTTTACTAAACAATTTTCTCTTTTTAAAAATGGTATTTAATTCCTTTGAAGATTGACCGTTTTCTTTTAGAAAACTCTGACTGACAGAATATCACAAAACAATGTGACATTTTTCAATTTTCGATATACATTTTTGAAAATTGCCAACTGCCCTGCAATCGGTCGGCGATTTCGGCACTTGCCGAAATTGCCGATTGCCGGAAATTTTGAAAACCCGCAATTGCCGAAATTGCCGTGCACCCCTGATACCGAATGTATCTTAAAAAATTAATTTTTTTGTTAATTTTTTGAAAATTTTCATAAAAGTAAAGAAAGGGCCAAATTATGTTTCTTGAACTACTCGTAGTCTGTGACTTCATTTTCGGCCTTTTTCCGTTTTTCAGCAATAATGATTGGTTTTCTTTGCTCTCTAATTTTAAACATATTTCTTCACAAATGTCTCAAAATAACTTCAGTTCAAAGTAATAAAAATAAAATAAAGAGAAAAACATAAAGAAAAACCAGTGAGTTTTTTCAAAAATAATTCAAAAATAATTCGGTCCTTATTTTTTTTTTTTTGCAAAAAAAAACAAAACAAACTGCCCTATAAAAATTTTCCAAAAAAAAATTGGAAGGTTATTTTAATTTCAGCGGTCTATTTTTGGAAGTTGTCGAACTAATCGATCAAAACATTTTTTCATTTGTTTAAGTGTTATTATGCTTGAGATATTCAAATTCCAACATACCAGGCGTGATTCAAAATCATCGCTTTTTGGACATAAAACCGTAAAACCCAAAATTTATGAAAAGTTTTATTATGATAGAGTCATTCAATAATATTCCTAGTACTTTCACTAAATAATCAAACAATTTTTGTTGAATGGCTAGTTTCAAAATCGGCGGCTTACATAAAACATGCACAACAATAAGAAAAATAGGTATGACTTCGATCTTCAAAAATATTAAAAACAATATTTTTAATTTTACAGTGTTAGCAGTTCGACGAATCAATGCAGCTGAAGTACACTTATACAATCAAATCACGCTTTTTATATTAATTTTTAAATCAATTGAACCCATAAAAATTACAATTCCTCAAACCACGTTGATCCTAAACGACTGCATTAAGAAAAGGGAAAACATAGGGCTTCCCAAAATGACTGCCTCCCGCCTTGTGGCGACATGCTCCTGCCTCGTCCAGGCCGCCTCTCCAGTCAGTGCAGTGCAGAAATTTTTCAAAATCAAAAACATGGAAAATTAGAGAAGGATTTTAGGCCTCGGAAATCAATTTTAAGTCCTCTAGCTACAAAATGAACCGTTTTAGAGGAGTTTCAAAATTGTGAATTTTTAACAATTACCCAATTTTGCCACTTTTGAATAGGTTTTTGATGGTTAAACCTAGATCTTCTGGATAATTCCGCATATATGAATTACCGTATTTCCTAGATTAGTTTTGCATACAAGACTAATTTTCAATTGGTCTGTAGGGGTACAAGACTAATAGAGACTGCACATTTAGACTATTAGAGGCTAACTGCAAGACTAATTTTTGAATGCTATAGAGCAACGTGACCAATTTTTGATTGTAAACTCACCTTGATATCGTTTAAACAAAAATACATCCTATTGCAATATTTAATCAATTATTTGAACGCTTTTAATCAAAAACTCGAGTTCAATTTGCCCAAAATGGGTCCAATTTATTAACGTTGCAGCGATCTATGCAAGATATTGCTGGACTGGAAAAAATGGTCGGGTGCAAGACTTTTAGAGACTGCAATACTAATAGAGGCTGCAAGACTAATTTTCGATTTGCCCGTAGGGGTACAAGGGCCCATAATAGGGATGGAATACTATTAGAGGAAATACGTTACCTGTTTTTGACATAATTAGACAACATTTTATTTTTGATAAATTTTTTAGGGCTCCATCATTACTTCCTTTTTTTTTGGACAATAAAAATAAATTTTCTGCTTAAAAGCGTTTGAAACCACTATATTTTGCAAAAGGACAATTTTTTAGGATTGGAGATCAATTTTATGTCCTCTAGCTACAAAATTAACAATTTAGCGGAGGAGTTTCAAAATTGTGAGTTTTTACAAAAAATTGCCCAATTTCGCCACGTTTTTTATTTTGGTGGGTTATAGATTTTTTAAATTCAGCATATATGAATTACCCGTTTTCAACCTTAAAGTTAGACCATTCCTTGATTTTTGCCCAATCTTTTTTTCAGCCATCTTATGGCTGTTCTTTTTTTGGGCAAAAAAAGTACAATAAATTTTTCAGCAAACGTACAAAACCATTAGAAATTGAAAAAAAGCAATTTTTTAGGGTTCCCCGATATCAATTTTGGGTCCTCTAACTTCAAAAATGATATTTTCCAATAGAAGAGTTTCAAAATTGTTTTTGTGCCATAAATTGCACCCCATTGTTGCCACTTTTAATGGCCACTTTTTGGTGAGGCATTCCTAGATTTCCTGAATTCTGCATATATGAATTACCGTGTGTATTTCGACAAATTAAGACAACTTTTTAATTTAAAAAATTAAAAAGGATTAAAGGACGATCCGTTCTTCAATGCTATGCACTGCGGATCTGGGATTCAGGTACACTGCCTGGTGGTGATCCCTCTGGGCTGTAATTTAAGCCACGTTCTCCTATCCGCGGACTGTGGCCGATAATCTAGTCGTGGATTGGTCCACTTCCCAATAGAGGCCGTTAGGGTGAACCTAGGGAGTGAGGCCGGACTTTTATCTCGTGGCCCCCAGAATGCTTGCGGCCACCACTACCCTGAACTGCTATCTGCCGCCCTTGGGGAAATAATTTTTTTTTTTTTTGGGCAAATAAATAATTTTTTTATTGGAAATGGTACAATTTAAACCAACTACTATATATTAAAAAATATTATCCAATTATTCCAAAAATTCCAAATAATCCAAATATTCCAAATTCCAAATATTCCAACTGAATATTCCAAATTTATTCCAAATAATTTTATGAAAAAGGCCCTTTTGTTAGGGCTGGGAAGTTTGAATTTGGTTACAACTATTGCCCAATTTTGCCGCTTTTTAAACTGTGGTTTTTGATAGGTTAAACCTAGATTTTCTCCTGGGAATTCTGCATGTATAACTTACTTGTTTTCAACTATCTAAACTAGTTCAGACTACATTATTTTTGTTTTTTCAAATTTTTTCAGCCAAATTAAGGACTTTTTTGGGCAACTCTTTTTTTTTTTGACGGGGATCAAAAAAAAATTAAATTAAATTGCCCAAGCTTTTTAACAATAGTTTTTGGTCCCGGAAACCTAGCCTAGTGTGGCCCGGAAAATCGAAAAATCGAAAACGATAATTTTTTGAAAATTTTTAAAATGAAAAAAAACAGACTCAATTTTCTTCCAAAATAAAAAAGTGGGAAACATTTTGAATATCTTTCGAATAAAAAACATAACTTTTCAAAAAATTTTGATTTTCCCACAAAAAAGTGAAATAAGAAGCAGGTTACTGTAGCTGGGATAAAGCTTCAAAGGGTGCGTACCAGGACCTGAATTAAACCGCCGCCCGAGTAAATTTCATCGACATATTTAATGTACCATCAATCACCTGATCCTCCTCTTCCTCCTTCTTTCAACCATTACACCACACAGAGTTCCTTTTATGAAGGTCTCAATTCCCCTTCATAACATTCTTTGTAATTAATGCACCAACAAGCTATGCGAACAGCACTTAGACACCCCCCTCCTACACGCTCTTTGGAGCTCCCCCGTTCAACTCTAATGGACCTGGTAATCCCTTGCGCCGTGGGATTTTTCGGGTCTGGCCGTGTTTTTTATCCGATTTACTTCCCGGAATACCGGAAATGGCGATCGATATTGCAGACAAAGCAAACTTTTTATTTTCAAAAATCCGCCCACTTTTTTTAAAAGTGATTCAATCATTTTTTCTAAAGTTTTTTTTTTTGAAAGCCCGCGCTGGCTTCCCAAATATTTTGGAATGTAAGAGATTGCCGAGTTAGCATTTGGACTCGGCCACGGCCGGGGGCGATTCACGTCGGCTCGGTTTCTGTAGAAAACTAAATGTATTTGTCCGTATGGAGTACAAAAGCTTTGCCAGGCGTTATCCGGCAGGCGATAGAAGCCGCGACGCAACACGCAACTCGCCCTAAGTCTACCCCGGCCGTGGCTGAGTTATGCCTACTCGGCAAACTCTTGCATTTGAAAATAGGAGCGAAGCCGAAGCAGGTGAACATGGCGATGTCTGGCTTCCCTCATAAATTGAAAAGGAATAGAGTTTACCGAACTAGGCCATTTTGGCTCTGGCCATATCTGGGGGAGATTTACTACCGGCGCGTTGCGTGCCCCGTCGCGAATCAGCTCGTTTTTAGTTGTAAAACTGAATGTATTTGTACGTGTGGAGCACACGACTTACCCACGCGTTGTCCGCTAAAATGTTAATGGAGCGCGAAAAATTCAATGAGGAAGGCCAAGAACCCCGTGTGTGATTTTTGCAACTACAGCCCAGAATTAGAACGGGATTAATACAAATTTAGTTTGAAATTCGGATTTCGCAATTGAAAATGTTGACCACGAAATTAAAATTTCGAAAACCCGAATCTCATCTAAATTAAATTCCAAAGTTTTCATTCAAATTTCAATGAGTTCTCTATTGAGCCGAGTTCCCGCGCACGGGAGGTAATGGACCCCTCTTGTAAGTTTAGGGGTACAACGACCCCCCACCACCCCATATGCACAATACAGAACTCTCAAGACCCGCCAACCCTAGGCCCCTCATCCAAAACATATCCGAATATACCCTCTACTGTACTTTATTTACTTGCTCCGTTTTCCCGGGTACCAGGGTACTCCCTAAACTAAGTGAATTTCAAAGGTGGTGGCCTAGAAAAAGCTCTTCCACTGGTTGTGGAAAGAAATGATGATTCGAGGTACTTGTTGATGCCTTTTATTGCTTATGGTAGGGTTTTTTTGCCACGTCGTGTCCGGGCAAATTTTTAAAACTATTTTTCTATTTTTTAAAGGCCCAAAACTTTGTTTTTTTTAATGGTATCGTTTTTTCGAGAAAAAAATTACACAAAACGGGGGTTTTAGGTTTAGGCTAAGGCGTAGGCTTAGGTTTAGGCCTAGGCTTAGGCTTAGGATAAGGCTTAGGCCTAGGCGCAGGCTTAGGCATAGGCGTAGGCTATAGGTTTAGGCTAAAGCGTAGGCTTAGGTTTAGGCCTAGACTTAGGCGGCTAAGGCTTGGGCTTAGGCGTAGGCTTAGGCGTAGGCGTAGGCTTCGGCCTAGGTGTAGACTTCGGCTCAAACATAAGCTCAGGGGCTAAAAAAGGAGAAACGCCCACAAATTCAATCCTGAAAATTTTTTTAAATCTTAAAATAGTCAATTTTCAGTGGAAATCACAGTGAGCATTTTGAAAATCCAATAATTTTCAGTATTGCTATAAATATTTTCGTTCGGATTGGACAATGAAATAATCGGTGAACCAAAGCTACAATGCAATCCGGAAAGTATTACATTCTATTCTCCTTCAACACACGGAATCCGTGTATGTTAGTCTTGGGGTCTCGACACGAATTCTTCCCGCAAAATTAGTTTTCCGACATACTGAGTACCCCGCAAGTAGAGCGCTTATCAATAAATTATAAATAATCAATAGAGCGCACTTGCCCCAATTTCAAAATTTTCAGAGGACTTTTAACGTATATATGGCTTTTACAGAACACCCGGCTGTCGTCGGCAATTCCTCGCACCGAATCAGGCTGGAGGCTCATTTGGTAGGCTCGGTGATTGCGGGATGCGGCGATCCAATCAGGGGAGATTCGCCACATGGCGTCAATCAGCACTTCACTTTTAATATTGCGAACTTTCGAATCTGGCGAGAGGAACGTTCATTCAATATTCGATGCTTTTATGCACAGTGGATTGGCTGTTGTCAAAGCTGATCTGGATGTCAGGTAGGGAGGCAATCGATAAATTCCCCGAAAATTGATACATTTTCCAAAAATCAATAGATACCCAAAAAATCAAACAATTCCCAGGAAACTGGAAGAAAAATCTCAGAAAATCAATAATGTATTTGTTTTGCAGCGCAATGCCGGAAGAATCGTTCGAACGTGACAATCGTAGTATGCCCCAATGCACATATTCCCTTCGTGAAGGGACATTTGAGGGCCCAAAAGTGTCGAATACACGTGTGGGAATGACAATTGTTCATCCATGGGACTGTGATACATCGGGGAACTATGAAATACTGCTACGTGGAATGGACACCATACTCGATTCACGTGGTGTTATTATGAATCTTTTCCATTGCTTGATGAGAATGGGTAAGAGTAGGGAAGTATCGGCCGGCTACGAAAAGAAAAATATATCACTAGAGCAGGATTTCTAAGCATTTTTCTCAATAGAGCGCGCTTGGTCAAATCCCTTAAATAAAATTATGGTGCATCGAAACGGGTTTACGTACGCTTCTGATAGAGCTGTAGTACTCGAGGAAGCTGAAAAAAATAATGAAGAAAGTGAAAAAAAACAAAAGTGTGAATACAGTCGCAGCCTTCTCAGATAAATTTCAAAAAACTGTGGATGGTCGTAAATGGCGCGTGAAAAGTTTTTTGAAAATGGCCCTCGAGGACATTTCAAAAAAGAGCGATTTTCGCAAAGCCCCCTTCTTCGATGTTTGCTTTAGAAAAACAATGCAATTTTGTTTATTTCGCAACAAAATTTTTGAAAAATGAGTTAAATTTGCAACTGCTAAGAGCGCGATTGCACACACACAGACACACCCATCAAACGTCAGAGACCCCACTGATTTTGTAGATTAAGGTTGAGAGAGAACATGGAAAACGTCACGAACTTTGTTCCGTCAATTCCCGTTGGGTTGGCGCTTGATCATCAGAATGCAATGAAAGTCTAAAATTAAGCCGTTTCGCTAAAACGTAGCGAATCTCATTCCACCGAGTCTATTTTCGTGAGGCGGGTCTCCAATTTTTCAAGTCTTTGCTCGTTATGGTGCATCGAAGGGTAATTCAAAATTTCACATAATTGTTAGACACTTTCCGACCAGTTCCAAATTTTTTATGGTGCATCGAAAGAATTTTGCGTAATTTTGCAATAGAGCGCGGCCTATTACTACTCACCTCTAAATTTCTGCAAACTCTTCCAGAAGGTTTCCCGTGACTTCCCACAAGTGGTATACCTCCCATCACTGACGTCAGCCACATGGCAATCGAAGCCATCTCATTTCCTGACCAACCATCGATTTCTTTCTCGTGCCAAATTAAGTTGTCTGAGGGTTAGGGAAGTATGAGTTTCGGGGTATGAGTCCCCCCGCGTGTACCCCATTACACATGTCCCCATCACGGGACAAGTACCAATGCCACTTGATAATACAATTGGAAATACGTTAGGTGAGTTATTTACGGCCGAGAAAACCTGCAAGAATAAAAGTTCAGCCACCTTTTTGGCGGATTTTTGCGCAACTGTATGTCGCACAAGACTTTACGTCAGAAGCAGTGGGCGTGTCCGCCTGCAGGCCCCGATGTTTTAGATGTAAAAAATTAGATGTTTTAGATGTAAAAAATTGAAGTTTGACAAAAAAAAATTCGGCCACCGATTTTTTTTGCTTTCATGTTTTGTCCATGCATTTCCAATTTTTTTCGTGAAACGTTTTTGTCAGAATTGTGCCGGCGTGTCTTGTAAAGTCCCGCCCAATTTGTGGGCTTGTTTCGACCAAAAATACTGTTTTGTTTCACAAAAACAGAGCCAGATATAAGCATTTTGAAAAAAACATCCCTGTCCTCTCCTTTCTCCATTCTAAAATTTGAATTAGATCGTAAAAAACCCCCGGTCTTCAATTCCAGTGAAGAATTTGGCGGCAGAGCGTGTTTGCTTGTCACAGTTTTTTTGTCGACACTGAGCAAACTTCAACTCTGCTTCCAGCTAGAAATCCTTTACAAGCAAATTCAAATTTTCAGACGGAATCCCAAGCGACTGGAGCCGTGGATCAAAGAGCCCTGCTCCTCCCACTGATGACGTGGCAAACATCACCTCAGAAGGCAGAGTGCCTCGGCATCGTCATCACCGAAGAAGAACAAAATGACGAGTCGAACCATGTTGAGGCGCGAAAAAAATCGATTTGCTCATCGATTATTCAATATCACATCGGAAGATCTCTATGTGTCAGTGAGCCAACCGTCGAGCCAATGGAAGTAGAGATGCCTGGAGCACCGAGAGAAACTGGTCGGAGGGTGTCTGAGCCATGTGTCTCGGTTGAAACTTTCGATATTCGGCCCTTGCTGTACTTTTCGTTTTTGTCGTTTCGTTTGGACGGTCTGTTTCTTCGGAAGTCATATGCTTAAAAATTTTTTATTGATTTTTTTTCCTCCCACAGGGTTCTCACCTTCCTCATGCGGTTGATTTTTTTGCGCTCCATTGACACTCGCTTGTCGGAAAGAAGCACGCATGGGAAGGTTGTGTACACGGACAATGCGTATACATTTTACAATTTCTAAAATCGAGCCGCGCCGCAACACGCAACCCGCAAACCCAGCTAGCCGAGTCTAAATGGCCTAGTTCGGCAAGCTCTTTCAGTTCAATATGAGGGAAGCAAGAAATCCATTTGCCACCACAAGATTTTTGCGTGGCCGTCGCAGTTTTCTAGTTTCTCGGCCACGTTGTCAAAAATTATTTTAAATCGTACTGGGAAGACTAAATTAGATATCTCTCCTGCAGATTGTGATTCGCGGAAAAATTCCATGAATGTTTCTCCCAGTCATTTTTTTTTTGTAAATCCAACAAATCAAATGAGCGCCAAAACCTCACAAATCTCATACTCCAAAATTTGCGGAATTCCTCTTTATTTCTTAAGGCCTCCTCTTTGGAAAATTTAAAAAACTCGTATAAAAACTTTTTCTTCCGTTGCAGCATACGCACAGAAAGTCTTTAAAGTCTGAAAATAAAGTCCCAAAATCCCACTCTCATTCCACCGAGAGGTCATTTTCCGTGAGGTCTCTTTCTTGGGTCGCGACGCGAAAATACTGTAATTTTATTAATCTTTTCAGAACTCAAGACTGTGAAATGCCGATTCCAGCCAGAAGGATATTAGCTAAGCGAACAGTGAAACTCTTGTTTAAAAGTATTCTGTTTCCCATCCACGTGCCATAATTCTTGCATTTTTTTTTTCCCTATTTTGATTCAATTTATTTACAATTTGTTCAATTGCCTAAATAATCAGTAAATAATAATTTAACATTAACACAAGGCGTCACATTTTCGTATCACGCGTGGAATGTAACGGTGCCGTTAGTGTCAATGGTTCCGGCTGAAAATTAGTTATAATTGGAGCGCATTTGCATTTTTCTCGAAAAATAGATGTTTTCGTGTGATCCAGAATGATTTATCGATTTTTCTTAACTTAGTGGCCGAGAAAATGGAATCGAAACGGGCTCAGACCTCGACTTTTATTTACCTGGAACGAAAATTTAAAGTATGATCAACGCGCTAAAGCCTCAATTATGCAAAACGCTTTAAAAACGGGTTTTGGAATTTCCTCGAGACCACTGGTGACGTCACTCCTTTTCAATTTATTATTCTAACGTTGTTTTCTAGGCCACTGATGTCGATATTTTTCCACTGGTTTCTAGATCGCCTGCGATGTCATTTCTCTTCCATACCCTGCTCTAGCGGGTTTCTAGGCCGCTGAAGTAATTATTTTTCTTCCAAAAATAAATCTAGGCCATTAATGACGTTATCTCTAGTTCTTTTCCTTAGGATTCCCTCAGGTTCCTCATATTTCAGATCCATACTCGCCACGTTCATCTCATGAACTTTTTCCACGCTTTTTCACTGCTCGTACTCTTCTCATCTACTGTATCCGGCACCACAACGTCGGAGCAGCAGCTTGCTCATCAATATGCTGATGTCTCCTGGCGGACGTGGTGTATCTGGTGCAGTTTCATAGTGATTTTGCTGCTTCTCCATGAGATTCTGTATTAAACTGGCTGAGGGAGGATTACCACGAACGGTGGCATCGGAGGCGGCAGAGGAGCCATAGATACGGGAGTCTGAGAAGCCATCATGGAGTTGGGGGTAATTCCTTTGTTCGTTGGGAAATCTGTGGTGACATTTGTGGGGCCATAGGGGACGGGGACATTTGGAATACCATCGGAAGCATTGGCGGTGGTGGGGATGCCGGAGCCATTCGTATCATTGGAGCCATCACGTAAGATGGTGGAGATGGTGGGAGACTGGAAGGATTTTTTTTTTGAGTTTTTTTCGTAACACGGGCGTCTGTCCTTCCTCATTGCACTTTTCGCGCTCCGATGATAACTGCCGGACGACGCGTGGAAAAGTGGTGTACTCCCCACGGAATACAAATACATTTAGTTTTCAACTGAAAACCGAGCCGTGACACACGCTATCCATAAATGGTGTCCTAATTTCTGTTTTTTAATCTTGAGTTAAAAGTTTAATAATTATTTCTACAGAATGGCTGGGAATGTGACGACCCACGTGGAACCGAGAATTCTCCTGCGTGGACTCTTAGACAATTCAAAAAAATATTGGTGGTTTTGATAATAAAGGATTTATACGGATAAAAATCTATTATAAAAGCCGTGAAAAAATCATCATCAACCACTGCCTAAAAGATTGAAATTATGATGGCCGAGACTTCTCAAGTGTGGCCTAGGTAAAAAATCTTAAGGCCTTTGAAAATTTGCTCATTTCGAAAATTAAAAAAAACAACTCAATTGATAGGTTGTTTAAAATTAAAAATTAGTTGGTCTTTTTTTCTCAATTTATGCAAAATCAAAAATTATAATCAATTTTTAATCCAGAATTCGTCAAGTGGCCTAGAATTCGACTGCTCGGGTGGCCTAAAATTCCCCCAAAATTTAAAATTATTGATGCTGGCCAAAAAGTTGAATAGTGCCCGAGGTTGTTCGTATTTCACTTTTCTCAGGCGGCCTACGGAAAAAAACTCGGCCACCAATAGTTTTTCCTAGGCCTCAAATGCCCTAATTGTATGTTAATTACAGTATTTTCTAGACAAGATTTATTTCCTTAAAAAAACTCGCGAATAGCACATGGAGCTCTGACTCTTGCTCCCACCAATACAAAATTCCGAATTTTTTAGAAAAAACCGCAAAACTATAAGAATTTGTGGTAGAAATTGGGGCATTTACGTAATAACAATAATAATGTCCGCAAATTTTTTTTCATAAATTTCATAGTCCAGGACGAGGTAAGCCTAGAATCCATTCAATTTTATTGGGCCGCCGATCTTCGGAACACTTTTACAATTTATACAGTATACAACTTTTACCTGCAACTTAATAATATCATCAATACTTCCAGAATATTCTTCTTTTTCCTCTGGCTCAATTGCCACGTCATCATCTTGTAATCTGGTCCATTTTGCTGGCGAGGCGTCGGCAAACAGCATTTAGTATTTACGGAGCAAGATCTTTCAAGGCCCGCATGCGACAGGAACAATTACGCCAGTCTGTGAATCTGAAAAAAATAATCTTGTCTTTTAGGTGACCCTGCCTGCCAAAGTCTGCCTTGCAAGGGACCTTTGACCTACTTGACGTACCTTCAAGTGAGACCTATGCTGGTTTGCCTGCATTTGGGTTTTGTCAGTGCCTTCTAGGCCAATGCCTACCTTTCAAACTATGTAGGTCAACTGTTTTTAAGGTAGCCTGGGTCAGCGGTCACTATGCTATCTACGTCTACAATGCTACCCCGTGCCTATCTACCTGCTTTTAATGCTATCTGCCTTTTCAGCCTGATAGTTTAGGGACAATCTACGCCGGTCCAGCTCACATAGGTTATCTAAATGCCTATCGGGTTTCCTTCCTGCCTGGGCATCCAAAGTGACCTAGGCTTCGTGTTTTTTGTTCTAGATCTCACCGTATATACCTACTTACATGCCTGCCTTTAAGTTTACCTATGCCTGCCTGCATTCCTCGTGGTGCCATGAATGCCCTAAAAACTCACGTATCATAAGTAACAATCATATTGACGAACAACGGTTCGATGAGTTAATATCGTGCAAGCCCAGATCATGATCGGGTGAAGAGAAATCGTTGGCCTAAAAATTTACTCGGCCACCCCCTTACCTGCTGCATTGCGAAATAAGCGTACTGCTGGGAGTGCAACGTGGCACACTTATTGAATCCCGCCGTATTGCCCCATCACACTTTCGGCGAAAATTTGGAATGATGGAAGAGAATAGGATAACCAGGCCATGGATGTATGTGCGCTATGTTGATAATCGGTTATTTTCAACGTGGATTATCAATTGAGCGCAGTTGTCCCACTGGAAGAGTTTTCCTATCTAGGCCACCACCACCACCCACTCACCATTATAATAATAGCCAGCAAGTGTTGTTCATGTGGAATAAATGCTATAACGATGAAAAACACGGCGGCCACGGCCAGAGCTATTGTGTTGAAAATTTTAGTTTGCAGAGTTTCTGATGAACATCTGGAATATTGATTTTTGGTGGCCGTAGAGAGTAAAAACTCGGCGACTGAGTATTTTTCACATTTCAAGTATAAAATTATTCCAAGAAAAATCTGCTCCCGATAAACTCACTTAATATAATCACTAATAATTCCCGTAGCCATGAAAATTTCGTAAAAAATAGAAACATAATGGTAAGGCGGCCAAAAAACAGCACGAAAGTACGTCATAGTTCAAATAATTTTTCATATATTGCGGATTGAATTGGGATACCAATTGACCTGTTAAATCTCCAGACGTGCGATCCAACAAGGCCACAGGCTTAAACTTGTCAGAATATGACGGAAATACATGGAAGATTTTTCCTGGCCGGCATACCTGCCGAAAAAGTAACGGGCTGCGAATTTGCCCCCTCATGTTTTCAAATGGAAGAGGGTGGCCGTGAATAAAGGTAACCTCTACCGGACCTGGGTCGCGACTCGCGACAATCGGGAAAATTTTCTCAAAGAAATTTCGTACTCTCGCTACTTTTAGTTTTCCTGTTTATGGCATCCCCCGGGTCGAGGTACGCTTTTTTCACGGCCACCTCCTCTTTCCATAGTTTGAAAACATGGGAAATTCGAAGCCCGTGAAAAGTTAGGCCCAATGCGATGTGGTGGCCGAGGTTTTGAAAATTCGGTTACTCTCATGTAATAAATCTTGAAGTCGAAGCAAATTTGCGTACATCAAACCCATTTACCTCGTTAGCAGTTTTAGAAAAATTTGGGATTTTCTCATACTAATGAGGGAACGTCATAATTGTCGACACATTGCGTACCCCGAGGAACCAACTAATTCAGTCCTAGGTTTAGGCATATGGTAAGGCATAGGCTTAGGCGTAGACGCCTAGGCTTAGGCTTAGGCTTAGACGGGGTGTCAGAGTGCCTTATTTCGGCTTCATCTACGTACATCTACAAGAAGGGAGAAGAGACGCAGAGTTTTCTACTGATTTCGCAGACTTGGTTAAGAGTGTGCTGACGTCACATTTTTTGGGGCAAAAATTCCCGCATTTTTGATAGACCAAACCGTAATAGCACGGCCAGGCATGCGCTTAGCCTTGAGTCCGTAGTCCTTCGGGCGCGTTTTTCTCAAAAATGATACGTTACCATTTCAGGTTTTTCCGCTCCAAAATCTAGTTATAATAATTTGTGTGCCCGTGTAGAGCGCGTTTGCACTGACTTTCTTTCCCTCGATTTCCCTTATCGAATCCTCTCCAATTCCTTCTCGCAACCCCAACTGTGCTCACTCGGCGGTAAGGACTTGAAAAATCCCAGGAAAAAAAAAAGTGACCAACGATACCCCGGCGTTAGTAAACCGACGTCCATCCACCAGACGAAGAGCGTAATCCCGGAACTGTGTAAATATATTTGAAAGTTGATTTACGGTTAATAGTCCAATGAATACTTCGTGCTCGTATGGAGTCGCCCAATTATCCCTGCTGTAAGCCCATCGAGCCAGCGAGGGGATATGTGGCTGAAAATGCCATTCCTTGATAAATACGCGGCCACAAAATCCGAAGCCAATGGTACTTGCCAACGGGATAAGGGCTGTTGAATACTGGAAAAATTGCGTGCAATACATCATATTTGACGGGCAATTTTAGAAAATTTAAAAAAACGCGCTCTAATGATGCTTGGTGTACTCCTCTCGGACAATAAATGTCAATAATTTTCGAAAATTCGATAATTTTTGTTTAATTTCAGAAAAATGAAATCTGTTTTAGCATATTTTGAGCGCGTAAAATATGATTCTTAAATACTTAATTCAGTATTTTACGCAGGCGTGGTATCCGAGTGTCACCTCTCTAGGCTTGATCCTTGGTACGTAGATCTACAAAAAATGCGGGAGAAGAGCAGACGCAGAGTTCTCAACTGATTTCGTATGAGTTAAGCAAGTGCTGACGCATTCACATATTTTCGGCCAAATAATTCCCGCATTGTAGATTCAAACCGTTATGGGACAGCCTGACACCACGTGCTTACTCGGACTTTTTCACAATTTTGTGCTTCATGCACCATTTGTTTTTGTTTCGAAAAATCAGATTATTTAGCGGGCAAATGCAACGCCCACTGTGCAATACACCATATTTGACGATCAATTTCAAAAATTTTGTATGCTTTCGTGCTTTTCGGGGTACTGTAGCTTTGAAAATACGCATGCACTGGATCTGACGGCAAAATGCACAGTTTTTATAAAATTAGTCTAGACTAGAAATTAGTCAGTTTTCACGAAACAATGAATAAAAACTACAGAAAACTCGGCCACCGATATTTTTTTTTTTCGCGGCCACGATTGACGTCATACCTCATAATTCCGCCGACAAACCTCTGGAAACAGGATTATGCGGCAAATGTTGAAAAGAAATGGAAAAAATGGAATCGAGGCGGCAAGACTATAGCCACACACGATTGAAGAAAATTCGACTCTGATGGTTGGGATCGGAATTCACTGAAACAACTATTTTGGCTGGGCCGCCAGAGAAGACTCGGCCAACGAATTAAAAAAAAAACCTTTTGAAGTTGAAGTACTATTATCATCTTGCATACAAATTAAAATTATAAGTTCATATTTGAAAGAATCGAGGTCAAACACAGTGTGGCACATATTAAAATCTGCAAGAAAATCGTGAAAATTCAATTTTCCGGGTTTTGAGTTCAAAAACCAGAAATCGGACAGGAACCGGCGCGTTGACCATGGTGCATCAGCAACCGGAATTTTAAATAAGTAAAAAAATTTACGATGCTCTGATAACCAAAAGTGCAGTGATCCATTTAAGGGAAATACTGCTGGTGGATTAAACGTTGACACTGTTAACTTGATAGTTTTAATTTGATCAATGCTTGGTACTTGTTTTTTGCAGGAATCTTTGAAAATTGCCAAAACTATAATACAGTCTGAAAATTGATGATAATCTAAAACTTTAAATTCCGTTAATTATCATTATTTTTACGAAATTTTAATATAATCTCCTTAAAATTTAATTTTCTAGGCAGCGGTCTGTGAGCTTAAATTTTCGATTATCCCTCGCCAAATTAAAGAGCAGACTTTTAAGCTTATAAGCTTATTTCAGTGAGAGGAGAGCATTGTGCAAGAAGAGAAACGCAGACTAGGCTTGCGCGTTTCTCGTGCTCTGACGCGAGTCTCGATTTCCGTGGCTTGCGCATTTCTCGTGCGCGCGACGTTCATTTTTTTCCGATTTTTTTTCAGTTTTGCTGAACTTTTCTTTAATTCGTGATTTTTCATTTATTTTTCACCTCTTGTTGCTCGAAAATAAAACTGATTTTTCACACAAAATATTCGACTTTTCAGGTTCCGGCAACATGGGAGTCTTGTACTGAAAAACTCGGAATTAAGCAAAGTGGGACTCGTCGCCGGCGCAGGGCGTCAAACTGTCAATCGATAACGATATTTGGTCGACTAACAATGTTAAAGTATTAGTTTGTTTCCGTTTTTCCACGAAAATTTTCATTGTCAGGGCAGCGAACTGTATCAAAAGCTTCAAAAGTATTCCCGGCACCGTCGTCTTTCCGGAGCAGCTTTTATCGATTTTTTGTCTGAAAATGCAATTTTTTTCTAATTTTCAGCTCCCTGAAACACTCGAAGATGTGCAGCTGAAGGCCGGTGGAAAGTGGAAAAGTGCTGTTGACTCGGTAGGCTGCATTTTTGATACAAGAGGAAACGGAAAAATTTGCGAAAGGTGGAAAAAAGTCCTAAAATGGAGATTTGGCGCCGAACGTCATTCAAGAAATTCCATAACTTTCAAAAATCTATCTGAAAAATTGAAAAATATAAGACCATTTTCAGTCATTTTTAGTAAGTTTCAGCTAAACGTCGAAGAAAGTGCCTAAAACTAGGAAAAATATGAGAAAAAGACACAAATTTTGGAGAAAATTCCTGAAAAATGCAAAACACTTTTTTTCAAAAGCAAGTAATTTCAAAAAAAATCCCAAAAATTAATGCAAGTACGCTCCATCGCCCTTTTTTCCAATTTCTGACTCGAAAAGTCAAACTTCTGGTTTTGTAGGAAAGGTTATGCAAAACGCAATTTTTAGTCCAAAATTCCGAGAAAATTCTGAAATTTAAAAAAAAAATGCAAGCACACTCCATGGCACTCCGTTTCCTTTGCAAAATTTCGCGTAGATAAATTACAGACATTAGCAAAATTCCGACGATTTCGCTGACCATCACGGAAATATTGTAGGAAATTCAAACATTACACTTCCGAAAATAATTCCGCAAACGCGCTATCGCACTTTTCTCCAAGTCCCCACTCAAAAAGCATAGAACATACCTGAACTTGCCGTTTTTTTACACCAACTTCAAATTTACGCGATTTCGCTGCGAGACCCAAGCTAGTGCAGTTGCGCGCATTTCCAACAATTTCAAACTCAATTTTTTTCAAGTATTCACCACAATCGAGAACGTCCCATCAAGCGTGAACAGTGCAAGCCAGGATCGACTCATCAATAATAAATAAATTCCCCATAAAAATTATCGATTTATCGATTTTCTTTGACCCCCGAATCCTCTGTATTCCTTCGTTAGAATGTACTTTTTCCCTCCTCATTTTCTAGAAATATGTGTGTGGTGCAATTCTATGAAAAAATGCATTGCAATTTTTGACTTTAAACGAGACGTACGGTGCATTATTTTATTTTATGTACAGTTCCCGTCGTTGATCAAGTTACTCCACTGATATCAATTCACTGATAAGCCCACACTGACTGCCCAGCCCAACACAATTCCGCAACTTCTTCTCCCTGCTTTGCCATGAATTCGACGGTGGCTTCCCGTTTCTCATGGGGATTCATTCTGACCATGCGTCGATCGATTTTGTTGTCGTGTTGCCTACTGTTTGCCTGCCTGCATGATGGTTCAAATTGAATTTTACTCCGCAATTTGGCGTTTTTTTTTTAAGAGGTTCGATTGATTGGCCGAGTTAATTTTAGGGCACGAAAAATGAAAAATGAGCCGAGTGTCATTTTCGTTGGAATTCTAATTTTCAGTGTGTAAAAATATAGAAACCTCCAGCAAAAAATTTTGAACATCCCCGCCAAAACGTTACGAGACCCAAGTACAGCGAATGAGAGTTGCAAGAAAAAATTTTTAATGATTTGCAACTACGCTCCACAGTCCTTGGGTCTCACAACGTTGTAAAATTGTGGTATTTCTTCCATTACTTCTTATAATAACGATATTCGGTGGTCTCGACACTACACATTTTCATTAAAAATAAAACGGGCGCGATGTGCGCCTTTCAAGAGCTACATACTGCAGTTTCAAACTTTAGTGAAGTTGCTAAGCGTATTTTCAACAACGAATTTGAACTTACAGTACTCTTTAAGAGGCGCACGCCCGTTTTTATTAACAGAAACTTGTCGAGACCGGGCACCGTAGTTTTGACGCTAAAAATAAGATGTATGAAAAAGCGGGTTTTCAGAAAATTTCACTTATCAAAGATGAATTTGAAGTTTCCAGCCAAAATCGCTGCGAGACAGTGTAACGAGTGCAGAGCGCGAAATTGCTGTAAAATTTGATTGAAAAAGTTTAAAATTGAGATATTTAAAAACGGATTCTGGCGTCCCCCGTAATTGAATGAATTTCCCGAACTAGGCCACTTTGGCCGCGGCCATATGGGGTAGATTTACGGCGCGTTGTCGCGACCCGATTTTATGTTGGAAAACTAGGAATGTTTTTGCCCGTGTGGAGTACACGACTTTCCCACGTGTTGTCCTCTAGGTGATTGTCACTGCAGCGCAAGAAATCCAATGAGGAAGGCCAGAACCAAAAAGGACGCGTTTTTGAAGCAATTCATCGAAAGAAGACAGTAAAAAAAAAGTCAAAAATTCAAATATAGAAAAACCACCAAACCAACATCCAGCACAATCGACCTATTCTTGATGCTGCTATTTTTTTTGCACGTATGGATGTGCCGGCGGAAATCCACGTGGCCAAGAAGGCGGACACGTTTACAATGTGGGGTCGGTGGCCGACGCCGTGGCCTAGAAATCCAGCCGAAAAGTTTCCGTCAAATTTTCTGCCAATTTTCTGCTCGGCACTGCTCATCTGCGCGGCGAGCCCCACAAAATTCTTGCTCCTCCTCACAAGCTGAAGCCCGATGAGTTCCTCACTTTCGGCGACCCTGCCTTCCTTGTCTGGAATTTCGTTTCCGCGATCATTTTTAAGTCCTCGTGGACAAGATGCTTCTCGCGAACTCCGTCTTCATATATAATTTTGAGGATGAGGATGGAAGTGCCCTCCGCTGAGAGCCTAAAATGTAGTTTTTGATCACCCCCACGATTTTCAGCTCGAGGCGGCTCCAAAACAAACGTTTGAGCTTATTTTCCGCCTGCTCCAATACTACAAATGTGAATGGCTCTGGCATATTGTTTCTAAAGTCGTGGCTCTTTATTCATTCGATTAAGAGAATATCCATCGCGTCGGGGTTTTTTGTTTCGAATTTAAAAAAAAACACAAGTGGAAGAGTTTTTAAGATTTCTTGGCCACGCACACTCCAAAACCCGAAGTTTCAGCCCGTATCTTCGTTGTCCCTATTACACGGGACAAGTCATCGCTACCGTGGTCGCCACAAAATCGTACCCAGCCCTCTCCAACGCTGTCTACATCATGACAATCATCTCCTTGGTGAGCGCTGTCGCCGCCGGATTCCGAGGAGGATCCTTCGAATACGCCTCGCATACAGGATCCAGACGGCAATCCGCTATGATTTGACGGACTCGTGAAACAGGATCGCTTTCTATGATGCTCACAAGACCGGAGTGACTTCTCGTCTGTCTGCTGATTGTCAGACTGTGTCGGATACAGTTGCGTTGAATGTTCAAGGTTTCCTCAGGTAGGTGTGGGTGCGTGACCGAAGTTCCCAGATCACACCTAATTTTCCCAAATTCTTCCAGAAACTGCGTTATGCTCCTTGGATCGATGAATAAGCTTTCCGCCTCTCCCTCTTCACATTCATCCTCGTCATTATCTTCGTCGCCTCCAAAAGCTTCGGAACATATTTGTCATGTAAGTGCGCTCCAGCGAAAATGTTTTTCTAAAGTTTTGAACGGACCCCAAAATTCTGTCAAAGTGCCCCATTTTGGTTTTTGATCTTCGGAAAATGCCGGAGATAAGAGGCGCAGGCTTTGCAACTGATATCACATGGTAAAGATTGTGCTGACGGCACATGTGACGGAAAAATTCCCACATTTTTTTGTAGCTCAACGCACCTGACACCACGTGAAATTTTTGACAAGTCAAGAAAAATTTCGGCAAATGTGAATTAATTACCGCCGCACGTCGTGCCAGGCTGTCCCATTACGGCTTGATCTACACAAAGTGCGGGATGACTTCTTTTTGCCCAACGCGAATTTGACGTGAGCACTAATCGTTCTTAGTCATGCGCTAAATTAGTAGATAACTCTGAGTCTCTTCTCCCTCATTTCTTGTTGTTCTACGAGATCAAGTCTAAATTACCCAGCGTCTCTGTCACGTGCACGCCTCCCACCCTCCGACGAGCAATCAGCGGATTTACTTACTCAACTTGTTTTATTTCAGCTCCTCTCCGAAAGAACACAGGACAGAATTGCCGCCAATGTGCCGAGGAAGTTCTCTCCACAATGCGTACAGTCCGATCCTTTTCCTGCGAGAACGTCGACCGATCTTCTACGGGGAAGCTCACCCACACACTTGATGTTTGGCCACCAGAACCAAGCTAGCGATCGCCTATATCGGATTCCTCTGCTGGGCTTTTCCAGTTGTTCATTATTGTGTCAGTCCTCTGGTATGGAGGCCATCTAGTGCTGCACCAACGCAGAAAAAGAAGGGAGATCTTCTAGTGTCATTTTTGCTCTATCTCAAAATGCAACTCCGAGATAATCTTCGTCAAATGGTAGAAGTCAGGAGGCCACAGGATTGATGCAATCTGTTGGAGCAAGTCGTGAAGTGTTCGAGAACATTGATCGAGAGCAAATTCAGCACAACGGAGAGCATATGCGGAGAATGTTGTTGGAAAGATCGAGTTCAGAAATGCTCGCTTCAGTTATCCAACTCTCCGGTCCGATCAGCCAATCCTTAAGGAACTCTCGTTTACCGTTGAACCAGGAGAGACTGTTGCATTGGTACCAGCCACCCTGGCTGGAAAGTCTTCGTGCATTTCTCCGTTGCTTGAGAACTTCTACGTCCCGAATGCTGGACTTGTGGATGGAGTTCCGCGTTGCAAGAGTTCGAGCATCATTATATTAATAAGAAGGTACGTTGGCGTCAATTTCGGTTCGACAAATCGTTTGCCGGTTTGCCGTCAATTTTAATTTTTGGCATATTGCCAGATTTGCCGGAAGAGTTTAGAGTGCTTTTTTATAAGACGGAAACACTTGAAACTGTGTCCGTTTTTTTTTGTGCCGGTTGGCGATTTGCAAGATATTTTCACCGGCAATGTGCCTTGCCGATTTGCCGGAAATTTTCCATTATGGCAAGCTGACACCGATATGCCGGAAATTTTGATTTCGAAAAATTGCCGAGAGGCCGGAAGTTTCAAGGCAACTCGCCGATTTGCGAAATTTCAATTCCGGTAATTTGCCGATTGGCAGGAACAAATCGTTTGCTCGCAGTCTATTCGGATAAAAATTGCGCCAACTGGTCATCCGTTTGCACAGAAAAAGCATCTCCGCGCTTCGCTATTGGCCAATTTCATAGGGCAAATGTGACGCAACAAATCACGGGTGTTTCTTGCTTTCCATTGCTGAAACTGTGACTGGTTGGGCCCAATTTTTTGAACTTGACCTAATTGCGAAGCGAAGACTCTGGACGCAAGAAACGATTAGCTCCGTTTTCTCCTTTAGATCGTCTGTCGATCGAGATTCTCTGCTTTAAAAACACATTGCCCATCTTTTCAAAGCCCCTGTTTCAGCAGCTAGTAACAACAAAAAACCTCGAAAACTTCCAATTTTTCAGTTAGCCTTTGTCGGCCAGGAGCCCGTCCTGTTCGCTCGTTCTGTTAGATAAAATGTCAGAAGTCTTACGTACTGTGTCGAAGTGGCGGACGGTAAGCACGATTAAATGCACCATGAGCCGACCAAAAAAACTTGTTCAGGAAATCATTCGCGTGAATGGCGAATGCTCACGGATTCACTAGAAAACGTTGCAATACGAAACGTCGGAGAGAAGGGAACACAAACGTCCAGTGGTCAGAAGCAACGTGCAATTGCTCGGGCTTGTTCGTGAGAGCGTTTCTCTTGTTCCGTGGATGAAGCCACGTCGGCTTTGGACACTGAGTCCGAACATCTTGTTCAGAAACTTGACCATATAAGAATTTGGATGTGGAAAGAGTGTCATTTTGATTGCACATTATTGACTGTAGAGTAGGCTGATAAGATTGTGGTTATTAATAAGGTGAGTTGCAATTGCGCTCGAGGACCGAGTTTTGGTCGCAAGACACGGGGTTCTGGCCTTCCTCATTGAAATCAGTCTTCCGTCTATTGACAATCGCCTGCCGGACAATACGCGTGGGAAAGTCGTGCACACGGACAAATACATTTAGTTTTACAATTAAAATCGAACCGCGAAGCGACACCGCGCGCCGTAAATCTACCCCAGATTGTATGCGTGAACCGAGGCAAAATGCCCTAGTTCAGCAAAAACTCTTCCATTTCAGTTCGTTATGAGGGAATCCAGAAATCGGTCCGAGGGCCCTTGGTTACTCGCGGATAACGTGCTGTCAAATTATTTCAGAATTGAGAGTTTCGCTAAAAACTGTAGAATCGCGTTAAAAATGAGAGCTCACCAAACAGGATTCACGAAACAAGAATTCACAGAAATAGTATTCAGTGGGCGCAGTGTGCGCAGTGTGCGCGGGGTAAGCACACTACTTCTGGTCCCGCCCGCTAAATCCCGTGTTTCTCGTGAATAGCTGAATGAAATATCAAAACTCGGCGAGTTGTTCTGTGGCCGGCACACACACGTGGTTTCAGGCTGTCTCATGGCCCGACAATGGGTACATCAGTGAAAATGCGCTACTGAACAGAACGCATAACGCACGTGGTGCAAACAGGCTGTCCAAAACCATAATGGCTTGACCTACAAGAAGTGCGGGATGTTTTTGCCCAACAAATTTGATCAGCACGTTCTTAGGCATGCGAAATCAGTTGAGAACTCTATGACTCTTCTCCAGCATTTTTTGTTGATCTACGTAGATCAAGCCAAAATGAGACACGCTGACATCACGTGATAACCTGGTTGATACTACGCGTACGGCTTTCCCGGCGGGGCCGTGTTTCTCATTGCGGTTTGATCTACAAAAATGCGGGGAATTTTTCCCCCAGGAAAGTGTGACGTCAGCACACTCAGTCTGCGTCTCTTCTCCCACATTTTTCGAAGATAAACCAAAATGAGACATTTTGTCACCAACACACACACACACACACACACACGCACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACATCATATTTGACGGGCAAAATCGGCCCCATAATTACAGGGAATAGTCGAACACATCGGAAATCACGAAACCCTACTGAACCCCATGAACGGAATCTGCCCTACGCAAAGCTCGTTCAACGACAAATGATGGGAGATCAGAAGCCACGGAGGCCGGCGGTCGAGCAGCCACATCCCGGTACCTCAGCGCCGCGTCAACCAACGTGGCTTGCAGGACCATCGCAGGGTAATGCAATGTCCCTGTTTTGTCGACTTCTTTAAGCCAATCTGCCAGTAGTGTTACTTCTCATGATTAATTGTTTTTTGTTCTTGTTAGTAGCCAACATTTTTTGATGGACTTGTTGGGATTAATTTGTAAGAATACCTAAGGGATACAATTATTCATTCATTATTAAAATTTGGGCACACAAATTCGATTGTGGAAAAACTGTACAAAAACATTCTTGCAAAAACGTGGAAATTACTCAAATAAACTCCAGGTAGTCGTTGTCGACATCGTCTCGCTTCCGCATCGCTGAAAATCCATTTTTCACTTTTTTTAAAGCAGATGCTAACCGGGGCCTCTCCGTGACCGGATCGTGTTGTTCCATCCGCGGATTATGAGAGTAGGAGCTTATGCCACGTGTCTCATTGGCAGCTTGCCAATTGTTCGCAGACAGCCTGTACGAGTCGGTCAACAGTGGACCGTTTAGAGTCTGAAAATATATAACGGGAACACTAAAATTTTAGAAGCGTATTGTGCAACACATTTGACGCGCAAAGTATCCAGGTAGCGAAAACTACAGTAGTCCTTTAAGTGACTGCTGCACGTGGTGCCCAGCAGGGCTGGCAATTTTTTGGTTCTTTGGTTTTTCTGGTTTTTTGGGACCAAAAATCCAAAAAATCAACAACAAAAACAAGTTACCGTGTCTCTCGACTCGAGACTATTCTGTATTAACATACATCGAAACATGTATTTTAACACAGTCGTCACGTCATAACCAATGAAATACATTTGGCGACATTACTTGATTAACCCCAAAACACCTATAAAACATTTTCTGGTTTTTTTTTGGTTTTTGTTCCAATTTCAATTTTTTTGTTTTTTGGTTTTTTTGGTTTTTCAAAATAACTTCAAATTTTTGTTTTTTGGTTTTTTGGTCCAATATTTTTCTACTTGGTCCCTGGTGCCCAGCTGTCCCATTACGGTTTGATGTACAACCAAGTTAGAATGCGGTAATTTTTTGCCCGAAAACATGTGACGAGGTCAGCACGTTTTTAACCATTGCAAAATCCATGCTTCCCTATTGTTTGTAGTTCAACGTAGATCAAGCCGAAAGAGACACACTGTGAGCGCGTGCTATTGTAGTGCTTGTGTCGATTTACGGGATCATTTTTCGAAATGATTATACATATAATAATCGATAGAATAATAAAATTATGGAAAAAATAATCGGAAAATAATACGACAAAAAGGAAAATTGAAAATCGCTGTCAAAATTCGAAAAAATTAATTGCGAAAATTGAGTTGCCGTAAATCGACACAAGCGCTACAGTAGTCATTTAAAAAGGATGGTCTACTGTACTTTTCGCTACGAGATATTTTGCGCGTCAAATATGTTGCGCAACACGCATTCTCAAAATTTTAAACTCTCCGCCTATCACAGCTGTGTCTCGTTAGCCCTGTATGGGGGCGGATCTTTCAGCGGTGGAGCCCGATAGAAAAAATATTTTTTCTTCGATTTTTCAGAAAAAATATCGATTTTTTCCGATTTTTTAGAAAAAAAATTTTTTTTTTTGATTTATCACAAAAATTATCGATTTTTTAGATTTTTCATAAAAAATATCGATTTTTTTTTCAGATGTCCAGAAATCCATTATTTTGATTTATTTTTAATGTTTTGAGTTCCATTTATCTGAAATTTTTTTTACCTCATAATGATTGCCCTTTTCTTCCACTGCCGCCTCGCTTAGTTCAGGGTAGTGTCGAGTAATTCGTATTCGATACTGTGAACGTGTAAGCGACAGTGGAATAACCCGGTAGATCATAAGTAGTACAATATGGCAAAGTGGATTACTAACTGAAAATTATTGGATTTTTCTCAAGTAATAAAGGTGGGGAGATCCGAAATATGTGAAAAATATTTTTAATTAACAAATTTTCCCCTGATTCCCAATTTCTATATGAAAAAATTCAAAAAAAAATTTTCCAGATTTTATATTTAAGCTTGAAATCGCTTGAGCCCGCATCACTATTTACAAAAGCTTCCCCAAAGAAATTTGAGAGCGCGCTTGCTTAGTTTGTTTTTCTGCTCATGCTAATATTGTATTTATTACCGCCAAATTCAATTTAACCGGTTTCATTCATTTTTGTCGAAAAAATATATTTTTCAGGAAAAAACCGGTGCAAAAAAACCAAAATCGACAAAAACTAATGAAATGCTGGCTGCTAAAAATTGAATTCGGCGAACCGAATAAAAATAAGTTTTAAATGAAGAAAATTCTATTAGGAGCAAACGAAATTCGCCATTTCAAGCTTAAATATGGGATATAATCAGGGATTTTTGTTTTATTTATATTTATTTCACAGCTTGATTTTCTCAGGGAAACATTTGGGGTTAATATATTTCACAGATGTCGGTAAGACAAATATGATTATTTTTTTACAAAAAATAACCCCCACCAGTAACAGCGTAGATAAATTGAGATAAATGCATGATTAACCCGGAAGAACAAAAGTCGGGATTCTGTTGGGCAATGCTGGAGTAGAAGATCGAGATGCTTGTACAATAGTAGGGCAGGAATGAATCAATCATCTGTAATTTATTTTTTTAAAGCTGGTACAATCCACGTGGTTCAGAGTGTCTCATTTCGGTTTCCGAGCTACTGTTTTGTAGATCTACAAAAATGCGGGAGAAGAGACGCAGAGTTCTGATTTCGCATGGTTAAGAACGTACTGTCACATTTTACTGGGAGACCCCCAAAATTTCGCCGCTTGTAGATCAAGCTGTGACGGGACAGCTTGGCACCATGTGGGTGCCGAGGGGAGCTTTTTGGTATTTTTTGGAATTTCTCGAAAAAAACTTTCATCGATTTTTTTGAAACTAGCTCTTTTAGGTATAGAAGAAAATAGTTTTTTCTCATCAACGCAATTTTTAGATCAATATTTTCGATTATCCGGTGAAAATTGAAAACTTTCTTTTTCTATGTTCCATTTTGATTTTATAAATTTGGGAAAACCTAATATTTCGATTTTTTTTGAAAAAAAAACCAATTCAATAATTTATATATTATAGGCCACTCTTTTTCTCTAATTTCTTCTGAAAAACCTTAACAAGAAATTTTTTTTTTTTTAAACCAATTTTGAGTAATTTTTTTCTGTAAAACATACGATTTTTTTCCAATAAATTGCTAGTTTTTTCTCTCTTTCGGGTACTTGGACTGTCTCTAATTTTGCTTGCTTTTTTCTATATTTTTTCTGCGATTTACGATGAAAAGTACCAAAAAGTCGGAAATTGTTTTTTTTTTTCGATTTTTTAGGAAAAAAAACGATATTTCCTATAAGTGTTTTTTTCATAAGTAAATACTTTTCTCCTTTTCCTTTTGATCTACAATATTTCGACTTTATTCTGGAAAAAATTTTTTAAACGTTTCTTTCTGAAACAATTTTCAGACCCAAATTTTCAATAATTCAATAATTTTTCTAGATTGTGCGACCGAAATATACACATGGTTTTCAATAAATTTATAGTGTTCTCCATTTTTGTTGATTCTATTTTACTACTATAATTTTTTCAAATTTTCGAAAAAAAACATTTTTTTTTTGGAAAATTTTAATTTCAATTCGATATATATAAAAGTTCATATTTTCATCTTTCATCGAAATATATATTTTTTGATTTTTCAACCTTTAACTTGTTTCATTTCCTTCTCTCTGAAAAAATCGGAAAAATTAACAGAAAAATCGAATTTTTTAAAAATATATTCCGATTCGCCCTACCATAATTTTTATGACAAAAAATCGGTGTGCTCGTTATTTTCTACAAAGACTCAAAACCTCAAAAAACATGCTGGGCAACGTCAAAATCGCTCGATATCGAATCTTCAGCTCAGTCTCATACCAAATACACCGCATACAGAAACATCGTGCAAGGAGCTTGAAGAAGAAAATGAGCGCGGTAGATATGCACACTTTTCCACGAAAATTTCGGCCGAAATCATGAAACAGGCGTGGATTGAGCACAATTCGATGGAGCCAATAGCCGGGAAGAGCAGCCGAACCTTTCATTGGGATCTGTGTACGTTCGTCTAACCGATAAATGTTCCTGCATTGATCGGATACAGTAGACGAGCAGCCGGACAAATGTATTTTGCAAGTGGGATATTCTGAAAATTTTTGAATTTTTTCCGAATTTAAAATTTTAGTTTCTCGATTGTTTTGAAGTAAAAGAATTGATTTTTTAGAAAATTATATGTTTTGTTTAATTTATTTAAAAATCTTTGAGGTAAAGCGCAGTGGAGTAGCGCTAGTGGGGACTTTAAAACTGCCTACGATACCACAAGGACCGAATATCATGATAAAAAAATTCAAATGGAAATTTTTCTAAATTTTATAGGTTTTTTTTTGAAAATTGAACAATCTCAGTTGTTTTTGCCTAATTCCAATTTCAATTACCGCTAATTTGTTCGGTGGAGCGCCACGTTTTTATATATTTTTAATTTTTATGTTATTTACCACCGATTTTTAATGTTTTCGGTGTATTTTTGCTCGAATTGAGAAAAAGCAAGACAAATGCAAATTTTCAATTAAAAAGCACGCTTACAGGCGTAAAAAACATGACAAAGTGCCGATTTCGATTTCCAAAATTAATTAATTTCATTGATTTACGAACCTGTAATCGTGCCGCTTTTTTAATTGAAAATTTGCATTTATCTTTTTCTCTAAAAGATAATTCGAGCAAAAAAACGAAAACATTAAAAATCGGTGGAAAATAACAAAAAATAAAATAAATAAATCTTGTTAAAAACGTGCAAAAAATCACGCTCCATCGAATGAGCAAATCCAATTGGCGGTAATTCAAATAGTAATTAACAAAGACTGCGATTTTTTTCAATTTTCAGAAAAATCGTATAAAATTAAGAGTGGTAAATATTTAAAAAATTATTTTATCATGATATCCGGTTTGGTACCGTATTTTAAAGCAATTTCCCCACTAGCGCTACTCCACCTTTAAAGTGCTAATGAATTTTTTGTACGTGGTGTCAGAAAGTCCCATTTCGGTTTAATAAAAAATGCGGAGAGACGCAGATTTCTCAATTACGCTGCTATCGTTAAAAACGTGCTGACGTCACATTTTTTTGGGAGAAAAATTCCCGCATTTTTTGTAGATCAAACCTTAATGCGACAACCAGGCACCACGTGTTTTTACAATTACACATTATCCTGGAACTTTCCAGAAAATTTGAATTTCGCGCCAAAACTTAGGGGTAGGTCCCATCATGATGAGTCACTAACGTCAAACCGATATATGTAAAAAGAACCAATGCCAAACTCAAATTTTCTTAAACTACAGTAATCCTACAGTAATCCTGTACCCCTACAGTACTACTACAGTACCTTGGCATTGTCCCCGACCAATATACAACCCAAAAATATACCTTCAAAAACAAACACGTAACTTTTCCCAAACTACAGTAATCCTACAGTTCTCCCACAGCTGCAGTACTACTGTACCTCTTTAGAATATTTTTCTGTTTTTCGATTTTTTCAAAAAAAATTCAGTTTTTTCAAAAATTGATTTAAAAATATTTCAAGTTACTTTTTAAAAGCTTTTCAAAAGTTTTTCAATCTGTAAAAATAAAATTTTACGGATTTGTATTTTTTAAATTATCTGAAATTTTTCTCAAAAAAGAAGACTTTTTTTTTCCAGTTTTCAATTAATTTCGGTAATTTTCAAAAGTTTTAGGTTTAAAAAACAATTCAATTTTTATGTACCTTAAGATTTTATCGACATAAAAATCATTAACAACTACGATTTGTAGCGGCAAACCTTTGTTTTTGGCAGTGGAGCGTTGCGCCTCGTCTTCAAAAAGACAAAATGGTGAAATCCCAAAAATCAAATAATTGTTCCGCTACGACAAAATACCGCTAAATAGTAATTTTTCATAGTAAGTTCCTTTTCAAAAGTGGCACAGACCTGATGAAACGTGTCGTTCACCTCCTCCGAGTCCTGCCACGTGAGCTGGTGCTCCGGCATGGCTGATACATTTGTGAATTTCGCTAAAACAGAAAAATATTATCAATAAGCGGAAAATTTCGTGGTCTCAACACGACAATAAATAATAAAAAGTATTCGTGGTGAGACCCGTGTTGTTTTGGAGCAAAATTCTCAAAATTGGGGTATCACGTTGTCAGCGTCCCGTTTCGGTTTGATCAACAAAAAATGCGAAGTGATGCAGAGTTTGCTGACGGCACATTAAAAAAAATGCCCGCATTTTTTGTAGATCAAACCATAATACGACAGCCTGGCAGCGCCACGTGCGGGGATTAAAACCCGAGCCGCACAGAAAAAAGGCGGGAGTTTTTTCGCAACATCGCGGCACGGGGCGGTTTTTTGTTGACCTTTATCAATAGTCTAGATACTTGCGATTTTTGCAAATTCATACAATCAACAATAAACCGACCGTGGCGCAGGGTTGCAAACTCTCTTTTTCTGCGATGCTGATTTTTTGCGAAATTCACGAAATCAAAATTACAGCACACGTGGTGTCAGTGTCTCTCATTTCGCGGCTTGACCTATGTAGATCTAAAAAAAATGCGGGAGAAGTGACGCAGAGGTCTCAACTGATTTCGCATGGCGCCACACATTTTTGGACAATTCTCGCCGCATTTTTTGTAGAGCAAACCATAACAGCCTGGCGGGGATTAGAAACCGCGCCGCACAGAAAAAAGGCGGACCGTAGTCTAATTCGCAACACCGCGGAACGGTTTTTTACTTGCATTTCAGATTCAAAAAATCAACAAAAAACCGTGCTGCAAGGTTGCGAATTCGTGCTCCGCTCCGCATCTTTGTGCGATGCTGCTTTTTTAGCGAAATTCACGAAAAAAAAATAGAGAATAAAAGTCCATTTACCGATACAAGTGACTGCCGATAGACTTCGCCGATATACATGGAGAGAAGTGTAGAGAGTGAAATGTGAAGTTTATTAGAAAACAATTTTTTAAAATTATATGTTCATGAGGAAGATTTGCGGTAACTGGTAATCGGTTTTAATTGCCTTTTCGAGTATATGAACTATTTTAATCACTTGATGATCGCTAGTACGGCTTTGCGCTTCCCATCTCTAGATGACGGAATCCACGTGGCGATACTGATCGAGTGTTGTTTTGGAGTGGTGGTGCTGTTGGTGCTGGTGGAGGGGCGGAATTGAGGCGGTTGCAGTGGATATTACGCTGATTGGATTGGTGGAGGAAATGAGAGAAATTTGCGAGCATAAATTTTTAAAAAACGAAAGAAAATTCTTTGTTATTTGGGGAGCAAGGCGAAAACGGTGTTTTTTTGGGTCAAAAAGTAATAAAAATTTACAATTTGACAGAAAAATGCGGCACTGAAAAGCTGTTTTTAGGGTCGAAAATCAAAAAAAAAATTTTTTTTTGCTCATTATTGTGGCAGAAAATGGCGAAAATCGGTTTTTTCAAGTTACATCAAAACAATTTTTTTGCATTTTACAGAAAGATGAGGATGTTTTAAAAGTTTAAAAAATTTTTTAAAATTTTTTTAGCGAATGGAAATTTTCTGAAAAATCGTGCAAATGCCTAATTTGTGCAAAAATCTTATCTGTTCAATAATTTTTAGAAACCACCGGTTTTAGAAGGGTAAAAGGCAAAAAACTGGATTTCCAGTGAATTTTATACTAACAATGGGAAAAATTCGGAAATTTTTTAAGGAAAAATCAGAATTTGCAATTTCTACACATATAGAAATTGAGGAGAACTCCTCGGATTGTTTGCGGAGTTACGATAATTTTTTCGGCTCAAAATTAACGATTCAGAGAAACTTTAAAAAAACACAATTTCAGTGAATTTTACACGAAAAACGGAGTAAAAAGCGTTTTTAGGAATTTCCAAGTCAAATTTCCGATCCTGCGATTTCAACCCTGAAAAATAGCGAAATTGAGGAAAATCTCGGATTTTTGCAGATAAGTAATATTTTTTCCAAGTAGCTGATTTCCGTCGCCAAAACCCAGAATAATTTACCAATTCGACGGTGGTGGGAGAGCCCAGGCTCTCGTTGGGCCGTGAGATCCGAGAACCAATTGTGCCTGCAAAAATCGAGTAAACGCTAAATTGATGTTTTCCGCTATTAAAGTGCATATAGAAATACGAAAAAGCAAAAAAGAAAATTTTTTTTAACCCCTGGAATCCGAAGAGCAGTTAGCTTGCGGATTGGACGAAAAGGGCCTAAAACTTCATTTTCCTGAAATTCCTCGAAAAACCCACTATTATGGGTAGTCGGAGATGGCTGATCGCCTCGTCGCTTGTAATATTGCACGCCTGGCCACCGTAGAGAAAATAAATGTAGACTGCACACTAGGATGATGGGAAGAAACGACAATCGGCATGCGTCTGGAGTGAAGAAATCAAGATTTTTCAGAAAATTAAAGATCTCTAAAGGTGTACTACACCCTTGTTGAAATGGCTTTCAAACATGCCTATGGTTCCACCCAAATATCATGATTAAAAAATTAAAATTCTAGAGTTTGTTTGAAAATCGAAAAAATCTCGGTTTTGGGAATGCCTAATTCCTATTTGAATTAGAGAACCGCCAATGATTTGTTCGATGGAGCGCCCTTGCACGTTTTTAAATTTATTTATTTTATTTATTGTTATTTTCCGATTTTCAATTTTTTCCGTGTAGTTTTGCTTGAAAATTTTAGAGAAAAAGTTAAATAAATGCAAATTTCCGATTAAAAAATCCACTGAAAATGCGTAAAACTAATATGCTAGTTTCAGGTTTATTGTCGTCGAAAGTCATTATTTTAACAGTTTGACGTATTTTTCACGTTTTTACTTTTTAGCAAACACATTAATCTTGCTTTTACTTTCCGATAAAAATACACAACTAATGAAGAAAACAGTGACATAATAATAATAATAATAATTAAAATAATTTACACTATTACGCTCGCTGGGAGACATGAGGGAATACAGAATACATTATCATTGTTCGCTTGAACTTGGTAATTGGTGCAGGGATCGTTTCCATTCCATTATGTTGTCCTTGTACTTGCGTTGTCCTTGAGTAGACTCCCCCATAGTGGGCGGGCGATTAGTGTAAAACAACCACGGAATGAAAAAATAGAAGAAGAATAGAATATATTAATAAAAAAAATGAGGACTGCAAGCGCGCTCCAAATAAACGATCGCGTTCAATTGGCGGTAATAGTTTTCAAATAGAGGCAAAAACTTTTTCAGATTTTTTCAATTTTCAAAAAATCATATAAAATTTATAATTTTTTTTTGAAGCTTTTTAACGTGATATTTGGTCACTGTGGTACCATAGGCGTGTTTTAAAGCCCCCACGAGTCCACATTTAATAATTGAAAATTAAAAATTCTACCTAACAATATCGAAAATTCCAGAATCTCCTTGATTAAAACTTTATTATGCCTAAAGAGTCGCGTCCACACGGAGAGCGCAAGAAATCTGAAGAATATTTAGGATTTTCAAGGGAAAATCAGATATCGGTTTTTTTTAGCAAAATACCACAGAAATTGCGTATGGAATGAGTAGAAGAGCCGGGTTGACTTTCCGGGGAAAGTTTCGACGTGTGATACTCGTCTCAGAGAGCCTCATTCCCAAGAATCCGGTTGCGATGCTGAAGAAAATCGATGGAAAAAGTCTAAAATATTACCCCCTGAAACCCTACCTAAAAATCAGAAAATACGAGAAAATATTGATTAAATGAGCCGGCACATAATTGGACCAGCACTCCATTCAAGTTTCGAAACGTTTCGCCGTTTGAAGTCCAGAAGCCGGGAACGGATAGTGGCTCGAAATGCTCGTCGACACTCATTTGACTGGCCCTGTAGAGCCCGATGATGGCAATGGCGAGCATTCCCACTTCCACATGGTGTCAGGCTCTGAAAGTTAAAATTTAGCTTTTAGACGGAGAAAATCGATTACTTTAAGTGACATGAACTTGATCGAAAAGCCAGCGTTACGGGTATTTGCGGTGCAGGCCCGATTCCCGACTACTCGACACAGTATTGGAATTCGAGCGGATACTAACATCTGCCATTTTTTCTCTGAAAATTCAGAAAAAATAAGTTTTAAAACAGAGTCTTAAAAATTAACGGAAAAATTCGAAACTTTTTTTTCCGCCATTGACAATGTGCCTTTAAGGTACCGTAGCTCTTCGTGTGAGACCACTGCGCCGGGCATCTGATTTCTGGGAAATTTGTTTCGAATCCTACGTTCTTTCTTTCTTTTTGTTTCGGTCATCGTTTTTTTGTTGCTCAAAAAATCCAATTTTCAGACACAAAATGTCAGAACGCCAATCCACATTAATTTTGACTATCAAGGTATCGTCATTTCCTCCGGACGATAGATTCGGTGACGGACCTCGTTTATCCAGTTCATTTCAGCAAGCTCTGTACGTGAATTCCCTCCGATTTCATATTTAAAAGAATAAGCTCGTTTTCAGGGAAAAGCGGCCCAACAATGTACGGTGTCTCCAACGCATTTGATTTTCCAACAAACTTGGAGAGGAATCTTGATAATATCGAAGAGGGAAAAAATCTTGAGACAGTATTTATTTGATTTGGGCCCACTTTTACGATCTGTTAACTCCTGATTAGACGTCGATCCAGAATCCCGCCCTGAAGTTCGGTGAAGTCATCCTATGGAACGAATCGGACTGTGATCACGATGAGAGGATAATCCTTCATATCAAACGAGAAAAACCAATTTATGAAGCGTCTGCCAGCCAACCGTGAAATGGAGACTTAGTATGAAAGTCGGTCGCGTCATCCAGCCCACCGACCTCGTTCTGGACGCCAGTATGCACCGTCACCATGCGTATGTTTCTTCTTGATTTTCGTCTCTCTAACCATATAAGTATTTATTTCAGCAGAGACAGAGGCGACCCGAGCGGAGCCAGACGTTTGGCTATACGCCTGGATTCGATTCGAAACTACCATGAAGGTCTAGACCCTTTCAATATGACTGCAACATTCGAATCTTTTGCCAGTTGCGATCTATCCGACCCAGCACGCGTCTGTGAAGCGGTATTTCCTTTAAATTTTGTACGGGATTTTGAACAAATAACTTTCACCCGGGCATGGAACGCAGGCTCTCCTGACTCTAGGAAATTCGGAGTTTGGCGCGGATACCAAAGCCTGCTGATAGCGACGGCGAAATTGATATCGAGCAGAAAGAATGCTGGAACTTGCCAGAAGACAAATGCCGATAAGGTTGCTTTGTGGATTCTCGTAATTAGATTTTGCATCAAGATGCAGCTTGGCCTGTAGGTCGGGAACGCCTACCGACTTGCGAAAACTCTCGCAGTTCGACTTTATTATCCCACTGCAGAAGCCATTTTCACCCGAGGAATTTCACGGACAAGACCTTGATCTACCCAGCCGTCGGAGAATAATTTTCATTTCAGTGCTTTTGGTCGATGCAGCACAACGGTTTTCTGATCTATGAGCTTCAGCCTGTTCTTCTCAGACAGCATGTAACCTCTGTCAACGGAAATTTAAGTTATAATATTCATTTCTTTGTCCAGAACCTAATTTTAATTACGGCTCCTTACCCGCGTCGTTCCTGCCAGTATCACCTGAGGTCTCTTCCGTTGACAATGAGGGCACTCTAGGATTGATTGATGACCCACACCATCTTCTTTCATTCTTCGTTCATCATCTACAGCTGGTTATGTCCTTGAAGGCTATGGTAATCATGAGTGGTTCTTATTTTGAAACAAACGCTTTCAACAGGCCGAAGTTCGTGCTGTTCGAACCTCAGAAAACAAATCTGTCCGTTACCGCATTGTTCGTACATCGGGATGTCCATTTTTGAGGCCCAGGGTCCTTCGTTACTCAGGTCTCTAAAGTTAAATTAAACTCGTCCTTTGCACCCCTGAATTTTTCAGTTCGTTGTTGGTCCAGTCAAAGGAATCACTCGAATCAATGAAGACTCATTTGTGCCAAACATCCGAATGTCCTACTTCAAGATCCCCAATAACTTGAAGGAAGGAATCGCTATTGAGCGGAGGAGTTCAATTCGTTGGAAAGTGACAAGCTGGCGACAGTGAAATTATGAACACCGAATCCATGTCCAGCGTTCCTTGTAAACTCCGGTCTCTGGTGATACGGTGAGTCTTCAATTATTATAGTTTTTATTCTACGAGGAAAATATTCAGCGCTTGTTCCAAGTGTACTTGAAGCCACCAAGCGATCATGGCAGTTGGCGGAGAGTGATTCGATGGGATTGGATTTCAGCCAGATTACAGTTGGAGACTCCTTGGTAGAGGAAAGTGAGGGTGTCAGCATGATAATTGTAACTGAATTTCGAGTAAGGTTCCTGGCATGGGTGCTCCGTCCATTACTGGCTTATCAAGGATTGCCGTGGCTACCATCATGGACGTATGCTCGACAGCCATCTGTCCTCCGTTGATTGCGATGAGTATCGCCGTCGAGCAAGAGCAAGATCGGCCAGAACTACGCCAGCTGGTAGTTCCATTGAGAGCATCAATTCAAGCACATCAAGAGCATCTGCAGCTACTTCGAGGCTCAAACGTAAGTTTTTTTAAGGTTGGAAGATGATAAAAACAAGTTTTTCATCGATTCGTTGGCACTTCAAGCAGAATTCCATCTGGGTACTAAAGCTCAACATCTTCCAGGGTCTAATTAAATATATACGCATCCCGTTTTCCCCCGTGGGTTTCAAATGTTCTGCTCATTTTTAATCTACCCGTTATCCAACAAACATATGTTAATTTAAACGTCAAGTTCACCACCATCCCATTCCGCACAACTTTTCTCTCGTAATTTTCTCTTAGTGCTCAAATGAAGGAGGTAGGTTATTCTAGTGAATATACCCATGTTAAGCCGCGAATACATCCAGAAAGTCCCGGCATCAAGCCGGGAGATACTCCCGCCATAATGATAGTTGAACGGTACATCCAAGATAGGGTAGCATCGCGATAGACGTGAGCAAGTTCGTTATGCACTTGAAAAACTGAAATTTCAGAAACGAAGATTAGGTGATCGGCAGAAGGTTAAAAACAAACAAATGAAATATAGAAACGAAGACAGTGATCGACGTATTCCGAATACGAGAAGCCATTCCCGGAGATACAGTGATAAGAATCTGATCGAGAACACAATGAGCACACTACCACCGGGAACATGAATTCCATGGAAACACGGAGACAAAGGTCACAGTACTGCAAAAAATGCGAAATTTTTTTGCTTTAAAAAATGCAGCACTGCCGGGTCCCACCACGACAAATTTGTTGTCAGTTGACCAATAGAGTGTGCGCCTTTAAGGTACTGTAGTTTCAAACTTTTGGCAATAGATTTTCCACAGTTTTCCCGTGAAACAAAAGTTTGATACTACACTACTCCTTAAAGGCGCACATCTTTCCGCATTCAACTAACAAAAGGTTGTCGTGTCGAGACCCGCGGCCACTGCAATTTTCGTAGCAGAAAAAATTTGAAATTTTCAAGTCTTGAGGATAATATATAATAGTTTTACCTGAACAATGGGAATTTGCATTTACAAACTATCCAGACAATCGCTGAACCCGAAAGTATCACTAATAACGATCGAAAGTGTCGCGGAATGTCACGTATCGATTGGTAGATCATGAATATGTTGCCAAGTAACGCGAAAATCTTGAAAAGTGGGGGATTTTGCTTTTAAAAAAGCCAAAAAAAAAAACTTAAATTCGCCAATTCCCAGTTTGAATTCCCTCCAAAATGAGAACTGCAGGACCCATCAGCGATTTGAGTGGGCGGAGTCCGAGGGCGCTGATTGGTCGTGCAGTTCTTATTTTGGAGTGAATTCAGCCAAATTTGAAACATCTCGTTTGTTTTGCAATTCTTTTGTGTTATTTTCGACATGGGGTTCATTCTGGCTTTCCTCATCAATGGTGTAATGTCGTATTTAAAACGGGACAACCGGGACGTTTTTATGAAAACACTCAAAATAGAACGGGAGTTACAAACTGGGCGGTTAGAAAAAAAGATAGGGCGTAAATTTTAGTGTATTCGAGGCAAATAAAAAACTGCATGTTTCCAAGTCATTAATCTGCATGAATTGATTAAACTGACTAAACTCACAAACAGAACTTTAAAATGTGCAACTGTAAAATCATGAGGTATAGAAATTGTCCCGTTATCCCGTGATAATTTTGAGAACGCAGCGGGACGTCCCGTTCCCGTGAAAACACTCAAAAAACGGGACTACGTGACAAACGGGACTCGGGACTTGACACCCTTGGGCATTCCTCATTAAATCACGCTCCATTGATAATCGCCCTGGTCGTGTACTCCACACGGACAAATCACATTTAGTTTTACCGAACTAAAATCGAGAGAATTGGCAGAGTATTTGCCGCCTGGCCTACGCCCGGCAAAAACTTCCATGGATTCAAAATATGGGCGAAGCCAGAAATCCGTGATATTTTCAGCACATTTTTTTGCTTCGAATCTCAGTTTCTCACCACAACGAACCACTTCACATTCGGTTGCCGCCCCCTTCGAAACGTGGACTTCCAACTGCATTCACCGATTCGACACTTAGCTGGTACTGACATCATCATATTTACCAGCTCATACTCGAACTCCGGAATATACGGCACCACATAAATCGGTGAATGGCTGGTTCTGGCGGTGGCGGCTCAAATGACACTGTTCCTTGATCTAAAATTTGTTTTTTTCTAAACAATTGTCACTACCAAATCAAAAAAAAAATCTTACCAGAACTCATAATTTTTGGATTTTAATTTCGTAAATTGCAAAACAGAAACTGTATTGGAATTTTTTCGCTTTTTATTTATGGGAGGGGGAAATTCTTTGTTGTTGTCAATAAAGTAAAACAATTACAGTAAATGCCAGTACAATAGATTTTCACGTGTAATATATTAACCAATTACTATATTTTCAATAACTCTGTCCTCTAAATAGGTAGTTGGGGGGAAGGTGAGGGAAAATGGAAATAATGAAGTGAACTGTTTTGCGTACTTGCGATAAAAAAATCAATAAATGGGAACAAGCCGATGATAAACTGATAAACGTGAATATCGAGAGAGGGAGGAAGAAAGCACGTATACCCGTTAATGAAATCAAGTTAATGGAATTATTTGGTTTGTGAAACAAAACAACGAAAATGAATATCAATGTTTGAGCATAAGGAATGAGGGAATGGCACTCTGGTGGTGGTGGATAAATGAATCGGGGGGAACGGAATCTATGGAAGTCTAGAATACATCGCATCGAGTTTTCGGGTGAGTAGTGATCCTTCAGGTTCGCCAGACGCTTGCTCTTTCCACGTTCGCGTGAGAAGATCATTCTCGACGCCGAATTGCTCGGAGAGACTGATATCGCGCACTTGCTGGAAAGACAAGAGCCGGCTTCTTGCCAACAACCATGTCATCGAGGATCGCCTTTCGAGTTGGTCGTTGTTGCACGAAAGCTCTTCGAATGATCCCTTGATTCCTTGGTCGGCGCAACATCGCTGGGACGAGCACCTAAGGGAATTGAAAATTACATATATATATATATATATACACTCCTCAACGCCGAATAAATATTAGAGCGCGCTTACTGAGCTTCGCGTTCATCCGCGGCATTTTTGACTTTACACTGAAAAAAGCAGATATTTCAGATTTATCGAATTTTTAGCTTTGTTACAATTTTTTTCATTTTTCGAACACTTTTGTTAAACAGTGAAAACTGAATTAAAATGACTAAAATGAACTTTTTTCGTTCACTGGTTAAGGTGAAATGGTTGGAATTTGAAGAAATCAAAGGGATTTTTCTGAATTTTGTAATAATTTTCTATTAAAAATCGGTTTTAAACCATTTTTTGACCCTAATGTCACAAATGTAGAAACCGGTTTTTAACGGAATAGAAAATCTTTAGAAAATCACAAAAATCCCCGTTGATTTCTTCAAATTCAAACCAGTTCACAACCAGTGGACGAAAAAAGTTCATTTTAATTGTCATCAAATTCGATTTTCAGAGTTTAACAAAACGTTTGAAAAATGCAGAAAGAAAATTTTAAAAGCTAAAAAATCGATAAGAAAATATGCTCTTTTGAGCTGGAAAGTCAAAAGACCGAAGATGCAGAAATGCGAGGCGCAGCAGAGGATCGCGCTCTAATAATCGGCTTTCGAGGAGAGCGTGATATAATATATTTTTTTTGAGAAATTTTGCAAGTATGTTAAAACGAAAAAACCAACCTCAGCATCAGGTACAACAATAGCAATAAGACGTCTTCAGGCTCATTCTTCATCAACAGATGATTGAGCGACATATTTCGAGCGGACATACATTTTCTCAATCTTCCCGGTGCCACGTATCCTCCTTGCGAGAGCTTGAAAATTCTTGCGATCCAAAATTTTCAGCGTTCCCTCAGGAGTCCATCGTCCAATGTCTCCAGTATGCAACATCCTCCTCGATCGTCTCCTTCGTCTGTTGCTCTTATAGTATCCCTTGAAGACGATGTGTTCCTTGCGAACAGACACCTCGCCGGCTTGATCCTTCGCGTAATAGTTCAACTCGGGCACGTCGACCAGCTTGATCTGACACGATGGGATTACCATTCCGACGTGTCCGGCTAGCGAACTCTCCTTTCATCGAGACAGTCCAAGCGGCGACACATTCCGGTTGACCGTAACCGTCGACGGCGACCCATCCCATACGAGCGGCACGAACGAAGGTGAGCACATGCGTCGAAAGTGCGATCGTGATCATCAGACGCACACGCCCTCCGAATCCATCGCCAATCTTTTCGAATACCAAATTGTCGAAGAATCGGCCCCGTCTTTTCTGATATTGAAGCTGGAAAAAAAAAGAAGATATTAAATACTATCAAATCATTCAGATCTCTCATGATGCCATATAGTCTCTGGCCTTGTATGAGATAGCGAACTCAAACAACATCTTCTTCAAAGTACTTCACTTCCGACATCACTGATTATCGTAAAGCCGATTAAAGACACGAGAAATCGGGCACCATTGGCACAGTCGGCCTCAACTCTTTGATATCCTCGGCCAACACACGTATGTGGTCACCGCGTTGGAATCCGACTTTCGCGCCGACACAGAAGCACACACTCTCGATGACTCTCTCGGAGCGTCATGTGAGCCAACGGAAGGAAGCTGATCATCGAATCGGTCGCATGCCACTGTGCTTGTAGAAGTCCATACACACACGTCGGCGATCACGTTCGCGTGAGTGAGCATCACATTTCGGTGTTCCAGTCGTTCCTGACGTGAAGCATATGGTCGCAAGATCCTCTGGTGACGTTTGGTGGACTGTGTGCTGAACGAGTCTTGCGTTCTTTCCTGTCTCGAGATCAAGTGAGCACCTCGACTCCGAGACGATGACGCAGTCGTTTTGAGCTCCTCGGTGACTGGTTCCATCAAGCGTGCTCAAACTTGGGCATTGCTCCTTGAACTTTAAGAGACCTGAAATCAAATTTCCTTTTGGTTTTAATTTCCTTATCTAAACTCACCAGTGGCCTTTGAAATATCATCACAGACAACTTTCGAATCTTGATCTCTGCCTGATTCAAAATGAATATCCAACCGCTTCTATGATCCAAGGGTCTCGTAGATCGGCACAGTCTCATTCGAATAGTTGTAGGTGATTCGGTGATGATCCATTCGGCGCAGAGTTGCTTCGATTAGATCCCAATGTTCTCCGCCGTTGCCAGTCGGAACGCCGGAGCTCACGGAACGCGACGGACACTTTGTCGGCTGGCTCAGAATCGTATTGTACGACTCCCACACGTACGAGATTGAACCATCCGACTGTTATGACTCGACGTCCGAACATCGGCCCGGTTCGAGAAAGGGGCTCCACGGCGAACGACCACCCTGGTAGAGGGTGCGCGCGTCTTCGAACAGGAAGCCTCGTCAGTTCGTCGTCCTTCAGGTGGCGCTGATGCGGGTACCATCCTGGAAATTAACATTCTAGTCGGGGGGTTTTTGTAATTTTTTTTTCGCTCTTTTTCTATTGTAAACCGAGCCACGACGCGACACGCCGTAAATCTACAAGCCCAAGTGGCCTAATTCGGCAAAATCTTACATTTAAAAATATGGGAGGGAAGACAGAACTCCATGATTTGAGAATAAAGGAGGTAACGGTTCGGGCGACGCCATTTTGAACGCTCAGTATCGACATGAGCTCAACAAATGAGATCGTAATGAAACTGGTCAAAAATTTTTATGGCGGTTCAAAATGTTGAAAAACCTAAGTACACTGATTTTTATCCGGCTAAAATCACGAATTTTCCCATTTTTCCGTGTCACATCTGTTCGAAGTTGGATTATTTTCTTGGAATTATCGTTTTTTATTACTATTTTAAATTGGTAGTTTATCTCATTTAATGTCGTCGATTAAGTACTTTTAAAGCCGATAGATAACCAATTTCGATATTTCGGGTCACCTATCGGCTTTGATAAAAGTACTATAAGACAAAATTAAATTAATTACCAATATAAGTAATAAAGGACATTTCAAAAAATCCAATTTCGAACAGATGTGACACGGAAACAAAATGAGAAAAATTCGTGATTTTCACCAAAAACAGTGTAATTTGTGCAAAATTTCTGTGAACCGACATAAAAAATTTTTGAAAATTTGTGGATTTGAGCAGCTTCATTACGAAATTCGTTCATTTGAGCTCATTTTTGGTCTATACGTTCGAAATTGGAACGTCCGAGCCGTTGGTCCTCCTCTCTTTAAGTTTAAAAAAAAAAAGACGGCATTATTTTGCCCAGTTTCTCTCCAAAACTCACCGGCAAAATGCGACTCTGATTCATAGGATCCGTGGCTGACATTTCCCGAATAGGTGACCCCTCTGAACGAGTAGGATCCCGACGGTCGATGACGAGCTACAAGTAGTATCCGAGGCCCTTGGTGACTGCGGCGGCGGCTCCGATATTTGAACGTCCGGTGGAAGGGAAGAGTTCGAGCTTGGTGCCGAAATGAAATCGACAATACTTCTGGAACTATTAAATTATATATAGAGAGGACGGGTGATGATGAGTCATCCAGGTTGTTGTTGTCGCGCTGTGCGCACGCCCGCACTGATCCCCACAAAACAAGACAACTTATTTGAAGTTACGAAATCGAAGTTTCTTTGTTATTTTATTTTTCAAGATGGTTTTGGTTTATATACCATGTAAAAAATACCTAGGGGTTTTTTGCGCGTTTGGACTCAAGTAGAAATGTTGAGCCTTTTCTGAAAAGTTTAATCCGATCAAAATTTTGGAAAAAGGTGAATTTTAGCGACGCCGTGGTTTTTCGAAATATTGATCTGCCATTAAAGCCCGTGGTGTAGTCAAATTTTTTTATTGCTTTAATTAGCGACGACTCAAAATTGTCCTTCTGTAAAGAAAACACAATTACCCTTCATAAAAAAACTTAAATGTAAAATTATCTAAAGTTTGAAATTTGACCGTGGTCAAGCGGCTGGAAACGTTTTTTTAATAATCGTCAAATAATATACAGTGCAATGATCTCATTGCGTTTTCAACTTTATTTAACTTTAAAGTCATGAACGGCGAGATTTGTTTTTAATTTTTCACCTAGAAATCTCGCCGTCCATCGGCTGTAAAATACCTAAATGAAGTTGAAAACGCAAGATAATTGCACAATATACTCAAAATTTGACGTGTTTTCAAAAAAAAAAATACTGTTTCCACCGTAGCGGCGACGTCGGTCAAATTTCAATTTTAACTGAATTTAGGCCATTCGCTTTGTCATAACTTGTTTTGAGGAGTTTTCAAGAAGTTTCATTATGAAATTCGGTGTTTTCAGACAATTTTGAGTCTAACTATAAAAGAATCGACTACACCACAATGTCAGATCAAAGTTAATTTCGAAAAAACTCGCGAATTTTCGCTAAAATTCACTTTTTTTCCGATCGGTAATTTTGATCTGCCATTAAACTTTTCGGAGAATCTCAAACATTTTGAGGATAAACGAGCAAAAACTAGTCATTGTTTGAGTTGCCAATGGTATATAAAACATGAAGACCATCCTGTGAAAAAAAAACAACAAAAACACTTGAAATTCGCAATTTCATAAGTTCTCCAAAAGGGAAAACATACACACACCTCGATTGAGACTGTACCCACGCAGCCGAGTCTGTGATAACCATTTTCTGGTGTTTCTGTGTTTACGTGGTTAATAGTCTTCTGACAAAAGAAGACATGAAACCGCTTCTAAAATGAGATTAAATTGAGGAAACGACGACGACGCAATAAGAGGTGCAAGGAGTGAGGGTGAAAATCGAAAAACAAAGAAGAGATCAACGTTATTCCATCTTTAGAACTTTCTTCACTGCCAGCAATTGTTAATAATAATAAGGTTTTTAGGTCGATAACTCTTTCGGTGATCAATACAAAAAGGGGTGAAAACCCGCCTCGACAAGCCTTTCGATCAGGCCAATTTCTTTATCACACTCTCCGCAGATTTAGGAACAAATTTCACCTCCCCGGCAAGGGGGCAAAAGTTTCGAGAAGTTGTGTTGCGCGCGAAGGGGATGGAGAAGATGGAGAAGATAGGCAAACACGTACACCTACTCAAACAAGTAGTAGTGATAATTGATTTGATTAGTGATTCGGGTGGGCAAAAGGAGCGAGAGAGAAAGTGAGAAAAAGCGAAGAGGGAACACGTGTAATCAACAGTGTGCCGTTCACGCCCTTTGGACTAATGCAGTTTTTTTGGTGGAAATTCAATTAACACTGAAAACTAGTTTTTAAGTGTTTACGCTGTAACGGGCCAGGTTTATGAGGCAAAACGATTGAAGAACTTTAAATGTGGGGTCCGAAATCTGAAAAATATTTTAAATTGACTCCAAAATTTCCCCTGACTCCGAAGATGCGAAAAAATTCAAAAAAAATTTTCCTGACTTTATATTTAAGCCTGAAATCGCCGAATTTCATTTAGAAATTCGCATTGGGGACAAGCGCACTTGCATGGTTCGATTTTTTTTCGTTTAGTTTATTTATTTTCGCCGAATTCAATGTTTTTGAAGCCATCATTGACCATTTTTGTCGAGTTCTCATGGAAAATTTTTTTGAGAGAAATTACATGAAACTGACTAAAAAATTAAATTCGGCGAAAATAAGTAAAATAAACGAAAATCTTCGCAAACTTGGATGCAAGCGCGCTCCAATGAGAGATTTCTTTGGGCGCTAGGTTGAAAAAATGGGGGCACGAATGAAATGTCGGCGATTTCAAGCTTATATATAAAATCAGGGAAATTTTTGAATTCTTTCGCGATATTCCGAACCAGGGAAAAATTTGAAATCAATTAAATATTTGGTTCAGGTTTCGGTACCCCGCCTTTAAAGGATTTTTTGGCTTAAAATTGGAAACTCTTGGTTAAAACTTGTAGAAGAGTAAAACTGTACACGTTTTAGACGATTCAAAAGTATCCAGGGAAGTATGCAGAAGTTGAAAAATTGCGAAAAACAAATAAGGCATTTTCTCAACGCGTGAATGCTTAGACTGAAAATAGTGTATTTCTTCCAATATATACGAAAATACGACTCGCACTGGTTTTCGATCGATATTTATAGGTGGAGTTGCTATGCATAACATTCCGGAAAAACACGAGATTTGAGGAATTTGAGCAACTGTAAAGCCAACAAAACATTTTGTACAATTTTCTTGTTGGTCTTCCTCAGAAAATTATCAATCAAAAACCAACTGACGCAGAAATCGATATATTCTGCTAGTTTTAAAAAAACACATGATTTTTAATCAAAAATTGTTAAAGTCATGCAATTTTCCTTCAATAGTTTTATACGAACTATTTTTTCTCTGGAATTCACATGCTTTAAAGCAAACGGCCGTTTCTCAAGCGGTTGTTGGCTTCCACGCGATGCCATAGAAACACTGGGGCACCAGAGAAACCGGGGTCGAAGCAAATGACCAAAACAACAGACGTATGTGAGCTTTCGTTTTCGTCTTCTCGAGGAACCACCACGCTGGGACTACAACTACGATTGATAACGAAAAAAAAATAGAAGAGATGATGATAGTTTTTGTAGCAATAAAAAGAGTGACAACAAGATACACTGTATCTCACCCACACCTTGCCGTACTTCTAACGCAGATAAGGAAACCTAGTAAGATTCGGGGGGTTCAAAGTGTTGGAGCCAAAAACGGAAGCCTTAACGGAGGGAGCAATTGTTCGTTGAACGAAGAATAAAAAACCATCATCTGCGTCTCAAAAATCACGAGATGTAAGTGAGCGGGTGGGTGAGTGAAAGTGCCGGGGAGTAAAACAAGTTATAAGACACAACGAGCGACGTTTGGCCGCTGCTGCGTTTCCTCACTCTCTCCTAGTGGGCGTGTGGGCACACTCACATGGAGCGCATGCAAGGGTGTATGCGCAAGTGGTACATCGACTCGGTATGAGAACAGAGCACAGTAGGAAGGAGCTCACGTGTTGCTCCACTACTCAGTGTTGCGTACCGTCTACCCATCTGTGGGCCACCGCGGTGCAAAGTACCGCACAGTGGAAGGAGGAGAGTTGAAAAATTGGTTTTTACATCTAGAACCTCGTTTTCCTCGGGATTTTGAAGAGAATTGGTTGACTTCTTGAATTTTAGTCGCGAAAAGCGCGGGAAAAGTCTAAAAAAGATGCGACGAGTGAATTTTAGGGCAAAAATGAACCGACACAAATTGCTTATGAGCAATCGGCTTCTCGATCGGAAAACATATCACAGAAAAATCGGAAAATCAGCAAAATTCGAAAATTATGCAATTTTCTAGAATTCCAAGCGAAATTTTCTAGAATTTGAGGCAAAATGATACGGAAACCAACGGGAAATCCAGAAGATAAAAAAATCTATCGTCGAATTCTAGGTAAAAAGCTCTGTGAATTACTCGATTCTCCGTCTCATGGGGTAGACTCAAAAATTATGCAATTTTACCTTTCTAGGCGAGACATCGCAGGATCGCCTACACAATTTCCGGAGAACGATGAATATCGGCAAATCTGAAGTAGGAGAAGGAAGAGGCTTCGGATCAGTTTTTCTGAAGAAAATACAAAACCTTCGCTTTCGCAAAACTTTCGGGAAAATTCTCAGAAAAGGCGCTAAATCAAAAGCTCAAAAAATCGACGTACGATTTGCGACGGAAAAAGCTATCGAGTAAAATATCCGAATTTCTGTTTAAAACTGGAAATTGCCCAAAAATCCGTTTGTTTTCGCCAAATTTCTCCTATTTGGCGGTCACAAGGCGAGCGGGAGCCGCCCGAGATGAAGAGCTCCACAGAGCCCCTGTGCCAACAACACACCGGTACACTCACCCAAACATATTGGAATTCTCCTGAAGGAAAACGTCAAGGGTACGACGACCGCGGCGGCGACGGTGCCATTTTTCATGGGGAAAAGAACCTTGATCGAATTTGTGATTTATTATAATCGAATTTCGCTTCTATGCCACCCCAATTACGTGACCCACCTGATTAGGTGCGCGAGTATTTCAGTGCGGTCGGCCGATCCCCCGAAAAATGGAGAAGTTGTCTGAAAAATGCGAAAATTCTATAAAACGACGGAAAAAGAAATGAAAACAAATAAAATGAGGCCGAAAAGGTGAATTAGTTTATGCAATTTTAGAAATGTGAAATTGTGGCGAGATCGAAAAAAATGCGAAAAACACGAAAACAGGTCGAAATTTCGCAAATTTTGAACGACGACTAAAATTCAAATGCACAACGTTCGCGCGTTCTCGCGCCGAAGTACGGTCGGTGAAGCCCGCATTTTTGCGCGCGCGAAATTCAAATTTTAATTTTTAATATTTTTTCTTTCTTCTTTTCTTTGATTTTTTAAGAATTGCAAAACGTTCAATTCGTTCATTTTTCGAATAAAATTGTTAAAAAAGACGAAAAAAAAAAGAAAAAATAAGACAAGTTATCGGTGCAAATAAATGCAAGTTATTGTTCGGGAAAAAAATCACAATTTTAAGTGCAAACAGATTTGTAATAAGATCAATCATTCTTTTATTTTCTTCCAAATCCCGACATGGTTTTGGGCAGCCGATCATGCAGCAGCGACCTCCACTCCCCCGAGACACGCCAACGACTCGCCGGTTGAGATGGCGAGAGGCACGAACCAAACGACCATGACCTGGAAGAAAGTGTGTGAATGTTAAGGTCTCTGAATATTCCAATAAAATTAATTGGTTTTTTTTTACCGGTGTTCTTGCCAGAAAAGCGCAAAAATTAATTAAAACTCTAATCGTGGCGAGACCCATCTTCTGAGAAACGAGGTAGGTATGCGCCTTTAAAATTGGGCTACCGTAATCGAATATTTGCATGCAATTGTTCTGATTTCCGAAGAGCGAACAAGAAAATTTGATAGAAATGACACATGAATTAGGTCATAAAATTTGCTTTTTTTTTAGATTCATATAATTCAGATCTCTATTTTGGACACGGAGTTCCATGACCTTCCTCATTGAATTTTTCGCGCTACATTGACAATGGCCTGCCGGAAACAACGTGGGAAAGTTGTGTCCTCCATGCACGGACAAATACATTTAGTATAACAACAAAAATCGAGACGCGACGCGACACGCAACGCGCCGTAAACCTACCACAGATATGGCCGAGCCCATAATGGCCTAGTTCGGCAAACTCTTCCATTACAATTGATCGATGTCAGAGTGTCACATTTCAGCTTGATCTACCTAGATCTACAAAAGCGGGAATCATACGTAGAGTTCTCAACTGCTTTCGCATGTTAAGTACGCTGACGTCACAATTTTTTGGCTAAAAATTCCCGATTTTTTTGTAGATCAAAAAACTGTGATGGGACAACCTGACACCACGTGATTTATGAAAAGCCGGAGAAATGTCATTTGGCGAGCACAAAAAATACGAAATTCGGCCACTGATTCGCGGCCACGAGCCAATGTGCCTTCACAAGACATTGCACAGTTAATAGGGTGATACCCACAAAGGTAAAGGCGCATGCTGAGCATGACTGGCCAATCTAATAGCATCTACATTGATAATTGAAAAAAGAACACACAATTCTGTTTGGCAACGTTTAGCGACGAGTGACATAATTCTCGGAAAGCTTCAGCTGAACAATTTGAGGGATTACTTAACTTCCTGTTTCCCATCGCTTCACCGTCTTAGATAGTGCCATTGCCGATTGGCAAAATGGGATCTGCCCCCAACTGCCAGTTGAATAGGATTGTCTCTCTGCGTCTATCGGTTCTCCAAGATCTTGCGGCGGTGAAGCCGTGTGTGTGGGAGTGTGGCTCCTTCATGCTAAAATGTGTAACACTGCGGGCAACGCATCCGATTGGTCGTGTTTGGCAGCGCACGGCGGGAAAACGAATCCGGATATACTACATACACAAACACACACTCACACACACCGAAGGAACGTTTCCGAGACACCTGAACTGGAGGACTTTTTATGATTTAAGTGTTTCTGCTGCCAGCAGGATGTGTGTGTGTTGTCAATAGGATATGCTATTTTAGTCCACATTAAAGTGATGAAACATCAAACCGGGTAACTTAGTCCACCCAACACTCTGTGAGCGATTAACCCTTTAAGAGTGCACTTGCACTTCTAGGCAGGATTCAATAGAATTGGGGCCTTGGAGCCTAGTCGACTTGCGATGTGAGAGGCAAGGTTGGCAGAGCTAGGATAAGCTTCTGTAAATGTAGGTCTGTAACAAGCAAGGATCTCGCTCTGGTACTGTAGCGAAATTTGAGATCAAATTAGGTTTTTCAATATTTCCAGTAACTGGCACTGTTTCCGGCCCAGATCTTAGAAAGAAAAGAAAAAAAGTATGTTAACCAAGGCGTGGGCGGCAAACGATTCCGGCAAATCGGCAAATCACTAAGTGAATTTAAAATTTCCGGGAAATCGAACTGACACTTTACGCCAATCTGCCGAACGATTAGCAATTGCCGCCCACACCTGATGGATACGTATATATGCTTTCACTCTTGTGGTGGCAGATGTATCACTGCGGTTTAATGAAAAATGTGGGAATATTTTTACAAACTTGCGGCGTCAGCACACCGCTCCAAACCACGCAAAATCAGATGAGATGTATGCGTCTCTTCCCGCAGATTTTTCGAGGATCACAGCAGAACTTTCTAACTCCACCTGTCTACTGAGAAAAGAGCCAAGAAAGCATATTTTCCTCGTATCAGGGATCGGAATCCCACGGCTAGCTAGTTGATCCTATTGCATCATTGAAGCATCTGATTCTCCACTTTGTTCGCTTTAAATCGTTTCAAACTGAAAGCGCTCTCAAGGCCGTCTTCCTCCGATTTTCCGATCATCCTACCTTTTGTTGATCAACACGTGCCCGGCGATCACAACACTGTTCAACCGGAATATCGTGTGAAGATGTTCCACCAAATGGATCGTTCGCTTTTTGGCTCAGGACGGAAGAATGTGTTACTAATTTCCATAAAGTCTGTTCTGTTCTAAAAGTTATGAATCTTCTGAAAAAATTTCAATCAGACTTAGATCCTGTCAATACATTCATGGGGAAAGCAGTGGAGTCGAAGATTTTTTATCAAAATATATGGCTACGTAGTCAGGGAGAGACTGGCTCCTTTGTTACAATATATTAGGTTTTGTTCCTTAAAATGTTCAAATGAAGCTGAAGATTGGCTAAAAGTATATGATTTTTCAATGATTTTTCAAAAATTTCAAGGTATAAATCTACGGAAACTAGTCAAATTTAAAAAAGAAACTAAATTCGATTTTGTTTGTTAGTTTGTTAACAGACAGAGCAGTTATTTTGATAATTGTAACCTGAACTCTATTTGTCTAGTTGACATCGTGAAGTAAGAATGTTTTAATGTGGCATTTATTGAAATTTAATTGTAATAGAATATTTTATTATCTAAAAAAATAGAATTGGATTATAATGTTAATTATTTTACTGTGGAAAAGATCAGTATTTTGTGATAGTTTTAACCTAAAGACATTTCTGAAGATCGTTTTTTGTGAGAAAAAATTATTATAATATGTGTCATTTAAAGCAAATTTTAAAAAAGTGCGGTCTAGAAATGTTCAACTATCAAAAAAAAGTACATTGGATTTTGGTGCCAGTCAATTTATCAACAGAAAAAGTTGAGGGTCCTAAAATAATTTCCAAACTTATTAATGCACGTGAGCATGAAAGCTAAACACTTTTTTGGGATTTTTTGCGCAAATGAATAGTGTATTTACAGAGACAATGGTAGATCAACTTAAAAGAACAAGAAATTTGCAATTTTTCCAGGTAGGACACTTTTTACTCGAATATAACTAACCTAAAATAATTTCCAAAAGTTTCAATGGTGGTAGCACAAAAAAAAACAATTTTTTTGATTTTTGAAATGAATGTAGTTACAAAGACGGTGGTACATTGACCCAACAAAAGTAACGAAATTTACTACTTTTGTCAGGTAGGAAACTTTTTTGCTACTCGAATATAACTAACCTAAAATAATTTCCAAACGTTTTTGTTGGTAGAATGTAAAATAACTTGTTCTTTTTTGGTTTTTTGAATAGTGTAGTTACAGAGACAATGGTACATTGGCCTGAACAAAAAATTTAGTTAGCTATTTCTCCATTTTGACCTATTGGTCCCCTACAAATTAGTAAAAGGACCCACAATCCAGTTATTTTTGTCGGTGTTTAAGCAGACTACAACCTTCGAATTATTTTCAGAACCAGATGTAAAGATTTTAGTTCGGTGCTGCAAAAACCATCAAAAAATACCAAATTTTTCGGCCTTTGTGAAGCACGGCAACGAGCAATTTTTGAGATCGTCTTTGCCAGCTGCACACCCCAGGTACAGAGACTCACTTTTATATCACGTGAACGAACAAAAAATTTGCAATTTTCTCACGTAGGCCACTTATTTACAGCTCTAATTTCACACACCTAAAATACAAATGTTCATCCTACCCATATATGTAGTAAGAATATTTCAAATTCAAATTTTCATGTACAAATCAACTCGTCGCCACCGTCTTATTGTTTCCCTGGATTTCCTGATCTGACCTTGTCACTCCACGTATGTTTGTCTTTGTGCCCACCTCTCGTGCTCACCTTGTTCCAAATTCTACCGTGAAAACTCATCTGAACGCCATTTTCGTATGTCCTATGAGTTTTTCGGATGCGAAACTTGGAAAAACGTCAGACAACTGCAAATGACCTCCCGGGCGTCGCTGAGAATCGGTGATAGCCTTGTACTGCTTAGATGAGACCAGATACAAAGTGCACAACAAAAAACAAATTCGCTTGAGAAGCGCTGGCGAGAGATTCGAAGCGAAAACGAGTTGATTGACAATCCGGAACATATAGACACACCAGAAGACAAAGTGGGGGAAGAAAGGAAACAAAAAAGATAGAGAGGAAGGAGATTTTGAAAAACGCCAATCTCTCTGTGTGTGGGCACTGGGTGACAGGTGAAAAAGTGAGAGTGAGAAAAACGTGGTGGGTACTGTATTGATGAACGATCCAAGTTGCATACTCAAATCTCGTTGATTGGCTTGTGTCCTGGTCGGTTTGATAGAAGGTGAAGTTGGATTTTGTTCACTGAATTATTGGATTTCGAGACATGAGCAAGCTAGGGTCAGGATGACTGTAGTGGCCGGCTAACATTCCGTACACCCTTTGGCCGACTGGTGCGTGCAACCAGGGCTAGTAAGGAGGTACATCCTGACCGTAAGCTTTTTAAAATTCTGAGAACACCCTACAAAAGATATTTGTAAAGTTCTCCAAGACAGGTGCTAAAACTTCTGGAAAGAGTAGCTTAGAGTCAGAATGTATTATTGCGATCTGATCTACAAAAAACGCGGGAGTTGAGACGCAGTATTAAGTCTATCTCATTTCGCATGTTTAAGGTAGCGTGCTGAACAATTTTTAACAAATATTTCCCGCATTGTTTGTAGATCAAACTGTAATGAGACAGCCTGGCACCACGTGGGTAGGTGTCGGGATGCACGTGGTGTCGGAGTGTCTCATTTCAGCTTGATCTACTAGATCAACAATCAGAAAACAATGCGGGAGACGAGACGCAGAGTTCTCAACTGATTGTGCATAGGTAAGCTCGCGCTGACGTCACATTTTTCTAGCAAAAAATTCCTTTTTGTAGATCAAACTGTAATGGGACCCCATGGCACCGTGGGGATGCATTAGTGATGTAGATAAACCTTGAACAATAAATATACATTAATTTCGTCATGCTTGAAACTTGGACCCAAAAACAACTATCTGTAACTAGAAATTCTACAAACAATGAGTTTGCGACTTAAAGCTGGAAGTATAAAAGTTGCGCAAAAAGAGACCTGTGGTCGGGCGCTACCACCATAAAATTTTAAATTTGCCGGTCCCCACACCTCGACATCAAACGTGCAAGCCGGGCAACTTGGTACATCTAGTTCACCAGCACTCCAACTAGCTTCCCAGAACGCTAAAAACATTGTTAAATTATTACTTGTTCAGTACATTTGTCGACTCGACACACCATCACCCCACCTAAACCCAATAAGGAAGTCGATATCTACTCATTTTAGGGACCTTTTTTGCCGCTTTTTATTGATTTGAACAAAAACTCAGCAGAGAAGTCAAAAATTGCCAATATCCAATTTTTCAGTTCCCAAAGATTGTGAGTTTCAATACCTACTAAATCCTCCCGTTCCGCCGTTCTTGATATTATCTCCATAAATGTCCGCTTATCTCCTCTCTTGTACTAAACTAACGTTCACTTATCCACATAATAAATACAATAAATGTATAATATACAAGAATAAATACTACACTATATATAATATATATATATATATATATATATATATAAGTATATAATATATATATGTATATCTATCAAAAAATCAAACAGGATCTCTATTTTCCTCCAGGAGAAAAAGACGATGTCAGGTTGTGCGCAACAATACTCTCACTCTCAATACCGCGACGACGTGGCATACCTCCCCCCATCCTGCCTTTCTTCCCCGTTTCTCCTGATCGAAATTTCCAGCAGCACACCGGAACTTCTTGGTTGGCATGTGAAGCCGACGTGGATCGTGACGGTGATGATGTGGCGGATTGTGATATGGCGGAATCGTGTTTTTTATCCGGCGAGTACTGCGAGAATTGTCTGAAAGAGTGGCACGGCGCCTGTGTTTCGGCTCTTTTCAGCATTTTGACGTGAATTTCATCCCCAAATTTCTTTTCTCATCTATCAATTTGAAAATAAATCAAAGAAATACAAAAGCTAAAGTTCACTCATGTTTTAGCACACGGCGCGAGAGGCGGAAATCGCCTTAAGGTCAGGCACAGAGCAGGCGTGTAATGCCTACATGGAAGCCTAGACTTCTCTGAAACTGGGTAATGTTGTTCCGAAGTGCAGTGCCTGAAATTATACAATGTTGTTCTAATTTTTCGGTGTATATCAAGCGCTTATATCCGTGTGTCCATAGTTGGTAGTCTATGTAGTCTCAAGTTTTGGCTTCTGGTAGGATAGTGAGTTGGGGTCAGTGTAGGGATATGGTCGGCGAAATGTAGTGGTACAATAGCGGTACGGTAGCAGTACTGTAAGATTATGGGACTCTCAGAAAAAAAAGTTTGCCACAGAAGTCGAGGTCCGTGCCGGAGGAGAACGGCTGGTTATCAATAAAGAATACCGACACTTTATGATATCACCGGTAAGCGCTAGACAATAAAAATTCGCATTCTGAGAAGGACGACTGTAGCAGTTTAGCGTGTGTCCGAGTAGATCTGGCGTCTCTTAATTTAAGTTGTAGTTTCCTGGTGTCCCCTGATCGCGAACTTCCCGAGGTAATTAGTAAATATTTTAGTGTGGCCTATGTTTACTGGTTTTACGGACTAGCCCGAGAAAAACTCTGGAACGAAAAAACCCAAATGGGGGCTCTTATCCAAGACTACCAAAGTTTCTATTCTATGCAATTCCCTAGTTTTGCATTTCCTCCGCCTAATAACGCATGTTGTTTACCGTCGACTATCCCAATGCTAAAATTTCGGAATCATGTGAAAATTTACCTGATCGAAAGTATACGGTAACCGTAACATTTGGAAGAGGAGAAAGGAATTCGTTGCAGCCTTGGCCCATTCTCCCCACAGGCATAATTCAAAAAAATATTTATCGCAGCAAGAGTGTGGATTTGCCACAACCCAGCGGGTTCTCCCATCCAGCATCTCTACCTTTGCGGAGGCAGACACTGAGGACCTTGATCTGCCGCCGCGTTCCGACAAATGTAATAGCAGCCCCCCGCGCGATAGCTTTTCACTATTTCTTCTCTTTCTGGCTACTGTGCTGCCTCCTCCTGCGCAAGGATGATGCTGCTAGGATGATACCCTAGAGATGACGGAACGATCCGATAATTATATTATTGATGGAGACTAGAGATGTGAGATAGTCCCGCAGCGAAGGAACCTGATCTTGTTACAGTCTTGGAACCCAGGAACAGCGGATAGCGTCGTCGTATTATCGTTATTCATTTCGTAAATAGATTTTCTCTAGGATTGATTCCCGGTTGAGCTACGTCACTGTCCGAGAACATTCCGGAATGTTATGTGCAGATGTTCTTTTAAATAACCTTTCTCCTTCCTCCCGCAACAACTTTCATTTCTATGCGTCGAGATACGATATCCAAGGCCACAATCAGTATCTTTTTTCGCTGCTGACTCTCTCTCTCTCTACTCGTAACCTTCGCCCATCTCGTCAATGGTTCAGAATCACCTACCGCAAAACAATTGAAAATAAGTGAGTGTGGAAGTCACGTCATGAGCGCCCAATAGATAGAAAGAGAGAGAGAGAGAGAAGTGCCGAAGACAGTGTCGGAATAGAAAAGTGGAACCAGCGGCTGGATCGTCATTTGTTGATGATTCCTCGTGCCTGCCATTGTTATTCGATATTCCGATATTCGATTCTTTATTGCCGCCCCCGCCTAAGAGCCCGTGAGAATCAGAACGAAGCTTGCGCGCTCCCTATTAAAAAAAAAAGATTATCAAATTTGAGCAGAAGCGGAAATGGAAATAATAGCGGATAACGTTACAAAAAGAGCGAAATGTTTTGGGCAATAAATTTGTAGTTTGATGATAAGAGTGGCATTTTGATATGAGGAAGCTTGCAGAATGTAGTGGTGAACAGGAAGCTTTCGCTATGGAGCAAAATGGATTCCGTCATTTTTAACTTAAAGAATCGGAGTCGAGATGAAACACCCAGCCGGGCTGAAAAATTATTCTGCTATCGAGGCATGCTTGAAAGTACCAGGGCCTTACACAAAAGATCAGGGATCCTAGTTCTGCAAAAAAAATTTCTGCATAATGAAATGGAGAACAGGGCGGTGCGGCAACCAAGAGTTTCGGCAACTTCGGCATTTGCCGAAGTTGCGGAACCCACAACATTTTGGTAACCGGCAATTGCTCTCGAAGTTGCCGAATTCAAAAAAGTTCGGCAACCGGCATTTCCGCGGGCGAAATCTCCAAATTCAAAAAATTTCGGTAACCGGTTGCCTCACAGCTCGGCTGGAGAAGCCGGTGGTCAGCTCATAAGAGTATGGTTCACCACAACCCAGAAATACCATCTTTCAGTGCCTTATACTGTAAAAACACTCTGGCTCAAAGTGCCCCAGAGGCCCTGGGATCTATCCTTACCCTGGAAAACTTGTGTGAAATTTCGAATATTCACAGCTACTAGGTTCGTAGCTCTAGCTCAATGTTCCCACTCTGCCTTCCACAGGACGTATTTCTACAATATTTTGCACAACTTGGTACAGTACTCAGCTTTCCCTTTTTGCACCAAAACATTATTGATCCTTACGATTAGCGTCCTAGATAGGCTACGCCATCGAGATCTCGAATATGCTAATTCTTAGGAAAGAGTGATGTTTCATCATCTCCTGGGATTAAAAATTTCGGAGGAAGAACATGGCAAAAATCAGGTTGATCGTGACACTCGTCGGGGGCTCCTCTCACTTCTTCCCCATCTTCATCTCTCCTTCTCTTTCCCGATCCGATCTTTTTTCCTTTCTTCCATTTTGTTTTTCCTTTCCATTTTTTCTTCCTTCTTGTGTTTGATTAGCCATCCTCCTTGGAGCCCTTTCACCTTGTTTCATTTTTCTTTATTCAGGATTGAATAGAGATATGGTTCCGTAAAATCAGTAATTCCAATACTAGAAGAATTAGTAAGACATTCGAAGGGGGGAAAATTCCGCGCAAAAATCGACAGGAGGTTCGTCCGGATTGGGTAATCGTCGGAGAAATGAAAAATCGCGCGCGCTCGCCCGCGCAGATGAGATATATTCTAAATCACATGGTCAGCGAAATGATCTACGATGGATTGCGTGATCTATAGGCGTATCAAGGAGATTAGCACTGCTGGGCGTCGGGATTCCTTGAAGGAACACGATCTTTGAAGGAGACGAGGAGGTTGTGAAATTTAATTGTGATATCATTCGATTATGTACTGGCCTAGAATATACATCATCTTTGAGAATTCTGGTCGGCTGTTTTCGGGAAGTTCTCAAGGATCGGCGCAGCCATGTCTGTAGGAAGTGCTTATGCCAACCCCAACACGTCACCTTCTCAATCTACTACTTAGAAGTTCAGTCCTGCCAATCCGCACGCTCCCACCACAATGTCTTCGTCGCCTATCCGTTTCTCCTGTCGAGTCTCGGGTCAAGGCAAGTGTGCGTGTGTCCCTTCAGTCGTCGAAGTCTTAATCATTTATTTTTGCTGCTAAAGTCCGAACAGTTTTTTCTAGCCGTGTCGGCGAAAGGGTTCTTATTGCGAATTCACCTCCTCCCACCCGAGAAATGGCCCCCCTGCCGCAAAACGTGACCTAGCATTAAATAAAAACAACACAAAGCGCCTCCTGCATCATCACGCGTATATATGTATTGTTGAAATATAAGATGGTAGGCGGGAAGAGGAAACGACGATCAAGATCGACTGAAGGTTGCGCAATCGAGATGGTCTCTTCCCGGCACGAATACCTCCTCCTCGTACAGCGTACCAGGCACCCGCATATAGCTAAAGTTCTCCGCCCATTTTTACTTTTTTGTGCTTTAACATCGCAGCAGCGCTTTTGCCATTGCGCCCGACCCGATCCAACTTCTTATTCTTGTTCCTCTACTCCCCCGCCCATGTCCTCCCGATATCAAAAAAGTGGGAGGAGCATGCATAGTGAGAGGGCGGGGCCGGGACACACACAAGGCTGGCTCAACCCGAGAAGAAGGAACAACAATTATGCCGAGGACAGTCTCGACAGGCGGCCCGACCTGCGCCTTGATTACCCCGCCCGTCCGCGTGCCCAGCCGTGCACGGCTATCTTGTTTGCCATTCATGTTCCTCATTCGACGTTCATCATGCTTCGGTTATGCTTCTTCGTGTTGGTCCGGTTTTTCTCTCTCTCTTCGGCCCTCTTTCTTCATTGGACCAGATGCCATTCGCCTTTTTGTCGCCTAGATAAGCGCATATTTCTCATCTCTTCTTTGTTTTCCATCATTCATTATATATCCAATATCCCACATCCTATATCCTCGTTCTCTAAGTCCCTCATTTTCATTCATATGCCGATCCATTTGGTACTGGTGGTGTCTTCTTAGTTTTGCTTTCCCATTCCTAGACAATTCCTTCTATTTCCACTTTTTTCTACACAATGCAGACAGCCCATCCCCACGCGCTGCCCTTGCTCTCTCCGATCTTCAGCCACAAACCGGCGCCTCGATCAACGTTCTCAATTGGCAGTGGATCAGGCAACTGGTAAGTCGAGTTCTTATGTAACTAGTAGGATGGTAGACATCGAGCTTAACGATGTCTGGCATTCGTTACGTACGGGTTCTCGCGCCGCCCATCGAAGCGCTTGAGCGCCGATTCACGGCTTTATCTCACCCCGGTCTAGCAAGTTTTCCAATCCATCCCAAATTACAGGACAAGCGGTGTTGGTGATGGAGTTAATGGTTACATGGACAAATGCGGAGGAATGTTCGGAAACAGCAGAAACAACGTGAGTTATAAAAACTGGGGGGGGGGGGGGGGGGGGAAGTGCTGTTATAGGCGTCCACAGGGACATTGAGAACCGCGTGATGAAGAGTACTTTTATCCGAATTAAATCATAGGCTAAACGAAAACAAGCATCAGGTTCTTGTGCTTTGCACATCGGAATATCCATCTCAATCAAAACGCGGGAAACACGAAAGCCTAAGCTGGACCAACTAGTGTTAAATGCTTAAATGCAACCCAAAAATGAACAGTCTATCACTTTCATCTTCCTGTAAATCAGAGAACCTGAAGCGCTGGCAATGCGCACACTTACAAAAAGTGAAAGCCGATATATCAAGCTTATCACCTAGCGGGACTTCGCCCATTGTCTCATTGTCTCTTGGCTATCCGTCCCACCCCCCCGGATCATCCGCCCCCTTTTATCACTCTCGAACAGTTTCGCGCGTTGATTCAAGGACCGATTCGCATTCGGCAGCAATAACCCGTCGTCCTGCAAGCTGCTTTTCATCGAACTTCGTCAGGCGGACTTTTTTCCAGTAGTTAATATGTGAGTTTTTTTTGTTTTTTTCTTCTCCGAGTTTTCTACAAGATCCATTAACATTTAGAATGAGATTCGGCAGCCGGTTTTCTTGATTCTAATCTCAATAATTATTTCCCAGTGTATATAGTGACACGGACAAGTTGCCCGATTGCGAGGAAATACCAAAAGTCTTGTGCTGTACCCACGTGTCTGATAATATGTCTGTCTGGTCGAGTTGTTTCACTGAGAAATACCCCCACAAATTGGAAAAATACGAGACGACCGATGAAGAGCCACCGATTCGACAAGAGCTCACTGCAAAGAAGCAGATGAAGCCAGCTAAGGCAACTAGCAACAGAGTTGTCGGAGCAGTGCTTGACGTAGACCATGAAGCCAAGGAGCAGTTCATCGACTCCAAGGATATCAGAAGAGCACCACGAGTCGGTCAAGCTTCTCAGCCAGGAGTACCCGATCACGAGGTCAACGACGGCGACCGCCGAGTGCGCAACCGAGAAGTCTCAGCCACCATTCTCACCATGCTTGTCCCGCAAGTCGGCTGACGAAGTCTTCCTCTCCTGCTGTCGCCAACAGGTTCCATGCAACTGTCACTGAGCCTCTACAGAGCATCGTAAGAACATGTCGCCGCTGAAACTTTGATCCAGGCGATCCAGCAAGAGCACTGATGAAGGTAAGAATAGTTCAATCTTCCTATTGAGTTTTTTTGAGTTTTTCCAAAATTAATTCTTTCAGTACTTCTCCAAATGCTCTACTGTGCGGCCAACCAAAACCGCGACAACCGCGCGTGCGCTGCTCCAACCTCGGCATGTCAAACGCGGAACTCGGCGTCGGCGATCGTTGCCTATGTGCAACATATCCCCGGCGGGAGACTGTGTAAGCCCTATGGAGAAGGAGGATCTCGTCTGCCGTCCAACTGGAACGTCGTGATTCATGTACTGTGCCAGAGGTGGTCTTCGTAACTTGGATCAACTAGACCATCATCCCCGTTCTCTTCTCCCGTAATAAGCTGGATCAGGTAATAATCAATCGCCGATCCTCGTCTTAATAATTTTCGCCCAATTTCCCATCTCGTCCCCCCTTTTCAACTCTACAACATTTCTCAGTGATATTCATCTGAACCGCCCGACATACATCAGTTCCTCATATTCCTAACAGGGTTAAACAAACCCATCCACACCGTCCCCCCACGTTTCTGAAGACCCCCCCCCCCCCCACTTAAGGACCCCAAGTCCTAGTTACTAAATGTGAAACATAATGGCGAGACTGCAATACTTGTCCCCTGAATCCATGTTATTTACATGATAATCTATGACATATACTTTTTTTTTAAAACACAAGCCCCCTTGAAAACGAACCTCATCATTGTATGTCAAACGGAACCTCTTATTACACGATTAATTGTTGAAGTTTAGCGAATAAATCAATCATTGCTCTCGTTGGGTCTATGCCCACAGCGAAATGACCCGGTGCAGAGATAGATAGTTAGAGGGTCATAGACATCCGGGACCCAATGGGGCCGCCCGCGGAAGAGACGATTTGTGTCGATTTACGAAATGATGACAACCAGGAAAATTTCGTATAGAATCGACACAAATCGTCTCTTCCGCGCGCCACGCCCCATCGGGTCTCGCGGTCGCTCTATAACTATCTACAGTCTCTGTACCGGTAATACTATTGCAGTAATCGCAGGTCTTAGCGATTTTTCATAGCTTCACGTATTTCTCGATTTCCTCATAAATTGAATTGGATGCCTAGTTTTTGCTGAACTAGGGGCCATTTCGGCTCGTCAGTATATGGTGGGGTAGATTTACGGCGCTTTGCGGTTCGATACAATTTAGTTGTAAAACTAAATGTATTTGTCCGTGTGGAAAGAAGTACACGATTCACATGCGTGGTCCGACAGGCATCAATAGAGCGCGAAAAATTCAATGAGGAAGGTCAGAACTCCGTGCAACTTTACTCGCGAACTCTGGTGCGTGTTATTGTCTTTATTCAGTTTTCTGAGACGTAATGAATATACTTTTTTACAGCAAAACTGGAAAACTGATACAAAAGTCTCCAGAAACTAGATATTGAAATTACAGTACACTTTAAAGGCGCACAAACCATTTTCACAGTAAACAAAAAGTTCGTGCCGAGACATTTCATCCAGATTCTCAGTTAAAATTTTACAACACTCATTTTTCCTTGAATATTTAATGAAGTAGGTTCGAATGGAAAAGAGAAGAAACCAAAAAGTGAAATTATTCTCAAAAACTTGATTCCCAAACCGGTATTTCGATTTGGCTATTTTCGACCAATTTCGGCAGAATTTTTTAGCAGAATTTTACAAATTTTTTAGAGTTAAAGCTTATTTTAATTATTTTTCTCTGAATTCACCTATATATGAATATCTTTGCTTTCGATGGATCTTCCTCAAAAGTACACATTAGTTTTATTTTTCTACAAAACTGTGCAAAGTTACGTCGTGGTGTTTGTGCCTCGGATTTAAAGAGAAATGGCATTTTTCAATCTTTTGTCGCAGTTTTTCTGCTTTTTTTTTCACCTGTTTTTTCGTAGTTTCCTAATAAAAAGATCGTCAAGTGTTTCCAGGGGTCATGGCTGGATTTGAAATTCAAAGAGTCGAGTCCAAATTCTTCGACTTGGACGACATATAATCGCCAAAGACTCCACGTCTTGAACATTTGAGATTGGTGATTTGAATCCAGGTCTGAAATCGCATTGAAGACCTAAAAATTCTAGTGATTTTCGTTCTGATTTTTTCCAGGAAATGTTGGGAGTTTTTCGAAGCCAACTCAAAATGCAGACGGATACGGCGTTGATGCTCCATACTTGCTGCTGGAATCCGTTAGGAGTTCATTGTCCGTGAGAAGTTATATTTGCCCCGAATTTTAATTTAGAATTCCAGATTGACCCCCAAAAGCTAGTGTGAACATGCGAAATGTCTTTCTGAACGCTGACAGCAAGAAATTGTATCTCTTGAGTCCGGCTTCGCAGCAACACTTTTACGGCAACGGGGTGCAGTCGTCTGCATGCATGAAGAGGGCGAAGGAATCCGGACGGCGCGCTGAGCCTTTTCCCGCACGCACATGCCTTGTACTCCACACTTACACCACTCAGGGCTTAGGAGGTATTAATTAATATAATAAAGCACTTATAAAATACAATTCCTGGTTTTTTTTTGTTGCAGAAATTGTGCTCAACTGCAACACATCTGCAAAGGAAAGGCGAGAAATTCGACAGCCTCTAGACAAAAGTGAGTTCCTGGAGGGTAAACGGTGCAAAGATTGATACTTGGCTGAGACAAGACAATACGTGCTCGAGCAAGAAGCAAGAGACTTTCGTTATAAACTTCAAATTTCTTATGCTTGAATCTAATTTTATTCTTTTTAAGTCGACTGCTCTGTGAATATAATTCAAATCCCCATTCTGTAATATTTATTTTCTACTTTTTTCACACTCATTTTTGTGTTGTATTGGTGTAATTAACCTGGTTTCATGACTTTTTTGCAAGGAAGTTTGTTGAAAACGCTGCTGCAAAATTTGCCAGCAAAAAATTTTGTTCAAGCCCGCTCCATCGCACAGTTTGAACGTCGCGGTTCGAAGTTAGATGTGCAGGTCATATAGCAGAGAAACACTCCCTTTTTTTCTCGAGAAGTTTCACCAATTTTGCGCGATCACCTATTTTTTTGCTTTTTTGGCCTAATTCTCAGATATTCCTCAAAAACTTGAAAATCCAATCTAGAATAAGTGGTAATGGGTATATTCTAGGATTGTGCAAAAGTTAGCTTGAATTGGAATCCTCGATTAAAGCTTTCCTACCAAGAAAAATGTGTGGATATTTTGTACAAGTTTTTCATCTTTTTTTAGTAATATTCTCTGTGAAACTCCTATGGTTTCTCTCAAAGTTGTAAACTTCATAAACGCTGTCAGGGTTACCAGATTAAACAATGACCGGGAGCAAGCACCTAAACTCACCAGAGGAGAAAAGTCAAGGAGGTTGGTAGTTCAACATCTAAAATATTTAAATTTCTATATTTCAGCCACAAGTTGACGTTTCGATTCCCGACAACGAGGCCGTCGAGCAAGCAGCTCACCGTGGAGCAAAGACGTCTGCCCGAGGCTGCTGGACTTGGAGATCAACAAGCAGGCCAAGCAAAGCCGCTCCGAGAAGAAGGCCCGCCCTTAAAGCTCTTACGTCTCCAAGCGCGGACTCGAGCAAGTGACTGGAGTCTCCCGTGTCTGCATTGCAAGTCGAAGAACACCTCTTCGTCATAAACAAGCCAGACGTGTTCAAGTAGCCCAGCATCTGACACATCATTTACTTCGGAGAAGCCAAGATCGATCAGCCAACACGCCCAGTTGTATTGAGAACTGAAGCCAACTCGTGAGACCCCACAACAAGACTGTCGAAGATGAAAAGTCGAGAATGAGGATGTTGAAGTAATTCAGTATCTTAATATTTATTACATTTGTACGGTTAAGGAGGTTTCCACCGGCATTGAGGAGAAGGACATCGAGCTTGTCATTTCCCAAGCCAACACCACCCGCAAAGGCCATCAGGGCGCTTAAGGAAACTGACAATGACATCGTCAATAGGGGCAAGCATCATGAGCCCTATCTTGTAGCTTGTTTCCTGATGACTGAGCTTGCAGATACTCTTGTTATCGTTGTATCTCTTGCTTATCCCGTTTTCCGTTCCAAGAAAACGTTTATTCTTTTTTAACCTTTTTGTTATGTTAAAAAACAATTGCATCTTCGATACGAATTGTACAACCTACCTTTTACAGAAAAGAACAATAAAATCGCTGTTTGTGTAAAACACCCCTCTATTGATCCAGAACTCTCACTTCTTACAATACTTTACTCGTATGACTGTGATTCATCTCACCTGCTATCACTTTATCATGACATTCAAGTTTATATCAACAGCAAGATACCATTGTGTGTATGTGAAAAATGCTATCGAATAGCAAGCGCGCCCCAACAAATTTGAATGCGCGGGCGAAATGGTGTTAGATGTGCAGTCATATGAAACGAAACGCATCGACCAGCAGCCAATGGGGTACAAGTTACTGCGAGCTGTTAGATTTTTTCACACGGTTTCCAGTGTTATCAGGTGATGGGAAATCGATCCATAATACTGACTATTCGTACTTAACATCTTAAACATCCCCACCGTTTCGCTGTCATTTTTACCGATGCGGATTTATATTTCCTTTCTCGCCGACTTTTCATTTCTAAATCTTCTCTGAAATTGCGAAATTTTCAGCCTGTTTCATACGAGATCGAACGGCTCGTAATGAACCATCATCTCAGCAGCCGTGTAGTACCGGGAGTAATGCATGAACTCCAGCAGAACAAAACGGGTCGGCAAAACCTTCAAAAGTCACAGTAAAAGGTAACAATTGATTTTTTGCATCTGTGCTAATAAAATTTCCCCCTCTTCCCTTAATCATAGTCGTCAACGCGCTAGTTCACCAAGGCAGCCGACTCAGCTATTGTCGAAATCACGGACACGTCATCGGCGGCGCCAAAAATGACGACTGCAAAGAAGAAGACGATGGCGCCCGAGTGGAAAGAACATCTCAACGTTCATGCAAATGAATCTTCGACAATTTCGTTTCGTCTATTGCAAACCGTAAAGCCAAGCTATGACACGTATCTAGGGATGGCGAAGCTGAAGCTCTAGTTTCGAGTCTCACAAGAAATGAGAATGGAGTAAGTGGTTTTTGTGACTGAAATTTTCTCAAAAAAGCTATTAGTTCAGTCAAAAACGACATCAACAATATATCTTTGCTGGCCAAAGACTCCTCGAAAATCGGAACTCACTCTCGACATAATTTTCTCCGGATATCCAGAGCGGAAACGAAGAAGCGCAGGAGTACGAACTGAAACCGCCGCGTCTCCAAGTTCAGAGGCAACGTCAAATGGCGTTGCCACGACATCCTCGGCGCGGACACCTGGCCGGCGTCAGCGAAGCGTGACACTTTGGCGGCTCCAACGGTACTCGTGACGAGACCCATTTTGAATAATTTAATTATTCATGAAACGCTCTACGGCAGTGTTAATAATTATTAGAGCGCGCTCGCGCGAAAGCACCTCACCCAGAAGTCGCGAGGACAGCAGTCTCTGGCTATATTGGCTGCTATGGAAATTATTATTTTTTGATTTAAACTATTGTTGAGAAGCATCATCCAAATTGAAAATGTGTAAAATTATGATTTGTCCGAAACCTGAAGGTTTTACAGAGGGGAGTCACCACGGCTTTCTTAAGTATCAGTACCGTCAATATTTCGAGTTCAGAAAAATATGTCATTTTGTAGAGAAACTCTGTTACTTCACAAAAATTTCCATGTTTGATATTTTAATTGTTTAATTTCTAATAAAATATTGCAAATTTAAATCAACAAGTATACGTTAAAACCGAACCTTTTTCAATCGTAACCTCAGTTTTTAATAAGAACACTTTCATAATTTCAAACATGGATTTGAAACAGACTTTTATCTACAAAAATGACATATTTTCCGACTCTGGAATCGAAAAAACTGACGGTACTGAAACATTTTAAAGAAACTCGTGGTGACTCAATCTCTCTGTATACCGTGGTTCACTTTTTGTTAAAAATATTTCCATCCAAAAATAGCCAAAAACTGCTGTCCCCTCCTGCGAAACGAAATCCCTCGAGTTCTGGAGTTCGTGAGGTACCGCGCGAGCGCGCTCTAACAATTATGAACACTAGAGGAGAACGTGAATGAGCGTTTTTTATTCTTTTCTCTGCTTAATGCTACAGAATCGTACACTAAATGTTGTCAAATACATGATGCATTACTCCAGTCTACTACTATATGTTTACTTTTCATTTGTACCGCAGCGGCGGCAGCCAACAGCATGCGGCACCCCGGCCGCCGCAGCAGAAGAGCTTCCCGATGGATGGGAGATGCGTTTCGATCAATACGGACGCAAGTACACCTGTACGTGGCTCACACCACCAAGAGCGCCACGTGGGAACGCGCGTCTTACTCATCCCTTACAGGGCGATGGGAAATCCGAAGAGATCCGAGAGGAAGAGTGAGTTTTCCGAGGCTGTAAAAGCAGATTACTTAGCACGAGAAAAGCGTTTCTGATTATATTTTCGATGCGAAAAGCATCAAAATTAAAACTATCTACCGTCGCCGCGGATACCTGGACCAAAATGCCGAAAAAAGTGACTAAATTATTTTATAAAATCTAGATTTTTACATAATTAGTGTTATTTGATGATTTCTTGTCAAATTTTTGTAATTGCATCGAAATAGTCCAAAAATAAAGTAAAAATCCACTTCCAACACAGAAGAACTGACAAAATTGAAGATTTTTGCTGAATTCAGGCAATTTTTCGTAATTATTATGATCCTACATAAGTTTTTGTTTTCGAGATATTCGAAAATTTTTTTCTTTAAATACGGCCTGAAAATTAGGAAATTATAACGACGGATAACGGTCAATTCTGATTTTCTTTATTTTAACCAAGGTCTCCGCAAATTATTTGATAATCGAAAATAAAAAAAAAACTTTCCAGTGATTTTTACTTGAGGGAAAAATGTCTAAAATTCACGCCAGGTGCACAATCCCTTTTCAGGTGTATTACGTGGATCAGAACACGCGCACGACCCCCTGGTGGCAACGACCGACAGCCGATATGACTTGAACCACACGAACAATGGCAATCGGGAAGAGATCAGGCGATGCTTTAATGGGAACAAAGTTTCCTTCTCCAGCAGATCAACTTTGCATCCACTCGTGACCATTGCCCGAAGGATGGGGCGTCAGGATCCGAATACGTCGAGATTGTACTTTGTGAATCATTTAAATAGGACACAATGGGAAGATTCGAGAACACAGGGGTATGTGAAAATTTTCAATTGTCCAACATTATTTCTATCAAAAATCACAGTTTTAATGTTTTAAAAGTTTCAGAGGCCCGACCAACCTTCAGGATGGTTTGGAAATGCGATTCACCGAGCAAGGGCGTTCGATTCTTCATCGATCACTACTCTAAAACCACCACCTAATAATGATCGAAGAAGCGGAAAACCCGTCGGCCCGCTCGCCGTCGTCGGTGTTCAAATGGCCATGGAGAAGAGTTTCCGGTGGAAAATTGCACAATTCAGATATTTATGCTTGGTAAGGGAGGGCGAGAAATTCTTTGCTTTTAGCTATAAATTGATGAAAATTTCAGTCAAACAGCGCCTAATCATGTCAAAATCACAGTATCCCGTAATAACGTGTTCGAAGACTCATTCCAAGAAATTATGCGTAAAAATGCAGTCGGTCTACTCCGGCGTCTGTACATTCAATTCCGAGGGGAAGAGGGTCTCGACTATAGAGGCGTCGCCAGAGATGTTAGGGTTCTTCCTGCCGCACGAAGTGTTGAATCCAATGTATGGGCTTTTCATGTATGCTGGCAATAACTATTATAGTCTTCAAATCAATCCACCTTCATTTGTTAACCCGGTCTTAAGTATTTCGAGTATATTGGAAGATTCATTGCCATGGTGAGTATTTTTTTTTGCAATTGTAAATCAGTTGAGAATTGGATGAAAAAATGCGATCGACATGGGGAAAAGCGAGTTTTCCGCTTTATACCATTGAATTTTAAAATTTTAAACGTTAAATTGAAAATTCAAACAAAAAGCACTTCTGGATCTAAAATTCTTATCGTTTTTTGAGGTCCTTAAATATCGATTTTTTATATTTTCAGCACAAAAAGAAATTTCGATGATCTCAAATTTTCAGATCAATATATTTCATTTTCTCGGGCCTAAAAATGTTATTTTTATTTAAACAAATAGTTTTTCTTAGAAAATTCCTTTACTTTCAAATTTCCAGGCGCTATTCCACGGAAAATTCATCTACAGCGGTTTCACGATGCCATTCTACAAAAAGATGCAACAAGAAGATTGTTTTAAAGGGCATTGAACAAATCGATTCGGAAATTTATAATTTATTGATGTGGAACCTCAAGGATAACTATATCGATGAATGCGATATGGAGCTCTATTTTGTTGCCGATAACGAGCTACTCGGCGAGCCCAAGACTTATGAGCTTACGGAGGGCGGTACAGAGATTGCTGTTACCAACGAGGAGAATAAGGTGAGACTTGGGATTAGCTAGAGCTTATAAAAATAATTTTTAAATAAAATAATTTAATTTAAAAAATCCCAATTTTCCAGCTTCAATCCATCGAACTGCTCGTTTGGCGCCGCTTCAATCGCGGTGTCGACCGCGAAGACAAAAGCCTATCTTCACCGGCTTCAACCCGGTCTACGCGTTGGAATGGATGGAGTATTTCGATGAAAGAGGCTGGAGCTCGAGCTGTTGCTCTGCGGAATGCGGGACGTTGATGTGGGATTGGCAGTAGAAATTCTGACTACAGACATTATGCTCCACAGAGCAAGCAGGTAGGGGAGAACATTTGATTAAAACCTTTATTTTTTTTTAATTAAAAAATACATTTATAGGTAACCCGGTTCTGGCTATGGGTTCGAAGACCAACCGTGAAAAACGTGCCCGGCTCCCACAATTCGTCACATCGCGGACCGTGCCGTGTGTCAGTCGGTGGATCCTGATTCGACGGGACCACAGCTATTCTGTATCGAGCGTATCGGCAAGGAGAACTGGCTCCACGGTCGCATATGTGCTTCAATCGACTCGGCTTGCCGCCATACAGAAGCTACGATCAGCTCGGTCGGGAGACGAGTTGAGGATGGCGATCGAGATGACGGAAGGATTTGGAAGCGAGTAGTCCATGTCCCGTTATTTTTTTTTGGTTACTTGCTGGCCGCACGTTCAAATTGTTGTCTAACCCTCATATTTCTTCCCACCTATTGAGGACCTTTTCCTTTTTTTTCTCTCCATCACTTAATGTTTCTTTTTTTCGAATCGATGTTGTGTGATAATTTTCGTGTAGTGATAGCACTTGTGCTTAGGTTCTCTCTGCCTCTCATTCCTTTCCTTCGCGTATGTCTACCTATAATGTTTTAGAATACTAGACAAATCGCATCTAGTTTTTTTATTTAATTTCCAAATTTCCCGTTTAATTCCAACAACAAAAAAACAATTCCACCTAGACACTTTTCAAATATTTTTGCGTCCATTGCTTCATTGCTTTTCTTCTTCTCAACCATTTCAACAACCACCACCCAATCTGCGCCTTATCCTCTTACTTGGTCACTTGTCATTCTTACAATTTTTTTCACGGAAGCAGCTCTAGATTATTAATTCAAATGCATCCCCCCAACCAATCCGTCACCCCCCGATTAGAACAATTTCTACTTTTTTTTTTGAAAACAAAAAAACACCTCGATTTGGTTGTAATCAATGGGAAATTTAATTTTTTAATCTGAGCCTTCTTTGTTGTTTTAGGGTTTCTTAACTTTCAGAATTTCCATGCGGAACACACGGAGAGCACAAGATCAAGATTTTGAACCCTGCAGGAGAACGGGACCCTTAGCGTGGTCACTCATGTCTCGGCTGTCTGTGGTTCTCTCCTCTCTCTCACCAGCGGAGAGGATGGATACCTCATTCGCTTTATTTTCGGACTTTCGATTTTTCTTATTGCTCCACGTCTTTTATCAGATTCGGGGAGCTTTTGCTTTTTTCTTGATTTTTTCGTAAAGTGTTCCTGGGTCCCGCAGCGAGAATTAACTTTAAAATGATTTTTTAAAAACTTTCAGTTAAAACTTCATTTTTTTTTCCCATCATTTTACGACTAGAAATTTCGAAATTTGAAAAAAAAAACCGTGTTGCAAATGCGCTCCAGCGTACAAAACGAAACCGCCACCAAAAGCTGATTTTAAATAACTGAAAAAAACGAGATGAAATTGAATTTGTTTTGCCATTTTCCGACAATGATTTTTTAAATAAAAAAAACTGTTGCACAACAAATGCGAGCGAACTAACCTACCAATTACCGAAAAAAATTATAAAAATTGAATATTTCCGATTAACCCAAGAAAAGAAAAATTCAATGATTTTCTTGAAAAAAGTTACCATTTTCTCAATTTTTCGTTAATAATACTCAAAATTAGACTTGAAGAAAAATTGTGTAGCAAGCGAGCTCTAGCGAACCAAACAAACTGCTTCTCTCCATTGAAGAGTTTCAGAGCCGAGGTTCTGGCCTACCTCATTGAATTTTTCGCGCTCCATTGACAATCGCCCGCCCATAACAGAGGGCGTGGGAAAGTCGTCTGGTACTCCACACGGACAAATACATTTAGTTTTACTACAAATATCGGGCCGCGACGCGACACACGCGCCGGTAAATCTACCCCAGATATGGCGAGCCAAAATGGCCTCGTTCGGCAAAAACTCTTCCAGCACTTTCAATGCATGAGAGACAGAAATCCGTGATACGAGAAAAAATAATCCCAAAAAGTTCAATTTGCAAGGGCGCTGCATTGAAAACGCGCCGATCCCAACTCACGGTCGAATTTGAATTTTTAGTTGCAAAAAAAATCCACCAAATTGTGAACTAAATAATTTTGCAATCAATTCTCTCCCTAAAATAAATGGTTCAGAGGAGTTTCTCGAATTCGTAGTTGATACCCGCTCGTCAGAATTGGAAACTGAGAAATTGAGAGAGAATTAGAGAAGGAGAGGAAGAAGAACTGCTCACTGGTCCCCTCACTCCCGGAAATTAGGGACTTTTTGCTCCGGCGGGCTCCCACTAGAAGACGAAGAAAAAACGACGAGCAGAACACAATCAATTTCTTCTTTTTTATTTTTTTTTGGATTTTTTTCTTGTTGATACCACGGATTTCTGGCTTCCCTCATAAATTGAAATGGTAGAGTTTTTGCCGAAATAGGCCATTCATTCGGCTCGGCCATATCTGGGGTAGACTAACGGCGCGTTGCGTGAGTCGCGTCGCGGGAGTTTAGTTGTAAACCTAAATGTGATTTGTCCATGTGGAGTACACGACTTTCCCGCGCGCTTTATGTCCTGCGGCCGATTGTCAAAGGAGCGCGAAGAATTAAATGAGGAAGGCCAGAATCCCGTGGTAAAACATGGTGCATCAACGCAAAAATTTTTCATCTTTTGGAAAAAGTCAATTGTTTTTTTTTCGCGTCGGGACCACCTAACCGCAGCTCGTTTAATTGAATTTCCCAAAAAAAAAAAATTTGCTCTGTTCAACCAAATTCGAAATTCAGTTTTCATTCCCTAAAACCTATTAAAACGATCGTGGCAAAATGCTGTGAGCTTTGGGGCTAGAACGATAGGCCTAGAAATGTTGAGACAGTTTCCTCTCCCAGCGCCCTTGCCAATATAGAAATTTCAAATTAGTATAGCTCGGCCATTTTCCATCCGCACGGTTTTCGCCAAAACTACACCCCATTATAAGATTTAAAACTTACTTTTCAATCATTATGATGATAATACTTATCCAGTGGAAAAATTTTATTTCCACCAAAACCTCTCCACCCGCCGTTTTATCAAACAAATGATATCACTATGATTTGTGTTGTAAGTGCACCATGTGATTGCACTTGCGCAATTAATTAAGACAATCTCAAATGTAAGTTTGATCGAATTAACCCCATGTACATATAAAATACAAGCTTTTTGTGTTCTTCAAACAGTTTTTTGTCGTATTTATATAGAAGCAGTGTACACCTAAATTTGGCTTATTATGACCTTTTTTTCCAAGGAATACTCATTTTTAGGGTTATAAACGGCCCTTGATTGAGGAGAGAACTGCAAGCGCTTTTTCCTGGGAGTTTTAGGCCACCAGTTAGAGTCTTGCAAAGACGGACTAGTTCTCACAGGACCCAGAAAGGCTTTACTTAGTCCATCACGAATTTCTGACGACGCCTAGAAATGCAAATCTTCGGCCACCTCATAGACATTCTAGGCCACCCTTTTTGACGTGGCCTAGAATCTTTAACAAAATTTACGTAATGAGAAGTAAATCCTAGGCTGTCCCACTATTCAGTTAGCTCTCATTTTTGATACTTCGCCTAGCGATTTTTAACACGTGGCCTAGATAGTTTCTATTTTAACACGGGGATTAGATTTTTATGTTAACAAGCTGGCCTAGGTTTGCTACTAGGCTTAGATTTTTTACATGTGAGCTAGATTTTTATTATAGCTGACCTAGATTGTTGGCATTTAGCCTAGATTTCTGTCATGTGACCTAGATTTTCTAATGCACCAAAAATTCTCCATACAAATTGATTAACTCCTACAACTCTAATTGAGGTAATCAGAACCTTCGATAAGAACATGGAGCTACTGCGGTTCTCAACTTCCGAAAAAGCGGCTGAAAAACTGAGGTATACCTGCTTTTTTCGAAACTGATAAAAGTCAGCATAACTCACGATAACTGAACGTCCCTTGGCCAGGTTGTAGGGGGTAGTGGTGGCCGAATTTTAGGTAGAAAAAACTGGGCCACGAGGTTTACGTGGTGTAAAATGTGCCCCATTTACTATTGGTTTGACCTTCGAAAAATCCAGGAGACGAGACGCAGACTTTGCTTCAGCTGATTTCGCATGGTTAAGAACGTGCTGATGTCATTTTTTTCCGTGGCAAAATTCCCGCATTTTTTGTATATCAAACCACAACGAGACACTCTAACATGAACCACCGTCCGGCCTCAAACGAAAATCTCGGCCACGGCCACTAGGGTGAAGTGGAATGCCCTCCCCTTCTCTAGAAAATTCATTGGAGAAATCAACCCATGCTCAAAGAAACAGTGGCCGAGAAACGAAAAACTAGGCCGCGTTCTAGCAGCTTTGTACCTCTCTTATAAAACACTGTCTGTTAGTTCATAAATCAGAATCTGCGCCCTATCACTACTCTCTCGTTTACCTGCCCCTCTTAAAAAACAATCAACCCCCCCCCCCCCTCTAAATCGACTACTGTTCCCCGTTGTACCTGTCTGCGGCTAGCTATTTCGGATTTTTGGAACGAAAAAGTGGTATGTGAGAATGTACGAAACAAAGCAAACTAATAAGAGGGTCAATTGTATGCATTTTTTGCCCCCCCCCCCCCCCCCCTCCACCCCGCTAGCCTGGGAGGTCTCAAACCGGTTTCCCCTTTTTCACCTCAATCAGCCCCCCCCACCCCCCCCCCCCCCCCAATTTCATTTCACTGTACATTTTCCTTAACCTATCTGCGTATCTACTTTTGTATTTGTTCCTTACTTATTTTTCTAATTATAAACCCTGCAATTTGCAAGAAAAATTCTAAAACCCTAGTCTGGCCCCTTACCCCGTACGGGACCGTGGCCGAGAAATTTATATTTCTTATAAGACCCCCCGGCTCTTCCAGTTTTTCATTTTTTTTCATTGAAAGCCTAAATTTTCATATTTTCTTAGAGATCAAAATATTATGGGTTTGTCAAAAATTTCGAAACAACAAGCTCCCCGTGGGCGGAAGAGTTTTCCAAATTTCTATACTTAGGCGTTGGGGTACGCTCGTCGCACCCTCCCGGAGTACAATTGTAAATTATAAAATTATCATAAAATTGGCTCAACGCATTTGAAAATAATAAAAAAAACTTTAGAAAAAAAAACACGAAAAAAACCCCTTTGAACATGGTTCATCGACCGGGACATATGTACTGTGAAAGCTTATATCTCTGCGCTCCATGTTTGTTTCATTAAATTTTTCAACCAACTAAGTGTTTATTATCTCTTTTCTATATTTTTGTAATTAAAAAGCTTTTTGATACTTCAAAAGTAACTGAGATGCATGTTGTGAAACAGAGCAAACTTTCCTAGCTTAGCCCAATTATTTATATCTGTGTTTCGTGTATAAACTTTTCTAAAAGTTTACGGTTTTTTTAAATTTCTAAATAAAATTATTACATGACTCTTTGGGAGGTCATGCGTTGTAGATAGCATGTACAAATAAAACTGAGGAACTAGGACGAACTGAGAAATTCCTAAACCATTATTTACACATGTGATTCTTGCCTTTTTCGGTGGAGGGTTAAAAAGGTTAAAAATTATTTAAGGCTTGGAATGAGCATTTGTGCGGCCGAGGTTCCTTTTTATTTTCTAGGCCATAATTTTTACAACAATGGCCAGAAGCACAAATTTGTAAGTAATTTGAATTCGCCAAAATTTTTTTTTCCATAAAATTTAAATTTCCACCGTGGAAAATTCTTTTCGGAAAATTTGTATTTCCCGCCCTCAAAAGATTTTTTGTCTCAAAAAATTGAATTTCCCGCCAAAATGTTTTCGTCGCTCAGGAAAAAATTTCCCGCCATCAAACATTTTTTGTCTCAAAAAATTTGAATTTCGCCCACCAAAAATTTTGTCCCAAATTTTATCGAATTGGTGGAAAGCCGAATTTCCATTTTCTAGGACACTCTCAGTTAAGTCATCAAATAAGTTGACTTAAATTAAAATTAACAATTTGTCTCCTACCATGAAAATTTAATAATAGGCTGTATAGAGCATCATGGGCGGGCGGGGTAGCATGAGTGAACTTACCGGTTGACCGTCTATACATAGTAACACCCGACCATTTTCTGCCAAATACATATAATATCGCTTCGAGACCCAACTAATGCGCAGTTGTGCTTTATTTCGGTTGACAAGACCCGTAGAAATATTAATTTACCTACAGGTGCTAGAGCGTTTTAAGACCTAAAAAACTAAGCAATGGCCCAAAAATCCAAACTTAAGAAGCGCCTATAATTGTGCCTCGTGTTCGGGACCCAAAATCCAACTAGGCCATATTGTGAGCTTGGTGAGACCCACCTGTCATAAATATCACTTGAGTCAAAGTGAAGCTCCTACTTTTTTTTTTCGACAGCCTGTAGAAAAAATATTGAGATTCGCAAAGAATTCACGGCTCCCCCTTTCAATGTTTACATACACATTACGAACGAGAAAACGAAAAAGCGAAACGAGAGAAAAGCATTGAGTGAAATGGAAAATGTGTTTTTACTTTTTATGAAAATTTAATCACATGGCGTAAGAGTGTCCCATTTCTGCTTGACGTAGATCTACAAAAAATGCACGTGGGTGAAGAGACGCCGAGTTTTCAACTGATTTCGCTTTTTTTTGGGCGAAAATTTTCGCATTGCTTGTAGATCAACTAGAAACGCAACAGTGGATAAGCGCGCTCTATCGACAAACCCGGTGTACTCGCGGACAACCAGTATAGTTTGAAATTTTATTTGAATTTTTGTTCGAAATTGAAATTGAAAAACGGTAGATGCCAAATTTAAATTTAAAAAATAACAATTTTTGGAATTTAATTTTTAAAAAAGTTCCCCGTAAATCTACACTTAAATCGTCTCGTAATTCGACAACGCTATTTTTTTCAATTGTTTTGCCCATCGCCAAACTTTTTTTGCCCAATCAAGCATCGTCAATTGATCCATTGATCTTCTTCTTCTTCTCTTTCTCTTTTCTCACCACCGAAAATTTTCATTTTATTTTTTGAGCACAATACTCACCTGTCTGCGTCTCTCTGTACCCCCGATCTCTCGCCTCTCAAGTATTACAAACGAAAAATTTGGGGAGAAGCCGTGATTTTCATTTTAGTAGGATATGAAAAATTCTAGTGAAAATGTCAATAAAAAAAACATTGTTTTTCAAAAAACAATCCCCTCGAAAATCCACACCAAATTCAATATTCACCTTATTACAAATTGATTATTTCTCCCAAAAAACACACGCCATCGGCCGCGCCAGGGCATCTATTGTCGCCTTTTTACTCCAAAAAATTTCTGCAACTGTCTGGCGTCACCGGTTAACACTGAGAAACAACAAATTTCATTTCTCGAATAACATTCATTTTGAAGGTTTTTGGTTACAAATTCGACACGGATTTCTGGCTTCCCTCATAATTTAAAATGGAAGAGTTTGCTGATGAACTAGGCCAACATGTCGGCCATATTTGGCATAGGTATTTACGGCGCGTTATGCGTGCCGCGTCCCTCGATTTTAGTTGTAAAAATGTGAAGTGTCCTCGTCGTGGAGTACACGACTTTCCCACGTGCCCGGTGAGAGATTATCAATGGCAATCATTCAATGAGGTAGGTCAGAACGCCTTCGAAGAAAATCGAGAAAAACATATCCACAACGATACTCCGCAAGGTGTGCGTGTTGTTAAATGATAAATTCAAAGCAAATAGCGATTTTGTTTCCAAAATATGCCGAAAAAAAGGAAAAAAAATAAAAATAAAAGTTCAGCAACTTATTTCTCGGCCGTGGTTGTGTCGTTGTTTATTTTTTTGCGATCGTATTTTTTCTAGAATAAGACTTAAAATGAAAAAACATGAATAAAAATCAGTTCTCCATGGCCACTGTCAAAAGTCGCAACGACACTCCCCTTCCAGCTCCCCCCCGCGTGTATTCTTAGCATGTGTAAATTACGCGATGTAGTGTATAAAACCCTAATTTTTTAGAAGATTTGAGAAAAAAAACTTTTAAAATATGGGATAAAATCTCCTTTCCCTTTTTTGAAATCAAGAACTATCCGACAAAAAGTTTAGCCAAAAGTCCAAATAAAACCAATATGTAGAAAAAATCAAAAACTCGGCCCTCCAAAAAACTAGGCTACACGTTGTTTCGACCTCGCCGTGCTCCCCACACCTATGCATATCGTTAAATGTCTCCCGGACCCCTCATTCCGTCACACATTTCTCAAAGTGTCTTTTTCTCAAATTCGCTGTCGAAAATCCCTGAACATATCTCTTCAGTGTTGAGAACGACCTGACAGTTTTATTTCGATTCTCATGATCTCAGTGTCTCCCGGATGACTCGAATTCCTTCGATATATTTTTCTTTGAAGTTTTCAAAATAATTTTTCCTATATATAGACTTGATTGTTCGGTGGGAATTTCTCATTTCAAAATATTTATTGAGGTCGCTTCCCTTTTTATATGGTCGTTAGGTTTCTAAAACTCGGCTTTCCAAGTTGTAGCTTAGAGCTCTTTGTCTCGGAGTATAAAAAATTCACAAAATAAATAAAAGTTCACGTGGCCGTGGCCTAGATTTCCAAACTCGGCCACCATTTTTTTCTCTGACAGTAATCCACTTAGATCTCCTTTTTAGCCATTTTTTAACTAAATTTCCCACATATTCGTCCGTGGCTCCATATCAATTTTACTGATAGTAATTTCCAATAAGGTATTTTCGGGAAGATAGGAACCCTTTTTCATCTAATTCGTTTGTTTCTACTTTATCGGTTTTGCCACTTTCCCGCATGCCTACGAGCCTACATATCTGCCGACCTAATACAGCTCGTAGGCAGACCTCGGCCGCCTTGTGGTGAGATGAGTCGCTTTGTAGGCAGGCGTAGTGTGTGTCTTGCTGGTATGAGTAGGGCCTGTCAGCCGCCCAGTAGGCAAGCGTAGGCATGCAGCCGTAGCAGGCTTCTTAACTAGGCATCTAGGCTGCCTTGTAAGCCGGCGCAGGTAAGTGAAGGTTTCCTCGTGGCTGGCATCCTTGCAGTCAGGCACAAGTCGTCGGCTTGAAGGCAGGAAGAACATGCCGCCTAGTAGGCATATTTTACTTATAGGCCCGAGGTATTAATGAGATCTAGGCTTGCGGGTTAGTCGGTTTGTAAGCTGTCGTAGGCTGCCCTGTAGGCAGATTGAACTCTCAAACCAAACAACACAAAAATTCCAATATTTTTTGTACCTTCTGATTTTGATCTCTGACTCACTTGATCTTACTTTATCAATCAAGAGTCATAACTTCCATTTTTAGGAATAAACAATTATCCTTCAATTCATTGACGTTAATCCCTTTCAATATTCATTCAATACACAATGAGACGAAAAACTCTTATCTTTTTTCACTCTATCACATGGTGCAAAATTATAGTTAGATTGAAAAAGCTCATTTTATCATTTGTCACTTTTCCACCACTCTCAACGTGCTTTTTTTTAAACACAAAACGTTTCCCGTCATTTTCTACAGTACTCCCGCATTTTCACATTTTCCAGGTGACACCTGAGATGGAGGCCGACGAGTTTCAACGTTCGTATTACGGTCCTCTCAACGACGGCTTCTGCCACGTCACGGCCGCGACACAAGACTTTTGAGCTGTTGGGACCGGTGAATAATATCTGGCTGATATGTGTATAAAGTGTAAGATAATTGGCAGCCCGATTGCATTTATTATTGCGACGGTGATCATGTGCAGTGGTGGATCGTTAGTTTTTTTTGACGTAAAAGATAGTATAAGCGTCTTTTTTTAGATCAACCGAAAAAGAAATATGGAAAAAACGACATTTAAAGATTTTTTAGAAATCAAAAAATGTATAAACTGTATGTTGCTTAGGGCCTCCATGGTAGACAGGCACGGTTTTAGGGCCTGACGTGCGCCTGCCTGAGACCCACGTGGAGTCAGAAAGTCCCATTTCGCTTTGATCTTCAAAAAATGCGGGAGAAGAGACGCAGATATCTCATCTATTTCTGCATGGTCATTTAAGCGCAGACGTCACAATTTTTCTAAAATAATCCCGCATTTTTCGCCACGTAGAAACCGCAAGGAGACAGCCTGACAGCTATTAAGCCAAAGGCAAAAGTGTTTGGCCGTCTGACTTTTGAAACAAAAGGCTCGGTGAAAATTGAAAAAAAGTCTAATAATAATTAATATAAAAGTAGAACTATTTTCAGTAAAGGCCAAATGATTGTTTTATAAAAAGACTTAATTTAATTAAGCCCAATTAGATCTCCTAAATGTTTCAAGCAGCACAACTTTGCATGTGACGTCAGGCTGTCTCATTACAGTTTACAGAAACCGCGGGAATTTTTGTGCTCCCAGGAAAATGTGCCATCAGCACACAATGCATAATCAGATGAGATTTCAGCGCCTCAACTCCCGCATTTTTTGTAGATCAATCTAAAACAAGACTCTCTGACACCACGTGAATTTTCCAACCATCAAACTATCAACAAATTCGCGCCAAAAAAACTTCTTTAAAAACTTATCATTCCCAGTGGGAACAATCGGTCTCGAACTGAGGGATAATCTGCGACGGGTACACGCCAAAAAACTTCCCGACTGGAAAATCGCCTTTATCGAGAGTTCCTGAGTTCCGAAGGTGATCCGGTGATGACTACAGTTCTCATCATGACTGCCAAAGACGGAGGATCCATGGATCGGACCAAGTATTTGGAAGTAGCGGGTGAGTGGCATAACATATCTGATACCGTATTTCCTCCATTAGTAAGGCATGCAAAACTGATTTTCGGACACCCAATTTGCTTGCAAAACTAATAGGTGCAAAATTTTCGAACAGGTTCTTTCTCATTAAGTTATATATTATCATCAATTTCAATATCAACTTCTTAGGAACCAAAATGCGCGAATGTTACGACTGATACGCAAAAATTGTCCGAGTGTACTCATATTTAGCCTTGACCTGTTATACTCAAGAGCCGTCTGTAAGAGTTTTCCTACAGAACGATTTAATAGTGCAAATTTTGAATCTAAACTTAGGGAACAAACTCGTTAAGGGGTGGAAAAATATTAGAGGTGCAAAACTAATAGAGAGTGGAAAACTAATTTTCGATTAGTGATTTTTGATGCAACTAATGGAGGTGCAAAACTAATTGAGGTGACTAACTAATAGAGGAAATCGACGGTATATTTTTTTGGAATAAAAAATTTCAGCAATGGCTACTGCTACATCTCCAAAAACCTATCCGCACGTGGCCGGTGGAAACGGCAAGTTCATGGAATTCGAGATTTCGTTGTGGCCACTACTGCCAAGCCATTGCAACGACATCATAGGATACCTGGACGCCTAGAAAACCAAGTCAGCTAACCCAAAAATTGATGGCTACCAACTCTATCACCGATTACCAGAGTAATGGGTTATCAGCTTCATCTCGAGCGATCCGGGGTTACTGTGAATCAGTCGGATCCGGTCACTAATATTCAGAGTATGAAGGTAGTTCTGACGCTTCCTGTGTTGTCAGAGGTACGGACGATAGAGGATATCGTACGGATAATCTGAACAAGTGGGAGCTGGCGGTTTATAACTATGCTACAGGATACTCTGCACTCCGGAGGGTGACGATCATTTGGTGGAGATTAATGTGAGTGGCGAGAATAAATTGGACCATAAATTGGGCCAGCCCTAAAAAGACAGCGGGCCGGCCCATACCGACCCACTTAAGGTCAATAAAGTTTAATTCAGGTGTGTGCCGCAAATTTTGACTAGAATTTGCTCGGCAAAATCGGCTTTGGTAATCGCATAATTTCTCGCTCGGCAAATTCGACAAGATTGAGATTTTGCCGTTTTCGGCAAACGGCGAATTTGGCAAATTTGCGCTTACACCCCTGGTTTAGGGGTTTCACCGTGTTTAATTTTCAAAGCTTATAAACCTCTTTTCCAGGTGATCGGAAGTCGTCGACACCGAAATGAACAAGGACGCTCAGAAAATGGTGCCCAGTCCTACTTCATTGTCGGAATCGTCTCGATGATCATCTTTATCTTCTGCACCGTATCGTCTCCCTCTGCCTGCTACAGCAGTTCTAACGGATACTTCTCCAGTCGATCGGACTCATCGCCCTCGCCTGCCTTTGCCGATTCTCGCAATTCTCACTGCATTCGGAATCAATAATATGCTGGGAAATCGAACGAACTCTCCGATGATGATCATTCCGTCCTTGATCAATGGAATCAGAGTCAACGATGCGTTTTTGACACCCAGTTCAATTGGTTGCAGCATAGCACCCGGATTTTCCGTCAGGGAAGCGGTTGGCGTATCTGTTGGCTGAAGCTGGTCCATCGACGACTCACTACGACCACTTTGACAAATCTAATTGTATTTTTGATCGGGTGTATGAACCCAACGGAGGGAAAGGTGTGGTGGACGGCAAACTACTTTTTCCGGCAGCGTTAATCGGTAAATAGGTAAATTGCCGGAATTGAAATTTCTGGCATATCGAACCGGCAATTTGTCGATTTGCCGAATTTGCCGGATAGCGAATAAAAAATTGCCCAACAGCACCTGCGCCCTGTTAAGGAGCTTTGGCCTCTAACATAAATTTGTCTATTCATCCTTAATTCCCTCGTAAAACGACAAGATGTATTCCAGGGATGACGATCTTCTGCCTTGTGCAATCTCCCTACTCCTCGCCGTCTACACCCTCACGTTCTTCTGTCCGGTGCTAGTTCTTCTGCTTAGCGAACGCGTCAATACACGAGCCCAGCTGGAAGCTCGAGGGCACTTTCAGGTTCTCGGATTCTACAAAAATCATATGCAGCCGATGGACATTTGCACTTCTCATCATCGGAAGTCTTGTCTAGTGGGGTTTCCGTATCTATGGAACACTGGGGATCCGCGCCGGTGTTGAACACTGCAAAGATCCTTCCCCTGGAGACGCCGATCCGACCGAACTATCGAGGAGACCGTGTGAAAGCGTTAGGTCAACCCAGTCACCGTGATTGAGAACAGCCAAGTTGATATAGGCAATGCAAAGGCTTCGAGCATTTGACAACCTCGTTGCCATCGACTTCTATGCAAAAGTGCCGGGGATCCGAGTACACCATATCTCCAATCAGAGACTCTACCATCAGATCTTACGGTGGAGGAGCCGTGGACTTTGATTATGAGGAAGAAAGCGTGAAAAACACTTCACATTCCCCTTTAGACTCCAGTAAGATAGCCGTCCACGCGTTCCTATTAAAATCTACATATATGCCTATAACGTGGTTATAGAAGAAAAATAAAACGCCATAACCTTCTGCCGCGCAAATGAATCCGCGGGAAGAGACAAAACTACTGTAGTTTTTAACCAATTTGTGTAGGCATTTACGAGCTATTGCGTCATCGGTTGTATTTAATTTTGACAATTACTTTTAATTTTCAGCGTTTCACTCGTTTTTATATTGAAATCTTTTGTCGGTATTGAATAAATCTTAAAAGAAAACACAAAAAAATTAGAAAAATTCCGAAAAAAGCCTGAAAATTAAAAATTGCGGCTTACAAACTTAAAGTCAACGATGACGCAACTAAAAGCTCGTAAATCTACACAAATTGGTTAGAAACTACAGTAGTCTCTTCCCGAGGTTTCATTTGCGCGGATGGCGATTTTTCTCATGGATCACACACGTAATCGGCACCTACATATTTTGTGTGCCTAAAAACACGGTCATCCTAGCAGTGAAAGCAGACAAATGTAAGCACTTAACAAACGTGAGTAGGGCTTAAATGGTATGCACTGTTTTAGGGCCGCCTGTCCAGGCCTGTCTTGTACGTTTCAGCAATTCAAGCCGTATCTTTCCAGAGAGCTAGTGTCACCCATTGCCAGCTAACCCTATCTACAAGCATCACAAGGGAGGACTAAAACTTAACTTTTCAAATCCGTTAGTTTCAATCTGCCAGCCCCCTGACCCTAAATCGAGTCTACCATTTTCAGTGATCCAATCCGAAAAGTACAACTGATATCCGCGCTTTTATGAAAACGTAACCTTGTGGGATGAACGGATTTATGCAGGACTGGCGGACCAATAATCGCAAGTTCCCACGTGGCCCTAAATGTTTCAGTGTGGTTCTAATGTGAACGCAATGTGTCGTAGATCAGATGCTGAGTCTGGTTGGCGATCACGGTAAGATCTCAATGGTTCCAGCGCCCTATAAATACCGCTTATTCTTTCAGAATGCCCTAGTCACCTTGGGATGTATGGCTGCCTTCTGGGTAGTCTTCATCCGCAACCCCCTCTCAGTTGGCCTAGCGACCGCTTCGATTTTATCCATCTCCAAGTAACTGGATACCGGTGCTTCTGGGACTTGGATCTGGACCCTGTGACCCTCTGCGCAGTAATTTTTTCTTGGATGTCCGTTTATGAGACTTTGTTGCCCATGTGGACTCCTGTCTCTATCAGGTCAGGTATGAAGATTTCGAGGAGAAAGGAGTATTGAAGAGGATTGAGATGAAAACTCCCGAATCTTGAGTCGTCAACTCGCTGTCCAATTTGTGTTCCCTGGCCAATGGTCCAGTCGGCGTCTTCAACTCGTCTATGTGTCCTCCACCTTGGTATTCTACTGGTACCTACGAATACCTATACTTTACCGATAACCCTACCCCTCAAACCTTCCGGAACTATCTCCCAATGGTATTCGTGAAAACCATCCTGCTTACGTCGTGATTTGGACTGGGGAATGTTCCACGGTCTCGCGCTGCTCCCGTGCTCAATTCCTGGATTTTCCCCTGTCAGTGTTCAACCAGACGTTCGCCGACTTGTTGTTCGGCAGAACATCCTCTCTCGTCTTGCTCTTCGGATTCCGGAAACCGACACTGGTGATGCTCAGGAGATGGTACCGCTCGCTGGAACCGAGAAGCCTTAAGACCTGAAATTAGTTGTTGTTTGTTATTATGTACAGTTGGGATACAAAGTGTATTATGTAGTCTGTAGTGTCGCAGTGATAGAAACTACAAATTCAAAGCTACAAACTATAAGCTTTGAGATCTGGCAGAGCTTTATAGTTTGTAGTTTTATTGTAGCAGCTACAAACTACAAATTTCTTTTGATGGCGCACAAACTACAATGTACATTTTGCCAGTTTTCTAGATTTTTTCACTCACACACACACACACACACCGTTTTGCTACGTGGCTGCGAAAATGCAAAACTCGGCCAGGTCGCAAACATCGCCAGAAACTTCTAGCTTTACCAGTAGCTTTTCATGATCTAGTCTTCTTTTTTTTCCCCCCTCAATTTATATTTTTCTCGAAATTTCAGAACGGTTCCCTAGTCTTCTGTCACCGTGTCCTGCCCTCCCGCAAGCGGGTCCCCTTTTCCCCCCACAGATCGTACGGCTTCTCAGGGTTCCTATAGCACTTTTTTCTTCGATTCGTGCCATACAAAAAATTATACTTCCCATCGCACGCCGTGTCCATTTTGTCTTGTACTTTTTAAATGCATTTTTTGATAAATTTGATTTTTTATATCATCCAGAAAAGGGGCAAAAATTCAGATTTTCCTGGCGAGTAATTTTGCTGGAATTTTTTCAAGCATCAGACATGCAAAAACTAAAACGACACAACACTATCGATGGGGATTCGACTCGTTCACCCCAGTCATCCTAACTATTTTTCACTATTTTTTTTAACTTCTGTTTTTTTGGTACTTTTCTGGCCGTTTTTATGAAATTTTTTAGCCCGACATAGTTTACCTTTTTTTGTTCTGGATTTTAGGAGTTTCTGCGACCTTACTCTCACTCATGTTCGTCCTCCAGCCCCGCCTAAGCCTATGCCTTAACTCAAGCCTAAGCCTAAGCCTAAGCCTAACCTAAATCGCGTCAGAGAGAGCGTAACGCTCGCCACTGACGCCAAGCCTCAACCTAAGCCTAAGACTAAGCCTAACTCTAAGGCTAAGTATAAGTAAATCTAGGCCTCGGCCTAATACTAAGCCTTAGCCTAAGCCTAAACCCAAGCTATCAGAAGACACTCAAAAAATGTTCAGATCATTAAAAAATAACTACATTCAACAGTTTTCTTCAAAATTTAGCTTTCGACTTTCCAAGTAATCAATAACATGATTCCAAAATCTTCATACATCCCTCCCCTCTTCACATCGTTCCCGACAGCTTGTACTATTTCTCCTCCACCCACTAGGCAAGGTCTGCGTCTCTCGGGTTTCATACGCTATCTCCCTTTTGTGGAATCAGTTCATCGTTTCGGATCGTGGCTTACTTCTCAATATCCGCGGGCGTCGCTTTACTTTGATATAAAGTTCAGTTTTTTGAGGCCAAAATTTAATTGGTGGAATCACAGCGTTTGGCGATGAATTAATTATCGTGTGTATTCAACTTTAATATACGTGTACATTTTACCGATGCATGTAAGTTTTGGTGTATCAAAAAATGCCCCTAATAAATTTCTTAAGGGTGGAGGAGCGCTAGTGGGGAAATTGCGAAGTTTTATAACATGCCTATAGTACCACAATGACCGAATATCATGATAAAAAAATTCAAAAAATTTTTAAAATTTTATATGATTTTTTTTAGAGGAAATTGGAAAAATCTCAGTTTTTACACTGCCTAATTCCAATTTGACTTACCGGTAATTTTGTTCGATGGAGCGCGCTTGCACGTTTTAAAATTTATTTTATTTTTTGTTATTTTCCTTTTTAATGTTTTCGGTGTATTTTTGCTCTAATTTTAGAGAGTCAAGATGAATGCAGATTTTACGATTAAAAAGCACGCTCACAGGCGTAAAAATGACAGAGCAACGATTTTAAACGGTATCGAACCTCATCTATATTAATTAATATCACAGATTTACGACTGGTGCTTTTTAATCGAAAATTTGCATTCATCTTGACTTTTTCTAAAATTCGAGCAAAAATACACCGAAAACATTAAAAATTGGTGGAAAATAACAAAAAATAAAATAAATAAATTTAAAAACGTACAAGCCCACTCCATCGAACAAATTCGATAATGTGATTCAAACTGAGAACTAGGCAAAAACTGAGATTTTTCCATATTTCGAAAAATCATATAAAATTTAGAATCTTTTAAAGAATTTTTTTATCATGATATTCAGTCATTGTAGTACTATAGGCATGTTTTAAGAGCCAGCAACCCACTGGCGCTACGCCTCCTAAAGTTTGGAGTTTTAGTAAAAAAAGATCGGTTTTTTAGTTAATAATATTAATATCCAGTCGCTCCTCCGGAACAGTTCGACCATTTTTCACCACTCTTCCAGAAGTACGTGGAAGAAATGTTCCTATTATGAGATTATTCGAGAACTATGCTGCATCGTGGCCGACCAAAAAGTCTCTTAAAAAGGACTTTTTGATCAGCTGGCAAATGTCGGTTCCCGCAAAAAGTCGTATTTCGTGCAAAACCGGCAAAAGCAAACATTTTGATTACCGGCAATTGTCGGAGTTGCCGATTGCCGGAAATTTGCGGAAAGAATGGTCGTTTGATACTCTTTTTTAGATTGCCTAAAAATGCATTTTAATGAACAATTTTTAATTTTCAAGCTCAAAATGATTTAATGCTTTAAGGATTGTCCGTTTTCTTTAAAAAAGACTAACCGAAAACTATAAAAAAAGGTGAAATTTTTTCAATTTCCAAAATATAATTAATTTTGGCAGCCGATTGCCGGAAATTGCCGATTACCTTACAATACGGGACGGCAATTGCCGAAATTGCCGATTGCCGGAAATTTCCAAAAGTAATTGCCGGATTTGACGATCGCCGGAAATTCCCTATTGCGCTCCCTTGTATTAAAGGATACGGCAAACGATGTTTTCCCGCAAGCGTATCGGCAATTGCCGAAATAAAATATTAATTCGGTGCTCAAACGGCAAACGGCAGTTATAACAGCAACAAGCCACTTCTCCAATTTATAATCGGCAATTTCGGCGATAAACGGTCAATTTGCAAGAAATCAAAATTGTGATCTTGCACATTTTTTCTGGAAATTTCAGAATTTCAATTTTAAACAACAACATGGTACCCTATGAACATATCTTAAAAAACCCGGAGTGAATTCTATAAAAACTACCTAGAGAAACTGACCAAATACTTAAAAAAGGGACGGATTCATGTGATTTTGATTAAGATAAGTCTTTGAAAACTTTCGGAAAATTGAAATCCGGCAAATCGGCAAATCGGCAACTTGCCGATTTCCCGAAATGGCCGCAGCAATGAACTACACTGTTCCAAATCGAATTCGTAACCGATATTATACTTAGGGATATTTGTAACTCGTATAAATATTAAATAATATATATATATTCCAGCTGCTCCAATCTCTCCAAATGGATGCAGTAGCCACAGGCTACAACTCCCTATTATTCTCAATGGCTGATATGCAAATCGAAAAGGTCATGGGTAAATGGATAGACATTTGTTTATTCGAAAGAATAAAGAGGATTGTTCAATCTTCTATTGTTAGTTTATTTTCATTCTGAAAATGAGATGCAATTTTCAGTCGATATGGTACTTCGAACTCTATACACCGCAACATTCACCTCAAAGCAGGTCGGAGTGATTAATAATGATGTCGTCACCAATGTGGAGTACGGTAGTATGGTTGGTCGAGAGCCCGCAGCCGTTCTCAACGTAGTGTAAGGGATCAGTCTCCATGTAAGTATTTTAAATATCTTTGGTCCGGTGATGATTAAGATACAAGTTTAAATAGTTCCCGTTTCAAAACTTCGGCTAATTTCCCGCCAAAACTTTTCTCTGAAAAATTTTAATTACTTTCCAAATTTTTTTCTTTGAAAATTTGGACTACCCGCCAAAATTTTGTAGTAAAAAAATTGAATTTCTTTCATGGCTCCAAGAATGTTTTCTCAGAAAATTTGAATTTCCCCGACCGCCAAATTGTTACTGTCAGAAATTTTGAATTCGATTTCTCGCCAAAATTTATTTTCTGGAAATTTGGATGTCCCAAAATTTTTTTCTCAATAAATTTAAATTTCCCGCCAAAATTTTCTGAAGATCTAATTTAGCGGATATTCTTTCCAAATTTTTTTCATTGAAAATTTATTGAATTTCCCGCTAAGACGAATTTTATTGTCAAAAAATTTGAATTTCTCACCAAGACTGTTATCTCAGAAAATTAGAATTTCCCGCCAAATTGATACAGAATATTCTAATTTCTCGCCTAAATTTATAAATTACTGAAAATTTGGATTTCCCGCCAAAATTTTGTTCTCAATAAATTTAAAATCTATCTCCCGCCAAAATTTTGTTCAAAAAATTTGGAATGCTCGCCAAAATTTTATTGTCAGAAGAAACTTAAATTTCTCGCCAAACGCAGGTCTTTTCCAAAATTTAATTCCTGTCAAAACTTTGTAATCAAAAAATTTGAATTTCCCGCCAATTTTTATTCTCCGAAAATTAAGAAGGATTTCCCGCCAAAACTTTGTTCTAAAAATTTGAATCTCCTTTGTCGCCGAAATTTTATTGTCAGAAAATTTGAATTTCGAAATCTCTATGAATAAAACATTGGCAGTGTTCCCTGTACGAATCGGTGGCTTGAGTGACGAAGGAGAATATCAATACATGATCTTAAGTACACCCACTGTAAGTATCCAACGATGCTCTTGACAGGCTAAGATTGCCTTAAAATTTGTTTTCTAATTATTCCAATCTAATCTTCATGTGATGTTGCGAAAAATGCAAACATGTATTTTAATACATTTTCCCCCTATTGATGGCGTCGAAAAATGTAGAAAAATGGAATCATTTTTGTGCATGTACATTTTCGACATTTTTGACATTTTCCGACATTTTTCGACGTTATTAGACATTTTCACGCATTTGACCGAACTAGGCAATTTTGGGTCCGTCTGGGGTAGATTTAAGGAGCGGCGCGTTGCGTGTCGCGTCGCGGCTTGATTTTAGTTGTATAACTAAATGTAATTGCTCCGTGTGGAGTACACGACTTTCCCAGGCAATTGTCAATGGAGCGCGAAAAATGCAATGAGGAAGGACAGAACCCCGTATCCACAGAAAGAATTTTCTCTGCGTCTCTTGTCTTTAGCATTTAAACTGGGGCGAGATGTAGAAAAATGCTGAAAAATTTCGAATTGAAAAATAAAATGATGGCAATGTTACATTTTTCTGCAGTAATTGCGGTACGCAAAAAGCATCACATGGATAACCCCATAAAAACTCCCATTTTTCCAGAGACCTAACACTATTCGAAAGGAAATGGAAGCGTGTATGATGATTTGTTGAGAAGAATGGTTTTATAAGCGCAAGTCCAATGGCAGCACTGAACACTCGTCTGCATTTTTGCACAGATGTCTATGTTTGCAGAAAAGTGAATAATTTATATGAGAATGGAAATGTTTGAGTTGAAGATTATCTCTTTTCTGAGGATACGGGAGAGTTCAAGTTTGACGGGTTGTGCAGTGTTTACATTTCTAACCTTCATGTGTTAAAAATAAAGATTAATGATTAATTGGATCTGTATTTAAAATGAACTTTTAAAACACAAAATTTCAGATCTTGGTTTAAAAACGTATACACTTGAAACTTTGTTGAGTGTAATGACGTAATTTGAATTTCGCGAAAAAATGACTGTGATATGATTTTGACCGTGTACACGGGCAATAATATTTTAATATTATGGATTATAAGCGTTTTTCAGTAGACTTTCCATATTTTCTCATGATTATTACTTTTATGACCCAAGAAAAGCATTGTTTGGAACTCAAAATTATCAACTTTAAATGTTTAAAAAAATTCAGGAAAACATAATATTTGCGTATTAAAAAATTTCCCAGTAATTTACCACAAAAAAGTTTCTTTTTCTTTTTTTAATTTTTTCTCAGAAAAATCAAATCTCCCTACAAAGTTTTTCTCAGAAATTTTGAATCCACCGCCAAAAATTTTTCTCAAAAAATATGATTTCCCACCAAAAAAATTTTTCTCGGCACAGAAAATTTAATAACAATTTCCCACCAAAAATATAGTCTCAAACTAGAAATACTAAGAGCATTTTCCCGCCAAACCACTACTTTTTTTAAAAGAAGATTTGAATATACCGCCGAAAATTACTTACCAGAAAATTTCAATTTCCCGCCAAAAATGTTTTCTCAGAGAAATTTTTAATTTTTGGTCAAAATTAAAATACTACTACGGTACCTTAATCTTACACCTCCACCGAAAAAATCATTTTTCAAAAACTACTACAGTACTAACAGTACTCCTACCGTACTGCTAAAGTACTCCTACCGTACTCCTACAGTACTCCGGCAACCGTACTCCTCTACAGTATCACTACAGTTTACTCAAACCATATCACTAACACCAATCCAATATCCCGTCACACGACGATAACTTTTTTATTCAAAAATACAGTAATCTTACTGTAGACAATCTTTTAAAGTCTGCATCCAAAACTATATCGGATCCCAAAAGTAAACGACAGTCAGAAAATTTGTATTGGATTTCGCGTAGTTTGCTCTTCCGTGAAGGCAACACACGTAGCTATATTGATGCGATGAAAAACGAGAGGAATCAGTCGAGGTGTCTGATCTACTTCCAGGAGACCGCTCTTCGACTCCTATTGGCTCTTGCAGCCACCTCATTGGCGGCTCTTCCAGATTTGGGATATCCCGGATGGCAGTGCGATGCATCGCTTTACCATCCGAAGTAGCTTACTTTAATTACTAAATTTTGAAAGATTTTTCCTCGCTTCCATGAGCAAAACTACCCCGACTTCTGCCCACTCCGTCCGACTCACCGACATAAAAGTTTTGGGAGGAGCTCTCGTTTGGAGACTCCTTGTCCGCCGCCAATGGAGCCGGAGCACCAAAGGGAGAACCCTCTGGCTGTGATCCTTCCGTCAGTACAGAGCACTAGCCTTCCAGTGTGGAGCGTGGTGACCAATCTCTCGACGAGCATGTCACTGTTGAAAGTAAGCCATTTTTCTGAAAGCGGGAATTGGGAAAAGTGAGTTGTTGCTAGATGTACTGAAAAAGTTCCTAACCTAATGGGATACTCCACTGGAACTAGTTCGGAAGCGCCAACGTTTGGGAGGTCTCAAACCGAACCAAGCAGTTCCAGGAACTGAAGCAATCGATACCATCACTTAGATGCTGCCAGAGCTCTGGTGCAGATTATCCAAAGCCACGAGGAGGTGATCTAGCAAAGTCCAAACTAAACATCAATTCCGATGCATTTCCAGATTAAAGATTACAAAACTGATTGGAAGTTTACGTATTCATTGGAGCAAACGACATGTGCGCCTATTGCAACGACCGAGAAAATGTAAGATAGTCAACGATCATTCCACACCCGGTTTTATTGCATTTCTATAGGGCCTCAAAAGCAATCTGCAAAATGTCACTGCCATTCAAATTTTAAAAGATAACTTACCAAGGTAGGTAAACTATAGGAACATAACATTATAACAAGTAAATAACTATAATATTATGAAATTGTCACATACCTATACCTACGTATAAATACCTAAGTAAGGGTCCAGAGCGGTGTGGCAAAAATTTTGAAACCAGCAATTCGGCAAATTTTCCGGGGTCGGCATACTTGGTAAAGGGATCGCAACATTTTTTGGAGCTCAAAAAGTGCCAAAATTAACAGAAAATCTAAGTTGTTAAACATTTGTGGCAAATTCCAAATTTGTCTAAATTTTTGAAATATGCCTTGCTCGGTCAAAGGTATTTCCGCAAATTTGCCGTGGTTGTCCTCGGTAAAGCGCATCATTTTTTGGTGCTCAAGAGTACTGAGTTGATGGAAAAGCACTTGTTTCAGGAAACATTTGTGCGAATTACAAATTAAGTCCAAATTATTGAAATTTCCTTGCTCGGAACCCGGAGACCAAATTCGGGAAATTTGGCACACCCTTGATCCCATAGCAGTGGCGCAAAAAAATCTTTAAAAATAGCTTGTGGCCGTTTCCGTGCCAATTATAAATTAAAGTTAAACATATTATCGAAAAAATACGATTGCAAATTTTTGGCACTCGTAACTTTGGACAATCTACCTTACCTGTTGACTAGGCTCCTCCCCTTCCTTCGACAAGACCCAAAATAACAACGGCAAAAAGATTATGGGCAACGTGGTGCCAGGCTGTCCCATTCCAATGTTTGATCTAAAATAAGGTGGGAATTTTTCGCCCAAAAAAAAAGTGACATCGGCACGTTCTTACCATATTGCCAGTAAAAGTACTCTGCGTCTCTTCTCCCGCATTTTTTGTAGACCAGCGTAATTGAAGCCAAAATGAGACACTCTGACACCACGTGGGCGGAGTCAACTTCCACAGGTAGAACAAAAATTAATGATGAAAAAAGATTTGCGATCGGATTTTTCGATAATAAGAGCCAACATTTTCGGCTTTTTATGGAAATTTTTTTTTCAAAAAGAGGTACTCAGTACTGATGGTCCATAACTATGCCATCAATACCAAGTCCTTCCAGAACCATCGTATCGATGCCCGAAATGATCGACATGGCCATGATTCGCGAAATCGACCACCACAAGTATTTCTGCGACGGATGTGTACGAGTGATGCGAGAAGAACAAGGACTTCCCGAATACCGACAACTCGGCTGGCTGCCATGTTTACATGGATGCTCAGCAGGAGATTCAAGCCTCGGGCGAGTAATCTTCGACTCAACAGTTGACTTTACATTTGTCGTCCGATTCAACCATTCTTCAATGGAATCACAGTTCCACGACCGCCTCAAGACCGTCGGAGAAGTCAATCTGGATTGGTTTGCAACGGATTGATTCCATTTCTCAAAACTAGGCCACGCCAATGTTGGCAAGCACGTTGTGGAACAATTCAACCAGTCGGATCCAAGAACCATCAAGTCATGTCAGATCCTACCATTCCACTAAACTGCCCAGACACCAAGTGCCCTCTGTACAACTAAGAGTTGACTGCTCGAAATATAGGACTGCCTAGACTGTAGGAAATTGAGTTTGTGTGTGTAATTTGACGTACTTATCGGGTCTGCAATAAAATGTTTTAGTAATCTTTAATTTTTAACGTGTGAGACATAAAAGAGTACCCTCAATAAAAATATCCTCGTGGACACAATATAGTTATCCCAATAGAGTCAATCTAATTTTTGCAATTATTATTTATTAAGAATGGATATCAAGGTAAAGGAAGGGATCTAGATTTTGTAAAAAAGATACTGGAAATACGAATTGTTACGGGATTTCATAGAAGGGGATATATCACGACTTTTTCTTTGAAAAAACAACATAAAATGATTGCGGCTTCACAATCTGATCATCCGGTATTTCTCCAGATCCCTTTTCCGATTCGATCTTACTTGATACGCCGGTTTTGGACCTACCAGATTTTCATCTGGAAGAAATTTCAGCTATGCGTTGAGTGCAGCGTTACGCGTTGCGTGCTGCGTTTACCGCGTTGCGTGCCGCGTTGCGTGCTGCGGCGGGCTTCGTTGTCTCGTGCCGCGTTGCGTGCTTGTCCGCGCTGCGTGCCTACCTTGCGTCTCCGTGACATCCAATCGTTTTGCAGCTCACTTGTCTCACTACTTGACAAATTTTCGCCTCAAACTGCTTCTCCAGTTCGAATACTTGTTTCCCGGAAAATGAGCATCGTCCGCGCTCTTTCTTCTTTCTCTTTGTTTTTTGACAGTTTTCTACAGGAGACTTTTTGGCTTGGTCGAGGCTGGATTCTGAAAAAATATTCTCCTAACGGCTGATTAGTTTTCTACGTGTAGCATTTTACTGTCGTCGAAATTCATTGAACAACCCTGTTAGTAAATTTCCAAAAAATTTTTTTCATAATTTCGAAAACTGCGTATTTTAAATTTTTTCACATTTTCTAATATTTTAAAACAAAATTGAGAGTAAAGGAAAATTGTGTCTTGTAATTTTTGTAATTTTTACTCAAAAAAAGGCCAGTGAAGTACTATTACAGAAAATACGAATCGATAGCGCAGTCAAAACTAGAGAACATCAGTATTTCACCTCAAATGCACCATGCCCAAAACTAGTCTATTTTTCAACTGCAACACTTCATACACCTAATCAAAAGAAATCAACTTACTGATCTTCCAAATTCATCAATTTCTCCATTAAAAGAGACATAGGTAAGTCAAGTATATCCTTTATCAGGTGACTAGTTATTCTCTGCGGCTTCACATCAGACGTCAACAGGGCTCCTTAAAATAGCAGGTTGAAGTAGTTAGAAGAGCAAGTCAGTTTCCATTTTGCACGACTGAAAAGAACTTCTGAGAGACTTCTCAGTACGTCTCGAGGTCCCCGCCTCCTCTTCAATCAAACAATTGTAAATTCTGGACTCACGGGGGACTTTTGAAGGTTGACGACGACGACAATTTGCCCAAGTGCGACAATCATTGCGCAATTGGTGTGCAAAGAAGAAGATGGGAGATATGAGTTCTGAGATGATGACAAAAGCATGAGAGCACAATGAATAAAATGAGACCGGATTTCGAGAAGGAGGAGGGGGAGAGGAGGATTGGTGGTAAGGGCTGATACTTGATGCAATTGAGGGAATGCGTTTCTCATACTTGACTATTTAATACTTTTCTTGAACCTTAATTATTTGGATTGTAATTTTGTAGCGGAGGCACATGTGATATTATTGTGCTAACTTGGGTAATCCTTAGACTTTCAAATATAACCTTCATTATTTGAAAAAAACTTTTTGAATAGACCTGCAAGGTTGATCTACAATTTTTCATGGAAATCGAATTAATTTTGTAAGGATGTCTACTGAGTATAAGCTTATCGTTAGGCTTAGGCTGAGGTCTAGACTTAAGGCTACACTTAAATTTACTCAGGATCGCCCTAGGCTTCGGCTTCGGCTTAGGCTTAGGCTGAGGCTTATGCTGAGGCTTAGGATTATTCTCAGACTTACGCTTAGGCTTACGCTTAGGCTTAGGCTTAGGCTAAGGTGTTGGCAGCTTAGAATAAGCTCAGGCGGGGGTGACCGCGGGTAGAAAAAAAAGGAGAAACTTCCAGAAATTCACAAAATTCAGAAACATACCTTTCATAAGTTTATTTTTTTACTAAAAAATTACTCTTAAAATGTATGCGAGAAACCCGCATGCAAAAACACCTTTTTTTTTTTGAGCAATTTCTACCTTTTTTTTATTTAATTTAAAAATACACTAAAAAAACCAAAAAAATTTTCCGAGCCCAAATTGCTCCCAAATGCTCTAAATTTCTTTTGAAGTCTGATATATTCCTATTAGAACTTGAGGAAAATGTAAACCTAGAGAAACAATACTACGCATGTTAAATGTAAATTATTAGTTTTAAAAAGTCGTACGTTATTTTGGAAAGTTTGAGGTTTTTGCATTTTTTCCGTATATCACTGAACACTTTTATTTAAATATCATCAATTATCGGAAGTAGGTTGCAGGAGAAAAAATATATTCTAGCGGGGTAAATTGAAATGAGACGGGGATCATTTAACTAAAATCGAAAGTTAATAGTTGGTGATCTACAAAAATTCTTAAGACAGTATAAATTCACGACTTCCATCTTGGGAACATTCTTAAAAAATGTCAACGAATAAAAATCTGACATTGTGGCAAACAAACTTCTAAATGTTTCAGACCTTATATAGCGGACATGACAGTGGCTTGCTTATTTGATATGACTTGAGTTTATTTTTTTTTTATTTCAAGCGTGGGGAGATTTATTTGCCTAGATATATATATAATTATTACTGGAACGAACTGGAAAATAACTTGGGATCAAAATCAAAAATTCAAACCTTCAATAGAGATTCAATCTTTTCGAAACTTTTTCTATAGCTTTGTCGAGAACCAACAGACCACGTAAATACTTATAGCTAAAATTTTATTAAGATTCTAAGTCATGGTGAATCGAGAGTTTGTCAAGTTCCATGTGGTTCCTAAAAATAAACCGATACACGTGGTGTCAGGCTGTCTCATTGCGGTTTGATCTACGAAAAATGCGGGAATATTTTTCCAGAAAAATTGTGACGTCAGCAAAAATAAATAAGGGTCTAACCACAAAACTGGTACTTGAATCTTGAATATTTTTAATTCACCCTAAATTACATTCCCCTGATTCCGAATATCTATGATGACTGAAAAAATTCAAATACAAAAATTTCCTGACAAAGATTTATATTTAAGCTAAATCTTTCATCAAATTTTTTTTTTAAAAATTTCATGTACTCGCATCACTTTTTTCAAACTGGCGCCCAAATAAATTAGCGCGCGCGTGCATCGTTTGACCTTTTTTTCGTTTTTTTTATTTCTAGCCGAATTCAATTTTTTTAAAACCAGTTTCAGTCATTTTTGTCGGTTTTTTTTTCTGAAAAAAATGTAAAAAAACGACAAAAAATCAAACAATGCATTAACAGCGCGCTCCAATGCTAATTTATTTGAGCGCGTATTTAACAAAGAAAGAGACCGGGATACAAATGAATAATCATTCGGCGATCTCAAGCTTAAATACATGGAAAACTTGTTTTGAATTTTTAATCTTTTCACATACATACTCGGAATCAGGGGAAAATTAGGATTCATTCAAAAATATTTCCCAGATTTCACTCGGTACCCCACCTTTAAAATTTTTACATGTTTTGGGAAAACAAGGGAAATTTCTAGAACCTATTTTATGCCAATACCTAAAATGCTGAACATAGATAAAACACACACACCCGTATGAGTATTATATACTTCCAATGAAACATTTGAAAAATAAAGAGTTCTCAGCTTTGATCATCCACTTGTGATATTCTCACGCGTAATAGCACATGGCACCAGCTCAAAGTGCTCATTTTGGCTATATATGAAGGTATATGAAAAAGTGGAAATTGGGAGGAAAAATGGCATGTTGACTTCTCTACGTGGCCTATGTGTGAAAAAACCCTTCTATGACAAATTCAGTTTAATTTTTTAATTTTTCTTTTTAAAATTCTAAAAATGGCTAAACGTTCAAAAATTTTTTAAAAGCCAAATACTATTAAATTTCTTTGTTGATTTCTTAACCCAAATTTACGATTTCAGTCAAATTTTTGAAAATTACAAAAAATTTAAAATACAGCTACTTGTAAGATGCGCAAAACAAGAATTACAGAGTTTTCAAACTATACAACAGACAACTCTAGTGGCTGAAAACTTCCAAAGTTAAATAAAAATTCCAAAAAATCGATAAAAAAATGTATCTCGAAAAATTACCGCTATAAGAAAATGGCCTTCTCTATCCCAATGAAATTATGGAAATAGATTTTTTCAAAAGCGATCTAGTTGGACGCTGTGCAGGGAAAAAAAGTTCAAGCGCGCAAAACTTTCGCTAGAAACTCAAATTTGCCTCATCAGACCTTGTTGGATTTTTTTCCCAAAGAATTTTCAAATGCCGAATACCGAAACTCCAGGGCTCACGTTTAGACCTTAACATGAAACTTTTGCCATTTGAACGAGGCTCTTTGAATCTCTGTAAAAGACTTAGCGGCAGACGAGCACTTTGAACTACAAAAATGTCGCTAAATTGCTATCATGGAAATTTTTCACTACTATAGGAGCCCGGTAAAATTGCTCCAAATCATAATTTAAAATATTTCTTCATGATTTTTTTTTGATTTTTTCATGATTTTCGAGGTAGGAGCAAATATTCAGTTTATAGGATATATTTTTTTTGGAAAAAAAAATCTGAAAAAACCCACATATCCAATAAAAAAATTACCAAAAAGCTTTCAGAATACTTGTCTACCTCGAAATATCGTAAAATTCATACAATCTCTGTTCAAATAAAAATATAATTTGGAGCAAATTAATGGGCAATTTCAAAGTCTAAAGTAGTGAGCTATAATGCATACATTCCAGAAAATGGAATAAAAAATAAACTGAAGTCAAGTTAATCTAATCTCAAGTTACCTCCTCCTCCTTCCCCCAACAAATACTGCTCAATAGCCCCCAACCAACTCGTTCCAATTTGAATAGTGTATTATTTAACAAGCTCTGTCATATCTCTCTCCTATTTTTTTTTTTAAGTCATTTTTATCGTCGCACCCCTCGACCGTTGTTGTATTAGCCTCTCTTCCTTCTTCTTCTTCTTCATGAAAACGAATTAAATTTCTTCATCCAATTCACTCAAATCACATCCTCCACCGACACATTCAATTAATCAACCGGTCCTTAATTGAACACAACAACAATCACTATTTCATAAAAATTAGTGTTTTTAAATGTACATTCAAAAATTGCGACGGCTGGAAGAATTATTATTTACACCAGAAGAGTAAAATTTGTAACCATAGTTATGGTAGCTACGGTAACTCAAAAAATTAGGGCATAATTATGCGACATGTTCTCATGAGTGCGCAATAAAAATAAAGCTGATCCAATACTCTTGAAATACTCCAATAATCGTTTCTGATTCCGGGATTCCTTCTCAGACAAATGGAGCTCGGAGTGCTCAATTGGTCAATGTCGCTGTCATGGCACCAGGGTTGTGCGGCATGGATTTTTTGGCAATCGGAAATTGCCATTTGCCGTTGGAAACTCTCGGATTATTTTTTTTCGGCGATCGGCATTTGACGGTTGCCGAACATAAACTCGTTTTTTCGTTTATTCGCTTCCGCATTGTTCGGCCGACAGTGCTTAATCTCCTTGAGGTAATTTTTTTTTATATTTTCTTGTATTTTATAAACAGTCTAAATAATTCAATTCCAATGATAAGGAGTGTCTTGGTTTAAATTTTCTAGCACAGATAATTTCATTTATTAACGATCAGACTGGTAGGATAGTCAACGATACCACCCCAGAGGCTAGTATGATTCAAAATAACACATGGACATACAGCAATAGACAAAAGATCTTTGAATGGAGTTTTATGGTGGGGTGGCGATGTGTCGACCTAAAGAGTATGTCCTAAATATACGGCTAATAATTCAAATATGTTGTATTTTGGAAAGTGTTAGAACACAAGTGACTGTTTTCGGATACAAGAAGACACAGAGATGTCCCTTGATTGTTCACAGAAAGCGTTTAAGGATCCCGTTTGACTACAATATTTGCGGATTTATGTTTCAACGAATAAATGTAAACTCGAAATTTACTATATATACAGCGCTTTCATATTCCGTTTTTCCATAGTTTGTTGGCTATGTAGTCTTTGTTTGAAAAGCGTCGTCGTTTCAAAATGGTTTCTGGGATAGTGAGTCGGGGTTAGGGATATAGTCGGCGTACTGTAGTGGTACGATGGTGGTACGGTAGGAGTACTGTATGATTACGGGTTAGTCTCAGAAAAATTGGATTTCAGCAGAAGTCGGCGGCCGCGCCAGAGGTGCAGTCCACGGCTGGTATATACATATGTATATGTATGTATATATGAATACATATATTCAACTATTTAATTTAAAAAATAAAAAAAACATTTCTCACAAATGCCGAAAACACCGAAAAATCGAACATATTTAGGCATTCGCCGATATTTTGACCAACTATTTTTTTTAGGCGAACGGCATTCGCCTTTGCCGCACAGTCCTGCATGGCACCCCGACCGGTTTCGTGACCACAATAGTTTTGATCTGAACGCAATAGGAGTCAGGAAGTTAGGGGTCATGGGTGCTGTAATCGGACCCCCAGTAAAAAGCACATATATTGACAACAAATTTTGATCGCTGTTTTTTGTCTTAATTTTTTGTCTCCCCTCGATGCGCATTACTAGTAATGATGCTTTATTTTTTTTCATGTATCTAACAAATATATCAAAAAACTGAAATTAAAGCGCTTTTGTTCAAGTTAGCAAGATAACCATTATAAAGCATTCCAAATAGATTTCAAATTAGCAAAATAAAGTGGAGAAGCTAGGATAAGATTGGGGAGTATAATTTTTCGGGCACACCTTCAGACTTTGTGGCCATAATAGCCCAAACCCACAGTTTAGTGAAAACTAGGGCTTCATTTGCTATATGGTACCCGGCACCTAACCTCTTTCAGCAATCGAATCCCAAGCAACCTTCACATCTGTAACCTTGACAAAAAACACGCAATATCAAATGGAATATAGAATTCTTTATTCAAGAATCATCATCATCATTTTTTTCAATTTTTACCGAAATGCCGAGCATATTTTTTGTCACAAGGGGAATGGCAACGGCGGGGAGCCAAGAAAATCAAAAAACAATATGGACAGAATAATGTGCCAGCGGAGCAACCATGCATAAATAATGAGGTTGGTGAGATGAAGAAAAAACAGATAAGTTACGACGCGAGGAACTACGATTTTGAAAAATAAACTGCTAAATATGTGCTTAATCCTCCCAGGTAAGCGATTATAGGACGGTTCTCGCATCTTAGCTGGCAGTTTCTCTTTCCGTATTGTTCCAGTTGACGTTGGCGAACCCGGCGTCTGAGACGATGGTGTTGAATATCAGCGTCCTCCGAACTCGGAGGCGTCTTCCTCGATCTTTCTGGCGGCCTCGAGGTTGGAAGGTATCAGTGATTGGATTTGATTTATAGTTCTTCTTGAGTTTTTTTCTTTATTTTCCTGCTTGTAATTCTAAAGCAACTAGAAAAAAAAGTTTCGGAAGGCATCTATCATGCCATGATTTGCATACCCGGTATGGGTTTGCGCGCGCGGGGGGCTTGCAACATTTTCGTAAATGACATTACGCTATGAGAGGGGGGGGGGGTGTGTAAAATAGGTATTTCTTGTCTGTCCCCGTTATCAAGTTTCTTGACGCAACGCGAGAGAAAACATACCTTCTCGTTCCTGCAACGCGGCCTCAACGATGGAGCTCTGGATGGTCGCAGTTTCCCTCGTCTCCTTCCTCATCCGTCGGCGTACTCGACAGCTTCGTTGGTCACCTGGAAATTAGAAATTAAATTTTTCTCGATTAGTTTGGCCGAATATAAAAAGTAATACTAAGAATTTCCCCATGAAAGGCTGAAAAGGGGATTGAGGTTTCCTGGGAAAAGTGAAATCCCGGTCTCAAAATTTCTTTTAATTTTTTTGAGCTCCGTTGAATACCGACAACAAAAATGGCTCTGGAATTTGAAAATTACGGGGCACCGAAACACAACTTCATCTACTGCTGCCAGTATGTCACTCCCGCATTTTTCGGAGGCTCAATCGTAGATCAAAGGTTTCCGAATAAGTTTAGATTTTTATCGAGATTGGTAACAACTAGGATTGACAAATACCAAATATCAAATATTTACCCAGATGCAAGTTTTCTGGGTGCTTTGAACTAGAATTCCTGGGAACTGATTGTAAGTGTCAAAACGCCCTCAGCCAACCGCCTAAGCCTAAGCCTAAAAAGGTGTCTCGAACTTAAATTTCGACTGGCATGGCATTCAAATGGGTATACCGATGATTTTGTTTCAGCTAAATTTTTAGGGTCGAATTTTCAAGAGCAAAATTGGGATATTTTTAAAGACTATTAATTGTCCAAAAATCCAACAATTCCAAGTTCAAATGAGCTTTAACTTGAGATCACCTTCCCAAAACCTCAACAGTATCAACTTGCGGTGGCGGTCTCGTGGCGGTTGATGGCTGCTCCTTAACAATATCCAATCAAAGGTGCCTCATTGGCGCTAGGGCAACTGGAGCCTGAGTCCTCGACAACTGGAGCTGGAGTCTCTTCAACAACTGGCGCCTCGGTTTCCTCGATCACAAATGGAACCTCAGTCTCAACGACGGCTGGGTTCGCTTCTGCAGCGGCGAGGTGCTTCAGTCTCAGCGTCGATTTCTGGAACGATTTCCTCTTGGACAGTCTCGGACTACGGTTGGCTCTGGTGCTTGCTGTCGTTCAGATGCCGTGCTTGTTCTGGTGTGCTTGCGCTGTGGCTCGACAGGCTGACGACCCGCTATGCTCGACGGGTTTTGGGACTGGCCCCTGGGTGTATGTGGTGGTCCGACTATGCTCGACAACTGAAGTGTGGGTGTGAATATGTGGGTGGGAGTGGTGCGAATCTGACTAAAAACTGTAAAAACTAACCATGAACAGCCTGGTGTGTCCTGTGGTGGAGCTTGGTAGTCGTCCTTGAGAGACTTGGGTCACCTGGATAGAGCTGACTGGTTCCGATTGGTACCCTCCTTGTTGAACTTGCTCGACTGAGAGGGTGCGGCGTTGTCTCCTCAGGTTGTGGGGCGACTGGGGTGGGAAGCTCCAGCGTATGAGGGTCCTCGAGTGGTTGGTAGCGTATGGATTCTCCGATGCCGCAGCTTGGGAAGCTCCAGCGTATGATGGTCCAGCTTGCGATCCAGCGTCGCGAAGATGCTCCTCCTCCGATTGGTCCTGAACCAGCGTAGGCAACCTCCACCGACTTGTCCTTCGAATCCTTGTCGACTGGTCCCGAGACGAGGCTCCTCAGACTGGTCCAGGTCCTCCGAAATGCATGGAGCGGCATATCCGGCTCCTCCACCGATTGGTGCCGGTGCTGGTTGTGGTGGGGGTGGAAGGCGCGGCGGGATAGCTTCCGCGTCAACGCCTCCGGTTGCGTAACAGTAAACACATGGGGTTAATAGTATGGAGGTGGCTAAAGGGAAGCAGGTTTTAGTTTTGGCGGCCAGCAGCAGGAAACAGGACAGTGATTTTGCATGAATGGTGGCAAGTAGAATGCTTTGTCCTAAGGAAGACATCAAAAGATCTTCAGAAAGAAAGAAATTATTTTTGGAATCAGGAAAAAGCATTTGAATAGCAGTAGAAAAAATATAACAATAATGTATAGTCACTAAAATACAAAAAATAATGCAAAATCATCGTTAGCTCGAGCTAGAGCATGGTGGAGCTCATCCTCCGCACGATGGCTGTGATGATGGGCAACATCCACGGGAGCTGCCGGCACCTGTCTCCGATACACGCTAACGCAGCGCGACACGGCAAATAAGACGGCTACGACATGACTCTCATCGTATTTGAGAAGGCAGAAATCGCAATGGAATGCTGAGTAACTGTCGTCGAAAGGCAACGTAGGACGTGCGTTTTCTAACAGCCACCCCAACTATTAAGTCCGCCCATGGCCGTCTGGAGGGGGCACGCGGCACGAAGCTTTCCGAAAGACGCCCGATCGCGTTTGATCGATGATGATGATGATGAAGAAGTGATGAAGCCCTCTCTCTCCGACGGAGGACACCTTATTCACCTTGGGTGCGTGTGTGTGTTGCAGTATAGGTGCAAGAAGAAGCGATCTACAAATGGGGTTCGTGGTCATTTCCGAATGATCCAATGCTGGAATATTCCTATTAATGTGACTCGTGCCACCTCATTGTTACTACTTGCGTGATTGGATATGTACCGTTGTTTCCTTTTCTAGTTAGATTCCTGAACAGTTCACCTTTACCTAATCCGGTGATCGATGTTCCAATGCTCTTCCTTTCACTTCCATTGCAGCACCTAATCAGGCGGAATATCATGCTTTCACTACTCTGCAGGTAAAGTGTGAAAATCCTAAGTTTTAGATTTCAAAGATGTCAAAAACGATCGTTGATCCTACCGCGCTTCCGCATCAACTGATATCAGGTTTTTATTAATGACAAGATTGTGGCAGAGGAATGAACTGGTTAACTTTTAGGCTGATTTAGTCTAACCCCGTGGAAAAACTTCCAGCTTTTACCTAGCGGTAACTGCAAACTACGGAGGATTAAAATACATACATTTTGTAAAAACATACATCACTTTCATAAAAATTTCGGTTTAGTTCAAAAAAGAAAAACACATTTCTGTTTTGAGATTTTTTTTTTATACACCCAAAAATGTCGATGCAATTTTGATGTTGATGCACCTAAGGGCGATTTAAAGGAAATTATGACTTTGCTGAATATTTTTGTTGTATGTCTTGATTATGGGTTTGTAGGCTTCGATGGCAGGCGCAGGGGCCGACGGGTCCTGGCGCCCGTCTGAAACTTACGCCCGCTTCACGCCGGCCTTTTGCCTCTTTTTTGCATCCCTTTTACGTGGTGCCAGGCTGTCCCATCGCAGTTTGATCCACAAAAAATACGGGAATTTTTCGCCCAAAAAAATGTGATCGTCAGCACGTCTTTAACCATACGAAATCAGTTGAGTCTCTTCGTCTCCGCATTAGTAGATCTGTGTAGATCAAGCCGTGTAGCGCGCTGACAGCACGTGTGTTTCTCATTGGAAATTGGAGGCGAAAATAAAAAGTTAGGCCATCAAAGTTTCAGCAAAAGGCGCGGATTGAGGCGAGCTCGCTTTGCTAAAGTCAGGCAGGCAGGCGGTGAACGCCTACAGGAAAAAGATTTTAGGTTATATCTGTAGGTTTCCCTTTTGTGTGTTTTTTAGACCGTCCAAAGAATCGTATCAAAATGAATAGGTATTTTCTCGTTTTAGGCAGATAGGTAAAGGTCTGTAACCTGAAAATCCAGAGCCTGATAATCCACACCTACATAATCATCAATTAAAATATTCAGATAACTGATAATTTCCTGAAAATAAGATATCTGTAAATTGAATCAACACCAATTTTAGTGGTCCATCAAATGCAACATTGTATTGATATATAAACTTTGGTAGTCAATATATGTTTTCTTATGCATTCTTCTCACTACAGTGCACCTTGATCATTGAGTACTTCATCTATTCTTGACCACTTCCTAAAAAACAAGAAATCAATCACGGCGAATATCCAAAAAGCATTAAAAAAGTACATTTAAACGAATACATTATTATTGCCCGTTCAATCCTCGTAATGTATCTTTTGCAAGTTCCTTCTTCCTCTGTCCCGTTTTGCTCCAATTCTCCGCCATACCTGATATGCTCGACTTTTTCGATCATAGACGCGAGTTGCGCAACGCGCGAAAATATCTTGCGCAATGAACAAGGAGAAGAAGAAGAAGAAGGAGTAGGAGGAGCCAAATAAAAAATAGGTGATAACCCGGGAGATGTTAAGCCAAGGAGTAAAGTGTTATAGCTTGAAGAAGGCATATTTTTGTTTCACTCCCCCCTCTGACAGCTTCTTCACTTTCACTCCAACCGTTTTTACTCTGAATGGTAATAGTTGACGGATCGCAAAGGCAAAGCCCTAATGGTCATGATTTAGAAGCAGCGGGGGTCTTGAAGGACGATCGGACAACTGAGATATGAAGCGTGAAAAACGGAACGCATGCTTATAAGAGGGGGAGATATATGGAGATTTGTTGGGAAAGAGCTATGGTACCGATTTTAATCCGGTATTGTGCTGGATTATAGTGTTTTGAAGTAGTAGCTAGGCACTGAAATTCACCCTCTAAGCCGTTAGAATTGCACATATTTTAAAACTATGCACCAGTTTTCTTAAGAACTGCTTGAAAGTTGAATTTGAACTGGTAGTTCTTGCAAAGAGGTTGAACTATCTGGTTTAGTTGCGTCCATAGTGCTTTGATAGCCCTTTTTAATTCCGCCAAGAGGAACGCCGGATTACCCATTTGCCGGGGATTTTCTTTGGCAAAGGAAATCGCCGATTTGCCGTTTGCCTAAGAAAAAATTTTTAACAGACGGAAAAACTTAACTGTGTCATTTTGAACTTATTACCGTTTTCTTGAAATATTTTCATAGAATCTAACTTTTGTAAATTGGAGATGAAGGAACATTTATATTATTTGAAATTGAAATTGTGGACCTTAAAAAAATAATTTGCAAAACCACAATTTCCCGAACTGCCGTTTTCCGCAAATTCGGCAAGTCGGCAATTCGCCGATTTGCGTAGCGAAAATTACAAGCAATTTGCATCGGAATGACAAAGCAATGTTTCCTAACATAAAATTCTAATTTTCAAGAATGATTTTTTTACTCAAAGTATTTTTATAAAAGAGCCGAATTATTTTAAATGCCCGCGCAAATAAGTGACCCCACATTTTTTACATTATTTGTATTTTCTGGCTAAATTAATTGCGGTTTTTGAATGTTTTTTATCTTTAGTATATAACTTGAGTAAAATTCACAGTAAAAATTAGTTTTGACAAGTCGATTTTTAGTTTAATTTCAGTTTCGGAGTTTCGGCAAATGTATTCTCAATTAACAAGTTTTCCAAAAAAAATCTGACAGAAAATTGACAAACCACGGTGTATCAAGCCGAGAAACCCTGACACCACTTGTGATTCCCCTTGGAGGCCCGCCTAGATCAAAAGTTGGGCCACCATCATTTTTGTTCGAACTCAATTGGTAAACTTTGCAGACTAGGCTGACACGTGGTATTTAAATACAATTTTCCACATTTATTTTCCACAAACCGAATAAAATCCTTATCTGAACAGTGTTATATAATTTTTTTCTTCAGATCACTCGACAATTTAAAATATATTACAGCATTCTTCTTTAGATGTTGAACGTTGATGCTTAGGATAAACATGAAAACCAGATCAGCTTTTCCGTGACCTCAAATACTCATTTTCTCAAATTCTCAAAAATGTTCTGCCTTCTCCAACGGTCTCTAAAAAAGCTTGGAAAACCCACAAAAGGTGTCTTGGGAGGGACACTCTCTTTTATCGATGACCGGAACGCCGGTATAAATGGGTTTTGCGGACTGACACCAGCAGGTGGAAATGGGCGACACTAGTAAAATAAAGAAAAATAATAATACTGAAAAAACAACACGGTATGCGAACAGAGAGTAGTGGCAAGATCGGAAGAATGGTCGGGGGGGGAGGGGGGGGGGATTACATAAAGATGTCGGCATAAAGTGCGTTTCATTAGGGTTGGGATTTTTATAGGGGGAAACTTTGATTTTTTTGAAAAATAAATTAAATAAGAAAGAAGCGACAACAACCAACAACAAGGTCATTTTTAAAAGGAAAATTTGGCTTGAAACTTAAACATTTTGGGATGAATTATGAGGATATACTCATAGATTAACCTAATTTAACAAAAAACACGTCGTCGAAATTTTTAAAAATGAAGCTACTGCAATTTTGAAATTTGGTGGTCCTAAGAAATCTATGGTTTTGTGGTATTTTGACGATAAACTGATTTTTTGTGTTTTTTTTCTGGTATTTTGAAGCCGCTGTACTTCAAACCCTTTTCATATTCTCAAAAATATCTTTGCAAAATTCGGTTTTCTCTAAAGAAAATTTCAAACTAAACCACTATTTTCAATTTTTAAAAATCTGCAGATAAGATATCGGAAAATTCCGGCAATTTGCCGATTTGCCATAAAAGTTCCGGCAACTTGCAGATTTTCCTATTTGCCGTAAATTTCAAATTCCGGCAAATTGGCGAATTCACGCCGGTCCTACCAGTGATGAATAAATCTTGTTTTTTTCTGGTATTTTGAGACCGCCGTACTTCAAACAATTTTCATAGTTTTACATATCTTTCAGCGAGCGGTTTTTTTTGAATATCAAAATAAACCAAAAGTCTACTTTTTGTGGTTTGTTTTTGTAATTTTTTTTTTAGAAATTTCAATTTTAAGATATCGGCAAATTGGCAATTTGCCGGTTTGCCGGAAAATTTTAATGTAGATCTGGCGATTTGCTGCTTTGCCGATTTGCAGGAAATACTCTATCCCTGATGTAAATTACCAGAATTAGAAATGTGGTATAGCACGATTGGCACACAATTTTTTAGTACTAAGGATAACACGCTGAAAATTAAATTTTTGAAAAAAAAAATTCTTGAAATTGTTTTAGTAATTTCGTAATCAATTTATATCATTTTTAGCCTTTTGCTCCAAACTAGGTTTTCTCCCACGTGGCATCTCTCATTACACATAAAAATCCCTGCTAACTCAAAACATTAAGTTGTCAGAGATTCATATCCATGTCCGCTTCACTTTCCAACTTTTTCCCTCTTAGCTTATCTAGATATACGTATATCTATCTACAAGTGCAACAACGTTCTCTTTTCAAACATCCAGTTTATCTTCTGACCTTTGCAACATTTTTCCTTCCAAACTTCCAGATTGCATATTATTCTTACATTCAAAGAGTGTCTCAAGTTTTGCTTAGAAGAAACATAAGGTAAAATGTCAGAATATCTGTTTACAGCATTGTAATGGCAATTTATTGTAAATATTCGCAATTTTGAATCTCCCTTAAAATGGTTAATTTTGTAGTTAGAGGACTAAATTAATGCCCAAGAAAAAGTTGTCATTTTTCATTTATCAATGATTGTACATAATTTCATGCCAAAGAAAAAATTTTGCCAAAAAAAGGACAGTCATTAGAAAAAAAAACGGAAAAATGATCTGGATCAGTGATTCTTTTTTATTATCTAAAAATAATCAGCATAGTCAAATGTACCAGAAAAAAGCAAATAAAATGTACTAGATTGACCGGAAGATTATTTGAAAAATTGCAGAAAATGCACCAAAAGCTGCTTTTTTCAAAAATTCACAAGTAGGATACAATTACGGAGCTATTCTTTTTATTTCGTAAAACTCTTCGCATAGTCAATAATACCATAATATGTCGATGAAAGTATAATATCTTGTAGTAAGTATCTTTTTAAAAATTGATAAAAATATATAAAAGCTGTTTTTTTCAGGGAAACTGAAAATCCAAATGGAGGGAAAAACATAAGGCATTCTTTTTTATTGCAGCTCATAAAACTCTTCAGCATAGTCAAAAATACCAAAATATGTCAATTAAAGTATAATAGCTTGTACGGAAGTATTTTTTTAAAAATTGATAAAAATATATAAAAGCTGTTTTTTTCACTTGCAAAACAAAAGTATGGGAAAATCATATGGAGTCATTCTTTTGTATTTCATAAAACTCTTCAGCATAGTCTCCCAAAAATACCAGATTATATCAATCAAAGTATAATAGCTTGTACGGACGTATTTTTTTAAAAATTGATAAAAATATATAAAAGCTGATTTTGTCAAAGACCAAAGTCAAAAGTACGGGAAAATCATAAGGAGTCATTCTTTTTTATTCATACTCTTCCCAGAGGTCCATAGCCAAAAATACCAGAATATGCCAATCAAAGTATTGTAGCTTGTACGGAAGAATTTTTTTAAAAATTGATAAAAACAAATAAAAGCTGCAATTTTTTGAAAAATTCAAAAATTCAAAAGTATAGGAAAATCATATGGAGTCATTCTTTTTTTATAAAATTCTTTACGGAAGCATAGTCACAAATACGAGAATATTCAAAAGATAATAGTACGGAATTTTTTTTTTTTGATAAAATATATAAAACTGAATTTTTCAAAAACCCTTCAAAAGTAGGGAAAACTATATGGAGCGCTTCTTTTTTCTGTAAACTGTTCATCATTACGGGTAATACCTGAAACTACCAAAAAAAGTAAGCTAGCATGTACGGAAGATTATTTGAAAAATTGCAGAAAATGCACCAAAAGCTACTTTTTTCAAAAATTCAAAAGTATGGAAAAATCATATGGAGCGATTCTTTTTTCTTTTATAAAACTGTCAGCATAGTAAAATGTACCAGAGAATACCAAAAAAAAGTTGGTATGCTAGATGTTCGAAAAATTGTTTTTATGGCGTAATTTCTGAAGAGGAGTTTCGAAAATGTGAATATTTCCCAAAAATGGACATTCTTGCCACTTTTTACTAATTTTTGATGGGCTAAACCTAGATTTTTAACGCTAAATTTTACATTTATGAGTTACCCGTTTTATCGACAAATTCAGGCAGATTTTTATTTTTTCCTATTTTTTTAAGCCATTTAATCAGCCATAATAGTGAATGTCTTTTTGGGCAAAAAAAAATTTTTTAAGGCTGACCAATTTTAAGCTCTCCAGCTATAAAATGAACCATTTTAGAGGAGTTTCAAAATTGTGAATTTTTACAAATATTGCCCCAATTTTCCACTTTGTAATGGTTTTTGGTGGGTTAAACCAAGATTGTATTCTGCATACATGAATTACGCGTTTTCAACAAATCTTAACAAATTTGTTTCTATTTTTTCCAAAATTTTTTTCCCTCAGCCATCTATTCCTTTTTTTTGTCTGTTTTTTTAGGGCAAAAAAACCTTTCCCACGTACCACCTTTAATAACACGGTAAACTGGTCTAAAAATCGGCAAGCGGAATGAAACTTCAAGTAATATAATGCGATGAATTGAGTTTTTTTTTCTATTTTCTTTGTTGAAAATATCAATATGAAAAAAAATGAGTAAAATTATATTGACATAGTTAATCGGATATAAATAATAAAACATCACAAGCACATTTAATTTTTCAAACCCACTCAGGAGTCATGAAGAAATCCTTCTCTGCACATCTAGCTTTCTCCACATCCAACTACTTTTATTATCTCCAGCAAACTCCGTGTAACTTTTATTGCATACACATTCAAAAGTTTTGTATGATGCTTCAAGTCCCAAGTCGATTACACAATCCCCGAAAAGAGCATCGCTGCGAATTATGTCAATTCCCTCTTCTAAATGCACTTGTTCTACAAACTTCACTGATTTCCTTAGGATGCCACAGTCCCCAGGCAACAGTTTGTGCAAATTCTCAAGGTTTGATTTCAGTGGGCAAGCGGCAGGTAGCGCTCATTTTAAATTATTGATTTTTTTAAAACATTATTAACTCACTTCGTCGCTTTCATGTGCTCTTCTTGGATTATGGTCATATGGTAACTAAGAATCTCGAAAGTTGTTTAAATCCCAAAAAGATCACATTTTTCCTTTCAAACGCATTTTCTCGTTTACAATGTGACATCTCTTGTTCAGTAGTTGGAGTCGGCCTCTGTCGCAGATAGTGTGACCAGAGCAAGTGCCTATTCAAGGGATTTGGGTATATCATGATCTGGAAAATTTGGTATGTAGGGCTTCCATGGTAGGCAGGCGCGGGGCCTGGATGACCCGCTCCCACCGGTGAATTTACAATGATTTTCTCGTATAAATTTTGTCATTTTGATGAAACAAAATTGAGGGTACAGGCAGGCGGAGGTCGCCTCAACTCGGCGTTTGCCGCCACCAAGATTCAATCTACCTGTCCAAAGCATAGCAACTTCTAACCCAACCGCCTTGCCTCAAAAAAAATAAAAAGCTTAAATATCAAAATTACTCAATTTTGTGTCAACCTATTCTACTTTTCTGAGACAATTTGAATTCCCTCCAAAAATTTTATTGGAAAACAAGTTTGAACTTTCACTGGCCAAAATTTTTTTTGGCTGCGCCAAAGATGATCAAATATTCTCGGCAAGATTTTTCCCAGACCCCAATTGAACTTCTTGCCAAAAATTTTGATAATTTGAATGGCAAAAATTATCTTGCCTTATGGTGAGGACACAATCAATAGTTGTCAAAATTGTATATGTCTGTCAAATTTTTGATGTGTGTTGGCAATTTTGGCAAAGCATTTGCCGAGCTGTCTCGGCAAATTCGGCAAATTTGCCGAGCTCGGCAAATTCGGCAAATCTACTTTTCGAAATTCGCCAAATTTGGCAAACGGCAGAAAAAAGTACAGAGATTTGAGGTACACAAGGCTTACATCGAAATTAATCTAATTAAAAGAATGATCACTTACCATATATAGCATATACTGCATATTTCAGTGACCTTCTTCGCAACAATAGTCTAGACACTGCCCAAACACTACACACTTGATGCTATTTATGTACTTTCTATGCTGAGCAAACAGAACATGCGATTTGAGGAATCTTAGGTAGCAGCAAAAAGATTGACATATGATTAAATTCCTAATTTGTTCCTTAGCTTCCCGTATGTCAATTAATTCGTAGATAGTTGCTATTGAGAAAAGTTTTTCGAAAATTTGTAAGATATCAAAATAATAGTCCTCATTTTTAATTTAATGATAGAGTACTTTGAAAATTTCAACAATTTCAACACTTTTGTAACACCTATGTTATCAATCAAATACAACAGTTTAGTACAGTAATCCTACATTTCCAGCCCACGTGGTATTAAGACAGTGTTAACCTTGTTATTTTTTAAGGACTAAAAAAATTTAGAAAATTTTTCTTCCCATTTTGCTTACTTATCAAAAAAGCATCGTGCCCTCATTTAAAAAAGAAGGGTCGTCGCTGGAAAATGTTAAAAATTTCTCTCATGATGCGCTAAAATTACTTAACTGTTTAAAAACATTATAAGTATCGTAGCGAATTTCAAAAATCTTCAAAATTTAGATTTATTTATAGTCAACAGTTTTGGAAGTCAATTAAAAACATTTTTTACTATTTTTAATATTTACAAACGTTATAGTCAGTTGCTTGTAACTTTATAACTCCGTTGCCTACCGTACATTTAAAACAACCGTAAAAATCTAAGCTTTTCTCCCGATAAAAATCTTTACTCAGGCGCGCGACTCTTTTCTTACATATCTTTCTGAATCTAATCAATATTGAGCTCATACTAGCTGTAAAATTGAACATACATATAACTTTGAGTGCAATTTCGACCCATAATTTCAGAAAATTTTCACACACAGAAATCTTTATTGAGAATGATCAGGACAGTTTGACCTTTCATGAGAATTGCTTGGAGAAAATTCCAATCGCACAAAATTCCTCATTGCCAAGTATTTCCTTTAGTTTGTGGCCAACGCCTTAAAAAATAGAAGACATATTAAAAAAAAAACTCTGACACCACGTGATTATGCAATCCGACTCATCGTCAACACACGGGGTTCTGCCCTTCCTTATTGAATTTTTCGCGCTCCATTGACAATCACCCCACGCCGTCCGACACGTGTGAAAGTCGTCACTCCACAAGGAAAAATACATTTAGTTTTACGTTCGAACTAAAATCGAGCCGCGACGCAACACGCGACGCGCCGTAAATCTACACCAGCTACTCTATGGCCAACCGAAATGGCCTAGCTCACAAACTCTTCCATTTCAATTTATAAGCCAGAAACCCGTGCGAACTGCGAGCCTAACGCTCTTTTTCAAAATATCGTATAACTCGGATAACAAGCCATATTACCAATTCCTGTTTTATTTCGAAAAACAGATAATACAAAAGAAACATATCTGAAAATTAAGAATAGATTACATGTTTTTATCAAATACTTCTTTGTCTATATTCCATAAATGACCCCCATGCGAATGAAACACTCACTATACATTCAAAATGAATTTCGCACTTGTCGCTTTCCTCGCTCTCGCTAACATTTGAGGACTTGCACAGGGTGATCCAGGACTCTCATTTGAGAGAAGATTCAGTAAATATTGTAAGCTTTCGGATTAATGGTTACAACATCTATTAGATTGAATGGCAAAGTGCCAGTGGGAGCAGTGAAGACGTTGGTTAATGATCTTGTGAGCCCTACTACTATTTAGGGGGTGGAGAAAAACAACATTATCCTCATTGTCAGTTTAAGGAGCTACGGGAGGGCTCCATCTCAAATGTTTCAAATAACTCATATTGTACCTTTCTCTGGTGAGTAAAATAAATTACATATTCGGAATCCTTTTCTTTTTGATGTTAACCAAGTTGCCGGTTGCCAAATTTTGTTGGGTTCGGCAACTTGGGCAACTGGGTATCAATGTCAAACATTTTGAAGCTTAGAAAAAAGCATTCAGAGAGCCTGAAAAATTCTATAATTTCATTCTAAACGAAAACTACTTTTTTACCAAAACGCTGAAAAATATAATTTCAACAAAACATTGAAACGTGGTTGCCCGACTGAATATTTTGGGGTTCGGCAATTGCCGGTTGCCCGTTAACCTCGGTTGCCGCACGGCCCTGATGTGGAACTCGCCTAGTGTGTCGCATACTTCAATGTGAAGGCGTATTGTATTTTTTTAAACATAAATTAAAAATTCGCTAAAACCGTCATAGCATATATAAATTGTTTAGACCGGTGAATAAAAGGATAGGATGCCACGCGAGTGCGAACGCTTTTCTCCGAAGATCCAAGTCAGGACGTCGATGGGCGGGACCCGGTGGGCGGAGGTTAGTCGGATAGAGCAGCAGACAAAACATCCGGGCGGCGAGATCAAGTGCGTACTCCTCGACGGAAAGGGAACTTGAGGCGCGTGGATTGGTTCTCGTCAGATGAGGAAAGATTCTAAAGGGAGGCGACCGGAGCCAGTTGTGGGAGCTCCTGTCAAAGTCGTTCTCTTAAGGGAAACAAATAGTGGTGTTAAGGGGAAATGCGATGGGAAATCCGAGTAGTTGATGGCGGAATTTTCTCGCGGGTTTCATCCTGGAAATTTAATTAGGGCCGCGGATTTCAACTTGCCGAGTTTTTATTCGCTTTTATGAAAAAAATTACTCGACAAATGGTTTTTTTTAATTAAAGTATCCGAAATCCCCGAAAACAGGCCATTTTAGAGAGAGGTCACTAGAGGTTTCGCGACATGGAAATATGTATTCAAGGATTCTTAGGTAACTACCCAATTTTTTTACCTCGAGTTTAATAAATTTCAGGTAAATCCTCTTGAATAATTCTAGTTTTGTTGTTTTACACAAAAATTCGGTTCCTCTTTATTCCGCGGAGTAGCTTTCCAGAGGTTGAAATATTTTTCCGGAGTCAACTCCTACCCGAGTTTTTTATCTCGATTTGAAACATAATCGGCATAAGAAACTACAATTATTTGTTTTCGGGGTTAGAAACTTTAAAAAATGGCCCCAGAAAGTTGCTGGAAATTAGCTTTCCCGAGGTTTCATGGAAATTTGTTTTTGCGGATTTCGACTACCCGAGTGTTTTACATCAATTCATTTCTAATCGACATAAGAGACTACACTTATTTGTTTGGGGCGAAAGCTAAAAAATCCCCGGAAATCTGGATTTCTAGAAACTAGATTTCCCAGTTTGGTTCATGGAAATTTGATTCCGCGTATTTCAACTACCCGAAATTTCAATCTTTAAAAAACATCCAGTTTTTGTGAGATGTTCTTAAAAATAGCTATCAGACGTGATGGAATCCTAAATTTCTAACTATAGTTTCCGCGGGTCGAATTTCTAGAAATGACCTTTCCAGGTTTCATGGAAATTAGTTTCCGCGGATTTCAACTTCCTCGAAGCATTGGATTGCAATATAATTCGCACAATAAAAAAAGCCAAAAGGCGAGGATCCCTGGTAGTTTAAATCCGCAAGAATAGTTTTCTCTAGTTTGAAAAGTTAATACTGAAACCCTTACTTATGCTTTCATTAACCAAGAATTCGATCCGTCGAACAATTGCTTTGCAGTCCCAATATTCGGCGAAAATTTCGATGGTTATTCCGACGGTGCTCTTCGATTTTTCGCAGGGTTTGCTGATACCTGAAAAATCGATATTTCAGACTATCTATGCCAAAAACTAATTAATTAGTTTACCTTCTGACTAGCATCCTCCAGCTCTACAATGTAATGAATGGCGGCTTTATACTGTTTCAGCTTCTTCTCAAGTAAAATCTGAACACAACCCGTTTGCCGTGCCATTACTCAACCTGAGCATGAGCACTATCTTGTCGGCGCACACATGGCCCGAAGTTGAGAGCCAAGTTGAGCCCATTTTATGTTGACGGCGTCCTGTCGGCGCCACGTGCCAAATGATACATTAGGTGATCAGAGCACGGCGCGGTTCGGTTGTGGGAGAAGCTCGTTCATTACGGAAAGACAACCGGACACGTTCACCCATATCCCACTTCTGTAATTTTGTTTTTTTGGACGAAAAAAAACAACAAAAAATATCATTTTGACAAAATGTTAACTGTCAGAAAATTTGAAAATTGATTTATTATTTTTGTTTCAATTTTTAGTTTTAAATGAATGAATGGATTCCGATTTTTGTAGGAATTGTCGAAATTTTTAATAAGAGCCCTAGTAGGCATGTGTGTGTGTCTCATCGGCTTGACCTACGTAGATCTACAAAAAAATGCGGGAGAATCAGAGGTCTTAATGGATTTCTCATGGTTAACAATATGCTGACGTAACTTCTGGGTAAACACATATTTCCGCAATTTATTGTAGATCAAACCGTATTGAGACAGCATCTCTGCCTGGCTGGGGACGCCTCTTTTTTCCCTTGGAATTTTTTTGGCGCGAAATTCAACTTTTTGCAAGTAAGTGCGAATATTTTCAAGCAAAGTGAGACTACGTACAAAATTATTTTGCTGCCAAAGTTTTTGAGTTTGCAAATAAATTATTGAGCAAAATTCAAATGATATTTTTCTTTCGAAACGTAATGAAAAAACTCAAAGTTACAAATAATTTGGCGCGAAATTTGATTTTTCAAAGATTTCTAGCGTGGCAAAATTTGAATTGGAATAATTCTGGTCCAGAATTCAAAAATTAAAAAGAAATTAGTTTGAACGATGCGATGCCCTGGTTTTCATAGAGCTTCCATGTAGGCGTTAGAAAACGCCTGCCTGCCTTATGCCGCGCCTATGCTTGCATATACGTAAACTTTTTTTCATTTCGTATCCTAATTTGATTCAGTTGACAAGTTGATAGAATTGAGAAAATTATAATTTAACGCATTTATCCTCTTAAAAATGCAACAAAAAGGGTTCAGGGCAGGTGCCAGGCCCTGAAGCGCCTGCCTACCATGAAAGCCTATCGTAAATAATCCAAATTTAATTTTTAATTTTACTAAAATTTCGATGGCTCGTTTTTTTTCAAACATCACAAACCTGAACAGTCAAAAAATTTTCGAGACTCAAAAATGATAATTGGTTCGGCGAGTTCTCGGAAGTCTAACGCCCATTATTGACAAGTGTAGCACATGAACTCCAATATCCTCAAGATTCATCATATCCGCCTGAATCTCCGAATCACGCTTGATTTTTTTTTGTTCAATTTTTCTGCAGTTCAACTCCAATTACCTGCAGTCGATTCAATCACTTGTCTGATACTGCGGATGAACTTGGGGTAGAGATCAACTGTTTCTGAAATTACTGGCGCAAAAAATTCATTAGATTTCAAAGACCAAGTATTTCGGTACCTATAAACTCCTTCCATTCTCAGAACCCCCAGGGACGCCACGTGTCTCAATTGCAAAAAAGAGTCGGTCCCAGAAGTGTTGGCACAGTATGCTCATCATCGACGATTGATACTAAATAGGCACCAAAGCTTCCACCAAGTTTGTCTGAAATTCAATCTTTATAATAGCATTATAAAAGCATATTTGTTGCAGTAGTTTGTAACAGGGGTCAGACAAATTGCCAAGCAAATTTCCGCTGGCAAATCGGTAAACCGGCCTCCCGGTCTGGATTTGCTAAAAATTTTTGGCAACCTTCTTTTGGAATTTTCAGAAAATTTACATTTTTATCGGCAACCCAATTTTACGCATCGTATGAATTTTCTTACATTTATTTTGAGAAGTAAGCAAATTCTATGAAAACATCTGAAGTAAACGAGAAAAAAAAATTAAAGGCACAGTTTTAAGTGTTTCCGTCTTATAAAAAATCCCTCTAAACATTTCCGGGAAAACTGATATCCGACAATTGCCGGAATTGAAAAATTCCGGCAAATTTTGATTCTGAAGCGTCTTTATCAAAAAAACTGTTGGTAAAATACAAATTTTATTTGATTTTCAAATATGTTTTTTTTTTCAGAAAAGTGAATTTTTTGCCGGGAATTAGGCAAATAATTCTGCTCATGAAAATGTTTCAAGATTTTTTTGCCACGAAATCAGACGGTTTGAGAACAGTTTTAGCGGAAAGTTAAAAAAAAATTTCAAAATTTTTGGCAATGGAAGTAAATATTTTTCAGAACATGTATCCGAACAGTTTTGGCTGTAAATTAATCAAATGTTTAGTTTTCAACAACTCTTCGCGGAGGATCCAATATTTTTCAGAATTTTGGAAATTAAAAATTTATCGAAAATAAATTGCAATTTATAAGAAAGCAGTTGTAATTTTTTTTCAAAAAGGTACCGAAAAAATCTGGCGAATTTGGCAAATCCTTGAGCTGAACAAACCCGGAAAAACGCAATCATTTTATCCTTTGACTTTTTGGATCAGGTTCAAAATTACTGAATTCCTACAATGAGTCCACGTCAGATTTTTCTATAAGCTCCGTTTGGTCTACTTGTATAAAGCTCGAAATATCTCAATGTTATGTTATTTTACTAGATTTTTTCAAAATCAATAAGTTTTTTTCGGGTAAATTATATTGTTCATTTTGTGGTGTGTGCGTGCTCTGAAATTTCACACTTTGCCGAGCTCGGCAAATGCAAATTCCCGCACACCCCTGTATTACTCACCTTCGGAAATCGCCTTACCATCTGACAGGGATGTGTGACCTTCGGCTGATACTTATGACACGATATCCGGACCACGCAACACAAGTTTACAGCTTCTCATGGAGCCATATTAACTGAATACACACTTCAACAATAAGTCCAACGGCACATGGACTGCTTCGGCACGAAATCGGTGACCAGCATGTACCTGGAATATTGGAATTGCGTGGGCAGGGTTCCTGACACTAGTTTCATTTGTCTAAAAAATTTTTTTTTAACTGCCTGAAATTAGTCCAAAATTACATGTTATCTTTTCTCAAAATGTGTGAAAATTGCACACTGAATTAATAAATAATATTACTTTTGTAAGAACATAAAAAGGGGAAAAGTCAGCGGTAAAAAAGTAAAAACACTCAGAGTTAGATCTGTTGACCTCAAAAAGTTCCATGAAAATTTCCTTCTTTTTTTTCAGAGATGTGACGTCGTAGCGGCAATTTCCGTTCGGTAAACATTTATTTTCGGCAAATACGGCAAATAGCTTCCCCGATTCGCAGTTTGCCAGTAGGATACCAATTTGCCGGAAGTTAAAGTTTTAAAAATTCCAGCAACTTAAAACTATTCTAACATTTTTGAAATGTTTTTTTACTATTTTCTCTAGATATTTTTAGAATTTACTTACTGTTCAAGCCCACAGCTTGCCGAAAATTTCCGGCAAACTGTCGGTTTGCCAAAATGGCCGGAAATTTGAGAAACGGCAATTTGTCCGTTTTGCCGTTTTCTAAAAAAATTTTCGCAATTACTGTATTAGCCGTTTGCCGAAAAACTAAATATGCCTCCCATCGTCACACAATACAAAAAAATTGCGCGGCTTCTGGAGATCAAATCTGACAGCTTACTGTACTTATAACTACAAATTCACGCTGTGTTTTTATCTAATTCACGTGGTGTCAGGGTGTCTCAGGCTTGTTCTACGTATATCTACAAAAACGGGGGCAGAGACGGAGGAATGTGCTAACGTCACTTTTTTTTTGAAAAAAAAAAAATTCCCGCATTTTTTGTAGATCAAACCGAACCGTAATGGGACATGTTAACCTGGCGCCACGTGCTAATAGTAGTCACTACATTCTTACCGCCGCTCTGATATTACACGCCGATTCTTTCCAACTTTCTGAATACCAATTACACCATTTTCTCGGATTTTGATATATAATACCGCGGGCTTCAGACTTCCGTCTCATATTTTCAGAATGTAAGAGTTTAGCGAAAGGTCATTTGGGCTAGGCTACGGCGCGTTGCAGCTCGCTTTTCTTTGCAAAACTAAATCGGCGTATCTGTCCGATTTTCATTGGAGCGCGAAAGGAAAACTAGAAGCCCATGTATTAAAAAATGCCGACTTACCTTTCGTTGATGAACTCATTTCTCCTTCCCGCTTCTTTTCCGATTGCACATGAACCTTCGTTCAGGAAACTTCTGGAATTGCTGAGAGTAAAAAATTGTTTTGTTACGAACGCGCCCAGCCCTAATAAAAATTGATGGTGTATACCACGTTGGAAATTATACAACAATACGGAGCACTTTGCTCGAAGCCTAACATTTTCTAAATGTTTTCTCACCTAAGACAAAAACTCCAAGTATTGTCGGAAAGGATACACTGTCCTCGAGACAGACTTTCGTTGAAAGTACCTCGAACATTGTGATGAGGGTATTTTAGCACGGATTGCTCGAGCTGAAAGCTGATATGTTGCTTATTACACTTGCGTGGCCGTGAACCCCAAAAACTAGGCCACCTTTTGCGCCCAATTACCGATAAAACCCCAAAGCCTCATATCGCAACAGCTCCATCATGGACAGCTCTTAGCGACTTTTTTAAGACCGCATCCACTACAGTATCGCTTTTGGCATTACTCTCGTTTAGATGACGTGTCTCGTTGAAAATAAAAAACTGAATTGTCGGAGATAGGGACGTCGGTGGATTCTACTAGCATGTTTCCAGGATCGATCTGTAAGTATTGTGCTTTAAGTACAACTACTGCTTCAGTTTGATACGCATTGTAGTTTATAGATTGTGGTTTGTGTTTTGTAGTTTGTGGAGTTTTTAGCACTATGTGTGAAGCTTGATATTCATTTTGCAGCACATTGACTTGGATTGGGGTGTGCTAAGATATAATATCAAAGTCCAGAACGTCACGAATAAAACATCTCAATCCGGAAACTACAAACTAAACCCTACAGACACTTACAAACTACAGACTATATCCTACAGACTACAAACTACAAACTAGAAATCACAAACTACATCTACGCAAAAGAACGTTACCTACCTGTTGCTTGACTGGTTTGTGTTAAACTGAACGTGCCGGTCGATGGAATTGGTGAGGAGGATTGACGCTGCTTGTGGGGCCTGGAGTTTTCAATATTTTTTTGTTTCAATTAAGAATTTCCTTAAATATACCTTACATCAAATCCCATGGCCGTTTCGGTGAATGCAGCCGAGTTGGTTATCGAACTGGTGACGTGGGATTGCACGGAATGGAGGACTGGCGGCGAAGACGAAGCATTCCTTGTGCAGGCACATTTTGCATCCTGGTAGAGGTCGTCAAATTACGGCTTCTAGGTCATTGTGGCCGTGGCCGATGCTTTAAGGGATGCTAGGTCATCTGACGTCACATTTTTTGTGGTTTTTCTAGGACACGTTACAAAGAGTTCGAAGCGCCCAATTTTCGGAGAGGTTACTAGGCCATGCAAATGTTTTTGAGGTTTCTAGGCCAGTAGAATATTGTTTCTAGGCCGCAGTAGAGAATTTTAGGCCATATCTGACGTCACAGTTTTTGGGACGCGGCCTAATAACGATGGTGGACCTCTCTTCTGGGAGGAGCAACAATACATTTTTTACGAATTTCAACAATAGAAGATGCAACTTCACTATGACCACTCATGTGGTGCGAGGTCTGCTCATTACGGTTTTATCTACAAAAATGCGGGAACTTTTTTCCCAAAAAAATGTGGCGCCGCCACGTTCTTAAACTTGCAAAATCAGTTGAAACCTCTGTGTCTCTTCTCCCGTGGCATTTTTTTTAGATACGTAGATCAAACCAAAATGAGACCACACACACACACAAAAACCACTCTGACACTTGTGCGCCTGGATGAAGTTCGTCAGGTGCCGGCAATTGCAAAGAGCACATATCTCCTGCCCATGGGAAGTCGTGACATCATGTTTGAATTGATGGTTTTTTGGGACGACACGTCCGGCGACAGTTCGGCAAAACTTGTGTCCCGGAGACGGTTCATCCTCGTCCTCGTTCCTGCCCAAAAGTGCCTTCAAATTCTTTTTTGCCTTCAGGAATCCCAACTTTCAAGCGCTTCCTTTTTGGAATGTGTTGGGCTTGCTGAAAATATTCAAAAGTTTTATTATAAGCCATAGAACCCTTACCGTGATCTTCACATCTTGACATTGAGAAATTGTTGGATGCGGTACTATTAGCTGACCTTCCGTAACATTTTTAACTTAGTGGTTGAAGCCGTAGGGGCCAGAGATTGCCGTCTATGATGGGACCTAGATCAGCTCCTTCAATGAGCTTCAACTTTGTGTCTTCCGGGATAACTGGTCCACGTCGACGGCGTCATCGCTAAAAAGGTTTGCTGTGTTACGGTAAGCGAGAATTATGGCAGAGGTGGGCATTGCCGTTCGGGAAATTTTTTGTCGAAAAATTGCCGGTTTGCCGAAAATTTGAATTCCGACATTTTGTCGGCGTAGTTTCCCAGAAATTTTCAATTCCGGCAATCTGCCGATTTGCCGGAAAATTTCAATTTCAGCACGTTGTCGATTTACCGGAAATTTAAATTGCGACAATTTGCCAATTTACCGGAAATTTCAATTCAGGCCATGCTGTCGGAAATTTCAATTCCGGCAAGACAATTTGCCGATCTGGTTTCCGGAAATTTCATATCCGGCAATTTACCGATTTGCTTGTGGAGAATATCAATTCCGACAGTTTGCGAATTTTCCAGAAAAATTTCAATTGCGGCGATTTGTAGATTTGCCTGTAAATTTTCAATTCCGGTAATTTTCGCCGATTTACCGATAAAATTTCAATTCGGCAATTTGTGAATTTTCCAGAAAATTTCAGTTCCGGCAATTTGCCGATTTGCCTGGACAATTCCAATTCCGGCAACTTACTTTACCGAATATATCAATTCGGCAATTTGCGAATTTTCCAGAAAATTTCAATTCCGGCAAGTTGAAGATTTGCCTGGAAATTTTCAATTCCGGCAATTTCGTGCCGATTTACCGAAAAGGCTCTGCAAGTCCTTCGGTAATTTGTGAATTTTCTCCAGAAAATTTAAATTCCGGCAATTTGCCGATTTACCACTGGAAAATTTCAGTTACGTATGCCGATTTACCGGCAATCTCAATCCGGCAATTTGCGAACTTTCCAGAAAATATTCCGGCAATTTTGCCGATTTAAAGGAAATTTCAGCATAATTAAGGCTACGTTCGCCGCTTTACCGGAAATTTCAATCCGGCAAGACATTTTGTTTTTCCAGAAAATTTCAATTCCGGCAATTTAACGGCCGAGTTTCCTGTTTCAATTCCGTTTGCCTGCCTGGGAAATTTAAATTCCGGCAATTTGCCGATTTGCCGAAAAAATTCTGGTACATTATTTCCTAGAAAATTTTCAATTCCGGCAATTTTCCGCTTCACCGGCGAATTTTAAAATCCAACAATTCTGGCACATTGCAGATTTGCCAGAAAATTTCAATTCTGGGAGTTTGCCGTTTTACTGGAGATTTAAATTCCGGCAGTTGCCGATTTGCCAGAAAATGATTCAATTCTGGCAATTTGCCGCTTTACCAGAAATTTAAATTTCGGCAATTTGCCGAGAGTTTTGCTGAAAATTTAAATTCCTAAGAAACTGTGACCGAGATCAGTTTTGACGTCTCTTCCAGAAAATGCACTAAGGTGATGTGACGTCATGACTGAGTTTCGAGGCACGTTTCGTTAACTTGGCGGAGGACCTAATATCCAAGGGAAATAAATTCTTTTTAAATTTCATAATTTTCTGAAAAAAAACTCACTCCTGAGAAAGTCAAGTCTCTCTTCCGGAATCATCATAAACCAAGCCCATCCTGTGTAGACTTATCACTATCTGTATCATCACCCGAAAGAGCAAAAGCCGCCAGAGAGCTCGGAGCACTCAAGTCGAACTTTGTTAGCATTGCTCGAACCTTCGTCTACGATCTATACGATAACTTCTTAACGCTCAAGGCTCCATTGCCCTTGGGAATCTCGCCGACTCGCTTGCGAACCGATGCTCCGAGATACGCAGACTGCAGAGCTATCACCGATTCTCTTATCATAAATATTTCTGTCGTTGCTTGTACTTCTTCCAATTACACTGTATCGTTTGAGCTGCTAACGCTTTTTTCCAAACTTCCGCACCTCTCAAATGATCGAAACAATCGCTTGATCTTGATAAGTAATCTTCATTCTCAAATATCGCTTTCTAGCCAATATTGTCCTGAACCATCGTTGAAGAGTATCGATTGATTACATAATGGTCCGATGCAAATGATCATCGAGAACTTTTCAGCGTCTCTCTAATAAAAATCTTGGCAATTGGTTCCATATTGAGTATTATCATTACAATTGTGCAATCGTTGCATGGGAATGTATGTACTCTTTCACATCGTCCACAGTACTATCCCTTCCGTTTCGCAAAAGAATTCGGTATTGTTGGACAAAGCTTGGATACGAATTCAATTCTCATCTCAGTACCCGGCTGTCCGAATTCGAACGGTCTCGATAGCATTCCGGTGTAGGAGCTGGCGGAGGGTTATGTTGTAGTCGTCGCAAGTGGTTAGCGATCTATAAAATTTTAGGTGGTTTTTGATAATTTCTACTTATATTCAGTCATATAAATAAACACATATAAGTACCAAAAATTTCGATCACCTAATTTTTCTTAATTTTTTCTATACTCTTACTAGTATGAAAGAGCAGGATACAAAAATAACTCCACAAGTGATAAACCAACTTTAATTGGATTAGTGTGTATCACTTTGAGTAAACTAATATTGAAGGTTTAAATGTGGACATACCTAGCCTATAAGCAAGAGAGGTCCTTGTAAGTAGACTTCAATAGATTATGAACATATTATAAACTAACGTTGGTCAAAAAGTAGGTGTTCAATGATTCCACCAATACAAACTCACCTTATCATTATTACTCTTAATACACCTTAAAATACGGCGTCGCGTTGGCCAGTGCGCTCATCAACCTCGTAGTCTCGAACTGCTTTGAAACCGACGATGGCTTCTTGGCAACCCTCCGTCCTCCGATAGCCTCCGTCAGAATTTAGCGATTTCCAAGCTCCACATTTTGTCGTCAGACTTTCCCGCCTGGGGACGCCGTGCTTGATTTCGACTCGTGTTGAACATGCTGGTATCACAAAAGTCTGGTACTTCACAGTTCGCCACGTAGAAATGCGGAGTGAACGTAGCAGATTCCGAGCCGACGAGAGACGTTACGATGTAGTCCATTACTCGGAGAGGCGGATTCTGGACATGTTGAATTATATTAAGGGCCCAAGGATAGCTCAGTCGGTAGCGCGGCTAGCATCTGGAGGTCACGAGTTCAAGTCCGCCTTCAACCCCTAGGTTCACCAAGCCTCTATTGGAAAATGGAGCAATCCACGACTGGATTATAAGCCACAGCCTTCGGCTAGGACGTGTCTTAAATTGTAGCCCAGTGGGAGCACCACCAGGTATTGTACCTGTCTCCCAGATCCGCAGATACACTCAAAATAAAAAAAATGCGAGGTGTGTACTGCAGAAGAAAACCTAATATTTAGGCCCCGACTTTTTCTCGTCCACGCATGGAGAATAGGCAACAATTTTGCCAACCAACAGGCGGCCGACATTCTCGGGATCCGCGCGCGTCTGCGCTGCGTTTAACTCTCTGTGGGCGTGGCGACCTGTCTCCGCTTGCTGCGAGTACATTGCGGCCGGAACCCGTGAGATGTCGGCGGCCTGATATTGGTTGTGGTAAAAATTTCTTGCTTTTCCGTGAGTGGACGTGAAAAAGGCGGTGCCTAAATATTAGGTTTTCTGCAGTACACGCCATTTTATTATTTTGAGTGTACTTACGTCGAAGAACGGATCGTCCTTTAATAATTGTACATTACATTTTATTTTCCCTTCTACGACTCGAAAGGGCGCATTTACGCGCGATGGTCCCGCTACCCACCCCAAAAATCAATGGGTGGCGTACCGAGACCACCGCTGGTAAATGCTCCCTCCTTTAAAGTCGTGTGGAAAAAATTGCACAAATGAAGAACCATACTTTTTGTAGCAAGTTTCGTAGTTTTTTGAGTCCGTTTATATAATATCGTAGTTGTCCATTTATTTAATGTGACACTTCTTCCCACTTACTAAGGACTTCTAACACTTATTCCAGTTATTGATTGCAATTAAATCTACGAACACTGGCCACTTCCCTTTCGCAGTTCCTTGTCGATTGCTTGAACGCCACTGGTTCATCGCCCGAAACACACTTCTCTGCACATTCCCTGTGCACCGCCACCGGATCGAATCCCAGCCGGGTCTTCATCGCTTTGAGCTCGTACTGGACTTTAGAGCGTTCGACACATCCCTCATTAGGTCCTTATTCTTTTGTATTTCTCGGAAACCCTGAGCAAATTTGTTGACGTGATGAGATGAAGACGTTTTTTTTGTCACGAAGTTGTGTGTTTACCGTAATTTGATACTTGACTTTTCCAGCATAATGGGCCACGATGAATGCCGGCTCCTTCTTCTGTGGGTGTCTCATAGTATCCGTTGTTCTGGAAATTTAATCATGGAACTAGGCATGTAATAAGAAACATTGAATTAAGGTATGTCCCGGAGGAGTGACCATCTTAGGCCTGACTTAAACTAGAAGTGGATCCAAGTGGCAGACTGGCCTGAATCCTAGTAACAGGCTGACCCTAGATGATTAAAGGTGGATTAGCGCCAGTGGGAATTCTGTATAAACACACTTATAACGATACCAAACGATCGAATATCATAAAACACGCCAAAAACTTTTAGATTTTTCAAATTTCCGGTCAAAGTTTTTGGAACATTGACAAAATTTTGACGCCAAATCTGAGCTGTTGCGGACATCAAAATCAATGTAACATTTTTCTGGTCCCCTACAATGTCTTTTTACGAAAAATTAAAACAAACCAGATTATATAACAAATAGAGAAAAAAATATTTTTTAGTCGAATTTGTGTCACTTTTTGACTGTAAATAAAAACATTTTGAAAAATTTTTGAAAACTAGTTTTATCATGAGATTTGGTCATTTTGGGAGCATAGGTCGAGTGGTTTTTAACAATTTCCACCACCGGCGCTACTCCACCTTTAATCGATAATCGATGCATTTCATACCTTCAAAAACTGATTTAACTTCGCCAGCATTGAGTCGTCTGTTCCATTATTGATATTACTCTCCTCATCGACTAGCCTGAGAATTCCATATGGTTTACTCTGAAAATTCATCTTATATACATGGATATATATATATATATAAATATATAAATATATATATATGCATAAATATACATGTATATATATATATATATAACAGTATGGGAAAGCCATAGGACACCCCCTAATTTGAAGGTTTGAGGAACTTCCGAAAATTTTTTTGAAAAACTGCTAATGCCATTTGTTTTTAAATTGAAAAAAACCTATAGATTTTAAATTTACAAAAAACTTAGGAGGTCGCGCTGGAAAAAACGTCAAAATCCAGTATGAAACTTCTATAGGACCCCCCGTAGGGGTTTTTTTCACGATTTTTCTAAAATCAACTGGCATATTTTGGAATTGACAAAAGCTCAAATCAAGTTTGAGTTAGCAATGAGTTCAGATAAGCAGTTTTGACTTTAAAAAAGTATTACGAAATGTTCTCGTGGGATCTCCAGACTGGTTCTGATTCTTTCGAACTATGTTAGTCTGTTTCAAGCTTCCTGGTGCTCTCGGTAATGCCAAAACTTGATACACACTCTTGAAGAAGTTCCTACTAAAATTCCTAGCACACACACGCTGGCATAAAAATTTTTACGCCATCCCCAAGAAACCAGTCAGAACGCTAACAGCGGATTATAAAGCCAAGTTGCAGTTATTTTTGATCAACAACAGAATATTCATCTACTAAAATCAAGAAAGGATCAATAGTTAATCGTGTTTCCTTGTGTGCGGATGATCTCAAACAGTCTGTCCTCCATTGGTTTGACCAAACTTTTCAGCTGGTTGTCCGGAATAGTGCGCCCAGTCGAGAATTCCTTGCTTCATGCATCTGTTGAGTAAGTCTTGTTCTGGAATAGCATAAACGATACGGACAAGAATCCCCCACAAATTTTCGATTGGATGAGATCAGGACTTCGAGCTGGCCAATCAAGAAGGTTGATCTTGTCGATATGAGCTTGAAATAGTCGCGGGTTGAGTTGCTCACATGGATTGTCGCATTATCCTGCTGAAATCTAAAGTCTTTGCTGGAGTGGTCTAGAGACGAAGATACTTGGAGAGCTCTCTCAGTTCCAAGACGTTCTGATAGTCAGTGCTGTGCATCTTGAACGCTACTCGAACTTCTCAAGCTTCTTCTCCGTGAACGCTCCCCAAACCATCACCGTTCCTCCTGCAAAATTACGTCTCGAAAAAACCCTTGGTTCTTTGCGAAAATCCCGCCGTACACTCGGGAGACTACCGTCAGGCCCATCGAGATTGACTTTCTTTTCATCGGAGAAGACAACCTAAAACAATGATCCTAATTATTCACTCTTGCTTTCTTTAAATTCTCACTTTACTCCAATTCCTTCCCATATTGTTACTTAGCAAATTCCAATCGCTTGGACGAGTTTATGCAGAGAGTAACGAGCAGGGCAAACAGTTTCTGACAAACTATTACACCAGATCGTTAGATGACATTGAGGGTCGAATGGTCCTTTTTGAAGCAGACAATTGAAGCTCATTGCGAATATCTCTTGCCGTCTTACAGGAGTTGGAGGCAGCAGGAATAACATTTCGCTCGCATTTCAGGCACGGCGGAAGAGACCTTTGCGACGAGAAGCTCTTTTAAATGTACCGCGACTTAGCTCACCGGATCCCTCAGATACTCGCGAATACAGTGTCGAGAACGGGAAATTTTCCTACTCCAATTTCATGCAGGGACACATTAATTTCATAACATCCAACTGAGCGCGTTCAGTGTCCGAAAGGGCAGATCGTCGCTCTAGGTGCAAGTAAGACTGCTTTCGAAGTATGCCTATATGTGTGCCACAACACATGCCACAATTCCACAATAATACGCAAAAAATAGTAAATAACATCTGTGAGGGACAATTTAATCTTGAAATATTGTCCCATGGAACCTTGTACTTAGATCAAAGAATAACGATTTGATTCCTGATAAGCGTTCCATTGTTTCGTGCTGCATATTTTGCCAAATCACCTTGACTCCACAGACGAAACATCTAAAGTGCGTGCTAGGTATTTTAGTAGGAACTTGTTAAAGAGAGTTTATCAAGTTTTGGTACCCATTACCGAGAGCACCAGGAAGCTTGAAACAGACTTGAACATCAAAGATCGGAAGAATCAGTTGAGAGCCAGTCTGGAGATCCGACGAGAACATTTCGTATTAATTTTTTAAATTCTGACAAAACTGCTCTCACCTCAATTCTAACTCAAACTTGAACATTTGAGCTTTGTCAAAATTCCAAAATCTGTGTGTGAATACATTTCAGTTAAAATCGTGAAACGGGGGGTCCATTTATAGAAGTTTCACGCGCACTGGATTTTGACGTTTTTTCCAGCGCGACCTCTGTTTTTATAAACTGCTGGAACAAAATCAGTATATAGGTTTTTTTCAATTCAAAAACGAATGGAATTAGCAGTTTTTCAAAAAATTGAACTTCGTCACCCTTAACCTTCAAATCAGAGGGGGTCCTATGGAACTTCCCCACACTGTATATATATATCTATATATCTATATATATATTACGTTTGAAAAAACCCAAAAAGGAAACTTATTGGACTTACCTGAAACAGCTGCACACACTCCGTATTATCAGTATACTCGATATTGGTCCAAGAAATCTCCTTCAAGTACTCCTCTTGTTCTACAAAAAGTGGAAAATATGTTGATTGAAATAGGACTGAAGTTTCTCAGTGGCATCGTTGATACATAACTGGCTTCAAAGCTGTTGCATGGAGACCCAACGTCTTCAAATTCCGAAATATATCCTAGATACTTGAAAATTACTTCAATTTTTAACAATTGATACTCATTAATCTAACCTATATAATATCATGTACCTCCCAGCTTATTGAGAAGTCCTTCTTCAGCAATGCCTTATTAATCCTGAGGATTAAGTGAAACAAAGAGTTGTATATGCACATCCATGGCAGTCTCGGGTGTTGGTGGCGAAATTAAATTATCTTAAATTCTCTAATTTCACTTCTGTATATATATATATATTACCTCAGACACTATATCGCAAAACTACAGTTTCTGTCTTCATAACATGTCGTTTCATAGTTAGAGCCTGCATGGGTGTCGGTTGATGTGAAGCAGATTTGCGACTAAATCCACGACTTCTTCATTTTCAATATACCCACGTTCAACGCGGGCTATGGTAGCCATGTCTCTGGAAAATTGCATGGGAAAAATAAAAAAATTTCAAGATGTTATTATATTAGGAATCCTCTAAACAAGTGTTTTCAGGTTTTTTGGTTTTACGATTATTCAAATTTTTATGATTCGGAAATTATTATAATTCAAATAATTTTCGTCACTATTATAGCCATGTTGTTGAAATATAGAATGCTATCTTTTTAAAGGTGGAGCACCGAAATCTGGAAACTATTTTTAAATGAGTCCAAATTTTCCCGATTCCGAATATCTATGCGAAAAAATTTTAAAAAATTCATTTATCGACTTTTTCAAATTTTTCAACCGGCGAATTTTCGCGCCAGAAACCCCGTGTACACGTGGTATCAGTGTGTCTCATTTTGTCTTGATCTACGCAGATAAAAAATGCGGGAGAAGAGACGCAGAGGGGGTTCTCAACTGAGTTCGCATGGTTAAAAATGTCCTGACATCACCTTTTTTTGGCATTTTTGATCAAACCGGATTTGGAGAGCCTCTAGGCACCACGTGAGTAGGCAGGCATTTTTTGCCTGACTACTTGCGGGTGCCTGCCGTTTTTTTCTCCTCAGAATTTTTTCGCGAAACTCAATAATTCAAATAATTATGAATATTTTCGAGTGAAGCTTTAAAAAGTTGTTTGTGCCAAGTTTGAGTTCGTAAATTAATTAGCAAAAAATGTTCTCACGTCACGTTTTTGGGCAAAAAAATCTCGCATTTTTTGTAGATCAAACCGCAATAGGACAGCCTGGCACCACGTGCGTGTGTCGATTTACGAGATTTGTGTATATTTACGAAATTTTTTATCTTTATCAGACTCTGATTTTCGTTTCTCAACGAGTTTTCTTCATTTTTGTATGTGATTTTTTTAAGGTACATTAAATATTTTATCATCAAAACCCTAGCAAAATTTTTGGTTTTCAGTCGGTAAAATCATATAGGTAATTGCATTTGCCGTCAATTTGTGACCTAATAGTAAGCATCGGAAATATTGCCAGTTTTAAATAATTAATTGACCCTAAAACACACATTACAAAAAAAAACCGATAAAAATTAAAAATTAAATTAATGCACAAATCTAACGACACATGGCTCTAGCGCGAAAATTCAATAACTCTGTACAAATAGCGATTTCAAGCTCAAATATAAAATCGTGGAATTTTAAAAATTTTTTGCACATAGGTAGTCGGAGGCAGGGGAAATTTGGAGTCAATTAAAAATTGCAGATTTTACGGTTTCGGTGGCGCTCCGAAGAACTGTCTGAATAAAATTAAAACTTTGGGAATAGGCAATTATTCGGTATGGTTAACTTTTGCTCTTGGTGAATCTAAACCGTCCCAATCATTTACCTTAATATATGTGATATTGCCAAGAAGCAACACTGCTGAAATAATCCCGAAGAAGGTCTGCTGGGTCTTTGCATGTCCAAAATCCGAGGGAGCTAATTGCATGCCTCAACCTATCAAGCTCATCTCGTACACACCTTCCAGGCAAATGGCTCGTTCTGGAAATTTCATTAATTTTTTTTTAATTTTTTAAACAAAAATCCCTTTGAGGTCAGCGAATGTATCCCTTATTCGCTCCTGTGAAACTTTTCCCAGCTCACCTGATTCAAATACTTATAATCATGTGGCTTCAACAAGAAATATTTCTTCCTTTCTTCCTCGTCTGGACCCTCCAGAAGGTAGTAGCATACGTGGTAGTTCCTGAAAAATATATAAGTCCAAGATGGAAGACTCCAAGGGAGTTTAGGTAATCGTCCGTTCTCCTTTAGTTTGAAATATGATGCGTGATTTTTCCAGCTACCAGGTAGATCTCCACGTTTGCTCTGAAAACTCCAAGTATAAGGCCTTTTTTGTGGTATACACATCAGGAGAAGGCTTCAAATTTTACGTTCGCTAGGTCAATTTAGGTCATAGTGCCTAGTAAGTAGGGTACCTATAAGCTGTGATTACTGCCAAAGTAAAAATTTCCCGATTCCGGCAATTTGTCTGATTCGATGCCAGGCATCCCAATTCCCGCAATTTGCCGATTAGCCAGGCATTCTCAATTCCGGCAATTTTCCAGTTTGCCGGATTGCCGGAAATTTAAATTCCGGCAAGTTGCCAAATTTCTTTTTCGGCAATATACTGGATTGCCAAAATGTTACGGCAACATGCCAATTTGCAGGAACTCATGTTCGGCAAATTGCCGGTTTGCCTATATCCCAGAAATTTTCAGGTCCGGCAAGTTGTTGATTAGCCGATTTTCGGAAATTTCAGTTCCGGCAACTTGCCGATTTGCCGGAAATTCTCGAAACCGGCAATCGCGGGAAATTTAATTCCGTCAAATTACCAACATGCCGGATATTTCAATTCCGGCAATTTGCCAATTTGCCGAGCATTTAAATTCCGGCAATTTGCCGAAGAAAGTATCAATTCTGTTGGCAATTCGCCGGACATTTCCGACAATTTGCCGATTTGCGGATTTCCCAGAAGTTTTCAATTCGGTCAAATTTCTAATTTGCCGGAAATTTCAATTTTACTAAGTCGCCTGCTATCCTCCTAATCTCACCACACTCGGAAACCATTCCATTCTCCCAAATAGTTGATTGTGATGAATTTTCCAAATCTGCTACTATTTTTGTACCGTCGTTAAGGGGACAGCATTAAAAGCCTCTAGAACAGGGCCAGGTGACAGAAGGGGTGTCTGCTAAGTACTGCAGCCTGTTGAACCTTTCGCATGACACTGTTAGCGATATCAAATGGGAGATCAGATGATTCGTGCAATGACCGTATTTCCCGAACCACCCCGGGAGATTACCACGCATTGATTTTTCTTGAGTACGGAGAGAGCATGCTGAAAAACTTGTTATGTGGTTTAAAAATTAGTAGTGACAGTTAGTTAATCCAGCATCTGCAATGTATATCTCTTTTTTTTGAAATCAAAAGTGCTTTGAGGGTGTTGAAAAAACGAACACATACCTGCTAAAAAATTGGTGGCTTCCGAATAATCCGGCCCTTGGCAAATATACAAGCCAATACACAAAGTGAGCACCTACGTGGCCGAGTGAAGAGAAGGCCACCGATTTTTTTGTGGTCACCTGAAACTTCAAAAAGTAACTGGGTTCCCCTGGTAAGAACGTAGAACTCACTTGTGGTAACAGACTTCGGCGATTGCAAAAATGTGCGGTGGTAGTGAGCCGAGCCGCTTACTTTGAAAGTTATCGCCTGCTATTTTGGGTTGTAGATCGGAAAGAAGCAATACGGAGCGGGTACACGCTACTAGAACTGGACCGATGTACGTATAGTAAATATGCCCATTCGCGAATCATTGCATCCCGCAAATTGTCCAAGAAAAGAGGTTTGCTCCGTGAGCTCAACTGGCAAGTGACAGAGTTCGGGGTACTCCCTGAAAAATTTTAAGGGTTTAAAATTTTTTTAAATATAAAAATATTTAAAGGTGGAGTACAGGAAATTTAATTACACCAAATTTTCCACTGACTCCGAATCTGTAAGTAAAAAATTTTGAAAAAATTACCCTGATTTTGTGTATTTATGTTTGAAATTACTATTTTCAACCCTTTGTGCCCGCACCACTTTTTTCAAACTTACGCCCAAAGACTGATACGTAGATCGGGTTTGCATCGTTTGATTTTCGTCGTTTAATTTATTTATTTTCCACGGGGTTGTGGCCCTCACTTCTTCATTGACGGCATTTTCGCGCTTCATTGACAATCGCCTGCCGGACAACACATGGAAAAGTGTCGTGTACTCCACTCGGACAAATCACATCAGTTTTACAACTAAAGAGCCGCGACGCGACACGCAATTCGCCGTAAGCCTACAAAATCTCTCCGACCCAAAATGGCCTAGTTCGACAAAGCAATTCCGATTTATGAGGGAAGCCAGTTTGTGCGGCGAATTAAATTTTCTTGAACCAGTTTCAATCATTTTTGTCGAGTTTTTGCTAGTTTTTTTTTTGACAAAAAAATGAAACTGGTTAAAAAAATTTGACAATAAACAAAATTTTTAAATGAAGGAAATCAAAGCGCCCTCCAATGCGGATTTATTTGGGTGCTCATTTGACATCACAGAAAACACGTGGTGGCAGAGCAAGGATGTCAATGTGAGTCCCGTAAAATTTTCGTAAACGGGACAACGGGAATTCCCGTTCCCGTGAAAATTTTAAAAACGGGATAACGGGAATCCCGCGGCGTTCCCGTGAAAACTTAAAAAACCGGACAACGGGAATACTGCTCCCGTTTTTTTGAAAACACTCAAGAAAAACGGGACAAACAGGGCATTGGTTTAAAAAAAAGAGTGCATAGTTGGCGTATTTAGTGTCTTCGAGGCAAATTATAAAAAAAAACTGCATTATAAACATTATTATCTATTTTTTCATTATTAAACAGATATTTAAAAAGCCAAATGAGTCGGAAAATGTCCCGTTCCCGTGAAAATTTTAAAAATGGGACAACGGAATACCCGTTCCCGTGAAAACAGCCCCAAAAACGGGACAACGGGAAAAACGGGAAGAATTGTACACTGTCCTTGGTGTCGAGGCTGTCTCTTTATCTACAAAAACAGGCTGGAATAGTTTTCCAGAAAAATTCTAACGTCTCTTGACTATAGGGACCAAGCGAAAAAATGTCCGCGTCTCTTCACCCGCATTTTTTGAAAACAACAAAAGAGACCGGGCTGCAACAAATTAAAATCAGGGAAAATTTTTTCAATTTTTTCACATCTAAATTCGTGATGGGGGGGCAAATTTGGAGTGATTTAAAAATATTCAGATTTCGGTACCCCACCTCAAAACAAAATAATGAAAGAATTGCCTTACCCGTGGCTGATCCCAGAAGTTCGTAAGAAAAGCGTCAATCGATGAGGCGACCTCTGCACTTCCAAACCGAGCGCCGCGGGTTGCCGCCCGATAATCGGCCGGTGTCAACATATCGATTTTTTGGAGTGGCACTGTCCACCACTACAGGCAGCCGACCAGAGGCCTGTAAACATCCGCGACTGGGTATGTTTCCCCGGGGTATCCCTAGGCAGCGTTCGTTATAGATTTCTTAGACCGACGGTGGGGCCCATCATTTCGAAGAGGTCAAAGTCTACCGACTGGCCTCCTAGTTCTGGAAATTTTGACTTTAGAAAAGAAATCATTTTTTTCCATTTTTTTTTAATTAGCCCGTTGCTTTTTTAAAAATTAGAAGAAAATGTGAAAAAACTTTGCATTAGAGCGCGTTTGCATTCATTCCATGCAGTCCAATTTTGCTGGGAGCTTGAGTGTCTCGACTTGATCTACAGAGGTCTCTAAAAATGCGGGAGAATAAAATCCACTGATATTGTATGCCTTTAAGAATGTGCTGACGTCACATATTTTTGTGCAAAAAATTCCCGCATTTTTTGTGATCAAAGGCCATGAGGGGACAGCCTGGCACCACGTGAGATTGTGTCGACAATTTTTTGTTGAAGATGTATGGCCAAAAACGGCACATTTAAGTAATTAATCAGCAGAGCGCGTTTGAAATTTTGTTAAAATCTTTTTAAAAGAGTTCCCACTTCCCGAAGTCCTCCGATTTTTCTAAAAACTAAGAGTAGGGAATCTCCGACCCTGAGCCTTCTTTAAAACCTTACCAGCTCTGCCCGGAGAGCACTTTTTCGATGAGTCCTCCGTCGTGCGCCGATCATGAACCTGCAAGTGTACTGTATCATTTTCACAGAGCTGTCGGGATTGAAGCTGTGCATAATAGACGGCTAACGTATGTTGCATCGACTGTCGCGTTGGTGAGCACGTTGGGGAAAACACCCCGTCGCTCCAGCTGATATTGAGTCAAATGACATCATTTTAGTGAATCCAGCATCGGGATGAATACGTCTGTAAAAAAAAATTTTTTTTGAAAGAAAAAGTGCCTGGAGAATCAGGCAACGAACCGGACAAAAACACAAGACCGCGAAAAACCAATTGGTGGCCGAGTTTTCTCTCTCGCGGTCACTTAGGAAATACTAAATTCGCACGGATTTCTGGCTTCTCTCCAACATAAATTGAAATGGAAGATTTTCGGCCGAACTAGGCTAACTCCGGGCCCTATCTGGTGTATGTTTCCGACTTTCCCACGGAGCGATTGTCAATGGAGCGCGAAAAACTCACTGAGAAAGGCCCCCCGTGAGATCGAAATGAAAATTTGCTAAATGGCCGAAAATTGAATACTCGGCCGCCAATTTTTCGACACGGCCACAGGATAAATCGTAAAAAAAATTGAGAGAAATTTATTAGAAAAAATCTGAAAGTAATGTTTATTGCACCGTGGCCGCAATTAATGTAAAAACACGGCCACTTTTTTAATGTGGGGAAAAGGTTGGCCGAGTATTATACAGTTTTTGCGGCCACTTAGAAAATATTTAGATCGAAGGGAAGTTGAGAAAATACGTCTAACGAAAACCAGTCAATTTTTGTTACATGACCGAAAAATGAAAACTCGACCACGGATTTGTTATGCTTTATAAAAATTTATGAACCTATTATTTTTTGATTCAGAAATCTTTAGAATTGTAACAAGAAAAAGTCGGCATCTTTTTTTCTCACGGTCGCAATTTTCTTTGTGATCGTAAAAATGGAAGCTCGGCCATGGTGGCCGAGTCCCTTTTTTTTCGCTGCCTACTGGTAACACGTGGTTGGGTGAAGAGAAAACTCGACCACCGGTTTTTTTTGTCACTGAAATTTTTCAATTTCAAAATATTTTAAATCTTGCTGCACTCTTTCAGCACAACCGCGAAAAAATGACAGCTCGGCCACCAATTTATTTATTATCTGGGTGAAAAAATTTTGTTAGCCAAGTTTTCTTCATCTGGAAATCAAAGAGATTTTTGTTACGTGGCCGTGAAAAGGAAAACTCCGCCACCAATTATTTTTAATTTCAGGCACTGGCGTTGTAAAATCTTATAAAAAAACAGGTTTTTAAGTACATTGAACTAAAAAATAAGGAAGATTTTTGGAAAAAAAATTGCTGGCCGAGGAAAACTCGGCCAACAACTTGTTCCGGTCACACAGCAAAATCTCTCGATTTTCGATGATTGAATATTGAAATCTGGGTTGGATTTTTTAGTATCATTTCATTTGGTCGCCGGTGGAGAAACGAGGGAGAGAGAGAAAAAAGATTTGTAGTGTCCCGGGAATCTTCCTCAAGTGTTGTGGAAGAAAGTGGAAGAAGCTTCTGCGCAGCAGCAGCAGCGTGGAAGTGGTTCACGAAAGAGAGAGAGAGACATGTTGGACTTGAAACCAGCATGATGAAAAATAAGAAGATGAAGAAGAGAATTACACACTACCTCCACAACACAGATTATTTTTATCACGTTTTGAGGGGGCGCTTCACACAATTCATGGCCTAGAAATTAAGTGGTAATTTGGTGGCCTAGAAAATACTATATTTATATTAATTATTCTACGTCAATAATTTAAACGGGAAACGAAATTTATTTTAAAAAAGCCATAGAAGAGGTTTTGAAATTGGCTAGGAAATGAAAAATTGTGTTTTTGGAATTTTCTAGGCCCATTTGAACTTCTCCTGAACACTGCGCTTTCAAGACTTCGAATTTGAATTGTGGCCTAGAAAATCATAAAAACTAGGAAATCAAGAAAAAAACATGGATGAAATTTTGAATTTTATAGGTCATTTGAAATTTCTGGCCTAAAAAATGAAAAATGATTTTTATTTTGAATTTTCTAGGCCACTTGAATTTCCTGACGTCGACAATTTTCATAGCCTAGAAATTTAAATGTGGTGGCCTAGAAAATAATTAAAAGTAAGTAATCGAGAAGAAACGCGTGAGATTCGGAGTTTTGTATTTTCTAGGCCATTTGAATTTGGTGTTGGACATGAAAAGCCAAAAAGACTTTTCAGGAAATTTCTAGGCCATTAGAAGTTGATTGGCCTAGGAAAAAATTTGTGTTTTTGGCATTTCCGTCTCTAGGTCATTTGGATTAGGGCCTAGGAATTGAGTAGTTGTTTTGGAATTTTCCACCCTAGGCCATTTGAATTTGGTGGCCTAGGAAATGAAAAAAATATTTAAAGGAATTTTCTCCATTGAAGTAGATGGCTTGGAAATAAAAAAAGGTTTTTTAAAGGAAATGTCTAGGCCCTTGAATTAGTTGGCCTAGGGAATGAAAAATGATTTTTTGCTTAAAATTTTTTAAACGCACTTGAATTTGGACGGCCAAGGAAATGAAAAATGGTTTGTTGAGTAACTTCTACTTGAATTTGGTGACCTGGGAAATGAAAAATGATTTTCTTGGAATTTTTTAGGCCACTTGAATTTGACGGCCTAGGAAATGAAAAATAGTGGTAATTTCTAGACCACATGAAGCGATTTTGGTGGGGAAATGAAAATGATTTTCTTGGAATTGTTTTTAGGCCACTTGAATTTGAGGGAGGAAATGAACAACAGTTGTTTTGGAATTTTTTAGGCCACTCGAATTTGACGGCCTAGGAAATAAAGATTTTTTTGGTAATTGCCACTTGAATTAGGTGGCCTGGGAAATGAAAAAGATGATTTTCTTGGAATTTCTAGGCCATTGAATTAGGGGGCCTAGGGAATGACTCCAAAAATTATTTTCTTAAGATTTTTTAAGCCACTTGAATTTGACGGCCTAGGAAGTGAAAAAAGGTTTTTTGGTAATTTCTAGAAGGCCACTTCAATTTGGTGACCTGGGAAATAATGATTTTCTTGGGATTTTTTAAGCCACTTGAATTTGACGGCCTAGGAAATGAAAAATAGTTTTTTGGTAATTTAGAGGTTGAATGTGGCCGTGGCCTGAGAAATGAAAAATGACTTTCTTGGAATTTGTTAGGCCACTTGAATTTGACCGGCCTAGGAAATGAAAAACTGTTTTGGAATTTTTTAGGCCACTTGAATTTGACGGCCTAGGAAACGAAAAATAGTTTTTAGGTAATTTCGAGGCCAATTGAATTCGGTGGCCTGGGAAATGAAAAAAGATTTTCTTGAAGAATTTTTTAGGCCACTTGAATTTGACGGCCTAGGAATGAAAAATCGTTTTTTGGTAATTTCGAGGCCATGGCTAATTTGGTGGCCTGGGAAATGAAAAATGATTTTCTTGGAATGTCATTTTTAGGCCACTTGAATTTGACGGCCTAGGATAGTTTGTAATTTCGAGCCCACTTGAATTGGTGGCCAAAATAATGAAAAATGATTTTCTTGGAATTTTGACCACTTGTGATAAATGTGACGGCCTTATTAGGAAGACGCATGAAAAATCGTTGGTAATTTCTAGATCGCGAATTTGACGGGCTAGGAAATGAAGTTTTTTGGTAATTTCTAGGCCACTTGAATTTGACCGCCTAGGAAATGAAAAATACCAAGGTTTTTTGGTAATTTCTAGGCCACTTGAATTTGGTGGCCTGGGAAACGAAAAATGTTTTTCTTGGAATTTTTTAGGCCATGAATTTGACGACCTAGGAAATGAAATTGTTTTGGAATTTTTTAGGGCACTTTTGGGTTCGCCTAGGAAATGAAGATTTTCTTGGAATTTGCGAGGCCAGCAGACTTCAATTTGTTGGTCTTGGGAATAATGATTTTCTTGGAGTTTTATAGGCCGCTTGATTTAAGCCCATGGCCTAAGAAGTTCAAAATAGTTGTTACGGAATTTTCTAGGACATTTGAACTTGGTGGCTAAGGAAATGAAAAACTTTTTTGGAATTTTCTAGGTTTCTGTAATATATGATTTATTCAGTTAAAAAATTAAAAAACATTCAATTTTTTTTAAATTTCGTGTTAAAAAAAATCAAATTTGCCCAAAACTTAAAAAATAAGCTAAAAAATTGTAAGACGATACAGAACGGCAAAAACTTGAAAATAATAAGCGTGATGAGCCCTGTCGGACGTAAGGGCCGCCGGCTGGTTCGACCTTCTTTTTCTCTTTTTGTTACTCCTCTCCCGTCCCGAGCAGGAGCAACACAACGAGAGCGCACAACAAGAAGAAAAAGCAGATAGATATACTTAGATATAAGTTGTCTTCTGTTCATATTCTTTCTTTTAGACATCTTTTCATTCGAAACAACACTCCATTCTCTTCCGTTGGACGGGGGGGGGGGGGCGACGCGGGAGACGAAACAATAAAGCAAAATTGGGAGGGGTTGGAGAATGTTTGGACAACAAAAAGATTGACTGATCAATCGATTCGCCAGCCTCGGCTATTTTCGGAAATCGGAGCTATGCAAATGCGCCCTACTGATCAAATGGACGGGTGTCATTTAAACTCCTTGGTTAAAAAGCAACGCAAAATGGCATAGTTCCAGTTTGCCGATTTGCCAGAAATTTTCAGGTACAGCAATTTTCCGATTTGCCGATTTGGCGGAAATTTCAATTTAGACAAATTGGCGGCTTGCCGAAATGCCAATCCAGGTCCGCCAATTTGCCAATGTTGATTTTTGGCAAGTTTCTGGTTAGGCGTTTTCATTTTCGAATTACCGTTTTGCCTAAACGCCAGAAATGCTAAGGTTCTCTAAAGCGCTGGTTTTTCCCGTAAAAATTTTTCATTTTCGGCAAATAATTTGCCGGCTTCCCAAAAAGCCGGAATTTTTCAGCCGGCAATTTGCTGAATTGCCGGGATTTTTTTTTCTACAAATAGCCGGTTTGCCGAAACGCAAGAAATGCTCAGAACCTTTGCCGATTTGCCGGATATTTTGATTTTCGGCAAATTGTCGGTAGTTGCCGATATGCCAGAAATGTCTTCAGGAACGGCAATTTGCGGAATAGCCGGAATTTTTTTTTTTTGGCAACGATTTGCCGAAATGCCAGAAATGTTGCGGTCCGGCAATTTGCCGAAATAAATGTTCAATTTCGGCCAATTTGCTGATTGCCGGAGTTAAACAATTTCGGCAAATTGCCGGCTGGTCAATGATGCCGGAAATTTTCAGGTCAATTTGATGATTTGCCGAAAAATTTATTTAAAAAAAAAATGTACCTATTTTTCTCCAGACAGGAAGTCTCTAAAATCTCATTTAATAAGAAGAAACAAAAGAGAAACAGAGAATGGCCTAACAAGTTTCGAGTTACAGAAACCTAGGCCACTTTGAAGGCACCGGCGTAGCCTAGAAACCCAGTTCCACAAAAATAAGAAAAAATTAAAACTCGGCAACATAATCTAGGCCCGGAGCATACAAACACTCCACGAATATTAAAGACTCTTTCTAGGTTACTGGATACCGTTAACGATGGAAAACTCGGCTCGGCCATCTGCGAATTTTGTTGCTTGAAAATGGGAAAAATAAAGTTTTTTTAACTTACGGTCAAACAAAAAAGATCAAAAAGTGAAAAGCGGGGATTTATCTTATCACACAATTTATGACATAAATCCGTAGGCCGAGTAGCGGAGAGATCTCGGAGCTCAATGTTAGGAATATCTATTAGGACGACACATCATACTCAGCCACCCCAACCCAGTCATCCCACCGTTGTCCACTGTCTTTTTTTTTCGCTTTTTTATTATCAACCAGCAATAACTTATCGCCTTTATCTTTGTGAGGCCCCGCGCAAGAACGAGACAGAGAGAGAGAGAGCGAGAGAGTGAGAGACAGAGACGCCGGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAAGGGATATAGGTGCAGCGGACAACTAGACGTCACTGGGCTCTTTCACACATGTGATATTGAACGATAAATTGCGCTCCTAGGCCACAAAAAAACAGTGTATTCGATCTCATGATATGGGAGAAGCTGGCACCGTGCCAAGTTTCAGAAAAAATATGGAATTTTTGCTTGAAGCATGGTGAATCAACGTGCTTACACAATTCTTCGGGATAAATATTCCCGCATTTTGTAGATCAAAACGCAATGAGTCATGCTGATACCTGAGGTTAATTAAAAGTACTGATCGAGATTTTGAGCGTCATATGGTGTATTTACCGGCAAACCTGATGCGCCTGATTTGACGCGCAAATCCTTCATTTTAATAAAGTTGGGCTTCAAATGTGATGCCTCAATTTCTATTTTTTGAAATGTTTTGATTTCGTGAAAACTAACGGCGAATTTCAGAAAATTTATAGAAAATGTTCATTTGTTGCGACCAAAAACTTAAAAAAGACCAAATCAGGAAATTCACATTTTTCGCCGAAAAAACCATTTTGCGCGTAAATTCTGATGTAATTTGCCGTAGGCTATTACGTGTGAAAACACTGCCGGTAATACGTTATATGCTTGAGCGCACCCAAACAAATCTCGTCCCAAATTATTCCGGTTGCACAAAATTCTGAGAATGCGTAAAGCGCAACATACCTGACGCGCAAAATATCTCGAAGTGGAAACTACAGTAATCCTTTTCAAATGATTACTGTAGCGCTTGTGTCGATTTACGGGATCTCGACTTTCGAAATGGATTTAAATATATTATTTATCAATAGAATATTTCAAAGATGAAGAAGTTAATTTCGTGAAGCCCGTAAATCGACACAAGTGCAATAGTAATTTTAAGAATTACTTAGTGTTTCGCTACGAGATAATTTGCGCGCTACTCAAATATGTTGTGCAGTACGGGCATTCAGAATTTTTCGTTCCCTTTCACAAAAATCTCATCGATAAACTTGCGCGTAAAATTTGGTGGTGCCTGTGAGTGGTTCACCTATACAAGTGGTGCCAGGGGCTGTCCCATTACGGGTTGATCTACAAAAAATGCGGGATATTTGCACAAACCATGCGATATCAGTTGAGAACTCTGCGTCTGTTCTCCCGGATATTTTGTAGATCAACGTAGATCAACACTCTGACACGCACGTGGGCCGAAGATGTAAGTGCCAGATTACACGGCGCAAAAACTGAAAAAAAAAAGAAGCGAAAACTGTCAACGAGCATTTGAGCGAGTTTTTTATCATCCACGAATCACAAGAAAAATCAATAGAAAATCGATAATCAAAAAGTGAGTATCATATTTTCGACCAACAGAATCATTCCAGGTTCATCAGTGAGCATTGTTTTCAAGTATACGATGAGCCAACGACGGACACGTCCCGTTCTCTGCCACAAGTTCGCCAATCTCTTGAATAGGCGAGTAGCCCATTTTCGAGTATTTATCGATTGCGGCAATCGGATCATTAACGTTCGAGAGCACGTCGCTGAGCATCCGACAGCCGATGATTGTTTTGAGCATTTCACCAATCCGTGACGATTTCCGAGCGACTTCCAATCACAATTCCCAAAAAATCATCGGGGTTTCATGCTTTTGATTGATCTACAAAAGAATGCAGGAATTTTTTGCCCAAAAGATGGTTATGGACATCGTCAGCACGTCTTACTTTTAACCATGTGAAATCAGTTGAGAACTCTGAGTCTGTTCTCGCGCATTTTTTGTAGATCTGCGTAGATCAAGCCGAAGTGAGACCTTCTGAGTCTTGACACGACAAACTCCCATTACATACGGATGCTGAGCCTTTGTTGGATGTGAGAGAGTTTCCAGGTTGTTCTCGAAACTTTGCTTAAAATTTCATTCATAAAAAATCATTTTTTAACGAAAAACTACTAAAAATCATCCGATAAACCTGGAAATCCATGAAAAACTCTGTGACAAATACAGTACTGTTTAAAGGCATAGTGTACCCAGTCTGTGTTCTGAGAATACGTATTACACAACATATTTGACGGGCAAAATATCTAAAACCGTCTACAGTAATTCTTCAAATGACTACTGTAGCATAGGCGCTAGTGTCGATATACGGGTTCGGCTAGGTTTAATTTCTTACGAAAGCTCGGAAATCGACACCACCGGTACAGTAGTAATTTTAACGGCTGAATTACTAGTTATATTTTGCGCGTCAAATTTGTTGTGCTGTACGCAGTCTCAGAACTTTGCGTTTTCGTGATTTTTTTTTTCAAATTTTAACTGCGGTAAAAAAATAAAACAACATAAATTTCATTTAAAACAAAAACGATTTTACCGCTCTCCGCTTTAAAGGCGCACACCCGTTTGTGGATAGTGGTTTAAACAAAAATATCGCGTCGAGACCAGATTTCTGCAGATTTCGCGCCAAGACCCTACCTTATCCCCCTGATACTGTAATTTGTGGCCTCCTGTCCCTCCTATGCACCACCACCACCGCCCCCATCAAAGCGGCGAGCTTCTTCTTCTCCTGTCTCGCCAAACTTCTCAAGTACTGAGGAGTGAATGGTGCCAGCGCGGCGATCGTTTGTATCGGTTTGCAGAATTTGTGCCACGATGTTGCTCGTAGATTTGCAGCGATAAATTGTGCAATTTCTTCTTTTTCGCAATTTCTGCCCTGCCGAATGAGACGATGAGGACTGTGCAGCGGCCACCGTTTTGAAATCCGGATTTTTGCTGGAAAGATAAAATTTAAATAATGAGGAGATTTTTTTCTCGCAGCGATTTCTCTGGACCCTGTTTATTCCCAATACGGTTTGATCTACAAAAAATGCGGGAATAAGAAAATGTTTGCCCGTTAAAATGCTGACGTCAGCAAAGTTTCTGTCTTAACGCTGCGAAATCAGTTGAGACTGCGTCTTTCTCCCGCATTTTTTGTAGATCTACGTAGATCAAGCAATGAGAACCACACTATGAGTGCAAACACTATCCACAATACATCATATTTGACGCGCAATCTTTAATTTATTTTTTGCGAGACCAAATAAATCTCAAACTTTCCACTGAAAAGGATTTTCATGATTCATTTTAAAAAAGTTGCGCCTCAAATGTGATGTGCCTGAATTTTCGCTTTTTTGAAATTTTTACTCCTATTTCGTTAAAAATGAAGGAATTTCTCGAACATTTATAGAATTTTAAAAATTTTCATTTTGGGTTAAAAAAATCGAGTTAAAAAACAACCATAAATTCAGGAAACTCAAAATTTTCTCCGAAAAACTTTCCCCATTTTACGCGTGAAATCTGGTGTATTTTACATCCGTGCCTAGGCTGTGTGAGAACACTGCCCGTCATACATTATATTTGACGCGCAAACTGCAAAAATCGTCGGAATTATTTCGGGAACAGAAAATTCTGAAAATGCGTAACGCGCAACTTATTTGAAGCGAAAATATCTCGTAGCGAAAACTACAGTAAACTTATGTAACTGACTACTGTAGCGCTTGTGTGTCGATTTAAGGGCTCAGTTTTCAAAAAAACGAGATCCCGTAAGTCGAAAGTGCTATGCAGTAGTTGCTATTTCAAGAATTACTCTAATTTTCGCGACGAGACATTTTGCGCGTCAAATATGTTGTGCAATGCGCATTTTCAGAATTTTGTGTTCCCGGAATAATTCCGACGATTTTTTGCAGTTGCGCGTCAAATATGATGTATGACCTGCAGTGTTTGCCCACATCGCCTAAGCACGGTAAAATCCGCCAGATTTTTCGCGCAAAATGGGATTTACGGCGAAAAATTCGAGATTTGCTGAGATGAGTAGGTCTTTTTTATTATTTCTTAATCCAAAAAAAAGTATTATGAAGATTTTTAAAGTTTCTATAGATTTTCTGAAATTCTCCGTCGTTGTTAATAGAAAAATTTCAAAAAATTGAAACTTCCGCCAACATTTGACGCGCAACTTTTTTGAAATGAAAAAGCCCGAATTTTCTGGGAAATTTGAGATTTATTTAGGTCTCACAGTGAAAAAAACATTAGAGTTTGCGCGTCAAATATCATGTATGACCGGCAGTTGCCCACATCGCCTAAGCCCGGTAAAATCCAGCAGATTTTTCGAGACTCGCAAAATGGTTTCGGCGAAAAATTCGACTGAGAATTTTGGTTTCGTTTTTACTATCTTTTAATCCAAAAAAAAATGAAAATTTTTAAATGTTCTATAAATTTCTGAAATTCACCCGTTTTTCAAATAAAAATTGGCGCATAAAAAACTTACACGATAAAATCCAAAACATCAGATTTTACGAACTGTTAGCAAAAAAATTGATTTTTTGGTTTTTTCGGGCTAAACATTAGAAAACCTCCAAGACTATACTCCAACAAAATTTTTTTTCAGTTTTTTTTTTGAAATTCTTTTTTTTTCAGTTTAAAATGTTTTCATCGCTTTGTTCGTGTTTTTGTTGATGATCTTGTGCGAAATTAATGATTTCCATATTCAACACTGTTGTGTGATTAATTTAGTACGGATAGATACACCGTAACTATTCAGCATGTTGAGTTTAGTTTTCGTCGTCCAATTTATCAAGGTTTTTTTTGATTTTCAGTCAAGTCTTTCGCGCTTACTTTTCTAAGCAGTAATGACCATCGCATGATTGCTAAGGGGTGCTTTTAGTGTTTGGTTTACTTCTGCTATTTCATGAGTCACTCCTTATCACTAATATAAATGCAGCATAATTCCCGAGTGAGCAAGCCGCGAGTATTAAATCACAGAAGCGCTGTTTTAAACTGATGATGATTGCAGTCTCCTTCATTGTTCTGACCGAAGGCTACCATTTTTTATTCATTCCCAGAGTCTCCTGACAAGTGGAAAGACAACTAAAAGCTATGTCCGTCTCGGACAAACCCGCTGCCCAATCAGGTGCCAAAAGCTTGGTACCGCTCCGCGCGCTGAAGAAGAGAAATGAGGAGTGGGGAACCAAGGTCAATATCGATACCAACATTCGCAAATTGAGTAAGTTTTTATTTTAAAATTACCAGTCGTTCGAGCTTATATATCAATTTTAGCGATCAAACCGACTCAGCGAATTTGTATACAAGTACGCTGTGCAAGTGACGTGTTCCGGAAACCTGATGGAACTGAGGCGACAATCTAAATCTCCAAATCAGGCAAAAAGGGAACGGAGCACGAGAACGACAAAACACGCTGCCAGAACGTTTACAATGAGGCGATCAAGCGTTACGATGAGCTGAAAACGACCGTCTTTCTACGATCGTCAAGCCTCTTTGTACACTTCTGACCAAATTGAAGAAAGGTGAATTCGATTTATTGCTTAAAGTTTAATATTTTAGCGTTTCAGAGCATCTCTTTCGTTGTGTACCGACAAGATTTGGTTCCAAGCGACAAAACTTCAAAGAGGCCAGTTTGTTCTCAAAAAGGTGGATACTATCAATCGTTGCAGTCAACATCGAATGACGTCATCAAGACAATCGTGCCCAGCCAAGACTGCCGACAAAACTTTGCTTGAGGCAATCAACATCATTGTCTCGGGTATGACCCCAGCGTTCCAAAAGAATGCCGCTTTCAGAGAAATCAAACGGCTATTACATCTCGCGGCAAAAATGTGAGCATATCACCGTTGGAGCATGCGTTCATTACCTCATCGACCCAACTGTAGTCGAGTAAACTGTAAGAAATAATCATATTAGTATTTAATTGTTTTTTCGCGTCGCGTACAAGGAATACACTGAAGGACATCTCTACTCAAGAGTCGGTGTTTCAAAGTCGGTGAAGACACAATTTGGCAGGAACGGCAAGAAAGTTCCATCACTCTTCAAGTGAAAGTTAGTTTTTCAGAAAATCTAGATTTTTTTCAAAATGTTATAAAATTGATTTTGAATGAAGACAACATTGTTCCCCGGTTTATGCCCCACTTGTGGAACTTTTGCAAACGTTCAGAAGTTTCACCACCTCTCAAAGCGAATGCTCCAGCCCTGGCGCAGAGAATTAAGCCTCTCTGTTGGACTGGTGTTGTCTTGAACTTTACGATGTGCACAAGGCGTCTCGGAGAGGATGGTGTCGTTATGAAGATCCGTCGATTCCACACGTCAGCTAAGGAGACATGTTTTGAAGTTGAGAAGTCAACTATTCACGAACGTCTTTGACTTCTTCAAAAAGAAGTATTGAATCACTTTGAAGTATCCCGATTTATACACCATTGAAGCGAAAGGGAAACAAGGCAAAATTCATTTCCCTGCGGAAGTTCTCCTTTTCTGTCCGAACCAGACAGGTCACGAATGATCAAACCCAGTGATCAACAATGAGCAGGCGGAGATGATTAAGGTAATTTGATATTTTAAAATCTGAATAATATCCCGAAATTTCCTTTTTCAGAACACCCACATATCAGAAAGACGACAACTGATACTATCGTGAGAAACGTCAGATTGGCTTCCAACAATATCTATGGCTTCTTCAAAGTTGAAGACCCTGTCAACCTTGAAGGAATGGTTCTTCCAAAACCTAGCGTTTGCCGGTAACCGACTCGCTGATTTGGAAAATCCGAAGTCTAGACCCCACCGACTTCAATCGTGCTGGATAATATTACGATGCCAAGGAATTGACGAATTGGGAACTGGTCTTTGTTCAAAACGACGAAAGAAGTCCAGTAAGTTTCAGCTTGTAATTTTTCATTATATTGACTCAATTTCAGTTAGGACTTGCTACGCAGCCTATCGCCGATGAAAAGGTGACTAAAGGTATGAAATAGCAACCCAACGATGAGTTTCATCATTAGAGGTGATTTGGAACGAATCGTCAAGAAAGCGAAGGCTGCTACGCAACTTCTCTTGTTCGTTGACAAATCTTGTACCATTTCAACTATCATAAAACTGCAAATCAAGGCGTTGGAGCGTATGACCTGCTCACTCAGCAGATTCGCGGTGAAACCGCCAAGAAAGTCTGCCGTAAACCAGACACAAACTCGTCTTAACATTATCAATAAGACAAAGCATGAAACTCGGAGGACTGAACTATGCTAACTACTTGTGAGTGAGGCGTTCAACAAGCCAAATAGAATATTGTCGTTGGATTTGTTACTTCTCAACGGGTTGGTGGAAATCCAGATGTGAGTCATGACAGCTGCACAATCATATTTCATTTTCTCCAGTATCCAATATCAGTTGGATTTGCTGCAAACATGCTCCGGCAAGCATCATCAAAAGTTTGCCCTGGTGGATACGGGTATGTTCATCGCGATAGGGATGTTTTCGCGATCCATCAGGCATAGTCCAAGGATCTTGACTATCTTCGTGCAAAACATGCACTGAGCAGCGCGGAAGACCAGATGGTATCCTTTTGTATTTCAATGGAGTTTCCGAAGGGCAATCACAATGATCAACGAGGAATTCAGTGCCCGAGTGAAGGAGGCGTGCATGGCATTCCAAAAGAGAGGGAACCGCCATTCAGACCACACACCATCATCGCCTAATCAAAGGCTCACAACGAGCGTCTGTGACAACAAATCCGAAAAGGGACGTATTGTTAATTTGGAGCCATGGGGGTACTGTCGTGGACCATACCATTGTGTAGCAATATCTACATTGAGTGGTATCATGCCTCAGCTGTAGCGCGCCAACAGCAGAGGTTACCAAGTTCACTCTCATCTTCACCACTAAAGCCGGCCCACAAGCTGAGCCATTGTGGCATCTCGGTACAAGCAATTGACCAATGATCTTTGCATCATCAGATTGTCTTCCATCCGGTCGGACTTCCCGTCCCACTGTACATTGCTGATCGTTACAGTCAACGTGGAGCAATGGTTCTTGCCGCCAATCAAGGGTAAGTTAAAATATATACGACATCTATTTATTATTTTCAGTCCACTACAATGAAGGACAAATCGATCTCGCGGCTACCAACAGTGCATATGGCTACGGAGAGAAGAAGCTCTTCACCCCCTACTCGTTTCAATGGAAAATTATCTGTACTTTCCTCTGTTTCTTTTACTCTTAGTGGCTGTATAATGTTTTATTTCGTCAACCCAGACTACTTTCGCTATGATTGTATATTTTTCAGCATTTGGTCATTGTCATTTGTAATTATTGTCGGAATGAGATAAAATGATTTATGAAGAATCAAATGCATCGCTTCTTGGTCAATTCCTGTTGATAAGAATCTCATTCAGATATTTTCAAAAGTTGTGGTTTATTGATATTAAAAAATATCCACGTTGCACGCTGCTGGGTCGCTGTGACTGGAGAAGTTGATGTTTTATGAATTCTTCCGTAAATTCAGCTGTTTGTACCTGTTTTGTAATGTTATCACTTTCTTTCGAACAAAATGTCGATTTTTCTGGCAGAAAATTCCACTTTTTAAAATTATTTACAACATTACAGATGGATACCTTCTGTTGTGTCTCGATTGGAGAATGTTACGAATCGAATGGAGAATGTATTGCTGAAATACGACTCGAACAAAGGAATTAAATAATTGTTCTCGAAATTATAAATTTCAAAATAATCGCTCTTTAGAAACTCCGGTCGGCGCGACGCCTCAAATCATTAATCTTAATGATGATGTGATCTGTAAGAATCTCGTCTCGTTTTATATTTATCTGCCAAAATAGGAGGAGATTTGAATCGCCTTGGATGCATGATAAGGACATATATAATATTTAATTCAAATTTTATCGAAAATTATTCAGTCTAAGAATCTATTTTTCAAACGCTTTTTTCGATGTTGTTTGTGGATTGCAGTGTGGGCGCAAAAACGCGAACACTACGACGAGTTCGCGACTCTTGTGAACGATTTGACGGCGGAAATTGTTGCATTTTCCGATTTCAAGGAGAACCGAAAATCCGAATTCTACTATAATTATATTTGTGGACTTGAAGCTGCTAGGTGGGACTGGTGGAAATTTGCCAATCCTGAGTCCGAATATCTATGTGAAAAACTCTTCATTATTTTATATATTTCAGCTCGAAATCGCATGTTCATACTTTTTTCAAGCACACGCCATATTCTCGTCGCGCCGTGTTGTGTCAATTTACGAATTTACCAATTGTTTTCCAATTTAGTTTTTAAACGAGATTTTTGTGGGCTTTATTTTTGTGAGTTTTGTTTGGGTCAAAAAAAATCTTACAAAGAATCATAATATCCTTTCAGGAAACTCAAATTCGCCGAACAACTACCCTATTTTGCGCGTGAAATATGGTGTATTTTACCTAGACTATCTGTGAGAATAATGCCGGTCATTCATCATAACTTTGATGCGCAAACTGCAAAAAACGTCGGAATTATTTCGGGAACACTTCTGAGCGGCGCAACATATTTGACGCGAAAAATACCTCGTAGTGAGAACTACAGTAATTGTTGCGTGTAAATGACTACTGTCGAGAATCGCTGTGTCGATTTAAGGGCTCATCGAAAAATAGAGATCCGGTTAAACGACACAACTGCTATAGTATTTGAAGAATACTTAGTTTTCGCTACGAGATATTTCGAGCGTCAAATCTGTTGTCAATGCGCATTAGAATTTTGTGTAAAAAGTTTTGTGTTTAGTGATTTTTGGAGTTTGCATAGCGCGTCAAATATATGACCGGCAGTGTATGCCCATCGCCTAAGCACGCTCGGTAAAATACACCTTTTCGCGCAAAATGGGATTTTCGGCGAAAAATTCGAATTTCCTGAGAATTTTGGTCGGTTTTACTATTTGTTTACAATGCAAAAAATGAAAATTTTTAAATTTTCTGAATTATCGGCACCGTCGTTTTTCACTATATAAAAAAATTTCAAAAAATTGAAAATTCCGCCACATCACACTTTGACGCTCAACTTTTTTTACATGAACAAGATCCGGATTTGTCTGCGGGGAAATTTGAGATTTATTGTGTAGGTCTCGCAGCGAAAAAAAAATTAGAGGTTCCGGCGTCAAATATGATGTATGACCGGCATGCACATAGCCTAGACACGATAAAATACATCAGATTTTACGCGCAAACTGGCAAAAAAATATTTTTTGGCTTTTTCTAAACATTTGAAAAAATGGATAGATATTCCAACAATTTTTTTCAGTTGTGTTTTTTTTGTGAAAAATTCCTTCTGAAGTTCAAATAAATATATACTTTTTTAAAGTTCGAAAAATTCACATTAGCGCGTTAAAAACGACGTAGTCAGGCATCACATACATTTGACGCGGAATCTTTTTATACAAGAAGGATTTGCGCGTCAATCTGGCGAATTAGGTTGTCGGCGGAATACACCGGGCAAATTTCACGCGTAAAACTTCAAACCCTGTTTCAATAATAATCGGAAAGAGTATTCGAGGAAATTACGTCTTTCAACGTCTCCGCTGGAACCACGACAGCAAGTTTTGTGTTGACGGAAAAAAAACAACATTAAATTTTTCGACACAAAAAATTAAATTTTTCAACGAAAAATAATAATTCTAAATTTTACAACGCAAAAAAAAATTAAATTTTTCAAATAAAAATTAAATTCGATTGATTCAACAAAAAAAAATTAAATTTTTCACCAACAAAAAATGTAATTTTTCAACAAAAATAAATTTTTTAATGAAAAAAAATTAAATTTTTCAACGAAAAAAATTAAATTTTTCAACAAAAAAAAATTATTTAAATTTTTCAACAAAAAAAAAAGAAATTAAATTTTTCAACAAAAAAAATTTAAATTTTCAAAAAAAAAAATTACTGGAATTTTCCAACAAAAAAAAATTCAAATTTTTCAACAAAAATTAAATTTTTCAACAATAAAAAATTAATTTTTCAACAAAAAAAATTAAATTTTTCAACAAAAAAAAATTCAAATTTTCAACGAAAAAAAAATAAATTTTTCATCAAAAAAAAATTCAAATTCCCGCGGAAAGTGCAAAAAATTTACAGAATATTTTCAAACCCCTCGCTTTTTCACTTGTCTCCCGCTATCATCTTCACGCAATTCAGCCGACACCTTTTCGTCGCCATTCGATGCGGGTTCCCAGCGATGTATCGATTTTCAGTTGATTAGATCGAGTTTTCGCTCCACGTACAGTACACTGAGTTCTGCTTCGAGGCCATCTGAAATTTTTTATTTAATTTTTTTAACGATTTTTTTTTCAGAAAATCAATAAATCTATTCAGCTTTTTTATAACTTTTACACAATTTTCCGTTTGAAAATGTCAAAAAAACCTCGTGTGTTTATGGCCACATTTTATTCAAAAAATTTTGAAAAAAGATTCCCTGCATTTTCCCTGTGGGACTCAAGAGAAGTGCGTGTGCCTTTAAGATTTCTATTGTTTTAAAAACTTAAAACAAAGATTTAAAAAATTCTGCTTTCTAAAAATACATAATTAGTTATTTTTTTGTGTATTTGTTTGGAAAAAATCAAATTTATCGATTTCTGTGAATTTTTTTGTGAAAAAAATCAGTATTTAGCGATTATTGTGCAATTTTTTCGGAAAAATCAATTATTATCGATTTGTATGAAAAAAATCAATACTTATCGATTCTTTGTGATTTTTTCGGAAAAAAATCAATAATAATCGAATTTTGTTAATTTTTTAATCAAAATTCGGCTTTTTCCGGTAAAAACATCTAAATTTCGCAAAATTAATCTGATTATATATTCTGCGAAAAATTTAAATTTCTCATACTTCGAAAAATCGAATATTGTAAAAATCAATAATTTCGATTTTTGGTTAATTTTTAAAAAATCAAGAGGTAATTAACGACTTTTTGATTTTTTTTTTGAAAAAAATCAATAATTATGGCGTCGTTTTTTTTTAATTGATTGGAAAAAATCAATAATTATCGAATCTCAAAAAACTTTTTGTAAAAATCAATAATAATCGTTTTTGTGTGATTTTTTTCGGAAAAAATTAAACATTATCGTTTTTTGAATTCTTTGAAAAAATTGATAATTATTGATTTTGAATTTTTTTTTGGAAAAAATGCAATAATCATCGATTTTTTTGTGAATTTGAAAAAAATCAATAATTATTGCCACGATTTTTCCGATTTTTTCCAAGAAACAAAATAAAACAATAAATTTTCCTTACGCCACGTGTCAATTACACCCCACGTGGCAAATCGTGTAGAGCGCGCATTTCGAATAGGGTGCCGCCGAAGAAGATTTCGCGTTCGATTTTTCGAGTTTCCTTGTCTTTCTGAAATTTTTTTTTTCTAAATTTTCTGAAAAATGTTCTGCTGTAAAACCTCTTTTTCCTCTCTTCTCCGCGCCATTTCGCATTGCTCTTTTTTTTATCCTTTTCCAGCGTTTTTATCTCTTTTTCAACTTCCCGCTCGTTGCGCATTTTGCGCGGTCCTGAAGAAGGTTTAAATTTTTAACAGGGGAAATTTGCTAGGAGAGTAAATATATTCGCTGTGAGACCCGTGGACATGAAAATTTTTATTTTCCGCTTAAAATAAAGACAACTGAATTTCGCTTATATTGTGATGTTGTAAGCTGAAAAAGCTGAATTTTGATAAATTGAAAAAAATTATCTTTAAAGGCGCATTTATTGATTTTTCCAAAAACAATTTACAAAAAAATTGATCATTCTTGATTTTTTCCAAAAAATTAACATAAATCGATAATTTTTTTTCCAAAAAATTCAGAAAAAGATTATGATTTTCAAAGTAAATACTGAACAATCGATAATTAATGATTTTTCAAAAAAAAAAAATCACAAAAGTCGATCATTACCGATTTTTTCCAACAAAATTTTCAAAAAAAACCACAATTATTGATTTTTTCCGAAAAAATTACAAAAAAATCGACAAGTACTGATTTTTTCTGAAAAAATTACTAAAAATTGATAATTATTGATATTTTACAAATAGTTAATTATTGATTTTTACAAAAAATTCACAAAAAAATCGATAATATTTTTTTCAAAAATAAAATTACAAAAAATCTCGGGGATCATTATTGATTTTTACCAAAAAAAATCACAAAAATCGATAAATCTATTATTGATTTTTTCCAAAAAAATTACGACGAAAATCGATAATTATTGATTTTCCCAGAAAAAATTCACTGAAAAATCAATTATTATTGATTTTTTCCGAAAATAAAAAAATTGATAATTTTTCAATTTAAAAAAAAATCACAAAAAATCGATAATTATTGATATCTAACAAGAAAATTACAGAAAATGGATAAGTATTTTTTTACGAAAAATTCAACAAAAAATCGATTTTTGATTTTTTTTCAAAAGAAAAATCACAAAAATCGATAATTATTGATTTTTTCAAAAAAAAATCACAAAAATCGATAATTATTGATTTTTAGGCGGAAAAGCCGAATTCAATTTTTCAAAAAAACAATCGATAGTTTTAAAGGCGCATGCGCCTGGATCTCACAGCGAAAAGTGTATCTTGCAAATTTTTTGGATAATTTCGCTGAAAAACGTATTTTTTAGACAGTTATCTCTTACAGGGAAAATTGTCTAAATCAAAAAAAAATTGTTTGTTAAGCAACATTTTTTCAGTTTTCATAAATTTCAGTTTTTTTTTCGCGAGAAAAAAAGCCAGCGAATTCTCGATTGAAAAATCAGAAAAAATATTTTGGTATCAAAATATTTTTGGTATTACGATATTTTGGGTCCCACCTCGAAAAGAGGATTTTTCAAATTTTTAAGATTTTCTTTGCAACTTTTAACAATTTTTTTTTCGGATATAAAAATCGATTTTCGCTGCGAGACCCAAATAAAATAGATTTTCTCGATTTGCGATGAACTTTTGAGTTTTGGTGAAATTAGATTCCAAAAAAATCGCAATAATAAATGTATCAAAAAATCAATACTTTCTGCGTCTCCTTCTCATCGTCAGTTAGTTTCCGCTTTTCGGGTCTCCCACGCCACGACATTTATGTCAGTATTCTCTTGTGAGCTGGAGCACAACGAGAATGAGCTAGTCGTCTGATTCTGACGGATCATTTCGTCAAGATTAGCCTTCCCTCCATATCCTGCCGTGGTTTTGCCGCAGCTGGAATTGCATCCTTATTCACTGCGTCGACGATGGAAAAGCTCGCTGGAGTACCTGGAATTTATCGATTTTTTATTGATTTTTTATCGGTTTTTCTCGATTTTTTTGATAACTGGGGGAAAACTCGGAAAAATCGATATAAATTTCGATAGGAAAATTCAAAAAACTTCGGGTCTCACAACGAAAATTGATTTTTTGGATTTTCAAATTTTTAAACTTTTGTTGTAACAACAGTGGAAATTTTTCGAAAAAAATTCAGTAATCGATTTTTTGGAAAAAAGGCAATAATTTTCGATTTGTTGAAAAAAAAAATCAATAATTATCGATTTTTTGTGATTGAAAAAAATCAATAATCTTCGTTTTGTGATTTTTTTTCGAAAAAATCAAACAATTATCGATTTTGGATTTTTTGAAAAAAATCAAGAATTATTTTTTTGTGAATTTTATGTAAAAAATCAATAGTTTGCTTCGTTTTTTTTTGGAAAAATCAGTAATTATCGATTTTTTGTGGATTTTGTGAAAAAAATCAATAATTATCGATTTTTTTTTGTATTTTTTGAAATGACAAAAATCAATAATTCTCGAGTTTTTGTGATTTTTTTTCGGAAAAATCAAAAATTATCGATTTCTTGTGTATTTTTTTTTGGAAAAATAAATAATTATACGAATTTTGTGATTTTTTGTAAAATATCAATAATTATTATCGATTTTTTGTGATTTTTTTCGGAAAAATCTTATCAATTTTTGTGATTTTCTTTGAAAAATCTATAAATATCGATTGTGGTGATTTTTTTTGGAGAAATCTATAATTATCGATTTTAGTGAACGAATTTTTTGTAAAATATCAATAGCCAATTATCGATTTTTTTGTAATTTTTTCGGAGGTAATCAATAATTTTCGATTTTTAATGATTTTTTTGGCCTTGGATTTTAAAAATTTTAAACTTTTAGAATAAATTTTTCCATAGTTTTTTGTTGAAAAAATCGTTTTCTGAAATTTTGAGATTCAATTAATTTTTTCTTTAAAAAAATCGTTGAAAAATTAATTTTTTGGAAAAAGAATCAGACGAAGATAGATTTCGCTGTGAGACCCAATTGGGCTCCGCAACTAGTGCCTGCGCCTTTAAATAGTGGTCGTGATTTTTTTTTTTGTTAAATTTTCCCGCGAAATTAAATCAGATTATTTCTGCGAAAAAGTGAAATTTCTCAAAGAAACTTTTGAAAAATCAATTTTTAAGACAACCCCTAATTTCTCCGATTTTCCTGCTAAATAAAAGCATCTAAAAAATTGGAAAATCCACAGAATTATCGCTGTGGGGCACAAAGTTCGGCATGCGCCTATAAGATTATCGATTTTTTTCAAATTTTTCAATCGAAATCAGGTTTTATTTTTCAGTAAAAATCATAATTTTACGAAATTAATCGGATTTTTTGTGCAAAAAATTCAAATCTTTTTTTACGTTTTTTCGCCAAAAAAACCATCTAAAAAATTCGAAATTAAAAGTCCCGAGCAGGTTATCTTCGCTGTGAGACCCAAGTCCGTGCTTTAAAAATATCGATTTTTTGTTAAATTTTGCAATCGATATTTGGCTTTTTTTCCGGTAATGAAAAAATCATAATTTTGCGAAATTAGTCTGATTTTGTGCGAAAATGCGCAATTTCTCATAAAACTTTTGAAAAATTGATTTTTTTTTTCTGGAAAAACCTATTTTTGTCGTTTTTTCGCTAAAAAACATCTAAAAATTCGAAAAATCTCCCAAGATAGTTTCGCTGTGAGACCCAAGGCTCCTGAAAGTCCCTGGGCCTTTAAAACTATCTTTTTAAATTTTTAATCGAAATTCGGCTTTTTCCGGTAAAAACATCACAAGTTCGCAAAATTAATCTAAGATTTTTTCTTCGAAAAATTCAGATTTATCATAAACCTTCGAAAAATAATCGATTATTCCGCTAAAAAATCATCTAAAAATCGAAAAATCCAGACAACGTTCGCTGCGAGACCCAACATGCGCCTTTAAAAATTTCGATTTCCTGTGAAAATTCTCACAATTTCTCCAAATTTCCCGCCGTCACATTCGTCGTTTCCAAATCATAATCCTTCATCATTGAACCATCCGAGAGGACTACAATCGTCCATCTGAAGTGGGAAAAGATCGATTTTTTGTAGAAAATCATATATTTAAATTGATTTTTTTTACAATAAAAAAAATTTTGGTACAGGATTTTTTTGGACAGTTCTGGTAAATCGTGAATCGTGTAATTTGGGCTAAATTCATTTTTTTCAAAAGGTCAGGGGGGGGGGGGCACTGAAGAAAAAATTTACAAAGCGTGGAGCGAAAAGGAGTAGATATACAGTCGCGAAGGAACGATCGCTCCGCCAAATTTGCACGCGGCAAAGGGGCGTGGTTTATTGGGGGCGGGATTCCGGCGCAACCCTGCGGCACGCTTTTTTCTCTCTTTTTTCGCTCGTTGGGTAATTTTCAGTTATTTTTATTCGTTTTCTGTTCGAAATTTCATTTCGCTCGATTTTGTTTTTTCGGATATAAAAAAGTGTCCAACCATTTTTTAAATGAAAAATAAACAAGTTTTCCTAACAGATTTTACCCGAAAAATGCTTTGTTGGTCTCTCTTTGTGAAATTACGTTTGTTAAGAGAGAAAATGGGGGAAAAAAAGTAAAATGTGAATTCAGAGGAAGCGTTTTTTTAACGTTTTGCTTCGTATATGGCATACAGAAGAGACAAACGAAGCCTTTTTTCTAGAAACTGATAAAACTTGGTTATTTTTTAAAAATAGACACTTTGTTATCCAAAAACGATTCACAAAGCGAAATCGTCAAATTTCGAACAGGAAAGAATAAAAACTGAAAATTGCCGCATGAAAAAAGCTAGAAAAAAGCGTGCGCAGGGTTGCGCCGGAATCCCGCCCGCAATAAACCACGCGCCTCCACGTTGCCGCATGCAAAATTGGCGGAGCGATCGTTCTGTCGCGACAGTATGTCACATGTAAGGTAACAAGGTTTGGTTTTCAGTTGAGAAAAGGGGGATTTTTTCTCCCGATTTTTCGCAGAGTCCACGCTCTCCTCATAGCCGAATACTAGAGCGCGCTTGCAGCGACTCTCGTTTCTGCAGCCGCGGTATTTTGATTTGCCACTAGAAAGCAGATATTTCATTTATCGAATTTTTAGGTTTAAAATTTTTTTTTTCTGTATTTTTCGAACACCTTTTGTCAAACAGTAAAAATCGAAATTAAAATAACTAAAATGAACTTTTATTGTCCACTGATTCTTGGTGAAATGGTTTGAATTTGAAGAAATTCTACCAACGGGCTCTCTCGTATTGTCTGGATATTGTTCTATTGAGATAAAATTTGGTTGTAATACATTGTTGAATTAAGGGTGAAAAAATGGTTTAAAACGATTTTTAATAGAAAAAAATTCAGAAAATACGAAAAATCTGATCATTCTAAATTCGAACCATTTCGCAACCAGTGGACGAAAAAAGTTGATTTATTTTAATTTCGATTTATACTGTTTAACAAAAGGTTTGTTCGAAAAAAACAGAAAAAAAAATTTAACAGCCAAAAATTCGCTAAAGCTAAAAAAGCTGCTCATTACATTGGAAAGGCAAAATACCGCGACGGATGCAGCAACAACGAGCGAGAAGCTGCAAGCGCGCTATTTCTATTAATTATTCAGGCTTTAAGGAGAGCGTGGTGCAGAGCCCCAATTTTAAACAAAAAATTGCGGGGTGAAAAAGTTAATATTTAAAAAAACGAGGATTAAATAAAAATTAAATAAGGTCAGCAATGTTCATTGGCATCTCATTTGTGTCGAGAAGTACTGCTCAATGTCGAATTCGTACGTCGTCCGTTTGTTTGACGAAATTGATGGCGACGCCCTTGCGGCCGAAACGTGCCCGACAGGCCGATACGCAGTATGGATGTAGAGCTCGCGGACTGTTGTTCGGCAAATCGTAGTATCTCCTGGCAAAGTTTTAAAAGCTGATTTTTGCGATTTTCGCCATTTTTTGACAAAAATTGGCGAAATTCGGAATTTTTAAACAGATTTTGACGTAAAGTAGAAAAGGTTCCAATGCCAAATTGTACGGTTAATAGCCTGAAATACTTTAAATTTCCTTTTTTGCACAATTTTAACAATGAAACCCTGTACTTTTCGCTACTTTTAGAAAAAAGCTTCCAAAACGATTAAAATTGCGGCAAATTTTATCTGAAGATTTTCGCAAAGTTTTCACCTACAAATTGAAGAAATCGGTATTTTTAAACAAATTTTGGCATAAATAGGTTAAAATACCAAAATTTTACGGTTTTTAGCAATTTTTGAGTGAATTTTCAAAATGTTCCAGTATTTTTGCAACTATTTGGTTCTTTTCATCTATGTTCTTTGAAAATTCTTTTTTTAAGGTGAATTATGTTAGAAAGGGGTCGATTTTGCAGAATTTTGACAGATTTCGCATGAAAATTTGAATTTTAGGCAGGCGAAAATCATCAAAAATATAAGATTTTTTGCGACTTTTAGTTGAAAAAATTGTACAAAACGAGTAAAATTGACAAATTTTTAACGATTTTCGCCAGTTTTTCACCTAAAATTTAATTTTTTTTGTCTAGTGAAAGTTAAATTCAGTGTTAAAATGTATCTATTTTCGCTCAACCTGAAATTTGAAAATTTTCAATTTTTCACTAAAATCCACTTTGAGAAACCAGTGAAAAAATTTTTTCAATTTGATGAAAAAATTTGCAGTGAATTTTATTTTCTCTGCTAATTTTTCGTTGAAAAATGCACTTTTTCAAGTAAGAATTAGCGGGATTTTTGGATTTTCATCTTAGGTCAATTTTCAATAATGTTGCTCGCTGAAATTGATTTTTTCTCAATTCATATTTTGTATGAAAAATTCCACCTTTTTGCAGAATTTTGACTAAGAAATTGCCACTCGCCAAAAAGTCTGAATTTTCTATTTTTCTGTGCTGACAATCATCAAATACGATTTTCAACAGAAATGAAATTTTCGTTATCTTTCGCGGAAAATCATTGATTACCTGATTTTTTCGCTACTTTTAATTGAAAATAGTTTACAAAACGAGTGAAATTGGCAAATTTTATCGATTATCGCAAGTTTATAACCTAAAATTTAGCTTTTTTCTAGTAAAGTAGGGAAATACAGTGAGATTTTTTAATTTTTCACTGAAATACATGAGAAATTAGTGAAAAAAACATATATTTGGCCAACTTTTCATATTTGATATGAAAAATGCCGTTCTGAACAAAAAAAGTGTCTGGAACCATTCAACTTATTATCAATTTTCAGCTGAAAAATTCATTTTTTTTTCTCAAGAATTCGCATTAAAACTGCGGAATTTCTTGTATTTTCAGAAAATGATGATGACACGCTATTCTTCGCGGAAAATCATTGAAAACCTGATTTTTTCGCTACTCATAGTTTAAATCAGCATGGTATTACATATGAAATTGGCAAATTTTATCAATAGATTTAAGTTTTTAACCTAAAATTTGGTTTTTTTTTCAAAGCGAATAGGGAAATCTTCAGTGTCAAAATTTACTGATTGGGTAAATGGAAATTGTGAATTTCCATTGTAAAAATTTCTGCTGGATTCATTTTTCCCTAATTTTTCATATAATTAGGCTAAAAAATGCAATTTTTCACAGGTTCGCATTAAAACACCGTTTTTTGTAGTTCTTATCAACGAAAAATGCTATTTTTTGCGGAAAATCACTGCAACTTTTTCTGCAGTCTCTCGCGGGCCAAGGAAAAGTGGTTTCTAGGCCTTGGCCGAGGGGCCGACAAGTTTCAGCGGCCATTCATCTTGCTTTGTTGTTTTCGCCTGTTTTCTTTGTTTTTCACAGCTTTCTCCCGTTTTTTCTCATTAAAACTGATAAATAAATGCACTATTTTTTGCAGATGCTAAAACAAGTTCCAAGTAAAAAAAATTATGTATGTCAGTCGGCAAGCAGCGGTGAAAATGGGCAATGTAAAATGATGGATTACGGGAGATACAAAACCTGAAATTTTTCTTAAACATGATACATATGCTGCTTAGATGCTGATACTGATTTTCATAACGAGACCGCTGAAAGTTTTGAGGTTTCCACAATTCAACTTTTTTGGTGATTATAAATCGAGATTTTCGCACAAAAGGTTGAATTGGTCTGAAAACCTCAAATCTTTTTCAGCGGTCTTGATATGAAAACCAGGTAATTTCAGCCTGGAAGCATCATATGTATCATGTTTCAGAAATTAGGTTGTGTATTCCGGTAATCCACCAATCATATTGCATTGACCACTTTCACCGCTGCTTGCCGCCTGAATACATAATTTTTTTACTTGGATTGTTTTAGCATCAAAAAATAGTTAATCAGTTTTACAGTAAGAAAAAACGGCAAAAAGCTGTGAAAAACCAAAGACTAAACACGGAAAACAACGCAAAAATGGCCACTGAAACTTGTCCCATCGGCCATCTCATGGCAACCACTAGCTTTCTCCCTTGTGAGGATAAAAATTTGCAGTAGGAAAATGCTATTTTTCGCGGAACATCGAAAATGCCTACCAAGGACACTTGCGGAACATCAAGTCATCTCGCTCAAACATCAGTAGAAATGAGCAGCTGACACGAGTGGTTCCTGCTCTAAACTCCTTCATAACCTCATCACGATCCTTCTGCTCCATATCTCCATGCTTCGATGAGACTTGGTAAAGTCTGCTGGGCTCCGTCATCTTATCAGTCAACCAGTCCACCTTTCTACGTGTATTACATAACAACACGGACCGCCTGAGTGATGGTTAAGGTGTCGTAGAGATCGATAAGCGTGTCGAACTTCCACTCCGATCAACTGCTACGAAGACAACTGCTTGATGCCTTCCAGTGTCAACTCGTCACGCTTCACAAGGATCCGAATCGGATCCGTCATGAATTCTCATCATCTCCAGAATCTCATGAGGAAGCGTCGCGGAAAGCAGCACCACCAGGGCTCCAGGCGGTAGATAGCGATAGTTATCGGAAATGCTCCTTGAACCCCTTGTTCATCGTCGGCTTCATCGAGCACGAGATGCTTGATGGCGCGGGTGCGCAGGTTTCGACGGCGAATCATATCGAAGACGCGTCCCGGAGTAGCCCACGTGCTGGTCGTTCCAATCGAGCTTTCGGATGTCCTCGCCAAGACATTGGTGCCTCCGAAACAGGCCTGGCACTGGACATTCGTCGCCGAGCGCCAGCACTTTTTGGAGTTTCGAGAACTGCCAGCTCCGTGTCGGCGAAACAGAGCTTGGGTCTCGCGGACGGGTGTCTAGCGATTGGAGAACGGAGATCGAGAATGTCGCTTTTTCCTGTTCCGGATTGAGCTTGAGCGATGACGTCACGAGCCTTGAGAATTGCGGGGATTGCGCGTTCTGGATGGCAGATGGATTTTCGAAGCCGTACGCGTAGATTCCACGAAGCAAGTCTTCTGCTGGAAATCGAAAAAAATTTTGAAGTTAGTTCTATATTTAAAGCCTGTGGTGTAGTCGAATTATTTATTTCTTTATTAGACTCAAAATTGCCTGAAAAAAAAGTGTACAAAACGAGTAAAATTGGCGACTTTTATCAATTTTCGCCATTTTCTAAAAAAATCGACGAAATTCGGATTTTCAAACAAATTTTGACGTATAGTAGGTTAAAATTCGATTCCAAAAACGGTTTTTAACAATTTGGTCGTTCTTAAAGTGTAGTCGAGCAATTATTTTTTTCTTTATTAGACCCAAAATTGTCTGAACACACCGAATTTCAGAATGTAACTTCTTGAAAACTCAAAACTTTTCAAAAAAAAGTTAAGATTAGCCTCTTGAAAAAAGCCCTAAAATTTAGTGAAAATTTGAAATTTGACCAACTTGTCTCCTGTCAAGCGGCTGGAAACAGTTTTCTTTGAAATTGTCGTATAATTTTGGGTATACAGCTCGATTACCTTGCGTCTTCAGCTTAATTTAGGTATTTAAAAGTCGATGGACGAAGAGATTTGTCAAATTTTTTTCACCAACTATCTTCGTCCATCGACTTTTAATACCTTAATAAAGCTCGGAAAACGCAAGGATACGTATACCCAAAATTAGACGACAAATTCAAAACAAATTGTACATTTCCAGCCGCTTGTCAGACAATTTGGTCAAATTTCAAATTTTCACTAATTATAGGCTATTAGCCGCCATAACTTTTATTTGAAAATTTTTCAAGAAGTTACTCATTATGAAATTGAGCGGTGTTTTCAGACAATTTTGAGTCTAAAAACGCAATAAAAAAAATTCAACTACCAACGGTGGAGCGAAAATTTATTAAAAACCGTATAAATTCTGGAATCCTACTTTACGAAAATTTGTTTAAAATTCCGAATTTCAATATTTTAGATGAAAAAATGGCCAAAATCGATAAAATTTGCCAATTTTATTCGTTTTGTACACTTTTTTCAACTAAACTCAAGTAGCGAAAAATCATGTTACCATTTGATGATTTTCAGCTGAAAATTCCAATTTCAGGCAAAATTCTTGTCGGTACAAAAAGGGTAATTTTTCAGAGAAAATATGGAAAGAACTGATAAAAAAAACTGTTTTCAGCAAGAAAAATGTTTGAACAAATTTACCTGTTAAATCTGCTTAAAAACCGTAAAATTTTGGAACGTTTATAACCTACTTTACATCAAAATTTGTTTAAAATTCCGAATTCCGTCGATTTTTAGATGGAAAAATGGCGGAAATCGATAAAAGTCGATCGCCAATTTTACTCGCGTGGTTTTGTACACTTTTTTCAAAGTAGCAAAAAAATAATGTTTTGACGCGAAAATTTGTTTTCAGCGACAAAATTCGCTGCAGAAAAAGTTCATTAATATGAAGCTTTCTGCTTAGTTATAGAGAAATTTGTTAAAATCGATAATTCAATACCTCAAGCACCACTTTGTCAAAAGTTGGGATAATTGAGACCTCGTCAGACGACCTTCGAACTCCACAGCTCGCCAAATCGTCGTTTTTCTTCTTATTTTCCGCCATTTTTGAAGGAAGAAGTCTGTAAAATCGATAAAAGGAATATTTTCGAGCATTTTCCGTGCAGAGTAATTCAGCATTTTTTGGAAATTATCAAAATCAATGTATTACAAAAAAATCAAGAAAAACGAGGAAAAACGATAAAATTGATTCGGGCATTTTGCAGATCAAGATTTTTAGAAGGAAATTAACATAATAATTTACATCGAAAAAATTAAGAACCTGTAAAATCCATAAAAAACTAGTAAAAGCAAGATTTCGAATGTTTTCGAAAATACCCTGTTTGTCGAGCATTTTTGCAGAGAATTTCAGCATTTTCAGGTGGAAATTTACACAATAAACGAAGTTACATCGAAAAAATCAACAAAAATGGTGATTTATCGGCTATTTTCGCTCATAATTCGTAGGATTCGATTCGAAACTAAAAACTTTCGAAATTCGAAAAAAATAGCCCTGGCCTAGCGTTCCCCTCCTAGTCCACGGCCGCGCCGATTTACGGAGAGTACGATTATTGATCGATGACGCATGGTTTCCGACTGTTTTTACTATTAAATTACCCTTAAATCACAATTTTCCATAGAAAACGGGTGGAATTCTCTCGAAAAATGAGAAATCACCAAAATCGGCGCCGGTTTCCGATCAGGATAATGCGATTTTGGTTTGTTTCATGAGGTTTTTTTAACATCGAAATGATTATTTTTTTGGTAATTCCAGGCGCTCAAAACACAACGGGACAAAATGAAGAAAATGATCAAGCGAAAAGAGAATTGTTTGGAGAAGGAACCACAATTGGCAAAGCAGCTAAGGATGGCCGGAAAGAGTAAGAAATTTCAGATAATTCAGTTTTTTATATTAAAAAAAAAAAATAGATTAAAATTTCGCTTTAGCTAATTCCAGCCGTGCTTTACTCCCGCTTCAAGCAACGCCACCAAGAGAAGATTACATGAGCCGATCAAACCTTGAACCCTGCACCTTAGCAAGCTATAATCGAGCTAATGGTATTGAAAAATCAGAAAAAATTGAAGTGTAAATTTTCCAGCAAACAAATCAATAAATTTCCTGGTAAATGAACCTATTCGCAGAAGTGCAACAGCAAGTAACCGATGGCCTTCGAGAAATGAAGCGCTGAAAAAGATTAATCAGAACTTCGAGATCAAATCGACAGGATTATGGAAGAAAAAGAGGCGGCGGAATATCAGGAAGAGATCGAAAATGCTGTCCGGCCAGCTTTCCAACACGGATCTCGGGTAACGTTGAGAATGGAGGATCTGTTGGCGGGCGGAATGGGGCACAGTTTCAACTTCCAGAGGCTCCGAGCCATGAGCCGCCTGAAGCAGAGCGGGAATGGCAAAAAGGTTGTAGATTTGCCCGACGAAAATTCCTAAATTTTCCCTAAATAAATAATTTTGTTTTCAGATAAAGAGAACGTCGCGAGAAGATTGCTCTGGAAGCCTAAATATTGCTTGTTACTGTGAATAAAATAAATTCATTATATTGTTATATTTTCTATACAATCTGGTCTTACTGGCGTTGTTCTGCACGTAAAATTCGTTTAAATAACGCTGTAACAAAAAATCTCAGTTTGCGCGTAAAATTGAAAATGCCAGTGACGCAATCACCACGACGAAAAATCCCACAGTTTTGGAAAATTGCGGTTTTTCAAACTTTTTTTCGCGTTTTTTCGGATGCTATTCAAGCGGCTATAGACTGTTCAAATAAGAACGGTCAGAAAATGAGAGACGTAGACAAATAAAGAGATATTGACTTTTTAGGCTATTCTGTGATAGTAACAAACCAACAAAGTTTGTGTTCCCAGTCTTTTCTTTGCAAATTCTCAAGAGTTCTTCTTTGCAGATGCGTCGACGTGAAGCTCTGGACAATTACGAGCATGATGGTAAGTTAAAAAATTGGAAAAAAAAACTTCGGTTTAAATTTTATTATACTTATTCCCTTTTTTTAATTAAAGGCGTCTATGACGGCTCATTCATCATTCACGACGTAGTTGACGCATTCCTCCTTGCCCGAAGGGCCTAGTGGGTTAACGCGCCATCACTCAGAAGACCACAAGTTCAAACCCAACGAGGCTCCCCCGCTTTTCTACCCCTAGCTTGAGCAATCAAATCCGAACGCGTCGGAGCTGTCTCGGAGACAGAAGCCTCATCAAATATATTGATTGCTTCCAAACCTATCGCACGTTTGCGCTCCTCATTTCCGTAATGGCGTTGCATGCGTAAGCTTGATCTTTCCAGTTTTCTACTAAGGTGAGTCATTAGAGCAATGGAGTGAGCAACTCGTTCCGATAATTCGTATCTCATGAGCAAATGCTATGCGGGACGCGGGGCTTTATGGAAAGAAATTAAACAAATATTATTCGTTTTCCACATGTGTGGCTCAATTTACTTCTTCTTTTTTTACCTCATTTTATAAAATTGTCAGCCCTTTTTCTCATTCATTTGATTTTCTGTGGCTCTTTCAGCTCTATGTAGTTCAGTTTTTCATCTATTTGTTTTAACGTGGAGCAAAATATGGTTGAAATTTGTCTGGTAGATACGGTAGCTTTAAAGGCGCATACTAAATTTAACAGTGACAAAATTAAATATTTAGTTCCATATGGAATTTCAATTTGCCAGGCTGTCCCATTACGGTTTGATCTACAAAAAATGCGGGTTTTTTTTAGGCCAATAATGTGACGTCAGTCCGTTCTTAAATGCGAAATCAGATGTGAACTCTGGGTCTCAACTCCCGCATTTTTTGTATACGTAGATCAGACCCAAAATGGAACTCTGACACCAGGTGTTCGCCGCGGAACCAGTTTTATACCGAATTTCGTATGCGCCTTTCATTCTACCGTACCCGGTTCTGGAAGTTTGGGTAAGTTTGAAAAACGAACTTTAAAATAGAGTTTATTAATTTTTGTTGACATATTACTTTGTGCAATACCTCAAAAAATATTATAATCCAGATAAACATGGTTTTTTAAAACGTTTTGCACAAAAAGCGATGATTTCGCTTCGAAGCCACTTTTATAAAACGCCTTGTGCGCCTTTAATTCCACCGTACTCGCCAAAATTGAATGAGCGAGTGAACTATTTTAGCGAAAAAATCGTTCTGATCGGTCCTGCTCTTCCTCTATCGGCTCTGGCAACGTCTTCCTCTTTGAATCTGCTCCATTGACAATCGCCTACCGGACTGGTTCTGGAAAGCCGTCCACACGGACAAGTACATTTTTACAACTAAAATCGAGTCGCGACGCGACACGCAACGCGCCGTAAATCTACACCAGATATGACCGAGAAATGCGGCCTAGTTCGGCCAATTCTTCCATTTTAAATTATGAAGCCAGAAATTCGTGTATTTTTACAAACTGAATGTGAAAAAGAAGCTAAAATTTCAATGAAATAGAGATTTTTCCCGTAATCTCACAGTTTCGCAAAATACTATGGTCCCATTAAAAAACGCTGAAACCTAAATTAGCGCGTAAAATTCAATGTATAGCGAACATCTCTCACGTATTTCTGGCTTTTATAACTCCCCTCAGATATTGCGATAGAAGCGGTTGCCGAACTAGGCCATATCTGGGGTAGATTGACGGCCGCGTTGCGGTAGCGTCACGGCTCGATTTTAGTTGTGAAACTAAATGCATTTTCCTGTGGAGTACACGCGATGTCCGGCGGGCGCTTGTCAATGGAGCGCGAAAAATTCAATATGGAAGGCCAGCACCCCGTGTTAACATTAAAATTACAAGATTTGCCCCCCCAAACATCCCTGGAGAACCTAGAAAAACCTGGTGTGCTTGCCTGACAACAGCGTTCACCGATAAAAGGGTGACGGGGAGGGCTGCAACAGAGCTTTTTTCCTCGTATAGCAACTCTTTGAGAACTGACAGCACTTTTCATATAACTCATCACTAATCGCTGCTCGTGGCGGTTTTATTTTCTAGTTCCCCATTTAGGGCTAATGAGTCAATTTTGTCTGTTGCTCAGAACTCTCAATTACCGATGCTATTAGCAGAAGTACTTAGCGCCAGAACCAGAGCAAAATCATTTTTATTTAAAAAATGAGTGATGTTTTCTTCAGTCTCTGTTTTTCAGGTTTTTCTCGTTATTAGGCGGTAACTTTCCACATACACTTGGTGTCAGAGAGTCCCATGGTTTGATCTACAATAAAAGTGTGACGTCAGCCCGATCTTAACCTTGTGAGTTGAAAAAAACATCTGCGTCTCGTTTCCCGCATTTTTGTCCGAGATCACACCGTGATGGGACTCTCTAACACCACGTACACATCTACCGAAAATTTCGCTGAGAACAAATTTTTGCGCGTCAAACCTGATGTTTCCGCCGTATATCAATACATTGAATTTGACGCGCAAACTCAGTTTTCATGGAGAATTGTTGAAAAAATTGTTTAATTTCCGGAAAATTAACATTTTTCAGAGAAAATCAAAATTATTCTGTTTTTCCATAAATTTCTAAGAATTGTGGCAGATCTCAGTTTGTTCTACGACAAAATTCGAATTTCCACTGAAAAAAGTGAAAAAAGAAGACGCTGTGTAAGCCTAAAAGCCTAAGACTAGGTGTAAGCCTAAGCCTGAGCCTATCCCTCAGGAGAATAAGCTTGAGCCTAATCGTGAGCCTAAGTCTAAACCTAAGCCTAACAAGCCTAAGCCTGATCCCAAGCCCGCATGGTGCCAGGCTGACCCATAACGGTTTGATCTACAAAATATGCGTAAAGCGAAATTTTTTGCCCAAAAAGTTTGACGTCAGCGCTTTCTCATGCGATATCAGTTGAGAACTCACTGCGTCCCTTGTCCCGCATTTTATGTAGGTCTACGTAGATCAAGCCTAAATGGGACGACACCACGGGAAGATCCCGAAGTATTCAATTTCCAAAAAATCAATAAAAATGCAAATAACATAGATATTCCCGCCTAGTCCAATAAATTATTTTTTTTTTGAAACTTCAACCTTTTCATGTTAAACTCGTTTTGTGGGAATGCATAGTCCCAAAAGCCATATTTGACACGCAATTTTCTTTGATAGACTTTTTTTTGAATTGATATGTCATGAGCATCACTCAGGTGGTTCCCAAATGGCGTCTAGTACTTGAGCCCTAGCCACCACCGTCTCGAGCGGCCGAAACCCAAAAACAAATAAAAATGAACAGTTCTCTCTGTTTCAAAATCTATATGTTCCTGTTCTTTCTAGTATCTTCCCTCTTCAGCCCTCTACTGCTGCTCCAATTCTGTTCCATGTTATTTACCGTACCGAACGATTTAGACGAATAACAGGACCCCCTTTTCCCGTTCAGCCGATGAGCCAATGTGTTGTTGGCTAATTCTGGGTGTTTAGCTCATTTGGAGGAACACTAACTTCCCTCTCTAACTACACACTACATGGAAGAGTGTTTTCAGATTTCTAGGCCTCGCAACTTTCCTTGGTGGCCAAGAAAAACTAAAACTTCAAGGTCAAAACGTTCATTTTTGTTGAAAACTACGAAAATCGGTTTTTACTTGATTTTTTGTAAGCGGAAGATTTCCTAAATTTCTAGGCCATGTGCTTTTTCCTGCTTCTCTGAAAATTTTGTTCAAATTTTCTTTTTTCAAAATATTCCCCGAAAATCTTGTACAAAAAGAAATTTTTGAGCATTCAGATCATTTTTTTAGAATGGAAGAGTTATCCAGATTTCTAGGCCACTGTATGGCTTTTCGTGGTGGCCTAGAAAATTTTCTTGGAAATCAGGTTTTGACTTGAATTTTCGTAAGTGTAAGAGTTTTTTACATTTCTAGGTGATTTTTTCCTGATGGTAGGAAACTTGTTTTCGTTTAATTTTCCCCTATTTTGGATATTGAATACTTGTTTATTGGTGGAAGAGTTTTCAGAAATTCTAGGCCACGTGGTTATTTTTGTAAAAGAAGATGATATTTATAACATTAACATGTGGTGACTTTTATCAGATTTTTTGCCCAAATACCATTTTTACAAGGTAATTTTTTGTTATATGATCTTTGTGGATAGAGTTTTTAAAATTTCTGTTAGGCGAACCCTAGATGCACGTGGTGTCAGAGTGCACTTCGGTTTGATCGACGTGAATCTACAGCAAAAATGCGGGAGAGGAGACGCAGAGTTCTCACCTGATTTTACATGGTTAAAAACGTGATGACGTCACATTTTTTGGGGGCAAAAAATGCCGGCATTTTGTAGACATCAAACCGAAATGGGACAGCCTGACACTACGTGTTCGTGCAGATGGCCTATAAATGCTAAAATCTGTTTTTTAAATGTAACTTTCAAAGTAAAAGAAACAATTAGAAACAAGTTGGCTCTCGCCCACAACGAAAAGTCTGTTCTAGCTATGGGTCGCGAAAAGACTCGGCTACCAATTTTTTTCGGCTCCAGATCAATGACGCTGGCAGACAGGGACTTATCAGCTTGTTTCCGATTTACACACACATACACGTACACTTTCTCCGTATAACTTCTGATAGCTTGAAACGAGATTAATCATCATTCCAGCTATTCTGTTTTATTTATTAGGTTAATGCCACTACTACTAGTATTTTTTCATATTAAAAATACAATGAACTATTTAGACATAGATTCAAATGAGATGCCAGTGAGTTCGCACTGGTGTAAGTGTTTTGAATTAATAAATTTTTCAAAAATATCTCAGTAAATTTCTGAGAAATTTTGATTTGAATTCCCGCCAAGCATTTTTTTGAAAATTTTGAATTTCAGCCCATTTTGCCTTTTTTCCTTCAGAAAAGGTGAAAAAATTCAAAATTTGAATTCCCGCTACAAGATTTTTTTTGAAAAATTTTCGAACTCGCGCTAAAGTATTTTCTAATAGCCGAAGGATTAGTAATTGGAATCCCCGCCAAAACATAATTCAGAAAATTTAAATTTCCGCCGAAACTTTTTCTGATAAAATTTAAATTCCCGCCCATTTTGTCCAAAATTGCAAGAACATATTTTCAGTGAGAAAATTTGAAAATATTTTTTTCAGAAAGTTTGAATTCTGTAGCACCAAAACATTTTCTAAGAAAATTTGAATTCCCGGCAAAACTTTTTCTGATAATTTTTGGAAATTCCCCGCAAAAATTGAGGATAGTAAATGAAGATGATTTGAGCAAAGTTATGACGTGGCCGCGGAAAAAATTGATGGCCCAGTTTTCTCTTTTCGCGGCCACGTAGCCAGAACAGACTTTTGGAACCGTACAACCAACAAATATTTCTTCATGTCCCTTTCAAAAATACATAAAAGCCAGATTTTGACATTTCTAGGCCATCTAGACGTAGACGTGTAGGCCTCGAGGCCTAGAAATTTGAAAAACTCTTCCAGAAAATTTGTTCAGTACTTGAAAGCGCTCCAACAAATCTATGCTCAAATTGTAAAAACGTTTTATCAAAATATTTATTGAATAAATTCTTTTGTCGCACAAAGAGGTATCAGACCACCAGATTCGACCTTTGATCATTGTTTCAGTTGATAGGTATGGCAGGCGTGGTTGCGCCTCAAACCTGCCGGCCTCAAGCTGGGCAAGAGGCAGCCTAATGTCAGGGGCAATGCCCACATCCAAGCCCTACTTCTAAGATTATCTCGAAATTTAGCGAGTTTTTATTTGTCCAAAAAAAATCGGAACAGGTTAACAGACAAACATGAAAAAGCCGCCAAAACAGAACTTTCATAATAATCTGTCGGTAGTTTGTGGCCGTTTCTTGCGTCTCAGGCTTAATCCCTACTGTAATTATGCTGAGATTTTCTAAGGATCTATGATCCTTTCACTTTTTGAAAATTTTTGGCAATTCTTTTTAAGTTTGTTGAGATTAACTTATGACAAACAGTAACTAAAAAGCGTGTGCTGCCGCCAGATTTTCTAGGCCATCAGTAATATCAGTTGCGTCCTTGACCATACTGGACCGAGACAACAAATATTCTAGGACTTGAGATTGCGTTCCTCGTCCATTCCTAGTCCCAAAAATTCCAAGCTAGTTTGGCCGAGAAATAATCTAGGCCATCGATGTTAATGACGCCATTTCATACCCGAATTCGCCAGCCTAAAATTCTTAGGTCATCAGTGACGTCACAGCTCTTCCAAGCCTTGGAATGAGCATTTCTAGGCCCTCTAATCTAGGCTTGCAAATTTCCTAGGCCAGGTGACGCCATCCCTCTTCCGTGCTGGACCGGTCAAATGACGTCACTTCTCGTCCACCTACGTCGCACTTTGATTACCTAGGCCACCATGTAACGTCACTTCTCTTCCATCTAGGTTTCCCATGCCCTTCTCCTCTCACGTTTGGTATCAGTGTGTCATTTTGGCCTTGAATACTCTAACGACAAATGAAATGCGGGAGAAGAGACGCAGAATTCTCACTGATTTCGCTTTTCCGGGTTACGCGGTAGACGTGCTGCCGTCACATGTTTTTGGGCAAAATTCCCGCATATATTTTGTAGATCATACCTTAATGGGGTGTCCTCTTGTTAAATATCGAAATTTCACTCAAAAATTTTGAACGTTGACGTTTTGTCTCTGGTCAATTGGTCAGCCGCGCAGTGTTCCGGTGTTTGTGCTCATGTTTTCCATTTGTGCTGCTGCTAAGGCTTATTTGTTCCGGGCGGGGACAGGGGGGAGAAGAGGCGCAAAAATGTGTCATTATGTATATTTTGCCATTGATATTGTCCTTCTGCTCAGAGGATTTCCTCATTTTACGCCGTATGTGCAAAAGCATAATCACCACAATAATTTTGAATATAAGTTTGCAAACGCGCCCTATTGACCTCGCCCGTGTAGTCTGCGTGCACGTGGTGTCAAAGTGTCCCATATTGGTTTGATCTCGAGAAATGCGGGAGAAGAGCTGCAGACTTTTCAACAGTTTGATTTTGCATGGTTAAGAGTGTGCTGGCCGTCGGTCACGTTTTTCTGGGGGCAACAAGAAATTCCCGCATTTTTTGTAGATCAAATTGCAAAGCGGCCTATTGTTAATCTTAGCCCGTCTTTTGATTTTCTATTATTCTTCGGCACCTAAACTGTAACTACGACACTAAGTTACACTGTTAAATTCCGCCCACTTAATGGCACCTTTGTTGCAGAAATGTACCCACGACAACGAGCAGACACGACCACATAATTGAGACGAGAATTCGGCGGAACCGGCTGGCGCAGGTCGCCGCCACAATTGCTGCCTTAGCGTGATATGACTCTTGTTGGCAGGTAAGTAAAAAACTACGACACTCCGAGACCAAGAAGAAAATCGATAATCGAAATATTGAAAATTGCAAAATTTATTTCGCCGGATCATTTTCCATATCGATTTTCTGAATGGTATGGTGATAGCAATCCTAATCGTAGGGCGTCCCATCCCTGGTGAACCACGGACTCTTGACCTGAAAAATAGGTTTCGTTCGGTGGAGCACATTCGCATACACTGACATTTTCGGGTGGCGACACGCTTTACACTTGCAACATGCAGTACCATATGCCAGTGGACATTGAACGCCGACACGCATCTCTCAAAAGTTAGATCGGAAATTTCGTGGCATTTTGGTGATTGGCCGCCCGGTGACAGTCCGCGCAACGGAGCGCGTGACCGTACGGCCCGGGCATTGGATAACACGGAGTCATGCCAATGACTGTCTGGAATTTTGGAGAAATTTATTGATTTTTTGACGGAATTTAATGAAATAAGGAAAAATCAATAATCGACATATTTATTTCGTAAAAAAAAACATTCTTTTCACGGATTTCTTCTTCAAATTGCAATTGAAGAGTTTGCCAAACTAGGGAGCCATTTTGGTAACGCTCGGCCATATCTGGGGTAGATTTACGGTGCGTGTCGCGTCGCCGGTTTTGTAGTAACACTAGCAAAATGTATTTGTCCGTGGAATTCTGGCTACCCTCATAAATCGAAATGGCAGAGTTTGCAGAACTAGGCCATTTTGGGTCGGAGTGATTTTGTGTAACGGCGCGTCGCGTGTCGCGGCATCGCCGCTCGTTTTCAATTTTAAAACTATTTGTCCGTGTGGCGCACACAACACTTTTCCACGCGCTGTCCGGCAGGCAATTAGTGTTGGGCGCAAAAATAATTAGGAAGGCCAGAACCCCGTGTCCGTGTGGAGTGCACGACTTTCCCGCGCGTTGTCCGGCGGGCGATTGGCAATGGAGCGCGAAATAATCAATGAGGAGCTTTTTGCAAAAACAAATTACATAGGCTTCTTGGCCTTCCTTATTGCATCTTTCGCGCTCCATTGACAATCGCCTTAAAGCAGGGGAGTGTGTGTGTTTGTACCTTCTCCACACGGACAACTTAAAATGAAAACCGAGCCGCGACGAGACACGCAGCAACGCGCCGTCAATCGACTCCGGCCGTGGCCGAGTCAATATGCCTTACGGCAAATTCTTACATTTCAAAATATGAGGGAAGCCAGAAACGTGCGGCACATGTTATAAAATTAATGTTGAAAAAAAACTATTAACCCATATTTCGCAAAATAAATTATCGCTTTTTGTAAGAAGGATCTTTCGTGATTGAATAGGGAAAAATTTATCGAATTTTAGCGAATCAGAAAATATCCATTTTCACTAAGAATTTATCTAATTTTTCGATTTCTATTCGCTAAAATTATCGATTATTGCAATACCTGACAAACCGAGCATTTCAGTCATGAAATAAGATACATCTCGTCTTGAAGTTTGATCACTTTTCCCTGCAAAGAAATTTCAATTGAATGTATTTCGAAAAATGTGCTCACAGTTTGAGCTGCTTGACGAGTCAGCAGGTTGTTGTGCAGCCTTTCCAATGGATATTATATGGAAGAACAATCTTATGGACGTTTATTGTTCATCGGGTCGAGAAAAACATTTTTCGAATTTTCGAGATTAATTTACCTAAAATCTAAAAAGGAGAAAATTGAAGAGAAACGTGGGAAAACGTATTGATTTTTCAAAATTTTGTTGATTTTCTAATCACGGGGTTCTGGTCTTCCGAACTCATTAGTTGATCTTGTCGCGCTCCATTGACAATCGGATCTCTTTCCGGACAACACGTGGGAAAGTGGTGCACTCCAGAATACACGGTTAGATAAATACAAGTTTTACAATTAAAATCGAGCCGCGACGCGACACGCAACGCGCCGTTACCCCAGAGGCCGAGCCATAATGGCCTAATCAGTTCGGCAAACTCTACCATGGGAAGCCATAAATTCGTGTATAATCAGAGAACTTGCGCAATTTAACAAAATCGGTAGTAGTAATTTATCGATTTTCCTTCAATCGTCTCGATTTTTTAAAAGCCTTATCGATTTTTATCACTAATTTATTATTTGAATAATCAACGTTTATTGATTTTTGAATCTACATCATGATTTGTCGATTTTCTCAAGTACCTATCGATTTTTGCTGTCGATGCACCATGTGGAAACTTCGGCACGTTTTTTCGCGGCGAGACCCAAATTTTTTGAATTTTCAGTTCTTGGTCTGGTATACGGTAGCTTCTACCTCTACCGTCGATATGTGACAGATGCAAATAAACGGTATAATGATGATATTTGCGAAAACTCGTTCGTCAAGTCAATGACTCGCCGGAGACCACGTGGAAAGCGAAATTCGTTTGGTGTCAAATATCCTTACGGATTCAAATAAACTTGAGAGGCAATCAGACGGCGGTCGAGGAATACGTGGAACAAACTCGAAAATTCAATTTCGAGTCAACGTGATGCGATGAAGCGGTTAGAGTGTTAACTCAAATTTGAGCGGTAAACAACGATGCTCCGCACTCTCGCCGCAAGTTATGTAGTTTAACGCGTAAGCTGTGATGCATACGATAGTCCTGGAATGATATTTGTTAGCTCTCGCAAATGAAGGAATTACCAAATTTCGAGAAAAATCTATATTGATTAGCCTTTTAAAAATTATCGATTTTTTAAACAAAACTTCTGAATAATTCGACGGATTTTTCCAGAAGTTTAAAAAAGTTTTGGGTACAATTTTAAAAAGACAGCAAAGCTAATGTACGTAGAACACCAGGAAAGAATTCTGCGCTAATATCGGATGCTTCGTAAACTCCACGGGCTTGCGGCATTAAAATGCCGAGCTACGCGCCGTAAATCTACCCCGGCCGCAACGCGCCGTAAATCTACCCCGGCCGTGGGCGAGCTCAAGTGGCCTAGTTCGGCAAAGACCAATCTTATCGATTTCTCCTAACAGATGAGTGAAGCCAAAGGCACGAGAATGATGACTTCCACACGGTTCGGTAGAGCGCATTTACACTTATGTACCCTTTGCCGGGCTGCGTTCAAAACCTAAAAATTTGAATGCGCGTAAGACCTGGTGCATTGGGTCCTGAATTATTTCGACAAAACATGGTGCATAATCCCAATATTGCAATTTTGCAGTGAACTTGAGCACAACAGCTCCGATGTTCCGAAAAACTTCGACGCTCGTCAGAAATGGCCGAATTGCCCGTCAATTTCGAATGTTCCAAATGGAGGATGCGGGAGTTGCTTCGCGGTCGCCTCGGCCGCCGGTGTGTCGCCACCGACCTTGCCGGTACTCACTCGAATGGAACTTTTAAGTCACTTTTGTCCGAGGAGCATATTATTTGATGCTGCTCGGAGTGCGGAAATTGGTACGGCGGAGATCAACTGAAGGCCTTGACCTATTGGGTTAATCAGGGACTTGTTACAGGTAAGCGGTGACGTCATTGGCCTAGGAACCTTTGATCTGCATAGATGTGAAATTTTATTGTTATCACGCAATTTGTAATAATTTCTAAAAAACTGTAATTATCGATTTTTAAAATTAACTTGTTCCAAATTTTGAATCAAACGAATTTTCTAGACGCGAGATTTTTGCAATTTATCGATTTTCGCAGGCTATTGAGTTTTCCCACAGTAGTCGATTTTTCTAGAAAATTATCGATTTTTAAATTTTTTTACCGCATTGATTTTTCTAGAAAATTAACGATTTTTCTAGAAAATTTTCGATTCTAAAAAAAATAATCGACTTTTTTCTCAAAACTATCGATTTCTGCAATTTATCGATTTTTTGAAATTTATCGATTTTCCCTGCCAATTAGCGACTTTAAAATATTCCCCAAAAATTTGAACGAGTTTTCTAGATATTATCAACTTTTGCAATTTATAGATTTTTTTTTTGCAACTTATCGATTTTTTGCAAATTATCGATTTTTTACGGCTAATTCCTTATCGAGTTTTTCCAAACAATAACGATTCTTCTAAGCCCGTGGAAGCGTTTATCGAAAACCTAGGCCATCTCTATTTTCCAGGTGGCCGTGACGGTTGCCGTCCCTATTTGACCTGTCGTGTGGCTTCAGTCCAGTGGTCGCCGGCCACGGTCTTTGAGGCCGAGGTTCGAGAAGACGGACATTCGTATGAAGAGGTGTCTGAATACCTCTTACCAGCAGAAATATGAGGACCCGGATAAACATTTTGGCTAGAGATATTTTTTTTTAGAAACTAAATAGAGAAAAATTTCTGGGATCTATTCAAAAATGGCAAACTTTTTGGAAATTATCGATTGTTTCCGGTAAATAATCATCAATTTTTTTCTCGGAAAATCTAGATTTTCGGAGATTGACCGACATTTTTTTCGAAAATTGTCGATTTTTTCCGTTAATGATCGATTTATTCGGAAATTATTGATTTATAGTTCCGATAATTATCGATTTTTCGGATAATTATGGATTTTTTCCGATAATTATCTATTCTCCGGTAATTATCGATTTTTTCCGATAATTATCGATTTCCCTTTCCGGATAATTATCGATTCTTTTGGCCGATAGTTATCGATTTTCCCGATAATTAGCGATCCGGTATTTATCGATTTTTTCCGATAATTAACGATTTTTCCAATAATAATCGACTATTCTTCCGATAGTTATCGATTTTTCCGATAATTATCGATTTTTCCCTTTCGTAATTATCGACTTTTCGGGTAATTATCGATTTTCCCGATAATTATCGATTTTTCCGGTAAGTATCGATTTTTTTAATTATCGATTTTTCCGATAATAATCGACTTTTCCGATTGTTATCGATTTTTCCGATAATTGTCGATTTTTTTCGATAATTATCGACTTTTCGGGTAATTATATTTTTTTCCGGAAATCATGATTCCTATAATACATTTATCAATTTTTTCCGATAATATCAATTTTTCCGACAATTATCGATTTTGGTTATCGATTTTTCGCTTCCTATAATTATTGATTTTCCCGATAATTATCCATTTTTCAATTATCTTTTTTCCGATAATTATCGATTCCGATAATAATCGACTTTTCCGATAGTTATTTTTCCGATTTATCGAGTTTCTTTCGATAAATATGCGACTTTTCGGGTAATTCTAATCGATTTTCCCGATAATAATCGATTTTTCCCGTAATTATCGATTTTTTACGGTAATTATCTTCCGAGACTACTCGACTTTTCCTTACGATACTTATGGATTTCTCCCATAATTATCGATTTTTTTGGCCGATAATTATCGAATTATTGCGGGCAATTATCGCTTTTTCCCGACACGATAATTATCGATTTTTCCGATAATAATCGACTTTTCCGATAGTTATCGATTTTTCCGACAATTCGATTTTTTCTCCGGTAATTATCCACTATTCGGGTACATTTTCGCCCGATAATTATCGATTTTTCCCAATAGGTAATTATCGATCTTTGCCGATAATTATCGATTTTTCCGAATAACTTTTCCGATAGTTATCGATTTTTCCGTATCTAAGATTTTTTTCCGATAATTATCGACTTTTCGGGTAATTATCCATTTTTTTCCGGAAACGTCATGAATTTGATTTCCAAGTAATTATCAATTCCGAGAACCTAATTATCAATTTTTCCGATAACTATCGATTTTTCGGATAATTATCGATTTTTTCCGATAATTATCGATTCTCCCGATAATTATCGATTTTTCCGGTAATTTTCGATTGTTTCTGATAATTATGAATTTTCCGATAATAATCGACTTTTCCGATAGTTATCGATTTTTCCGACAATTAACGATTCGATTTTTTTTCGTAATAATCGACTTTTCGGGTAACTTATCGATTTTGCCCGAGCATAATTATCGATTTTTCCGGTAATATATCTATTTTTACCGATAATTATCGATTTTTCCGATAATACGACTTTTCCGATAGTTATCGGTATTTTTCCAATTATCGATTTTTCGATAATTATCGACTTGCATTCGGGTATAAATTCGATTTTTTTCCGGAAATAATGAATTTTTCCAATACTTATCAAGTTTTTCCGATAATTATCAATTTTTCCGATAATTATCGTTTTTCGCGATAATTTACGTCGATTTTCCGATAATTATCGATTTTTCGGACCATAATTCTCGATTTTCCGATAATTATCGATTTTTCATACGATAATTATCGATTTTTCCGATATTTTTTTTCGGAAATGGCTGCGCCATCGCGGTTTGATCTACAAAAAATGCGGAAAATTTTAGCCCAAAATGTGACCTCAGCACGTTCTTAACCATACGAAATCAGTTGAGAACTCTGCCGCATTTTTTGTAGTTCTACGTAGATCAAGCCGCAATGAGACACTCTGGGACCAAGGGTCTGTAATTGACTTCACGGGAAATGATATTTTTATTTAATGCGCAAAACTAAAATTAAAAATTTCGTTTCGACCAATACACCATTTTAAGCGTAAATTTCAATTCAAATTTTTGCAGCCAAAGCTTTGGCTATTCAATGTATCCCCGCTCAATGACAGTATCCCTTACCGATGGAAAGGAACGAGTAAAGGTGCCCGAGTAACTATCATCGGTCACTTCAACGAGAAAACCGAGAAGCTGAACGTGACCGAGTACGGTGACATCATGACAAAACAGAAACTTTATGGTCCAGACACCACGATGGCGTTCCGACTTCCCGAAGAATTCCTTCATTATTCGAGCGGAGTGTTCCGCCCGTAGCGAATCCACCTGATGGTTTCGACGATCGAAATATAAGTGTGTTGGCACGTGGTTGTTCGATTGATCGGGGAGAATCAGATGATGGAAAACATTATTGGTTGGCTGTTAATAGTTTTGGTAACCATTGGGGTATAATGGTGATGCGTTATGGCAAATTGCGCACGGCCCGGCAAATGGTACATCCATACAAATACGCTCTGATAATTCGGGGTAAGTTTAGCCAGGTTTGGTTTTAAGGAAAACGCGTTGGTCCAAAAAAGTTAGAATTTGATTTCGGACATTTTTTATATGCATCACAAAAATGGACAAGCTTGAGAAAAAGCCCAGGTATAACACCGGTATACAAATTGTGTACAGGTGCCACTTCCCGGGCCGGGATGCGCGTTAAATATAGTGCTTTTTAAGAATGCGTGTTGCGCAACATATTTGACGCGCAAAATCTCGTAGCGAAAGCTACAGTAATTTATCAAATTACTACTGCAGCGTTTATGTCGCTTGTTACGGGCTCGAAAAAAAAGTTACCAGGACATTCTATTTTTTCTGATTTTTTGCTTATTTTTATATAGGAATATTCTCACGGTGTGTCATTCTGATCCCATAACGGTTTGTAACAAAGAATGCGGGAATTTTTCGCCCAGAAAAATGTGACGTCAGCACGCCCCTATCGATACGAAAGTTGTTGAGAAATCTGCGTATAAAATCCCGCATTTTTAGTAGATCACGCCGGGGAGACACTATGTCACCACGTGTATTCTATCCAAAAATAAATTATTTCAAAAATAGAAGCCCGAAAAAAAAAATCGACAAAAGCGCTACAGTAGTCATCAGTTAAAGCGAATTACTGTAGTTTTCGATACGAGATATATTGATATTTTGCGCGTCAAATATGGTGCGCAGAACCATTCTTAGACTTTTGTGTTGCCGTAAATAAATTTGGACGTCAAATACAGTGGATATTGCGGGCGATCGGCTACAATGTATTGCGAAGTTTATCAAGAGTGCGTCAAAAATATGATGGAGCCGCATCGGTCATGTTACAAAACACCATATTTGACGCGCAAAACTTTAACTTTGGACAAAAAGTCAGAGAATTAGGATTGCGTAAAAAACTGGCATTTTTTTTCAGAACATTTCTGAAATCAGTTTTATATTCTCAAACCTTTCGCGTCAAATATGGTGCATCAAGTCCCGAACCAAATACACTCTAACACGTAGTGCCAGGCTGTTCCCTATTAGTTTGACCTACAAAAACGCGGGAATTTTTCGCCCAAAAAAATGTGACGTCAGCACGTTACCATTGCAAAATCAGTTGGAGAACTCTGCGTCTCCTCTTCTCCCGCATAAATTTTGTAGATCAACGTGATTCAGGCCGAAATGTGACACTCTGACACCACGGCCCTAATTAACTCGTAAAAATCACCGTTTTTTTTCCAGGACTCTTCAAAATCAACCCAGATGACATGGAAAAATATGGTCTAGAGTATGAAACAGCAGTCGTCTAATTAATTGTTAATTCGGCAAAAATTTTTTATAATTAGTTAAATATTGTCCACCTATGTCATTCCCGCCCGATTGCATCACACCTTGTCCCATTTCCGACAAAAATCAATTATATTTATATTCGGCCATTTTTTTAGCTCACTCATTCCATAGTTTTTTTTTAATTAAATTTTGGATGCTAAAATTTGCCATTCTCATAGACATTTTCAATATCTGTGTAAGATAAATCTTTTTTCTGGTCTTCAATTGATGGAAAAAAACAAAAAAACAATGCGCGTCAGGTTTGGTGTATTGTGTGCAAACACCGAGCGCATATTTTAAAGGAAATTTATTTTTTTTTCGATTAAAGTTGCTGATTTTCTTTAATTCTTAAAAATGTAGGATTTTGTGCCAGAAACCGAGAAAATTGAAGAAGTCCTTGTCAAAAAATCGATGAAATCCCTGAAATCCCGGCTCCTTCAAGCAATTATCATCGACCAAAGTAAAATGCTGACTTTATCAATTTTCAATTACTTTTGCATGCATTTTTTCTAGGTTTTTCTCGAAGAATTCTCAACAAAATGGTACGGAAAGTACGGCGAAGATGGGGAACTTCTGGAGCACATCGACGAGGACTGGGAGCCCGTAGGCCTCGACGGTGAAATTTCTGCGCCTACTGTGGTATGGGCAGGAGGATCAGGAGTAAAAAGCTCATAGGCTCTATGATTGGGATGAAGAAAAGAAGGAATGGGTGCTGAGGGAGGCCAAGCAGGAGGAGTCAATGAGGAATCACAGAGTATCAAGCGAATTTCGGAACGAGTATGATGATATTTATAAAAAAATGGACGAAGAATTGCAAGAAAAAGCGGCAAAAGCTCAAAAAGAAGATGAAGAGAAGAAAGGGCAGAAGAAGCGTAAGAAATAAGTAGGCTTGGGAGGCGGGTGGAAGGCGCTAAAGAGGTCTGGTTGACCTAGGAGATAAGGTTCATGCGGTTATGAGTGTGTGAAATCTTCCGGAAGCTATTACAGACCAGGAATTCCAGAAATTTATGCCAAGTGGAGTTATTCAGCCGGCTATTCGAACGAATAAGCCGAAATGCAATGGCTTTACCGGGAGGAAAACGGCAAACTCAAAGGCGGGGGACGGATGATGTTGTTATATTAAGAAGGAATCTGTCGAGCTTGCCTGTCACATTATCGATCGAGCGAGCTTAAAAACGGGAAAGTGAAGGTTGAGGAAGCTCGATTTGAGATGAAGAGTCTGATCCGGCGAGGAAGCGGCGGAAATTGACTGCGGCGCAGAAAAAATATGGAGCAGCAGAGTAATAAAAAATATTTGGTGCAAAATTTGAAATAGCTCCTAAATCGACATTAACTAGGTGAAAGAAAAGCCCAATGAAAAAAAACCAAAAAAAATCGTATTACGTGAACACAAAATCCTGAGAATGCGTACTGCACAACATTTTTTTTTTGTTTGACTCGCAAACGGGATATCTCGTAGCGAAAACTAAGACTACTGTAGCACTTCTGTCGTTTTACGGGCTGCTCGATCGAAATGATTTAAAAGAATTTATTTATGGGATATTTAAAGTGGGCAAATATTTACCCGTAATAGGAAAATAATACAAAAAAATCTAAAAAATTTATTTCAATAATCGAGCCCGCGTAAATCGACACAAGAGCGCTACAGTAGTCATTTAAAGAGTACTTTTCGCTACGAATATTTTGCTCGTGAAATAAGTTGTGCAATACGCATTCACCGGTCAGAATATTGATATGTTCCCATAATATTTCTACCCGCGGAAAAAATTGGCCCAAATCGTGGATTGTTTGAATTTGATGACAAATGGCTTTGAAAATCACAAAATTTCAGAGAAAAATTTCGATTTTTGTTTTAAAAAATCAAAAATTGACTAAGAACCCAACAAAATAGTTAACTTGAAAACATGTCTCCTGAAAATCTTAGAATTTTCAGAGTTCACCCGAAAAATACCAGATTTAACTGGATAATTGCGAATTTTAGTGAGCCAAATTCCTTTCATTTTTCAAATAGAATGTTAAAGTTAAACTAACGACACAAAATCAAATGAAATTGACTAAAAAACTATTGAATTTTGTATAAAAATCCAAAACGATTTTTGTAAATTTGCAACAAAAATATTTTATTTTAGCATTTATTTATTAGTTCTTATAATTTTCACACTAAAAATTACGAAAAAAGACAAAAAAATTTTTTTCATTCAACAATTTTTCGGGCTAAAAGGTGTAATTTTTGCAGAAATTGAAAAATTATTAAAAATCGTAGAGACTAACTGACAATCAATTTTTTAAGGACCAAAAAGCCAACTTTTGCCGTTTTACTCTTTTTCCGTGAAAAATCCGGTTTTTTTTATTTAATTGCGAAATCACTTCACACCTAAAAGGGTAATATGCTGGTCTCGACACGACAATTTTTTTGTTAAATTCTTAAAAAGGTGTGCGCCTTTAAAGAGTACTGTAATTTAAACTTTACGGAATTTTTTTTTGATTTTTCAAACAAACCACGAAAAATCGTAGAAAATTCCACAAAGTTTGAAATTACAGTACTATTTAAAGGCGCATACCTTCGAGACTTTCTTGTACAAAAAATATGTCGTGTCGTGACGATTACCCTAATTTTTGGCGTAAAAGTCGTAAACTGTCCGGATTTCACTACGAAATTCAAACTTCGAGGAAAATATACGAAAAAAATACACTTGTTGTTTTGGTTAAAATATATTCACTTTTTTTCTACCATTTTTTAATAATTTCACGAATTTTTCCCTCAAAAATTACAAATTTCAACCAAAAATTCTGATTTTTCCTTTCCAGAATCTTCGAATGGACGCCCGATAATCCACGTAACTACCGTCCAAAGTCGGACTGTACGGTTATTGTCAAAAATTGTTCACTCAGTAAATGATGAACAAGGATGCGGTGATGTTGGTTTGAAAGAGGAAAAATGACACATAGTTGTCAGAAATATGGGATTGTTAAGAAAGTCGTCGTTTATGCGGTTGGTATGAAATTTGTGGAAATTTCGATTTTTGGCAGGTAAAAGAAATCTAAAAATGCTAATTTAAAAAAAAAAGCTTTCAAAAAATGCTAATTTTCCAAAAATTGAAGCTAATTTTGGAAAAAACCCAAAATTTTTTTTTTTACAAATGTTTCGATATTGTCATAAAAAAATATAAAAACGTGATCAAAAATTTGAAGCTATTTGTCGGAAAAATTTTTAAAAATGTAAGGCTAATTAAAAAAACCCAAAAGAGGTTCTTGGATTTAACAAATTTTCAAAAAAATTGTCCTAAAAAAGATAACCTTTAACATTAAAAAAATTATGGCTATTTTTCGAAAAATATTAAAAAAACAATTAGTTTTTAGCTTTCCGAAAAAAAACCGAAAATTTGTGGAAATTGTCGATTTTCAAAAAAAACTTATTCTAAAAAAAAATAAATTTTTAACATTAAAAAATCTATCTTTCGAAAAAAACACCGAAAATTTTTGGAAAGTTCGATTTTCGAAAAAAAAGTATTTTAAAAAAACAATTATGAGAAATGGTTATAAATTGTTTCAAAAATTTTTTACAGCTATTTTTTTTTAGAGTAATTTAAAAAAAACAATTTAGCTAATTTTAAAAAAAGTAAAGATAATTTTCAAAACCCAATATTGAGGATTTATCGATTTTAATAAATTGTTCAAAAAAAGCTAAATTTAAAAAAATTATTGAAATTTTTAAAGAGGGTTATTGGATTTTTAATTTTCAAAAAAAAATCATCAAAATGTATAAATAAATAAAGACTATGGTGCTTATTTCGCGAAAAATTGGAAAAACAATTTTTAGCTAATTTACGGAATTAAAACAACAAATAATTTCGGAAAATCGAAAATTGTTGGTTTTTTTTTTCGAACGCTTTAAAAAAATCCAAAATCATCTGAAAGACATTTTTAAAATTTCCAAAAAGAAATTATGAGTATTTTTCAAAAATCAAATCGAATGATTATCTACCGCTTTGTTTGACATTTTTTGAAATTTGAAAATCATTAATTCATAAAATTTTTATTGAAATAATTCAAATATTTTTATTGAAAAAAAACGAAAATATTTTCGCTTTGGAATATTTCGGAAAAATCGATTAAAAAAACAAGTAAATAGGTCAGTTATTTTTCAAGAATGCTATTTTTTGGAGAAACCGCTGATTTTTTGTCAGTTTTGTCGATTTTCGTTGTAAAAAATTAAAAATTCAAAATTTCTTATTAGGAGTGCACAAAATGCTGAGAATGCGTATTGCACAACATTGACGCGCAAAATATCTCGTAGTAACCATACAGTAATTCTGACATTAAGTACTGTACTAAGCGTCTTCGGAAAAATTCCACTTTTTTCAAAAAAAAAAACGAAATATTTAGTTTTTATTAAAAAATCGAAAAATTTTGATTTTTTAAAGTTAAAAAAAACGAAATATTTTGATTTTTTATTTAAAAATGAAAAATATTTTCCAACAAAAAAGGCTCCTAATTAAAAAAAAAAAATTTGCGCTTTTGATACAAAAGTGCAGATTCTTGTCTTAAAATTTAAATCAAAAATTTTTAAATAGACTTTTAATCCATCAAATTTCCCCAATTTTCAGGACCACCCGGACGGCGTCGTATCGGTTACCTTTCGTGCAAAGAAGAATCGGATATGGCTGGAGGCTAAAATATCTTCACGGACAAGTAGTTGAAGGTCGGAAATTGACAGCCGAGCTCTGGGATGGCCGGACAAAGTTTAAGTCGAGGAGACGGAAGAGAATGAGGGCGTCGGAAGGAGTACGAGAAGTATATTGTGGGTGAAGTAGTGAGACGAAGGAGGAGAGGGACGACGATGATGACGGCGAAGATAATTGATTGATCTAAAATTTTTCTGAAAAATTATTTTTAGTTCATACATTTTTCCGAGAGGAGCAACCGGATTGATCAATTTTAAAACTATGTTCAAAATCGCCCAAAATTAAAATTAGTGAACTTCCGTTTTCATGGATTTTTCGAAAATTAGCTTTAAAAATGTTTGCCAAATTTTTCGACGATATCGCGATGTTTTAAAAAGTTCGAACAAAATTTGCCTAATTTCAATTAAAATCCCTTTTTTCGAAATTTTCTAATTTTCTGGGCCAATTGGGCCGTTTAAAAGAAGACTAAGAAAAATGGCCAAAATTTGAGAGTTCAGCGTTAAAAAAATTCTAAAATTTCAATCAGACTACGTTTCCGGTGGAAAAAAATTTTCTTGGAAAATTGCTTTCTTGTTTGAAAAATTATTTTAGTTTATACATTTTTTTTCCGAAAGTAGGAACAACCTATCAATTGAAATTTTCAAAAAAAAATAAATTTGAAAGCATGTTCCGAAAAATTACGTGTTTTCGGTTTTCTGGAAAAAAAAAACGAAAAATTTCACCAAAAATCAAATATGAACATACTTTCCTAAAAATATGAAAAAACCAGAAATTTTCTTAATTTCCCTATTCAAAAAAATTCAAAAAAAAAACCAAAATTCAGTTAAAATCCCTTTTTTCGGAAAATTTTAAAACTGCTTTTCTGCGCCATTGTGTCGTTGATTTCAAGGAATTTTTTTCTTAAAATCCGTGAATCGTTTTGAAATTAAACAAGAAAATTTGAAAAATCAAAAATTATTTTCACGAAAAAAAATCAAAAATTTCAATCTTACGGTTTATGAATCCTAACTAAAAAAAAAATTGAAGTAACGAAAATGTTCAATTTTTTCGAAAATTTTCGAGGTCATTTAGTTTTTTCTGTGAAAATTGTATTTTATACGAATACTCTTTTAAATTAATTTTTATATATTCCTTTCCCGAAAACTTCAATAAAAAAACCCAGTGATACAATTAAAATCGAGATAACCACAGTCAAAGTGGCAGTAAGCAGGCAAAAGCACATATTAAGGGAATACAAAATTACTGATAGCGTAAGTCTCATCGCGCTCAACAGATTTGACGCGCGAAATATCTCGTAGCGCAAACGATAATTCGTTAAATGGATACTGTAGCTAGTGCCGATTTACGGGAATCTTAAGAACCTAAAGTAGCAAAAATGGAGATCCCGTAAATCCACACTAACACGCTACAGTCTATATCCGTTTAAAGAATTATTGTAGTTTTCGCTACGAGATATTGTGCGCGTCAAATATGTTGTACAAGAACTACGCAATTTTAAATTTACGTCATAATATACACAATTAACTAGTAATGGATCTACAAAAATCTACAAAATTTCTTCATCAAACTCACTCTTCCACAGCTCGATCGTCCATGAGTCTCCTCGTACGCCCACCAGAGAGCACATCGCCACGGTGCATATTGTCGAGACTTCCTCATTCTGATATCTGTGACGACATGCGTGGCGTAACTCAGGTTATCCCTCGCAACGACTACCGACGGACGGCCTCATCTGCATGGGACGAAGACGGTCCACGTTTCGAGCGTTTCCATCCGGCTTCGATCAGTGCGGCCGCTTCGATGACTGAATGAATTTTTATTTCAACTTTTGCAGAAAAAATTATATTTAGCAAAATTAACGGGGAAAATTGGCTGTTTAAAAAATATTTATTATATTGCGCGTTTAATAACAAGTCCAGATGAAAATTCTGCAAAGTTTGAAACTTAGTACCCTTCAACGGTGCACACGTTTTAGAATTTAGCACAAAATTGGCGTGTTCACGATGCTTTTTGGTTAAAACATTCAAGAAAGTGTGCGCCTTTAAGGAGTACTGTAATTCAAACTGGCTGATTTTTCATCGATTTTTCACTTTTTTTCCAATTAGTAAATTTGTGTTATTGCAGATTTTTTAAATCATTCATACCAAATTTTCAATCGAAAAATACAAAAAGAAAAAATGTAATTTCGTTATTTTCAAAAAAATAAATTGAAAAATTGAAAAAAAATCCAAATATTCGAGTATATTTTTTGAAAATAAAAATGAAAATCGGAACAGATTGTTTTTCGATTTTCCAAAAAATTTAAGACATTTAAAAAATCTAAATTTTCGATTTTTTAGAAAAAAAATTAAAAATCGCAAAAAACCAAAAAAAAATTGGCTGATTTTCCATAAAAAAAAGGAAAGATAAACAAGAAACAAATATTTCAAAAAAAAAAACAATTTTTTCCGATTTTCGGCAGAAAAACAACTGTAAATCGGAACAATCATAATTTGTTTTTTCTATTTTTCACAAAATATTGAAAAATAAAAGAAAAAAGGAAATTTTCGATTTTTTTCCGTTCCAAAACAAAAAATTCATAATCTCACAATAACCAAAAAAAAATGAAAAATCAAATAAAAACGAAAATTTCGTTATTCTCAAAAAAATAAAAACTTTTTTTTCTTCCGGAAAATCTCAAAAACACTGGCAAAAATGTCGGGTGACGAACATTAATTTTTTTCTATTTTTTTGGCCACGATGTTTCGCGAAAAATTGTCAAAAATTAAAATTTTTATTTTTAAATCCAAATTTTCACTTCCCCCCCCCCCCCCCCCTCACTAACAACTTTCCGACATCTTCACAATCTCCATAGCTTTCTCTTTAACCTCCGGCCAAAGCGGTCACTCAGCTCGCGGAGCCACCTTATCCGAAAACACAATCGTTCCAAGCTTCACCACGGCGGTCTCACCTAGAACTCCATCGACAACGACATCCTCTCCAAAATGTTCGCCGATTTTTCGATTCAACGAGCTTCGCCGTTCATAGCACGTGTGTGCGAGCTTATCACCATCGATAACATCGAAATTATGCGTTTCACGGAGATATTTCCCGATATGACTTTGACGAAATTCCTCCGGCGAGCCCAATGATGTGCGAGGTGCCCGTTTCTCTAGGAACCACCCGAGCTGGACGGAGCATGTGACCCGGATCCTCTCTTCGTCTGGAGCTTGAGCTGATCTTTGTCTCTTTCAGGATCTCATCGGATCCTTCAGGCAGCTCGACAATTATCACATCCAGCTGCGACATTCCTTGCTCATTTCTCTTTTTGTTCGAGTACCGCATTGGCACCTTTAATAGTCTCCCGGGACACTACTAGCGCTTCGAGGTTTTTTATTTGAAGGACCGAATGGTTCGATTAAGATTGGCTCCGCGAAACATTTTGCCTGGAAAATTATGGGGGTACTATTGAGCAAAAATGACCTGCATTTTTGGAAAATTAGAAAATCGGAAAAAAAATTTTCGTGCCGAAATTTTTTATTTAGAAAAGTTTTTTCTAAAAACAGAAATTATATATTTTTTCAGTTTTACAAAAAATCGAAAAAAAATATTTCGATTTTTCGGATTTTCCAAAAGAAAAAAAAATATCGAAGTTTTTTTAGATTTGCAATAGCCAGCAAAAATTGATTAAAAAAAACCGGAAAATGTATTACGGGAGAAGATTCTGAGCATACGTTGAACAGCATATTTGACGCGCAAAATATCTCGTAGCGAACACTACAGTAATTCTTTAAATGACTACTGTATCAATCAAGCCCGTAAAGCGCTACAGTAGTTATTTAAAGAATAACTGTAGTTTTCGCTAAGAGATAGTTTGCGCGTCAAAGATGTTGTGCAATACGCATTCTCAGAAATTTTGTGTTGCCTTAATTTTCCGTTTTCAATTTTTTCTTTTTTTGAAAATCTGAAAATTTCGATTTTTTCCAATTCTTTTGGAAAATCCGAAAAATCGAAACAAAAATTTTTCTATTTTTTAAATTTTTTTTTTTGGAAAATCGGATAAAAACCAAAATTTTAGTTTTTTAAACAGAATATTTCATGGACCAAAAATATCGATTTTTCCTAAAGTTTTAGAGAAAACTGAACAATTTAAAACGATGTTTATTGTTTTTATTTAAATTTTTATGGAACAACTTTCGATTATTATTTTGAAAAAAAAGCTTTTTTAAATTTTTCTTTATTTTTGGAAAATCGAACATTTGCTATTTTGCGATTTATTAATTTTTTTGTTGGAATTTCTAAAAATCGATGTTTTATTTTTTCAAAAATCAGCGGTTTTTCCGAAAAATGGCAAAACTTTTTTTAAAAAACATTTAGTTCTTTTCCTATTTTGGTTATCGAAAGATAAATAATTTTTTTGGCAATTTTTAATGAATTTTTGATCGTAACCTCTTACAGTCCCGGAAATATCAGTCCTGTACAGAATCGACAACTGCTTCTTAACATCCGAAACTCCGCAGCAGCTCAATCATCTAATAATGATTGGAAAAAAACCAATTTTTTGTTTTACGAAGCTATCATCTAACCAAGAATCATATCCTGATTTCCATTAGGTGACCCCCACGACAATAAAATCAAAAGCGAGCTCGGCAGCCATGTTGAGCAACACTTGGTGCCCATTGTGAAGCGGCCGATCGCATGTGCCGCCAACACAGACTTTTTCGTACTTTTTCGCCGCCGTTTTTCCGCATTCTCCAGCAGCTTTTCCTCGCCGATCACATAATGATTCTCGGGATTTCCGCGGATTTCGGACACAACTAGCCGGACGTAGAGCTTCGGGCATGAGTTCGCCGATGTTGATTTTCGAGACTAGCTCGTCGGTTCGCGGCTCGTCCGGGTTTAATCTTGCAGCAACAGGAATCCTTGTTCACCTTGCATTTTCGAGCCGGGAAAAAGCCCAAAGCACTCTACCTCACATAAAGCTTCGAGCTTAACGCGGCGGCCGCAGAAGTGTGCAATTGATACAGTTTTCATTTTTGCTATTTAACACGAGAAGTCCGTATTTCGAGCTGATTTAGAATGATGAGAAATATAAGGGGATTGAATATTCCTCAAATAAATAGAAAAATTCGCTGCCACGTTCGCTGCTCTTATCGGCTGCGCGCCTCTATTTCACATACTGTCTCTTCTATCTCTCCTCTCGCGAATCTCGCTCTCTAACGCGTGCCGTGGAGCGCACTTCGCTCCTTTTTGCTGGAAATCTTTCAGACATGCCGGAAACAAGAAAAACAATAAATTATTGAACGGAAAATAAAGTAAACGTACTCATCGTATTTTTAGCTTCATAAAAAGATCTCTTAGAGCATATAATATTGCTTCTAAACACCAAATAGTAACATCGCTGAAAATGTTGTGAATTTTATGAAAATCTAGGATCATTTTTCCCATTGTTAGTTTATGAAAAACAACAATAAAATGAGAAAGATTACATGGGAAAACCGAAGAAACTCTCGCGGTCAAAATTCGAATAGAATTACTGTATTTTTCGGTCGGGCGCTCACGGAGATATTTTGCGCGGGTCAAATATGCTTGGCGCGGCGTGCATTCTTCTTTCAGCGTTTTTTATTTAGTAAAACAGTAATAAAATGATTAAATGCATTTTGTGTGATTTTCAGCCCAAGATGTTTAAATAAATTGTTGTTGTCCAACTGCCAGCCATTTTTAAAAACTTAAATATATGGGAAAACCATAAAAATGAAGACAAAAGTTTAGCATAATTTTGGAACTACAGTACTCTTTAAAGGCGCAAGCCCTTTAAGACGAATTTGTCGTGTCGAGACCGGACAAATATTCAAAATTTCTTCTATACATACGCAGATTTAATGTACAGCAGAATATGAGCATTTGCACATTGCGCAATTGCTAAATTTTTTCAAGGATCACAATAAAAATTAAAAGTAAACCAAAATACTTTATTCAATACCACAAATAAGTTCATTTATCTTAGTCAACCTCTTGCCGACGTCGTAGCTTTTGTTGTTGCTTCCCCTTCTTCTTAGACATCTGAAATTTTCTCATATATGGAACGCGCTCCGATCTAACAAAAAACCTTCTACTTTTGGATTTTCTTCTTGTCTACATCTTCCTTCTTTGGCTGCTGTCCAGATATTTTTGTCCCCCGGCTCCCGGATCGCTCTCAAAGTCCATCTCCGGCTGCAGCCCAACCTCAGGCGGCGCGATCATCAGTACCTGCTGTTATCCAGGACCCTTGAAATACGTCATACAATCCCAATCTGGTGGCTCCTGGGTATTTGACTTATCTCAAACAGCTTCTCGCTGGATCCCATCAGCGATACGATCGTACTCCACAACAACTCAGCGACATCCTTGGGCTCGATGATGGTCAGAAGATCAAGAACCCTGAAGTAGTCTCCGGAGTGGTTCTCCCAACCGACGCGACCATCTGGTGGGTGCAGTGATGCGACGTTTCACGAGGAGCACGTCCTGTTCGCTTTCCTTTTTGAGCAGTGCCACACATGGGAGAGCCGTGAAAGAACCCGAGCACCTTATGTACCACCAGGACTCTGACCCATGTCGTTCCTTGTAGCCGAGATTTTCTGGGAAGAAAAACGTTGTCTTAAAGAAATTGTGAACGGTAAGGTTACCCCCTGGTGAGCATGAACGCTCGCGTACTTGACCACTCCTCATGTAGTGAATCCACTCTTTCTTCCATCTGCTCCTCAGCTTCGTCGTTCATCTTGACGAAGCAGTTAATTTTAAAAAAAGTTTTCGGGGTAGATTTACGACGCGTTGCGGATCTGACGCGTCGCGGTTCGATTTTTTGAAAAACTAAATGTCACATATTTGTCCCTGTGGAGTACCGAGCGACTTTCCCACTCAAAATAGGATGGAATTGAATTCGGAAGTGTCACCGTAGCAACATTCGGATTGTCTGAATAAATATAAAGTGAGATTTTGATTTTTGCTCCACTGATAATGGAGTTTTTTTTAGAAATTCTGCAAACATTAATTTCTAGAAAATTTGAGTTACCTCCAAAATTTTTCACAGAAAATTTGAATTCCCGCCAAAATTTTATTCTCAGAAAATTTGAATCCAAAATTTTTTCTCTGAAAATTTGATTAATTCCCGCCAAAAGTTTTTTTTCAGAAAATTTTGAGCCACGGTCGCATTAAATTTTTCTGCACTAGGCTATTTTGTGGCAATACCAGGGGTTGTGGTTTACGGCGCGTTGCGTGTCGCGTCGAGGAGTTTAGTTGTAAAACTAAATGTATTTGTCCGTGTGGAGTACACGGAAGACTTTCTCTCCACGCGTAGTTCCTCAGCAATTGTCAATGGAGCGCAAAAACTGCCGACCCAAATAATTTTTGCACTTCATACACACAGCAGCTCGCGGCGTGGCATGAGGCCCGCATTTCGCGCCTCACTGGAAGCCCCAGATGCCAAAAAATCTACCTGTCAGCGGTCTCTCTCCACCGAAACCCAACAGGCTGATGGTGCGGTCCGTCAATCTCTCTTCCAATACCGAAAGGCGATGGCTTGATGTCGCGAATGAATCCATTCCGGTGGAAGTCACGAATCGCGGATGGCCAGGCTCGGCAAAGTGAAGACCTGCTGAACTTGTCCATGTTCATATTCATCATCAGCTCGTATATGGAGGGCCATACTTAAAAATTTGGCTTAGCCAACGAAAAGTGGTACCAATGGACCACAATGGAAGCGATTTCCGTGCCACCTTCCTCAATATTCGTGTAGAAGATGGGTGGTGGATCGACGCGAGGACAACTGACTTTTGACGAAGAAGCTGGAATTTTTTTTGCTCTCTAGAAACGGTTTTCACGGCGGCCGTCAATTCCCGAGTTTGGAAACTCACTTCGTCATGTTATTTTATAATGAGTGGCTAAACTCGGAAATTGTCGGCCGTAAACCACAAGCCAGTTGGTTCCTTCGCCGCGACCGACACTTTCCGGGTTCCGCGCCGCCCTATACAGAAGGCTGGCTGCGCGAGGCAGGCTTGACCGCGGCAGGTGTTTTGGCGTGACCGCTGCATGGACCTGCTAGCTTGTCAACTAGGCAGCCTAAGCGAGCCTGCAAAAGGTAGGCAGGCGCGACCCTTCTAAAACCGTCCTCGCAACACACAATACCTCACTCTTCATGTTTAACGCCATTTGACCGCAAAAAACTTCCCATCACTCTCGCGTTTTACCTTGTGAATCGAGCCGGACGTGCCCGTCGCCAGCGGTTTCGTGACTTCATAGGTGTTTTGTGCTCGAATGAGCTCCTTTTGCGTTGTCCAGGTCCGATAACTCATTGATTTAGAACACCGAAATGTCACGATTATACGCAGTGAATCGCGTAAATAATCGAAAATGAGACTCGAGTCGAAACTTTTCGAAACCTGCTAGATTTTCTTTGTAGGGTTGTTGGAGTTAATGATGATAATGAGGAGGGGGGATTTTATGTGGATTAAGAGGCTACCAGGAAAATATTTATTTTTTAAATATTTTATTGTCATTCTTTTCTTTTTTAGATTTTCACGTTTCTTATTATTAAAAATAGAAGAGTTTTTCAGTATTTCAAAACGAACACAATCTGAAATTCAGAATTACTACTAAAGAAACGAAAAAAAAACTGAGAAAAATGTTCCAGATTCTCCAGTATTGTTAGGCGTACCCCCCCCCCCCCCCTACCTACCTACCATCCTTCCTAGCCTACATGCATACCTGCCTACCTAGACGCCTGCGGCCTACCTTCCTGCGTACGTTTATGTCATACATTTTTTGCCAGCCTTCTGCCTGTATTTTACGTGTCTTAATTACGTGCCTATCTACTTACCTTTCTTCCACGACTACATGTATACCCGCCTACCTATACGCCTGCGTGCCCGCCTCCTGCCTAACTACTCACCTACCTGTTTGCATACATGCCTGCCTACCTTCTTGACCATGCCGAGGCGCCTATACGACTTGCCTACCTACACGCCTGTCTATTGCCTACCTGTTTGGTTACATGTGCCTGTGCCGTACCTGTGCCCAGATCCTGAAAAACATCGTTATTTTGTAATAAATAATTTTAATAAAACTTTAAAAAACAAAAAAAATACGAAATTAAAAATAACCTAACAAAACGTCTTTTCAAACCCCTTCGTACTGCTTGATAAAAATTCGTGTTATATCCTCTTCAACAACTTGAACTGCACTCCTAATCCGATTAGACACAGCTAAACTTTTTGTCGCTTTATTCATGGACAAGTGCGCTCCTGGGCAATTGAGACTATTCGAATCGGTGTAATAGGTGGTGAAGCTCTTTGAGCATCTTAATGTAGAGTAATCTTCTCGAAGACGGCCCAGAATTGCGGTGATTGAGGGATTTGTGATGGATCTGTACGGGATTTGATGTAATAAATTTAAATTGTGTGGTTTAGATGCAGAAAAAAGTTTAAACTAAGAATTCAGACTAAGACTTGAAAGAGAGCCGATTAAAGAAAAGGGCTGAGCTGGCTTACGATTTTTCCCCCTAAGTTTATCTTCACTTATATAGTCTATTATCCCCCCAATACTAAACAGTATATGGTAATAAATACTTTGACTGCAAGAAAAATGAATAATAGGCTCTGCCTCTATATTTGTTTTTTTCGTTTTAAACCCAAACTTATTCTACGCCGAAATTCTTTGATATTTTTTGGAATTATATATCCTTCGATTTATATTCATGATTCCAGCTCAAATTTTTTTTTCTCAGAAAAATTGAGTTTCCCGCCAAAATGGGTTTCTCAAAAAATTGGAGTGATTCTGCCAAAATTGTTTTTCTCTTTAAAAATTTCCGCAAAATTCTGTTTTTCTCAGAAAATTTGTATACTCCCCGCCAAAAACGTTTTCTCATAAAACATGAATTTCCGTCTTTCTCATGAAATTTGAATTTCCCGCCTAAATTTTACGAGAAAATTTGAATTTCCAGCCAATCTTTTAGAAAGTTTGAATTCAAAAGGCTTTTTTTCAGAAAATTGGAATATTCCGCAAAAATGTTCTGAGTAAAATTCTCTAGCCTATTGCTTTTCTCATAAAATTTCACTTGAATTTCCGGTCACCTGTTTTCAGAAAAAGTTTGAATTTCGCGCAAATTTTTTTTCAGGAAATTTTAAACCTCTGGCTTTATTTATCTGAAAAAAATTAAAATGTCCTGCCATTTTTTTAAAAAAAAAATTCACAGAAAATTTGAATTTCTAAATTTAAAATTCACTGAAACTGACTTCCTTATCGACAATTGTCACACGATCCGATGATTTCAGAGCTACACCGCTCGTAAAAATCCCACGTATTGAATCCACGTCATCAGAGTCGGGAATTTCAAAAATTTTACTATCATCCATTTGTTTGCTGGAAGCGTTAATTATCGATTTTTATTTTTTTATTCGATATATTAATTTTATTGATATTTTATGAAAAATAAAATCAATTTCACTCTCGGATTGGTCTGGCTTTGTTCCTTCATAAAATGTAAAGAAAGAGTTTGCCGAACTAGGCCATTTTGGCTCGGATATCCGGGGCAGATTTACGGCGCGTGGCGTCGTGGCTCGTTAAAAATAGATTTATTTGTCTGTGTGGAGTACACGAAAAGGCACTTCTCACGCGTTGTCAGGCAATTGTCAATGGAGCGCGAAAAATTCAATGAGGAAGAAAGGTTCCAGAATCCCGTGTCCCTGAGTTTTTGAAAATTTTTGAATCGAATAAAAATTTTAATTGAAAAGATCGATTTTAAACAGTTTTAAAATTCTTTTAAAATTGAATTTAATATTAATCCCATTTTAAAAATTATTGATTTTCGAGCATACCTTTTCAATTTGTTCGGATGGTCCCCGTGCTAATTGAGCCAAACACTATCGATTAAAGATGGGCGTGTCACCACTTTTGCCACGCCCCTTTTATTCCGATATTCCAATAACCCGACGAATATCTCTGGTTCGTAATTTTAGAGTTGGCGAACACTGTGAAATAGGAATCGAACGCTTTCGGCGAAGATCAGACCACTCGAGAAATGTGATGAAGCTCCCCGGAGCTCTGAATGTTTGGATAAATAGAGTTGTGAGCCTAGTGCAAGTTGAAAAAATCGATAAATTATCGAGTTTTCTGATTGTTTTAGGCGGGAATTCAAATTTTCTGAGAAAAATTTAGGCGAGAATTCAAATTTTCTGAGAAAAATTTGAGGCGAGAATTCAAATTTTCATAGAAAAAATTTTGGCGGGAATTCGAATATTCTGAACAAAAATTTGCCGGGAATTCAAAATTTCTGAAAATAAATTTAGAGAATTTACCTCAAATTTTCAGAGAAAAACGCATTGTGGCGGGAATTCAACTTTTCTGAAGTCAAAAATCTAGTCGAGAATTCAAATATTCTGAGAAAAATTTAGGCGAGAATTCAAATTTTCAGAGAAAAAATTTTGGCGGGAATTCAAATTTTCTAAGAAAAATTTTGGCGGGAATTCACATTTTCTGAGTAAAACTTGGTGGCGGGACTTCAAAATTGTATTTCTGAGAAAAATTTAGGCGAGAATTCAAATTTCCAGAGAAAAAATGTTTAGCGGGAATTCAAATATTCTAAAAAAAAATTTGCCGGTAATTGAAAATTTCTGAAAATAAATTTAGGCGAGAATTCAAATATTCAGAGAACAATTTTGGCGGGAATTCAGATTTTCTAAGAAAAATTTTGTCGGGAATTCAAATCTTCTGAGTAAAACTCTCTGAATTCAAATTTTCTGAGAAAAAATTTAGGCGATCAACTTTCAGAGAAAAATTTTTGCGAGAATTCAAATTTTCAGAGAAAATGCGAAATTTGGACGCGAATTCTAATTTTCTGAAAGGAAAAAAACTTCGGCGGGAATTCACATTTTCAGAAAAAAAATTTTGGCGGGAATCCAAATTTTCTGAAAAAAAATTGGCCGGGAATTCAAAATATTCGAAAAACATTTTCGGCGAGACTTCAGGGGTTCTCATAACGAATTCAAATTTTCTGCAACAAATTTTGGCGGGAGTTCAAACTTTCTGAGAAAAAATTTGCCGGGAAAAATTTCCGAAAGTAAAGTTTGGCGGGAATTCAAATTTTCTGCAAAAGATTTTGGCGGGAATGCAAATTTTCTGCAAAAAATTTTGTCGGGAATTCAAATTTTCTGAGAAGAATTTTGGTGGGAATTCAAATTTTCTGAGACAAATTTTGGCGGGAATTCAAATTTTCTGAGAAAAATTTAGGCGAGAATTCAAATTTTCACAGAAAAATTTTGGCGGGAATTCAAATATTCTGAAAAACAATTTAGGCGAGAATTCAAATTTTCTGAGTAAAATTTAGGCGAGAAAATTTCGAATTTTCAGAGAAAAAATTTTGGCGGGAATTCAAATATTCTGAAAAAAAATTTTGGCGAGAATTCAAATTTTCAGAGAAAAATTCTGGCGGGAATTCTTTCTAACAAAAGTTTTGGCGGGAATTAAATCAAATTTTCTGAGTAAAACTTTGACGGGGCAAATTCAAATTTTCTGAGGAAAATTTAGGCCAGAATTCAAATTTTCAGAGAAAATATATTGGCGGGAAAAAATCATTCTGAAAAAAAATTTGCCGGGAATTCAAAATGTCTGAAAATAAATTTAGGCGAGAATTCAAATTTTCAGATAATGGAAATCGGTCGAATTCAAATTTTCTAAGAAAAATTTTGGCGGGAATTCACATTTTCTGAGAAAAATTGTGTTGGCGGTAATTCAAAATTTCTGAGAAAAATTTAGGCGAGGAATTCAAAATTTCTGATAAAAATTTTGGCGGGAATTCAAAATTTCTGAAAATAATGGCGGGAATCCAAATTTTCTGCAAAAAATTTTGGCGGAATTCAAAATTTCTGAAAATTTGCCGTGAATTCAAAATTTATGAAAATAAATTTTGGCGGGAATTATTTTCTGCAAAAAATTTTGCCGGGAATTCAAATTTTCTGCAAAAAATTTTGGCGTGAATTCAAATTTTCTGAGAAAAATTTTGGCGGGAATTCAAATTTTCTGGGAACTGTCAAATATTGGCGGGAATTCTAATTTTCTAAGAACATTTTGGGCGGATTCTAATAGCTTGAAGTCTGAGAACATTTTTGGCGGGAATTCATTTTCTGAGAAAAATTGTGGCGGGAATTCAAATTTTCTGAGAAAAAAGGCGAGAATTCAGATTTTCAGAGAAGCTCAAAAATTTTGGCGGGAATTCAAATTTTCTATAAACCAATTTTTTCAGAATTTCAGAAAACACCACCCATCAGAGCGCGTTTTCAAGGTCTCACTGTATTATTCACTAGGCTCCGAATTTACAACAGTGACACCTCCGAATTCAATTCCATCCATTATTTGACTTCCTATAAAAAGAAACGAGTCAACTGATATTCCTAGTATTGAGACGCTTCAACTCTTCTAGAAATTCGAAAAACGGGCGACGTAATAGTTGCCACGTATGTTTGGAGATGGCCGCCGAAACTGGAAAAAAAATCTCGTTTAAAATAAACTGACAAGTCTATATATTTTTTCTTTAAATTTTTTTATTCGAAAAGCACCCCTATTATATAAATTCTTTTTTAACCTACCATTTTTAATATTTGATAGCCGAGTCTTTGTTAGGCCATGTGCAAAAAGCCGGTCGGTACCGGTTTTTGGTGACCGAATTTTCAAATTTTCTAGGCCACGTAGAAAACCAGGTCTTCTTTTGACACATTGATTGTTTAATTTTCTCAATACAGGACCCTCTCCTATAAAATCACGGTTAATTATAGGCGATAAGACGCCTATGGCCGAGTTTTGTTTATCTCTAGGTCATGTAGCAAAAACTGGCGATACCCTTTTTAACCCCAGAATGTTCTCAAGAATCATATTTTTTAATTGTGGTAAAGGCCCAGAAAATTATGTCTGCTGAAATCACAAGTCGGCAGCCTTCTCGCTTGCCAGGTCGTCCACGCTGCAAAAACTCTGTTTACATATAGACCTTTTCAAATAATTTCAAATAAAAATTAATCACTTATAAAATCATTTACTTCAGGATTGAAAGCTTTTGCTGGTTAAAACCGGAAATAAGTCGATACGGCCGAGTATTCTCTTTTCTAGGCCACGTACCAAAAGTGTTCAGATTTTCCCCAGAAAGTTGTCAAAAATCGTATGATTTGTGGAAAAGCTCAGCGTAAAACTATGAAAAAATGAGTCAAATCGGTGGCCGAGTTTTCTCTTTTTAGGGCACGCTGCTTAAACTTCCATTTACATTTTGGCTTTTAGATTCAAATAAATATTATTCCCTCATAAAATCGTTTACTGTCATTGTGAGAGCGGTTGAAAACAAAAAAATGGTGGCCTTTTTTTCTAGGCTACATAGCGAAAAACTCACCTAGTATACACATGAGCAGCTAACGACACATTCTGCCATCTAACATTATTATAAATAGGCGGATTACATACCAAATCCTTCGGATTATTATCCGCCTGCAAATATCGAATTTTTGCGGTATGCCCATTAAGAAGCTCCGGCTCCGTGAGCTCTTCCTCAAGCACTATATTACCCACAAGTGTCACGTATTGGTAATACATAAATTATGCGGAGTTGCTCTGTGGATTTGAAGTGGTTCGAGTACGGTTTTTGTGTCGTCACTTCGGTTTGCGATAATTACGACGTTCCCAGCATCCCCAGGGGCGATAAAGGTTAGTGTTATTTGGTTTTTGTAGAGACTGAAAGAGTGGTTTCAACTTGAAAAGTAACGTAGTTTAAAACATATTCTTCTTTTTTTATTCTGAGATATTTTGATTCTGAAAAAACAAAATTTTTTTTAAATAAAATTGGCAACCTCACAAACTGTGAGTTTGTTGAAATTTAGTTTTTACAACCAATTAATTTTTTAAATTAAAAAAATTTTACGTGTAGTCCTCTAGAATAATTTTAAAAATATATGAATAAGTGTTGAATTCTGCCCAGTTGTTTTTTTTGCCGGTCGCCGAGTGGACTAAGTGCAAAAATTTGGAATTTTTCAAACGGCTTTATATTCAAATCATCAACAACTTAAAAAAATTTAGATTAAAAAATTTTTTTTGGAAGTTTTCGAAAAATTTTGGAAAAATTTTTAATTTGATGTCAGAAAAAAAAACCAGTTTGATTTTATTTTTCTTAAATTCTTTTTTGAAAATTTGTTGAAACTTTTTTTTAAATACTAGACTTTTTTTTTGAATTTTCACGCTGTTCTGGTTTCCCTATTTTGAGATAGAAGAGTTTGCCGAACTAGGCCATTTTGGCTCGGCCATATCTGGGGTAGATTTACGGCGCGTTGCTTGTCGCGTCGCGGCTCGATATTAGTTGAAAAACTAAATGTATTTGTCAGTCGGTACACGACTTTCCCACGCGTTAGGCGATTATCAATGGACGCGAAAATTTAATGCAATGAGGAAGGCCGGAACCCCGTGAAAAATACATTTTAAAAAATACATGAAAAATGTTCAAATTTTCTTTTTAATTCATAAAATTTGAAACTACGTTTTGTAACTTTACAAAAAGATAATTTTTCGAAATTTTTTTGAAATATTTTTTTTCGATTCTTTTTGTTGATTTCAATTCTCTTTTCTAAACATTCAATATTCCTTACCTGTATCCCTCTAGCCATAATAGTACGCAGAAACAAAAAATGTCTTCGTACGTTGTTATCCAATTCTTTAATCTAGTGTATGAATTTCGAACACGTCTTAATGCAGGCAAGGGATGTATTCAAATATCAGTACAAATGCTAATAATATTACGATATAGGGTCCTGCAACGAATTCTCAACTGCTGGTAGAGTACGGAATAGGGTTTGAATTGAAAATTCCTTCGTACAGTTTCGTGTCGGAATTCATTTTTATTATGGGAGGAAAACAATCTAGTGGTGGTAGTGGTAATGTCAATCGCTAAATCGATGTTGAATAGCACACTTCCGATAAGTATCGGGCGCCAGCGTGGCCTAGGATTTGGGAAAATTCTTCCACCAGAAGGTAGTCCCAGGCTTTTAAATATGATTATTTCATCAAGAAATTTACAACTAAATTGAAAATCAACAGTTAATACATTTTTTCATAGACTTTTCGAAACATATCTGATTTTTACATATCAAATAACCCGGTACGCATCTAACCGTCAGTTGCCTCGTGGCCTAGAACGTTTGCAAACTCTTTCACGAGAAGACATTTCACCGTAGCCTAGTTACTAAAGCTTTGAAACTTCTTGCGTGCAGTTCGCTTGGAATTTTTGCTTGTTTTGTCAACTAACTAGGATTCAATAGCTATTAAAAAGTTTCAAAATTGGGCAATTTATGTAAAAATTCACAATTTTGAAACTTCTCGAAAACTAGACGATTAATTTTGGTAGTGGACTCAAAATTGATCTTCAAACACTAAAAAATAGCACTTTTGTAGAATATATTCCCATAAGATTTTTTGCAAAATTATTTTTTTTTACCCAAAAAAAAGGACAGTCATGGCTGAAATAAACTTTGGAAAAAATAAAAAAATTGTCTAAATTTGCTGAGGGTAATTCATGCATTCTGAAAAAATCTGGGTTTAACCCATCAAACAACATTAAAAGCGGCATGGGTATTTCATTGTAAAAATAATGCATATACAATAAACAATGTAGAGGTAGGTGCAAAATCTGTAGTTTCTTTGAAAGATTTTTTATTTATTTTTTTGTTATTTTTTTTGCAAATTTTCGTATATTTAAGTAGTTAGTTTGCATGTTACATGCTAATGAAAAGTTTGCATCTGCTGATACATATAAAAAAGCGCCGAGAAATTCACAATTTCAGTAAACCATCAGTAAGGTATTTAATTTTTGTAAACTTTAGTCTTCTGCTCCTCTAAAGCTTCTGGAAGAGGACACTTTCTATATCTTCAAAATATTTTTGTGCGCCACTTTCCTGTCAAATTTCTGGCATTATTACATCCAAAAAGTCCCCATAAAAATCGGAATTCCATGGCTACGACAACGTCAGCAAAAGCGGAAAGAAATTTTATATGCCAGTCTAACGAGTCACAAAGCATACACTGACGTTTCTATCAGAAAAGACAGGATATCGTATCAAAACAAAAATTGGGTGCGATTGCTCGATGCACCATGTGATATTTTGCTTTTTTTAAAAATTATTTTGCTCGTTAGTATGGTGCACTTATTCCGTGGGAATGCACGCGGTGTCATAATGCCCATTTCGTTGATGTGCGTAGATCTACGGCAAAAAAAAGATTGCGGGAGTTGAGACGCAGAGGTAGGGCTCAATTCGTGTGGTTAAGAGCGTGCTGACGTCACATTATGGGCAAAAAATTCCCGCATTTTTTATAGATCGAATAAACCGAAATGGCACATCCTGACACCATGTGAATGCAAAAGACTTTACGCGGAACTTTTTAGATTTTGTTACTAATAATCTTAGGATTACCAGTGCTATGGTTTTATAGAAAAATATCAAAAGCGTTCAAAAAGAAATCAAAACATTTTTTCAAAATTTTAGATTTCCACTTTCTATTTCAACTTTAAAAGACTTATTCAAATTTTGTTTTGTTGATTCAACGATTTTTCCGCATTGATCTCACCAAAAGAATTCATCACATCATTCAAAACTAAAAACTCACTTGGCTTTCATTCCGCTCAGATGACAAACTTTTTGGTGGCAAAGGTTCTTTGGGGGCATAGTATCCAAGGAGACAAGCATAAGTATCCAGTAGACAAACTGGGGTGTATCTTGGGGGGCATGTATCTTTGGTGACAACCTTTTTTTCCGACTAGATTTTTATATGTACCTTTTTCAACTACTTTTCTATGTTCACATTTTTCTGAATAAGTTTTTTAATGCAATTTTCAATCGATTATCGGTGATAATTCCCTCACCATTGAATGTATGAACGATGGATTCTTTTGGGAAAAGCTCTAGAACGTCCAACTAACTTGGAATGATCGTGCTAAGTCTTCCCGATGGTCTGATCCTTCAGCTCCGAAGGATCAGATGTGTCCCTTCATGTTCTGATCCTTCAGACATAAGTAGGATCGTAAGGGTACCTCCTGATGGTCTGAACCTTCAGATCTCGGCCAAAGGATCACGGGGCTCTTCCTGATGTTCTGTCAGCTAGGATCACATGGGCACCTTCAGATGATCTGATCCTTCCTGCAGATAAGAAGGATCGTAAGGGTGAACCACTTGATGGTCTGATCCAGCTCCAAAGTTTGAGATCACGACGCCCTTCCTGATGTTCGATGATTTCATCTTCGACAGATCATATGGATTTTTGACAAAATTTGAAAAAAAATTTTGAAAAAAAACTCGAAATTTTTTTTTGTTATTCTCCCTCTGCCATTCTTTAAAGAATAGTGCAAATTTATCATGATAGGACCGAATAACTTTCAAGAAACAGTATAACTATACATGATAATCACGCTTCTACCAAATAATGATAAATTCTCCGCGATGACAAACTTTTCGGTGACAAAGTTTGGTGGAGAAACAAAAATTACCGATACTAAACTGGTAGGTAAGGAGAATAGTGAAATAATAGAGTCCTACAATGGACTATTAAACATGTTCAGTAGGTCAGGACTCGTCCGTCAAAATAAAAAATTTGTCAAACGAAGTTCGAAACTGGGCCCTGTAGGATGGAACAAAGGGCGCTCACTACCACTACACCAACTATGCGAAAGTCGAGCCTCATCGAAGGCTATTATAAAACATAGTTCGAACGAGTATGATCGACATTCCACAAACAGTAATATCTCTCAACAAGAATCTCTTCAGGGAATTGAGGTCATTTCCAGTGACTATTAATTTATCGGTTTTTTCTCAAGTTGAGCATAGGGTCTTTTAATTTTTTGAACATAGAAAATCACGAAAGCTGCCTGTGCCCTGTATCCATCACTGGATCGAAATAGACGTAGCTCTGGCCTAAAATATTTCCTGAACAGTGATCATTTCATGTCCATTGTGTGTTTCTCTGTATTTTGCACCAGAAAGTTGAACAAAAATGATAATATTATATCGAATAATGGAACAAATACAAATAATTCTGACTAATCAAATTTCCTCCGGATATTGTTTTTTCTGTCATGATTATAAGTTTCTAAGTTTTTTATAATGTGTTTACAACGTCATAATTACCTTCCTTTCAAGCAAAAACCGTTCGAGGCGTCTTAAAAATAGATGTGCAAAAAACTTAATTCGTTTCGATGAACACCATACTACGGTCGGTGTGACTTGGCGTGGCGGTTTGCTTTTGAATCATACTATTTGACCCACCAAACTAAATTAGCAATGAAATTATTTACTGCAAATTCTGCATCGAAAAGGACATTACGATGGAAAAAATGACGATTTTAATTATAAAGCAACACATTATAAAAAATTTAAGAACATATAATCATGACAAAAAAAACAATGTCCGGAAAAAATTTGATTAGGCCTAAAATAAGGTTATTTACTCCTTTTTTTCCAATGTTTATCGATTCAATATCAACATTTTTGTTCGACTTTCTAGCTCAAAATTCATAGAAACTCACGATGAACATGAAATGATCACTCAGGAAATTACTTTAGGCCAGATACGTCTGTTTCGATCCAGGATACAAGGAACAGGCAGCATTCATGATTTTCTATGATCAAAAAATTCACAAAACACCCTATGCTCAACTTGAAAAACCGATGTCGTAAAAATAGTCAAATGACCTCAATTCCATTAAGATATTCTTGTTGATAGATATTACTGTTTGTTGAATGTCGATCATACTCGGGCGAACTAAGTTTTATAATAGCCTTCGAGGAGGCTCGCCACTTTCGCATAGCTGGTGTAGTGGTAGCTCTGAGCACACTGGTTTGCATCCTACCGGACACCAGGTTCGATCTTCGTCTGACAAACTTTTTTTTATTTTGACGGAAATCAGTAAAACACCTACTGATGTTTAATAGTCCATAGGACTACTCTATTTCACTATTCCTTTACAGTTTTCGGTAATTTTTGTTTGTCCACCAAGATACTTTGTCACCGAAATGTTTGTCATCGGCGAATTTATCATTATTTGCTAGAAGCTGATGATCATGTATAGTTATACTGTTTCTTGAAAGTTTTCGGTCCTATCATGATAAATTTGAACTATTCTTTATAGAATGAAAAAAACAAAAAAAAATTTCGAGTTCTTTTTCAAAACTTTTTTCTTTCAAATTTCGGTTGTCAAAAATCCTTATGATTCCGTCGAAGCTGCGAAGGATCAGAACATCGTAGAGGAGGTACCCTGATCATTCGGTTATCTCTGAGACAAAGAGATCATCAGGCAGAGCCTCCTGTTCTTTTGGAGCTGAAGGACACAACATCACGAAGAGCCTCATGATCCTTCTGAAGTAACAGACCATCAGGAGGTACCCTACGATCCTTCTTATCTGAAAGATCAGATGTCCCCATCAGAAGGTACCATGTGATGCTTCGGATCGGAAGGATCAGATAGGACATCAGGCAGAGCCTCATGTGCTTTTGGAGCTGAAGGAGAACATCAGAGCCTCGTGATCCTTTGGAGCTAAAGGATCACACCATCGGGAAATCAGGTACCCTTACGATCCTTCTTATCTGAAGCATCAGAACATCAAAAGCCATGTAATCCTTCGGAGCTGAAGGATCGACAGACCATCAGGACGAGCCTAAACATGGTATTCCAAGTTAGTTGGACGTTTTATCAGCTATTACCATCGTTCATACATTCAATTGTGAGGGTAACCGAAAATCGATTGAAAATTGCATTAAAAAGCTTATTCCAGAAAAATGTGAACAAAAATTAGCTGAAAAATACATATAAAAATCTAGTTGAAAAAAAGGTTGTCATCGCCAAAGATTATGCCAGATACCCCGTTTGTCTACTGGAGACTTTGTCTTGGATCCCCGCCAAAGAACCTTTGCCACCTAAAAGTTTGTCATCTCGAAAGAAAGCCCCCCGACTCTGCGCGTTATGGTGAGACCCTAATACGTCATGTTTGACCCGCAAAATATCTCGTAGCGAAAAATACAGTTATTTTTTAACCGTATACTGTAGCGCTGTTGTAGAAGTTTACGGGATCTCTATTTTTCTAATGATTAAAATTAACAACAAATCAGAAGAATGACCCTCACACGAAGAAACGAAGAGAATGAAATATCGATGTCACTTTTCGGAAAAAAAATTAATTTCAAATGAGCCCGTAAATTTACACATGCGCTACGGTAGACATTTAAACAATTACTGTAGTTTTCCGCTCCCAACGAGAAATTTTGCGCGTCAATAATAATATATCGCACAATAAGCATTCTCAGAATTTTGCATGTTCCCGGAATAATTTATTTAATGGTTTTTTTGGTTGTTTCCTATTGGTCCCAAAAATCAACAAAAAAAAATTTGTTATGAAAAATTTCTGTTTTCTTCCGTTTAAAATCAAAAGTTTTTTTAGTTGCTTTTTTTGATAAATTTTTGCAACCACCCTGATTTATATCCCGATAAATGTTTAATGTCCCGCTTATGATATCTGGAACTGCCTCTTTGCACGTAAAATTCCTACCTGCGGACCAAACACACCATACATCACGCGCACTTTTTTTTTTTTCATCTGGACAAACACATTTTCCGCATGATTTCACTGACTTTATTTAACTCTCATCACTCGTATCGTTAAAAAATGCCCTAATCATCAACCTATTTTCATTGTCATTCAAAAAAAAAAACTATTTCGTACTCGGCGATCGTACTAATTTGTCATCATTGCGTTCCGTCGAGCAAAAATCAATCGGGAGTACTTTTACGTTTTCCGTTGAAAAAAAATCCAAAAAAAACACCATCCAAAAAAGATCCAAAAAAATTCCTAGTTAATTAAAACCGGGAATAAAAAATTCAAATAAAAAGTTCAAACGTTTCGTTATAAAAATGTACACCGGTAAGCTGAAACATATACATTTCATAAAGATTCTAACAATGTGCGACGATACGCTCGCAGTTTGTAGTCCAGCTCCATTCAGTGATGATGTAGAGGTTATTAAACAACAGGCGATCGATTATCCCATACAAATCACTCTGGTAGCGATTTCTGGGAACGGTAAGCCGTGCGCTCCGTTGTACTCATAGTTCGATGAATGAAGGCATCCGTGTAAGTTCTCAAATTTTCAAATGAAAACTGCCAAAAAAGGTTTTTAGTTATAATCTAAGAAATTATCGATTTTTAAATTTTATGAAAATTTTTTCGAAAAATTTGGGTTTTTTGTTTTTGTTTTTGATTAATTGATTGTTCGGCAAAAATGTCAAAAATCGAAAATTTAGGTATTTTTTCTTGGGATGAAAAAAAAAAAACTTTATCCGCCCGGCTAAGCGAAACTTGTGCTTTTTCGGTTTATTGATTTAAACCTTTGATTTACTGGAAAAACTTGAAAAAATCAATACTTTTATCACTGCGATCTGGTCTTCCACTTTAAACCTCGCGCTCCATTGAGAATCGCGGACAACGCATCGCGGGAAAGCCGTGTACTCCACACGGACAAGAATACAATTAGATTTACAACTAAAGTGTGACGAGCCGCGACGCGACACAACGCGCCGGAAATCTACCCCAGATATGGTCTGGCCTAGATCGGAAAAAACTCTTCCATTTCAATTTTATTATGAGGGAAGCCAGAAATCTTTGTTTTTATTTTATGCGATTTTGCTCTAAATTATCGATTTTTTGGAAAAAGTTTGAAAATTCCATAATTTTTTAATGATTATTGGAACTAAAAATTAAAATTTTCACAATGCTCAAAAACAAAAATTACTGATGTTAGATAAAAAAAACACGGCATGCAATTTCTAGACCACCGAAACTATCAAAAACCTCTTCCAGTGACTCGTCCGGTCCGTCTCTACGCAGACGGTGTCTACGATATGTTCCGCTACGGCCACGCGAATCAATTCCTGCAGATCAAACAACCTCTTCCGAATGTCTACCTTATTGTTGGCGGTGAGTTCGGCCCGCGCAATTCAAAATTTTTAATTTAAAAAAAAAACGATTTTGTCCAGTATGGTCCGAAGAGTCTATGAAGAATAAGGGGAGAACTGCAGGGCAAAGGAGAGCGGTTCGAGGCGATTCGGCATATTGTGCCGGTACGTCGACGAGGTGTATCAATGAGGCGTCGCCGTGGATATCTCCGATACCGTTTTTTGAAGGAGGGAGGTAAATTGCGCGTGAGATTCGGTGTTCGCACAGTTTTATGTCCAAGAACGAAGGAAATTTTATACCTAAATTTCGGAGAAAAATCATCAGTATAAATTATTGCCTTTTTTAAACGTCACTCACAAAATCGATAATAAAAGTTTGAAAATCACAGTCAATTTTTATTTTCAAAATTTCGTTGTTCTATCACGGGAACGCAAATTTCTCAGCATGCGTACTACACAACACATTTGACGCGCAAAATATCTCGTAGCGAAAACTACAGTAATTTGTTTATTGACACTGTAGCGCGCTACTGTCGATTTACGGGCTCTATTTTAAGCTCTTTCTATCGATACATATAGGATACATATTGATCCCGTAAACAGACAGCGCGCTACAGTAGTCAATTAATGAGTCACTGTAGTGGTCTTTCACTGCTACAAGATATTTTGCAGCCTCAGACATGTTGCGCAATAGCATCCTCAGAATTTTCTGTACCCCGTAACAAAACTTCGAGTTTTTCGAAACAAAAAGTTTAATTTAAAAAACCTCTAATCTTCGAGATATTCGAGTATTGATCTATTGATTTTTCGATAAATATTTATTTTTTTTTTACGATATTCGAAACAATTATCGAAATTTCAGAACTAACAAAAAACATTTGCGGAGGAAAATCGATAACATTTTCAAAGTATATTTTGTGTCCATAAAATTGATTTTTCCGTAAATTTAATTTGTTTGATTTTCGGGTTGGGTTCGTATTCCTAATTTCGGTAATTTTGAGTCGATAATTTTTTGTTTTTTTTTTTCAATTGAAACTTTTATTGATCAAGTTTCTGGCCAGTGCTCTTATAAATTGAAATGAGAAGATTTGGCCGAACCAGACCATTCTGGCTCGGACATGTCTGGGGTAGAATTACGGCGCGCGCGTCGCGCCTCGATCCTTTTAGCTTGTAAAACTACATGTATTTGTCCGTGTGGAGTACACGACTTTGCGTTGTCGAGCAGGTGATTGTCAGATGGAGCGCGTACAATGCTATGAGGAAAGCCAGAACCCCGTGATTGATTAGTTTTTGACTTAAAAACCTGATTTGAAAGAAAATATCGGTAATTTTTCGGATTTTTAACAAGAAAGGTCTTTATTTCCGGAAACTTTCATTTGATAATTATTTATTTATTGGTTTCTCGGAAAAATTTGCCGAAATCTATCGATAGTCGGACAATTGGACGAAAAGTCGAAAAAAAAATTCTAGGCCACGAATTTCCTCTTCCAGGTTGACTTTATGTCACACGACGCTCTGCCATACCAAGGTACCGCCGGAGAAGACATCTACGAGAAGCACGGCACTGCTGGCATGTTCCAGGAGACGCAGAGAAGCGAAGGAATATCGGCGAGCGATTAGATTTGTCGAGATTATGTCAGCGACTACGACACGTATGTCAGAAGAAATTTGCAGGTGAGAGGATATTCGGCCACCGATTGGAACGTTGGCTTTTTTACAGTGAGCCTGGCCTAGAAAGGGGTGGCCTAGAAACAAGTGGTGGCCTAGCAAGACTCTTCCATTTTTTTCAGACCAGCAAATATAGTCTGCAAGACACCGTAGTGGTGAATAAAAGAATTGGGCCGTGGCCTGCTGCAAACGTGGAAAACGTTTTGAATTTATTGATTGAAAGAATCTTGACGACCATTTGCCATCGTGATCTTCAGCGAAACCGTTCGAACAACAAAAGGGCCGATGAAAATGTGGAAAATAGGGAGAATATTGAGTTTTTAAAGAAAATTCGAGTAAATTATGGGAAGAAAAATTATACTCGTGAAAGTTAACTGAATTTATGCAATTTATTTTTTGAAATTCTCAATTTTTTTGGAAAATTTTTTTTTCTTAGGGCTTAGTCGAACATTTGGCTTTGTTTTAGGATTAAGGCTCATGCTTAGGCTAAGGCTTAGACAAAAACTTAAGCTTAGGCTTAGGCTTTTGATTAGGCTTAGGATTCAGGAGTCGGTGTCTTTCACTTAGGTTTGGCGTCATTGGCGAGCGTTAGCTCGCTATTTAGGCTTGGGTTAATTAGGCTTAGGCTTAGGCCTAGATTTAAACTTTTAGGCTTAGGGTTAGAATCACGCTGGCTAGGGGAAAAAAGAGAAATTCCAAAAATTCCAGGTTAAACGTAAAAAGGACAAAAAGGTACATCCCGAAGTCGGGTCAAAAAATAAAGTGATGAAATGTTCGGGATACATGAATGAATATTTCTGAGTCTCGCGGATTTATTTTCATAATCATATTCTGAACGTATTATTGACTCGTCGTGTGGGACATTTCAATGGATTTTCCATAGAAATCTCTGTAGAATTCCGCCATCGGCCAACGATTCTTCACAAGAGCCAAACTCGGCGAGTCGGTCAATGTTTGAGCTCGTCTGAAGAGTTTCAAAATATATGAATTCATTTATCTTGCAAACCTTTCACCGTTTGTGTTCAGTAAAAAGTCCGTCGGGGCAGATTTCCGTATCATCAGACGATTTGCATGTATACAATCCACATGAGGTTTTGTTCGCCTTTAGAATTTCTCCCAGTTGCCTGGAACGTTAGTTTTTCTGAATTTTTTGAAAGGTATAGAGATAGCAACAAAAAAAAAAATATACCCAAATAATGAGCTATTTAATCTAGGGGCTTTATTACAAATACTTTTCTAAGAACGTCTTGGTCTTGATAAATGCGTGCTTTAAGAAAAAAAAAAGTCAAAAATAATAGCGAGTCCTCAGATGTCGGGCGTTGTACTTATTAAACTCGGGGTCAATAAGTTCCGGGTCAAAATTCATAACTTTTGCGTAGCAAATCGATTTCCTTAAATGTGGGACTTTATGTTATCAAACATGGTCTTTTATTTGACGGCACTTTCAAAAAGTTTTGCCCACTCCATGTACCCAAGCTCGGATCCACTTTTTTCAGGCGTATGCCCGATCTCGCATTTTCTTTGTAACTTTCAATTGAGACTTTTGTGCGGATTTTGATTAATTAAATATACAATGTAAGAATACAATAAAAATTTGAGAAAAAATTCGCTCAAAAAAACAATTTTTTTGATCGGCAAAAAACTTAACCCTCGAAAAAAATTTTGTCGCCCAAATCTCTAGGTTTTATGGAATGATGCAAACAATTCTGAACAATTATTTAACACATAAAAGTTTTTTGGATTTAAGGCGTCACACACAAGCGGCAATGGAAAAAATGATTTTTTAGTGAATTTTTTGAAATTTTTGAGAAATTCTCGTCTAAATATTAAATTCTCAAATGTTTTGTGTGTCGAAAAATTGTTCAGAATTTTGCATAATTAGTCTCCTGTACAAAAATCCAGAAATTCCGACAAAAATTTCTCCGAGGATGTTGACGAACCTAAAAAATTTGTTTTTTTGAAGGAATTTTTTCTCTTTATTGTATTCTTACATGTATACTTAATAATTCAAAATCCGCACATAAGTATCAATTTACAGTTTCAAATAAGCAAGATCGGGCATACGCCTGCATAAAAAAGGATCCGTGCTAGGGTACACGGATTGGTCAAAATTTTGAAAGTGCCGTCAAAGACCATGATAGATAACATAAATTCCCACGACTTTTAGAAAAATCGATCAGCCACCCGAAAAAAGTTATGAATTTTGACCATGGTATCGAACTTTTATCGTGTGCTACATGCTTGTCGCGAAATATACCTATTTACCTATACCTGTACCTATACCTGCTTCATCTTTCGATATACGCCGTTCAAATTGTGGAGCATCTTGTCCAAATCGTCGTATCCTCTTCCAACTCCCAGGTAGATTAGTTGTTGAATCTACAATTTTATATTTAATTATAAATTGTATATTTTTGTAATTTAAAAAAAAACCTTTCGAAATGCGGCTAAGTAATCAATAATATTGACCTTAATGCCATGGGTCCTCATGGAATTTTCTGCCCATGCACAGTGTAGGAGAGCTCTTCCACTCCGTTCCGATCGATCAGCACATTACTTAGATAAATTAAGTCCCTGTGCTCGAATTCAAGAGCTGCTTCAGCTGCAACCATTGAGAGACCACGAGCTGGTGAATGATGGAAAATAGTTCATCTTCACTTTCAAGGACAAAATCTGCCAGCGGGGAAAGATTCCACCATTTGCCGAGCCGGCTGAAAAGGATAAAGTTTTGATGTTCCTGAAGAATAAACATCTGGCCTCAAATGTTCGGATTCATTGAGCTTCTCGTAGGCATCCCAAGCTCTCAGTAATCCCTTAGGATTTTCCCCTATGACTATTTGGGCTGAAATCATTTCGATAAAATTCGGCATAGAATTCCAAGAATTTGGGTCTCGAGTATCACGCCGACAGTGATTTCCTTGCCCATCACAATCACCTCTGACAAAACGGCGTGGGTTGTTGGAATCTCCACGGATTGATTTCCATAGAAATGCACGTTGTTTTCGAATGGCAAAACCTTTGTTAGCAACCGGTCTACCATTCGGCGCCAGACAGCTGAGAAGACTTCACCGTAGGCTCCTTCGCCGAGCTTCCTTCACTTTTCGAGCATCTAGCGCCGACGTTGATAGGCTACCCCATGGTTTTGCTTCTTTTTGGGCCAACAACACGGCGAAGTTGTGCCATGGACGGATCTTTTTTGTGAAATGTGATACTGCCAATGGGGATATTTCTAGAATCAGGATGAGCTGACCGAGCACTTGGAGCTCATTTGTTCCAGTTCAGCAAGCATGCACAGTTCGAAAGGATGGACAGTCCGAAAATGACTTTTCTGAAATTGTCATAGTTCATTGTGAAAATTCGTTTCGGCTAAAAATGCAAATGCATTATGTTTCTGAAACTCACCAGTTGACTCTGAAATCGTCGTTCGTTGTCATGTCGAGTGCCAAGAACGGTGGTGGTCACCACTGCCGTCTTTGTGAACCGCATCCAAATCGACAAATGTCTCGGGAGTTAACTATAGAAATGAAGTTTTGAAAAATTAAAAAACTCACAATTATTGAAACACGTTATTAGGCCAATAACTTCACACGTGAATTAATACATTCATGTATTCGATTTTCTCTGACTGTTATCACGGGTTTCTGGCTCACGGTAGTTCAGCCACGGTCCCAGCACAGAAAATAGATGTCACGTTCATGACGAATAATCAGTCTGAAAGCTATATTGGCTGCTATCTCGAAAACTCTCTAAAAACGCGTTTTGAGAAATTATATTATGATTTTTTGGAGAAAATCAGAAATTATTGATTTTTTTGAAGGAGAAAATGGGAAATTTTTCATTTTTATTGGGGAAAATCAGAAATTATTGGTTTTTGGAGAAAATCAAAAATTACGATTGGTAATTTGAAGCAGGGGTGGGCAGCAATTGCCGTTCGGCAAATACGCAGATTACCGGCCGATTTTCCGGGTTTTCATTTACGGCAGTTTGCCGGTTTTGCGTTCAATTTGCCCGACATTTTTCAATTTCTCCGGCAATTTGCCGGTTTGGCGATTTGCCCGAATTTTTCAATTTAACCGGCAATTTGGCGGTTTGCCAATTGGCCCGACATTTTTCATTTTCGGCAATTTGCCGGTTTGCCGATTTGCCTTACCCGAAATTTTCAATTTCGTCAATTTGCCGGTAATCGGTGCCGATTTCCAAAAATTTTCATTTTCGGCAATTTGCCGGTTTGCCGATTTGCCGGAAATTTTCATTTTCGGCAATTTGCCGGTTTGCCGATTGCCCGAAATTTTTCGATTTCGGCAATTTGTCGGTTTGCCGATTTGCTACGGAATATTTCATTTTCGGCAATTTGCCGGTTTGGCGATTTGCCCGACGTTTTTCAATTTCGGCAATTTGCCGGCGTTTTCCGATAATTTGTCGAAATTTTTCATTTTCGGCAGTTTGCCGGTTTGCAGATCTGCCCATTTAAGTTCGGAACTCAGATTGGCGGTTTGCCGATTAGCCCGAAATTATTTAAACGGCAATTTGCCGGTTCGCTTTAGCCAGAAATTTTTCAATTTCAGCAATTACAATAGAGGTCGATTTACCATTCAGCTGCCGGAAGTCTTCAGAAGGAATTTTTTATAATAAGGAACCACTAAACACAGCGTTTTGAAACTTTTCCACGTTTTTTAAAGATGATTTCATAGAATTTGCTTACTTGGTTTGTCGAATTGCCAGAAGTTTTTCAATTACAAGTTGGCAATTTCCGGAATTTTTAATTATGGCAATTTGACGGTTTGCCGAATTATTTGCCAGAAATTTTTCAAATTCGCCAAATTGCCGGTTTTCCGATGGAACTTTTTCTCGGCAATTTGTCGATTTGCCGGAGTCTTAAATTTTTCCAATCAATTTGCCGATTTGCCGGAAAAAAAATTGTTTCCCGCCCACCCATCAGTTGATGAATTCATCGTTCTTTTGTGTGTTTGTACTCCCATCAATCTTAAACTCGACCCGGACTGCAAAGGCATATTTACAGTTTTCTCTTCTGGTAGTGAAATGGTGGTCTTAAGTTTCGAAGACTATGCCCACGTAATTTCTAAAGTATTTATGTTTTGCAATTGTTTATCAATGACCCTAAAAAACAGACAAAGCATTTCCGCGTGGCAAATTATCAAGTAACTTGCCTAGGCGAATAGTACTGATGTTATAATTTTTTTTTAGAATCAGTTTGGAATTTCGAATTTTTCTGAAACAACCGCCGGCAAAATGAATTACTGTGAGCACTTTTGATTGTTCCCCGGTTTTCTTGTAGATTTTTGTGCAAAAAATTTCGACTTTCAGCGGTAAAAAAAATACAAAAAGGTCGAAGAAGAAGGAAACGAGCAACACTGCTTCTTGGTCAGGAGGCCCCAAAACCAGGGGGAGCAAAACAAAAAACCAAAACCATCGAAAGGAAATGCGACAGGGGTCGCGGCGAACCGGAATTGACTGCACATCGAAAAAAACCAAGACAGCAAAAAAAGTGAGACAGAAGAGAGATATAAATGCACCGGAGTTCAATTTTAAGCTCGTATTATAGATATACGTCATTGTATCAGGGGTGGGCGGCAATTGCGTCGTTCGGCAAATTGACCGCCAAATTCGGCATATCAATTGCCGGTTTGTCGATTTGCCGGAAATTTTCAATTCCGGCAATTTGCTGGTTTGCCGATTTGCCGGAAGTTTTAGGGTCATGTTTTTCGGTCAAATCAGTTTTGCCGGAAATTTGGTTATATAAGAGACGGACTGTCTTTTTGAGTTGTTCCCGTTTTTTTACATATTTTCATAGAAATTCATCGAGATAATTTGCCGAAATTTTTCGGCAAATTGCCGTTTTGGCAATTTACCGATTTGCCGGAAATTTCCATTCCGACAATTTGATATGCCAATTCGCCGGAAAAAATCGTTTGCCGCCCACCCCTGAATATAGAGCCCTTTTTAGTCTCATGTCACCTCGATCACGTGAAATGCTGTCAGACAGCAAAAAGACGACCGTTGATGATGATTCAGCAGTTCCAAGAACAACAAATGTCGCTGGAGCAGTCACTTCTACGATTCCTGCTCTCACCTCTGAAAACGTCCCGTTCTAATTCAGCCACCCAAAGACCTTATATGGTGCGGGACGAAAGCCAAAACGGTGCTCCGGAACTTGACGGATCTGGCAGCGTTTCACTTTCACTCAAGAGCTCACTGACTGGAGGTGATAAGTGGCTTGGAGAAGCCGTGGCAAGGAATTGGATTCGCTCGGTTAGCATCCTTTTTTTATTGGAGCGGCGGCGTAAAAATCGTGCCAGAGTTGCGAGAGGGGGCGTGTTTTTTAGTTTTTCTGTTGTTGGTGGGGACTTATTATTATTAGGTTGGTGATTTTATTTTCACTGGTGGAAATCAGCTAATAAAACTAAAAAATAACTTCGGGATATGCAAATAAAAACCCAACTTTAAAAAGCGAACTCCGATCAGCAGTTTGCTCGGCCCACTATTCAACCAATCCAATTGGTTCGTTGAAATTCTTGGGAACTCATTGTTAGAGGATAGAATTCAAACGAAAGATTAGCAAGTTCACTGGTTATTGCTTTCATTAGAATATCATTGCTTATATATATATTTCAATAAAAAAATAGTGTACGTCATCAATGGGCGGAGCCTCTTCCATCGTGGAGACCCATCGTGGTGAGACACGTGGTGGTGAGACCCATCGTGGTGAGACTTCGTGGTGAGACGTGGTGGATTCAGACCCGTAAATAGAGACCTGCGCATCGAGGTGAGACCCCTCCTGGTGAGACCCATCGTGGTGAGACCCATCGAGGAGAGACCCTTCGTGGTGAGACCCATCGTGGTGAGTCCCCCATTAATTTTGGCGTGAAATTCAAATTTTCTAAGATCGATTTGGCTTTTTTTCGTTTAACGAAAAATCTGGAAAGGAAATTCTAGCATTTTTTTAGAATAATCTGATGAGGAAATTTCTTACTTTCCAGCGAAATCTGGAAACTCCAAGGATTTCCTAACATAATCTGGAGACTTCTAAATAAGATCAGGAAATTTCTAGAACTTTTTTATAATCGTCTGAAAACATCTTTCTAGAGTATACTAAAAACTTCTAGAATTTTAAAATTCCGCGAAGATCGAGGAAGAGATTTGCCAAGTTCAATTAATGTGGAGCCAGACGGAGCACGCGCTTTGCGCGCGCGAAACGGCTGGTTTTAGATATTTTGTAGTATTTTTCAAATCTTAAAAGAGCAGAGGTGAAAAAAAAACGAACTGCAATAACAGAAAATCGATGTCGAGAAGGACTGTAAAACCTGGAAATCCAACTCGCGCCAAAATTTAACCAATCGGAAGACTTTCCTGCCTTGGACTTCAATCTCGTGAAACTTGGCAAAGACTAGGTGAACATCAGTCTTTTGCGTAGATGTTCCATTGGGAAGAAATGTTCATCTAGGTCAAGCTCCGGTCACACGGAAGATACATTAATGTTCGACAAGCGAATCACTCACATTGATCTACTCGGCGGGCCTGCGATGAAACCATCGAATTCTTCCCTATAAAAAAGGCAGAAGATTATACAGAATTCCGTATGGTCAGATGTGGATCAATCCCTTAACCGCCGTGTCGAGTATGTCAATGACGATGTGTACCGATTTGCAATTGAAGGAGTGCCCCACGGATTCTCCAACTCGATCAACTGCAATGTGACTGTTATCAGCATTTGGAAGGACGCTGTGCCTTTGAAACAAGCAATCGCCTCAGAGAGGCACTTGGTCTACACTACTTCTTGCTTCTGAAAGCACCCCCTGACGAATGCGACCGATGATCGTCTCACCACGTGGAGCTTGTAGGACGAGCTGGCTACTTTTTGGCACTTGCGGTTGCAGTCAACACGATTGATGCAAAGCTGGCCGAACCTGTATTGCGGATATTGTCCAATCGATTAGCTCCCAGAGACCAAGAGCCGTGGATTCTTGTCAGTATCTGCTCCCTGTGCATTTCGTTGCTCTACTTCATCAAGGAATTGGTTTTTGAGTTCTTGTAAAATGAGAGAATAATTCTCTAATTTACAGAAGAAAGGGACAAAACAATCAGAAGGGGAAGCCAACACTGAGCAACAAATACGTCTACAACAAGTCGGTTGAGTTGACGAAGCAATTAACCGTTCTCCTTCTAGAAGCCAGGAGAGTGTGATGGGACCTGGATAGTTCTTCTCCATTATGAATATGTGAAAAGCATTTGAATTGATCTGGGTTTGGAAATGAAGAATTTTATAATGGATTCTTTCCGAAATCTTCCTTCCTGCCTGCTGTTAACTCTGCGGCTTGATCTGCAAAAAAAGCGGTAATATCTCCCCCAGGAAGACGTCAGCACACTCTTAACCATGCCTTAGTTGAAACGTTTCTCGGTATTCTCCCGCATTTTTCGAAGATCACACCAAAATGGGATACTTTGACAACACGTGCCTGCCATCGCTTCCTGAACGGGGATTTTGTTAGAAAATTCGTGGAAAATAGGAAGAATCATTTCGAGAAAATGGAATTATTGACTCTTTTCTGATTTTCTCAAACAAAAAAAAATTAAAATCGAATTGATTTCTGGCTTACCTTACCTAAATAGAATTGAAATGGAAGAGTTTGCCGAACTAGGCCATTTGTGGCGGCCTGGGGTATATTTGCGGCGAGTTGCGTGTCGTCGCGGCTCGTTGTTGTAAATCTAAATGTGATTCGACCGTGTGGAGTACACGACTTTCACATTCGTTGTGCCGCGGGCGATTGTCAAAGGAGCGCGAAAAATACAATGAGGAAATCGGCCAAAACCCCGTGTATTGATTTTTCGAAAATTTCGGAAAAATCTGCTAATTTTATTCAATATTTACATTTGTCCTAATTTCTTAGAAATGTTCAAAAAATCTGATTTTCTTTTTCCCGATGAATTTTTGTAAAATAGTTGCTATCCGTATTTCTCGAAAAGAATCGATTATTTTTTTCCGGTTTCCTGGTAAGCTAATCACTTCAGAAAAAAGAATTAAGTTAATATATACTTATAAAAGTCGTAAAAGGTTGGAAATATAAAGTATTTAAATCAGAACAGCGATTACTGACTGAAGCATCTCAACTACCAGGCAAGTTCTTCTTATCGAACTCGACAAATGAAACGAAGAGGTCGGAGCTATAATTGTGCCGATCATTTTCCGGGCGCCCGTCTCTTCGAACTCGGATACGGTAGCCTGCCCGACGTATGTGAAATCGGCCATTAGCACTCAATCGGCAAGCGCCGATTGATGCTCCGTGGCCGACGATAGGGCTTCCTGAAAGAAAATCGATAATTTGCGGTGTGTTTTTATTGATTTTTATGTGAAAATTGGCAAATTATTGATTTTTCGGCTAAATCATAAATTACTGATGTTCTAACCCGTTAAAATCAGTAATTTATTGATTTCTTCGGCTAAATCAGGAATTATCGATTTTTCAGTGAAAATCTGAAAATGATTGAACATTTTACAGCTCTGCGAAAATCAGAAATTAGTTTCGCAAAAATTCACCTTCATATTTCTAAATCGCCACGCAGGGTCTTTCCGACACGTGGCACACACGCGTCATCTCCACATCCTTCGCGGGGTAGTGTGTTCTGAAAAAAAAGCCATTCGGTAATTTTTATAGGTCTCGCACCGGATTGCCGCCACCGGTTATCTTCATTTTTCCAACTAAAGCGCCAACACCGGCGCCGGCATCTTCTTATTTTTCCACGTAGCCGGCGCCAGCCGCGCCAAAACTATCTTCAAGCGGCGCCGGGCAGCTTTTTATTTTCCCCATAGCGTGCCAGCGGCGCCGCCGGCATCTTTTTATTTTTCCACGTAGCACGTCGGCGCCGGCAGCCGCGCAAACTATTTTCGCCGCCGCCGGTTTACTTTTCCACGTAGCGCGCCAGCGGCGCCGCCGGCAAGTTTTAATTTTCTTCCACGTAGCGCATAGGCTAGCGCCGCCCCCGGCATCTTTTCATTTTTCCACGTAGCGCGCCAGCGCCGGCAGCCTCGCAAACTATTTCACTGTTCGCCCGCCGGCATCTTTTTATTTTCCACATAGCGTGCCAGCGGCGCCGCCAGCATATTTTTATTTTTCCACGTAGCGCGCTAGCGCCGGCGCCGGAATTCATTCTTTTTTCCACATAGCGTGCCAGCGGCGCCGCCGGCATCTTTTTATTTTTCCACCTAGGGCGCTAGTGCCGGCCGCATTTTCATCTTTTCATGCAGTGACCGCCAGCGCGGCCGCCGGCCTCTTCTCATTATCCATGTCGCGCTAGCGCCGGCGGCAGCGCAAACGATTCTTCGCCGCCCCCGGCGCGTTTTCCTTTATTAATTAGTGCGCCAGCGCCGCCGCCGGCATCTTTTGATTTTTCCGCAGTGCGCCAGCGCGGCAACGGCGCAATTCTAATCTCGGTCTTTTTTGACCGATACCTGAAAACGCCTAGGAATATAGTGGGGCCAAATCTACAAGCGGAAATTTCTCAGCTAGTTTGTCGGTTTCCCAGATTCCAGGAGGCTTATCACAAAGATAAAGTGCCTCACAAAGGCCACCGTCCGCCTTCACTTTCATTCCTCTATCCTCAATAATCGTCGAAGCTGTCTCAATTGTCCGTCGAACGGCGAGGCAAACGTATGCGAGATTGCCATTTTCGAACCCATATTTTGCACTCTTTCGCCTGTTGCCGACCGCGCACGCTGAGCATCGAATTATCCGTCGTGAGACCGTCGGCTCCGTCGAGTAAATTACGCCAATTTCGATTGATATTGTTGTCTCCTCGCTGCAACGCAAAAAATCAATAATTTCTGATTTCCAACGTAAAATCAATAAGTGTTCTGATTTTTGTTGAAAAATCATTACTACCGATTTTAACTGAAAAATCAATAAATGCTGATTTTCCTTTTTTTTGCACGTACAAAAGTCGATAATTTCCAGATTCTCATCGAAAAATCAATAATTTGTGATTTTCGCCAACAAAAAATCAATAATTCAGATTTTTACCGAAAACACAAATTGATAATTTCAGATTTTCACCGAAAAATCAGAAATTATTGACTTTGGATAAAAATCAAAAATTTACTGATTTTCATCTAAAAATCAATAATTTCAACCATTCGCAGAAACATCGGTCATTTTTAATTTTCACCGTAGAATCAATAATTTCTGATTTTCACCAAAAATTATCAAATAATTTTAATTTTTTTTTCGAAAAATCAATATTTTCTAAGTGCTTTTTATCGGAAAATCAATAATTTCCGATTTTCACCAAAAAATCAATAATTTCAGATTTTTTTCGCATAAAAAAGCTCTGTAAATAATTTACGAAGTTGACGAGAAATCAATAATTTGCTGATTTTATTCTCACAGAAAATCAATAAATTTTTTTTGTTTTTCGTTGTTTTTTTTTTCTAAAAATCAGCGTTTTTAATTTCCCCAAAAAATCAGTAATTTTTTAGGGATTTTATTTTTCGAAAAATCATTTCAGATACCGAAAAAATCAATAAATTCAAAAAAAAGTATTTCATTTTTTTGAATTCTTCAAAGTACCGTTCCACGTGTCAGAACAATCCAAATTTTCCGTGGATAAGTTATCGGCATCCTATCGATATCGGTTTTAGCTGAAGAAAAAACTTAAACAATTGGAAAATTGTGTCCTCCTGTCGGACAGGTGCTCGGTGCTCTCCCATCACGGCTTGTCTACAAAAAATGCGGGATTCTTCGTTCTTAACCATACGAAATCAGTTGACTCTGCGTCTCTCTTCCCGCATTTTTTGTAGATCAACGTAGATCAGACCAAAATGAGGAGCACACTGAATGAAGACACCATGATTTTTCGAAACAAAAGAAATTCTCAAAAAGTGACGTCAAGAGGTATATAGGTAAATCGGATACTTGGTATCAAATGACGGAAAAACAAACGAAAGTTGCAAAATTTTTAGATGAAATTAATTAGACTTTGGCGGGAAAAACAGATCAAATTTACATTAAAATACCGGAAAAATAGGGGGAAAAAAGCCTAATTATTGCCTAAAAAATTCAGGATTAAACGGGTTGTACTTTTTCTTCTTTCCACGCTTCTCCTCCGATTCCTCGGCGGCTTTTCGTTTCTGCAGCAGCTCAATTTCCTCGGGATGTAGCAAAGCATGGGCTCTCGCTTTCTCGACTCGTTCCCGGCAGTTTCTAGACGCTTCTCGCATGCTCGCCAGGCCGTCGTTCTCGATCGTATACCTCTTCGAGTTGACGTTCTTCAGAGCTATCACGGTGGCGGTACTGCTTTTTTGGAAGAAAAATTGGGGGGTTTTTTTGTGGTTTGTAGTGGGCACCCTATATGCGCGAAAAAAGAGTCGAATTTTTTTGTAGATCAACGTATGGTGAAGAACGTACTGGCGTCATATAATTTTGGGCGAAATTCCCGCATTTTTGGTAGATCAAACCGTAGTTGAAAATTTTTCGGGAAAAAAAATTACGAATTTCTGGCTTTTCTCAAATTGAAATGGAAGAGTTTTTTCCGAAATTGGCCATTTTGGCTCGGCCATATCTGAGCTAGATTTACGACACGTTGCGTGTCGCTTCGCGGCTCGATTTTAGTTGTAAAACTAAATGTGATGTCCGTGTGGAGTACACGACTTTCCCACGCGTTGTCCAGGCGATTGTCAATGGAGGGCGAAAAATTCAATGAGGAAGGCCTGAACCCCGTGGTAGTCCGATGCACAAAACTGATTTTGTTTTTGAATTCTTGGGATTGAAGAAATTTTGCCGATAAAGCCGATAACTCAAAAAATTCTAAAAAATTTGGATAATGTCTGGAGGAAAAACCCCAATGCTGAAAATTTCGAATAATTTAAAATTTTTGCGCATGGCCGAAAAGAATAAAACTCGGCCAATTCTTTGGCGGCCATGATGCAAGACACCATATTTGACGCACGCAAAAAAAGGTGTTTTTGGATGTTATTTTCTTTTTCCGCCAGAATCTTTAATAATGGTATCTATTCCAGTGACAAAAAATCATAACCTGTTGCAAAAAACGGATGTTATTTTTTTCGAAAAATTCAATTTTGCGCGTCAGATGTGATGCTTTAAGCTCTGTGGCCGCCCAAAAAGAGAACACTCGGCCCACCAATTTTTCGATGACTCCATTGACAATAGCCTGCTGGACACCGGGTGGAAAAGTTTCGTGTACTCCCATGGGGCACGGACAAATACATTTAGTTACCATTTACAACTAAACGAGCCGCGACGCGACACGCAACGCGCCGTAAATCTACCGTGGCCAGATGTGGTATGGCCTGGCCTAGTTCGGCAGGAAGGTTTCTCTTCCATTTCAATTTATGAGGGAGGCCAGAAATCCGTGGCCGAAAAAGAGAAAACTCGGTCTCCATCCGATTTTTTTTTCTGACGGCCATGACAAGTTTGCGCGACAATAATACACTTCATCATATTTGGCAAAAAATTTTTTAAAGTTTTTTCGAATTTTTTTGATTTCCGAGCAGAAAAAAAAATTGTCTGAGAAATTTATGTGGCCGCGGTAAACTTCGGCCACCGATTTTCGAAGATTTTGACCGTGTTTGAGGGAAAAAGCAATTTGACGCGCAAATTTTCAAAAAAAAAAAAGCCCAAAACACTTTTCTTCTTCTTCTTGTCTTTTGTTAGATGCCGTTTCTGCCTTTTCTTCACTATCACTATCCTCTCGTTTCCGCCTTCCCCTCCTCTTCCAGCTTCCGCTCCGCTCAAACACGGCAGAGCATCGCGCGCTTTTCGTCGATCAAGTGTCGGCGGCTTTACGCAGCGGAGCTCCTCGTACCACTCGTTTTTGTTGTTTAAATCGTATTATCCGCGAAATACACCTGAATTCACATTTACGTCGACTCCCATTCCTTCTTCTCGGCCGCTTTTTCCGCTTCGTAGCCGCGGTTTCCGGATCCATAGTTTTTTCGTTCTTCACGTTCGAGATCCTACAAAATATCATTTTTTTTGGAGAGAAATTTAGTTTTTTTTTGGAGAAAATTATCGATTTTCTGGAAAAAATTATCGATTTTTCGGGGAAAGATTAATTACGATTATTTTAAAAGAAAATTATCGATTTATATTGGGAAAAAAATCACTGATTTTCTGGAAAAAATTATCGTTTTTTGTCGGAGAAAGAATATTAAATTTTTTGCAGAAAATTATCGTTTGTTTTTTTGAAAAAAATTTCCGATTTTTCAGAGAAAACTTTTTTATAAAATTATGGATTTTTAAATATAAAATTAACGGTTTTTAGACGCTGGAGTCTTCAAAATTGCGAGATCGATTTTTTTCTGGAGAAAAACATATTGTTTTTTTTTGGAGAAAAATTTCGATTTTTTTGAAGACATTTATCTTGGTGATTGTTGATAAAATTATCGATTCTTCGGGGACAAGTATAGCTTTTTTTGGATGAAATTATCGATTTTTTGGGAGAAAAAATACCGATTTTTTCCGTTTGGATCAAATTACCGTTTGAAAAACAAGTATCACAATTTTTTGAAGAAAATTGTCAATTTTTTTGGTAATAAATATAGTTGTTTTGGATAAAACGAGATTTTTCAGCTAAAAATATAGATTTTTGCTTTTAGATAAAATTTTGATTTAAAAAGAAAATTATCGATTTTATGGGTAAAAAATAACGTTTTTTGGATAAAATTATGGGTTGATTTCTTCGGGGTTCGTATAAATATTGATTCTGTCGGGGAAAATATTTTTTGGATAAAATTATCGATTTTTTGGAAAAAATTATGGGTTTTTTTTGAAGAATGATTTTATTGGTGAACAATATCGAATTTTTTCGGGAAAATATCGATTTTTCGGAGAAAATTTCTCATCGATTTTTAGAAATTATCGATTTTAAATTGGGTAACAATCTCGATTTTTTGAAGCAATTCTGAGCCAAATTTTGAATTTTCGAGCGGCAATTTTTGCACAAAGCATTATAGGTTTGACGCACAAAATTCGAATTCTTCAGAATTAGTTTCACAAAAAATTCTATCACCTAAAACTAGTTCACATGTCCCGTTTCATCTGAAACGCTGACATTTTTTGGCTTCTCCACGCTGAGCTCGAACCAGCTCCTCCACTGAACATCGTCTCCATTCGTTCATCGGCTCGGGCTCTCGACTGCATAGCCTCAGGCGCCGCGCCTCGTTTTCCGCCTGAATTTGCCTGTCGAGCAGACGCTGCGCATCTTCGGCGGCTTTTCGCTCGTCTCGGCGAACCCGTTGTTGGATTTTGTCCGAACGTGCCATGATTTGCCAAATGATGGAGAATGTATCATTCATCTGGAAGCGGAAATTATAGAGCAAACCAGTTGATAATTGTGCTCGAAATTTGGGGAAGAAGCGCAACCAAAAAATCAATAATTACGTCCAAAAATCTATTTTATTCAGAAAAACCAGAAAGCGATTTTTTTTCCAAAAATAAATAATTTTCGTGCAAAAATCGATAATTTAGACCGCTTCTAAAAGTCTCAATTTTTCCAACAAAGAAAACAATCTCGAAAAACCGATGTTTACAGAAAAAACAAAAAGCAAAAATTCATAAAAATTAAAAAATTAAAAAAAAATCAATAATTTTTCTAAAAGCGATTTCTTTTTCTAAAAATCCTTGCGTTTAATTTTCTTCTGAAATCGATATTTTCCGTTGCTTTTGGTTTCGTGAAAAAAATCGTCTATTGAACATTTTGCTAAATTTCGAAAAAAAATCTTGAACGATGCACCATGATTTTGAAAATTCTGCTCTGGATCAATTTTTCGAGAAAATCGATTTTTGGAAACTATCATACAAAAATCGACTGCTAGTTGTGCTCGAGATTTGGCTCTGAGGAAAAATCAAAAATTTTCTTCTAAAAATCGATTTTTTATCCAAAAAATCAATAATTTCGTCGGACAAACCGATGTTTTCAGAATAATCAAAAAAAAAATTAAAAAATTAAAAAAAAAATTTCAATACTTTCTAAAATTTTGCGATATCTTTTCTAAAACTATTTAATTTTCTTCTAAAATCGATATTTTTGATTTTTTCGTGAAAAAAATCGTCAATGTTATTGAAATTTTTGCTTAATTTCGAAAAAAAATCTTGAAACTTCGATGCACCATGATTTTGAAAATTCTGCTCCGGAACAATTTTTCGAGAAAAATTTATCGATTTTTGGAAACTATCATACAAAAATCGACGGTAATTGTGTTCGAAATTTGGGAAGGAGGAAAAATCAATAATTTTTTTCTAAAAATCGATTTTTTTTCTACGCGAATCAATAATTTCGTAACCGATGTTTTCAGAATAATCAAAACAAATTTCAAAAATAATAAAAAATCAATAATTTTTTCTAAAATTTTGCAATTTTTTTCTAAAAATCGTTTAATCTTCCTCTAAAATCGATATTTTTCCGGATTTTTTCGTGAAAAAAATCATCAACTTTATTGAAATTTTGTCATACTAAATTTCGAAAAAAAATCTTGAAATTTTGATGCACCATGATTTTCAAAATTCTGCTCCGGACCAATTTTTCGAGAAAAATTATCGATTTTTGGAAATTAGCATACAAAATTCGATGTGCTCGAAATTTGGCTCTGGAAGGAGGAAAAATTAATAATTTTCTAAAAACCGATTTTTTTTCCAAAAAATCAATAATCACGTTCGGCTAATGGAAAACCGATGTCCTTTCAATCAAAACAATCTCAAAAATAATAAAATCACTAAATCAATAATTTTGTCTAAAATTTTGCAATTCTTTTTTCTATAAATCGTATTTTTCCGATTTTTTTCGTGAAAATAACTCGTCTTTTATTGAAAATTTTGCTTTTCGATAAAACGATGATTTTGATTTCGATGCACCATGATTTCGAAAATTCTGCTCCTGAGCAATTTTTCTTTAAGAAAATTACGATTTGTGGAAATCATCACACAAAAACCGATAATTTTGTGAAAAAATTCGGTTTCGCACCATGATTTCGAAAATTCTCAGAATTTTAGAAAATTTATCGATTTTGTGTAGAAATTCGAATTCCAGTGGAAAAATTTTCTTTGTATTTCTCAAAAAATGTTTGATTTAAAAAAAATCGATTTTATGATCTGAAATTCAGGCATTTTTGTAGGGCAAAGTAAAATGGCAAAATCGATGATTTCTCTGATGAGAATGGGAATTTTTGTCAAGAAAAATATAAAAAATTCTTAAACAATTAAAGTGTTGTCAAAAAATTGAAATTTTGCGGAAAAAAAATATATTTACAGATGAATTTTTTAGAAAAATTCTACAAAAAGAGGTTCCATCTAATATTATTTTGTCGCATTGGGAGTTTATATCACATAATTTTTTTTTGTTTCGGTTGCCGTGGAGAATGGGGGTTGCAAATACCAATATCACATTTTTCAGAGGAAAATCACAACAAATATAAGGAAAATTTAAAAAAGGCGCGGGGGGAAATTCACCAGATTATCGATATTTATGGATAATTTCCACGATTATTTTTATAGCAAAATTGATCCGGAGCAGACTTGGGATAAAGCAAATGTTGGAGGGGGAAAATGAACAAATTGATAAATTATAATATATTCGGGGCAAAAAATGGGAAATAATTAAATTGTCGGAACATATAAATGATTAATTGATTGAGGCCAATGGGATTGGTTTCATGTGAGCCAACGCTTCATTACAGACCACTTCCTACCGATGACGTAGCGGCCATGAGAATGCTCGACACGAGCAAGACGGTAGGTTCTAGAGGCGTTTATCTGGAAATTTTGTGAAAAAATGAAGAAAACAAGCTTTCTTCGCTGAAAATTCCAAGATTTTCGGTCGTTTTTTTTTTGCTAATTTTTTTTAAATTCGCCTTGAATTAAATTTCCAGATGTTCAGTAACACGTTTTTTTCTCCTTCAAAAATCGGTTTTTCAATTAATCAAATTCAGAGTATTAATAATTATTTTCCTCCACCAGAATTTGAATATTTTATCCACATTCTGAAACCGGCTCACAGAGCGGCTATTACTACGTGGCCTAGAAAAATCAAACGAACTCCGCCAATGATTTATCCCGTGGCGATTTTTGTGGGATATTTCGGAAACTTGACGAGAATGTTCTCGAATGGTCGGGGGTGCTACAGTTCCACCGTGGCGATTTTTGAGAATATGTTCCGTAGTTATGAAGGTGGCCGAGGGTTGTTTTCTTATTTTACGGCCACGTAATAAAAACCGATCTGTGGGCTCCTGAGCAGAATATCGAAACATATCATGGTGCATCGAAAATTTCAAAATTATCGATTTTTTTGTTGTAGCAAAATTTTCAATAAAATAAGAAATCATGGTGCATGGACAAACCAATTTTTTCCTTTTTTTCGAATTTAAAATAAAATTTAAAAAACAGTAAAATTCTTGAATTTTACTTTTTAAAAATATTTTTTTCAAATTCTGGCAGTTTTAAAATAATAAAAAACGTTTTTTTTTCCATTTTTTTCAATAAAGTTTTTTTATGCCATGATTAGTACTACTAATGTAAAATTTACAGGGTTTTCACAGATTTTCAATTTTGTTGATTGGCTTATTCGTTCTTCAAAAATTCTAAATTTTCAGGTTTTCTTTTCCATTCGCCTTTAATTTTTGGGAAAAAACAATGTTTTTAATTAATTTTTCAGAAGGACTTAAAAAATTGTGACAACTAAAATTGTTCAATTTTTTCCGCAAAAATAATTTTTCGGAAATCCGCGTTCAAATGTCCTACAAAAAACCCCTTACCACAGTAAGCCTAACCAACTGTGAGAGCTCTCTGTTCATCGACTAGGGCTCCGTCGAAAAGCCGCCCAAACTCTAGAGCCGACGCCGTATCGACGCGCACTCGAACCATCTGAAAAACCAAAAATGGAAGAGCTTCTAATTTTTCGTCCAAGGCAGGCCATTTGATCTACGTAGATCTAGAAAAATTGCGAGAAAGAAGAGACGCAGAGTTCTCAACGCTTTCGCATGATTAGGAGTGTGTTGACGTCACATTCGCAAAAAATTCCCGCATTTTTTGTAGATCAAACTGTAATGGGATGGGACCACGAGCAGTGTTAGGCTGTACCATTACGGTTTGAGCTACAAAAAATGCCGGAATTTCTTGCAGAGGTCAACACACTCCTAATCATGCGAAATCAGTTGAGAACTCTGCGCCTCTTTTTCTTGTCCTGCATTTTTGTAGATCAATGTATATAAGCCTCTCTCTCTCTCACCTGAAGTATCACCGCTTGCTCCAACACAATCAGAACATCACAAAACTTGCTGGCAATCGTTTCGCGGGTGTACACTTTCCGTGTGTTCTCACCACACCACATGCCCTCATCGTTTCCGATATGCTTCCCTTGTGGCTGCTGCACAGCCGTTGAGTCGTGCTCACATGGAATATCACCTCAGCCTCGGCGTCTGCAAAGTACGGAGCCCGTGTCTCTACGGGCAGCCACCTGTGTAATCATCGTGTCCTCGACCCACTTTGACCTCCCATCCGAGCTCCGAAGCTATTGCGCGGGGGCGGATGCGGTGGTGTTGGACAGGATCGATGCTCGATCCTCCGGCGATTGTCCTAATAGATCACATCGACTTTGTGGACTTCACGAGAACAAGTCTGATCTAAATGCCAAGTCACGGGGAAATTCTGCCGTGAACCTGAGACACAAGTGGGACAGGAATCCCCGGGAAGCCGACAGCGATCTCCATTCGACTGTCGCGTTCGGAGTGAACGCTGGCAAGTGATCGTGGGGCGCCGACGATGTGGAGGCTGTGGCTGCCGTCTAGACGTCTCAATCATCGATGTAAACTGTGCGGCACCAAGGCGGGCTCGTGACGGGGGATAGGTCCGGTATATCATCCGAACGGATCATCCATCGCGGATCCCCTGGCTTTCCGGACCGGGACGTTTTCCCTTGAGAGCCTCTTTGCGTAGCCAATTGGTCACATTGGTGGCAGGCTTGCGGACATCCGGTTCTAGATCCAGATATGCCGGCCAACTAACGTTCGGGAAGTGATTTCGCAGGGGAATTTGGCGTAGAAATCCTTTTAGACGGGACACCGAGATTAATCGCCGATTGCCTATTAATATACACGGTTTTATGCTCTCCTTGTAGTGGCGGTGCTCCTGCAGAGCTCCATATCTGAACCTCAAAACCTCGCACCGGATTCTGACCACCGAGCGTGACAAGCTCTCCATGGGAGCACCATATCCTATCGGCCAAGATACCACGAATGACGATTGGCATTTGAGGTTTTGGCCATTGATGGGCATACAAGGCTTCACCATCTGCCACTCGATCTCGGTTCTCGTACGCTCATCGCGTAGGTGATGGAGCGAGGCGGCTCACGGAGCAGCGCCTGGAGCAGTGCTCGAGAACTGGGCTAGCGAGGCGATCGGCAGAAGAGCGGAATGGGCCGCATAGCGGACTCGATGGGTTTCGATGGTTAACGCGGTGAGCACCAAGACGAGTTGGGACGTTTTGCACGTTGAGGATGGCTAGCGAGTTACCACGATTACTAGGGCATTCTGCGATACGTCTGCATTGACAAGCTGATCGACAAGGATTGGCTCGGCTCCATGATACGATGAATCTAGCATTGAGAAACTTCAACGAGTGCGAGGACACCTTCGTGTCCTTCGAGCTCTTCGCCGCCTGCAACATCTTCGGCAAATGCTCCAGAGCTCGCGTACGGAGCAACATGAAGTGATACTTCGTGTGCCAGAGAGCCCACAGATCGCCAGAGCCACTAGTTGCACCTTGGATAGGAGTGCATAAGACGGATGAAGCAGAAAAGAATGTTGTCCGAGAGCAGTGGCGGTGGCGGACGGTTCCTTGATTCGTCGAGAATTGCACTTAGAGCCGGAACATAGCGGGGCAGCAGGATTGGGGGTACGGTAACGAGGGTGCGGCACGCGAGCCTTACGAGTGGGCCAGTGGGTGCAGCTATACCGGGAAAGCAATGTAATTTTTTTTTCGGGCTTTTTTTCAAATCGAATTTTCACTTTTTCTAAATTTTTTTGTAAATTTTCTAAAAATAATTGTTCGATTTCAGAGTACCTCATTTCTCCGTGCGTGATCTACGTTGATCACGTGACAAATAATGCGGGACTGATTGTCCATGGTTAAGAACATGCCGACGTCCTATTTTTTGGGCAAAAATTCCCGCATTTTTTGTAAGATCACCACAAACAGTAATGACAGCCTCACGTCGTGCCAGAAAGTCCCATTTCGTGCTTCGATTACGCTGATCTCAAAAAATGAGTGTCTGATTGTGCATGATTAAGAATGTGCTGACGTCACATTTCGTTTGGAAATTCCCCCATTATTTGTAGGTCACACCGTAATGGGACAGCCTGACACCACGTGATCTTCAAATTCCGGCCAGCGTGAAACCCAAAAGCAAGATCTCAATCGTCAATGACATGACGCAATCGATTGCCACGTGGGCACTCGAGTTGGTCTACGGATCCACGAGTGAGATGCCACGACGCCATGAAACGCCAATTCGTCGCCCGACAAAGACTGAAAAAGGGAAAAAGGGTGTGATATGCGCACGAGCTGTAAGAAAGGCTAATTAGTTGTCCACCTAAACAGGATAAAATGCTGAAAAGGCATTTTTCAGGGTCTATTTTCACAATGAGTTTGGGTATATTGGAGAGTTTTCCATAGATAATGACTGCGCAACTAATTTTGACGCGCATAATATCACGTAGCGAAGACTACAGTATTTAAATTACTACTGTAGCGCGCTGTGTGTCGATATACGGAATTAATTAAAATATTAATTGATAAAACAGAAACTATGATCAAAGAGACCCGTAAATGGACACAATCGCTACAAATTCAAAAAGTACTGTAGTTTTCGCCTACGAGATATTTTGCGCGTCAAGTATGCTAAGAAAATATGCAGTTGTGGTAGCCTTGTGAATTTTTAGAAGGTTTTTTGAAAAATAACTCGCCACTATTAAAAAAAATATATATTGAGGCTTTTCAAAGGGTTAAAGTAATTTTATACGTTTTTAAAATCGTTTTTTTTTAAAACTAAATTTTGAGCGTTTTTAGGACAATTTTCGTAACTTTTACGCTTTTTTTATGGCCATATTGTGTAGTTTTTTACACTCTGATATTCCAGAAATCGTCAGAAAAAGCACTTAAAACGGGCTAGAAAAACGGGGTTTTGGCTTGCTGCGAAACTTTTTTTTTTGAACCAAACTTACCGCGCAAAAATATATTGTCATTCAAGTAATGTTGCAAAATGTATAAAAAACAGGTTTTTAATGTTTACGATTTTAATACAGTTGTGACGTATTTTTTCTATTTCAATTTTTGCAAAATAAGAAAAAATATGACTGGAAAAAAGTTGGAAAGTTTTTAAAACACATTTTATACAGGAGCGGTCATTACGCTCTAAGATTTGCTGGCATAAGCGAGAATGGTCTTTGACACTACATATATAATATTAAGTCTCCAAATAAGTCCGGGTCTAAAATCATAAATTTGTTCGCTGTGTATCGATGTTTATGAAATTGTGGGAATTTGTGTTATCAACCCTGATCTTTCATTTGATGGGCAAGAGTCACAAAATTTTTTGGCCGTCGGAAGTGCCCCGCCGGTACTCGCAGCCAATTTTTTCAGACATGTTTCAGATCCCGCTTCTTTTCAGTTTTCAACTGAGGATGGTGTGCGGAAGGTCTATTGCTTAGTTTAGTACACAATGTAAGAAAACAAAAAAGTTTGGAAAAAAATCCGTCCAACAGAAATAAAATATGTTTTTTGTCGCTCGTCAAAAAATCTACAAAATTTTGTCGAAAATTATTTGAATTTTTACACCCAATAAAAATGATGTAACCGTGTGCAAACTAATTTTAATCACACAAAACGACTTATGAAATTTGGATCGAGGAATACTCCATTCTAAAACTCGATAATAGTTCGAAAAAGCTGTGTTTTTTGTTATTTTTTTTAGTGTGATGCACCAAAGTGAAATTTTTTGTATGTGAAAAAATAGTTTGCATGGTTACATCATTTATAAAAAATCGAGAATTTTCGAAATCTGATTTGTTGAAGATTTTTTGACAACCGACAAAAATAATTTTCTTTGGACGGATTTTTTTCCAGACTTGTTTGTTTTCTTACATTGTGTACTAAACTAAGCACACGCACACAAAGCTCGATTGAAAACTGAAAAGAAGCGAGATCTGGAAAATGACTGAAAACTGGCTCCGAGTTAGGGCGCTTCGGACGGCCAAAAAATTGTGACTATTGTCAAATGAAAGATCATGTGGTTGAACATAAATTCCCAAAGTTTCATAAGAATCGATACACAGCGAACAAATGCTGTTATGATTTTTGACCCGGATCCTATTTGGAGACCTAATATATATACATAAAGTATACCTACCGTAACCGCAATCGTAATATCATCACTGTCATGAAAAACGTTATCCTCTGCAATTGTATTCGACGAGGACATATCTCCAGTCTCTGACAATCATTTACTCGGGTCTTCCATCATTGCCGATTCGAGAATTGCCTGTCGTCGACTGTTCTGTGAGAATCCGGTTCTGTCGCTTTTCGGAGAGCTTCTTCACAGAATATGTCGATATGGGCGAGATGGAGGATTAATGCTTGCGTTCCACTGTTCACAATCTGAAGACGTTTTATTTTTTTGATTTTGGCTGGAATAAAGCTATGCTTTTGTTGAAATTTCAGTTTAAAAACATAAGGTTTTTGAACTGAAAATTGGGATCCGGAAAGAATTAGAAAAAAATTTGTTTTTTCTCTAAAACTGCTGTATCCATTTTATTCAATTTTTTAAGATTTTCACAAAACATAAGAATTTTTGTAATTTTTTTTCCAAATTTTTTGAATTTTCAGCAAGAACTGGACAAAAAAGGCACTAGTTTTACTAAAATTGGCAGCATTTAGGAAGCGGTTTCTGAAAAAAACAATTAATTTTCATTATTATTGTCATATGATTACAGGAACACACTATTCTGGACGTAGTATGCGATTACACAACATATTTGACGCGCAGAATATCTCGTAGCTTACAGTAATTCTTTAAAAATGACTACGTAGCGATTGTGTCGATTTGCGGGCACGATTTTTTGATATGAATTTTAATCATATTTTGAGCAAAAAATGGCTCAAAAAACAAGCCCGTAAATCCACACAATCGCTAACATGGTAATTTAAAGAATTACTGTAGTTTTCGCCGAGATATTTAGTGCGTCAAATATGTAATACGCATTCTCAGAATTTTTTGACTTTTCCTATAAAAAAAAATCGTGATCAAAAAAAATTTTTAATTGTATTTTAGGATGAAATTACGATTTTATTCGTTCTCTATAAATTTTGAGCAAATATATTTCAAAAAAAAAAAAAATTCTTTCTATATTTAATTTTTTTTTCGAGTCGAGCTTTTTTTTCTATCTTCTGTACAAAAGCAATTTAAAAAAAAGGAAAAAAGATTAAATCTAGAGTTCTAATTTTCCTCCGGGTTCTGGCCATCCTCATAAACAGAATGGAAGAGTTTTTGCCGAACTAGGCCATTTTGCAAACTCTTCCATTTCAATTTATGAGGAAGGCCAGAGCCTCGTGGAAAATTAGAAATTAGAGTTTCGAAAAATCTTAAAATTTTGCCCGTAAATTTCTTATTAGTGTGTTTTGTACAGGAGATTGAGAAAAAAATCGGCAATTGTATACAATTTAATTTTAAAAACTTATATAGTTAAACATAAATTCAATGATCTAACTGGAAAAAAATGTTTACTTTGAAAAGTTAAAAAAAATGACAAAAATGTAAACTCAAAAATTGAATAAAATGCGGCAATTTCATAAAATAGCTTTTTTCCATAGTTTCTGTCAATTTTCGGCTAAGATTAATTTTTTCTCATCAAAATTTACGATTTTCATACTCTCTTACCGAAGCCCATTGACATCGGTATCCAAACACCCTTCTTCATGACGTCATGATACACCTCATCCCACACCTCATCGTCAATTCCGAGTATGCGTCTGACGCAGGATAGCCTTAATCACGACTGGGATATTCGAGATGAGTGTCGACGTAAAAGCAGCCGACACATTCTCGGAAAACGCGTCCGATTGGCAGACAGATTTTCGAGGCCCATGTGCTTAAAGTGTCGCGCCCTTTCTGAGCCGGAGAATTTTTAGGGAAGCGGTTTAGTGTTTTGAATTCGATGCGAAACCAGCTGCTTGCACGATGTTAGAATCGCAAATGCTATGGAGATAGCCGAGGAGTGACTGGAAAATTTTTTCTTAATTTTTAAATGGCCGATTTTGGGAGGGTTAGTCGAAAAATTTAAAACTAGGATCTATGAAGTTTTTGTCACACGGCAACTTCTGGTTTTTGGAATTTCGCCACTTTTTAACAACCCTGGCAATGCGTGCAAATTTTTGGAAAACCGGCAATTTATGGTGACCTTTCGGAATTTTGCTAATATGAAAACCGGCAATTTGCCGCTTTGCAAATCTTAGGAAAACCGGCAATTTGTGGTTTTTGGAACTTGGCCACTTTTTATCAAGGACCTACAAATTGCTTGCAAATTTTTGGAAAACCGGCAATTTCTGGTTTTTTTTTGGAATTTTTCTAACATTTATAAACCGGCAATTTGCCGATTTGCAAATTTGTGGCAAACCGGCAATTTGTGGTTAAATTCGGCTTTTGGAATTTTTCTAAAATTTTAATGAACCGGCAATTTGGGTTTGCAAATTTTTGGTAAACGGGCAATTTTTGATTTGGAATTTTGCTAAAATTTTTAAAAACCGGACAATTTGCAAAATTTTGGAACAGTAAACCGGCAATTTGTGGTTTTTGGACTTTTGCCACTTTTTATAAACCGACAAAGTCATTTGCCGATTTTCAAATAGGCCAATTGCAGGTTAACCTAAAAAAACATTCCAAAAAAACCAGAAATTGCCGGTTTTCCAAAAATTTGAATATCGGCAAATTGGTAGGTTTATAAAAAATGGCAAAATTCCAAAACCGAACCACAAAATGCCGGTGTTCCAACTCTTTCAACGAGAGTATCCAATTTTTTAAATAGAAAAATTGCCGTATTCCATACCGTTCTCCACACATTTGCCGATTTTCAAATTTTTGGAAAACCGGCAATTTTTGATTTTTGGAAGTCTGTAAAAATTTTTTATAGCGGTTAGTGGTCTATGGATGTCTGTCACCTTTTATCTAAACTTCCACTTGCCGGTTTCAAATTTTTGGAAAACAATCTTTGTAGATTGTTCAAGTCTGCTAACTGGCAAACTGGGAAAATGCCTTAGTTTGGAAGTTTAAGGTAAATTCTCAGACACCGGAATTTTGACATTTTTCAAACTTCCAAAAACCACAAATTGCCGGTTCGCCAAAAAATTGCAAAGCGGCAAATTGCCGGTTCTTAAAAATTTTTGAAAAATTCCAGAAAAACAAGAATTGGCGGTTTGCCAAATTTGCGAAATTCCTACAACTGGAAATTGACGGTTTTCAAAAAAAAACAAAGAAGGGAAATCGGACCAAATTACAGACGCTTACATAAAGTGGCAAAGTTGCAAAATCCAGAAATGATCTTGCCGGTGTGTCAAACTTGCGAACACATTAAAATACCACAAATCAAATTGCCGGTTCCGAAAAGGTGCAAATCGGCAAATTGCCGGTTTTTGAAATGCAAAACTCCCAAAATTTACAGAAAAAATTCCAATAATCAAAAATCCGAATTATTGTTCCACAATCTTCGGAAAAATTATTACAAACACAATCAATTTTCCAACTTTTCATCAAGCGTATTAGCGAAATACAATCGCAAAAATTTCTCGTAATTTATTTTTGATCTACCACTTGTCGTTGACTAGCCTCCGCCCCTCATCTTGTTGCTGTTGTTATAGTTGGTGGCTGTCTAGTTGAAGGAAGGGGCGGAGCCTATTCAACGAGGTAGATCAAAAATAAATTATGAGAAATTTGTGCGATTGTATTTTTTTTGTTCGATAAAATACCCCAATTTTTTAATGGAATAACAATTCCCTACCGTACTACATTGAGCCAAATACGGACTGTGAAGCCCAACAAGATATTCGAGAGCAACAGAATAGCGAGCACGTTCAATCGATATTTCTCCAGACGCTACGAATGGTGGAATTTCGTACTGGAAAAGCCATGCGGAGAGCACATTTACCACTATATGAGTGACATTTGAGCAAATGCCAAGGGGAGTCCTATTTCATTGCTTCACGCATTAGTGTGAATGCTACATTTGTGCCTGGAAAAGGACAAATAAAACTATTTTATTAAATGTAAGTAATTAATTTATTTTTTGAAATCTCTTTAAATGCGGTGTAGTCGAATATTGTTTCAATTGCTTACCCTCAAAATTGTCTGAAAACACCGAATTTCATAATGAACTTCTTGAAAACTTCTCAGAAAAATCTTAGTTATGACGCCTCAAAAAATGAAAATTGGTTAAAATGTGAAATTTGACCTACTTGCCAAGCGGCTGCAAACTATCCAGCTTTTTTTTGAAATCAATGTCAAGTTTTGAGTATTCAATTTAATTATCCGTTTTCAACTCGATTCAGGGGTATTTTAAAGTCGCTATAAACGAAGAGTTTTTTAAAAATTATTTACCAAATCCTTCTACCATCGATTTAAAAATACCTAAATTTAGTTCAAAACGCAAAATAATTAAATTGAATACCCAAAACTTGACCGTGATTTCAAAAGAAACTTAGTTTCCAGCCACTTGACAAGTTGGCAAATTTCAAATTTTAACTTTAGGCAATTTTTTAGAGCGGTCATAACTTTTTTTTTTGGAGAATTTTTCAGGAAGTTTCATTATGAAATTCGGGTGTTTCGATCAGATAATTTTTAGTATAATAAAGCAATAAAAAAAATTCTACACCAACTTCAATCGAAAATGTAAACAATTTTGTTTTGAAGGCGGTTTTCTTTTACTTTTCTAAAAAGAAATATTCAATTTTACGATTTTTTGCGTAAAAAAACACGGTCAAATTTTTGTTAAATTCGAAAAGATTGGCGTGTCCATTACGGTTTGACCTACAAAGAATGCGTGATTTTTTAGCCAAGTGTGACGTCAGACACATTCTGCGTCTCTTCTCCCTCATTCTTTGTAGTACGTAGATCAAGCCGAAACGGGAGAGCCTGACACCACGCGCGTGTGCGCCTGTAAAGTGAGTACTGTAATTTCAAAAAATCCACAACATCCAGAGTTTGAAACTACAGTACTACTATTTAAAGGCCACACACTTTTTCGAAACAACGATAAATTGTGGTGTTGAGACCGTATTTAGGGCTCAAAAAAAAAATAATTATCGTTAGAATATGGTTCGGGAAAGTTCCTATGCAGTTTCACTGAAAATTTGAATTTCCCGCCAAATAACGAATCTTCATCCGAAAAATTTGAATGCCAAACAATTTTTTTAAATCATAAATTTGAATTTCCCGCCATAATCGTATTTCTCAGAAAATTTGGATTTTCCATGCCAAAAATAAAAAAAAAAATTTTGGCGCGGCGAAAATTCAAATTTTCTGAAAAAATAATATTTCGGCGGGAAATGCAAATTTTCAGAGAAATTTTTTGGCGCAATTTTTCCTCGAAGGAATTTTCTTGATGTGTAAATTTCCAAAAATTTCAACGAACCCAAATCGCATTTTTCTTATTTTTTCCCCAAAATTTTCAAAGTTTCTCGTACAACGGAATTTTATGCGACGAAAAAAGCGCATTTCGATACAAAATCATCGATGCATGTGTAGTTTGTAGTGTTGGTTGTCCAGCCGTTGGGTGAGTTGCCGTTGCATATTATTTCCATAGAATTAGGCAATATCTTGCAATTACCACCGGCTGTATTCACCAATGGTTCCCTACCATTCTCATCGGCTGCTTCCCAGCCACCGAACGACTCCGTTCGTATCCAGATTGAAGCATTCGCCCATGTGTAGCCACTTTATTACTCTGAAAATTGAAGAGTTTTATAGGCTCCTCTTACATCGGACATTGAGGTGATTTTTCGAATTCTTTAAAACAAAGATTTCCTGAAATTGAGCTTTTGGAAAATTTTAAAATTAGATCAAAATTTCAAAATCAAAAAAAAAAAAACAAGCGTTTGTACAAAATTTAAAGTGGAGAATTTTTTTTAGATTTCAAATTTTTTAAACATTTCTGAGTGCAGAGTCGCAAATCTCAGGCCAATCGGCTTCGCCGAAATTGAAAATTTCTCATATATCGGAAATTGCCGAAAATGAAAAACTCCGGCAAGTCGGCATATTGCCGGAATTGAAAATTCCTTACAAATCGGCAATTTGCCGGAATTGAGAAAATATCCGGCAAATCGGCAATTTGCCGGAGTTGAAAACTTCCGCCAAATCGGGAATTTTTGCCGAAATTGAAAATTTCGTATAACTCGCCGATTTGCCGGAGTTGAAAAATTCTGGCTAATTTGAAAATCGCCAATTTGGTTGGCCAAAGTTGAAAAACCGGGCAAGCCAATTTGCAGATTTTTCGAAATTTGACCGGCAATTCCTGTCGCGGACACCTTTTTTCCGAGAAGAATTAACTTTCCATTTCTCATTGAAAAAGTCAGTAATTTGCCGGACTTGACAAATTTCCGGCAACTGGACATTATGCTGAAAATGAAACATTCTGGTAAATCGGCAAACTGCCGAAAATGAAAAATTAAATCGGCAATTTGCCGAAGTTGATAATTTCCGCCAGATACAGGGAATTTGCCGAAACTGAAAATTATAAATCGCCGATTTGCCGGAGTTGAAAGATTATGGCAAATTTGCAAATCGGCAATTTGCCAAAGTTGACAAATTCCGCAAATCGCCAACTTTCTGCCTGTTGTGTATATTATTTTCACGAGTAAAAATCGTAATTAATTTAAATTAAATTTGCTTTTCGACCGAAATTTGCCTACCGGCAATTCCTGTCCTTTTTGCCGAGAAGAATTTAAATTTCCAAAAAAATCTTTAATTTGCCGGAGTTGTTTCTGGCAAATTTGCAAATCGGTGTCATACTTTGCCGGAGTTGAAAAATTCTGGAAACCGGCAACCCGGCAAACCGCCAAGTTGCATTTTTCGAGCGAAATTTTTTTTTCCGGTCGCCCCCTTTTTCCCTGAGAACAGTTAAATTTCCAAAATTCTCTAAAAACCACAAACCTTTTCTCAAAAATTCGCACACTTCACTCCTGTCGCTTCCCCTCATCATTCCACTCAATCCGCACATTTTCTCGAGTACAGCACTCCAAAAACTTGTCCAAATAAACTTGGAGCTTTTGAGCCCGTTCTTTCGAAGTCTGACGCCCACGCTGTTAATCGGCCCATTCCTCAGTCGACCAATCACCGGCTCCCGACGATTGACAGTACTCGTTGAGCACATTCCGCATTTTCACCAGTCTGTGTAACGGGAAGACATATGGTAGAAGCCAAAGTAAGACACGATCCAGGTCTGGTGTGGCTCTTCCGTACACTCCGAGACAGTGATAGAACACTAGGAAAAAGCGAATCGCAATTCTTCGCACTGCCATAATTTTTCGGGTACGACTGCTTTTTTGAGAAGCGATTCGATTGCCGTTGCCAGCCTGTGAGAAAAAAATTTAACTTAATTGTTATTTAAAGGTGGGGTCGCGCTAGTGGGGAAATTGCTTTAAACCTAGGGTACCACAATGACCGAATTTCATGATATAACAATTCAAAAAAATTTTCTAAATTTTATATGATTGAAAATTGAAAAAATCCAGTTTTTGTCTAATTTTGAATTACCGCCAATTGAACTTTTGTTCTATGGAGCGCGCTTGCACGTTTATCTATTAAATTTATCTACTTTATTTTTTTGGTAATTCGTTTCTGTTATTTTTCCACCAATTGTTAATGTTCGCGGTGTATTTTTGCTCGAATTTTAGAGAAGAAGTCAAAATAAATGCTTTTCGATTAAAAAAAGCACGATAAAATCAGTGAAATTAATTAATTAACAGGTTTGAAAACGTTTAAGATACATTTGTCATTTTTACGCCTGTAACCGTGCATTTTAATTGAAAATTTGTTTATCTGGACTTTATCTCTAAAATTCGAGAAAATACACCGGAAACATTAAAACTCGGTGGAAAAACCTACAAAAACTACAACATAAAATAACTTAAAAAGCGTGCAAGCGCGCTTCATCGAACAAATTCATTTGGCGGTAATTCTAGAAATTAGGGGGGAAAACTGAGATTTTTTCAAGTTTCAAAAAATCATATAAAATCTGGAAAATTTTTTTGGATTTTCTATCATTATATTGGGTCATTACCATAGGCGTGTTTCAAAGCAATTTCCCCACTGGCGCTACTCCACATTAAATCTCTGACGGTTTTTTTTCGGTTTTCCTTGAAAATCCTCTAAAAATCGATTATTTGTATTGCGTTGTTTTTCCGGGATTTTTCTCGGATTTCCCACGGGGTATCCGGCCTTCCTCACTGAATGTTTCGCTCCATTGACAATGTCTCGCGTGTACTCCACACGGAAAACAAATCACATTTAGTTTTACATAAAATTGACCAGAGACGCGGCAGCCAACGCGCCGTAAATTTACCCCAGATGCCTGGCCTAGTTCGGCGAAAACCCTTCCAGTTCAGTGTATGAGTGAAGCCAGAAATCCATGTTTTCCTCGAAAAAAACCTCTAAAAATCGAGTTTGTAATAAAAATTGCGTTGTTTCTTCGGTTTTTTTTACAATTTGAGGGTTTTTTGTCTTTTTGTTTTAACACGGATTTTTGGCTTCCCTCATATCTTGAAATGGAAGAGGCCTTTCTGCCGAACTAGGCCTGGCCATAACTGGGGGAGATTTACGGCGCGTTGCGTAACAGTGCCACGCGTCTCGATTTTAGTTGTAAAAGTAAATGGACTCATTGTCCGGGTGGAGTACGGCGATTGTCATTATGGAGCGCGAAAAGCAACGAGGAAGGCCAGAAGCCCGTGCGGAAAGACGGGGATCTCAAACGGGGACAATCTACAAAAAAATTAGTTTAAAAAAGACTTCCTCAAAAAAATTCGAAAATTGTGGTTTTCTCTTTTTTTCATAATTTTTTGTATTTTGATAAATTTTTTGCGACATCAAAAAATGGAAGAACTTTGTTCGCTTTTTGAATTTTTGGTGAAAGAAGAAAATTTCGAAAATTCGTTAGGGAATCGATAAATTTTTATCAAAAATCGATATTTTAAAATTATTTTTTGCAGTTTATAAAAAATCAAGATTTTTTCGCATTTCGCGCGTAATTTTCATTTTTGTCGTTTTTTTCTTAATTTTCCGAAATTTCTGAAATTTTTTCTTTTCTTGTTCTGAAGCTTATGCCTAAGGACCTAAGCCTAAGCCTGAGCCTAAACTCCTAAAACGCACCACTTCCAACCAGCTCCGGAGCACAGAGCACCTGCTCCAGTGTACAGAGCCTGGATTCAGCCTCAATTGCACTCGATTTGGCTGACGTCGCTGACGAGCAGAAGCTCAACGAGATGAAACGTCTCGAAACTATGCTCATCTTGGAGCAGTGGACCAGCTTTTCCTGTAGAAATGTTGTGGTCGAATTAATGCGAAATATGGGAAAATTCGGGTTCAAATCGATGAAAAATCGTGCAAAAACGAACATTCGTCGTTAATGTGTCGAGCTCTTTGTTTCAAGGCACACGGCTCACACAATCCCTGTTCAAGTCGGTGAATCTTGAAATGCTCACCTGCACATCTGACGATTTGCCCTTTCGGGCAAACATTTTCCTGTGATTTTAGGCGATTTTCTGCAAATTTTCGCTGTTCAAACGTTTAAAATCGACGGGAAAATGCGTATTTTTTACGAAATATGCGAGAAATAGTGATTTTATTCGAAAAAATCAATATAAATAAGGAAAAGAACTACAGGAGTAATTTAAAGGCGCATACCTCGAAAGTTAAAATCGTGCCAGGACCCGCCGCAATTTGGAATCGGTTTTTAAATGAAAACTTTTTGCTTTACTAAAAATTAAAATTCACTGAAAATTTCGGTTAAACTCTGACTATTAACACGAATCTTATCACAAACTATGACTTTCTAGTGACAATGGCCAATTTTGTGTGTAAAAAATTTTTTCAGTGTAAAATGTTTTTTTTTGAAACTAAAATTTCGAGCTTGAAACTAGAAAATGTCAAGTAAAAAAGTCGTGCATTTTTAAGCGAAAAATAACGTTTATTTCCAAGTTTTCGCCTATAATTCACACAAAAAATACTGACTCAGCAAACAATGTAGGGAGCATCCCGAAAATGGTGATGGTAGAGCAAAAACGAAAAGTCGATGAATTATTTTAGAGAGAGAGGTAATTTTATACAATTTTTCAGGAATGGAGGTTAAAAAAAAGAGTAGAAACCATTAAGGCAAAACGATCCAGCTTGAAACCGATTTAGAAACTGCAACTCCCAGAAAACGAAGCAAATAAGAAAATCCCACAAAAAATCCGAATTTCATTGCAGTTTTCGACCGCCGTAATTCAGCCAACCAGGGTGAGTGTTCAATTATTAAAGAAGAAGCACATATATACATATAACATTATTCAAAGGACATAATCCATATAAAGTCTGTCAAAACGGTAAAGGTTCTTGTATCCAAAAACACATTTGGCCCCCTCTTTCGAAAAGAGAGAGCATGGGAATCGGAGAGGACGGTGCGAAAGACCCAGACATCGAGATGACACTTTTTGACAGTCCAACAGCCTGTGTGTGTCTGTGGTGTGTGTGAGTCTCTGTGATTGAGTGAAAGCGCTTTTGGGAATATATAGTACCTGGTAGAAATTTAATTTAAAATGATAAAAAATTTCTTGGGATTTTTTTTTTTGAGTACTGTAGTACACCACAAAAGGACGTAATGTTCAACTGCGCCCATGGAGTCCCAATGACGTAATATCATGATAAAAAAATTTTGAAATTGGAAAAAACTCAGGTCTTCCCCCCCCCCCTAATGTCTTCCAATTAGAACTTGCGCCAATTGAATTCGTTCGGCGGAGCGCGCTTGCATTATTTTTATTATATTTAAATTTCGCTCTGTGTTGTAATTTCACTGATTTGTGTTCATTTTTTGGGGGTTTTTAATTGGCAAAAGAGAGAAAAATGCAAGATCAATGCAAATTGTTCACTAAAAAATCACTGAAAATAGGTAATACTGTGAAATATGCTAATTTCAGGCTTGGTGTAGTCGGAACTCATAATTTCGTAGTTTTACCCATAGTCTATCATTTTTTAATGAACATCTGCATTTATCTTTTTTTTTTAAATTGAATTGCTATTAAAAATCCCCAAAAAATGAAGAAAATCAGATAATTAGAAACAATAAAATAAATTTATAAAAATAATGCAAGTGCGCTCCACCGAACGAAGCCAATTGGCGGGAGTTCAAATAGCGAGAATTAGAGGGAAAACTGAGATTACTTTTTCAATTTTGAAAAACATCATAAAAAATACGCATTTTAGCTTAAAAACTCGAAAAATCATACAAAAATTAATCTGCACCAAGTTGTCCACGAGTAGTACCTTGCGTCGCCTGGTTGCAGAAATGGCATAGATTTCGATTAGATTAAAAGCTTAAAAATCATTTTTTTTTACCCAATTTCCATTTAAATATCCTAATTCCAGCTTAATCTCAATTTTCTTGAAAGAAGTGCAAATATAGATTAACGTAAAAATTCTACGCTGCGAGACCCATGCCCCCATAAATCGCCTGCGCCTTTATTGATGATTTATATTTATTTTCTCTCTCAACCAGCGATGAACATCACGTTTTTGAACGAATTTTCGAAAAAATAAGACAAATTTCTATTTTATAAACCACTTTATACCGTGGGTCGTCGCTAAATAGCAAATTTTGACGCAAAACAAAAACGAACAGACAACGGAAAATCGATTGAAAACAAGTGAGAACACAGCAAAACTAGTCCTAATTAATTAAAGGCGCATCACGTGGAAAAGAAAACTGTTGTGGAAGAATAAAAAATGGAACATGAGGGGAAAGATTACACTAAAATAGTAAAAGATGCAGCAAGATTAAGATTATTTCTCGTGGAAAAATCGAGTCCCCTTCCGCCCAGGAATTCATCATAATTTTCGACTTTTTTTCGGAGATTGCTGCACTTTGTCGGCTGCTCCGGTGGTTTTTGGCAGGTTTTGAGAGCGCTGAAAGATTTGAATTTTTTGGAATTTCGAGAAATTTCTTGTTTTCTACCCGAAGCGCTTTGAATATGGCCAGCTGCATTTCCAGCTTGCATTGTCCGTTCAGTGACTTTGACCCTTCCAGTTTTCTGAAAAAAAAACACGAGTTTTTGAATTTACTTTCTGATTTAACGATTTCTGGTTTCCCTCAAAGAATTGAAATGGAAGAGTTTTTGCCGAACTAGAGGCCATATCTGTAGATTTACGGCGACCGTTGCGTGTCGCGTCGCGGCTCGCTTTTAGTTGTAAAGCTAAATGTGATTTGTCCGTGTGGAGTACACTACTTTACCCTCCCACGCGTTGTCCGGCAGGCGATAGCGCGAAAAATTCAAAGAGGAAGGCCAGAACTCCGTGATTTTTCTTTTTCGCGTAGATTTCGCAGTTTCGGACTGTTTATCAGGTCTAATCAGCGGAATTTTCGGTGATCCCGCCAATCTCGGTTATTTTCTGAGCCTTTTTCGCTCAGGTTCTGGGATTTCAGCTGTTAGAGCAATCTTTGTATATTTAGACAAGTTTCTTGAAGTCCAACGCAATTTTTTCAGTAGTATTCACAGTTTCCGGCAATTTTTCAGAGCAACTCTTCGAAATTTCGACAAGTTTTCTGACAGACTTTGTAGATTTCGTCTGACGGTTTTTCTGCAAATCCCGGTATTTTCGGCTCGCGGAGGACTCCCAGCTGCTCTTATTGTTCAGCATTGTCTGCTCAGTAGCGGGCGCGTCTTGATTTTCAGTAGAATTCGCAGTTTTCGGCAATTTTTCTTAGAATCTTCAAAATTTTGATAAGTTTTCTGTTCCGGCGTAGATTTCGCAATTTCTGGCGGTTTTTCCGCAAATCTCAGTGATTTTGGGCTCGGGGAGCCCCTTCCAGCTTCTCTATTGTTCAGAATTGGCTGCTCAGCAGCGGGGGCGTCTTGATTTTCAGTAGAATTCGCATTTTCCGGCCACTAATTGTTCTGAGGTAATCTTTGGAATCTCGGTTTTCTGACTTTTGGCGTATACGCAGTTTCTGGTGATTTTTAACCCGGCACGATGAGCTCCCAGCTTCTTCATTATTCAGCCTTTTCAGCTGGGCTTCTTGAGAGCTTGTAATCACGTCCGTCGTAATTGGCCTCTGAATCATCATCCGAAACCAAATTGGCGTCGATTATTTCCTGAAAAAATCGATAAATTTTTTTGCTTTTTTTTGCTTTCTCATAGTCTGCTTTTCCCACTTTCCCGCAATTTCTCAAAACACGGCGTTGGAACGTATCCTGGTCGCCGATCGAACTGGATAACTGGCCGGCTGGCGATAAAGAGATCGGCGAAATCTGCTACTTTCTCGTCAGATGAAACCTCGGTTTTTCTGCTAAAACCTACTCAAAATTTCCACTGGCTAAAATCACCTGATAACATTACATTATCATCATTTCCGGGCATTTGTACTTGACGAAAAAAAAGCGGAAAATATTTAGGATTTCGAAAATGAAGCGAAGGTTACGGTACACTAAGGCACATGGCGTAAAATATTCCGCAGGACTCGCCGCGATTTAGGATTTTCACTATTTTTTTTGGGCAAAAGTTGACATTTTACAGAATAGAATACTAAATTGTGTTGATAAATTGTTTATTTGGTTTTCAAATTTAAATCTAAACTGTAAATTTTAAATGTTCCCCCAAATATTCGCAAATTCCCTTCAAACCAAGTTTTCTAGCACAACCGTAATCCCCGAGCAATCGCGCTCCACCAACCTACACACCGCGAATTTTGAATTACATCCCTCATAATTAATTGTTTTTGCCATTTTTTTGCTATTTCCAGTGGATTTTAATGAGTAAAAGCCTACAAACCGACGAAAATGGCGGTGTCAGTGTAAGTCCATCAAATACATATTTTGCTACACGCTGGAATGCTCTCTACGCATCATACACCTCATCAAGCAAGAAAAAGACTCCAATCTCCTCGAAAAGCGCTATAATGACTGTCTATACGGCAGAAATGAGCGCAGAGGTTTTAGCGAATGAATGCCTGTTTTAAGAGCAAGTATAAGAATTCAGAAAAATTCACCTGCAAATCGTGCTAAATACCACCGCTACCGGACAGCCCGCAGTAGTGTGCCATGACGTCACAGCAGTTGTACACTTGCAAAGCGTTGCAAAATGGTAAGTGTACTGTCGAAATTCGCTGTAAGACCTAAAAGACCACAAAAATGGAAAATATCTGAAAACCTCACGATGCTCGTTAATGTTCCAAATGTTCAATGCGCGCCGCGAAAGCTCAACGTCTTCATGAAATCTCTCCAAGCAAAGTTGGATATTATGAAAATGGAGAAAAGCCCAATTTCAGCAGTGTAAGATAAATTATCGAAAAATCAATAAAAATCCCAACTTTCAGACCCCGGCAATTCTAACACGTCCGCCGGCAGCAGGGTGCTGAGCCCGCTGACGCAGCGAAATGCGAAAAGTGAAGATTAGCTACGCGAACCGTCGGCGCTGGCGAGACCTTGAATTCGAAAGACCCACACCGAAGCGGCGGTAATTTGAAATTTTCACATTAAAAAAAAATCGCGAATTTCAGCACTTCCTCAATGAATTTGCTAGCAAGCACGCTTGCGGCTGAAAATCGTTATGAACTCGATCGATTGGGCTGAAAAGGACGACCGCTGCAGTTTTGCTAGAGATGATCGTGAAAAAGCCTCTGCAGCTTCAAAAATCCGTGAAAAATCGATAAAATTTCGTTTTTGTTCCGTGACATTCCAGGTGTTTTAGTCCAAAAGCAGCCTACGGATTTGCTTCCCTCATAAATTGTAATGGAAGAGTTGCCGAACTCCAAGCCACATCTGGGGTAGATTTACCGCGCGTTGCGCCTCTTTAGTTGTAAAACCAAATGTATTTCTCCGTGTGAGGTACACCACTTTCCCATTGCCCGGCGGGTGATTTTCAATGGAGCGCGAAAAATGCAATTAGGAAGCTCAGAAACCCGTGACAAAAGTGTCACGCGGGTTTCAAAGTAGAGGTGCAAGTTCGCGCTGCACCGCTCCACGGTGCTTGGCGGCAAAACCAGAATTCGCTGATTTCAAGCATTTTCCGTCGTTTTTCATGATTTATCATGTCGAAATAGTGTTTGAAATATGTCTTTAATGCTGGGAAAAGTGAATATTAAAAATTTTGACACGTTGAAAAACTGAAAAAATTATCGGAAAAGTGTATTTTGTGAGTTTTTACTTAATTTTCTCGGGGTTTTTAAAAAAATTATTTCTACATAAAAATTGATGAAAACAGCATATGAAGTGCAAAAAATAAAGAAGACTTACATAAATTTTGACAAAAATAGATCACGAAAAACAATAAAAAAAGTCGAAAAATGATTGGAAACGGAGAATTTTTCCATTTTTATGTAGAAATTTTGAATTTTTTAACAAAATTTTCTCAATTTTGAAACACAAAACATGATTTTAAAAATTATTGAAGATATACTCTTGAATTTTTAGTTGCGCCAATAACGGGACTCACGGAGTGACCATGGAGCGCTTGCATCTCGATTTTAAAATTGGTATGAATTTTTCGCGCTCCATAGACACACCTGCCTATAGGACAACGGGTAAGTGTCGTGTACTCCACCCGGACAAATATTTAACTAGAATCGAGCCGCGACGCGACACGCAACGCGCCGTAAGTCTACTGAGCCAAAATGGCCTAGTTCGGGAAAAACTCTTCCATATTCATGAGGGAAGCCAGAAACCCGTGTTTCTAGAAAATCAAGAATTTCTTTGGGAAAAAATGCCAACAATCCCAGACCTAATTCTCAGGGCTAATTTTTCCCCGAAACAGACAACAGACCCTTGTCTCCCTGTTACAAAATCATTCAAAGATGCTCCTGCGATTTCCGAACGTCAGCTGTTGAGCAAAAGGTGGTCCGATGTGTGATAAATGTAATTTTTCGAAAAAAAAATTTATCGAAATTTGCAGTCACGAACGCGAGTGTCTTCTTCAACACGGGATCCGCTGGAACCGGAAAATCTGTAATTCTCCGGAGTATCATTAAAATGTCCCGCCACATATCACCGCAGCGACAAGGTAGGGGATCACTTTGAAATATTTGCAAAAAATTTCTCGTATCAAGACCTCAAAAAATTTTCATGTACCTTTCAAAAATAGAACGACCTTTTTTAATTAAAAAATCATTCAAAAAGGAAAATTTGGGAAAAAAAATCATTAATTCTTTAATTAATAATTGTTTATTTGTCACAAGAAATAGCTACACCGGAAGATAAAGAAAAAAAGTAAATAAAAAAGATGTGTGGACAAATAAGTAAATGTCCAATTGGACCAGCTTTAGCCCGGGAGGTTAAGTTGGGGGGAAGAGGGTGTCAAATGGGATGGAGTCTAGGCGCGACGCAAATGCATTTGGAGTTAACAGTATAGGGAATGAAACGTTTTGCTATTCGATTCCACAACGACAAGTTAACATGTAGAAAACATTTAGACGGAACACCACAGACAACAAGTAGATAGGGGTGAGGAGTAGAGCGTGAAGCTCGAACGAACGATATAAGGTCGGGAAGTAATACTCACTTGAAATAATATTTTTATGGAAGGTTCGGAAGATTTGAAGAACCCGTCTATGGTGGGTGGACAATAAATTAAATTGGGAAAGCCTACTACCGTATGACGAGTAAGATAAATTGCACCTTTGAAAGACACACATTGAGAAAAACCGGAGGGGAGATTCTAGTTATTTCGTGCGGCAAGTTCGGTAGAGTTGGGAAGCGGGAAGAGCTCGCAGCGATATTCGAGTACAGGGCGGTGCTTATGTAAACATTGAACAGTTAAAATAGAATTCGGGACTTTCCTCAGAGCGGAATGAACGATGGAGTTGGCACTTAACCACGGAGTATTAGAAACCAGTCTGATTAATATGATTAACAAAAAATTTGGTATCGACAATGACTATGCTTCCAAGATCTCTGATAGATAAATCACGCGGTTTAATTTCCACCCGATTTAAACAGTATTTATGACGCCCGGGGGTTCTTTTTTCCGAAATGTAATACGGCGGTTTTGTGCTCAGCAAGATGACGCCATTTTTTACACAAATCAGCGACTTGATGCTTGTTTGGATAGAGGTATCAGGGGGTCCGCTCCGAGTAATTTTAGATCGTCGGCAAAGGCTGTAACATGGACATCAGGAGGGAACAAATCGCTCTAATAACCCATTAATATACAAAAGAAAGCGGAATGGTAAAAGAAAAAACCGTAAAAAATCAGCAAATTTCGAAAAAAAATCGTAAAAAATTGAGACCTTTGGAAATAAAAATCTAGCAAAATTTGAAAAAAAAATAGTTTAAGATTCAGAAATTTATTTTAAAAAATCATTAAGAATTCAGCAAAAAAATAAAACAAATAAATCTGTAAAATTAAAAAAATAACCAGTAGAATTTCAAAAAAAATTGTTTATTCAGCAAATCGTCTTCTAAAAAAAAATCATAATAAAATGATAAAAATTAAAAACGTAAAAAAATTTAAAATCTGCAAAATTTGAAAAAAATCGTTTAAAATTCAGCAAATTTCGAAAAAAAAAGCATTAAAAAAGCGAGAAATGGGAAAAGCACAATTTTTTAAAATTTATTGAAAAAAATTAAAAATTCATGGAAAAACCTGCAAAATTATTTTTTAAAAACCGGTAAAAATTCAGCAATGGAAAAAAATCTTTTAAGAAAATCAGCAAATTTCGAAAAAATAAAACATTAAAAATACAAAATTAAAACTTTTAGAACATCATTAAAATAATAGCCAAACCGTAAAAAATCAACAAATTTCGGAAAAACTTTACGTGTTCGTTAAAACTCCAGCAAACGTCTAAAAAAAAGCATTTAAAAAGGAGATACAAGAAACATCAAAAATCGAGACAATTGGAAAAAAAATTCGTTAAAAATTAACCCAAATATTTGCTGAATTTTTTAGATTTCTTTTTTTTAAACTAAATTTGCTGAATTTTTTAAAAAGACAATTCAGCAAAACTTAATACAACTAAAAAATTCAGCAAATTTCTTTTTTAAAAATCGTTAATAATTGCATCGGGAAAACTTGGAAAAATTGTGCAAAATTCAGAACAAAAATTTCAAAATTTTCCCAATTTTTATTAATTATTTAGTTTTCAGAATTGATTAATAGTGAAAAATTCATAAAAAATTCAACAAAATTTAGAATTCAAAATTTCATTTTCATGGGTCCCGCCACGATCCACTCCAACCTACAAAAAATCATGTAATTTCCAGGCGTTGCGGCATCCCAAATCGGCGGAATCACACTTCACGCGTTTTGCGGTTTTCGCTACGAACATTCGACGCCGTAAGCAGTGCCGAAAACATGTTGTTACGCCAAAATCACATGGTCCGACAGTGGAAACAATGCTCACACTTGATATGACGGATTTCATACCATGATTGATCGCTTTGCAGGTTTGAAGCTCTCGAATATGTGAGCTCATTGCGTTTTGATCTACAAAAAATGCGAGAGTTTTCGCAGCATTGCTCATTTGATCTACAGAAAATGGGGGAATTTCGTACTACCAGTATTGCTCCTTTGATCTACAAAAAATGCGGGAATTTTCCCAGCATTCCTCCTTTGATCTACAAAAAATGCGGGAATTCTCCATTGCACATTTGATCTACAAAACATGCGGGAATATTTCAAGTGTGACGTCAGCGCACTCATGCGAAATCTGCATGAAAAGTCTGCGTCTCTTCTCCATTTTTCGGAGCTCAAACCAAAATGGGCGGTACCCGAAAATTCCAAAAAAAAAACGATAATTTCCCGTCCCATGTCGCCCGTACGTCCGTAATAACGATAAGCCGTTCGGTAGAATTCAGCTCATTAGGTTCACTGGAGATTTCTTTCAATTACCGCCGTCTCGAAAGATGAACCAGTCTTTTGTTTTGAGGTGTGCGGAATTTCGGAGCATTTGGACCGTCTAACTATTAAAAAAATTATTTTGCAGAGCGCAGCCTGGAGCCGATGTATCCAAAAAACGATTGTCCTGAAAAATGTGAAACGACATAATGACAATGTTTTTGTAAATAATAACGTTAGAGTTGGAAAGTACGTAAACTACTGGATAAATTTAAAAATTTCGAATTTTTCAGGGTTTTTTAGTACTGGAAATATTGATTTTTCAGTGAAATTCCAATAAAAGCTGGAAATTTTCCACAGAAAAAGGGAAATGAAAATATGAAAATTTGTAATTAATTTCGAAAAATGCAGAAAATCCCAAAGCCTTCCAGAAAAGCTGGAAATTTCATAAAAATTTCGGAAAATCTGAAATTTTCAGAAAATACAAAAAAAGCAAAAAATCTCGAAAACCTTCCAGATAAGCTGGAAAATTTTAGAAATTTCCAAAAAAATAAATTACTACTGAAAGTTTCATAAAATTCACTGATTTCTGTCTTCCTTCTTGTAATGGATGAGTTTTGCCGAATCAACTAGGCCATTTGGTTCGGCCAGATGTAGATTTACCGGTTTGCGCGTTGCGTGTCGCGTCGCGAGCTCGATTACTTAGTTGTAGATAAAATGTATTAGTCAGTGTGGAGTACACGACACTTTCCCATGTGTTGTCCGGCAGGTGATTGTCAATGGAGCGCAAAAAATTCAACGAGTCCAGAACCCCGTGATAGAGCGGCCAACACGGGGTTCTGGCTTTCCTCATTTCATATTTCGCGCTCCATTGACAATCACCTGCCGGATAACACGGTGGAGTGTCGTGTACTCCACACGGACAAATACCTTTATTTAGAACTACTAATTGAGCCGCGACGCGACACGCTACGCGCCGGAAACCTACCAGAAATGGAGATGCTAGTTCGGCAAAAACTCTTACCATTTCAACTCTTTATGAGGGAAGCCAGAAATCCGTGTGATTCCAAAAAGAAGCTCCAAAAAAAAATTCCAAAAAAATCTCCATAGCCTTCCAGAACCGCTGGAAATTTCAGTCCCCTAAAATTGATAAAAATTCGAATAAATTCTCAAAATTGTTAGAAAATCAGTGAAAATTTGGAAAATTCGGAAATTAAACAATTTTTTTTGGAATTTAAAATTTAGAATTCTTCGTACGAAAGATGCTCCAGAAAACTTGTAAAAATTTAATTTTTTTTTTGAAATTTCCAAAAAATTTATTTATTTTCAGATGCGGCTTCAAATCAGCTGATATTCTAAAGTAATCCTCGAAAAATCAATTCCTGAGCCATCCAGCGTAATTCCAAACAAACTGTGCACCAGATGACGCCGATCGAATTAACAGCTCAAGCATCGAGACAACACAAGCGCGAAAACCTTGCAGAGCGCCTACGATGACGAGAGTGACGCACGCCAAGGTCCGTACGTTGCAGCACAGAAGAACCTTGTAGGCTGAAAGTTGGAGCTCAGGTGATGCTCATCAAGAATATCGATGTGAGGGACTTTGTAATGGGTCACGTGGATCTATGGTGAAATTTTCTGTGAAAACGGGAATCTCTATGATCCGATTTGTATCGCAAGCCGATGCTTCCATTGAGGCACGTTTCACAGAAATGACCATTTTATGGGCGTGGCTTTCTTTTTCGAAAATTTATTTTTTCCAAAATTTCTACATGGATTTTTCTCTACAATGGAAAAAACCCCCGAAATATTGTAAAAAATTTGAAATTTATCGGAAAAAAATAAAATTTTCTCTCTTACAATTAGGCTTAGGCTTAAGCTTCTAGGCCTGGGCTTAGTCTTAGGTTTATGCTTAAATTTGAAAAAAAAAATTCTTGCAATTTTTTCCAGATTTTTCCGTTTTTTTTTTCACAGAAAATCTAAGATTTTCGATTTCTACTTTCAAAAAAAATGAGTTAAAAAAAATTACGCAAATTTTGTAGAAATTTTTCTTTTTTTTTTCTTAAAAATTAGGCTTAGGAAGCTTAGGCTTATGCTTAGGCTTAGGCTTTGGCTAATCGCAGGACTATGCTTTGGGTTAGAAGACTTGCGCAGACAAGCCTAATCCTAAGCCTAACCCTCTTAAAAAGTTACAAGACGGTTTTTCCTTGCGCTGGGAGCTCAAAAGAAGAAAAGAAAAAGAGCTATTCGGACTTAGTGTGCCTATCTGTAATAAAACATTGGAAATCCCTATGACGCACTTAAGCCTACGGCCCGCAAAACATACTAGGATGCCCAACTGGAATAAAATATTAGAAATCCTTATGACACACCGGCGGTATGGCGCGGACTTAAGCCTAAATGGCCACTTTTATCAAAATACATTTGAGCTCGTCTTGTGTTTTACGTTGACTCCTCTGAGGCAACTCAAAAATATTCTGTGGATATTCTGCAGAAATCAGTTTAAATGAAGACAAGAGATTACTAAGAAACTTGGAGATTTCATAATATTTGGGGGGATGCGAGCATCCATTGGAAATTTGCCATTTGATACTTTTAGAGGCAAAAGTCCAAGTCGTAACAAGCTCACAGTGGGCTCTCAAATCATCAAATTGTAACGAAGAAACGATCGATATAACGAAACAATTTTACAAAGTCACTTTGGTAGCTCATATCTCCGTGGATAAAATTTTTACAGACGTAAAAGTCATCAACTGATATGTTGTTGATATGGTTGTAAAGAACAAGTTTGTTTGAAAAGTTTTTTTTACCAAAAAATTTTCGTCGTGTTTCAAAGAAATAGTAACGGAATAGCATCATAAAAATAACAACAGCAGTTGCGCCGCGCACTTCACGCGGTTATTCTTAAACGGGAGATGAGCTACCAGAGTGAAATTGGATGGCCCTCCAATGCTTCGTTAAAGTTCACGGCCATTTTCAGGATCTTTGAGAGCCCGCCGTGAGCTTGGTTTTCGAGGAGTTATATAAATTGACCCCTCCAGATTAAAGGAGGACTTTTATATAATCACGATGGTATTTAATTCCGATGAGTAATCCATTTTTCTTTTCACATTTGTCAAACAAAACTAAGTTTTAAATTAAGGCGGGATATACTAAGGTGTGATAACATATGTTATTCATGTTTAAGTTTAAATAAAGTTTTTTTTTAATTTTTGCTAAAAAACGAATTACAACCGCCTCGCTCAAATGTATTTTATAAAAGTGGCTATTTAGGCTTAAGCCGCGCCATACCGCCGGTGTGTCATGAGGATTTCCAATATTTTATTCCAGTTGGGCATCCTAGTATGTTTTTCGGGCCTTAAGGCTTAAATGTCATAAGGATTTCCAATATTTTATAGTTGGGCATCCTAGTTTTTTTTTTTCAGGCCCTTAGCCGTAAGTGTGTCATAAGGATTTCCAATGTTTTATTCCAGTAGGGCACCCTAAGTATAAATAGCTCTAGGGCTTTTCTTTACTTTTGCGCCTCCAAGCGCAAGGAAAAACCTTCATGTAAAAGCTTTTTAAGAGGGTTTCATCATTATATTTATTGAAATCGGGGCGAAGCCCTGATTTTGAATCCATATTTTTGTCTTTGTCTTCCACTTGATCCCTGCAAACTAGGAAAGAGAATGTTTTCTTTCTGATGAAGTAAAAATCATCATAAAATCTTGAAAACGAGCAGGAGGTAATATTTGAATATATTGGGTTGTAAATGTGTGTCTCCCCTTGTGGGTGGGGTGGCGATGTGCTGGCAGCCAATCTGCCTTCAACGTGTATCTCCCGCCTGTATCGCCCTTCAAAGTGAGAATTGGGTTACCAAAATTTGAGGGAATCTGATGAGAAAAGGTGAGGATTTCAAAAATATTATTGTTGACACACCAGACCAAACTTTAGCCTGGGCGAAGAGACAGAAAATTAGGAATTTTTTGAAAACTTTCAAACTGGCACAAAATTATTTCACAAACAAAACTCTTTTCACATATTGTTAAAACAGATGCCATTTTCCAATAATCAATATTGTCCATTGAACACAGAAAAGAAAACGAAGATTCTATCAAAAAATGAGTGAAAAATCGCAATTTAAAAATCGAAAAAATCCGTGCTGAACTCGAGTTTTGGCGGTGCTGAAAAGAAAATTTTCACTAAAATTTTTTGGAAACTTAGTTTTTCGGATTTAGCGTCAAATTTTGAATCTATACAAAAAAAAAATTTTGAACTCAGATTGAGTGGATAATAAACGCTCAAAGTTGAAAATTGACAACGCAAAAACGGCGTGAGTAACTTGCTTCAAGGTCGGCTGTCTCAGTGAGTTTTCACCCAATTTTCCCCAAATTTTTTTGCTCTATCGCTTTAGAAATATTTTCTTTGTGGTAATTATGTTTTCCTCAAAATCAAGATAATATCTTAAACGACCGCCATCCTATTTTACAAGAAAAAAAAAGTCTTTGGAAGAAAAATCAGAAATTTTCGGCGTCGATTTTCAAAATGACAAAATCACTTTTTCGTAATAAACTTATTTAAATGTATTTTGATAAAAGTGGGTATTTAGGCTTAAGCCGCGCCATACCGCCGGTGTGGGGGTCATAAGGACCACTATTTTATTCCGATGGAGTTGGGCATCCTTGTATGTTTTTCGGGCCTTTAGGCTTAAGTGTGTTATAAGGATTTCCACGATATTTTATTCCAGTGGGGCATCCTAGTTTTTTTTTCGGGCCCTAAGAGCGGCTGTGTCATAAGGATTTCCAATGTTTTATTCCAGTTGGGCACCCTAAGTCTGGGTGAATAGCTTTTCATTTCTTTTGGTCGCCCTCCAAGCGCAAGGAAAAACCTTCTTGCTTAACGATTTTTTAAGAGCGTTAGGCTTATGCTTAAGCTTAGAGTTAGGGTTGGGGTTAGGCGTAGGCGTAGGCTTACGTTTACGGCTTCGGCTTCAGGAATATTTAAAACAAAAATCGAAAAATAGATTTTGGGAAAAAAAATCGTGATAAAGCCTGCTAAAATTTTCACAAAAATTAAATTTTTCAAATTTTTCAAATTCCTAAGTGATTTTGGTCTCGCAGCGAAAAAACATCCAACTACAGTAACCCTCGCCCTCTCCAATTTTCAGCTCCCCGGCTCCAATGTTCTCGCATTCCAGGGTGTGATACTCCGTTGATTCGCCGTGAACTCCCACTCCAACTCGCCTGGGCCATCTCCATTCACAAATCGCAGGGAAGCTCGACAGTCCGGGAATGTTGAAGCGCGTTTTCGCCGACGGACAGGCGTATGTGGCGTTGTCGCACTCAAGATCAATGGACGGCGGCAATTAATTATCGGCTTCGAGCGTTGTGTCCGAGCGAATTCAAAGGTGAACAGGGGATTTTCGAGATGAAATCTATGATTGCAAATCAGAATGGATGGATGCTGTTAGATATCTCCTTTTCGTGGGTTCTCTCACGTGGTAGAGTGCTCATTTCGGCTCTACTGTGTAGATCTACAAAAAATGCGGGAGATGAGGAGACTCAGACTTCTCAACTGGTTTCGCATGGTCTAGAACGGCGTTGCTGACGTCACTTTTCTCTCGGCATAAAATTCCCGCATTTAACCGGTAAGGGATCTCTCAGCTACGTGGAAAATTATCGATGTTTTACCGAATTTCAGGTTATCTAGCTTTTTACAAATCCATCGAGGCAGAATGCGACGACGAACAGGACTGGGGAGCCCCTGGTGCTGGGCCTAGTGCTCAAGTCGAGTTCGATCGATTTTTTATTTAAAATTTTTTTGTGATCTCCAAATGTTTCTGTCTTTCTATCTTCCCCCCCACCCCACCAAAATAACCGTTTTCACAACACTCTGTATCATCATAATTCTCACATAAACTATTTCAACGTTGACGTCGCCTCAATTTTTAGTGCTATAAGCGTCATCGGATCTGAAAAAAATGTAAAACTTGAACAAAAAAGCAGGGGGTGGCCTAGAAAGCACAAAAAAAACTCGGACACAGTTCAGGAGCCAGTTTTTGGAAAAAAAAAAACGTCATTTTCGTATAGCCGTCCACACTGAAATTGAAAGAATTCTGGCCGAGTTTTCCAAATTCTAGGCCACCATGCAAACCGACGTTTTGGACGGCAACGTGCCGGTGGCCGTGGCCCCAAAGAAGGAGGGAAAAACTCGGCCACTCTTCTATGTACCCCTCTCGGGGAATTTTTACCATGGCCGAGTTTTTGTGTCTTCTAGGTCAGGCATTTTTCTTAGTCAGTTTCAAAGGAAATACGATACCTGGTCTCGACGCGAAAATTTAATTAAATCCAAAAAGACGTGCGACTTTAAAAAGTACTGTAATTCCAATATACTTGCGCTGTTGGGAAATTTATCGATTTTTCGTATTTTTCAAAAAAAATAATCAAATGTACACAGGGTTCTGTTCTTCCTTAAATTTGATTTATTCGCGCTCCATTGACAATCGCCCGCAGGATAACGCGTGGGAAAATCGTGTACTCCACACGGACATCGACGCGACGCGACACGCAAGTCGCGCCTTGAATCTACCCCAAATATGGCCGAGCCATAAAGGCCTATTCGGCAAACTCTTCCATATCGATTTATGAGGGAAACCAGAAATCCGTGAGGATAGTGAGAAAACAACGAAAAAATCATAAAATTTCCCAACAAGACGAAAGTTGAGATTACAGTAGTCTTTAAAGGCGCACTTTCTCGCATTTAACTTAAATTGGTCGTGGAGAGAGTATTTTTAGCGCAAAACTTCGCATTCCGGGTAGATAATAGAAGAATTGAAACTGACAAATCCGCCGTTTCCTCAAGCAGCAGCGGCACAATAAACATGAAATACACGGCCAACACGAAATGAAGCGGCACCATCGACACAATGAACAACGACATTCGGAGCATGTGCTACAAAACTGTCGGCCGCAACTTTTTCGACGGATTCTTCCCAAAGACGAGATACCCTTGCATCGGGCTACATCGGGGCTTGAACCGACTTCTTCTTCATTACAGCGCTCCCTTCTCTGGGCAGCAGGTAGCGTGTCCACGTGGTATAGGGTGACTCAGTGGTTCTGTGATTAATCGGCGCGAGCTGGAGCATTCTTTGCAGAGTCGCTAGGCGTGAGGCCACGGTAGCGGAGGTGTTGGCTCTGAAAGTAGATTTCATACAGGATGGTTATTTCGGGGAGTACTGTAGTGGTGTTATAGTGGTTACTTGTAGGAGTACCCTGTAGGGGATACGAAATGCAGGGGTAGCAGTACTGAGGGGGGTACTGTAGGAGTACTGTAAGGGTGTGGGGGTACTGTAGGAGTAATGTGGGGGTACTGTAGGAGTACTGTAGGACCACTGTAGGGGAAATGTAAGGATGCTGTAGGAGTAATGTAGATGGTACTGTAAAGGTACTGTAGGGGTGCGCTAGTGATACTGTAGGGATCATGTAGGAGGACTAGGTCCTGAAATAAGGGTACTGTAAGGGTACTGTAGAGGGTTAGTTTTATGTCCCTGTAAGGGTACTGTAGGGGTACTGTAGGTGTACTGTAGGAGTAAAAGTGGATTCACTGTAGGACAATAACGCCAGAGGTACTGTAGGAGCACTGTAGGCGTACTGTAAGGGTACTGTAGATGTACTGATTATGTAAAAGGTCCTGTAGGGGTACTGTAAGAGCACTCTAGGGCCATTGTAGGGGTACTGTATGTACTGTAAGGCTACTGTGATGTACTGTAAGGGTACTGTAGTTGTTCTGTAAAGGATACTGTTGGAGTACTGTAGGGTTACTGTATAAGGGTACTGCAGGGGTGCTGTAGGGATACTGTAGGAGTACTGTAGTGTCTATAGGAAGACGAACTTTTTTTTGAATTTACTCATCGGAGAATCTAATATTTTCTGTCTCCAAATCGATACACCATAAAAATTTTAGGACCCAGAGCTAAAAAAAAATACCAACTTCTCCAATATCATCTCCATCAATTCCAGTTGTTCTGTGCAGTTCGCCATCCCTTCTTCATTCCATCGGCCGATTCTCCAAATCGTCCACCATCTTCACACCCCGCCGACACGCCGGTGTCTCCACATCGTTCCGTACCAGCTTCCGCAATTTTCATAAGATTCTCGACAGACTCGTTAAACTTGCGTTGGCTTGAACAAGTGGGAACCTAGAATCGCCTCGGGAACCGGATTTCCACCCCCTTCCACCAGGAGGCTGACCAGTGTCGTTTTCTGCCTGACGACCTTAGCCAGGACGTGCTCATAGTTGATCATGTAGATTTGCCCGTTTTCAGATATGTTGAATGTTTCAGATGAGGACAATTGAAAATTACCGATTTGATTGTGCGTGTTCATGCACGACAGTAATGAAGGCGAGGCGGCAAATTAAAACTCTGAAAGTTTAGATAATTGTACTTTAGTTGAAATCCTTTTGTTGACAGTCGACTAAAAAAAAAAGCAGGTAGGTAGTAGGTAGGTAGAGTAGGTAGGTAGAGTAGGTAGGTAGGTAGGTAGGTGAGTAGGTAAAGAGAGACACGGTGCATCGATCTGACTTTAAAAATCTCAATCTCGTATCTTAAGCGTCTTTGGTTCCTGTCAGGCAGGTAGGGGGGAGAGTAGGTGTGATCAGGTAGGCAGAGCTCCGGAGTTAATATCTGGTGGATTGTGAGTTGCTAATAGGTAGTGTAGACAGGCAAGCAAGCAAGCAAGCAGTCAGGAAGGTAGGTAGGTAGGTAGGCAGGCAGGTATCAGTTGTCAACTTTTTGATGAATCTAACGGAGCCGAACGAGTTATAAGGAGGCCCAACGTTGCACCAGACATCGGGAATCGACCTAACTTGCAAAACAACTCGTAACTTAAGAGTGTCTTTGGTTCAATTTGGGAGGCAGGTAGGTAGGCGCTTAAGGTAGGTAGGTATATCTTACGCTTCTTGTTTCAAAAATAGTTATATATTAAAAAACAATAAAAATTTTTTGCAAATTTTATCAGTCGACAACTTTTCTTGTTAAAACTAAAAAGAGACGAGATATTGTAAGTGTTGCAAAAGTTGAACGAGACATGGTGCATGGAAGGATGGCTAGGCAGGTAGGTAGGTATTAAGGAGGTAGGTAGGTAGGTAAGCATTCCGTATTTCTCTACTTGCTTATATCCTGGTTGTTATGTGTTGTATCAAAAAATGTTTAACAAAGATAACATAGACTGAAAATATTTAGCACGTAGCAAACTTAAAAAACTAGGTTGGTAGGTAGGTAGGTAGGTAGGTAGATAGGTAGGTAGAAATGCAGGCATGTAAATCTGGTGAAGGTAGGTAAAAGTACTCACGATGGAGAACATCAAGCAAGAAGATCGCCAATTGAAAGTGGTACGGAAGCGAGTTGAGCAAATATTTTAGAGTATTTGTCTAGAAAAAATATTAATAAGTATTCAAAGTTTAAACTAATAATAAAATACCAATTCCGAAAAACTTCATTATAAACAAAATCGTCAGAATCCCACTGGAGAGGACTAAAAGTCACTCGTGTTGGCAGACGTCTGATAAACATCGAGGGTGTGTCCGGGTGGTAGGAGAAGCACATTATCGTGATACTTTGACACTGATAGATTCCTCAATAGAAGCCAACGCTTTTCCGAAAACTGGAATCGAAATGTTCAAAGCATTGAGAATTATTTTCTGGTACTCTTCAACCAGGCATGTTGTACTCCGAGTTTAGATCCGCAGAAAAATCTAAATTTGTATTAGATTGGGCGATACCGTACTTGCCTACCTGCCTACTGGTAGGTAAGCAGCCTACTTATTTTCAACTTACAAACCTCCTACTTTGTAACGTTTATTTCGCAATAATCGATTTCTCGAAATATTTGCATTTCCCCTCGACAAATGATTTCTTTGCGGGAATCTTTAGGAACAGCTGAAAATTTTTTTTTCCGTGTGGCCTTTTCACGGCCACGACGTACCTTAACGCTTACACATGGTGCAGTTGACGTAGTCATGCAAGAACCAATTTATTCGGCGGCGTTCGTTTTCGGTGACGGCGAAGTTTAAGCACGGTATGTAGAACCTTACGGTGGAGACGTTCTTTGATGGCTGGAAGTTATGACGTCATGTATAATTAGGGATGAGATTCCTAGGCCACGTGTGACGTCACAGCAATCCCCGAAACCCTGGCTTTTTCGATGGGCGATTTTTACTACATCGATACTTTCTAGGCATTCATCGAGCGAAACTTTTGTGATACTTTGGCAATGGTCATCAGGTAGACAAACAACGTGATAATTTCTAGGCCACGCTTGCCTCTGTCACGTGGCCGAGATTTCGCGCCAGGACCTAGAACTAGACAGGGTGCATCGACCTAACTTAAACCTCGTATCTCAGTTGCCAGGTAGGTAGGCAGGCAGTCAAGCAGATAGGTAGGTAGGCTGGTATTTTAATTTCATTTCTGCGGCTACAACACAATTTCTCTTCCAATCAAGGACAAATTTCTAGCGCCACACATGCAGAGTGCGGACTAATAATTAAAGTGTTTTACGACAAGGCCGAGAAAAGAGAAACCTAGGCCACTAATTTGTAGTGAGGTGTGATGTAACGCCACTATAAAACTATAGAACTCGCTTGACGCATAAAACTCTGATCATTTGCGGTTTCGAACTTGCATCGTCCTTCCATAGACCGCATCCTGAACGTACACTCTCGTAAATTGCGGCCTAAATTGTATAGACCCATTAAAGGGTACAAAATATGGGAATAATGGTGAATCCGGAGCGATTATCATCCAAATACACGAGAGATTACTTCGATACATAACCTCGAAGAGCAACAATTTCCCCACGAAGAATATCAGCAGAGCTGTGAGCAGGAGAGGCGATTATTATCTGGCGGATTGTGCGCTGAAAGTAGGAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAAGTATCGGGTGGTAGGTAGGGAGGCAGGTATCAGCTGCCGACTTTTCGATAAATATTAGACGGAGCGCCGAAATATAAATTGCCAAAGTTGTACCAGACATGGTGCATCGACCTTACTTAAACAACTAGGTGGTCTAGGTAGGCAGGCAGAGGCAAGTAGGTAAACTCACCGAATGCCTTAAAACAATTGCTAGAACATCGGCATAACCCGAGCTTCTCCCATTCTACGTCGCGACCACAAGCGCGCGCACACTTTTCCGCAGGTTCTCATCATCGCGATCAGCGCAAAAATCCTCGATTATCTCGAATCCACTGGCTCTTTTTTGTGTGCGACGTCTAATCGTTTATAGCTGATCGGCTCGGGAAAACCAATCGTCACACTGCAGCTTCGCATCCTCCAAGCGGAAGCCGTGAGAAAACTGGGCACTGCATAGGAACTAGAAGTAATTTCAGTCTTATTGTTCTGGAAGAAGGCTTTTTTATGGATGGGGTTTGAAAATAATCACTAAAAAAAAAACTTACAGCTGGAACTTTGTTCGATAATGAAACAATTAATCTATAAAAAGCAAATTTTTGACAAAATTTAAAACTTTAACGTGTATGAAGGTCACGTGAAAACTGAAAACAAAAATGTCGAAAAATAGCAAGAAAACGGCCTAGGCACACGTAGACTTATGGTAGGCAGCAAGGCGTAGGGGTTGATCCAGGCAGGGTCACGTCTTGAAGGCAGGTTAGGTATAGGTAGGCATAGGTAGCCATATGTAGGCGTAAAGGCAGGGGCATCTCTAGATCCTTTTTGTATGTGGCAGATTGGCCGCTTTGCAGGCAGGTTGGCAGGTGTGGGTGGCCTAGTAGACCGAAGTTTAAACAAGCGTAAAGTTCCTATAGTAGTAGGTAGGCCAAACCTTTTTTGTAGATGATGAAGTAGGTGTAGGCTGTCGTTTGAAGGCAGTGATGCAGACAAGGTTAGGTCGTCGCAAAGGTTGGCTGGAGGGTAGGCACGTGGGTCAGCAGATAAGCGTAGGCAGGCATAGGCAGGAAGGCATTAGGCAGGTAGACGTAGGCAAGTAGACGTAGACAGGATTTCAAATATGACGTGAAAAGGGGAAAATTTCTTATTCTGCGAGGCGATCCAGTATGCATAGGCAGTTATGGCGTTGGCCGGTAGGCGTTAGGTAGGCGTATGTAGGTAGGCGTCGATGTAGCAGGTAGGCGTAGTCAGGTCCTAGAGATAAGCAGGTAGTCGTGACCGGATAGGCAGGCAGGTAGGCGCATGCAGATAGTCCTAGGCAGGTGGGCGTAGGAACGTAGGCGTTGGCAGGTAGGTGAGGTAGGCGCAGGCAGAGACGTAAGCAGGTAGGCGTAGGCAGGTAGGCGTAGGTAGCTAGGCGAAGGCACGTAGGCGCAGGTAGGCAGGCATAGGTAGGTAGGAGTAGGCGATGCGCACATGAAAACCTTATAAATGTTTCAACCGCATAATCATCATCCCATTTTTCTCTCGATCAAAACGAAAAAATGCCAGCAGCAAACACAATTTGCATCCATTTCTCTCTCTTACTCACTTATATATCCTCACTTTATCCCCCGTTATTCAACCTTCCAAACACTTCCAAAACCTCCAGAACTGCTAGAGAGTAACACGGAAAATATTTGAACTTTTGTCTCGACCAAGTTTTTTTTTATTTTTTCTTTGGATTTCAACAAATTTGATGTCTGTATTTTTTCCATTTTTCGTGCAAAATACGGTAATGAACTAGGTTTTTGCTACGTGGCCTAGAAAATCTCGGCCACCGATTCTGATCTGTTGCAGGCGGCGGCCGCGGCCGAGGGTTTTTCACTTCAATTGATACCAATCCCTCTTTTACGCAAGGAATCACGTGGAGTGTGTCTCTTCATCTTGATTTACGCAGATCTACAAAACATAGCGGGAACTGAGTTCGTATCGTTAAGAACATGCTGACGTCACAGTTTTTTTATCAGCGTGTAAATGTAGAAGCATTCCGGCATTTTTTGTAGATAAAACCGCAATGGGACAGCCTGGCACCACGTGCTCTTCAATGGCAACCGTTATATTTTTTTTGACAAAATCTTGAATTTTCTAGGATTTCAATGAAAATCCAATTTTATACCAAAACTTAAAAAAAAAATGCTAAATTCGACTAGCAAAAAATGCACCCAGTTTTACAAAAAATCTTTATTTCTGAAAAAAAATTCAGTGGAAAATGTCTATAATATTCAGTATTTCATACTACGGAAAACAATTTTTACAACAAGTTTTGATGTGGCCGCGGCCGAGGTTTGCTTTTCCACGTGGTGTCAGACTGTCGTCTCTCGGCTTGATCTTAGATCTAAAAAAAACGCGGAAACTGATTCCTCATGCTATGTTAAGAACGCGCTGACGTCACATTTTTTTGATCGGAAAATTCCCGCATTTTTTGAGCGTTTGAAACCGTGATGGGACAGCCTGGCATTACGTGAAAACAAACAATGCAAGCGCGCTCAAATGTAGTCGAATATATTTGCTCTACCACCAGATAAATTCCACTTTTTCACAATAAACCTAAATATTTTTTGTGTCAAAATCTTGAGAATTCTTAGCATTCGAGAATTTCCGCGTAAACCTACGATTTTGTTATTGTTCAGGGGAACAAGTGAGCCACAAAGCTTCCACTGCTGCTCCGAATTCGATTCCCCTGAGGCATTTTTGTTCGAAAAAACCCTCGTTTGTCATACTCGTCGACTTTCTTCGAAGTTTTTGTTCTAGTTTCAAATAATTTTTCGTCAATACTTGTTCCTTCCGACCCAGCAGATGTTGTTGGGGGGGGGGGATGGGAGAAAAAAAATAAGAGAAGAAGCAGAAACTCGACACTTTTGTGTCCGCATTTCTCGTAAAGTAGATTTTTGAGCTTTCCAAGGCTCAACCACCTAGCAAATTTCGCCGCAGAGTTGATTTCTCCGGGATAGCGTGGGCTTTCTACTGGAGACCTCACTATTTTTTTGCCTTTTAGTAGAGCTTGTTAATCTTTTTTAATAATTTATTGCAGCTCTATGGATTTTCCAAAAAAAACCACCCAAAAGCCCGAAATAATCAAAATTTTCGTTTTTAAAACGCTAAATCCCGTACGACATGCCGTCCAAAGAACACTCACATAACAATGAAGAGATTTCGCCAAAAAAGTGAAATCCAATTCAATTTATTTCAATTTTGAAGAGTGCGTTCGTCTTTTTTCGACAAAAAAATAAGAAAATGTGTACCTTGTGTAGTTTTCAACAGATTTATTGTTTTATTAATTATATAATAGAAATCAAACCTTCTTTCTGCCGACCTGTAGATGGCTACCTACATGCCTAGTTGCAAGTAAGGAGACCTGTGTATCTATCTAGGTACTTATCTCACACCACCTACATACCTACTACTCACCTCCCTACTCATGTAGACATAAGTGATCCTCAAAAAGGAATGCGGTAGATCAAAAGTTTATGGAAATTTATTTCGATTTTCAGGTTTTTAAAATTGCGGAAGATGTTTTCATTTAGATTGAAGATTAGTTTAAATTTTTTTTTAATTCCGTAAGAAAAAAAAATTATTAGTTTATTATTACTCTTTCTATTCCGAATATCTATGTGAAGCTCTTTTTAATTCCTTGGTTTTATATCTAATCTTAAAATCGCTAATTTCTTGTGCACCCAAGAGATTTCGAATTTTCACGGGGTTCTAGCCTTCCTCCTTGAATTTTTCGCGAGTCGCTCCATATAATAGAGAACCGGGCAACGAGTGGGAAAGTCGTGTACTCCACACGGACAAATACATTTAGTTTACAACTGAAACCGAGCCGCAAACACGCAACGTAAATCTACCTCAGATATGGCCGTGCTAAAATGGCCTAGTTCGGCCAAACTTCCATTTCAATTTATGAAGCCCAGAAATACCGTGTAATTTTTGCGCCATCAGAGACGCCATGTGTCGATTTACGAGATTGTTGTATATTTACAATCGGGAATGCGTAATATTTACTAGAATGCGGATTTCCGTTTTTTTTTTATGAAAAACGTCATCCACAAATTAAATTCGGCGATTTTAAAAATCGCGTTAAATATAAAATCAGGGAAATTTTTTAAAATTTTTTCACGTAGGATATCGGAATACAGGGGAAAATTTGGAGGCAAAAACTAATGTCACCCTGATCATGTTTAAATTCTTTAAACTATTGATGAGAATCCTTTTTTCCTAAAATGAAATAATTTCTGACTTTTTTCTCTTTTCAATAAGAAGCTAAAAACAGACGAACCTATTCCAATTTCCCACCACACCAATTCATTCTTTCCGCATTCTTCTTCTTCCATTATTTATCTACCTTTTCCTGCATTCTCTGTGCTCTTATAAATAGTTCCATCATCCCATTTGCTTTCTTGTTGTGTGGTATGCACTTTTTCAGGTCCATAACCTATACGAAAATTCGATTTCATTTTCCATTCTCAATTACATTTTAAAAATTTTTTAAAGCAAATCTCGCCCTGAGTCCATCGATTTTAAAATACGTTTTTTGGTTTTCAAGAAATTCCATTATGAAATTCGGTGTCTTTCAGACAATTTTGAGCCTAATTAAACAATTTAAACTTTTGACTACATCACCTTAAACTTAATGCCGTTTAAACTTATAACTTTTTCAGAATCCCATATGCTATGGAAGTATTGCACTTGCTACACCGGCTAATTCTCATGATCCTGGTCCTAATCCCATGTTTCTGGCAAGCTTACGATTATCCCCGTTCTCGATTCTCCGATTCTCTGATCTATCAAGAAATTCCGCGCAAAAGAGCTGATGATTTCAAGGGAGTTTTATGTGTGCTATAGCTTACTGACAGGATTTCAAAAAACAGTTACGGTAAGATAGTTTTTTCGAAAAATTCTTTCACGGATTTCTTGCTTCTTGCCGAACTAGGCCATTTTGGTTCGGCCATATCTGGGGTAGATTTACGGCGCGTCGCGTGTGGCATCGCGGCTCGATTTTATTAGTAACTAAACTAAAGGGATTTGTCCGTGTGGAGTACACGACTTTCCCACGCGTTGTCCGGCAGGCGATTGTCAATCATGGGGAGCGCGAAAAATTAAATGAGGAAGGCCAGAACCCCGTGCCTGTATAGGATATTTTGAATCTCGAATTTTAACGAAGATTTGATTGTTTGAGTTTGAGGTCGGAAAATAAAAAATTCCTTTACGGTAAATTTTCGGATGCAAAAATGTGATTCTGCTGTAAAAAATCCGAGAAAGCCAAGAAATGTGCGGAGCCTATTTTCCGATTTTATATTACGTGGTTGGTATTTCAAAACTTCAAAAATATCAAATTCGGAAAAAAAACCGCTACTTGGTAAAATTTCCTCGTAAAATATTCTCCGCTTACGCCGCCCCTCTCTGGGCATTTGGAAATTTTTTCGTTAAATTTGTTGGAATCTGAAATTAAGTCCAAAAAGAACCAAGAAACGGGCGGTATTATGGGATTGAGACATGGTGCATCGATATGGAAACGGCTTTTCTCAATTTGGTTTTTTTAAGGATAAGAAACTAGCAAAACTCAAGTGGCCTAGCTTTCAACTCTTCCAGAATTCCATGATACATTCAAACTGGTCATTGCTCATTGACGCTCTCTCTTTATGTCATCACCATAACGAATCCACTCAATTTTCACTCAAGCTGTCATCTCCAGCAGTGTCTCTCAATTTAATCATGCTTGAAATTGTTTTTATAAAATGAAACAACAGCGACATACTCTGTAAAAGCTATTATTAAAAAGTATATATATACACGAATTCCTGGGTGGGGATTGAGACAACGGAAGACATGGAGGAGAATTTGAATTTCATTAAAAAAAAAAGACAAAGAGGTAGGTTACTGTAGCATCCAATCTGGAAGTGGCTGCACAAAGAAGAACCTCCACCGTCAGCAATATGTTCGACACACCTGGAACGTTGAAACGGGGTATTATTTCCTTAAAATTTTCTTAGTCTAAGCCTGAGCCTAAGCCTGAGCCTAAGCCTAAGTCTAAGCCTAAGCCTAAGACTAAGGCTACCTGAACCTAACCCTAGGCCTAATCCTAAGAAAAATCCTAAGCTTGAGCCTAAGCCTAAGCCTACTAAAGCCAAAACCTAAGCCTAAGCCATAAGCCTAAAGAGCTCCCAAACCTTAGCAAAACCTAAGCCGAGCTTAAACCTGAGCCGATACCTCCTAAGCTTCCCTATGCCTATTCCTAAGCCTAAATATAAACCTAACCTAAGCCTAAGCCTACGCCAAGCGCGTCAGAGCCTAAGCTGAGCCTGAGCCTAAAATTAAGCCTCAGCCTGAGCTTGATCTTAAGCTTAAACCTAAGCCCTGAAAATTTTTTTTTGAACTCTCGCACAACAAAATTTGTAGAATGTTATGAATTTAAAAATTGAGATTCTAAAATTCCCCGCCAAAACGTTTAAAAACTTCACATAATTTATCTGTTTAAAATCTATATCCATCAACGGCCATACCTCTTAGATTTAGATTTTCGCGGCAAAACTTGTAGATCATTTCAAAAATTTACTTTCGCGCCAAAGATTGTTCGGCTCGCGAAATTTACAATTTTATAAAAAATGTATTTCACAGAATTTCAAAAAATCGAAAATCGCGCCAAAAAATCCATTTATAAAATTTTTTAAGTATTGTGACGTCATAGACTACAAACTAACCCCTCTATTGCCCCTCACCGTGCTCTCCAATGAGTTCGGCTCCACTTCATCAATCCCTGGGAACAGGCCCGGGTCCTTTTTTTCCTCGTGGGCCTTGTGCACCAATCGGGCAGTCGATACCAGGCATATCAGACGGTCCTGGCGTGCCCGAATTCTCCTCTCTCCGATCGTACCTGCCGTTGGACCCGATGGATGAACGGTTTCGTGTGGCGTCCGCACCCGGGTCGCCCATTTCTCCATCCAGTCCTTGGCCTGAGTGCCTTGTAGGCCTTTGGGTCCCATTTTTCCTAACCATTTTCCGCGAGCCGAAGTCCATTCTTTCCGGTAGTCCTGGCTTACCAGTGCTTACCCTTTCACTCCCTGAAAATTTAGTTTGGGGTATAGGCCTATCAAATAGGCTTACCGTAATCCCAGTGGTTTGTACTTCTCTCGGACACCGGATCCGCACACAAAGACTTATAATTCACAGGAGGCCCACATGGCAGGCGCGCTGGAAGTCCAGGCGCACCTTCCGATCCTCTCGTTCCAGGAAGACCGTCTCTTCCTGGGATCCCGGGGGGCTGTTCCTTGTGGATGACGGCACTCACATACTCGGTGGATCTTGCGGTTTGGCCGGTTTAGGAAATCGTCCATTTCATCTCTTTTCTGGCGGGTTATGTTTTGGAAATCGTTGGCGACAATCGCATGTTTTTCATCTCGAGGGCGCTCGGGTCTTTGGACATTTAAATTTGCTTGAAATTTTCAAACTTGTTATATTATAATTTACAAACTACTGACTTTGTATGTTTTTTTTTTATTACAGGAACACAAAATTCTAAGAATGCGTACTGCACAGTATATTTGACGTGCAAGATATCTCGTAGCAAAATCTACAGTGACTCTTAAAATGCGATGACTACAGTCGCGCTTGTGTCGATTTAGCTCGATTTTCGCAACTTTTTTTCTTTTGGATTTCCTTCGTCGTGTTGTTTTCTAACATCTTTTTCTTTCAAAATTTCAATAAAGCTTTCTATCGATAAATAAATCTTTTTACTTTATTTCGAAAATCGCCCGTAGATCGACTCAAGCGCTACCGAGTCATTTAAAGGTTCACTGTAGTTTTCGCTACGAGATATTTTACGCGTCAAACATGTTGATACGCATTCTCGAATTTTGTGTTTCTCTCCATCATACTGTGTTTTTTGGATTTGAATGGAAGGAAAAGCCCGAAACTTTTAAAATTTTTCGGTGCATTCGGTATCCAAAAAGCTGAATAAACTAATGTGTACAAAAAAATGCCACATTTTATTGAAAAGTTGATAATAAAATAATTTGTTCTAATTAATAATGTTTTGAATTTCTCAATTTTGGAATTTTTGGATTTTTTCGGGCCAGAAAGTAGGCATTCTCTGGAATGATGTTTTCTTCATAATTATATATTCAAAAAAACGGACTCCCACAAAAAAAGGTCCGAGAGGCGAACAAGGTTGTAAAACTTGCTATTGTTTATTTACAACCGCCATTAGACACCTATAGGGGTTGTAACAAGCCACATAACAATTTGATAAGATGCACACAGTAGGGAGAGAGGACCTGATTTAAAAATATAAGGAATTTTCTCATTAGATACAATTTTTCTCTATTTCTTTCACGGTGGAATATCGAGAGGAAAATCAGCGAAATTTGAAATTTTTGAGAGGTTTTTTTCTAAACAAAAAAAGATTTGAAAAATTTCAAGATATTCTGTGTATTTATCGATAAAATTTGAGAAATCAAGGGGGTCGTATAGTAGTGAGACGGTCGGTTTTTCTACTTTCAGCTAACTATATGAAATTTCATTTGTTCAGAGACGGTTTTCTGACATTTCAAATCAAATGGCATTAGCTGTTTTTCATGAAAAGTTTCAGAAAGTATCAAAGCTCGAAATGTTGGGAGGGTCGTATAGAAGGTGGACGCACTAAAAAAAAAGGAAGTGGTTCTAATTATTACGGAAACACCAAATTCTGAGAATGCGTATTGCAGTCAAAATATGCGCAAAACTTCTCGTAGCGAAGACTACAGTAATTCTTTAAAACTTTTGAAGCGATCGTGTCGACACGTGGTGCCGGGACAGATTGTCTCAATATTTCGGCTTGATCTACGTAGAACAAAAAATGCGGGAGAAGAGACGCAGACTTCTCAGCTTACTGATTTCTCATGGGGAACCTGCTGACGTTACATGTTTTCGGGCCGAAATTTCCCGCATCTTTTATGTGGGTAGATCAAACACACCGTGATGGGACATGGCAATATGTGTGTCGATTGTTGGGTTTTTGAAATTGATTAAAATAATTTAGTTATCGATATTATATTGAAATTAAACAAACAGTGAGAAAATAACTCGAGCACGTAAATCGACACTACAATAGTCATATAAGCTAGAATTACTGACCGTTAGCAATGCCACAAAATATGTTTGCGCGTCTAATATATTGCGCAGTACGCATTCACAGATCCGTCATCCAAGTCAAACTCCTGACAGTACTCGGCATCGTTGACATTGAATTCTGAATAGCCGAGTGTCGAAGTATTGAGGCAAGGGGTCTACGAAACAATGACGACATCGTGGATAGCGAGATAAATAGTGAATCTATGATTCACGTGGCGTGCTTTCTCGAGCATTCTCGTTCATTTTCCAGGAGAAGCAAGAGAAGCCTATGGAGAACGAAAAGTGAGTAAAGAGGAATGATGCGCTGGCGCGGAAAAACGAGAGCGTTTATGTATGGGAGTGACCCAAAGACACGGAAAAATAGATAACAAGAAGAACAAGGGGGCAACTTTCTCTATCTCAACATATCATCATCACCCATAAATCATTATCTCCTTTCTCCGGGATTTCATGAGAATAAATCCATTTACTCGTTTTTTTTGTGTCTTAAGTCTGCAATAAATATGTAGCTAATTTCAACTTTAAAATAAAACTTAATGAAACTAGTAATTCTATCATCTCTCAGCATACCCATTCCTTTCTTTTATATATAACTTTTATTCCACTCTGTATTTAAAGAAATTTCAAGTTTAGAGTCTAACTTGAAAATTGACAGTGATGAATATAAAATTATACGCGTAAAGAATATTTCGAGAGAAGTTGGGAGTGTAGTCTTGGAGGAGGAGAGAGGAAAGAGGTGAGGAAAAATTACGTTTTTTTGAAGTTTTTTCTTTAATTGTTCGAAGGATTAGGCTTAGGCTTGGGCTTAAGTTAGGCTTAGGCTTAGGAATAGGCTTAGGCTTAGGTTCAGGCTTAGACTTAGGCTCAGGCCAATTTAAGCTCAGGCTTTTGTTCAGGCTTAGGTTTAGGCTTAGGCTTAGGCTTAAGCTTATGCTTAGGAAGAAGGGTATAGGCGGCCTAGGCTTAGACGTGCACAGGCGTACATTGGCTTAGGCTTAGGCTTAGGCTTAATCATTAGGCTTAGCATTAGTGCTTAAGGCTCAGGCTGAGGCGTAGGCTTAGACCAAGGCGTAGGCTTAAGCTTAATCTAAGGCTTAGGTGTCGACTTAGGCTTTAGGCTTAGGCTTAGTCTTAGGCTTAGGTTACTCTTAGGCTTAGGATCTCAGGCTTAACGTAGGCTGCGGCCTGGGTGAGGTTTCGGCTTAGGTATAGACTTAGACTAAAGACTTAGGTTTCCTAGAATCAGACTAAGGCTTAGGGCTTAGGCTTGGGAGGCGCTACCGAGGCTGGGCGGATCAGAAAAAGAGACCAAAATTCCAGGGAAATCCAAATAAAATCCAGAGAAAATAATAAAAAAAAGGAAACAAAAAACGTGAAAAATGGGCATTCCGCGTCTTCCGCGTCAAAACCCGTTTTCCTTAAAAAACGGACAGAGGAAAGGACCAAATTATGAAATACCAAAGTTTAACAAAAAATATTTAAACATTTTTTTTGCCGGGGTTGAGCTCACCCAGCTGAGCTCACTCCATAATTGCACACAAAGTGATTCTCAAAAAATTAATTTTAGAGACTACGAGGCTAGCAAATGGAATGCACATGCTCTGATTTCTCAGAGCGGAAATGCCCGCCAGGCTCCAAAGAGCGTGTGCTCCAGGAGCCGATGGTCCTGAATCCCCGGCTCCAGAGGTCTGAATGGTATGGATGGAGAGGCTGGGCACAGTAATATGGCTGGTATGTTCACTGTAAGTTGCCCAAGATCTTTTTTGTAAATTCATACTCCAGTCATGAACAGGATGCATCCGTTGCCTAGCGGGTCCTCCAGGTTCTCGCCTGGTGATCATGGATCTCCTGGTAGGGTACCCCGGGTCAGGACCTCCAGGGGAACCCGGTTACGCAACAATTGGGCTTATCGGGCCACCTGGGAGCGACTCGCAGGCCAAGATGGTCTAGATGGAGCTCCTGGCGAGATAGCCGCAGTGGAATGGATGCAGGGGAGATTGTTTCAGTTGATGGAAAAATTGGAAGAAGAGGAGAAGCGGGGAACAAAGGAAGCAAAGGATCTCGAGGAGGGGTTGGAAAAGCTGGAGGGCCTGGGGTGGCTGGAGAAATGCGAGAAAAAGGAGTAAGAGGTGAAGATGGAAAGCCTGGAGAGTCTGGAAAGGTGAATTTTCAGAAGTTGATCGATGCACCAGGGAAATTAACGCGGTTTTGCCGATTTGGCCGGAAACTGTCAATTCCGGCAATTCGCCGGTTTGCCGATTTGTTGGATCTCAAATTTGGCGGAAATGTTTAGAGGGGTTTTTTAAAAGACGAAAACACTTAAAACTTTATCCCCTTTTTTCCCGTTTACTAGGGAATATAGTTAATAGGGGAATTGCTAGGAAGAAAATACAAACTTTAAATGACTGATGAGGTCTTCTGGCTACAAAAATCATTTTTTTCATTATTATCATTTTCATAGAATTTGCTCTCTTCAAAATAGACGTAGGGACATACATAGGATGCTTAATTTCGCCGTTTGAAATTTACATTCTGAATTATCCAAAAAAAATCGGCAATCTGCGGTTTGTTGCCGGAAATTTTCCATTCTGGCAATTTGCCGATTTGTGCCCGATTTGCCGATTTGATGACCGGAGTTAACTTTCAATTCCTGCAATTTGCCGCCGTTCAATTTGCCGATTTTCCGGAAATTTTAATTCCGGCAATTTGCTGATTGGCCGTTTGCCGGAAAATTCAATTGCAATTTGCCGGTTTGCCGATTTGCCGGAAATTCAATTCCGGCAATGGTGTTGGGTTTGCCGATTTGCCAAAAATTTTGGAATTCCGGCAATTTGCCGGTTTACCGGCCAAATTTTCCAATTCACCGGCAATTTATTGATTTGCCGATTTGCCGGAAATTTCAATTCCGGAAATGTGCCGATTTGACGGAAATCTAAAACATTCTCCGGCCGAATTTTCCAAAAGTATAATTTTTAAGCCCGGCGCACCTGGAATCCCTAGAAGTAACTGCCGATGTCCCCAGTAAATCGTCACGATATTTCTCCATATAGAATGATGGAAAATCTGATAATAGTAATAAAGATAATAATAAAATAAATACAGGCAGGAAACGAAAAGCGAGCACTGACGATTGTATGATACCCGAAACATTCAGGAGGAGCACAAAAAACACAATGAAAAGACACAGCTCAGAAAAATTGAAATTGAAAAACTGGTAACGAGACTAGAATCGTCATGATGATCTTGTAGAAAAAATTGGAAAAAAATTAAGAATCTAGGAAATTGATTAGGTTGCACGCAGACTTGACACGAGCTCGGGCACCGAATCCGCATAGGCCAATGTTTTCGCATGCTCTTGAGCCCATGACGGGCAGAGGGAGTCATGATCGATGCATCTGAAATGGGGATATTATTTTTTACGCTTCAGGTTTAGGCCTATCGACCCCCGTTTGGATCTCCGGCTCAGGTCCTTAAATTGTGTATTCAAGCGTAGGCTCTCTCGCTCCAGCCTTTAGATTTTAACTTCGATCTTAGCCTTACACTAAGCTCTACGACTGATCTAGGATATCATACTAAGGGCCACTTTGGGCCTGAGGCATAGGCTAGTATCTCAAGCTTAGGATCTCACGCTTAAGCTCTCTGACGCAGGCCCATAGATTGCAATGTAAACCTTGGCCTTAGCCCCGACTGATTTAGGATATCAGACTTAGGGCCTAGGAGTTCCGGCCTGAAGCTTAGGCTCTCAGATTCAGGCCCTCAGACTTAGAGTCTAAGGCCGTTAGACTACGATTTTCAAGCTTACAATTAGGCTTTCACTTGAAATCAAAATCCAATTAAGTTCTTTAAAAATAATCAAACATTTCTAAACCGCATACAATTTTTTAAAAACTACCCTAAATATTTCAAATTTTAGAGGTTAGCCTGGACTTAAACCTTTAAACTTTTGGTCTCAAATTTAGCCTACAGGTCTGTGGACCTAAGATTTTGGACCTCGGACTGCGGCCCTTAAATCTCATGCTTGGGCTCTAATGTCCTGGCACGCTAAGTCCTAAATCTTTTGATCGTAGTTTCAGGCTTTCATGCTTTCAGGCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTGAGGCTTTCAGGCTTTCAGGCTTTCAGGGTTTCAGGCTTTCAGGCTGTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCATTCAGGCTTTCTGGCTTTCAAGAGGCTTTCAGGCTTACAGGCTTTCAGTTTCAGGCTTTCAATCTTTCAGGCTTTCAAAGGTTTTCAGGCTTTTATGTTTCAGGCTTTCAGGTTCAGGCTTTCAGGCTTCTTTATAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCTGGCTTTCAGGCTTTCAGGCTTTGAAATACTTTCAGGCTTTCAGGCTTTCGGACTTACCGGCTTTCAGGCTTTCAGGCTTCCAGGCTTTCAGACTCAGCTTTCAGGCTTTCGGGTTGTCAGGCTTTCAGGCTTTCAAGCTTGGCTTTCAGGCTTTCAGGCTTTCAGGCGGGCTTTCAGTCAAACTTTCAGGACTTTCAAACTTTCAGGCTTTCAGGCCTCACTGTTTCAGGTTTCAGGCTGCTTTCAGGATTTGAGACCACAACTAGACCGGCAACACAAGTGTTGTCAAATTACTCACCTCTTTGCCGGCGCTTTATCCGATGCATATTTGATGGTATCTCGATTGTCTTTGAAGCTTTTCAACCCGCCCCAAGTTTCCAGCTGTTGGAATGATCGTTGTAACATCAAAAATCATCATCAAAAATCGTGGTGACCCAAAATTACCTGATTCTCAGCCAAGAATCCATCCAAACTTGCTCTACTCAACTCGGAGACAGGAATGAAGTACTTGACGTGGGCTTTTCCCTTTGCCCAATCTTCTGAGCCACCGGATGCGGGGTCTGGAAATATTTTGAAATTTTCTCACATACATAGGAGCCTTAAGAAATAAGCGCTTACAAAGTGTATCTGCACCGGTTCCAACTTTGTACTGCGTGTTGAAGACACTATAAGCCTGAGCTGACTGAGAGGGCAGTGGATCTCTGAAATATTCAGTAAAATATGACCATGAACTTGGGCAATTCCCGTATTTTTGTAGATGACACCGTAATGGCTAAACACGGGGTGCCAGAGTGTCGCGTTTTGATCTACGTAGATCTGCAAAAAATGCGGGAACTGATTTCTCATCGGTTAAGAACGTGCTGACAAATTATATTGAGCGAAAAATTCCCGCATTTTTTTGTTAAGATCAAACCGTAATGGGACAGCCAGGTACCAACTAAAAAATTTACTCCAACCAAATCATTTTTCAAATCATTGGAATAAGTTCTGTTGATGGCCGAACGGATACATCAAAATTTGACTGAGAGTCCGAGTGGAAGGTGAGGAATGTCGAAATACGGTGTCGCTGCACGAAATCTCACCGCCGCAGTCTCGGGCAATATCCGAGAAGGCTGGTTTAGAGGCTCCCTGATAGATTTCCGAGGAAGGATTGATGAGCCGACTTGTCCGTAGAACCAGTCAAAGTTTCGACTGAGGTCGACACCTTCAAAGACAGCGGGTTGTTGAGGGAGGTTGGGAGAGTCCTGAAAGGTTCTTATTTTTGAGATTTTTAACGTTCACAGTCGGAGAATTGCCGCAAAATCTTAGTTTTCATAGCCTGTGTGACATTATTAGGGCGTATCTAAAGTCCAGAAAGCGTATGCCTTGTGCTGTTTTTGCAAAAATTGTGCCCAGTTTTCCCACTTTTTAGTGGTTTTTGATGGGTTAAACCTAAATTTTCTGAATTCAAGTTTTTACTTTTTCCAACTGTTTTTTCAGCCGTCGAATGGCTGTCCTTTTTTTTGGGCAGACAAAAAAATAATCTTTCTGAATAAGCTAATCGAAAACAATTATAAAAAAGGCAATTTTGTAAATTTTTTCTAGTAAATTTTGAGTCCTCTACAAAATAAACTATTTTGGACGAGTTTCAAAAATGTGAAACATTTCTACAAAAATTGCCCAATTTTTGCCCTTTCTGGTGGTTTTTGATGGGTTAAACCTAGATTTTCTGAATTCTGCGTATATAAATTACACGAACAAATTTAGACATTTTTTTTATTTTTAATTTTTTTCCAGCCATCTAATGATGATTAGTTTTTAACAAAAAAAATTTCTGAAACACAATTATTATAAAACAGGGGTGTGCGGCAAATCTCAAAATTTGCCGAGCACGGCGAATTTGGCAAACGGCAAATTTGGCAATCAGCTAATTTGTTGAGCTTTACAATTCCGCAAAAATTTGATACTTAATTTGAACCACCTAAACTACTAATTTCTGAACAAAACGTGTTCAATAACTTGATTTTGTGCCATTTTTCTAAATTTTTGGAAACCAATAATTTTGACAATAATTTTTGAGGCTAAACTTGTATTGTCAAATTTTTGACGCGGGCGGCAATATTTCAAAAATTTCTGAGCTCGGCAAACAGCAAAATCGGCAAATTTGTCAAATTTGCCCCACATTTTTTTTTGGTTCATAATAAAACACTAACATTTTAGATTTTTCATAATTTCCCGTCGAAGGTTTAGCAATTGCTAAAATTCTGAAAAATCTGAGTATTTTAGGAAACCCAAAGCAATGCGGCATGTTCCGACCCCAATGTATTAATACAAATGATTAAAACAAACGAAATTACAGTAGACAAAATGTAGAAAAAAAATTATTTTTGGTCGACTCCAAACGAATTATGAGTGGCAAAAACTTTGTAATAGTCACCTTTTGACAGTAAATAAATTAGAATTTTTTTGAAAAGTTTTATTATGATATTCGGTCATTGTGGGACCAAATGAGTGGTTTTTAACTATTCCGGCACTGGCGCAGTCCAGCATTTGCCGTAATCTTAGTTTACATAGCCGACATATGCGGGCCTAACTGAAGCCCAGGAAGCTTGTTTACAAAAATGAGCAAGCAGAAAAAGATCAATCTCCCCAACAAACCTCTTGCCTGTTTATTACACTTTGGTGGTGAGCGATTCTTTCTCCATAGTCTGATCTCCGGATGTACATAGCTACTTCTACTGTACTCATAAGCATCCGGATTCAGCAGTGGAACAATATTCCATTCGAGTTGATCTACGAATTGCATGATTTGAACATTTGTCGTACTGGGTGACCAGTTGGTGAATGAAATAGAGTACTGTCGATTGTGACACCCATTCACGAGCATGGATTCCTCCGTCCACCCAGATGCCACGTTTCGTACGTTACGCTTGTTGGTGATCTGGAAGTGAGGAAAATTGGGGTGAGATGGGATCACTAAATTGTTAATAGTTTCTGTGCTTCTGTGTTTATGTTTTTTGCGCTCCATTGGCAAGAAATCGCCTGCCCATCAAAAACCGTCAAAAAGTGGCAAAGCGGGGCAACTTTAAATTCCCAATTTTGAAACTCCTCTAAAATGGTTTAGTTCGTAGATAGAGAGGACTTAAAACTGATTTTTCTATAAATTGTCTAAATTTGTATTGAAAACGGGTAATTCTTGTATATCAGAAAATGGTTTAACCCATCAAAAACCATCAAAAAGTGGCAATAGTGTTCTCGGCCATTTTTGCGTGATAAAAATTCACAATTTTGAAACTCCTCTAAAATGGGCTATTTTGTAACTACTCAACATTTCCAAACTCTAAAGAATTGTTCAGAATATAGTGGTTTCAATAATTTTCGAACAGAATGTTTTTTGCCCAAAAAAGGATGGCTGAACAAAAGGCCGAAAGAAAAAGAGTTTTACACTGAAAGCAAAATCGTGACGCGACACGAAAGCTAGGTAAATCGACCCCAGCCGTTCCAGGCCGAGTTCAAATTGCCAAATTCGGCAAACTCTCACATTTCAGGCTATGTATTTCAAGCGAGAAGCGCGTGCGATTTCTCAAAAACCGGCAACTCAGTTGGGAGGACTTTACGAAAAAAAATTCCAAGGTATAATTGGTAGGTTTAGTCATGTTGCATGGTACTTAAAATGTTTTTTTAACTTGCAAAAGTGGCTTTTATTTTGCTTCTTAGTTTTGCAAGCCGAATAATAAAAATATTATCCACGTTTTTAATGCTTCCATGGTAGGCAGCCGCTCGCCAACATGGAAGCCCTACATGTCACGGATTTTTCGCCAGAAATTGAAATGTGGAATGAGCTATGCCGTACGAGGCCAGGCCATATCTGTGGTAGATTTACGGCGCGTTGCATGTCGCGTCGAGGCTCGATTTTAGTTGAACAACTAAATGCATTGTCCGAGTGGAGTACACGACTTTCTCACGCGGGCGATTGCCAATGGCGCGCGAAAAATTGAATAAGAGGAGGGCCAGAATCCCGTGATCCCGTCCAAGCAAAGTTAAAACAACAAGCAAACCTTAATCAACGGGATCTGCCGTCCTTCGTGAGTCGAAGTTCCGATTGGCTGCAGACACATCCGGATATGGTTAATGACGTTCAGGTAGTTGATAACATCATCAAACGATTGGTGATAGGCGTTGTGCAAGGTTAAATTGAACCTGCAATTATTGAACTATTATCATTGAGGAGAACGTGGTGTCTGGGTGCCTCATTTTAGATTGATCGCTGATCGACAAAATGCGGGTGAAGAGAATGATTTCGAATGGTTAAAAACGTGCTGACGTCACATCTTATGGGCTGAAAATTCCAACGCATTTTTTGTAGCTCAAACCCTAATGTGACAGCCTGACACCACATGTATTCACTCACTTTCTGCGGCTCCCTCCAATCATGCAGTCGAACTTGATTCCGAAGCTAATCCCGCTTCCTTCTGCTCGACAATCACTGTGAAATGATCGATGAAAAGATAAGTTGGGCTTAATAGTGTCCCCCCACGAATACACTCATCACGCGTAACGAGCCGTGATGCGCGGTGGTTTGAATAAAGAGTATTTGGACTAGTGATCCCCCGCGAAAACCTGTATCGCGACTACGTGATGCCAGGGTGTCTCATCACGCGGGTTGATCTACAAAAAAAGCGGGAATTTTTTGCCCAAAAATGTGACGTCAGCACGTTCTTAACCCTGGAGCACCGAATTGAAGCAGTTCCCGCATTTTTTGTAGATCTACGTAGATAAGCCGAGATGACACACTCTAACACCACGTGGTATGCGCCGAAAAACTCACTTCTGAACGGCACCAATCATCGTTAACGGAATGCTTAATCGAAGGATCATCGAGCTCTTTCATAAACTGCCGTGTTTTCTCATCGGATATCATCACATGAAACTCCTTGCAAGCTAAGCTCCGACGGGGATTTCCAAAAATCTAGCGGAAAATTTTAGTGTGTCCGGAGGCACCCTAGTATACTTATATTTCAAAATTTTTCTCTAACCCCTCAAAACCGTACTCTACATCGCCGTACTGGCCGAGTGGTCTAACGTTCAGGTCGCAGTCTCCGGAGGGCGCAGGTTCGAATCCTGCGGACGGCAGATTTCTTTTTAAATACTACTCTTCAATGCATGATGAAGAAGAAGAAGAAAAAGAAAGAACGTATTGGCTTTTACTTTTACACTTTTGATAATCCCTAGGAACAGGTTATAAACAGCGATGCAACATGAAAAGCAGCAGTGAGTGAGATGGACAACGAGCTGATTTTGTTCTTCAATTATATGACACCGCTATTTTAATGGTTGGTTTGTTGCGTGGAACATCATACCTTTAAATGGTTGAATTACAAATCATGTAATAATAATGTCTACTTGATTATCTTGGGTCGTCGGCTGCACCATCCATACTGTGAATTTTCTGAAGAATCTTTCTGAGAGTTTACCGGCTGTTGGGGGAGAGTTTACGATTAACGTTTGAGTTTTTGGATAGATCTAAATCTAGAGAAGATCATGCGGCGGTTAGGTATATTTGAAATAAAAAACAATTGACCTAGATATGAAACATGGAGATCTAATGGATTTGGTAAAGTTGAAATTATTATTTTTTTGAAAATTTGTTCATTTTACAAGAAAAGACGAATAAATATTGACCAAAAAAATTTTTTTCAATCAAAAATGTATAAAAATTAATCATCGTTCCTTTTAGCTTTTAAACAGCGGTGGAGTAGCCAGTGTGGATTTTGTCTCCCTAAATACAGTCAATTATTATGAACCAAAATTCAAATATCGTGTAATACAACACTTCAAAAAACTTCTTTATTTCAGATTTTTCATAATTTCTGGCCAGACTTTTTGCAAATTTCCAAAATTTTTCAGAATGTCGAAGTTTCCGACCCCTGCAATGTTTTAATAGAAATGATTGAAACAAAATTACAGAATAAAAAATGTAGAAGATAACTTTTTTTTTTTGGTCGACTTCCAAAATTATGAGTGGCAAGAACTGTGCAATTGACACTTTTGTGAAAATAAAAAATTTTAAGAATGTTTTTGAAAAGTTGTATTATGATATCTGCCTCGGTCAGTTTGGGACCAAATATGAGTGGTTTTTAATAATATTCAGAAGCCACTGGCGCTACTCCCCGTTTAAAGTTCTATGGTTTTTAAAACTCACGTTTTTTTTTATGAAGTCTATTTTAAATCTGGACTCTCAGTCGACAGAGGTTCAGCATTTTTCGAAATTTCAGAAATTTAAAACATAAGTCGGGTCCTAAAAGCTACAAAAAAATTCTCACAAAATGTTTTTTTGATGAAAGCAAACTTATATAGGAGTGCCAAAATGACCAAATTTTGGTTTTAAAAATGATATTGAAAAATCTTTAGAAAGTCTCTTCTGGTTTTTATTTATTTTTAAAAAATTCATATTGAAATATTATAGTGCTTTAGATTGCTCGGAAAAAATTCCACACATTTTTTAATTTTTCATTAGTTTTATAATGATATTTGGTCATTTTAGCTATCTCGGGTAATACTGCAAAGCCACGTGGTGCCAGGATTTCCCATTAAGGATTGATCTACAAAAATGCGGGACTTTTATTCCGCTTAAAAAGACGACGTCAGCTCATTTTTAACCATGCGAAATCAGTTGAAAACTGTGCCGCAATGATTTTTTGTAGATCTAAGTGGGGAGATCAAACCGAAATGGTGAGACATACTGGCATCGTGTCCACCTTCATAGTTAGTAATTGCATAAACAAAAAATACTGAGAATGCGTATTGCACAACGTATTTGACCGAACGCGCAAGAATATCTTGCGTTGCGAAAACTACAGTAATTCATTTACTACTGTAGGTTGGTTTGCCACGCAGGCTGGATTTTTTGAAAAATAAATGAATTAAAATAGTTAATGGAATATTACTATCTCTATGTATTAGTAAATAAGGTTGAACCCGTAATGAGACCGCTGCCTACCTGCCTGATTATAGATGGCCGCCCTAAAATTAGGCAGGTAGGTTTTAACGCCTAGCCAGATACAAAACTTAAAGAGAAATGCCTAAAATAACAATAACTTACATCCTTTCTTATCGTCCTCCCCGGCGATCGCCTAAGATCATAGCTAACAACTAGCCGCTTTCGGTCATGCAATTATTATATTATAATTGATGGATGGATGGGGGATAATCCAGAGAAAGGGGTGAAAAAAGAAACATACCTAGAAAACAGGTTCCCCTGACTCAAAACCTACTTTTGATGTGCCACCACGGATGGCACGACGAGATACGATGATCACGTGTTCATCTTCATCATTTTCATCGTAGTAAAACTTGGGGGGGCTGATGTGGGAAGGATGCCCTCGTCAAGTGTTCGTTGAACAATCCGACACGGTTATCAAAAAAGCAGTGGTGTCTCCGCCCAACTTCCGCGCGTCAGCCGCCCTGTGTACTGTCTTGTCCTATAGCTCTCTTTTCTCCACCCCGGCTTGCGGGTGAGATTGTTCTCATTACTAGGTGAAGAACGTCTCTAGTAGAAGAAGAAGAAGAAGAAGACGACGATGGAGAAGAAGCTGAAGGCACGACGCACTGTTTGCGCCACGATGTTTGTTGTGTTTGCGAGCGTGAGCGCCGCAATTAAAACGTGTAGATCGGTTTGAAAAGCGCGCGCGCGCGGTCATCTTTCTCCGCTTGCGCGCACGCATTGACAAAAGACCGAGACAAAAGGTTCAAAATTGAAGAGGCAAACGTTCGTCCTCTTAGCACCTAAATGTGGAAGCATAAGATTTTGCTCTGAAAATGAAGTTGGGTAAGCTATTCCTGGGTGATGTTCTCAAATTCCGGGGGCATTGTTGGGAAAGTGAGGACCAAAATAGGCCATAAAAAATGCAGATATACATGCTAAGGCTTTGGGGGCTTAGGCGCAGATTCAGGCTTAGGCTTAGGCTTAGGCTTAGGCTTGGAATTAGGCTTGGCGTCAGTGGCGAGCGTGAGCTCGCCACGGACGCTATTTAATTGGGTTTATAACGTTTTTTTTTCGAGTTCCCGTCGAGCGAAATTCAACTGAGAGTCGTATAGGCCGCCGAGAACCTGACGTTCCAAATAGGTGACTTCATTAAAACTCTTAGGCTTAGGCTTAGGCTGTCACTAGGCTTAGGCTTTTAGCCATGCTAGCTGATCCCGAACATATTTTTAAAAATTGCAATATGTGACCAAAAGCTGTATTTTTCAAAAATCCAAAAGTACGCGAAATCATATGAAGTGCTTCTTTTTCTTTCAATAAACTGTTCAGAATTGTCATTTTTACTAGAAAATACCACAAAAATATGCTAGCTTGACCGGAACATATTTGAAAAAATTAGAATTTTTGACCAAAAGCTGTTTTTTCAACAAGTTGAAAAGAACTGGAAAATCATATGCTTCTTTTTTCTTACGTAAAACTGTTCAGAATTGTCATTTATACCAGAATATATTAAACAAAGTATGCTACCTAATCCGAAACATTTGTTTCCAAAATATTTTAAAAAAAAGATTTAGCGGCTCTGACTAAATTGTTTGTTCGTTTTTTCTGGTTTTTCCACTTTTTCGGTGAAAAATTTTGTAAAAAATTTGACCGAGGTGCGTGTTAGAGTTGAATTCATCAAGTTTTGACATTATTTTAGTACGGGCACAGTTGCTGCAAACGAAATTTCCAATAACGCTTATTTCTCGGGATAAAGTTATTCTATTTTTCTTTGCAAATCTGCTAATTCTACAAATCTACTAACCGAGGTGGAGTTGAACACCTTTCCAAAAAGAAGTAGCAGTCCTGAAAATGTTTTAGTGAGGCTTCTCATTATTCTAGAGCCCGAGCCACTAATGTAATTGTTCCAGAAGTAGTTTATAAATTTTTGAACTGATTTTATCCTCTCCATGATAGAGGAATTGTTAAAATTTTCAGATCAAATTGGAATTTTCACAGCCAAATATTTTGGTAAATTTTCCACAAAAAATTGGGCGGAAATTGGAATATTAATTTGATTTAATTCGATTGGAGCAGAGTGTATAATTATTCAAAGTTTCCTCCCTTAACAGCCATTCAAACGCATTCGGCTTTTTTCTTAGTTTAGTTTTTCTTATATATGGCCTGCAGGCTCTCACCAAGTTCCGTTTTACCGGAGAGTTTAAGTGCACAACAAATCCTGAGATCCCATGTTGTAGTTTGTGAAGACGATGAGGTGTTTGAGTAGAAAAATGAGAAATGTTCTAGTATTTAAATATTATAAATTGTTTCAGCGAGAACGTTATCAGTAAACACCATTACGTGTTCCATACATATGCACCACATATGTCGCTATCTCGTTAAGGCTGAAGATACCAATGACGGATTGCCAAAGTTTTTGGATGTATTACTTTTTTTCCGTTTTCTCTAGTATTTCTCAGAAAATTTGAATTTCCCGGTCACCAAAATTTTCCGAAAATTTGAATTTCCCACCAAAATTTTTTATCAGAAGATTTGAATTTCCCACCAAAAGTTTTTCAGAATTCAAAAAATATGAATTTCCCACCAAATTTTCATTTTTTCTCAGAAAACTTGACCGCCAAAGACTTTTATCTGTCTCAGAATTTTGAATTTCCCGCTAAAAAATGTTTCTTAGATTAAAAGTCCCGCTAAGTAAAAAATTTTCGTGAAGAAAACTAAAAACCCCCGCCAAAACTTTTTCTCACGTAGGAGTTTGCATTTGCCGCCAAGAAGTTGTTTTCCATAAAATCTGATATGAAATTCCCACCCAAATTTTTTCTCAGAAAATTTGAAATTCCCGCTAAAAAATTTTTCTTCAGAAAATTTGAATTAGTCCCGCCAAAAAATTTTTTTCTCATAAAAATTTCGCTAAGCCACCAAATTTCGCAGAAAAAATACCCGCCACAAAAAGTGAACATTCTAGGAGTTTAGACTGACAGTTTACCGAAAAACCTTGACTGACGATTTTGGAAGATCGAATAACCTCTTAAATAAAACCTCTAACTCGTAAAAATTGAAAATTTAAATATATAGCTTTGCAGTCCTATTTAGACGTGTTATACATGATATCGTCCACGATTGCACGGAGAATGGGAAATATAAGTTGTTGAGTTGACTTGGGATCTTATTATATCAAGGATGGGTTAGGTACTTTAGGGCAGGCTAGCAAATGGCTTCCACGTGAAGCAGAAGCGGTTTGCCGGCTTCTCGCCTGATTCCTGCACTTTGGCAAAAATTCCAAGCCTCGATGCTCACACATAGGGCTGGCTTGGACGTCGCGTCGGTTTTTGGCAAATTTTAAATCTTTCCGAGATAGTTTTTTTTGTACGGCGACGTCCGACAATTTCCGAGTTTGGCCACTCATGATTATATTGGATTAAGTATAGTGCCCCGAGTGGCCAAACTCGGAAGTTGTCGGCCGCCGTAAAATAAACTACCTCTCGGAAAATTTTAACATTTCAAAAAACCGGACGACCGGACGCCATATGTCAGCCCTACTCACACCAAATAGTACGGTCTATAAGCGGTTTTTTTGCCGCAGGCCGACACTTTATGGTTTCCACGCCGCACTGTACAGAAGGCGCGGCCCGAGGCAGTTGTCAGGCGTTTTAGCGCCTGTGTGCAAGCTCTAGGGCAGGCATGTTTTCAAAAAAATGAACATTTTCAGGCAGTACGATGAAACCCGCAACCTTGATCTGAACACTGCCGGTGGGACGAATGGACATACGAAGTATCGGAAGAAAGGCGATAGTGATGTCCAACATATTTATTTGCAATGTTTGATAATAATGTTCATCAATATTCGAGCCTACGTAGGCTTACCTGCCTACAAAGTAGCCTACATATATTATTTTTGCTAATTAACAAAAATAATTAAAACATTATTAAGATTTGCTGAAAAAGCAAAAAGTGTTTTTAAGTTCGACTTTTTGCCCAACAGGTTTACGTTAGGCATGTGACAAAGCCTACATTCAAGGTAATCTACGCCTGCCTCGGTACATGGTGCATCGACCAATACTTACCTCTTAGCTTCGAGAGGTTATAACACGGTTACATTTCGCTCTATCAAAATAAGTGGCCAACTGCAAAAACTGTTCTCCAATGCTTTTTCTACAATTTTGTGGTTAAAATTTTTTTAATATCTACACTAGCAAATATAAGCCACCAACCCGTACAATCCGCGCCGCCCCCCGAGAAAGCAATTCAAACCCAAGTTTATTGCAATAAAAACAACACAGTAGAAACGAAAGAAATGAGGTTGATTTTGGAGACTTTTCAGTTGGCACGGGTTTTACATTGTTGGCATTATTCAGATTCGATTGAGAAGGAGAAGTCGTGGGGAGGCTGAAAAGTTCTAAAGTTGTTGAAAAAAGTAACAAATCTGCACTTTTTTAAAAACCTGATTCTTCAAGACTTCCATCCATGGCCATAAGTGCACTGAACAGTCTGTTGCTCTTGCTCTTTGTGCTCCGTGTCCTCGGAGCAATCATCAACCTTGTCTGGAACTGTCGGTGTTGGTCAGTTGACGAAGCCAAGGAGGAGGATGGTGTCGCAGTCTTTGGTTTGGGAGATGAGGGCGGAGCTGGCTGAATAGCGGTGGAATTGGAGATGCAATCTTTTTGGGGTTACTGCAGACTGTTTGCTCAAACTCTTGCTCCGCGATTTTGTGCTCTTTTTTGGTTTCTTCTTTGAGGGCTGGTTGTGTTGCTTCTTGCTTTTATCTGAAAATTAGAGTTTCTAGGCAATCAAGCGATTTTCTAGGCGACCAGACATATATTTAGCCATGTCGGAATTTTCTAGGCCAACACAAATAGTTCTAGGCCATATAATTTTCCTAGGCCACGTAAAACTTTTCTAGGAGACCACCAACAGTTTTCTATGACCGCAATTTTTGCTAGGCCACCAACAAAAGCAAATGAACATAAGACATAGGCCACCAACAGAATTTCAAATTTTTCTAGGCCTTTAACTCACATATTTCACAATGGAAGCGGCGGCGAACACGATGAAGGGTACAATGAGAATGCCAATGATTATGCATTATCACTACTTTGGTCCTGGCGTAGTCGATGTCGCATGCTGCAAAAATGGAGGTACAGGAAATCAACATGCAAACGCGCTACCGTGGCACTAGCAGTGCGGTAGAGCGCGTTTCAAACTAACAGCCAGAAGTTGGCGCCGGTGCTCGCTGAGTGGAGGTGGCCATTTTATCGGAAATGAATGAGAAAATGGAGAAATTTGGGAAAGTTGATTAGAGACGTGGGAGTTTTTTGAATTTTTATAATATTTATGAGTAGGGGGAAGGGGTGAGGGTCACAGCAGGAAAAGACCAAAAATTTGTGATTTTTCCATTAAATTGGAGGAAAATTGACACCATACCTCGTGGCCTAGAAACTGCAGAATTTCTAGGCCACACACGTTTCGTCATAATTTACCTGTTAAACCAGGTAAACTATCAAATAAAGAGTGATTAATCATCTCCTATCTTCTTTTATTGCTCAGTTCCTACTCCAAATGTTTTCTTTTTTGTAATTTGTGATCACAAATTGTTGCATTTTAGTACGCCATGTACGTCTGTGTACTACTTTTTTCTGAAAGAAAAAATGTTCGCTTTCAAGAAAAAATAGTGAGAGGTACAACCGAAAAATACGGGGGACTAGAAATATGTGAATAAGAGTTCGACAACCTAGGCCGGTAGGCAGGCAGGCGAGTAGGCAGTTAGGCAGGTAAGCAGGTAGGTAGGCAGGATAGTAGGCAGGCATAATAACGTTCAGATGCAGGCACGTAGGCGGATGTTTCGAGCAGGCATGAAAAGTCCCGGGGGTAGGATGTGGGTATGTAAGCAGATGTCGGTATGTTGACAGTCATGCTGAAGGCACGTGGGTAGGTAGGCAACTAGGCTGAGGGAGTAGACGGTCGGGTAGGCAGGCGTGAGGCAGACGCGTAGTAAGAGTAAGCCAGGTTGCAGGCACGTAGGCAGATGTAGGATGCGTATGTTTCTTGTAGGCATGCTGAAGTCATGTGGGTCGGCAGATTGGTAGATGTAGTACGCAGAGTAGGTATGTTGCGGGTATTATGAAGGCACGTGAGTGGGTAAGAGCAGAAACCGCAGGTAAGGCAGGCAGGTAGGTAGACATGTAAATATGACAGGCATATACGGAGGGAGAACAAGCCATAATTCAGGGTGGCACTTAGGCAGATTTAGGTATGTTGTAGGCATGATGACGTAACGTGGGTAGCAGAGAGGCACGTAGGCAGGCTCGTTAGCTGGCAGGCATAATAAAGACACATAAGCAGGCATGTAAATCTGCGGCAGATACGTAGGATCACAAGAGCAAGATGTAACTGGTAGGCACGTAGGCAGGTGTAGGTATGTTACAGCCATGACGGTGGGTATGCAGGTAGGTAGGCAGCCAGGCAGGATAGGTGGGTGCATAAAAGACAGGTAGGCTCTCGGGTAGACAAGCATGTAAAGGTGCAGGCAGATACGTAGTAAGAGCAAGCTAGGATGCAGGCCCGTAGGCAGATGTAGGCATGTTGCAGGCATGATGAAGGCACGTGAGTTGGTATGTAATCGGTGAGTAGGCAGGCATGCAGGCACATAGGCAGATGTAGGTATGATTAGGCAGGCAGGTAGGAAGACTCAATGCAGCCGTGGTGCTAGAGCGCCCCTTCCTAGTTAAGACAATCTCGTTATTCTAATAATAAGCTATTCAATCATGTCACCGCGCCGCATACACAAACTACCTGTTTTTTTGAGTATGAGTCTCGCCCGTTCTCTGACCAAAAGCTTCTACAGAGTGATTACACAGTATAAGGGGTAGAGAGGTTAGATTCAATCATGTCTCACTTTTTTCCCTTTCTCTGATTCTTCCTTCTCCCTTTTTTTACAGGGCGCTTTTCCCTTTTTCGTGCGTGAATATGAAGAGAGAGAGTGCATACAGGTGTAGAGGACGCCCAGACATCGAGACGGAAACAGGTTCTTCATCGTCTTCAGTTATTTGGAAGCAGGAGTAAAAGGTGACGGTGTGTGTTTGGAGACGTGTAACCATCATGTTTTATAACACTTCCTTGCTCATTTTTCTCTGCTTCTCTGCCGTCTCTCTATACACACAGTCTTTCGCCGTTTATTTATTACCCAATCACAGACGGATCAGCTATACAGAGGTTATACAAAAAGCGACGGCGGATACCCTCATGATGTGAGTTTTGTTTTCGCTTTTGCAGCAGATACAATTTCTAGGCCACCAAAAATTTTTCTAGGCCGTTGAAAAAATCACTATTTCTAGGGACGTTCACAATTTTGAGCAAGTTCTAGGTTGATGAATTAGATTATTACGCCATGGTGCATATTTCTAGGCCATCAGGAAATTTTGCAGGCCACCGTTTCTGATGCAGTTGAACTAAGTTAGTGGCCTAGAAAACCCTTTGCCCGTTAGCCTAGAAATAATTACGGCGCCCTAAACACATTTTTGGAGGCCTAGAAACACTAACTTTTGGTAGCCTAAAAATTTTCTGTGACCCACATGGAAACATTGTTGGCGGCCTGAAAACATTTTTGGAGGCTTAGAAATATTCTTGGCAGAAAACATTTTTGGTGGCCGAGAAATTTCTGGCCTAGAATGTTTTTGTGGTCTATATTTTGGCCGGCATAAAAAAATTTGGAATGGCTTAGAAAAATTTTTTTGGTGGTTTACAGCCACTTTTCAACGACCCGTAAAGAAACATTTTTGGTGGCCTGAAAAGATTTTTGGTGGCCTAGAAACATTCTTGGTGGCCTGAAATTCACATTTTCGGTGGCCTAGAACCATTTTTGGAGACCTGGAAATGTTTTGGTGGCCTAGAATATTTGTCGTGGCCAAATAGAATATTTGTTTGTTTGTCTAGAAATATTTCTGCGTAGAATGTTTTTTGGTCTATAAATAATTTTGGTGGCCTAGAAATATGTCTTGGAGACCTGATATCATTTTTGGTGACCTCGCATAAATATTTTTGACAGCCTAAAAATTTTCGGTGGTCCAAGAAATATTTCTGATGGCCTATAATGGTGTCGTGGTCTATAAATATTTTTAATAACCTAGAAACATTTTGACTGGGGGCCTTGAAACATTCTTGGTGGCGCCCTAGAAATGTTTGTTTCCTAGAAACATTCTTCGAGAAACCTGAAACATTTTTGAATCTGTGGCCTAGAGACATTTTTTATGGCCTAGACACATTTGGATTTGGTGGCCTAGAAATGTTGCTGATGGCCTATAATGTTTCTGTGGTGTATAAGTATTTTCGGCGGCCTACAATATTTTTGATCGGTGACCTAAAACATTTTTGGAGAGCTGGAAATGTTATTTTGATTGCCTCGAAACGGCTTATTTGTACTGTGCTGAAACATTATCGGTGGCCCAGAATGAGACCTGAAAACATTTTTGGTGGCCGAAAAAATTTTAGTGACCTAAAAACTTTGGGAATTACCTGGAACCAATTTTGGCGACCTAGAAAAATTTTCCGGGGCCTACTAAAAATTCCCAATAATTAACAAATTTAGCTAAACTACTTCTGGAAAACGGGGACAAGCACGGGTCTTGGCATGTGATGGGGATATGAAGAATTCGAAATATTTTTTGGACTTTCTACAAGTAAGATATTTCTTACATAAAGACGAATCGTGGAGGGGTGAGCTTTTTCTGAAATTTTGAAAATTACATGATGATTGGAATATCTATTGATAAACGGTTAGGATCGCAATTTAACGATGATCGACAAGAATCTCCGTAAATACACAACGGCACCACATCTCAAAAATTCGTAGGCCACACGTGTGACGCCATTTTTCTTCCAGAATAACAAAGCCCGTGAGAACAACAAGACCCTCTCGAACATGTGTGGTCCCCCGTCTGTGGGATGACTCCTCGTCTGTCATCTCATTATGACTTCCACACCTATGGATCCTATCAGCGAATTACTGATTGGAATCAGCTGGTGGTGAAGTACAAAGATGGTTCAGTATATATCGATTGGAAAAATACGGAGGGCAGGAATATCGGTGGAGTTGAGGTAGGTCTAGCAGGCTTCGGTCTAGGTCGAAGTCTAGGTTTAGGTCTAGGTCTCAGTCTAGGTCACTTAGGTCGAGGAATCTAGGTCTAGGTCTAGGTACTAGGTACACTAGGTCGAGGTCTAGGTCTAGGTCTAGGTCTACGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTTTAGCTCTAGGTCTAGGTCTAGGTCTAGGTCTATCTAGGTCTAGGTCTAGGTCATGTCTAGGTCTAGGTCTAGGTCTACTAGGCCTTCTAGGTCTAGATCTTTATAGGTCTCGGTCTAGGTAGGTCCTAGGTCTAGGTTGTCTAGGTCTAGGTCTAGGAGGTGTACGCAGGTGTAGGCCGATCGATTTCTATGTGTATTAGGCCTCATAGTGATTTTCTGAGATCGGCGGAGACTCCCGCACCAAAAAGATTTTCTGGATCGATTGAAGTATTCATGCTCGAGAAGGGGCGGCCCCGAACACGCCGGTCCCTTTGTTATTCATCCATCAGGTATGTGATCCGGCCCCGTCAGAAAAAGTGTGTTCCGTTTAGCTCCGCTTGACACAAATGTTGGCAGAGACAGAAAAAGGGACACCTTGATAACAAATGGGTTGGAAAACAAGGTAATCGGATGATGCAATCGCGCCCTATTGCACTACCTCAACAAAACACTTTTCCCAGTTGCAGCTTACCTCCAGGGAAAACGCGCCCGGAATCAAGAAATTGCTGAACGACGTAAGATCACATTTGTAGTGGTTCCCTGATTGAATCCAGTATGAGTTCACGAGGTGCTCCACCCACATGTAGGTTGGGGTAAGGTTACTGTACCCCCCCCCCCCCCCCTCCGCAACTCAGGCGCAAGCACTCCCAGCGATTGCAGGTACCGTTCGTCTGTGGTTCCGTAAGCTCGAAAAAGCAATGCCGTAAGGACATTTGGGAACGCAATCACTGCTGTCGCGGTGACGATTTGAATCGTAATTTCGATTTACACTTTAGAGATGAGAGAGAGGGTGAAGTGGTTTTTCTGAAAGTGGACTTGAAAATTAAGAGTCAAAGTTTTGAAAGAAAACTTTGACTAAAAAAAAACACCCTTGAGAATTTGTTCGAATATACGTAGTTGCTGAAAATTAACGTTGTGGAACATTCTAAAACCATTTGAATTTAAATAATTTTTTAAACATACCAAAAAATCATGGGTTCCAAAATTCACGAAAGTTTCGAAAGGTGATTCCCTACTCCTGAACAAACCTCCCCTACAGTATCCTTAAAGTACCCTACTCCAGTACCTATACAGAACTCCTGTAGTACCCTTACAGTCCTAAAGTATCCCTACAGTACCCCTACAGTTGCCCTATAGTACCCCTACAGTAATCTCGCAGTATCCTTACAGTAGCCCTACAGTATCACAGTACCCCTACAGTATTCCTACAGTACCCCTATGAACAGTAGCCCTACAGTAGCCCAATCGCACTGAGCCTTACAGCATCCCTAAATTATCCCTAGATAATCCCTACAGGTGTACCCCAACAGTACCCCTACAGTACCCCTACACCATCTCCATAGTACCCCTATAGTAGCCCCAGTAGCCCTACAGTTCCCAAACAGCCCTTATAGTGCCTATACAGAACCCTATAACATACAATACACCTACAGTACCAGTACGTAAATTACCCCTATAGTACCCCTACAGTACCCTGGCGGTACGTACTCCAACAGCAATACCCTACAGGACCCCCATCCCTACAGTACCCCTGAAGTACCCATACGGTTTCCTTACTGTATCCCGTGAGTATCCCATTACAATACTCTCACAGTACTCAGTACCCCAAAAGTTCCCATACAAAACCCCTACAGTACCCCGACAGAACACTCACGCTACACTCCCGTATCCCTACAGTCCCTGAAGCTACAAAAATTTCCCCCCAACAATTCAAAAAAGCGGTACAAGACGAGCCCGTGCTCAGAGATCTACCAGGGATCCTCTCGATTCAGTGAGCCCGAGGCAAAAGCCGTACGGGACGCGTTGTTGTCGCAGAGATATTAGGGAAGAACCGACGCGCGCCTATATCACACTACACACTTATTCACAGGGAAATGCAGTTAAGCAGTCGTCTTTTTCTCGGCCACCGATCACATTTTCTCGGCCATCGATATTTTCGCCATCGAATTATTTTCTCGGCCACCGAAATTTTTCGCGGTCATCGATATACTCTCGTTCACGCGATATTTTTCCCAGCAACAGATTTTTTTCTCGGTCACCGATATTCTGCCACCAAAATATTGTTTTTCGTGGCCATCTATCCCATTTTCATCGGCCATCTATATTTTCTAGGACACCAATTGTTTTTCTCGGCCTCCCCGATACTCGGCTACCAACATCGTTTTTCTCGGCCACCAATTTTTTTCGGCCTACATTTTATGTCTCGGCCATTAATTTTTGACGGCAATCCGAAATTATTTCGGTCACCGATATTTTTCACGGCCATCCGCCAGAATTTTTTGAAAATTTGATTTGAGCAAAAATCTTCAGATTTGGATCACACGTCCATATGGTCACAAGAAGGATGCATATCCAGGAGATATTAAGGATTTGGTGAGTTGGATGACGCGTCATTCTTCTTGAAACGTTGAAAGTCAGATTTCCAGTACGAAGTTGGCATAAAAGCTGCTCAGGCTCTGAAACGGGTTTACGGCACAAAATACGTAGTCGGAAGCGGTGACACGCACAACCCGGCGTCTGGAGATCTGAAGCTTGGGCAAATATAGGCGCGAGGCGAAGGTCAAAGTTGTGTACCTTCTAGAATTGAGGCCCGACGAGAATATAAAAAAAACGTTCAAAGTTCCTGAAAAGTTGGGCGATAATTTCAGCCTGGGATGGGGTCATAACGAGAAGGAGCTGATCCCGACACTCGGGTCTGGTTGAAGGTGTCCGAGTTGTGGCGGAAGCTGTGCTCGATCGGATAGTAGCCGGCAAGTCGACGGATGCTCCAAGAGGTAGGCAAACTTTGATGTGCCTGCGTTCCTGCCTTGTGCCTATAGTTTACGAATAGGCACGGAGCAAGTAGGCAGCAAGCGAAATGTGGACCGATAGGCGTAAGGTTAAGGGCTTGCGATGCTTTTGCGTAGCGAAAAAAAGAAAAATTTTTAAATTACAGTGCTCACGGCCTAAAGGAGATGGCTTCTTAGGTAGTCACTACGATGCTCCTTGACTCTCTGACCACAGCCCCTTGGTTTCTCGATTTTTCGTTTTAGAAATTACACTTGTTTATTTTATGATTGTTGACACGCTAAATGTTTATTTAAACATAATTTTTCTTGAAAAAACAATTTACATTTAGAGAAAATAGCAGCGAGTCGTGGCCGCGGAATGAAAAACTCGACCACCAGCTATAAAATTAAAACGTATAATAATTTGGTGGTTACTCAGTTTTGCAGAAAAGAATGGCTGGCCGAGTTTTCACGTTTCTAGGCCATCGGTTAGCAAAGTTGCTCTGAAGCGCTTTCGCGAATTCGTTTCCAAATAAAAACTGTAGGTGAAAACTCGACCGCCCACGCATTCTTAAAGCCACGAAATCGATTGGAAGTTCATAATTTCTCGGTCACCAATTTTTTCACGGCCACCGATATTTTCTCGGCCACCGAAGTATTTTCTCGGCCAATCAAAAGTTTTCTAGGCCACCAACTTTTTCTCGGCCATCTATATTTTCCCGGCCTCCGACATTTTTTCTCGGCCACCGATATTTTTCGCACCCGTCTATATTTTCTTGGCTACCAATTTTTTCTAGGTCTCCGATACTTACTCGGCTACCAACTTTTTGTCATAGATATTTTTCGCAGTCATCTACCTATTTTCTCGGTCAGCGATTCTTGATAACCCGTGTTTTTCTCGGCCAACGATATTTTTCTCGTGACCATCGATATTTTCTACCGGCCATGCCAAAATTCATTCTCGGAGCCACTTATATTTTTCTCGGACACTAAATTGATAATTTTCTCGGCCACCTATATGTTCTCGACGACAGATTTATTTCTCGGCCATTACTCTACGGCCTCCACCGACCTTTTTTTCGGTCACCGATTTTTTCTCCGCCATCTAGATAATCTCAGTCACCAACTTTTTTCGGTCATTGATATTTTCTCGGTCACCAATATTCGTTTCTCAGGCATCAATATTTTTATCGTCCACCGGTATTTTATCGGCCACCGAAATTTTTCGCGGTCATCGATACGTCACGGATATTTTTCCCAGCAAAGTTTTCTTCTTCACCGATATTCTCTCGGCCACCAAAATTTTTCTCGGCCCCGATTTTTTTTCCACAGATATTTTTCTCGGTCATATTTTTCTGCCATATTTTTTCTCGGCCCTCACCAATTTTTTTCTCGGCCTCGGAGTTTTTCGTGGCCATCTATATTTTCATCTGCCGTCTATATTTTCTAGGCCACCAATTTTTTTCTCGGTCTCCGATACTTTCTCGGCTACCAACTTTTTCTCGGCCACCAACTTTTTCTTGGCCACAGATATTTTTCTCGATTAATTTTTGACGGCCACCGAAATTTTATGGTCACGATATTTCACGGCCATTGATATTCTTTTTGCACGGTGATACTTTCTCGGCCACAAATATTTTCTCGGCCACCGAATTTTTTCGCGGTCCTATAAATTTTCTCGGCCTCAGCAATCGATATTTTTCTGTCTAGTTTTTTTTTGGCGGCCGTGACCTCCAAAGAATTACAAAAATAAACGATACATCTCATATTTTGTGCAACCTCAAGTACCCCCCCCCCCCCCCCTATATATATTGTTACAGAAGCCCCAAAAGCTCGCGCATTCCGATTCGGTGCGGCACCGAAGGAGTCTATGATGTTTCGATGTCCGAAACGCGTGCAAACGAAGGGTTCAGGAACGGCATGAGGCAGGACGGTGCCAATTTTCATGCGAGAACTGTGCCTACTCTTGCAATTTCTGTTGATTTTTTTGGTAGCACGTGGCACTTCTTATTTTCTGTATATCCATTTTGTCTTCTACATACAGGAATATATATATATATAGGATATGTTTAAAAACCTAAAACCTAAAAAAAAACCAACCTAATACAGTGTTCGACGAGCGTCCCCCGCCGCCGGCGGACACTCATTATTTGCATTGTGCTCACCGTGAGGTCGCGCGGGAGCCCCGGTGATGAGCATCTCTTTACGATGTCCACACGAATAATACAATAACACGGGCTCCTCTTCAAATATGACAAAATGTCTTTGGCGTTCTCTCCTGACTTGGAGCTTCTGGGTCTTCGACCCGTTCTTGTCTGTGAGGCGAGATGCGATTACCCTCTATATTATTTTTGGAGATTTTTTGGTTTTCTAGGGGCTGCGCCATTCATAATACAGATGATAATGCCGGCTATCATAATAAGTCCACAAAAGTACCCATATGGCCTTGAAGGAAAACTCTTCTTCACTCTTGGCGTGGGGACATTTGGTTGTCTGTGCTAGGTTTGATGCTGAACATGGTAATTTAAATTTCCGAGGCCATTGTATATGTTTTCTTCTAGGCTACGACATACAATTTTTTAGGCCACAAAATATTTTTTTTTAATTGTATAAAAACGGAATGTTCCATAAATTATCTATTTTTGAATTACAGTTAGTCTGAAAATTTTTTTCAAGGGCACCTGTCTAGGTCAAGAACGGATTTTTTACTGCCGGAGAACATAGGCATCAACTTTTTCTGCCACGATTAGACAGATGGAAGAGCTTTTCGTAAAAAAAGCTCGGCCTCCACCCCACCTAACCCGGCAAAAAACTTGCAGCTACAAACTAACGAATCAATCCGGAAACTGACGGAAGTAGGCGTGAGATATCTTCGAAGTCTGTAATCCCTCTCGATCTGGATTTCTGGCAGCCTCCTACGAATATCGGTTAGTGTGACTTAACCTCGTGATGCTAGCGTGCTCCATTTATAGTTTGGTCTACGTAGATCTACCAAAAATGCAGGTGAAGAGACGCTCTCAACTGATTCTGTATGGTTAAGAACGCTGACGTCACATTGTTTTTGGGAAAAAAATTTCCGCATTTGTAGATCAAATCGCGATGGGACAGTTTGCCACCACGTGCTTACCCAGGAAAATCTGAAATCGGTGTTCGAATTTTCAGGAGCTATCGTAGACTTGACAGTTGCTCCGCCGGATGCTCCAAGATGAAGGATTTAGAAGAAGGTCAGCTACATCGTGGCGGTTAATCATTTGTCGTTCGTTTGGTTTTTTCTAGGCCACGGCTATCTGTGACGTCACTAAACTAGTTTCCAGAGCAATCGAAAACGAGGGAGAAATTCTACAGTGTCACCCGAGAGTGTCGCTGGTTTTTCTGCATATTGCCGACAAGTCGGACAATGGAGGAGATACAAGCAGAAATGAAGCGGCTTAAGAAGGAATACCCGACCCCTTATCGATATCGGACAAAGTAACGTCCGTATAATCGTACGCTTTTGGTGATGGAAGGTAAGACATGCGAACGCGATCTATTGGGTGGGCGTGGTCACGTCCATTTGCAAAGTGGGCGCACGGTTCCTTTACAGTGGACGCCAGCTTTTGAAGTTTTGAGTAATTTTTATGGGAATTGCTACGATAAATTCATTTAAAAAAAACCCAAGAATACTTTTAAAGTCGTAACGAAAAAAAACAACCGTGCGCACGTCTTGCAATAAGTTAGGGCGCCCTAAATTTTAAAAACGAAGGAATTTCATTATTTCTAACGCTCCAAACTCATTTTCACTACAAAGAACACGCCTCCTGGGAAAGCCCTTACTCATTTGCTGGATATATGACGTCACTAAATTAGTAGAGTGAAACCAGGTGCGCTCCATTGTACTACGCACACCGACGTGGTGTCAAACAGTGTCCCATTTCTGTGTGATCTTCCATAAATGCGATCGGATTTCTAAACAGATGGCGTTCGCATGGTTAAGAGCGTGCTGACGTCACAAACTTTTCTCTGCAAGAAATCATTTTTTGTAGATAACACTAAAATGGCACTTTGACGCCACGAACCTGCGCTCTCACTTTCAACACTCCCATTAAGCATTTCATGTACGCGCCAAAACGCACGGATTTCTGGCTCCCATTTACATAAATTGAAATTTTGAAAAAGAGTGTGCCGAACTAGGTCATTTTGGCTCGGCCATATGTGGTGAGATTTTCACCGCGTTGCGTGTCGCGTCGCGGCTCAATTTAAGTTGTAAATCTGAATGTGTTTGTCCGTGTGGAGTACCCGACTATTCCACGCGTTGCCCGGAATGCTATTGTGGATGGAGCACGAACATGAAAATTCAATAGAAGGCCAGAACCCCCTGAAAACGCCTGCCGCGCCCCCGCCTGCCTTGCAGCGCGGAACCCAAAAAGTGTTCACGGCCGCGGCGAAAGGCCCTCGACACTATGTGGTGTTAATACCTAGCTATTGACGCCTTAGTGTAAAACAAACATGAGATAACCGGAGAACGAAACCCCCTCGGGTCGACAATCTCCATGTGGATTGACGCTGGAATTCATGCTCGAGAATGGATTGCTACCCGGCGCCCGCAATGTACATTGGAGCTTCTCCTCGGGTATGAAAACGACGCGACGGTGGCTAAGCTGATGGACCATATCGATATTTGTGTTATATTCTACCTGTGATGAACCCAAATGGGGCCATATGAGTATTCCAGACCTGCGAAAAGGTTGGTTTTTGAACCTTACAAAAGCCTTAAAACTAGTGTTACTATTTCAGAACCGCATGGGAGGAAAAACCGGAGCCCCGCGATGCGCCTGGCAAACGTATGCTGCTGTGGAATCGACCTCATCAGGAACTTCGATTGGTTCTCCTGATAAGTCACGTGGTCTGAGAAAGTCTCATTGAATTGATCTACAAAAAATGCGGGAATTTTTTGTTGATCGAAGCGAACTGGGACTTCCTGCTCTAGTCGTAGTTAGCTCAATTACACCTTAAAAAGTAACTTAATCTTAAAAATTTCCAGCCACCGCTTGTTCGGGATCCGTCACGACACCTAGTTTTTCACGGCCCGGCGGCCTTCCCGGAGCCTGAATCACAAGCTGTCAGGGATTTCCAGACCTGGAGCAAAACACACCCGTTCATCTCGCTGCATTCCTACTCCCAAATGTGGTTGATACGCCATATGGACATCAGAAAACAGAGTTATCCACAAGACTACCATACTGGACGGCGGCCATAGGCTCTGCGAGTAACTAAGGCGTTGTATTGTATGGGACGAAATATCAAGTCGGGACCGGCGCTGATTTGATGTGTAAGTAATATCCTTTTTTTCCAATTTTTAAATTTCTAAGGATTTCAAGCAATTTTCAAATTTTGAAAATTAAAAAAACAATTTTTTTCGGAATGTTTTAAAATTAAAAAAGAAATTTTTTTAATAGATATTTTAAAGTTTTTTTTTGGAAAATTTTGGATTTCTGAATGGCGTAATTTTCTTTTCAGCTAACTGGATGAGATTAGTAAAGATTTTTTTAGGACTTTTTAATTTAGACATTTCCGGAAAAATTTTTAAATTATTAAAATTTCGAACTTTTTCGATATTTTCGGATTTTTTTGCAACCATGGTGAATTTTATTTTTTTGGATTTATTGGAATCACTAGGAGGTGGGCAGCAAGATTTTTTCCGGCAAATCGGCAAATCGCGCAATTTGCCGGAATTTAAAATTCCCGCCAAATCGACAAGTGCCGATTGAAAATTTCTGGCAAAACGGCAAATCGGCAAATTGCCGGAATTGAAAATTTCTGGCAGACCGGCAAACATGCTAATTGCCGATTTGCCGAATTTATCGATAAATCAGTTGCCAAACGGCAATTTCCCCCACCCATTAATGGGATCTTTGAAATAAAACATGAAGAAATTTTAAATTGTTGGAGTTGAATTTTGTATTTTTCGGGAATTTTAATAAAAAAACGCTGAAAATTCTAAATTTTGTAACAAAGTTATTTGTGATTTAAAAAAACATTTTTTGGACTTTTCTGAAATTTCACGGATTTCTGGCATCTCTCATAAATTGAAATGTGACGAAGAGTTTTTGCCGAACTTGGCTATTTTGGCTCTGCCATATCTGGGATGGACGGCGCGCTTCATGTCGCGTCGCGGCTCGTAAAACTAAATGCACTTGTCCGTGTGGAGAGAAAATTCAATGAGGAAGGCCAGAACCCCGGATTTTTGAAATTTTGAAGTTCTGAGAAACCTGTGAAAGACTCCTACCTAAACCTGAAGAATTTGAGACGAAGCTTCTGGAGATCACATGATTTGGCTAAGGGGAGCAGCTTAAGGTCCCCTATGCCTACCTGATTGAGCTCCGACCAAAGAACACCATGATTGGGTAAGCGATGGATCCTATCAAAAATATTTCATTCTAGCCACGGCTTCCTTCTCCCCGAACGAGAAATTGTGCCCACTGGACTAAACCTTCTAATCCATCAAAGTGGTTTATGTGCCGACGAGCTTGTGGCGCATAATTTGTGGATCCTGTGATTCGTATTGAACCAAGCTGACCACAACTACCACAAAGCCCGCAATTCCCACCGTATCGGTGTGTGGATGGTCACTCTATAATCGACACCAACTATGGCGGTCGGAGCTTACACAGAAGCCTACGGAAGCTCCAACCAGGCACCACCACTACTACGAAAACCTACTACTACCACAACGACCGAGGAGCCTACCGAAGCCCCAACAGAACCCAGTCCGACTACTGTCGAGGCCACCGAGGCTTCTACAACTACAACGAGAACCTTCCACATGCTCTGATACAAGTACCACAGAGAATTCTGAGGAGTACCAACCAGAAGACATCCACACCAGGGGCACCTGAAGCAAGCACCAAAGTGAAGAGGATGGTTTTTGAGTCTCAGGCTTAGGCCTATGGCTTAAACTTAGCCTTTCTTAGACTGAGGTTTAGGAGCTTAGGCTTCAGCTTAGGCTTAAACTTAGTTTTAACTTAGGCTGTGGCGTAGTCTTAGACTTAGTTTTGAAGGCTTAGAGCTTAGGCTCAGACCTCGGCTTAGGCGTAGGCTTAGAATAAGGCTTAGCTGTTTTAGGCTTAGACTTAGTCTTGGGCTTAAGCTTCGGCTTAGGCTGTCTTAAGCTTAGGCTTAGGGATGCTTGCACTTGGGCTTGGCTTCATTGGCGAGCGTGAGCTATTTAGGGTTTTATGGGAACTTCCGCACCTTTAGACTTAGGCTGAGGTTTAGGCTTAGGCTTCGGCTTAAGCGTTCTTAGGCTTATGCTTAAGCTTAGGCTTGGACTTAGGCTCATACTTGGGCTTAGGCTTAGGCTTGCACTTGGGCTTAGGCTTACTTATGCTTAGTTTTAGGCTTAGATTTAGGTTCAGGCTTAGGCTTATCCGTACCTATGCAAATACATTTTCTGGCACAACTGATAGTTGCCAGCGACCTATTTTAACTTCGAAATTCCCACGAACCATTCCAGGAAACAATCACACCGATCAAACTGCGTCGACTACGGTGACTGCCACTGTCGTCTTTGGCACTGGGGGTCTTTCAGCTCTGCTATCGGATCAGGTCCAAGTTGTGCCCCAAAGACTTGCGACTCGCGGTGCTCTTTTTCGGTGTGAGGCGCACGCTGGAAACTATCGTATGACAAATTGTCAATGTATTGTATAAATGATTTCCAACTTTCGTAATTGTGGACTAAAAACTACGTTATATTTTTCATGCCTGACTGCGTGGCAGCGTGTCAGCGCCCGACATTTTCTGAGTTCCACGACGGGATCCTGGCAGGCGTAGGCGTTGCAATTTTGACTCATCAAATTGCTTGGAATAATTAAGTACTGCTACAAATGATGTCACTAGCTACAAACTACAACTAGGAATTTCACACTACAAACTACAAACTACAATCTTAGCTCTTCAAGCTATGAAATACAAACTAAGAAATTTTTATTTTGCAATATTTTTTAAACGAGGTGTAATTTGGGTATAGTAAAAACTGGAATGACAAAAGCAAATCACAAACGACAAACTAGAAACTAAAAGCGGAAACTGCAAACCAACTACAAACCACATACTACAAACACAAACTACAAAAATTACGAAGTACACTACAAGCTACAAACTACTGAACTCTGAATAAAGTTGAACGTTTTTTTTGGTGCAATGATTGGCGTATGAATTGCGAAATAAGTGGTTAAACACATACTACAAACTACTACAAACTACAAACTAGAACGATCCTAGAAACTACAAACTACAAACTACAAAATATATTACAACCTTAGAAATTTTGAATTTTTAAATATTTGTGGAACAATCAGTTTTAATTATTCGACGACTAAAGTCAAAGCTGAAATCATAAAATGCTAACCACAAACTACCAACTAAACTACAAACGGCAAACTACAAGCTACAAATCACTGAACTCTAATAGAATTTGAAAGTGTACTCATGGTTTGTGCCATTACTGGACGTATGAATTACGAAACCATAAGTTTTTAGTGACCCACTACGAACTATAAATTTCAGAAAACTACAAACTACTAATGAATGTAACTACAAACTACAAACTGGAACAACAGCAAACTACAACCTACAAACTACAAGCTACAAACGCTTATATATGATTATTCGATTTTAGTTATTTCCTGTTTTTTATTCTTTTCCAAATTCTCAAACTCTACTGAAATAAAAATACCTCACACAAATGTTTCTCATCATGCATCACTGACTAATTATTTTCCAATAAACATAGCGTTTTGAAAAAGTATGGAAACAAAAAATGGAAATCAAAGGCGGAAATATGCATTTTTCTTACTCATTTTCTTGAAATTGGCTTCATGTGATTGGACTTTTTGATTTTTTGTTGGCCTTGTTAAAAACGTGGTAGGCAGGCATTCATGCCTACGTCGAGTGCCTGCCTACCAGTCGAATTCGAACCCGCAAGATGTCGGCCGCTCCCTTCGATTTTGGAAGATTTTACTTATTCCTCTTCTGCTAACATATTAGACAATTATTTTTCAACCCGTGTACACAATAGGGCGGCTAAAAATTAGGTTGGAAGATAGAGGTGTACAGGAAACGTTTATAAGCTCTTTATGCGCTTACTACTGAGTACCACTTATTTGCCAATGCATTTTGTTTCTCAACAAGTTGGAGATTCCAGAACAACCAAGGTTTGGCGGGGCTTACTTTGAGGCAATTTTGCGACTGTACAGTAGATTCATATGTGCGAATTTAAGTAGACTTTGAAAACATTTAGGCGGGAATTCAAACATTTATTTTTAAAACCATCTTGGCGGCGTGATCAAAGTTTTCTAGTTTTTCGAAAACACTTTGGCGGGAATTCAAAATGTTAATTAGTCTTAACTTCCTGAATGCTCTAGATCAACCTTCTGGAATATTTTAGAAAACTCTAGAATGAGAACCTTCTGAAAAATTCGAAACAAGTCTAGAATGTTCTGCAGAGCCTTTTGGACAAGGCTTTTCGAAAAAAATCTGGAATAGACTTTTGGAAATTTTGAGAAAGTTCTGGAATGTTTTGGAACCTTCTGGAAAATTCGAGAAAATTCTGGAATGTTCTAGAACCTTGGAAAATTTGAGAAAATTCTGGAATGTTGTCGACCCTTTGGAAATCCGCGACTGGAATGTTGTGGAACCTTCTGGGAAATTTTTAGGGGAACAATCCTGGAATTCTCGATAGCTTCTGGAATTGAGAAAATTCTTGTCACCAACGTTTTGTGAAAAAATTTAGCTGGAAACTAAATAATTTGAGAATTCAAACTTTAATTTTTCCAATTTTTTCGGATTTTTTTTTTAGCTTTTAAGCTTTTTACATTTTCCATAAATTTTAGATTTCAAAAACAAAGCTTAAATTGGCAAAGTTTTGACCAAATTTTTTGGCTTTATAGCATACAAAAGGTTGAAAAAGTCCACAAGGTTCTTGCTCCACACAGTCCCCAAAAACACATCAATTTGGTGGAAATTCAAATCATGTTTTTTTTTCAAAAAATGTAATGGCCTAGAAAATATTTCAGATTCAAAGCAGTAAGGCCGTCAATCCTACCTCCGTTCAATCCGTAAAATACCTAAAAATCAATCCCCAGGAATTAGTCTCATCAAGAAAGAAAAGAGCTCTGCTTGTGCCCACTCCTCATCTCTTCTCATTTATTTGTTTGCAATTAAACACATCCTACTCAGACTGCATAACGAAGGAAACAAAAAACGAAAGAATAACGAAATCCCAGAGCATATTTCCTTTATTAACCCTATTCATTATTTTTGTATTCAGGTGGAACAAAAAACCGGCTCGGCGGGTTTATCTGTCTGTAAATCTTCTACACGCCTACCTACAGCGGCCTGCCTGACTGACTATGTGCCTAGTGTTTTTTGTCCTTTTCGGTTGGTTTTTTTGAAAAATTTTTTTTCCTGATTTTTTTTGTCGTTTTTCCATTTTTCTGAATTTTTAGGAATTTATGTAAGTTTCTCTTTTTTCTCCCCCCCGCCGGAGCCTAAGCATAAGCCTAAGTACGCCTAATGGTGCCTAAGCCTAAGCCTAAGCCTAGGCCTCAGCTTAAGCCTAAGCCTAAGCCTAAGCCTAAGAGGCCTAAGCCTAAGTCTAAGCCTAAGACTGAGCTTAGGCTTAAGCCAAAGCCTTAAGCCTACTCCTATGCCTGCGCCAAAGCCTAAGTAAGCCTAGGCCTAGTCTAAAATAAGCTCGGCCCCTTTCTGGGCCAAAATTTGTACATGTACCTCCTAAAATTGTTTCATCGTTAATAGCCATAAAAACTAGGAAAAATCTATTTCAAATTCTGAATGTCAAAGATAAAAATTCACAGAAGTGCGGGAAATTTGACCTCACCAGAAATGGGGCGGAGCCCATTTTTGGATAGGCTCCACCTCTTTCTAGGTTCTCTAAAATCAAATTTAGCTGTCAACTTTCCTGGTAAGCTTTAGTGGTTTCATTTTTTGTATTCATCACATTTCTTTTTCATTTTTTACATTTTTTCATAATTAATTTTGATCTACTTGTTTAACTTGACCCTGCCCCCCAATCTCCTCAAAGTAATGGGAGGAGTCTAAACAAGGTAGATCAAAAATAAATAGAAAATGAGAAAAATTTGCCATCGTGTTTTTCGATAACACTACAGTTTAATCATACAATAATCCCACAACTTAAAATTCAGCAAATAACCAGGAAATGGGCGTGGCTTAGATTTTCAAGGTTTCGCTGTTTTTTCCAAGTTGTTTCTGATATGAACCGGCCCCGACAAAAAATGCCACAAAAGTCGTAGTAGTGATGTGTGACGTCTGTTCTGATGACTAGAATTCATATTATAAAGGTCGAAAAATCCCTTCCGAACGAACCCCCCAAGATCATCCTAACATCCCAGATTTCTTCACCCGCCCGCTCATATAGCTTTACCCACCTAATCTTTTTGCTTATTTCTCAATCTCCGTCTTTCTTGCGTTTTTAATTAATTCAAGGAATCAAGCAGTTGTGGTTAATGGCTATGAATTGCTTTTTTATTGATATCTTTAATTATTATTTATTTAGTATCTAGCCATGTACATGTGTTGAGTCGAATAACCTGAAAATTTTGTGCCAAGTTATGAAGGCGGGGTCTTTCATACATTTTTTAAATTGTTTTTTGGCTAAAATTGTATGTATTTTGAAAGTTGTGTGTGTTTTCCATTTTCTTTAAAAAAACATCAAAAAAAAAAATTGGTATGTAGTAACGTAGGTAGGCAAGAAGTAGTTGTGTAGGTAGAGACTTGAAAATAGCAGCTATGAATAGGTGCGGTACTTTTGTAGTTTAGGCAGGTTCGTAGGCAGATAGGTGAGTAGAAAAATCATTCAGAAGACATTCGGCCAGGTAGGATCACTGGTAAACAGGCATAATGTAGACGTACGTAGGTTAACACTTACGTACGAGGCAGTAGGCATCAGGGCTTTGTGGCAACCGGCAACCGGCAACCAAAAACCAGGTTGCCGGTTACGGAAAAATTGCCGAAATTTCAGCAACCAAAAGGTGCTCGCCCGAATTTTCTCGAATTTTCCAAAAGGTTCTAGAACATTCCAGTTCTCGAATTTTCCAAGAAGTTCTAGAACATACCTAACTTTTCTTGTCGAAGTTTCCAAAAGACCCATTCTAGACGCAACATTCCAGAAAATGATATTCTCCGAATCTTTGCCTCAGACTAGAACATTCCTGAATTTCGTCTCGAATTTTCCAAAAGGTTCTAGAACATTTCAGCATTTTCTCAAATTTTCCAAAAGGTTCTAGAACATTCCAGAATTTTCTCCAAGTTCCCAAAAGATGCTAGAACATTCCAGAATATTCTCGAATTTTTCAGAAGGCTCTACGATGAATATTCCAGAATTTGCTCGAATTTTCCAAAAAGTTCTAGAACAAGTTGCATTTTCAGCGTACGGCAACTTTACTCAGCAATTGCGGGTTGGCATGTAGTCGCAGGCAGGCATGTTAGTAGCGCAGTTTTGACAGTTTTGAAGTTAACAATCCTACCTGCGATGCACAAGAAAATGCGCGGCAGTTGCGGACCGGCAATTCTACCAAATGAGCTAGACGGTAGGGCATGTTCTTCCGAGTATTTTTTAAAAAAATTTGGCAAAAGTATAGCATGCATAAATCTTTGTTTTATTTGAAAGTTTTATTGGCTAGGAACAACCGAAAAAGTACTCAAAAATTGTCGGAATCTTGAAAATGTGAAAATTTCCAACATTTCGACTATTACTGGAGATTTTTACAATTTAGTCTATTAAAAAAAAACAGTTTACTTTCAAATAAAGCAAATTTTTCTATATTGTGTGATAAAATTTTAATGAAAAATAGGGGAACATGCCCAACCGTCTCATTTTGCCTAGAATTGCCGCGCACCGTGTTAGTTTATCCCCGTAAACCTCCAAGCAATATGGCAGGAGTCCTTCCGTCCGTCCAAAACGTCATAAAAACTCGTTGGAGATGGCAAAATTGGAGATGTGCCAAGTTTGCTGGAGAGGTGGGGGGAAGGAGACAATCATGTTGTCTGCGTACCTGAGGCCAGACTCGTCTTGTTATCTCTCTGTACCTACCTGGCAAATGGGACCTCCCCAGACCGGTGAGTTTGTCCTTTCAACACCTATTGTTTCTGTTGGTTTGATACCTTTTTTTCAACGCTACTTTGCGGGAATTTAGACTGATTTCTCATGGTTAGAAACGTGCTGACGTCACATTTTTCGCGGGAAAAAAAACCCACATTTTTTGTAGATCAAACCGTAATTGGCTAGCCATTCCAACAATTCACTGTTTTTTTTCTGAACAAGTCGAAGTTTTGAGTTCCGCACACGCAATTCTGTCTCTGATAAGTTTGGAAGTTTCAAATAGAAACCTCTCAATTGTCGGACCAGCGCGCTACTTCATCATACCCCGCAAATTGAACTGCTCGCGGCAAAATTTAAAAATTGATGCTTCTCCATAAACATACCAAAACTACCTAAGACTGAACTTCATTATCTTCTTTTAAACTTAAACATTACCTTAAACGAAAAAACGTTTGTACGAGTCAGAGTGTCTCATTTCATTTCGATCTTCATTGATCTACAAAGAATGCGGGAGAAGAGGCGCAGAGTTTTCAACTACTTTCGCATGGTGAACGTGCTGACGTCACATTTTTTAAGAAATTCCCGCATTTTTTGTAGATCAAACCAGCCATGTTGGCAGTCCACGTGGCCGGCGTTTGTAATCGTTCAGTAGGTAGGTAGACACAGGTCAGTAGGCATAGGTAGGCGGTCGGTCTGAGGTAGGATGTTGTTGACCATCATCCAACGTAGCAAAACATGCTTGACGACTAGCCTCAGGATAATCACAAAGTTCTACGTAGTTATGATTTCAAGCAATGAGCACATTATATCACTGACTAAGCCACAGCTATAAGACCCTCCTCCGAGTATATTCTGAGGATCACCAAACATCTAGACGTAGGTTTGCAGTCTTTCTGTTGGAACATTAACGAGAGTAAATCTCATCTGTTAGGCAAACGACCAATTTCAAGTTCAAAACTATAAATATAAATAAAGCTAGTAATTGAGCCAGTCCTACTTCAAATTTCCCACAAGTTCATTACAAACCGTCCAATTCCCAAGCCCATGTACTCCCACTAATCAGTTTCTATCCTTGCCGCCCAACTTTCCAAATTCATTTATCCGCTTTGCATAGTTTTCGGTAATCTTGACGATTTTCAGAGGTTGAATTTTTTATTTTTTCCAAGAGTTACGCAATGCCAAAATAAATTTTTTTTTGTATTCTCAACAGAAAATTGCTAAATTTGTCCAACTTCCCATTTCTCGGAATTTGACGTAATCAGTTTTTTGAATTTTTTTGAAATTACTGATTATCAAATTTTGTTGGAAAGTTTATTCCTTTAACCTACACAGCTACCATATTCTGTCTAGGTGCTTACCTACACGCCTGCTTCGTGCCTACCCGCATACCTGCAGCTGGTTTATCTTCAAAAAGTGCAAAGAGCCAAAAGTTTCGAATTGACAAAATACGTGCTAATTGTTTGGAGCAAATTTTGCAACATGCCAAAGTTATCAAATTTCCGCATAATTCCAAAATGGCAGCCCGACATCATGTGCCTACATTCCTGTGGTCTGTAGGCCTGACAAAATGTCCATCAATGTATGTACCTATTTCATACTTATCTACCCGTATAAACATAGTTCATCTCTACCTCAAACAGCATGTTACAGGCTTTCTTCTCTCCTACCTACCTACCTTCATTAACTGCTCTGTTTATTGACTACGGCTGCCTACCTTTAGCATGCCTGGCATGCCTTCATACCTACCTCATTTATCAGATCCTTATAAAGCGTATGTACAAGTTCGCCTACCTATTGTGTTAATAACGATCACCGTCTCTAGGCTAACCTGCCTAATTGTGTCTACCTACTTAGCTATCTCATGCCTGCCTACTAACCAGCTCAAGTACCTACTTCATGCCTACCGGCCTACGTTCCTAACAACGTGCCTACCTGCCTGCTCACTAGCCTAAGTGTCTGCCTACATGAATTGTTCGTTAGCACACCAGACTTATCATATATACAAAACATAAAAAGAAGATAAACAATAATAACAAGTGGGTAACTCAAAAATGAAATTGGTTTATCTCCCTGCTCCGAGAGCACCAGCACTTTGGTTTAGATTCCGTCACTACAACTTCAAATTTTGCTTTGTTCGAAGGACCTTTTCCTGATACATACTAATTTTTTCGGATCCGGTTGGCTCTGGATTTCAAGTTTTATAATAACTTGGGCTCCCAGTGACGTCATCAGTGGAAGGTGCAATTTTAGTAACTAGACAGCTTGCTCCTAGTTTACTGCTCCTCTTCTCAACGCCATGAAATAAGCCAGAGAGAGAGAGACCCCTCATCGAAAATTAAATTAATCGCTAAAACGTAGGTAGGAAAGAGAGTGGGAGGGAGACTCCAAAAAAAGAGTCAGGGGGGCTCTCTCTCTATCTCTCTCTCTTCGAGCGGCAAATCCGCTTTCAAATTCATTCAAAAATATGTGCGCAACCACCACCACTACCACCGGCTCCAGGTGGTAATTACACTTGAAAACCAAGTACTGGTTTTCGTGGCCGGGCAACTTTTAAGACCCCGGTGGAATTTTGTAGGTCTATTTAAAAAATTGCAATTGCGCTTTTTTGTACTGTTTTTTTTGACACAACAACTTTGAAGCTTCATGTAAAGCTGGAACAGCGCTCTAATGACAATTTTGACTGCATACTCGCACTGTTGATAAATGGTCCGTGTACTCCACGGGGGCAATTAAACTGGATTTTTTTCGATTAAATAATATCTTGATTTTTTGCAGTTTTGGCTTAGGCTTAGCGAGGCGTAGGCTTAGGTTTAGTTTTTTCTCGGGCTTAGGCTTATGGTGAGGGTCAGGCTTAGGCATAGGCTTGGGCTTAGGCTTCGGCTTAGACTTAGGCTTAGGCTTAGCCAGGCTTTTGTCTTAGGGGAGCCTTAGGCTAGTTGTAGGCTTAGGCCTGAGGCTTAGGGGCTTAGGCTTCCCTAAGGCTTAGGTTTAGATTTAGACTTGGGATTTAAAAAAGGGGCTTAGGCTTAGGCTTAGGCTCATACACAGGCTTAGGCTCAGACTTAGGCTTAGACTTAGGAGGCTTTGGCTTAGTCTTAGGGATCTTAGGCTTAGTGGACTTAGGCTTAGGCTCAAGCTTAAGTTCAGGCTTAGGTTTCGGCTTAGTCTGAATATTTGGCTTAGCCTTGGGCTTAGGTTTAGGGAGGGCTTAGGATTAGGCTTTGGCTTGCCGGCCACCTAGAATGTGGTTTGACAGCGGTAGGCTATCCAAATTCTAAAAAAATCGGCTACATAATTAATACTTAGATGGGCCTATAAACCATTTCTCTAGGCCATCCTGCGAAATTACCAAGACAAAAAATTTCAGCCGCTAGGGGAATAGAGTTTCCGTTTTCCAAGGCCACCTCAAATTTACCACAGTCATATGTAAGGTATCGGAGGGCACTGTAGAAAATTCAGTATCAAAAATCAGCGAAGTAAGCATTAAGAAAGTTTTTTGTGTGTGTGTGTTTTTTGTGGGAGAAAACATTTCCCCTCTCTTTCCTGCCTGCTCATTTGGATACCACCGCTAACCCATCTTGACTTTGATTACCCATTTCCGTCCCCCTTCTTCGTCTTCTTCTACCCGGGATAGAGAGAGAGCTCTATATATTTTCGTGTTCTTGATCTGTTACCGCGCATTGAATTTGTTTGAGCTGCCGCCGGCGAATATATACATGCATGTCTAATTTTTTAAGTAACTGGAAAATCTAGGAATTTTAACGTAATTTGGTTATAAGCGTACAGATCGGCCCATGCTGGTGATTGTACGAAATTTTAATTTCATAGTGTCTGCAGAGAAGCTAGGCATATCCACAAGCCCCTACGTGGCCGTCAAAATTGAAAACTAGGCGATTTTTTCTCGGACTTTTTATCTACTTTTATTAGGCCCTGTCTTCTTTTTTGCAACGTTTTTCTACTAGGTCACCAAATTGTTCTACGCCAAGCTGCCTAAAACTCGGCCACCGATTTTTATTTGCGTCGGTCTGTAACATTCAGTCTCCGACCAGCTCGACTTTTGCTACCTGGTCGCCAATGTTTCGTAAGCGACATCGAAAATGGCACTCGCTGTGACATTTGTACTTTTTTTCACCCGGCCTAGAAATTTTGAAAAAAACTCGGGCACTGATTTTATCGGCCTTGGAATCCTAGTGTAACTTTGTGGCATGATTTTTTATTTATTGTCCATCCAGTTTTTCGTCTGAAAATTACAAAATGTTTTAGTGACCGTTGAAGCAAAAACTCGGTCACCAATTTCCCGGCCAAGTTACTACGGGATTGTACCGTCTCTACCATATTTCTGTCTCAAAACATACTCTCCTTCCGTGCTGCCTACGTGGCCGCTCAAGTAGAAAACTCGGCCATCATTTATTTTCTAGGCCATGGCGAAAATATGTAAAATAGGCAAAGAATAAGCGTGGTGGTTAAAGTAATTTTGGGAAATGGATTTTAAAGGCACAAGTTGAAAAAATAAATCAGATGAAGCTAAATACACGCATAAACCTTAAATAGGCCATCAATTTTTTTCTCGGCCAGGTTCAATCTACAGGTAACCGTCATGTTTCTTGCTCAAATTTACACCCTATTCTCGAAAAATTTTTTTTACGTTGAGTATGCTCTCCTGCCTAACTCGGCAGTGGCCGCAATTAGAAAACTCCCGGCCACCCATTTTTTCCCGCTAGGTCATGTCGAAAATGCGTAGGCGATGTAATGGGGTAGTTCAAGGTTGCGTAATGAATAACCTGGAACCAAAAATGTTGTCAATATATGGCCGCCAAAAAAGAGAAAACTCGGCCAACAATTTTTTCTCGCCCAGGTAGGCTACCAATGAACGCTACGGGAACCGTCCCTATCTCAGGCTCAAAATTACGCCTTTTTTCTCGAAAAATTTTTGCATGCACTCACCTCCCGTGATTCTTAATTAATGTAAGACGTTCTTTTTTCTCTTCGTCTAACGTGTGTATATGCAGAATTCAGGATACTTGGTGCGTCTTCCTTTCGGAGTTCTTGTCTTCTAAGCGAAAAAAACGTCAAATCTCTGTGTGCGTTGTCATCGGAAGACTCGCCTTCGAAGAAGACGCTTATTAGCTCATTTCATCCACTCGCAAATGCTTCATTAATTTTGTGCTTCTTCGCCTGCCTTCCGACGTGTTTACTCACACCACCACAACCACCACTCCGTACCTCCTCACTCACCGTGGAGAAACAGGTTCTGGATTGTTTTGTAAGCTTTTGAGTTTTGTGTCCTAACTCACTTTTTAAGCTCCGCCCACTTCTTGGCCTGTTCGGTTTATTAGAATTTGTGTGGTGTACTACCATCTGAAATTCGATCCGAAAAATGGCAAAAAAAATTCAGCTGACTGATTTTTTTGAACTTTCAAAGGTTCAGTTTTTGCAACCTAAACCTCTCTTAACATTAACTTTTCAAACCCCGCCCAAATCTTCTTTTTCCAGAAATCCACCAGTAATTTTTTGGGCAATTTATGGTACAAAGCTATCAGAACAATTTTTACCGAAGTTTTTTTATTTATTTTAATTAAGTCTACTGAAATTCCTAATATATATTGAAAAATGCTTTGGATGATCCCGAAATTGGCCAAAAAACGTTGATCGATGGTTATTTTTTTGAACTTTCACAAAAGGTTCCGTTTTGTATTCAACCTTTAAACCCCCCCATTTCTTGGCTGTATTGTATTCAAAGTTAAAAGTTGTTCATGTTGTACTAAAATATGCAAGTAGCATAAAAAATTAATAACTTTTTAAGCTCCACCCATTTCTTGGTTTTTCTGGAAATCCTTCCTGACTACAGTAATTTTCTGGGACTGTTATGGTACATTTAGGTATCAGAAAAAAAGGATTCTTGGATTTATGTCCACTGAACTTGACCTGAAAATGTTTTGAGAATTCAACAATCTTAAATATTTTGATAAAGGTAGAATTTGTGTAAAACCCGCCCTTTTCTTGGCTGCCCAACCCAACTTTGCCCTTTGAAGATTTTCTAACTTCGGCCTGCTAAAATTCCAATTCTAGGCGATCTACCCTGATAAGAACTTACTCCTGAGTTATTGTTTGAAAAACATAGTCCATCCGTTGCCTAGAAATCCAAAACTAGGCCATCAGATTTTAGGTTCCTAGAATCACAAAGGCAGTTTTATGTTGTCAAATTTCAGTGGCATAACCTCATAATTTAGACCTATTCTATAAGGTCAGCCTATTTTTCTGGCCTAGAAATTTTCCTTGAGTTTGAGCCCCCTACCCCCACACCCACATGGCCTAGAAACCCAAGCCTAGGCCATGTGTCCCCGCATTCTCACTCACTTTTAATTTCTTAACCCACTTACACAATTCTCTCCCCCTTTTCCAATTTCGAGACATCGCGAACCTGGGAAAGCTCATTAGCTCATTTGTTGTGTGTGTGTGAGTAAGAAGCGGGGGGAAGGGGAGCCCCCCTTTTGAGTGGGCGGGGAGCTAGTATGGAAAAAGAGAGAAGGAGGAGAGCCATTTTGGATGGGTATGCAATGATTAGGAATCGAAATTAATTAAACAAACAACGGAATGAAAGGGGGGGGGATCACGGGCAATCGCCTGCCCTTCACTACATGTCCCCTGCTGGAAATGTGGAAATGTAAATTAACTGTAAATTAGAAAACTAGCAAAAAAGTGCGAACGTTTTTTATCGTCCTACTTGTTAATTAGTTTAAATTTCTATATATGTATGGTTAGACATGCCTATTTTGGCGTCTAAGGGTAGATGCGGGATACGGATACCATGGTTAAATGGGCGATGCATCATGCCAAATAGTAAATGCACCACTACACATTGAAAATTTAGCATTATATCCATATCACTGAAATTGTCCGGGGCCCAATCAATAGCCGCCGCCGACTTCTCAGGACTCCACGCGCCGTTATGTTTAATTCGCAGCGGGCGGAGACAGCTGGCCGCGCCCACAACGAGTTAAACCGCAGCGGCGCGCGGTACTCGTCAGATGTCGGCGGCCTGATATGATTTGGTTGGGTCCCGAATTTCAGTCTTTATTATTTGGAGTTCGCGTATAATGCTAAATTTTGTACCGTGTTAGGAATGGTCGATGCACCATGATAGTGCTAAATAGTCCAGCGTCTAGAAAACGTTGAGTACTGTTGAAACAGTGCAAAATAACAGTTCCGGAGGCGGATTCTAATTTCTTGAATTTTTTTTTTTCAAAAATTGTTTTAAAAGTAGCACTGTGAATTCCACCTCAAGCATTTTTGGTGTAAAGCAAATTTTTCACGCTCAAAATTTTGCGCAAATGGTTCTGAGGCTCCGTTGAAAGTGGATGCTCTTAATCAAGAAAGAAGTTAGTCCCGCCTATTGGAGGAACTGATCAAAACTGGGAGGAGCTTAAGAAGGTTATAAAATTTTGCTAATTAAAACACCCAGCTCCGCCCACTTATATATTAGTTGACTCCGCCCCACCCATTAAAAGTGGGCGGAGCTTAAAGATATTGACCACCTTTCTTGGGTGACAGTGCGTTTTAGCGTTTTTCATAGAGTAAATTTTCCGGCGGACCCCGGATCGATGCAGTCCCATGATTTGACGCGCAACGCCCGCTGGTAGTATGACGTCACTCGTGGCCGAACTCTTGCGGGGGAAACTTGTACTTACAGCAGTAAATTTCGGTGTCTCACGGAGCACCTGCACACGTACCGATCATGAGTGATGCTTCCCACCCAGACATACACATACACACAAACGTACTAATTAAGACAAATTATAGAACAAGTGGGGGGGGGAGGGGAGAAATTTACAAAAGTGTGCAGTGCGAGAGAACACACGTTAGAAGGAGAAGCTGCTCTGGGAGACGTGGGCATATCAGTTGGATTAGTTTACTGCTCTTTTCATGGGCAAATCAAGTGAGCTCCAAACATTTTGACTTTGATTGGGTTTGATTCTGAAATTTTTTTGTATATGGATATGCAGAAAAAATACGTTTCTTTTTTATTTTGGAATCGCACCAATACGCTGCGTTGCTACAGTGCAACTGAGCCGGTCGCATTTCTCTTCCATAACTTTTTTTCCTTCTAAATTATCAAAGATTAAAACTCATGCAAAAGCTCAATTTTATATCATTAAGGATTAGTAAAGTGTGGGTGATCGTCGAGGGGGATTACCATAATTCATTACTCATTTTTCAATTTTCAGCTGTGTTTTGTTTGATAACCTAGATGACCAACTAGTTTTCCCGTTACAGGGCTGGGACCAAAAAAAAAATTTGGACCAAAACACAAAAACAAAAAATTGAAGTTTTTCAAAAACCAAAACCAAAAAAAAACAAAAAAAAACAAAAGTATAATACCAAAAAATTTCTTATGCTTAAGTTGATTTTTAATGGGGTTAATCAAGTAATGTTGCAAAATGTATTAAAAAACACTATGACGTCACAACTGAGTTAAAATACATGTTTTAAAGTATTTTAATACATAATAGTTTTGCTCGAGTCGAGACTAGACATGGTGAACACTTTTTTGGATTTTTTTGGATTTTTTGGTCCCAATAAACCAAAAAAAACCAAAAAATCGATTTTTCGTCAAAATACCAAAACCGAAAACGACAAAAAAAAAAAACCACAAAATTCTCAGCCCTGGTTACCTGTCAGCAAATTTTCCCCTATCACCACTTCAGGAGTAATCAACACCCCAAAACGGCAATTATTTATTATTCTCCTCACCTCCTCAACACTCCATAGCGCCAGCCACCCTAATTTGATTGTTTAATTCGATTCAGGGCACCCCACCACACACAAATTTATTAATTTTTGGCTTTCTCGCCATTTTCCGTTAATATGCCCGGCTTGTGTTAGCTTTATTATAGAACTTTTTAAAGCGATTTCTTAGGAATTTGTGGGAAAACGTCATATGTGGCCTAGAAATTTGACGATCTCGGCCGTCGGGGTCGATGAACCATGTTGTGATGTATGAAAGGTGGCCTAGAAAATTTTAGGCCACCGTGATAGTCGTGGCCTAGAAATTCGGGCGCCTTCAGGTGGCCTAGTATGTGAAAAGTGACGTGTGAGTTCTTTTGCCGGTACGGTCAGGCCAATTTTCCAAATCCTTCGGAATGCTTTTGTTTTAATTAAGGTCCGTCCATATTCTACAATTTTAGGATCCGCCCATATCTTGGTTAAACATTTTTTTTGTGCTTCCTTTTCTGGAATATTCATTCAATCCATCATTGTTCTCAAAATTTGATGCACCATGTACTATATCTGTGGCCTAGAAAGCGCGACGTCACTTATGGCCTAGAAAATTGGATCTTGAAATGGGAGAAAGTAAAAAAGTAACCAAAGCCCCCTTCTGGACGGTCGTGGCCTAGAAAGTTAGAAGAAGGAGGGGAGTAGGAGATCGATCCATGTACAGCTGCAGCATTTGACGACTCGACGGCGCGTAGCTTTGTCGCAGGCCACGGCCATAAAAAAATGTATGAGATCGATGCACCTTGTTCGCGGACTAGAAATCGAGAATGTGGCGCATGTCACGCATGGCCTAGTGACTTTTACGGTTCAGGCCGAAACATAGGACGTGTCCTAGAAGTCATTCTTAGTCCAAGACGCTACTAAAAACTCTCAAAAAAGGTGAGCCTATGTGCCAGCCTACTAATCTGCCTACATTCTTGCCTACCTGTTACTGCAATCACCATGTTGCACCTACAGTACCCCCTTCCGCCCCCGTAAAACTTTTTCAACACGGCTCACCCAAAAAGTGCAGAAAACACAAAAAAACCAAGCCCAATCTACAAAAGCTCATACCCATTCGTGCTTGGATTAACAAATGCGCCACCATTAAAATGATAATTAAGAGTGTGATCGAGACTATTGTTGAAATCTGATCGGATTAAAAAGCGACTGGTCCGCGAATGAGCTTTTCATGCAACTGATGAGCCATTTCCTGTGCATGTACACTGATGATAAATCTCCCGATTTTATCTTTTCCGAGACATACCAAGTAATCTCAATGTTCTTCATTAGTTTCTTCATTTCCCGATTCTGGAATTAGTTGCTTTGATTTATTAAAATCTGTCACACCTTATGTCCATAAATCGTGATTAAATTTTTTACAGTTTTTTTTAAATATAGAAATGTGATAACTTTCCAACCAGGCTGTCCCAATACAGTTTTGATCTACAAAAAATGCCGGAAGTTTTTGCCCAAAACTCTGAGACGTCGGCACGTTCTTAACCATACAAAATCAGCTGAGAACTCTGCGTCTCTTCTCCCGCATTTTTAGATCATCGTAATACAATAATGAGAGAAAAAAATTTGAAAAATGAAAAACCTATGCCAAAAATTTGGCATTTCCCTCGGATTTTTTTTTTCGAGCCTAAGTTTCGATAAATTCTAGATTTTTTGAAAAACTGTCTGAATTTTTTTTTTTGAGAACAATGATTATATTGATTAAAGATCAGTGTTTCATGTAGCGTAGAAAAGGTTAAAAAAAAGATATGGGCAGAGCCTAAAATTACAGAAATTGGACCGTAAAGTTTTCAAAAAACTTTTTTTTTTTCAAAAACCGAAATTTTATTTTAATTTCAAAATTTCCGCTTCGGGGTTTCTTGATTTTTTCAAGTTCAATTAATTTTTTAGATTTTTTCCCGTAAAAAACCCAAAATTTACTGAAGCTTCACTATTGGATTAAAAATTTATAAGGTTTTGCGGGAAAATTAGTAAAAAATCGAAAATATAATTTAAATCTGAGAAAAATCAAAAGTAATTACAAAAAATTAAGGCTTCCATGGAGCTAGGTTCGCGTGGTGCCAGGCTACCCATTATTTTTTGTTTTGTTTTTTCCCCAGGAAAGTGTGACGTCAGCACGTTCTTTATAACTATGCTCAGTTGAAAAGTCTGCCTCTCTTCTCCCGAATTTTTCGAAGATCATACCAAGATGGGGCATTTTGACGCCACGTGTAGACTGTAGGCCATAAACCGCCTGCCTTCCTGATTTTCAGGCTACCTCCGCCTGCCTGTCTTTTCGCCCCAATCCACTCCTTATGAATATCTAAAACACATTCAGGAAATTCCTTAATTTGATTTTCACCACAGTGATAAAAAAGATAAATTAAAAATCATTCTCGTCAAAATGCAAAAAGAGTCGTAAGGCAGGCAGGTTTCAGGCAGGCCCTGGCTCACGCGTGCCGACGAGGCAGGTTACTAAATTTCGAAAATACCTTATTTACTCTACAAATCCTCTTAATACCCCGACATTACATCAAACCTATTAATTTCTGCCTTAGGCGATGGGACTACTAATTGATAGGAAAAGACGACTTGTGTGTGTGTGTGTTGAATTATGATACAAATTTGATTTTAGGCAGGTCCTCTTTCGACAAAAAACTTGTGTCACCACCCCACACCTCCCACGTTTTCGGTCAGTGAAGCTTCTGCTCGCTGTTAAGCAGATATTCCTAGGGAAATCATAAATCCATTCAAGTACTCTTTATTTTCTTCTCTGCGACCAAATTAGTATACAGATGTCATCATACTTTTTTGTTTCTTTTTGTGGGGGCTGTTCATTACAGTTTGCTCTACAAACGGGAATTTATTTTGCTTTTTGCCCAAAAGAATGTGATGTCAGCACGGTTAGCCGTAACCATGCTCAGTGAACTCTGCGACTCTTCTCCCGCGTTTTTTGTAGATCTAGCATTCCTGTAGATCGAAGTGGGAAACTCTGACACCACGTGCTTTGCGAAAAAATTTGAAAAAAACCTTTCTTTAAAAATTTGGCATTTTCAGCTGGGTTTTTTTTCTCTACAAAATTTTTTTTTGAACGAAAAAATGTTTCGATAAAAAGGTTCTAGATTTTTTGAAACTGTCTGAAATTTTTTTTGAGAACAATGATGACTTGAATATTGTAGAGAAGCGTAAAAATAAGTAAAACCAAAAAAAAACGCCTTGGGCGAAGCCTAAAATTACAGAAATTCGACCATAATGAAAGTTCCCAATTTTTTCTTCACAACTTTTTTCAAAATTGCTGAAATAACCCAACTATTAACTTTAAATTTAAATTTCAGAAATCCTAATTTTGACGCCGATTTTTACAATTATAACCTGGATTTGTTTTTCCTGCAAATTCTTTTTTAGCAACTTACAGTTGGTCGGTTTGTCGATAGAGCGTGCTTATTCACCAGGCGCTACTTCCAGTTTGTTCTACAACAGTGCGGGACTTTTGCTTTTTGTCCAAAAGACTGTGATATCAGCACGTTCGTAACCATGCAACAATCAGTTCCGCATTTTTTGTAGATCAACGTTGATCAAAATGGGGCACTGAGACGCTTTGGGGGGCGTAGCGGGCCCTTTCTCATTCCCGAAAGTGCTCTCTGTTATGAGGTCTCCGTCCACGCTTTATGGATTCAACTTTGTACAGTTCACACGAGCACCCACGACATGATTATTCATACAACATTATACAGAACTAACTATTCGAATCTCAACATGTCTTCTTGCCGAAGGGTTTTTTATCAACTTTGACTTCCTTCTTCTTCGAATTCTTTATACAACTACTCATCTTCTAGTTGCCCTTCTAGTTGCCTCACACAAGCAAAATTTCTTTTGAAATGAATAAACTCTCGAATTGACTAGTCAAAATTTCATCAATTGCTCCTAGAGAGAAGTCAGTCGACGTGTTAGACTTATTTGGCAGATATAAAGAGAGAGGCACCGAAAATGAATTGGGTTTAACACAACAACGCGTAGATGAGTTGTGTGTGTCAACGATGCTGAAGATGATGAAAAGAGCAGAGGAGCATGAGTGATTTCTGGCGGTCGCGGCGGATGAGCATGAAGAAGGCTTACGAGCTGTATGGCGATGCGGCTAAAAATTATACGATGATTACTGTAGATTTGGAGCTTTACACCGTTTAATACGTACATACAGACTTGTTTTAGAATATTTTGTATTTGAAGCTAATAATACAAATCGCCCGTGTGCCGATTTGTCGGAAATTATTCCGGCAACTTGAGGGCCGGTTTGCCGATTTGCCGTTAATTTTCAATTCCGGCAACTTACCCGGTTGCCGCTTTGTCGGTTTACAATTTTGGTCGCTCTCAAACTGCCGGTTTGCCGATTTGCCGGAAATTTTCTTCCGGCATTGTGCCGGTTTTCCGATTTGCCGGAAATTTTCAATTCCGGCAATTTTCCGGTTTGCCGGTTTTCCGTTTGCCGGATAATAAAGTTTAGAGGGATTTTTTTAGAAGGAAACTCTCTGTGACTTTTTGAAACTGTTGCCCGTTTTCTTTTGCGATTTTTTTTCATAGATTTTGCAAGAATGCGTGCAGCTTTGCCAGTTTAGACGTAATTGAATTTCTGAAATTTCAAAAAAAAAAGTGAGCAAAATCATAAATTTTTGACATTCATTTTTTCCGGTAATTTGGCGATTTGCCGGAAAAAATTCATTTACCGCCAACTCCGAATGGTACGTCTAACCGCAAAAATTTAGGCTTTTGCTCTGGAGCCTTTTCTCTGGCGTTCTTTCAAGCTATCGTAATGTGACCACACACCTTTCTATAAATTTCAGTATTTACGCCAACCGAGAAGATCACACTAGTTTAAGGTTATAGTGCAGCTGCTCAATGGATCAGGTCTCTTACCGGGAAAATATTAACAGGCCGAAGTGACTGTGAAGCTTCGTGAAAATTTTCTGCCGTAAATTGTCAATTTTCTGCCGCACTTGGTCAATTATCTCATAAAGGTCACTTAAGTTAGCCAAACCGTGAGACAAAACTGCCCCTTATTCCTCATGCCGTCGGAAATCTAGAGCAACCCTGTATTCGAGGTCCCAATCTTTCTTCCCCCGTCTATCTAACTTTTCCTAACTACATATAACGGAGGACCATAATAATCCTAAATTTGTCCTTAGTTTTCTCCCTCCTCACCGTCTTCTAGTTTCATCCATGTCTCGCCTCATTTCACCCGATTGACGATCATCTCGGCTCCACACTTTGACACCATAGCGCGAATGAAAAAAAAGAGTCAGGCAAAAGGGGAAAAAATGCCGTTTTATTAGGAGTCAAATAGACACCAATACACACACACTCAATTTTAATGGATTAAGACGGGGCACGATTTGACACCATCGACACCAATTTGGATGGGGGCAAATAGATACATACACAAAAGGAGTTGTACCACTAGTTTTGGATCTAGAAACATCATTCTAACATCTTTTCATTTATGATTTGATTTATGCAAATGTCCTTGATTCGTGACTTCTTGTATAGTAGTTTGGATATTGTAGTATAATCATGGTAGTTGCTGAAGACTAAGCTCTTTAGCAGATTTAAGGTATGACCGTAGACAGTTCGGGATCCCGGCTTGTTATTGTGTCAGGTCCGGCCCAGGTTGTCTAATAAATACAGGTCTGCTCCAGGACGATAGCATCACTAGAATAACGGTCGTTCCGTGACTTTGTAGTTTGAGCTTTGGTCTTTGGTCTTTGAACTCTGTAGTTTTTGGTCTCATCACACAAGAGAGGTCACATAGGCCCGGCCCTTTGTGACGTCACAAATTGGCGGGAAAGTCAAATTTTGAGAAAATCGATTTTGGCGGGAATTATATAATTTAGATTTTTTGAAAACATTTTGGCGGGAATTCAAAATTTATCAAAAACATTTTGGCGGTAATTCAAAATTTAATTAGACACTGTTCTCGGTTCGGCCCAGATATAATCATCCAACAAGTCTTTCTCAAGACCACTCTTCAACACATCAGTTCTACTGTTACCAGCAAGACTGCCGCTCCACACCCTGTATAAGGGCCCTAAGGCTCGACTGAGTTTGATGTAAATCTTGCCAAGCCTGTATCATACCTACCTAGGCCCATCACAGGCGCATCTCTCACAGATCTTCCACAGGTGTTTCTAAGTTGCAACAGATCTGCACCAGGTCTGTTTTTAGCCAGGTTTTGCCTGGGTGCAGCCCAGTAGTCTACCTCTAAACTATCAAGCAGATCCTGACACCAGTTCCTAGGTCTCACATTCATCTAGGCGGATAGTCTACCTAGCTAACGCTTCAACCTCCACTGTTTTAAAGTCTTACCCTTTCTCAAACTTCAACTCATTAGTACATACATATGTTATTAGTAAATTCGCGACTCACTAATAACAATAATTCAAAGCCTCTTTCCTGGCAATGCTTCCGGTACTGAACACGGAGAGAGCGCGAGGTGGCAGGTATCCGGTAATTTGTTAACTCGAGCGCCGCGCACCCTGGCTTTAACCCAGAGCAAACAGCCCCGATGATCGCTCATGCACGAGTCTCTTACTCACGAGGTGGTGGTGAGAGGTAGGTTGGAGAAAGCGGTTCTAGCTTCACAAATTTCAATTTCAATTTACTCTCGCTCCGTTTGACTCGGGTCCCCCCCCCGCCCTCAATTTTTCGCCCCAAATTGCTCCTTTAATGGAAAGTGTTTGAGTGTGTGAAAAAGAGAGAGAGAGAGACACCTTCGGGTCACGCCAATTGCACTAATATGTGCTCTCCCATTCGCATCCTAGAGCTAAGAGGTTGAATAATTTTCGAACTAATTCGAGGAATGTCAGGTTTTTAGTTGGTCCTAACTCTTTGGCCTAGAAATTTAGAGTTCTAGTGGGGTCGTCCATCTAGATGCGGTGGTCCGAGAATCCTAGGCTTTAGTTGCCCAGGCCATCAGGCCTAGATTCTGAAATGTTGTGATGCTATTTTCCAACTTTGACCCAAAAGCCCTCTAATTTGTAGGCCATGAATCTAGGAACCTATAGGTAAGGCCTGATCCTTTGCTTACTTGCCAATAACTAGAAATCAATGCCCTAGAAGCTCGCAAAACTTTCCTAATAATTTCTAGGCCACCAATTTTTTAAAGATAGCAAGTCATCAACCAAAAATTCACGGCTCAGAAATGAAATTCGCTTTTAAGCGCACCTCTGACTTCATAGCAGTGGCCTAGAACGCCAACCGTCAGTATGTAAAAATGAGCTTTTTGGGCCTCGAACAGAACCGAACGGGACATGGAAGCCTAACATTTTTAGGCCACTGACTTTAAAGCAATTGCCTAGCACCCCGTTTTTCTGTTAGACAGCCTAGACTATCATCTAGAAATCATTGGCCTAGAATCCTAAAAATAATTCGGCCACCAGAATTTGAATGGCCTAGAAATCTAGTTGAATTCTAGGCCACCATTGACAAAGGATTGGCCTAGACTCCCTAAGAATGTGATTTTTAAGCTACTAACTATACCCTAGACCATTGTTTAAAATTGAATGGCCTAGAAACTAGAATTTTTGATTTTTAGGCCACTACCTGTTGTGAGCGGCCTAGACTATTATCTAGACCCCAATGGCCTAGTTTCCCCGTCCGCTGAAAATGTGTTTTTTCGGCCTGAAATAGGCCTAACATATTACAGTCCACCAACTCTTTTAAGATGACCAGTACTATAAGTTTAATCCTAGCTTGCCACTATAAATAATTGGCCTAGAAGCTCCTAGGCCACCATCTAATAATCGATGGCCTAGAAACCTCCCATTTTTTGTATCATAGGTGTCACCAACAACCACTGATGCCCAAGACCCGGGCTTCTCATTTCATAATGAGCAGCAATGCAAATGAGCTACCGTACCACTTCTACACACTGCCACCCTCCTTGATCCACACCCATTTCCCCTGATTTCTCGTCAATTTAAGCGGCGGCGGTTCACCACGGGATAAATTTGTGAGAGGTGAGCTGCTCACAATAATTGTTGTGAATAGGCGGCAGTGGTAGTGGTGTTAATTGTGAGTTCCCAAAGTTCACACAAAAATTTTTCGCCGCAATTGTTATCCAACCAACATAATAATAATAATAATAATAAATGAGTGTGCATAAATGTGCCCTTTTTCGCTCCACACCCGTCCTGATGGGGACGACGCTTCGTTGAATAGTTGGAATAATAATAATAAATTTGGTTGGAAAAATTTGGGCGCCCCCCTCCTAACACCCTCACACACACGAAATTTCATTTCGCGCGCGCTTCGAAAACATATTGATGACATGTTCTTCGCGAGACAAGTTATGAAAATTTGTGGCAATCGATGTGGTCCCCGCCGGCTTCAAATTTAGAGCAGAAAATTTGTGCTCTAAAGGTGCCTTTTAAATCAAGAAGGGTTACACATAAGAAAGTTTGTCGGAATCCATATTTTTGTAAGGTCCTTGGACCTGAACCCCCGGTCTTCAAATTGTTAGGCATTCTAGGTCTTCCATGGGAGACAGGCGTTTAGGCGTGGGCCTCGGCCTCTCGCCTCATTTCTACACTATGGCGAGAAGACAAAGGGCGGGTGCTCGACACTTTGTGCCAGATCATTTCGGCGTGATCTACCTTGATCTACAAAAATGCGGGAGAAGAGAAGCAGAGTTCTCAACTGATTTTACATGGTAACAGCGTGCTGACGTCAAATTTTTTTTGGACGAAAAACTTCCGCATTTTTAGTAGATCAAAAACCGTAATAGGACAGCAGGGCGTTCCACTAGAATAATTCCACTTGTTCATAATAAACGTATATTTGTCAAAATCTTGAGAATTTCCATAACTTCAACGAAAAGCACTGATAAAAGTGGTTCTTTCGCCGCGGCCGACACTTATCGGGTTCCGCGCCTATAAAGGAGACGCGGCGCGCGGCGCGAGGCAGGCGTTTTGGCGCCTGCCCGGATGCCCTACACCAAACAGCAAACATTTCTAGCTCCGTTTTTCGGACTCTACGCCTTAGTCTTTTTGTCACAACTTCGCTACACTGTGTTATTCTTCCTTCTACGACTTTAAAGGCGTGCGGAATGCGACTCACGTGATGTCAGGGAGTCTCATTGCGGTTTGATCTCAAAAAATGCGGGAAACTTTCCACCAGGAAATTGTGACGTCAGCACACTCTTGCGAGATCAGCGTTGAAAAGTCTGCGTCTCTTCCCCCGCATTTTTCGAATATCAAACCAAAATGGGACATTCTGACACCACGTACTGGTGACTTTGGATCAATGTAGATCGTTTTATAGGCCATCCATTGTTTTTAGCTCGTGGCCATTTTAAATGAATTTCCAAAATTTCCAAACACCTATTTTTTTGTCAATTCACAAGTCCCCCACGGACCCCCTCCATTGTTCCCCCGTTCACAACCTCCCTCGGTAACCACCCATTTAGCGGGAAAAAATTAGCGAATCAGTGACTCATAATCAAGTAAACCGGTCAATGCTCTACGAGCAAGAGGGGGGGAAAGGGGGTGGCTAATCGAATTATACGGGGGAATGGGATCCCTCCGCGGACACCTCGCTGCCAATTAACAAGTCAACTACTTGGGGGGGGGGGGCGGCCTCCTCACAACAATTGTATTATATTTCTTGTTATTATGATTATTAATTATTATTCTTATTAGAAATTAGTTTATGAGTATATAATATCAACTATAAAGATGACAGTTAATAATAATTGAAGTCTTCCAATAGGTGGCCATTAGAGAGAGGGGTCTGTAGTAATAGAAGAGACAAGGCGGGGGAGAGGGGCCAAATAATTAATCTGGGCCCCGTGGGCTCGTAAAATTCCGATAAAGTTGCTTGTTTGTAATTAGCTAATTCACTGAATCTTTTTTTTTTGTTGGGGTCTTACTATGTGTTTGAAACTTCCTGTTATAACATGTTTCAAAATAGACTATCTTACCTCAATGGGGACTTACAGAACCCTGGTGTTGAGATTGCTAGTCTAAAGGGTTAACCAACCATGGACCAAAAATTGCAATTTTTGATTTTTCTTACTTGAGGTTCTATTTTTTTGAATACAACGATCAGTAAGGATCTATTTCGATTTAGCAAAAAAACCTAATCAAATTTTGTAAAAATTTTCTAAAAAGTTATGAACATTCCACGTTCACACATTTCTTGCTTCCCTCATAACTTGAAAGTAAATGGAAGAGTTTTCGGCGAACAAGAGCCATGCGTTGCGTGTCGCGTCGCGGCTCGATTTTAGTTGTTATGCTCCGTGTGGGGTCCACGACTTCCCCCGTTGTCCGCCAGACGATTGTAAATGGAGCCCGAAAAATTCAATGAGGAATACGGGCCAGAACCCCGTGCACTTTTTTGTTTCTAAAACTGAAATAATTTTCAATTTTGAAATTTTCCTTGGTTTTACAATATACAAAAGCTTAAGTTCGCAAAAATTTTTGACACTGGTGGGGGCGTCGAACCCCTGAGGGGCATCCCTGTTAGCCACTGGGACCCGCCAAATTGCTAAAACTTCAAAACAAAAATTTTAGACCTTTTTTAAGGTTGCTTTCCTAATTACCGACGTCCGACTTTTCTAAAATTCCTATTCAAAGTCTTCGTAAAACTAAAGACTGGGGGGCTCGAAGCCCGGTCATCATATGAGTAGTCATCCCTGTCAGCTGGACCAATACACCACTTGCCCCCGATAGACGTGTTTCTGGTCTGTTTTACGGAGCGTGGCCTAAAAAAATCAGCCACCAATTCGAAAAGTCCATAGACCAATGTCAGTTAATATAGAAAGTCGTCTTTCAACCACAAATTCGAGCCAACCAACTAATATATAACCTATTTTCGCCGTGTTGTTCCTGTGTGTGTGTGTGCCCCTAGTTAGGCCTACCCCCCTTATGCGCTTTACTTGCTTTACAATTTCGATTGGCCCCCACACAGTTACGATCATTTTGTGTCGGGTTAATTCGACATATCGTTTAAACGGGTTACCTCTCTCGGGGCCCCCTATTCTCCTACTTCTTATTTGCTCAATATTTGCGCGTCGAAATTTCTTCTGCGATGCCCCAAATAATCAGATTCACCAATGTATAAAATAGTGCCACGCCTCACTTTTTCCACACCCATCATCTCAACTTTCCTCTTCTCAAATGCCTAATCAGCCAGTTATAACGAGGCTGCTCTTCGTGTGGCGCCCCGCACATTTTATTGCTCCTCTCACGCTTCATTCTCACTTTTTCTGGGGATCCTTTTTTTTGCAGACCTAAAAATTTGAGCTCAGCCATATTTTTGTAAATATAATCAAAAAAAAATAGACATTAGTCAAAAAAGTTTAAGCCTAAAAAAATTTTTTAGATAAAAAACGTTTTTAACTTTTTACAGTTTTTCAGTGAAATATTTTCAAATTTTTATAAAAAAATGTTTTAAGCTTATCTAAGCCTATGAGCCTAAGCCTAATAACCCTAAATATAGTGTGGGAGCTCACGCTCCCCCACTTAAGCCAAGCCTAAACGCCTAAGCCAAAGCCTAGGCCTAAGCCTGGCCCGAAGCTGAGACCTAAGCTTAAGCCTAAGCCATAAGACTGAGTTCAAGCCTAAGCCTAAGACTAAGCCTGAGTCTCAGCCTAATCCTAAGCCTCGTAAGCCATTTTTAAAAAAAATCTTCATTTTTTTGCAATTACTATTTTTTCTGAAAATCAAAAATATCGAATTTTTAGAGTTGCTATAAAATTTAAAATAATATTCAAAAAATAATCCGAAAAAATTAAATTTTTTTTCTCAAAACGGAGATCATACAGAATCAGCTTTAAAAAATTCAAACCAACCTATTTTTCGTTTCAAAAATGTTCAGAAAATTTGGTAAAAGTTTTGTAGAAAGTTTTCATAAACTAGCTGTTGAATAGGGTTTTAAGTAGGCGTTAAAACGCTTGCCTGCCTGACCTTCAGGCGACTTTCGCCTGACTGCTTGACTTTCAGACGTTCTCTGCTGCCTGACTTTAAGGCGACCTCCGCCTGCCACTCGCCTCAAGGGTATCCGAACCTTTTCTCTTAAAATGTTTGATAGTTCTTCATCAAATTGCTAAAAATACGGAAATTCCAAAATTTTGTAAGTACATGAATGCAGGCATCTGCTGTGGCCACCCATAGGCCTCCGACTTTCGTTCTACAATTGTCGTTGCCGTTTCCTTCATTTTCATACCCCAAAGTTATGATTTTTCTTACACCCCTTGCGCTGCTGCTGCTTCCGCTCGTGATGTTATGAACCAGTAGTCAGAACCGCAGGTCGAGAATCCCCACAATGATCACCCAATAAACGGGAAACATTAGCAAAAACGTATGCCCCCGTTTTTTTTTTCTGAGAAGTGTCGGCATCCCCCTAACATATGCGGGGAACATAGTTCGCTAAGTTTTGTGTGTTCCTCCAGCTCCTCCATATGGTTACCGTAGTCCACTGGTGTGTAATTGTTGTTGTAACTATCCCCCGAATACCTCTCCTCACATTCATTCACAACACAGGTGTCAACTCAACTCTCAGTGCTCATTTGAAGTTTATGAAGGTTAGCTTCCGGGGATGGCTCTCCTGGGCTCCCCCACGAAAATCAGTTAATTAAGCAATGTGGTGGTGGAGGGGCGAGCTGCTCGCTTACCCCCCCGCCCCGATTCTCTCTCTTTCATTTGTGACTTATTAGATTTTAAATCACGTCTCAAACTTTCCACTTTAACTTTCGCGTTTTTTAAATTTTTTTTTCACTTTTTCCTCACAAATTCATCCAAATAAGTTTCCAGAGTTGTCCCGCCCCATACATTTGCTAAATGGTAGAATGGGATGTGACACCTTTGACAATGTATTTGACAACAACAAACCGCCGACAAGTTCAGAGTGTACGGCGAGTATGAGTTTGGCCGGGGGAAGGCCGATAAGTTGGCCAAGACTTCTTTTTTTTTAATTTTCAAAGGTCGTTACCTTCGCGACGTTGTGCCAGGTTGTCCCATTGCTTTTTGATCTACAGAAAATGCGGGATATTTTCCCTAAAAAATGACATAAGCAAGTTTTTAAATCTTTTCTCCCGCATTTTTTTGATCTTCGTGTACCAGATCATACTCTGACACCACGTGTACCTTGAACCTCCTGGCTCCGTTTCTGAAGAGTCGTCGCTAGTGCGCATTTCTGCATTCTCAGTGGTATTTAATTTGTACAGTACCGCCAGAATCATGTAACGCGCCGCTTGTAGTCTAGTCGTTACTTCAGCTCTAAACGATAGGTCCGGGGTTCGATTCCTTGCAAGTATCCATGGAATTCCTTTCTCAAGATGGAGGTACATATGTGCTTAAAATGTGCACTAGAGATCGCGAAACTTAAACCATGGTCCGACATGTACAGGGTTCCGCGCGCACGCCGACTCGGGCCTCCAAAAAACGCCTGCGGTTCCAGCGGCGACCTCCGCCTAACTCGCGGCGCTATGCCTTCTGTATACGGCCTTCTGTCTTCCCTCATAAATTGAAATGGAAGAGTTTTTGCCGAACTAGGCCATCTTGGGCTCGGTATCTGGTCTCGATTTTAGTTGTAAAAACTAAATTATTTGTCCGTGTGGAGTGCACGACTTGCCCACGCGTTGACCGGCGGGCGATTGCCAATGGAGCGCGAAAAATTCCATAAGGAAGAACCCGTGTATAGTGCCGCGCGGCCCGAAAAGTGTCAGCCGCGGCGGAAACATTCCATAGGAAAACTAAAGTTCTCACTTTCAGAAACATACCAATGATACCAGATTCTGCGGAGATAATGCGACTTGTTGCGGATCCTTCGACGTCTCAGATGTTTGGTAGGTCATAGATCAAATTTTTTCCGCAATTTCCCGAAGATTTTCAACGAAAACACAAAATGTCGGACGAGATCTCCCCGCGTCAGGCTTCGACGAGGCGAGCCTCTCCTCCTCGTTTCCGTGCGATCCGACGCTCGGCGCGTTCGCCGACATTTCCCAATTCTGAAACATCACTCCGAAATTCGTCGAACACGCTGAAATGTCCAAAGTGTGGCCCGACAAGTACCAGGATACCCTCGAAAATGATTTGAAGGAGAAGCACAACGATGTGGATGTCAAGTGCATGTTTTGTGCCGAGAACCGTCCCCACCCGAAGCTTGCTCGCGGTGCGCGTACTCGTGCGGTTATAAGTCACCATAATCCTTCGATGCGAGTTGTGTCGGTACAGTACGACGAGAAAGGGCGAGTATTCATATGCAAATAAGCATCTTCATGGACACCAGTTCAAGAGCTCCCGAATTTGTAGTAGTAGGTGGGGCGGCGAAGGGTACTGTAGTTTTCGTGGTCGGCCCCAAGAATTTGTTTCACAAGAATTTAACTGTAGAACTCGAACTTTTCGATTCTAAGGTCTACGCAAAAACACATACGCCAACTTTTTTGAACCCTAAAAAATGATACTCATTAGAGTTCTCAGTGAGCAAAATTCGATTTTACAGTTTTTAATTTGACGGTACTGTGGGTCTTACACTCAAAGGGTTCTATAGTTCTCGTGGTGGGACCTTGTCAAATGGACGTGATTATATTTGGTTTAAAGCCCCTAGAATTCTGATTTTTTTAATACATTGGTTTTATTCTGAAAAGACTGAGAAAATTGAGTTTAGTCGAAATCAATAAAAATCGCGTCGAGACCCAAATTTCCCGGGTCTCGGCACGAAAATGGGGGAGAGGGTACTGTAGTTTTCTAGTCTTCTCTCAAATATCGAAATGGTAAAGTTTTTGCCGAACTAGGGGCCATATCTGGGATAGATTTACGGAGTGCCGCGTTGCACTGTGTAATGCGCTTGGGCTCAATTTTTGTTTTAAAACATGAGGAAGACCACAATCTGTTTTCGTGGTGGGACCCAAATGGGTCATGATTATACTTATTTGAAAGGCCTTAAGAATTCATTTAAGATTTTTATTATTTTAATTTAAAAATATCCTTAATTTTCCAATTCGCTAGGAGACAACTTCGCGTGTGGTGCTCCAGTTAGCCTAAGTAGTCCAAACGAAGAGCCCGACGGATTCCTGGTCTGCTATCTGCGGTATCTTCACCTCTATCGCCGAAATGATGGCACGTGGAACAAGACCGTCCCAAGACGTTCCACGGAGACGTTACCGTCCTAAACGGGCCGGAAGTGCCACTTGTGCCCGTAAAATACCACATTGAAAGCCAATTTTCAACTACACACAAGGACGGGGGATAAGCTTCTGCAAGAAGGTTCAAATTGTGAGTTTTGTATTCCCCCCTCATCATCTTCTTATTTTTAGGCTTGTGTCGCCCTTTTCCCATTTTTGTGAGTGTCTGTGTGTGTATGCGCACCGATTTGTATACACATAAATTCATGATTTAATAGCGTAGTAATATTTGCTTTGCCACTAACAGTTTTCGTTATTTTAAAGCCTTTTTTCTACTATTTTTGAAAAAAAAATTTAAAAATTTGAACCTTAATATTTCCCTAAAAGCTCAAAACTGTAGTGATTTAAATTTTGAATTCAGTGCTGAGACCTTTTACCGTAGTATAATCATTACTAGGTTTTGGTTCTGACGAAAGTGTTCGTTTTGGCGGAGCCCAAGCAAGGCGTAATTGATTATAGGGTCTTTGCACGCAAAAAATTTAAGGTCCGGTAGGCTTGGAGTTTTTCTTGAATTATATTAGTTTCATAAATTTTCAATTTTTTTGAGTTAATTTTACTCTCCCTTCCCGCGGTCGTGTTGTCTGATCCTAAACCAAGCTCTAGGCCTAAGCCGAAGCCTAGGCCTAAGCCTGAAATAAAGTTTAAGCCAAAGCCTGAGCCTAAGCCTATGTAACCCTAAGCCTCAGCCTCACCCTAAGCCTAACCATAAGGCTAAGCCTGAGCCTAAGCCTGAGCCTAAGCTTTAGTCTAAGCGTAAGCCTAGGCCTAACCCTGACCCTAAGCTGGGTAAGCCTAAGCCTTACCGCCTAACCCTAAGCCTGAAGGGCCTAAGCCGCCTGCAAGCCTAAAGTCTTCGTGAGACGCAATTATACTCAATTGAAAATGAGCTCACTATGAGCTGACTTCAAATTTCTCAATCAAAATGTGAAATACTTTGATTTTACGGGCGGTGGCTTTACTGGACCCACCGAACTTAATAAACTCTGAAATTTTTTTTTCATTGAATCCGGTTTCTACTCTCTCCGGCTATTTGTAGGCTGTCTTTCACTTCTTTGTTCTCGTCTGGTTGTTCCCAATTTCTCGTTCAACCCTTTACTCATTCGCCCTCTCATTTTCCCAAATCCTATTAGTTATGGACCTATCGGGGGTGACGGTGACGATTCTCGCCATTAAGACCCCCCCCCTCTCAGAACTGGGCCGATTGAGATGGAACAAAACAAAACTGTCAATTTGAATAAATTTGCAATTTGACGCGGGCGACGCGGTTACCGAGAAGGATATAAACTGGGGAACTCTACTTAGCCCGTAAGGTGCTGCTACTATTTTATCACATCTCAATTTTTACGGAATCCCGTAAGGCGTTGTCTGCTGCTTCTCTGTTTTTGCATGCTTTTACAAGTTCGGCCCGTCCGATGTACTCGGCTCTTTGTTTTGCAAAACAATTTAAAATTTGAGCCAGGTGTCTGCTGCTCCGGCTAGATTTCCAATATTTAAATTTTGCGCAATCCTGTAAGATGTGGGGTGCTTGTCAGTTTTTACAAAGTTTTTTCTCTAAGGCCCGCGCAGTGTCGGCTGCCACCTCGTATGTTTCATCAAGCTTGATCGATTCGAGCCCGTTAGCTCAGGGCCTGCGTCTTTTTTTTTCTCAAAATTCCAGCCCGTATCTTTTCGGTTGCTAAATAAAGACAGAAATTATTACGAAATTTTAACGCTTGAAGTGTCGGCTGCAAATTACACTCATTAGATTCCCTGTCTCTCCCTCTCCCTCTCTCTTCATTGGGGAGTGCTTCTCCCGAGAGAAAATGACTAAAACTGTCAATTCGAATATGCACACAGCGGGAGATGTTTTTCTGTAACTCCAGACTCCACCGTCTTCTTCGAGTGTTCTACTGCCTATTAAGCGATGATTAACTAGTCGTTCCCTCCCCCTCTCCACATACCAATAAACCTGCCAAAAGTTATGTCGAGTATGCTTTGCTCGCCATCGTGCCGGAGGCTATTTTTTCTAGACTATGATGTTTTTTGGAAAAACATTTTTCTATGGAACGATGCAAGCTAGTGCCGTGTTGCCGAGTCTTCAATTTAGGCGTATCAATTATGAGATTTCAATTTTAGTCCCTTGTATATATTATTTTTTTTGAACATTAAAATTTGATAAACTGTAGATACCCCCTAACTATTTATTTTTGTGCCAAATTATACTATACAAATTGACTTGACTCTAGATGCACCCTGACTTTTTAACCGCACTTTCGAAGATCTCATATTGTCGCCTAAAATTATTCTCAAATATTTAAATTTAAACTTTAATCCTTTATTTTTTTTCATTCCTCGGAAAAAACCCCGTTAACAGAATTCCCAATCTGGCCTCCAGTTGGCGCTTTTGTCGATGCACCATGTTCAATATTTTTTCAAAATTTGGCTCATTGACCTGAAATTTTGTCATTTTTTTATGTTGCAGGGTTTATTTTGCGATTTTTGCGATGACAACCACATTATGTGGATTAAAAAAGTTTGGAATCTCGTTTTCCCGTTTGGCTTCCATATTGCTATGTAGTTGATGCACCATGTCCAGCTTTCTGTTGAAATTTTACTTTTTACATTTTTTGCTCGCTTTTTTAAAATTTAGTTTGACCTTAAAATTTTGTCAGTTTGACAGTAAAAATTTGTCAGTTTGACCTTAAAATTTTGTCAGACATATAATTTTTTTGTGTTTTTTGTTTAAAAAATTGAAGGTTTTTCGCGATATTTAACATATTGCATGGAATCTTTTGATCGTCTCTAATTCGTGTAGCAAGTCGATGCACCATGTCCAATTTTTTAAAAGCCATTTTTACTTTTTTTAAATTGTTTGCCCAGTGGCTCTTGACCTTAAAATTTTGTCCATTTTCCCTTAAAATCTTGTGTTTTACCTTAAAATTTTGTAAGTTTGTTAAAATGTTTGTTTTACCACAATTAAAATTTCCGAATAAACTTTTCTGTTTTTTGGGTTTAAAAATTGATTTTTTTTGCGTAACACATCAAATGGCAAAAAATCATGCACCATACCGGGTGTAACTTTATCCGAAAACAGTTTTCCCTAAAAGTTTGTCAGAATTATACATTCTAAGTTCAAAACCGTACGGAAAAATTAGAACCCATGTCGACGCACCATAAGCTTTGGCCCACTGAGCTTCGTTGCTGGTCCTGCATATCTCTTACCCCCTCTCGCCGCTCTCATAACATTGACCAATTAATTGGGCGGAGCGCCGTTTGGAAATCGATTGGCTGACGGGCCCGCCCCGCCCCCCGTCCCGCAAATTTTCGAAGGAGCTTTGGACTGGACAGACACACACACAAATTCACAAATACACGCCAATTTGTCGATTTTTCTTGAAAATTTCTTCATTATTGTATATTTTTTTGTGTCGTCCTCTTGTCATCCGCCATCCTCGGCGTCTTCTTTCGTTTGATTATTTCATACACCTACCACGTAATTCGCCTATTATCCGCCTCGTTACCTTCATCTTTCGGTCGACGTTGACGTGACATCGGCGCTCCCGAAATGAGAGGAAATAGGGGGGGGGGGGGGGGCGGACGACGGGCCCACTACGACAGATCACGATCATTTTCGTTCTATCATCTTATCCGGCAAACCGTCGTCCCCCTCCATTTTTCAACTTATGTAACCAAAACTTTTCTTATCTTGGGATTTGGTCCCCTTTTATAGCAAATGCACTGAATTGACAACATATTAGTTTCTCACTTTTTCGAAGTTTCACAATTTTTAGTTAGTCCGTTTTTTCAGTCTGGCCGAGTTTTCAATTTTCCCCGGCCAGGGAATCTAGTAGTATTCACATAATTTTTCTTATTTTTGGTTTTCTAGGCGACCACTCCCTATTCTAAGCCCGGCAAACTTCTAGGTCCCCCATTTACACCTGACTTCCTACCTATCTGAAATGCCTACTTGCCTTCCACCTGACAAAGATGCCTACCTACCTAAAACCTTCCTACCGAACTATTGACTCTTACCTACATAAGACTTGCCGATCTGAAATACATGCCTACTAAGACATGATACCTAGCCTACCTATCTAAGCTACCTACTTACAGATAATGTACCGACACAAGACTTGCCTACCCACGCACGGCATCATTTTTACCTACCTACCTGTACTTAAGATCTAAGACCTAGATCTTAGTACATAAGAATTTTCATCTTAGATACCTACTCAAGGTCCTGCCAAAGATGCATGCTTACCTATGACCTACTTACTTAAGATACCTGCTGGCCCAAACCCTACTACCTACATGCGCTAGCTCCCCCACCTACCTAAGATACTTACTTACCTATACCCGATTTACCTACACAAGACTTGCCTACCTAGGGCCGCAAGGCTTGATTTTCTTATTGTTAACCTACCTACCTAACTATAAGTACGATTTAAGACCTAGACGTTATTGCAAGACAGAGTTTCTGTCTTAAATACGTACTCAAGATCCCCCACGATACCTAGAAGCACTTCCGACCTAAGATGCCTCCTAAGCCCTGTCTCCCTAAGACCTAAGTGTCCTATAAGAACTTCCTAACTAAAAACACCTACCTAAAATAAGCCTTACGCCAAGCTCAAAAATTTAGAGCATCTGCATGAGATAAGGCTGAAAAATATCAACGAATAATGGAGAGCGATTATGTTCCTGCCCTCTTACTAGAAAGTTCGGAAGTAGTCGCCGCAAAACGCCATTACTATTGCTCATCGAGCCATTTCCGGTACTCAGTACTTTCTCATCCCCCACTACTTTTTTCGCACTCTCTTCTCGATTTGATTTGCATTCTTTTTGCCCTCGTTTCGAGCTGAGCCCGGTTGATTTCCCGCACTTTCTCAATTCTTTCCTCTTAAGCCACCGCACTTGAACAGGAGCAGTTCACACATGCAAACTTGGACTTAATCATATTAAGACCCCCCCCCCCCACCCCTCTTAATTTCCTAATCCCCTCCCCCTCCTCCTCATCATGACCAAAAGACAATTGTCTTCAGGCGAACCATCTTCGTGAGAGAACCCTCACACGGCAATCTACCGTCTGTCGAGCACAACGTGCGTTCAAGTGTTGTGTCGACAGTGTCACGAGCTGATGGGCTTCCCGTGGCGAATCGCCAAATCCGCGAGCATCGACACTTTCCTGCTTGCCGCCAAGCCAACGCTTGTGGCGATGTTGTGTAGGCTTGCTGGATTTCGATTCGGTTCTTCTTGCAGCTGGTGAGTTAGTTATTTTTAGGAAGAAATTATATCTGTGTAAGTCCCCCAAATATAAGCCATGTCCCTCTTAATAATGAAGCTTCTGACTTAATTTACTATAGATTTTGAATTTCGTCTATCGAAAAATTAGGTTCACCATGATTTGTCGATTTTCGATGCACTATGATTTGTTGCTAGGATAGAAAACAAGAAAATTCGTGGCCTACGAAAGTTTTTTAATTATTTCTTTTTGTCGGCCAAGATGAAAAAGTCACCTTTTGTGTATGGATGCAGCATGACCCTTTTCAGTGGATTTTGGCCCAAAAATCGTCAAAAGTTTAAAAATCAAACTCTAAATTACCTTTTTTTTTCAAATTTTCTTAACAAATTGGAGCATTTTACAGAAAGCCGATGCACCGTGATTTTAGTTAGAATTGAAAAAACATTCTCGGGCAAGTTGCAAAACTCACATTTAATGTATATTCGATGCACCATGACCATTTTCGAAATTTTGCGGTACCTATTCAAATAGTGCACATAGGCGTACAAACATTGGTGGTGGCCTCGTTTCCTCATGCTTTCGGCCACGAAAAAAAAATATACAGTTTTTGGGATCGGGGAGATGCACCATGATTGTTTTTCAGTGAAAGCCTGTTTTTGCTTAGCAGTCTCAAAGGTATCCGGCTTAATGTTCCCACGCTAAAACGTAATCCAAACATTTAAATTTTAGCGTCAAACTTTTAGGCCCGGCGTACACTAAAAATTGTAAACTTTCAATATATCAAAAATATTCTGACCTATAGCAAAAATTAAACCTAAAAGCAATCAGATATTTTTTCAAAAAAGCTTCTGTGTGATGTCCAATACATGGGTGTGCAGCTAATCTTAAAGTGCTGGCCGTGCTTAACATACTCCGAAAAAGAGTGATATTATTTTATGCTTTTTGGAGCACCAAAACTACTGAAGTTCGTGCTTAGCAAACAAATTCGGCATATTTGCCCCCCTGGTCCACTAGTTAAGCAAAACCCACCGCTGAAAACTAATCAATTGGTGTTTGAAACGGGGAGTGCTAGTACTAGAAGTATTTGGCTGTTCAAAATCTCTTTATTAAACACTTCTTTGTGTCTATTCTGCCCTTTCCTCCTCCCCGCTCAAAATCACTGTACCTCTAATTACGGTCAACTGCGGGTTGAGTTTAGTGAATGAATTGTGAAATGAATGAATGAATGAATGGATAGGTAGATGTGGGTTCTATGTATGTGGAGAAGTGCGACACATGAGCACAACCAGCCGTCACCGCCACTACCACCAGCAGTAGCAATACCCATCAAATATAAGCCTTGCATTTCATTATTTCATAGTGTCATAGATAGTAGCAGGCCCCGAGGTCCGAAAGGCCTAGACCAGGCAGCCGGCAGGTTATATTCAGTTCATTTTTTGACACCCCCCCCCCCCCCCCCCCCACCTCTACAATTCTTCTTCTCTACACATACATTAATCGCATAGTCAGGCCATTCATGTTTTTCACACAATTTTGTTAATAAAGCCGCTCTGGTGGCCGCCACCTCTCAGTAGTCCTTTTCCATCGTCTCTTTTTCCCTCTCCCTTACGAATAAACAAAAACAGTCATTGATGAACGACGTATCGGAATTGTAGTCTCGCAATTATGGTAGGACATATGTCTTGCCACGAGCCGTCCACTTGGCCCAACGAATCACTTGGTGAGTCTCTTTACAGCTTGAAATTTGTGTTGTTTTGTTGGGAAATATAGTTAATCGTTTTTTTAATTAGTATCTCCAATTAGGCCAAAACTACAATCGTGAAAGAATAGTTTCTGCACATGGTGCATCGCCCTGATCTATCTCACTAAACTTTTTTTGGGCTTCATCAAAAACTTGTTAGCTAATATAGTTTAGCATCACTCTATTGATATGTTCAATTTGAACCGAATATGGTGGATCATTTATTGCAACTGAAACAATTTGGCGCATAAAATTGCAACTATGTAGTTTATGTACATCGATCTTGATTACCGTATTTCCTCTATTGTATTGCACCCGACATAACTTTGAAACGTTATATCTCGGTTCATATTGAAGATATCAATAAATACTATTCCGAAATGAAAGCAAAAGAACTAACAAAGATTTTGTTAGTTGACCATTTTTGAATAGGACAAACGATTAAGATGTAACAAAAGTGGACAATGGGGAGCAATACTAATTGTGTAAATACCTTATATCTCGGTTCGCTTTGGTTTTAACAAAAATTTTAAACTGACAAAATATCATCTTAATGACCATATTGTAGTTAACAATATTTTGATATCTTTAAGAACTAGCGATTTTCGACATGGTGCAACCTCAGTCACCTAGTCTAACTTTGCTGGATTTCTTAGTTTTAGTATTAACCGTTCATTTTAATATACTTTTATAAATAGTGTCCTAACAATTTTTTGATACCTTCAAACGTGTTGAACAGGAGCGGGGATTATAGCATGGAGCTTTGATCCTATCTTGCCTTAATTTTCAAGCTTATTGTTGTAAAAAAAATTTAGACATGGTTCATTGACCTGAACTACCTGATATATCGTACTTATCTTCAATTTTAGCAAGTTTTGGAACCAAAAAAATATTAATAAAATCGATTTATAACATTTTTTCCATTTTCAACCTTCCGACAAAAATTTTCAATTTTGACCTTTTTTTATATGGGAACCCGGCAAAAATCTAAAAACTCCCAAGAACATTCTCCCACGAAAACCTAAATACTTGTAAATCTAGATCAGTCAACATGATTTGCACCTTCTTCCCATGGGATGGCTAAAGAACCCAGTGCGATGATGAATCGGCCTGTGGGCCGCGAGCAGACGCCGCTCTAATCACTTTTGGAGCATTTGTATATATATAGCGAAGAATTTACGTTGGGACCAATGAAACCAATAGAAATCCAAACATATTTTTGTTTTGTAATCTCTTCCCTCGCTGCTATCAGCTCTCTTGCCCCTCCTTAACCAATCAGAGACGCAGGCACACACCGCACCGCCAGTCCGTCATCGTCATCGAGTTCCGCAATTAGTCGTCTATTCTATCCGTTTTTGATTGGAGTTATGGAGCGGAAAGAGAAAGACCGAGAGAGAGAGAGAGAGATTAGCTCTTAGATTCATTCAACTAATCTTGAAATAACACACCCACACACATACAAAATGAATAAGGTATCTTGATTTCTAGAAAATCATGGAAATCAGCAAATTCGCTAGAAATGGAAGGGGAAGCTTGAAATAAGAGCACTACTTGATACCGAGTTGGGTAGTGTTTTAATATTTGAAGAAATATTACAATTTTGCATTCTTTATACTTCTAAAAACAAGTTGCTTGATGCATCATGCCTCTTTAGATAACGTTGTCGTTGTTTTAGGCTTAGGCTTAGGTTTAGGCTTAGACTTAAGCTAGGCATAGGCATAGAGGCTTAGGCTTAGCATAGGCTTAGACTTAGGCTTAAGCTTATTCTTGGGCTTAGGCTTTAGCTTAGGCTTAAGCTTAGGCTTCGGCTTGGGCTTAGGCTTTAGGCTTAGGCTTAAGTTTAGGATATAGGCTTAGGCTTAGGCTTAGACTTCTAGATTTCTCGTAAACCACCAAATTACTGTATATTCTCTATCATAGATACTACTTCGGACCAGCTTATAACTCAAGTCTTTTATCAGAGATGAATCACTGCTTTAATTACAACAGGTTAATAAATACACCATATTTTATTAGTTTAAATTTTTTGATTAAGCTAACGAGAAAAATATGACTAGTCAAAGATTATCGATGCACCATGGTACTACACTTTACTTTGCCGGCTCATAACTCGGTTTATTTTCAGGATATCAAAAAGGTTTGATACAAACCTATTAAGAGAAACATATAATAAAAATATTACTATTTTGTAAGACAATTTTGGTAAAACTAATAAGAATCGAGGTAGATATAGGCCGTTGAAGTAGCATGATGCAGTTGAAAGCCTACGTTTTTAGACTTAAAGCTTGAAAAGGATGTACCGTCACGTATTTCCTCTATTATTGTGCCACCCATTGTTCAACTGTGAAATCTTTTATCTCAGTGACTGTTTGTTCTAATCAGAAATAGTTAACAAAATATTTCTTAGTTCTTTTTCTATCATTTCTTAGTTGACCTTATATTGATACTAAAATAAACCGAGATAAAACGTTTCAAAGTTAAGTAGTCGGGTACAATAATGGACGAAATCATGCGGTATTAAATATTTTGACACGGTTAACTATTTGAGCTAGATTCTCGATATCATTTTAATTTCTGATCCATGGCTCGTTCAATTGTCTTGCCTAGAAAATCTCTAAAAATAACGTCTACGAGAGCGGGTGAAACAATAGGTGGTTAGATGTAAGTTGATGCCCCTGAAGGCATCCGGGATCCCGGTGTCCGCAAAAACAGTACAAATGTAACATGAGATGTACATCCCCCATTTGTGGTCGCTCTAGTCCAAGTTGAAATCGTAAGCATGCAAAGACATTGTTAATATAGCCGTGACGCGACGGTGGGCTCGCTCGATGAATCAAGATCGTTTTGGGAAGAGAGGGACTGAAAATATTAAAAAAAGATTTGCATACCCTCTGTAATTGTTTGAATCATCAGCATCATCATCATCATCAATCATAACATAGAGGAAACTTTTCCTGCTGTGAATGTGTCTCCTTTTTAGTACAGTCAATAAATGTGTCACTTTAAAGGGGGAGAAGCTTTTCACGGATGCTTTGCTCTCGACCTCCTTCCCTCCTCGCTTATAAATTTCCATTTTTCTCTTTAGGCTCAAACATTGATTGATTTACTTATTCTATTGACATTCTGATATTAATTTGATCATCTACTAAAAGGTATATATATATATAACGTATATCAACTCTTGGAGCCCATATCTTTAATGCTCATTAAACTCTGCTCCCAGTTAGGACTCGTCCGGGAGTGTAGTACTGGGTGTGGGATAAGAAAGTTAGGATGTGACGGGTTTCATGTTCATCTCGAGCTGCCAATCTTGCACATTAAGCGATTGGCTCATTGGCACTCTGTTTGTCCTCAGGGCCTGCCGCGGAGCCATCTCCCGTTTGATATCTGCTCCCGGACGTTCCCATGGCCGGAGAGAGGCGCCGCGAAGCACAAGCTCAACCTTTTCTAATGTAATGGGCCGGTGTACAATTAGGGGAAGAAAACAAAGAGGATGAGAGGTTGGGGTGGATGAGGCAGGGAAAAGAGCACCACCACCAACTGATTTGCTGGTTGGAGAGGAGCTCGTTCTGTTTTCTTGTCGTCGTAAAGTAGGAAGAAGAAGAGAATCGCGCTAGTTAGTGGTTAAAAGAATCGAGACCCGAATGTGATAGATGTGTCGCCAATTTAGCCAGTAGGATTTTTGCTGATTTTGCACACTTCTTGCTCTAGACATTACATCCCATCTTACGCTTCATTCATTGTGGTGATTTTAAGATTTGGGGGACCTAGTTCGAGCCTCTACAGTATTACTTTAAATTTCACTATTGTTTGGTTTGAAAAGAGACTATTGCGTCATATCATTTTAAGGCACCTATGTATACAGTTCAAAATTTTGCAACATTCCTGGACCATAGCGATCTTAAAGCGGGAAATATAATCCAGACATTATCTGATAACCCATTTTTTCGAACTCAAAAAATTGAGTAAAGCCAATTGAATCGTATCCCAAGCCTAATGGATTGCAAAGTTGGGCCATTCTGAATAGCTTCGAGTTCCAAATAATCACTGAAGCTAGCCAGAAGCTGAACGCACTGACCTTCCTGCCAAGCCTTTCTTTAGTGTGAATAAGTCTCAGACTAGAAGCACTACCTGATGAGAGAGATTCCTTTCTCTCATAAGTAGTCTATTTCATGATGCAAGAACTTACAGCATTTACATTACCATGTAACATTACTTAAGATCCCATTTCCACTTAAAATGTGGGAAAATCGATACGGTTTTATAAGAAGTGTCTTTTCGCATCTTTATAGCCTAGAGCAAAAAGCCAAATTGTTTGGCAGATCATGTCTCCGACAATATTCTGATCGATTAAGAAACTTTTCCAAATCTGCTCGGTTTTTTAGTCTACGCGCCCAGATAACTGTGTTCTCGGCATGGCCGATTTGCCGATTTGCCGGAAAGGATTTTTACGTACTTTACGACAACTTACTGGCATTTGCCGGAGATTAAGGGAGAATTTTTTTGAGACGGAAAATTTTTTCATTAGAGATGTTCATAGAATTAGCTTACACTTACAAAATAGGTCTATGAACATATTCAAAGACCGATGCGCAACTTTGCCGATTGAAATTGAAATTCTGAAATTTCCAAAAAATAAATAGGTGACACAATTTGCCGTTTTCCGGCCAATTCGGCAAATCGGCAATTTTCTGGATCTGCAAATTTGCCTGAAATTTTCAATTCCCTTTATTTGCCGGGTTGCAAATTTGCCAGAAATTTTCAATTCCGCACATTTGCTTCCGGCCAATTCGTAAAATCGGCAACTTTCCGGGTTCCAAATTTGCCGGAAATTTTTCAATTCCCTTTATTATGCCGGGTCTCTGCAAATTGGCCAGAAATTAATTCAATCGGCAATTTGTCAGTTAACGTGTAAATTTTCAATTCCGGCAATTTGTCGATTTACCGGAAAAAATCGTTTGCATCAACCCATGTGAACGCTAGCACACCTCCTAGTATTAAGGCTCCAGCTAATTTCTGACGCATATCATGGTTCCCAACTATACGTTCCTCCCCTCCCCCTTCCCACACCATTTCGAATGGGCGCCAATTATTAATGGATTCTCAATTCCCATCATATTGGGGGGGGGGGGGGGGGGGGCATTCGTACAGTCTCAATACGAATAATACTTATAAGCCCTCTTCTATGCCCAAAGCGCGGCCTTCTTCTTCACCCCTCTAGGCGATAAATTCTCATATTTAGCATTTTGTAAGACTCGGTCTCCCCCTTTCAAGTATCTCTGGGCGATGATTCCCGCTCTAGCTCTCGCACACACCCCATTTTTTTTTCACAATAATCATTCAAGGTGGACACCAAAAAAGCCATCAGTTCGATTCCGGTCAAATCGAGAGAACTGGAAGAGAGAGAGAGAGAGAGAGAGTAAGAGGAAATGAGACAGAGGGGTGAGAGATGGAAAACGAACAAGTTTGATGGGCGTCCCCCCCCCCCCCCCCCAGGGCCGCTCCTCATACTTAAATTTAACAGCTGTCACTCTCTTTTGCTCTTCAATTTCTAGCTCTCTAAACTCCTCAGGTCTACAGTAATCGGGGAGGGGGTAGTGATAAGCCTCTTCCCGCCCCCCCCCCCCCGGGGGTTAGGTGTCAGAAATTAATCATAGATGCCACGCCTCTAATGTTTTCGGAAGCAGTCATCCTCGCTTTAAATCTTTAATTCATTAACCTATTAATTCATTAGTCTTACACTGTCAATTTCATAACTAATGTTGAAAAAACTTCTCAAAAAAAAAAGTTTTGGCGGCTTAAGAAATGGCCTAATATTAGTTCGACTTTTCAAGCGGCTGGAAACTAACTTTTTTTGAGATCCACCCTAATTTCAACAACGTAAATAAAAAAATTTGGTGACCCAATTAAATTTATTTAGGCCAAATCTGGTGTTCAAATTTTTTAGGCCAAATCTGGTGACTAAATTTTTTAGGGCCCAATATGGTGACAAAATTTTTTAAGGCCAAATCTGGTAACCACAATTTTTTAAGGCCAAACGTTTTTAAATACCAAATTTAGATGTTAGAGCCAAAGTGACGGTGCAAAGGTATTTAGGGGCGAATCTAATGACCACATTTTTTGGCCAGACCTGTCCCTAATTTTTTACAGGGCCAAATCTGGAGACCAAATTTTTTAGGCCAAGTCTTGGGATCATCATTTTTTAGGCCAAATCTGATGACCAAAATTTTTAGGCCAAATCTAAGGACCAAGAAAATTTAGGATTTAGGGGCCAAATCTGGTGACCAAATGTTAGGGCCTCTGGTGACCAAAATTTTGGCAAAATCTAGTTACCAAATTTTTTAACCAAATCTGGTCACCGAATTTGGCCAAGCCTTGTGATCAAATTTTTTTAAATTTTCAAATCTGGTGACCAATGTTTTTTGAGGGCTTTGGTGGCAGCATAAAATTTTTAAGGCCAAACTTTTAGGACAAATCTGGTGACCAAATTTATAAGGCCATAATAACTTTTTTTTGAAAGTTTGAAGACGTTTCTAATTCATAAGTCTTTATCTTTTTCAATTTAATCTTCGATATTCTAGATTTCAAAACGATGGAGGATGCGGCTTACGCGTGTGCTGGCTGCGACTTCAAAGTGAGTGTTTTTTGTTGTTTCCTCATCAGCATCAGCTCTATCTTCTCCCCACCCCACACCGCTCATGGCCACTTCCTGTAACCTCCAATTGCCATTCATTTCACACAGTATTAGTACCACACAACACCCTTCCATGCAATTTGACTCATTCATAGCCCTTTTCTGGACCATGTCTTTCTTCCCCCTTCTTTCTCTCTAATACTCAACCTATACCTACCTACCCGCAATTTAATTGTTGAGCAACTAATTGATACACTCGGACGGCTCAAACGATGCGCGTCCGTCGTCGAGTGCCCAAGACTGGGACCGGTTTTCAGAATGTCCAGTGTATGTGTGTTTGTGTCTACGGCTGGCAGGCAGCCACACCACTCCGATTCGTTAATTTATTGTGAGATGATGACTGTACATTACTTTAAGTGCTGCTGGTGCTGGTGGTTTGCATCATATAATTATAGCTGATTATATTGACACACACACACATACACATTTACTTTCAATTGCTTTTACCCAATCGTTTTTCTTCCATTCCCCAATCTCCTTGCTCCCATTTGGCCCTTTGATATTAACCGCGTTGCGCGTTTCGCACTAATTTCGCGCCCGGACCGGTGTGCTCGGCGCGGCACGTCTTTCATCTTTTTACCTCAATTTCATTATGATTATAATAATCATATTATGGAAGCGAGACACGGCAAAGACGCGCTCAAGAAACTGATAAATGTGTAGAGGTCGGGTCCTTTTGAGAGAGACGGAGAGAGCGAGGTGTGATAAGAGCGCCTAATGAGCATGGGCAATCATCACATTACTATCAGCAGCATTAAAACTTTTTCAGAAGACGTGTCGGACTTCATTTGAAGAGCACACAAAAGGACACGAAGAGGAGGAACGGGAGCCTCTTCACAGAAGGCGTGTGCGCTGTGCCTGCTGAGCCCACCGACCACCTCGAAAAGCACCTTGTCGAGCACCCTGCTATCGCATCGCCGAGAGGGCTATCGAAAAGTTCCTGCTTACTGAGCGAACAGCCAAGTGAGTGTTTTTTTTTCACTCAAATATTTAGTAGTAAATCTTATACTTTTATTTCTAGCGGTTTCATTTTTGATAGCTAGTTAAAAACCATAGAATAACAATTAACTTTTTGACACCTGTCGTTTGAATTTTTTGACAAAAATTTTGTCGTTTGAATTTTTAAAATATGATCGAGACAACCGAGATATAAAAGGTCAAAGTCCAGTGAGAGGGGCCATAATGATAGGGATTATACGGTAGGTATCGAAAGAGACTTATAAGGACAAAGATAATGGCGCTAGAAAGTTTAAACTAGTCCAATTTGAACAATAAAAATATATATCACGTACTTCCCATTTAGTATAAATATTTTAATGAGAGTAATCTGAGATACAGTAAATTTTTGATTAACAATTTCTAGGCACCATGTACAAAACCTAGTCCCCAGCCCTAAAATTAAATAGCACGTACTTTTTAGTATAGAGCCTATTTCAAAAGTTAAGCCATCTGATACACAGTGAATTCTACCAAGTCCTAGTCGATGCACCATGTGCCCACTTGACTTTCACGGCGCACTTCCCGGCTAATTTCATACCTTTCAGAATCGCGATTTTCAACTATTAAACTATAGAGGGGTTTTTAATAAACATTTTCTCTGTTGACGACTTTTTTAACGTAGAATCAAAGACTACCTCGATAGCTTGATAGTTAAAGTCGAGATGCAAGGTTTTTTCGGAAAAATCACGCGGTGTTTTCGGTTTGTCTACGTACAACGAAAAATTCGGGAGAAGAGACGCAGAGGTTATCAACTCGTATGGTAAAGAACGTGCTGACGTTGTCACATATTTTTGAACAAAAAATCATTTTTAGATCAAACCGTAATGGGGCAACCTCGCACCACGTGAAAAATTAGTTTTTGAGGCTTCTCTAGTCTAGAGACTCACTAAAGTATTTTTTTTGATTGGCCTTGTTTTTTCTAGACTTAAAGACCAGTTAGATCCAATCAAGGTTTTTCAGAGTGTCGATTTTTATGAATTTAAAACTTTCAAATTGTAATCGCACGTTCCTCCATTTCAACCCCAAACACGTTACGATATTGTGCTATCATAATCATTCAACCATGCTTGCTTGTGTGCAAGTTGCACAGGGTGCGCCGGTGGTGGAATTGGCATTACTGTAAATGTCCTGCGTCTCCATCCTTGCCCCCAGTGTCCCCATCGGCATAACTATTCGAGAGGACGATCCGCTTTTGCATATCTAATTGTTCAGGATTGTTTACGCGCTCTAAAATTCAATCCGTCGCCAACCACCCGCCCCCCTGCCTGACTCTTCAATTCATCATGAGTATTAGTGTATTGATTAATTTTCGAATTCACGAATCAGTGCTGGCGCCCTGCTACTAGTAACCAGTGAGGTCATAGCGTTGCCCGCAGTTTCGATAGGGCTAATGAAATATGTAGTTTCTCTAGGGGCGGGAGGATAGGTTTGATCAGGAATTGGGCGTCGGTTTGATCTACGTAGATCTATGAAGATCGCGGGAATTTAGACGCAGACTTCTCAACTGATTTTGCATGGTTAAAAACGTGCTGACGTCATATGTTTTAGGGGAAAATATTGCCCGCACTTTTTGTAGATCAAACCGTAATGGGACAGCCTGACACCATGTGCTCAGTTATGGTCCAACTAGAGGGTTTTGTCGGAAAAATCTGCAATCAATTTTTTAAACTGACAACACATTTAGCTCCTTCTCCAAAACTGAGCCAAATGTGTAATGTCAAACTTTTCTTGAAATTTTTGTATCGAAATTAATTGATGTTGAGGTGAATTTTCAAATTTCAAAAAAGGTACTCATTTCTATCAATTTGTCTTCACCTATGTTTTCGACTAAGTGCGAGGCTAGAGGTGGAGGTCCCCTTAAAATCATAAGATAGCCTTATGTGATGTCGAAAAATGCCAAAAACCGCAATGTATTTTTCTATAGTTTCCCCGTGTGTAGAAGAATGTAAAAAGAGCATGCATTTTGTGATCATTTTTTGACATTTTCCTGCATTTTTTTTTGACAATTTTTTTTCATTTTTCCACACAGATGAATAGCGGAAAAACTTAGGAAAAAAATACCATATTTGCATTTTTCATGATCACATGATCCCCCATAAGGTTTTTTAAGGCATAATATTGATATTTATTAGTCTACTTCGGATGCATAATGCCTACTATTGAAGGCAAATCAAATCGACATCACTTTTTGCTCATTTTCAAAACTGAGAGGCACGGCTTCTATGTTGACTACTAAACCAGTCAATAACACTTATAAAATGTTTGGAAAACACTCATACACAGCCACGTCATAGCTTGGACTGGATGGGACCCCATTTCTTGAATCATAAAACCTTGATTGTTAAACTATCATCCCCCCCGCCCTCCTCATTGGACGACCCCACGGCTCTGTCTCCAATTTGTTCCCCGTCCTCTTCTTATCACCTTGACGCGTTGCTAATTGAAATTTTGCGTAGAGGATTTCACTTCCTCCCCACCGCTTCCTTTACTCCTTGGGGGATAAGTATGGAGAGTGTTTATTTGTGTGATTGAAGTGAAGAAGGTGGCTGCCTCATTATTTCATTTTCGTCGCTTTCTTTGAAAGAACAACTTGACAGTTTCCCCCCCCACCCCCCATCTTAATAATAATTACTTGCAGACAAGCGTCGTGTTCACCGTAGTCGGAGTCGAGCTAAGAATTCGCGCATCGCTGCTCGAGTTGCTCGATGGCGTTCCGAAGCGAGTCGCAGCTGCAGACGCATTCCCTTCAGCTCGTGTTCAACTCGTTCCACAAGTGCCCCACGTGTGGCGATTCGTTTGATGACAATACTATTGGTGAGTGTATTGACACACTTTTGGGTCACAGTCACGCTTGATCTACGTGTTTTTAGACACTTTTGAGTCTACACGTCGTGTCAAATGTCTCTTGGGCTAACTTGATCTGCGTTGATATACCGAAAAATGCGGGAGGTTTTGGGCAAAAAATTCCCGCATTTTTTGTAGATCAAACCGTATTGGGACAGCCTGGCATCACGTGGAGAACTCAGTTAAAGTAAGAGGGTTTTGTCACTAGATTTATTTTCTGTAAACTGACAACACATTTAGCCGCACTCATTCTCCAAATCTGAGCTAGGTTGTCGACCGACTTTTTTTGAAATTTTTTTAAACGAAAGTAGTTTTGCTAGTTTTCCTAAAAGGAGAAAGAAGGGTTGTCCAATTTTTATAAGAAGGTTTTTGTCGACTCGGAAAAACGATTTTTGTAAATGACAACCCTTTTCGCTCGTCTTTTCAAAATTAATTTTTTTCTCTTGGCACTTAATCCCATTTTATGTAAATTAACAAAAAAATGTCAAAAAATCTTCAAGTAGTTCTACAGGGTGGCCTATCTATAGGGTGGCCTACATTTTTGCACGGGTTGTCTAGATCCTTAAACAGGGATGGCCTCTCTGTAGTGGCCTAGACCTTTTCTACACGGTGTAGATTTTCACTGGTGGCCTAGATTCTCACACTAGGTGGCCTAGATTTTTCCACTAATCATAGCGTAGATTCTTTACAGGGTGTCCTAGATATTCACGGTGTCCTACATTCTACACAATTGTGGGTGACCTAGATTTGTTACACTGGTGGCCTAGATTCTCTACAGGGTGCCCTAAATTCCTTATAGGATGACCTAGATTCTTAAACAGGATGGCGCTACCTAGATGTTGACACTAGGCCTTGATATTTTACAGGGTGGCTACCTAGAATTTCTACAATGGCCTAGATTTTTTGCAGGGTGATGCTTGGATTATTAAACAAGGTGGCCTAGATTCAGGGTGGCCTAGATTTTATACAGGGTGGTCTAGATTGAACGTTTACACTGGTGGGCTAGATTCTTTACAGGTTCGCCTCAAGATTTTCTATCGGATGGCCTAGATTATTAAACACGGTGGCCTAGATTGGCCCTTTACAGGGTAGCCTAGATTCTTCACCCAAAGCGTAGACTAGATTTTTCTGGTGGCCTAGACTAAAGGGTGGTGGAACTAGATTTTTGCACTGGTGTATGGCGTGGATTCTTAAACAGGCTGGCAAATTGTTCCCCTTAGGGGATGCCACTAAATTCTTAAACAACCTAGATTTTATACGGGAAGGCCTAGAACTACTTTTTGTAAATGACGGCACTTTTTGCTCGTTTTCCAAATCGTTTTTTTTTCAGAGCCATATGTTGGAGCGTACACCAAAGAAGAATGCGAAATGTCTGAAACATTTGCCACAAAAGAGGCATTCCCCTCCCCCCTGAACTCAGCGTCACCTACTGAACACAAAGAAGCATCTGGAAAGCTGGACTCGACTTAAACTCTCAGGTGAGCCGCCGCCGCGCCTCAGGCTGCCGCCTGGCTACCGTAGTCACCGTACCTTTAATTGCTATTATAGCCACGCCGCTCAGCTACAAGCTCGGAGCGCAGAGGTGACAGAAAAAGCCGACAAAACATTAATATTATTACACTTTTTTATGATTGAATGCGAGAGAGATGTATGTGTGTGGAGTGGAGAGGCGCATGAAATGGTGTTCGGGTTCCATAGCAAGCTCATTGAGCACAATGATTTGTTTTTTAAATATATTTTATTGGAAATGACAGAAGGTGAATCTTAAAAGGAACGTCCAGTATTTAACTTAAAGTATTGATTTAGCACGTAGTTTCAGCCTGTCCCATCACGGTTTGATCGTACAAAAAATGCGGGAATTTTCTTCCCAAAAAGTTTGACGTCAGAGTTCTTAACCATGCGAAATAAATTGAGAACTCTGCGTCTCAACTCCCGCATTTTTTCTAGATCTACGCTTAGATCAAACCGATATGGGGCACGTTGCATTTGATATTTAAAGGGTCTCGACAATAAAGAACTCAAAATAGCCTTGCCAAGATAAATGGGCGGAGCTTTGGTAGGAATTTTCATAAGTCGAGGACTCCGCCCAGTTCGTTGGCCAATTTGGGTTTTTGTTCGTGCCTTCAATTTTTAGTGTTTCATTAATTTCCAATAAGTTTAAGATTGAAATAGTTTTTGAGGTGAAAACTGATCCTAGCATGGGCCGCCCATTTGTTGGTTTTTTTTTTGTTTTTTGTTCTTTTAAACTAAAATTCCACTGAACTTGTCTAATATCAGTTTCCATTAACGAAAAAATTCGAAATGCCATGAAAGGGGAGGAGCCTAAGCGAAGACTTTTTCGATGAAATTTGGCCAAGTTGCGATGTTTTTGAATTTCATATTTTTGAATCAAGTTTTGAAATAAAAAGTAATATAAAATTGGAAAATAGGCTCCGCCCATTTATTGGTTTTGTTGGGGTATTTTTTTCTGCATGGATCATTTTTGCATCCGAAAATTTGTCGGAAAGGCATTTTTCCCAATTTTTTTCCGTAAACTATCATCAACTTTTGAGATTCAAAATATCCAACATAAGCACGGGGTTCTGGCCTTCCTCATTGAATTTTTCGCGATCCATTGACAATCATTTGCCTGCCGGACAACGCGTGGGAAAGTCGTGTACTCCACGCGGACAATTAGAGCCATTTTAAGCGCCGCAAATCCCAGATATGGCCGAGCGAAAATGGCCTAGTTCGGCAAACTCTTTCTGACGATTTCCAGAATTTATTAGGGAAGACTCCGTACATAGGCTCAATAAAAGGTGAAATAGGCTCCGCCCATATCTTGGATCGATTCCAATATTGAAATTGACATGTGTTAGTTACACTTGTTCCTAATCCAAAATTCTATCCGAATTTCAATTACCCAAAGTCAAAAAGTCAACAAGTTCTGTTCTTATATGTGCGCGCGCGAGCGCGATCGTTTGTCTCTAATATTTGCTCATCTCTCTCTCTCTCAATCACCGCCATACCCAAAGGATTATCGCCCATGGATGATGGGATGATGTTGAAGACTGCGCGGTGGGCCCCCTATCCCCTGCCTCGGCATTCATCATGTTTGTAAACAAAAGGCGGCGGTTTGAGAAAAGAAGACAGTGAGCGGGCGGGAGAGAGTGAGGTGATGAAGGTAGTAATCGTGTGTCGACGAAAACACATATAGAGAACAACAGATTCGTGTGAAATAGATGAGGGCAAATAGGACGAATTTATTTAAGAGCAGATTATGATGCTTTGGCCCAGATGAGGGGGGGGGGGGGTATCATGAAGATGTGATGACGAACCATATCGTTCCTTCAATGTTTGTTGCTCGCTTAACCGCCGTCGCCGCAATTTAAAGGTTATTTCGACTGGGTATGATCAGATAAGAAGACGTAGACGGCTTTTCTTGGGGGGGACGTTCAGCTTTGATTCCTTTCAAATAATCAATGCGGCCTAGCTTTCTGATCTACAGGCGGGCCTTCTTTGCTAAATTTTAAGCGATTTTACTACCTCTTTGGCCCGCCCCACTTTGATCTACTTTAACTAAGCTTATATCCGATCTCGGTTGTCTTTAGCTTCATCAAAAAGTTATGAACTAACAAAGTGCGTGCCAATACATACTTCTACAATTCGGTAGTTAGTATTGCGATTTTGGATTAAAGTTAAGACAACCGAGAGGCTGTAAGCTGTTGAAGTAAATTTCTAGTTTGACTTACTCCCGACTCCAATTTTGATCTACTTTTACAGCTTATATCTCGTTTGTTTCTGGTAACAGCAAAAAGTTGCCAACTAACAAATTACGTGCCAAATATTTTTCTAAAATTTTGTAGTTGAAAATTTTTGAATAAAAGTTAAGACAATCACCGAAAGCTGTTGAAGTAGATTTCTAACAGGTTTGACTTACTCCCCAAACTTCGATCTACTTCATTTGACAGCTTTTATCTCGGATATTATTTTGGCAATATTAAAAATTTGTCAACTAACAAATACGACCCAAATATTTATCTACAATTTGGGAGTTGAACATTTATGTTAAAAGTTAATACGGCCGAGAAGCTGTTGAAGTAAAGGTGGTGCTTAGCCGACCTATATTTTTGAATTACACAACAGTTATAACTAACTTATTTTATGGGTAACACTATTCTAGCTAGTTGACTTTCAAAATCTACAGAAACTTTTGTTCCTGCCTCCACCTTTAGCAGCATAGCAAAGCGCCTATAGGAACACCTACGGCCTACACCTCATACCACCTACTCGAGTACACCTACTGCCCATCTACTGTTTGCGTACTTTCTACATAGCTTTGATGCCCGTTCCTAACCAATACTCTTTTACAGGACAAAAAGCGGCGTTGTGTGCAACGTCTGCAAACCAAATCCTCCTATCTTCCACATTGACAAGCGGCAAATCTCTGACAAGTGCACATGAGGTCAATGACACATCAGACCCGGATGAGCCGGCTGTCCGAACTTGTGGCAACCGGGGAGCTTAATGGGGAGACATGCCGTGTGTCAGTAACCAGGAATCCCCGACGATAAACAGCATCACTGAGACGGTAGGTGAGGGGTTTGTGCAGGCATCCTGAAAATCAGCTGTTTGGTTTCTGTGAAACATTTGTGCGGAACATAGTTTATTTATAGTTCAATTTGAAAAAAACTGGTTTCTGAGAGTGTTCAATCAATTTTCAATGTTCGATTCTCGATTAATAAAATTTCCACTTTCCAATTCCAGACAACCAACATCCTCTCTGAACGACCTGATGTCACTGCTCACACGAAGCGGGTCGGATGAGATTCGAGGTAAACGGCCTTCAAGTCATGACACAGATCAAAGTACGGTGACCAAGATCACTAGCCTAGTCCCAGAGTTGGGAAAATCGATAACATTGCGCTCTTCGATGACTCCGTGCGGCAGAGGTGTCGAAGATCGTTCTCGGCTTGTGGGCAGCAGATCTCAGGGATCCTTGCTTTGAACCTCCATTATGAAGAGTCCCATCGAAGATTCCGAGTGACGTGTTAAGAAAGTTCGGAGACGGCCGTTACTTGCCGCATTAGAGGAAGCACGGGTTAGCAGAGAGTTCCTTGAAGAAGGATCGCAAAGCCCTCTGCGCAATGACGATGAGCCCATGGAGAAGAATATGCGGCTGGAGAAGACACTCTGCTGCCTGAAATGGACAAGAACGGGGCAGCGTCGCAATTTCGCATAATGTTCCAGACAAATGATGAACTGCCTCCCGTACACTCATGGCACCAGGCACGTCTAGTGGCAACTTTGGATTCTCGCCAGATAAATGATCAATCAGCACATGAAGCATGCGGCGGCGGCGGCGGCGTCGCGACTGCAGCAGCAACAGCCCACACTGCCAACAACTGCGAAGAGAGCAAGAATACGCACTGATGATCAGCTCAAAGATTACGGTAAGTCGTCTTGTGTGTGATTACTGTAAGCTACGGCGAACAGGACAGACACGAGGGGGGCGGTGGAACATGAATTGCAAACAATAGGTGGGAAATGGTCGGCGCCGTGATCAAAATGAATGAGAAATGAGAATGAAGAACAAACATTGTGTGTGAGTGGTGTGTGTGAGACGAGACGATAATCAATCAATTTCTGGAAAACTACACATATATTTTCCCGGCGAACTTTCTGTTTGAGGGACCGTGCGGAACAAGACCCCCCTGAAAAAAAAAATCCGGAAAATCCTTAGCCTAAATAGCGAACGCTCGCTACTGACGCTCAAGCCTAAGCCTAAGCCTAAGCTACCTAAGCCTAAGCCCAGCCCAAGCCTAAACGGGAACCCCCTGAAAAATCAAAAGGAAGAGAATCCCAAGCCTAACGTCCAACGCGCCACTGACGCCAAGCCGTATGTCTAAGCCTAAGCATCTGCCTAAGCCCATCCCAAACCTAAACAGGAACCCCCTGAAAAATCAAAAAAGACTATCCGGAAAATCTTAAGTCTAAATAGCGAACGCTCGCCACTGACAACCGCCAAGCCTAAGCCTAATAAAGTAAGCCTTAGCCTAAGCCCACCCAAACCTAAGCCCAAGCCTAAGCCTTTCACCTTCCTAATTGTCAGGCAGGCTCTAAAAACCGCGCCTGCCTACAATCGAAGCCCTAATCTGTCCGCTTTAGCAAAATACCCTCAAGTTGGTCGGTGCAAAGGGCACATCAGTATAGTAAACGCGCTCTACTGATTATTCGAGTTTAGCCAGGTTTGGGCGCGTTTCAAGGAAAAGAACTTTGGCTCAAAAATTGTGAATTTATTTTCGAACATTTTTATATGCATCACAAAAATGTTAGTCCACCCGTTTTTGAGAAACTAACGCCCAAACGTCCAGGTATACGGTACATGCGCAAATTGCGTACAGATACCACTGGGGGGTCGTGTTTGGGCTTTAGTGTAGCTAAGGCTGTAGCGGCCCTACGGCCTAACTGCAAGCCTCAGCTTATTCGCCATAGGCTTGTCTGCCGTATTTCAAGCCGACAACAAAAAACCTTTCAGCCAATACTTCAACATCAACAACTCGCCGTCAGAAGCGATCAAGTTCGAGATGTCACAAAAAGCGAGCCTTCCGGACAAAGGCATCAAACACTGGTTCCGCAACACACATAGCTTTTCAAGGGCTTTGTTAATTTATTTTACTTCGAATATTGTTATTAGGCTCGGAGTGGAAATGAGCGAGGTGTGAACATTGGTAATTAGCCGGTTCATCTGATGAATACCCACACGAGAGGGAGAGCAAACAAGGAGAGCAATTGAGACGAGGGAGGGAGAGAGAGAAAAAATAAGAAAATCTTAATGTTAGTTGGGTGCCACGCGCTCGGCCAGGACCACCGGCCGGGAACCATTTAGTTTTGATTATGATTTCCGTCGTGGCTCATGATTTATGGGAATTGACTATTTGTGCTTGTTAGGTGATAGAATAGTTAGAGCAACTATCAGGAAGCGGACAAGTCGCAGTGCGAGACTATTAGAACACGTTCTGCAAGGTTTATTCTGATAGATTTGGATAAGTACTAATATTGGTAGAGACTAAATCGCTCTCTTGATATATACCAGCTTAATAATTGTTCTACCAAAAAAACTGTTAAAGAACGCTTCGAGATTCGAGCTTCGGGAAAGCTTAAAGGATGGGTACCGAAAAATTCTTTTTGCCTGATTCCGAATATGGATGTGGAAAAATTCAAAAAAAATTCCCTGATTTTATATTTGAGCTTTTACGATTTTCAAACCTTTTGTGCCCACCTGGTGATATTTTGGATTGATCTACGAGCTCTTGATCTACAAAAAATGCGGGAGAAGGCAGAGTACTCGACTGACTTTGGCACGGTTAAGAACGTGCTGACGTAAGCCACACTTTTTTGCGCAAAAGCAAAAAATTCCCGCATTTTTTGTAGATCAGACTGTCATGAGACAGCCAGGCACCATGTGTGTGCCTCGGTTCAATTTTCAATTTTTTAAACCAGTTTCTTTTTTTTTAGTCGATACGTTTTCTGAAAGCTAAATATTTTTTTTGCCAAAAATGAATGTAACTGGCTTAAAAAAACTAAATAAAACGATGCAAGCGCAAATGCGAATTTATTTGGGCGAATTTGAAAAAAGTGATGCGGGAATGAAATCGGAGATTCTAAGCAGGCTCTAAATAAACAGGAAAATTTTTTTGAATTTTTTCACATTGATATTCGTAATCGGAGAAAATCCATTTAAAAATATTTTCCAGATTTCGGTGCCCCACCCTTAATGAGATAAAAGAGGAAAAAAGGAGTTTTGTAACCTTTTAAGTTTTTTCTTTTTCAGGAACGCCAAAGCGACAAGGATTCCCCGTCCAACTTCAGCGTCCCTCCCCAAATGGGAATCGACTTGGTCTACGAAAAGACCGGAAGTACTGTCGCTTATGAAGCACCAAAGTCTGAGTTGAGCTCTGCGCGGGCCACACCGACATAATTCCGACTCCGATACCGCTCATGGATCGTTGAAGAGAAGAATCCGGTGCCAAACCGGACACCATCGTCTTCTTCCTCTCAGCTTGCAGGCTATGTTATCTCAGATGCAGGGAAGTTTTTTCGACGCGTCAAACTTCATGTCAGCATCAGTGAATCCGATGACAGCACTCCTTCCTACCGTCCAGTGGACGACAAGCCCGAATGGCTCTAGAATCAAGACCGATTTCCAGCTGAGATCTCTACAGCAATTTTTCGACAAGCACTACCCGAATGATGATGATCTAGAAGCGCTGACCAAGAAGCTTCAGCTGACCACGTGTGATTGTCGTCGGGTTCCAGAATGCAGAAGGCCAGAAAGATCTATGAGAATCAGCCAAATCACGAGAGTTCCGATCGATTTGTGAGAACGCCGGCATCGAACTTTGCAAAAAAGGTTTTAGTGTTGGAAATTAAAATTTAAATTTAAATTTTCCTAAATTCCAGGTGCTGCCAAGTATTCCAACGCTACTATTCGTAGAACTCATCCAACATCAAAAGAAAAAGTGCTGACGATGTAGCAGCACCTCTGGCAAGTGACAACCTCAAGAGTGTCGAAGAATCACTGACGGAAGAAGAGAAATCCCAGCTTCTAACAACAAGTAGCCCAACTAAGGAGTCAGGAGCTCCCAAAGTTCCAGCCGGCAGAGCTTTTGAAAATGATCGGAGCTAATTCGGTGACTCCATCCCGGCTGCAAGTCAGAAGTCTAGCAACGATGCCGTTCTGCTGAAGATGTGTGAATCATTGTTGGTGGGAGCATCACCTAGTACATCACCGTTCCACCAACGTTGTATTTTCTGCGAAGACTTCAAGGATTGGAGTGCGATGAGTGAGCTCATGGCTCAGAAGCGGGATCCCCAGCATATGCTTCTTCCAAACTTCGATCCATGATGCCAGAGGCTGGTCGTGCAGAGCTTCTCATGTGATCTTAAAGGACTCTGCGTTCGATCTTTGGGGCTCTTCAGTCGTCTACCGGGATTCTATCTCAACATCTCCATCTCGATCCGAAGATGATGTTCTCACAGAGGCTCTGGATGATTTTGCATTTGCCGCGTGAACTACAGCTTGCAAATTCCACAAGCGGCTCGGAAGATCTCCGGCGAGCAACAAGACGAACTCATCTCACACCGATGCAAGTGCAAATCAGTTGAAGAGCGAGTTTAACCAAGACCCCATCCATGCCATAATGTGAGCTTCTCCGCAAGGAAGTCGGCCTTCCATACAAGCGTGTTTCAACTCTGGTTTTAAAATGCGCGAGCCATATCGGAGCGAAAGACGCGCGGTGGAGTGACCAGGACTCTCGCGATCCGGAGAACTTCACTGGGAAATTTGTGATAAGACGTTCGCGACGAGTCTTTTGCTGCAAGACCAGCTGTTTGCCGAGCAGCACATTGAATTTTTAAGGAATAATCTGAAACGGGAAGGGGTCTCCGCAGTGGACGACCGCTGACCGAGTGCTCTCCAGAGAAAAAGTAAGAATTTGAATTTTTATGTAATTTAATTACATATATCATTACCCTATATAACCTTAAAAATATTCCAGAGCAAAGCTTCCGAACGACGCCCGCTGGGTCTTGCCAGTTTCCCGTTCCTCGACACGTTCGACATTCACATTTAAGGAATACCCATCGCCTTTCTGCAGGCTGTCTGATGAGATCAGGATTAAAAGCAGATCACTGATGATATGACGGCTGGAAAATCGCGAACCACGTTCTGCCAGGACGGTTGCTCGACAAGTTGAAAGAGTCGCTGCCCGAGGATGAGAAATCAAATTGACAGAAACCCAGAAAGACGTTAGCTTTTTTTTTTTGGGAAAAATTTAGAACAATTTGGCAATTTCAGGTCGGATGGGCGTGCATGTACATTTGTCTTCCACTAAGAAAAAGAAGCTCCGTGAGCATCAAAAAGTATCCCATGTGCAGTGATAAGGTGCGCAAGAAATTAGGAAACGGGCTTGAAGTTTAGCTCATAGTTAGTCGTGTCAGACTGTCTTTGATCTACGAAACATGCGGGAATTGGAATTTCAGAAAAATTGTGAAGACTCAGCAGGAACGTTATTAACCATCGACGCAAAATCAGTTGAGATGTCTGCGTCATTTCTGCCGCATTTTTTGTAGAGACGATCTACGTAGATCAAACCGAAATGAGAGGCACGTTCTGAATCCACGAGCTAGGCTTAAGCTTATGCTAAGCTTAGGTCCTTTTGTCAGGTTTAGACTTAGGCTTATGCTCAGGCTTAGGCCTTTTCTTGGCTTAGGCTTGGGCTTAGGCTCAGGCGTAGGCTTAGGCTTAGGCTTAGGCTTATGCTAGCTTAGTCTCACAATCAGTCTTAGGATTAGGCTTAGACTTAGGCTTAAGCTGAGGCTTAAGCTTAGAGCTTGGGCTTATTGGGCTTAGGCTTAGGTTTGGGCTTGGGCTTAGGCTTAATCTCAGGCTTAGGCTTAGGTTTAGGCTCAGGCTTAAACTTAGGCTTAGGCCCAGGCTTAGGCTGAGGCTCACACGTGCTCACGTTCTTAATCATACAAGATCAGCTAAGAACTCTGCGTCTTTTCGCCCGCATTAGTTTTGTAGATCTACGTAGATCAAACCGATGAGGCACTTTGAATCCACGAGATAGGCTTAAGCTTAGGCTTCCTAAGCTTAGGCCTTTTCTCTCGCAGGCTTAGGCTTAGGCTTATGCCCAGGCGTAGGCCTTTTCGCGTAAGCTTGGGCTTGGGCTTCGGCGTAGGCTTAGGCTTAGGCTTAAGCTTAGGCTTAGACTTAGTCTCACTATCAGTCTTAGGCTTTAGACTTAGGCTTCAGCTTAGGCTTAAGCTTTTATGGGCTTAGGTCTTAGGCTTAGGCTTAGGTTTGGGTTCTTACGCTTAGGCTTAATCAGGCTTAGGCTTAGGTTTAGGATCAGGCTTAAACTCTAGGCTTAGGCCCAGGGCTTAGGCTCACACGGTCTGTTTCCCACGTTCTTAACCATACAAAATCAGCTAAGAACTCTGCGTCGGTTCTCTCTGTTCGGATTTTTTGTAGATCAACGAACTTAGGATCGAGCCGAAATGAAGCACTCTGACATCACGTGGGCTAAGACTTAGGCTTAGCAGCTTAGGCTTGGATCAGGCTTAGGCTTAGGCTTAGACGTAGGATTAGGCTAGTTATAGCTTGTAACTTTTTTAAATCTACCCCGAGTCAAAAAAAAACAATTCAATTCCAGACGCTAACCATGTGCAAACCCACAACTCGTGCAAAAGGTGTCAAAGTGATTTCTGTCTTCAATCCGAGTGTGATATCTCAATTCCATCTCTCAATCCTCATACTACTACTACCACCACGACGATAACAAAACCCCCCCCAAATATCACCTCATGCATTGCATTTGCCGTCTCACTCAAGGACCTATTTCCGTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTTCCTCTCTCTCTCTTTTCTTCTCTCGAAAAAACCACAACTCCATTTTTCCGTTCTGAGCTAACTATCCCCCAAAGTAATTTCTTTGTAATATCTATATCCACTTTTTTTTCGACCACACTACACCATATCCCGCCGCCCATCCCCTCCCCCCCCACCGCTTTATGACAAAACTGGTTTCGCTTTTGTCTTCAATTTCACACCAACCGCCTGCAGCTTCTCATAATAATTAATAATTTTTTTTAGCATGCACAATGATTTTGATAAATATATGTATATAAAGTCATCTAGGATTGCCCCCTTTCTAGGATATGTTTTTTTTTGCCATCATCACACAATTTTCCGATTTCAATGATAAGGATTATATCTTTGTCCGTTGACACATGTAGATGTTCCTGACCTTCCAATTTTTAATAGATTTCCATTACTAGTTTTTTTCAGGCCTCACTATTCTATTGCAATAATTACTTGGATGCGATCCATGAACGCAGTCAATAATAGTTCAAATATTTGCACTTCTTTTTTGCACACTAATTCAAACTCACGCCAGGCTGTCCAAATACGGTTTGATCTACTAAAAATGCGGAATGAATGTTTACTCCCAACAAAATGTGACATGATCAGTTGGCACGGTTCTTTTTTAACCATGCGATCGGTTGAGTAGTCTTGCGTCTCTTCTCCCGCATTTTTTGTAGATCAAGCCAAAATGTGACACTGGACAATGACACAACGTGTAGACTAACATTGACTGACACCACGAATATCATATTGAAACTTCTTGAAATCTGTTCAAGAAAAAAGTTATGAAGGCTCAAATGGCCTAAAATTCGCTAATTTAAAAGACACTTAAAACGGTGTCTTTTTGAATTTTTCCGTCCTTTTTTTAAACATCTTTGTTCATAAAATTTAGTGCTTACAAAATGGATGTTGGAACATTTATAGGATACGTTCAATTTTGCCATTTGAAATTGAAATTCGGAAATTTCAAAAAAAAAAAAAAAAAGTGCGAAGCCAAAATTTGTTTATCCAAAAATTATCGGCAATATTGCCGGTTTGCCGGAAATTTCAATTCCAACGACAAATTTGCCGAATAATGGCCGCATCCATTCCTGCAATTTGGCGATTTGCACCGATTTGCCGGAACCAGCTAACCTACTTACTAACTTGCTAACAAGCTCTTCAAGGTTTTTAGTTGATGATTTTCAATAGAAAATTCAGGTGTTTTCAGGCAATTTCGAGAAAGCAATTCAAACGTTTAACAAAAGAAAAACGACACTTTTTCCTCTTATTCGATTCTCTTAATATCTCAATTTTGCCTTATAAATTTATCCTCTCCTCACAAGGTGACACACACACACACACGCACACACTCGTTTCTGCTGCGAAAAAAAGCTATGACCTAACACGCGCCTTCTCGCGTAAGACTAAGATCCACTGAAGACATCTGATAAGAGTGGGTCCGCCATTGTCTCCAGAAAATTCTACACGCCTCCGCCCGGTAGGGGTCCCACCTCGTCGCTTCACTTTTGTTTCTCAAAACGATTCCATCGGCTTCCGCTGGCTTGGGCCATTTTCTCTTATACAACTGGCCATTCTTCTCTTATTGCTTAACATCATGGTTATTTAGGAATTTGTTCTACCCTGACTTGAAATGACTGGACGGCCTATTTTACTTTGATTGACTCAGAAGACTACTATAAGCGGTCATTTGTTGCGAAAATTTCTGCCTTTAAAGGTGGAGTAGCGCCATCGTGGGAAAATTGCTTTAAAAGGGCGCACGCCTATGATACCACACGAATATTATGTTAGAAAAATTCAGGGAAAAAAAATTCTCTAAATTTTATATGATTTTTTGAAAACTGAAAAAATCTAATTTTCACTTAATTCTTATGTGAATTACCGCTTGGATTTGCTCGATGGAGCGCCTTGCACGTTTTTAAATCTATTATCATATTTTATTTGTACTTTGTATTTTCCACGGATTTTTAATGTTTACGGATCATCTTTTTTTCCTTGAATTTTAAAAAGTCAAAATCCAAAATGCAAATTTTCGATTAAAAACAAGCGTACAGGTAAATCAGTTAATCAATTCAGGTTCATTTTTACGCCTGTAAGCGTGCTTTTTAATCCAAAATTTGCATAAAAAAAATTTAAAATGGGTCGAAAATAAGAAAAGATAATATAAATAAACTTAAAAACATGCAAGCGCGCTCCATCGAACAAATCCAATTTAAGGAGGTATTTCAATAGGAATTAGGAGCAGCAGAAACTGAGATTCTTTCAATTTTCAAAACAATAAATCATATGTAAAATTTGGAAAATTTTGATTTAAAATTTTTGCGTCATAGAAAAACCGGAGTTCCTCGCTTTTTTTTCATCGAAATTCAAAAAAGTAGGCGTGGCCCTAAACCGAACAGCTGTTGTTTTGTTATTGCTCTTAAAATTTCACAGCCTCTAATTGGTTGAACACGCCCACTATTCTGAAATTGGCCCACCAATGACAAATCGCGAAACTTCTTGTTTTTTCCGCAGACTATGGAAGCGTCCGCACTCGGGATATTCCCGCATTTTCCGCCAGACTATGGACGCACCATTATCATATCAATTGGGTCATGCTGTGGTACTATAGGCATGTTTTAAAGCAAAATTTTTTCCCCACTGGCGCTACTCCACCTTTAATGCATGCTGCGTCTTTTTTATTCGGTTCTGGCCATAACACACAAATTTTCTCAAAGTTTAGGAATATATAGATTTAAGGAAGAAAGTTTTTAGTTAGGAAAAAATATAGTCTTCTTCATGTTTTCTTTTTTTTGACAATATTCATTCTTGCCATCCGTTTTTTTTTCTGCAACCCTATTCGATAAATGTTTGCTTGGACGATGTAAGGTGCTTTGAACACTCGGCATTAGGGCTTCTTGCCCATTAGACCAAAAATATTAACTTGTATCAGAAGTTAGGCAACTATACGTTGGCAAAACTTGGATTCAGGCAATATCAAAGTTGCTAACCCAAGTTTCACCCAATTCGCAAACTTTGGCCTAAACTTTTTTTGTACTATGCGCAGAAGTTCCATTTTCCAATCGCCCCAACGTTTGCCCATCTTTTGCCCAAGTTTAGCCAACTTCGGTCCCAAGTGAATATTTTTGGGCCATGGGCGCTAGAACATCGCCGAATGACGAGCTCTTAGAATTTTATTTGACTCTATCCGATCTGCTAATTCTCAAAAATCCCCCAATTGCCAACCATTTATCAGAATGGGAGTAATTGGGCGATAGCGCTCAACGTGCTCGGCTTTGGCCGATAGTGCGCCTGATTCCCAGAGGATTATGTGGACCTGGTACTTCCTATGAAAAGCTGTATCCACCATTTCACACGCTAAACGTTTCCTACTCATCTTGATTAATTCAGTGAAATACTACAGTCAAATCAGGTCTTCGACAATTGTTGCTGAGTCGATCTTCTACCGCACTTCATTGGTGCCAAAACTGAGACGAACTTTGATGTTCCGCTCACCTGCTTGAGATTGGAGACTAGCAGGAAGAGATGCTCGTGTGGATGTCACTTCGGTGTGATCTTTTCCCGAATAGATCGTGTTGTTCGAGTAAGTTTGCGATTCTATATGACTTGTCAACGTGGTGTCGGGCTGACCCATTACGTTTTGATCTATAAAAAATGCGGGAAGTTTATGACCAGAAAAAAATGACGTCATCACATTCTTAACCATACGAAATCACTTGAGCAATCTGCGTCTCCCATTTCTTCTCCCGATTTTTTGTAGATCTGCTACGTAGATCAAGCCGCTGAAATGCAATTATTGAAATTCCAGCTTGCTGTCTCAAAATAAGAACCAATCCCACTTGCCTGCTGGGTAAGATCCGCCACCTCCCCCACAAACCGTGATGCCAGCCAGCCTTCGGCCCTCTCTTTGCTGCCCGGCAACCCCAAACTGTTGCCCGAATGTCCACCCAGCTGCCGAGTTCGTCGCCCCGAAAGAGTACGAGGACGAGCAAGGCAACCCTGGAGGCGTCCCAGCACCACCAAACCCACCAAGAACTTGCTGTCCTCCACCAACACCTGCTCACCATCGCCACCACCTCCACCACCACCGGCTCCGGAAGCTCCAACGCAATGCTGTGGATCACAGCCTTATAGAAGAACACCGTGCAGGTCGTCCGGATGTCCGAATGGAGATTGTTGATGCGGAAGACCTTGCTGTTACAAGCGGACAGCAGAACCCCACGAATGTTGTAATCAAGGGCAAAAGGCTTGCAGCCCACCAGAACAGCCTTGCTGTCCTCAGTTGAAGCTGGATAACTGCCTCGATTCGGCCCCACCTTGCCTTCGCGCCTGTCCATCGTGCCTATTCCTGAACTGATGCTTGGGAAGAGAACTAAGAGAGACTGGGCACCGGGGCTTCATATGCCACCCAAGTAAGCTATAAGTTTAGATTTTCACCTAGTGGCAGGCTGTCTCAGAGTGGTTTGATCTACAAAAAATGCGGGAATTTCTCGCCCAGGAAAATGTAACGTCAGCATCAGGGCTGGGACCAAGAAAAAAATTTTACCAAAGATAAGTTTAAAACCAAAAAAACCAAAAAAAAAAAAACCCAAAAAATTTTTGATATGCTTAAGTTGATTTTTAAGCTGGGGTTAGTAATGTTGCAAAATGGTAATTATTAAAATACATTTATGCACAACTGTGTTAAAATACATGTTTTAATGTATTATAAAGATTAGACTCTAGTCGACACTAGACACGGAACTTTTTTTTTAGATTTTTGGTCAAAATACCAAAAAAACCAAAAAATTCCCAACAACATGTTCTTAACCATGCGAAATCAGTTGAAAACTCTGCGTCTTTTCTCCCCGTGCGATTTCGAAGATCAAACCAAAATGAGACACTTTGACACCACATGGGGTATTTTCAAAACGCTGAAAATAAGTAAAATAAATAATAAAAATTTTCAGTCGGACTCCTTGGTCAACAATCCCCACCGACTGATTACAAAGCCGGTAAAGACCATAATAAAATCAAGTGAACTCCCGCGTTGCATCTGGAACCAAGACATCTCAACTGTCCGTCACCAAAAAGCACATCGAACTATCCTCTAACCACGTCCGCGGAATCGCCTCCAACAGCCGGAAACGACTTCCGAAGAGCCCACGTTCGATTCAAGAGCAACATTGTACTTTGGAAATGGACCATGCCAGCTGTGTCTGAACGGAACTCTCAGAGAACCAAGCGGTCACTCGCTTATAGTGTTCGTACCTACCTACAACCACAATACTCTGATTGGAACCCGTTCCTCGGAGATCAAAGCCATACGACCGCAGTCGCCACTCTCCACTCGCCGGGCACAGAACTAAGAGAGCTGGCGTGAGTTTGACTCATAGAAATTAACGTAGCTGAATTTATTTTTCCAGTGCCTTCCTCATCCACAATGTACCCCTGCATGTCCGTCGCTATAAGAGAAACCGGATCGGATTCCAATATTGTGAGCTCCAGGCAATGGACACTACGGTAGGAAGAAGCGGGATGGGGAGCCGATAGAGATCTGTGCTTGAAAATACAGAAAGGTGAAGATATGCAGATGAAAAGTGTGATAACGATGAGTTCAGTATTAATGAGCGAAGCAAACGACAAGCCTACAATCCAAAAGGACTTGATTTTGGATATCGTGAAGCTCCTATCCAAGGCCTCCTTCAGGTGGCAACAATCCAGGCGGAGGATGCATGATGCTCCTAGCCTGTGTTCTGGCTCAGAAGAAGAGAAGAAAGAGAAATGAGATCGGCTCGACACGTACTACAAAGCTGTGGAGCAGCACAAGAAGCCGGTGGAAGAGTACGAGAAGGCGATGGAGGAGCACAAGAGAGTCAAGCGGCAGTTCTTCGCTCCGGATAATGCTGCAGTGTTCCTGTCGGGCATGGGTGTCACTTGCCTTGGCACTAGCAGAAAGAAGAGAGAAGTCGAGAAGGTGGAGCATATGAGGATGAGCGAAGCTATCTATCAGAGCAAAGAAGGGGTATAAGGAAGGATATGATGATGATGATGAGGTGAGAGACCTGAAACTTTAGATCCTGTAAGAACCTTTTGAAAATTCCAGAAAAAAAACCCCCTAATTGAAATTACGCCCGCACGCGCCACTGAGATACTGTATTCGCGGCGAGACCACCCTACTGCACATCTAAGAAGTCTCCCAACGCAAGTGACGAATTTGGCCTAAAATGGACTTATGGGATTTCCACAGTTTTCACCATTTTTTTGACACAGTCGACGTTGACTTTTTACACTCAAAAAATTATTGGCGTGGTCATCTCAAAACTGATTTCAACAATTTACTGGATTTTACGCGTGTACTTCATAGTGTCACACCAAAAATTGATCTGGTTCATGTGGTGTCAGCGTGTCGCCTTTTGGTTGATCTACGTAGATCTACAAAAAATGCGGGAGTTGAGAGACGCAGAGAACGGGCGCAACAATGCGGATTTTATCTTAAATTTTCATATCAGGACGACAGTGAATCCTCGGAGGAAACCGAACCCTCTAGACGCAGAAAGCAACGCCGCTCCTGCCAACAAAGTTAGCCGACGATTGCCTGAACAACGTCGAGTACGCAGTCTTCGAAAAACTGGATACAGACAAGAGAACCAAACGAGAAACCGTGTTCCGTCGTAAGAAGTGGACCGCCAGGTGTGGCTCCTTCATGGGCTCACCAGGGCCACATCGTGTCAAGAGAAACTTCGGGCAGCCTGAATATCAATGTCTCGGAGCAGAATTGCACGGCATTCCCACAGTGTCGGCAAACAGTGAAGAGACACTTTTTGGGAGAAGACTGTAACATCTGTACACAGGATACTGGTCTGAGGCGGAGGAAGAGAGTCTTCGGAACAGCGGTAGGTGTTGGTTTAATGAGCTGCCGTATCTTATTCCGCAATGCTACCCATGCCCAGGAACAAACGTTCATAACTTGAAGCGACTCCCTCCGTGGATATGTCTCACATATCACATAAATACCACCTCGTAATAATAATTCAACATGACTAATAACAAATAAGTACATACATACATTTATATTAGCTTTCAGCACCCGTAGTCGCAATGTGGTGCAATAAAGATATGTGTAAAGAAATGGGAGATGTAGTAGATTTGGTCGTTATAGTGATCGCAGATCTTTCCTCTTTGAGCCGGAATATTGACTGGATTGGAGCCAGGAGATGAACCTCGCGGGGGCAAATGATGCAAAGTAGGGGTGAAGCATTGCACTGGCTGCGACACGGCTTTCCGGGCGGAGCTGTAATTTTGAGGGTTACAAGACATAGGTGTAGCTCGATGTCGATTCATTTAGACTAGCATTGAAGCCTTAAGCTTTCGGCTTGAGCTTGCACGTACTCAAAGACACGGTTGCTGCTCAATATAGCTCGCGGAAACTGATTTGTCACAGGTAAGATAACTAGTAGGCCTGGACTGACTGTGGAGTAGCGCCAGTGAAAACTTTGTCAAAATACATACATTATGACGGTCCGAAAAAAAACTAAATTTCATAAGGGGTAAAACCAAAGAATTAGATTTTTCACAATTTCAGGTCAAAGTCTTGGCAAACTGCTCAAAATAAAAATGAGCAATTGAGGAAATCTAGAACAATCAGTCGCATGTTCCGACCCCTCCACAATATTTTAATACACATAATTAAAACACAATTACAGTATAAAAATGTATGAAAAAAAATGTTTTTTTTGGTGAATGTCGACTTCCAAAATTATGAGTGGTAATATAACAGTAAATAAAAAATTTTCAAAATTTTTTTGATTTTATTATATGATATTCGGTCTTTTCGGGAGTAACTTAAGGAGTGGTTTTACAAGTCTACTTACCTGAAGAAGCATCCCCAGAAGTTCCTGTACCAGTTCAGAATCTACGTGAACATCGGGTTCCCACCGCGATGAACGACAACTCCCGATACCAACAGTTCAGGGGTCCTTGTACCCTGGTAATGTCTTTACCTGAAATAAACATCTTTATCTCTAGATTTAGTTAGATTCCCTCACCTCCGGCCACTCGACTCGTCTGGAGTACCCCGAATGCTGAAGATCCCATATCCAATTCTGGTCCTTGGTGCCGCGGTAGTCAGAGGGGTTTCCTTGGATCCCGGGAACAAAGCGGCGCCCGTGCACATTTCAGCGAAGATGCAACCGACTCCCCTGCAATGTTAGTAGATAGAGTGTACCTTTTATAAAATACTATCCTCCTAACACATATCCAGTGAAGATGAATATGAAGTCGGTACTTCCCATGAGAACATGCGGGCGGTACCATAAGGTGACCACCTCGTGAGAACATATGTCCTACTTTTCCGCACAGATTTCGCCCTGGCTAGATCAAAGTCTGCGAGTCTTGAAACGAGCTCTCGTCCTAGCAAGTTTTGTGGTTAAATCTCTGAAAAAGTTTTTATCGTAAGTGGCCGCAACGGCGCCTCCGCCGACTCAAGCGGTCGCCGCGCCGGCCTCGGAACCCCGAAAATGTCCGGCGCTCCAAACAACCACTTTTTTGCACTACGTTGCGCACAAGGCCACTCATTTCACGCCAAGCTGCGGAACACCGAACGTCTCCCCCGCTCCAAATCACTCCCTTTCGCAATACGTTGAGCACACACAAAGCTGGGGAACTCCCATAATTACCTCTCGGCCGCTCCGAGCAACCACTTCTCCTAGCACTTCATCACACAGCAGCTTACTCATTTCACAAGTCGCCGAGGTAAGCTGCGGAACCCTGAACGTGTCCGCCGCTAACAACTCCCTTTCGCAATACGTTAAGCACACACCAACTGCGGAACCCCCAACGTGTCGGACGCTCCGAACACTTCTACGCCACTTCATTGCGCACACACCAGGTTACTCGTTTACGCCGAGCAGCGGAACGCCGAACGTGTCGGCCGCTCCAAATGCCCACCTTTCGCGCTTCAATGGCGTCGGCGTGCGGGCCAGGATTTCGCGCCTCGCTCGGATGGGAGCGCAGTATCACCACTCGGGAGCAGTTTGCAAACTAACCTATGAATCTTCTCCTATGACAAAAATCGAGTCCGCGGATTGAGAGGACAAGCTTGATGTCAATGCTATCCAACCCATAGACGTTCTGCTCCAGGTACTTGCTCAAATCCATTTTCATGTACTCGAACACATAAGTTGGTTGAGGTCGTTGATAGAAGATGTCGTGCAAAGAGACGATTGGGATTCGCATGACGGAGGTTTCTGAGAAGCGAGGCCGAATTTCACGGATAGCGGTGAATGGGAGACGTTCTTGAAATTGAAGTTTGATCTCTAGTTCAAGGCGACTAAGGGTAAGGACCTCTGAATATAATTGAGTGGTAATATCAGGTTAACTAGCATAACTTCCTTGGACTCGCACTTATACACCGTTGCATAAGAGCCTTCCCCTGTCAATTGTACAGATCATTCACATCCTGCGGTGACGTACTTCCTCCTTCGAGGAAGCGTGAGCGTATTTGGATCGTAGTATGCTGATCGTGGTCGACGTCTTCGAAGATGTGTGAAGCGGCCACAGAACTGTTGCTAGATGGTGGAGGTGGCATTCAAGGAGAGTTCACGCTTGTTTAGGGGCACGGACATGGTTTCAGATGGATTGCTTGAGCGGGAACGTGATTGCGGCTGATAGGGTATTACTAGGTTTGACTTGGAAAATTTTCTTAGAAAAACAGTTTAGCGGGAAGTTTAAATTTGCTGATTAAAAATGTTGGCGTAAGTGAATGTCGAGGAAGTACCCCATTATGGTTTGATCGACTACAAAAAATGCGGGAGGACAAAGACTTTGCAACTGATTTTGCAGGATTAAGCTGACGTAAATTTTTCCTGTGGGAAAAATCATAACCCCGCATTTTTGTAGATCAACCGCCGCAATGAGACAGCCATAGATGCCACCACGTTGACGGGATATTTAAATTTTGAGAAACTCAACATTTTGGCGGGAAGTTCAAATTTTCTGAGCAAATTTTGGCGGGAAATTGAAATTTTCTGACAAAAAAATTTTGGCGTTGGGAAATTGAAATTTTCTGACAAAAAAATTTTGGCGGGAAATTGAATTTTTGACCAAAAAATTCTGGCGGGATTATTTTCTGCGAATTAAATTTGGGTAGGGAGAAGTTCAAATTTTCTGTATTTTGCGGGAAAGTGAAACTATTGGCAAAAATATTTTGGCGGGAAAATCAAAGTTTCTGAAAAAAATCACTGTTTGGCGAGAAATTGAAATTATCTGACAAAAATATTTTGACGCGGGAAAATTTTTCTGAGAAAAAAAAATTTTGGCCGGAAATTCATAATTTTTTTTTTTATCTATGAAAAGAAAATTCTACGGACCGGAAACGGCCCAACCACGGCTCAAGAGCCGTCTCGGTCGGTAAATGTGATTTTTGCTCTAAATAATGCATTTAACGACGTAAAAATGCTTAAATTAGCCAACTGGTATCATAGGTAGTAAAAAAATCCGTTTTCTCAAAATTTTTTTCCTCTTAAGGCCATTTTTGTGCATTCCCCGTTAGTTTGCCTTGGTCCGTCGCGCTTTTCATATCCGTAGTTCACCCGTTAATGGTCCGTTCCCTATGAGGTCCAACATCGTCGTAAACGGAGAACCCGTCCCGGCTTTGCCTGTGGTCAGATATAAGTAGTAAGAGTGGTGTCAGACTGCCCGCATTGGATTCTACGAAAAATGCGGAAATTTTTCCCCCAGAAAAACGTCACGTCAGCACACTCTTTAGATAACCATGCGATACCAGTTGAAAAGTCTGCCGTCTCTTCGCATTTCTCGGAGAAAACCAAAATGAGGCACTTTCACAAGTTACAACAAACTTAACAAGGTGTCGAGACTACGGTAATTATAGTCTTACATATACAACCTAATAAGAATCTCCATTACCTCAAAAAGCTGAAAATTTATCTTATATTAGGATGTTCTGGTGTGCTTCCACTGCCGGACCCCGATTATGCCACATTCACATGATTGGAGTGCCATGATTGTGTGCGATCATTTGTTCCCCGTTTTTCGAGATCGGAGATTTCGTGGAGCCTCCTGAAAAAACAGAAATAAATGTGGAATTAATATGGGGGCTCAAATGTTTTCGGAACTAACCTCTTTTTTGGGAACTCTGGAGAGCATTTTTGTGTAAACTGACTAACTCGTGCCACCCCCCGCACCCCATAGAATAAATTGGCTAAAATTTCGAAAAAAAAAACTCGCCACCGCCGTTATTCTTGTATTTCTTCTCCTTATTCCGACTCCGACGCAAAGTGAAAATTGACGAGGACGGCTGGAACAGGATAATTGTTTTGTGTTTGTTTCTAGTGGAAGAGATGCAGAATCGCCGAAGTTTAGAGCGGGTGGCGTGAATTACTGACCTTCCGGGTGCTCGGCGAGCCGTCCACGTCCTGAATTGCGTTGGCGGCGACATTGTGGTGATCTGGAATATGTGGATCGTAATCGAAGCCTAATATTTAGGCTTAGGCTTAAGCTTAGAGTGACTTAGGCTTAGGCTTAGTCGGCTTAGGCTTAGGGCTTAGGCGGCTTAGGCTTAGGTTTAGGCTATGCTTAGGCTTATAGGGGGCTTGGGCCTGGCCTTAGGCTTGAGCTTTGGCCTAAGCTTAGGCTTAAGCTTGCGCTCTGGCGTAGGATTAGGCGTCCGCTTTGGCTTTGGCTTAGGCGTAGACTTAGCCTAGGACGCTTACAGGCACCCCCTAGGCTTACAAGAAATCATATCCAGTTACCGACCGGTGGCCTAGGATTTCAAAAAATGACCCTTTTTGAAAAATCGAATCGAAATATCGACGAATTTTGTTTTTGAGGCGTTTTTTTAATTTAAATTTTTATAATTTTTATCGGTTTTTCGATTTTTCATGAAAATACCAAACTCACCCTATGCAAGTTCGCCGACGACTTCGAATAACAGCGGTGAGCTGTGGATGCTGTATCATAGACACTGAGCACGATGCTCTCATAGGCCTCTCGGGTCCTCCTCCAGCCCAAACCTCCAATTTGGGATAGGTTATTTTTCCCCACATTTGAAAGATGGTATGTCTGCAAGTGACATGTTTTTTTGGGTGGGAAAAAAGAACGTGAACGAATAATTTGGATCAGCGGGGAATTGGGGGGGTGTAAAAAAGAAGAGCCGCTTGGAGTAGGGGTATTACGAAATGAGATATAGAGGAGCAGCCGGTGTGACGGCGGGGCGTTAATGGGTTACTAAAGCCTACACATTCCCATTTTCAGTTTGAAACAAGGAAAATAGAAGAAAAAAAAGAGATGAACAATGACTTACGGGTGGGTTCGGTGAAAAACAGGGGCAAGCAGGAAGAGTGAGGAAAATGGATGGTTGGAGGAGTTTTGGCATTTCTATTAGGCCGGGAATCTTTAGAGACACCTGGACTGTCCCATTACAGTTTGATCTACAAAAAATGTGGGAATTTTTCGCCCAAAAAATTTTCAACAAATTTAGATATTTTTTACATTTTTTCCCCAATTTTCAGCCATATTTCAGCCATGACTGTCCTATATTTTATTTTCCGGCAAAAAAAAATTTTCTCTGAAAATGTTCGAAACTACTTAATTAAGCAAGAAGGCATTTTTTCGGAGATCAATTTTGAGTCCTCTAGAATTTCTATTATCCATTTTAAAAGAGTTTTAAAATTGTAATTTTTTACAAAAATTGCTCACTTTTGCCACTTTCTAATAGTTTTCTAAACCTAGAATTTCTGAATTCTGCATATATGAATTACCCGTTATCAATAAATTTAGACAATTATTTTCATTGTTTCCAAAATTTTCAGCCATTTTTCAGCCAACTGTCCTATTCTTTGGGCAAAAAAAATTTTATAAGGAAATCGGACTACATTACACAACTTCCATGTTTTCTTCGTAGATTTAAGGTCCATGACCACTGCTTGGTGGAAAAGTTTTCCGAGTATTTAGGTCACCGATTTGAGTTGGAAGAGTTTAATCGCATTACTCCCCAACTGTGATAGAACTTCAAAAATTAATATGCAGGGACATCACTCAAATATCACATGTCAGTTTAAAGGATCACGCTGATTATCCGAGTGGGTCTCGCCACGATCCAGGTGCTAAATTTTCACAGTATTTAGTATGTACCTAGTGGCATATTTCTAAACAACACGCGCATAACATCGGAGTGTCGTTGCATAGGCCACTCTGAGAAAAACATAAACAAATGTGTGATAGAAAAATTAAACCACAACTAACGGATTTCTGATCACTCATAAGTTGAAATGGAAGAGTTTTTGCCGAACTAGGTCACCATATTCGGGGTAGATTTACGGCGCGTCGCGGCTCGACTTTGTAAAACTAAATGTATTTGTCTGAGTACACGACTTTCCCAGGCGTTGTCCGGCAGATTGTCAATGGAGCGCAACGTAAAGTTCAATGAGGAAGGCCAGAACCCCGTGACCAGGGATTTTGAAATTTTGCAGATATGAACAAAATGACAATAACTTAAAATGCATTAATCCAGCGGACAAAGGGAAGAAAATAAGTAGTGAAAGAAGTGAAAAAAAAGACGGACGGGGCTTCTCTCATAAAATAGTAATTGGTCATTCTAAGTGTGCCTATTGTCTTAATCCTTATTTTTTTTTCTTGGCTCATTTTACCTCAAAAACCAAATAGCGCGAAGAGTTCTAGAGAACTAGGCCACGCGGAGAGGGAAAAACTGTCACTGGAATTTCTACGCTAACACAAAATTTGTCCCAGCATACCTACGTGGCAGTAAAAGGAGAAAGTTCGGCCACTTTTCGGGCTATCAAATTTCCCACTTTCACCAATAAAAAAGAAACCACTTGTGGAAAATGGCCGTGCATACTAATGTTCGGTCACACACGTTTTTAAAACTTTTTTGCTCAAATTGAAGTACAGAGACCCTTCGATGGGTTTTCACTACTTAGCTACGTGTACAGAGAAAATTCGGCCACCAGACGCACTTTTATTCAAGGCCACACCTCCAAATCCTTCAAAGCTTCAAAAATTTTCTACGTGGCCGTGTACCAAAAAATTCGGCCATCATCTTTTTTTTGGGTCACGTCGCCAAATTCCTCAGAGCTTCAAATTCGAGATTTTCTACGTGGCCGCGGGAGAGAAAATTCGGCCACCAAATCATTTTTTAAGGCCAAACCTACAAATCCTTCAGAGCTCATATTTTATCTACGTGGTGCCGTGTACGAGAAAACCCTGCCACCCAATGAATTTTGAAGGCCCCACCTCCAATTCTTCAGAGATCATATTTTCTACGTGGCGTGGCCGTATACGAGAAAATTCGGCCACCAAATTCTTTTTTAAGGACAAACCTCCTAATCCTTCAGAGCTCCTATTCCCTTCGTGGCCTAGGAGAAAGGTCGGCCACCAAATTAATATTTCCACGTCGCCAAATCCGTCATATTATGAGGAAAAAAGTAAAAAATAATACTAATAACAATTGAGGACAAATTGAAACCCCATATAAAAATATAAGATACTAGTAAATGATTAGAATGAAGAGCGAATAGGAGGCCAGAGAGAGAGAGGGGAGGAAATTGTGCTGTTGAAGACCTTGAAGAGAGATGCACAGAAATAGATAAATTTGAATTACAATGGGGTAAGGAGCCGGGTAACTGTCCCCCCCCCCCCCCCCCCCCAAAAAGTGCGAACAAACGTGATGAAGCGAAGCGAAAATCCGGAGGGGGGGGGGGGGGGGGGGCTGTGATCCAGGTTGATAGATTTAGCCAAGTGTTTCGACTTTTGGCCGAGTTGAGCTCTATGAGCCGGGCTCACCGGAGAGAGCCCATGGAGCCCCATGAAGCAGAGGGTCACGAGGTTTGAGACTCCGGGAGATAGACTGCACAACGTTCAAAGACTAAAACTTTTTTTTTTTGCTAGGTGAGGCATGAAATATGGAGCTTTTTTGCAACATAAAATCCAATTTTTGTAAAATAAGGTCAGATGACGTGTGTATAATCTGGCTGAGAAAACCTGAAAATTGATCTACCTTAATAAACAGGGCGCGGGTGTAAAGCCGAGCGTCGTTGTGATGCTGAATTATTGTTGAACGAGTTCTGGAATTCTGGCCCTCATAAATTAAATGGAAGACTTTTTGCCAAACTAGGCCAGGCCATATCTGGGGTAGATGCGCGCTTTTTTTTGGGCATAAAATTCCCGCATTTTTGTAGTTAGATCAAACCGTACAGCCTGACATCACGTGTTTTTGGCCCCGCTAAACAGGGCGCGGGTGTAAACATTCAAATATTATGTTAAAAAAACGCATGAATTTGAACAATTTTGCGTAGAATTTTTTAACAAAAACATACATTGAATAACTGATGCGAAACGAACAGAACTGCGTAAATTTTCTGAAATTGAAGGACAGGGGAAAAAAATTGTGAAATTTTGGACATTTTTCCCTACGACGCATTGAGCCACCCAGATGAGCAAATAAACCGGGGGAGCAGGAGGAAAATGGAATTGACAAAAAAGGCGGGTGAAGGAGGAGAAGCTCACGTATTTAGTATCCCATAGAAAGAGTCAATTTTCATTAAAACTGCGACAAGTGACTACCAGGGAGCAGTTGCGCTCTACCGACATAGTCAACCAAGGTCCACGTAGAATATGCCAGTCTGTCCCATTACGGTTTGGTCTGCAAAAAAATGCGGGAAAATTTGGCTCAAAAAATGTGACGTCAGCACACTCTTAACCATGCGAAATCAGTTCCCACATTTTTTGGAGATCTACGTAGATCAAGACGAAATGAGACACGGCACCACGTAAAGGTCCTTCTTACAGAGTGCGCTGGAGAGCGATTCAGGTGCCAGTTTTCTAAAAAAAAAATCTAACATGAGCGAAAAATGTGCGTCAAAAGTGGAGTTTCCTTTAGCGATGTAAAGTTTGGAGAAAAATTGAAAACTGTGGAGGAAGAAAAACTATTCGCAAGACCGATTAAATAGTATTTCACTTCTTTTATTTTTCAACTTTTTGCAATTGCTTTGGCAGGAATGGGGAAAAGGAAAAAAAAACGAAATCATCGATAAAAACACCACTAGTCCACCCAGAAGTAAACCTAGCTTATAGAAATAGGCCACCCTGTATGGAAGAATTTTAGGTCATCGCGTAGAAAAGCTAGGCCACCCTGTTGAACTGCTACGCCACGGTGTTGTACACTTAGGCCACTCTGAAAAAAATCTAGACCTCACTGTAAAAAATATAGGCCGCCTTGAAAGAATTTTAGGTCATCTTGTAGAAATTCTAGGCTACGTTTTCGAAATTCTACACCACTCTGTAGAAAACTTGGGTCAGCTACTACTCGACATACTAGGCCACCCTGCAGAAAACTTAGGCCATCTGCCAAAATCCTAGGCCATAGAAAATTTAGGGAATCTACCAAAATTTTATGCGACTATCTGTAGAAAACTTAGGCTACCTCGTTCAACCATGTTCAAGGCCACCGTGTAGAAATCTTAGGCTACCTCGTTAAAATTCTAGGCCACCCTGAAAATTACGTGATCTACCAGAAAAATTCTATGCCCAGAAGTAAACCTAGGCACCTTGTATAAATTCCAGACCACCCTGTAGAAAACTTGGGCCATCTACCAATACTCTAGGCCACCCTGTAGTAAACTTGGGTCATCTACCAGAACCGAACCTAGCCTGTTCCGTTACGCCGCATGCTAAAAAACGCAGTCCAGACCTCCCTGTAGAAAATCTAGGTCACTCCCTACAAAACCTAGGGCACCCTGTGAAAATTCTACACGTGAAAATTCCCTTCCCCAGAATAAACTAGGCCACCCTGTTAAACTCTTGGGCCACTCAGAAAAACTAGACCACCCTTATAAAAACCTATGGCCTAGAAAAAAGCTTGGGAAATTTTGTGGAAAAAGTTAGCCGAAAAGGAAAATCTAGGCCGCCGACAAAAAAGCTAGGCCACGTGGCAAGAAACTTAAGCAGTGACGAATGATACGAGAGGCGTATGTTTGAGGTCAAAAAGGGAGAAAGAAAAAAAGACGAGGCGGAATGTTTCTTCTTTCATTTCAAAAGAATCTCCCCGTCTCTCGGCCACCAATACTCTCACTACTACAACTAATGTTTTTAGGCCCCCCCCCCCCCCCCCCCCGGGCACTTAGCTTTTTTGACGGAAGATGCCACAATCGAAGAGGAAACCATAAAAACCCGCCAACGACCTACTCCTTTTTAAGGCCCGGATGCCCAGATGTATGAAAAAATCGGAGAAACTGAAGGCTTCTCCCTCCCCCCCCCCTCCCTTAAAAAATGATGAATTACAAATGGTGCCGCCCATGTTGACAGTGTTTGCTTTCCCCGTGCTCCGCCAGCTATCTAAAAATTCGGGGGAACATAACAGCCACCTTGAGTTACGTATACAAAGTGACAGGAGGGAAAGATAGAGGTGAAAGTGCCAAAAGGTAGTCGAGTGGTTCGAACAGGGTTTGCAAAATTTGGGCTGTGCGCGGCGCCTTAGACTACTGCGCCACGCGTGCGAACTGTAAATAGGACTGTCAGGCAAAATACGAACGTTCGGTTTTTAAAATCGATTGGCAAAAATGAAATGAATGAAGACACACGAATGACTCATAATTTTTGCATAAAGCGGCCTGGGTCTGGGAACTGGCGTTGAATTAAGCTAAATGAAGGAAAATTGAGGCATCTCCCGTTGAGTAGAAAAGTGAAGAGGGCGGCAAAAAGAGATAGGGGGGGGGGGGAGGACCCATTCATTTTACACTCCACACTCCACACTCTGACTTTTTGATACGAAGGACATGAGTACGAACACGCGAGCACAGAAATACGACACGTTTTCTTCTCATTTTTTTCATTTTGCAAAAGGTGATGATGATAATCGCTTCTAAGAAGAACGAGGGGAAGTGTACTAAATACTAAAATTGCGAGTGGATAAATTGAATTTTTTTATTTTCGGCTCGGCAAAACCTGAAAATCAGTCTGGAAGAGTTTTGGCTAACTTTTTGTTTGTTTAGAAACTCACTTTTCGCTGCGAAACAACCTGAAAGGATATAGTGGGCATGCACCTTTGAGCGCTACAGGCCTGTGGAGGGAATTCAGTATCTCTTGGAAGTCAGATTTGCCGATTGTTTTAACGCAAAACCTGAATTATAGAAAAGAAAATATGAAAATTTAAATATAATGTAATAAATTAAGCAAATTACATATCAACTGAGAAAATCTCCTGCTTGGGGAGAGAAAAATTTGTTGAAAAAAAGCCAGAAAATCGGCAGGAAAGCAATTATCGAGCAAGATCCTTTTTTAGGTGCAGATATCGGTTAAAAAGGAAAACACTATTTTAGCTTTTAACTATTTTGTCTTAAGTTCAATGTTATAACGCAAGAAACGATATTTCTCTGGCATAAATTTTAGGTCCTAGAAAGCAGATTTTCACGTAGATTGGTCTGAAAATAATATTGGAGTAATTTTTATTATTTTTCCTTGCATTATAAAATTACTTTTATTTCCCAAGTCTAAAATATTTTCCCGTTCTTTTATATCTCGCGCTTCTCCGGGATGTTGCATCCCATTCGACAAATGTGAGGAGTCTCGGAGTCGCTGCAAACGCGCTCCACTGGACACAGAAAATAAAAAACCAATAAATTGTTCGAATTTATGCAATTTTCTTGTAATTTTCTCTGTTTTTCGTTTTCTGCAAAAAAGACAAAATTTACAGGTAGCAATGGATGGGGGATTCATATCAAGGGTTATAGCATATGTGTAAGGCTAAAAACTAGGAAAAACTAGGAAAAACCCATGGAAAAATAAAATACTCTGAAATTTCAAACTGCTTTCAGAGCCTGGAATCAGCAGGCGGCTTCACAATATCAACAGCAAGGACAACAGAGTACCCGTAAGGCTCGAAAAAAATTCAAAAAATTCCGGGGAAAAAAATCCATTAAAAAGATCAAAATTTTCAATTTTTTCAGCGGTAGTGAACCCGTACGCGGCGAATCCATTATGGGTACGCGGCAGCACAGCTTCCAACCACTCCACCACCGCTAGTATGCCTTAAAATTGAAGAAAATTTGATTAAAAATTGAAAAAATGCAAATTTTCAGGTAGCCGATCCATACGCCGGCCAATTTCAGACAATTTCCATCTCAAGCCACCAAAATAGCGCCCAATCCCTACTTTAAAAAGCCACAAAATCAGCAGCAACCAATTTTCGCCGTGTTTTCCGGCTGCAAAAAAATTAAATTATCGATTTTTTAAAGGCTACGACGCGGCGGTCTACAATTACTCAGCAGAACACTCCGAAAGAAACCAACGGCGGCGGCGGCCGGGAGAGACAGGGATCTGGGGATATTAAACAGTACTATTGTGACGTAAAAAACGTGGAAAAAATCGAGTAAAACACAGTTTTTCAAAAACCTGAGAAGTTCCGTAAAAAATCCTGTTTTTTGACTAAGGAAAAAAATCGGGTAGCACTTTTAGAGATAAACGAAAGTGGGATAAATCGAATTTTGGACCTGATTTTGGGCTTGAAAGCATGATTTTTATCAGAAAACACAGTTTGTGTTTTTAAAAATCTGAGAAAATTTCTATTAAAAGTCTTGTTTTTGGATGTTAGCAAAAAAAATCGGGTTTACTTCATTTTTAAGGGAACAAAAGTGGCCAAAAGTTAATTTCTTGTAAATTTTCACATGCAGAATATTGAATTTATTAGGTTTTTTCCAGAAAAGTAGTTTTTTTTTCTACATTTAAGGCTTTTAAAACTGAAAACATGAATTTCCTGAAGAGGAAAATCGACAAAAAAACCCATCTTTTGGCCAAATTTAAATTTTTGAGCAAAAAAATCGGGTTTGCAGCACTTAAAGAGAACTGTAAAAATTCAATTTCTTGGAGAAAAAAGGAATTTTAACACCTAGCAAAAAATTCGGGTTGTCAATTTGTTTGAAAAAAAACTTGAAAAACCGGATTTCCAGTTGTTTTTTCATGATTCTCAAAAATCTCATAAAAGGAAATAATTTCGAATTTTTTACTGAAAATCGCAGAAAAATTGAAACTTTTTTTTCAATTCCGATTTAACAAACATTTTTGGTACGCTAAAAAACGGAATTGATTTTTAGCCTTTTAAGTTCGGAAAAGATGCTGAAGATCGAGTCGGAATTTTCTATTTAAAGAAATTTGTGCTGAAAAATTGATTTTTGTGCTCCAAAAACTGGAATTTTTGAAAAATTCGACAAAAAAATTTTTTTATTAGTAATTTTTTTAATTTTTCAACCCGCTTTTTGCCCAATTTTATTTTATTTAAAAATCGGGTCTACTGAACTTTTAAAGGTAGAAAAACTGCAAAGAGTTAATTTCTTGGATATTTTAAGGCGTTAAAGTCCAAATAAACATGTTGAAAATGGAAATGTCTACAATTGGTCGATTAAAAAACATTTTTTTCGCTAAAAAATTGAATATTTTTAGGCTTTAAGTCCAAAGAACAAGATGAAACTTGAATTTTTTTTTCAATTTAAAAAAATTTTGCTCCATGTCAGGCTCCCAAACACTGGAATTTTGGACTTAATCGAAAATTCGGACAAAAAAATATTTTTATTCGTTTTTAATTTTTTTAATTAAGAAAAATCCCAATTTCGAGGTGTGAGCAAACTCTCGTGCATTTTTGGGGTTAAATTGGAATAAATTATCAAAAATTTTCGAATAAAACGGATGGAATAAATCTGATTTTTGTAAATTTTTCGAAAACAAAAATTTACGTTGTTGGCAAAAATTAAATATCTCATGGAAGTCCAAAAACCATGTAGATAATTCGGGAGGAAAAAAATTGGGAGAAAAAAATTTTTAATTTCAGTAATTTGAAAAAAATATTTAAAGCTGGTGTAGTCGACTTTATTTATTGCTTAAGTAGACTCGAAATTGCCTAGAAATACCGAATTTCATAATGAAACTTCTTGAAAACTTCTCACAAAAAAAAAAGTTATGACGGCCAAAAAATGGACTATAATATAATTTTGAAATTTGAGCGACTTTTCAAGCGGCTGGAAACATTTATTCGCTTTTGAAATCACCGTCAAATTTTGAGTATACTGTGCATTTATGTTGCGTGTTTTCAACTTCATTTAGGTATTATAAAGTCAAAGGGCGGCGAGATTTTTAATTTTTAGTGAACCTGACGACATCGACTTTATCTCAATCGAGTTCAAAACTCAAGATAATTAAATTATATTATCAAAATTTGACGGTGATAAGTTGTAAAAAGGTAGTTTCTAGCCGCTTGAAAATCGGTCAAGTTTCAAATTTTAACCAATTTCAGGCCATTTTTTTAGTCGTCATAACTTTTTTTCGAGAAGTTTTCAAAAGGAAGTTTCATTTTGAAATTCGTTGTTTTCATTTTGAGTCTTATAAAGCTTTTAATAAATAAATTCGACTACACCGCCTTAGTATAAATATTTTTTTGAATTTTTTTAAAATTAAAATTTTTTTTTCCAATTTTTCGATTTTTTCCGCATTCTCCGTGGTTTTTGAACTTCCAAGGCCTCAAACAATATTCAGTTTTCGAAACTATTTTTTTTTCGAAGAAATTCCTATAAAAATCAGATTTATTCCATTCTTACTCGAGCAAATTTTTGATAATTTTTTCTTTAACCCTAAAAATGCATGAGATTTTATCACACCTTGACGCTAATTTGCTGGAAGTTATTTGTAGAATTTTTGGAATTATTAATTAAAAAAAAGTTTTTTTTTTTTTTCCGAATTTTCTACATGGTCTTTGAACTTCCAAAGCCTGAAAATGATTTTAAAAACTTTTTGCTTTATTCGGTTGTTTTTGGTTTTTTTTTTTAATTTAAAAAAATTAAAAAATTAATAAAACTATTTTTTGTCTGATTTTTCTATTAAAGTCCTGTAAAAAAATTCTATTTTATAGGTGTTCAAAAAATCCTAATTTTCAGGCCGTTTTTTGGCCTTGATATTCAATTTTTACACAAAAATTTTTTTTGCAGTTTTTTGCCTAAAAAAGCCCTCGAACAAAAAAATCATCTTTTCTCGAATTTTTGGAAGCAAAATTAAAAATTTCAAAAATATCAATTTTTTGGTGTTTTTCGGGTTTTTTACATAATTATTTTTTCATTTAAAAAGTTTGTAAATAACCATAAAATTTATGATTTTTTAAATTAAAAAATAATTATTAAAGAACACTCGAAAAACACCAAAAAATTGAATTATTATTTCAAATTTTTAATTTTTCTTCCGAAAATTCGAGAAAAGATGATTTTTTTTCGACGATTTTTGAGGCAAAAAACTCCAAAAATAAATTGTTTTGTAAAAATTTAATAAGGCAAAAACCAGGCTGAAAATTCGGATTTAAAAAAATAATTTCTTGCTATAAAATAGATTTTTTTCAGGACTTTAATCGAAAAATCAGACAAAAAATATTTTTATTATTTTTTAATTTTTTTAAATTAAACAAAAAATCAAAAATATCCGAAAAAACCGAAAAATTATTGAAATCATTTTCAGGCTTTGGAAGTTCAAAAACCATATTGAAATTTCGGATAAATAAAAATATTTTTTTGTCCATTTTCGATCAAAGTCAAAGACTTCCAGTTTTTGGAGCCTAAAAATAATCAAATACTGAGCAATATCTTTTTAGATTGAAAATGAACGACAAAAAAGTTTCAGCTTGTTTTTTGGACTTTAAAGCCTAAAAATTTTTTCACTTTTTTAGCGAACAAAATGTTTTTAATCGAACAAATAGAAGACATTTCAAATTTCAACATTCGTATATTTGGACTTTAAAGCCTACGAAGAAATAGAAATTAACTTTTAGCAGTTTTTCTACCTTTAAAAGTTCTGTAGACCCGATTTTTTAAATAAAATCTAAATTTGGGCAAAAAGCGGGTTGAAAAATTCAAAAAATTTAATAACTAACAAAAATATTTTTTCATGTCCGAATTCGTTTCTTCCAGTATTGTGGAGCATAAAAATAATCGACTTTTCAGCACAAAAAAAAAATTTGTAAACAGAAACATCAATTTTTTCAGCATCTTTTCCGAACCTTAAGGCCTAAATATATTCAATTCATTTTTAGCTAAAAATGTCTTTTAAATCGGAATCGAAAAAATTTCAATTTTTATTTACAGTAAAAAATTCGGAATTTTTTTCCAATTGTTATGTGATTTTTGAGATAAAATCATGAAAAACCAACTGGAAATCCGGTTTTTCGAGTTTTTTTTCAAAAAAATTGACAATTTTCCCGAATTTTTTCACGCTATTTTTGGTAATTTTTTCTCCAAGAATATCGAATTTTTTCAGTCTTTAGCTTTAAAAGTACTGCAAAAAACTACTTTTTCTGGAAAAAACCTATAAATTCAATATTTTGCTTTTTTAGCTTTTTCCTTTTTTTGTGAAAATTTAAGAAATTAACTTTTCGCCACTTTTGTACCCTTAAAAGTGCAGTAAACCCGATTTTTTTGCTGAAAAACTTACAAAAACAGGAATTTCGGTTGAAATTAAAATTAGGACAAAATAAAAATATTTTTTTGTCCGAATTTTTCCAAAATTTCAGTTTTTGGACCCTAAAAATATTGATCAATTCTTTAGCGAAAATTGTTTTTATTTTTCAAAAACATGCTACGACTACACCACAACTCTGTCAAAAAACCAATGCTAATTAAATTAGAGAAATTCTTCAAAAAATCCCCAAATTTCCAGGTTTGCAAAATCTCGTGCGCCGGCGGAATCACATACAACAGAGCATCTGGAAGGTCAACGGCACAAGAAAAAGAAGCTATGGCAAAACAGGGCATACCGAGCACTTGCACACCCTCGCTAAAAGATTGTCCTATCGTTGTGACCTATGTGACGTCACTTGCACCGGTCGTCTAAGGGCACGTATTCGACGCTCACGCTCATGGCGGAAAACACTTGAAAACTGCACAATTGCACAAAAAAATGGGAAAACCGTCCGCCTGAAGTCGACGTTCCGACGATTATTGCCGGGAGCCGATGGGCTGACGTAGACGTTTAAAGCCAAAGCGAAATGGCATAAACAAGCTCTGCCGGAAAATGTGCGGCATTTGAAAAAATAATAAAATGTTGGAAAAAAACGAGAAAATGCACATTTTTAGGCTCAACAAACTGAAAATATAACGCAAAAAAATTTAGAAAAGGATTCTTAGGAAAAAATTAGCGTTTTCTCGCCAAAAATGCTCACTTTTCGATAAAAATGTACATTTTATTTTTTAACTTGAATTTTTAAAAATATTTTAGGGCTCAAAAATGTCGTCTGTAAATTTTGCAAAAAAAATTCTAAATAGTGATTTTGAAATTTTGAGATTAACCTTCGCCAAAAAAAAATTTGAATTTGACAACTTAAAATGCTCATTTTTCGAGGAAAATGTAAAAAATTTTTTTTCATCTGAAATCTGTAATTTAAAAAATCATTGATTTTTTAAAAAATTTCTACTGTAAAATTTTGAAAAACGGTTGAACGACGTCAAAAAGAAGGACGTAAAAATCCGAAAAAAAGCAACAAAGAACTAGGAATTTTAAAATGTCCAAAAATGGTCTGAAATTTTGAGAAATCAAAAAGAACAAGTTTCTTTCCGTTTTTTTTTAAGCAAAAAATCGTATTTCTAGTCAGAATTTAAATTTAAAGCATATTTTAAACTTTTAAACGCAAAAACATTATCTTTTTCTTTAAAAAAAGACAATTTAAACGATAGCATTTATTAGCTTTTTTCTCAACATTGCCTGATAACACATTACATAATGAAACTTCTTGAAAAAAAAAAGCTCTCAAAAAAACAAGTTATGATTGCTCAAAAAATGGCCTCAAATTAGCTGAAAGTTAAAATTTGACCGACGTGTCAAATAGTGCGGCTGGAAACTATCTTTCTTTTTTGAGATCACCGTCAAATTTTGAGTATAAAATGTAATTATCTTGCGTTATCACCTTTGTTGATTTAGGTATAACTAAGTCGATGGACGGCGAGACTTTTAAAGGTGGAATACCGATTAAGACTTTGCTTTTTTAAACCATTTGGGATGACTTATCGGTGCGATACTGCAAGCCAAAGGTTGAGATAGCTAAAAATATATGGATACGCCGTTTTTTCCATCAGATAAACTTTGATCGGCCATAACTTTTTTATTGGAAAATTTTCAGAACGTCTCATTACGAAATTCGGCAGTTTTGTGGCCATTTTGGGCCTAAAAAAGCAAAGTCTTAAATTTCGGTACTCCACCTTTAAAAATCTCTCCGTCCATCCCTTAAAATACCTAAATCAAGTTGATAACGCAAGATTACATACTCAAAAATTTGACTGTGATTTCAAAAAGAGTAAAAAAAGTTAGCCTCTTGGCAAGCCGTTGAAATTTCAAAATTCCGCTAATTTGAGTGCCAACACTTTTTTGAGATCATAACTTGTTTTTTTGAGAACTTTTTTTTTCAAGAAGTTTCATTATGAAATCGGTGTTTTCCGACAATTTTAAGCAATAAAGCAATAAAAAATTAGAATATACCACTTGATAAAAATTAAAGATTTTAAGTTTAAAATAAAAAAATATGTTTCTTTCCGATTTTTTGATAGTTGAGCTAAAAGTTTTGGCGGGAAATTCAAATTTTCTATGTTAGAAAAAAAATTGCGGTGAAAACTCATGTGAACAGCACAGAACGGCTGCTTATGAGTATAGGTGTGAAAGTGTCTCATTTCGATGGTTTGATTTACTAAAAAAGCGGGTAATTCCCACAAATGACGTCAAGATGCTCTTTATTATTAAATTTAATTAAAAGAGAGCATGGTGAGGCGTAACTTTTGGGGAAAAATTCCCGAACTTTTTTTTGTAGTTCAAGCCGAAATGAGACACTTTGACACCACCACTTTCAGACAAAGTCCCCCACTTATTTGGTAAAACTAGTTCAAAACCCGACTGTAGTACATTTTTGGCAGAAATTTGAAAATTTCAACTTAACACCGCTCAATTTTTCCAAAATTTCACAGTATCATTTCAATTATGGTTTTGCTTTTTTAATTGAAAGATATATTTACAAAAATAGAGGACCATTTTTAGTAACAATTTTTTGGCGCTCTCAAATTACACCTTTAGTCAGAAAATTGCAATTTTCTCCAAACAAGTGATTTACAGATTTATTTTACCTAAAATTAACAAAAGATCGAAAATATTAGACTCCCGCTTTTTTTTTATTTCAATTTTTCCAATTAAAACACAAACATTGAGCATTTCTAGTTGGCACATACCAAATTTATAGGCGAAAAATTTGATTTCAAAATGTCAAAATTCAGAATTTTTTTTTGCTAAATGTTCAGCACCGATTTGTGCGCAAAAATATTTGAAAAAAAAAAAAACTCGAAAATTGAGCATTTTCAGTTGTAAAAGTCAACTTTTAGGCGGAACAAATGTGCAATTTTTCCCCAAAAAATCCAAATTTTCCATTTTCTATCAAATAAAGCACTGAAAAAATTTGTTATACCTAATGTGGAAAAAGTGAATTAAATCAGATTTTTTGAAAAAATGCACTTTTTTTTTTGCCAAAAATAGTTCCCCGACTTTTTGTTCCAGAGTTTCCTCACCAGGTCATCGGTATCATCGGATAAATAAATTTTGCGGGAATAATTGCGCTTTTTTTGTATATCAAACCGAAATGAGACACTTTTACACCCCACTTCAGGCAAACGACTTTTTTCCAGAGTCATCGGCATCAACACGGTAAACTTCGTCGGCGGTAGGAAGCACTCCACCGGACAACTCGAGGGGAAGAAATACAGCGCGATCCAGTTGCTGCCGCCCTGAGCTCACTCGGTGCCTAAGGAAAACCGTGGTGCTGCTGCAACGACGACGATTGAACGGTGGAAGACGAGAAGCTCCGAGCAATGATCTCAGGAGGTACAACCTGTCGCCGATGTACATGTCACTGAAACCGTGATGCTACCGGAAAACTGGTGCAATTTCCATAAACCGTGCGATTGCAAGTTTTCCGATCCGAATGCCAAGGACATTCATATCAGGTGAGTCGTCATCGTGTAAGCTATCGCAGAAGATTGATCCGACGTTTGGTGTGAAGCCACCGAACAAAAGAACACAGGAGAAGCGGAAGAATCAGCTTCCAGCAGTTCATGGATTGTGTAGATTTTATTTACACTAAATCAACAACAACACAAAAAACATGTTCCAACAAAATTGGAAAAAAAAATTTTAAAAATCCCAAATTTCCAGGTGTCTAAAACCCATCCCGTGCATACAATTTTTAGGGTTAAAATTGGAAAAAATCATCAATTTTTCGGATAAAAATGAAACACAATCTGATTTTTATAGAAAAAATAATAATTTGTTGGCAAAGAACTACTTTCAGGCTTTGGAAGTTCAAACTTTGTAGCAACATAATTCAGAAAAAATCGAAAGATTGGAAGAAAAACATTTTTAATTTGAAATAAAATTCAAAAAAATTTAAATTTTTTTAAAAATTGAATTTTTGAGTAAAGAATTTTTTGCTATAAAATTTCAATATTTTTCAGGCTTTCAAGTCCAAAAACCGTCCGTTGAAAATTCCGAAAAAATCGAAAATTGGAAAAAAAATTTTAATTTAAAGGTGGACTACTTGCTCTGTGGGGGGAAATTGCTTAAAACAATGCCTATGGAACCACAATGCCCGAATAGCATAATAAAAAAATTTTAAAATATACTCTAGATTTTATATTATTTTTTGAGAATTGGAAAAATCACAGTTTTTGCCTAATTCCTTTATGAATTACCGCCAATTGGTTCAGACTGGAGCGCGCTTGCATGTTTTTAAATTTATTTATTTTATTTATTCTTATTTTCCACCCATTTTTAATGTTTTCGATGTATTTTTATTTGAATTTTAGCAGAAAAAGTCAAAATAAATACTAATATTAAAATGCACGCTTACAGGCGTAAATCAGTGAACGATAATAATTAACTCAGGTTCGAAATCGTTCAAAATCGTTTCTTTTTCATTTTTACCTGTAAGCGTAGCTTTGCCTTTAGTCGAAAATTTGCATTTATTTTCACTTTTTCTTTAAAATTCAAGCAAAAATACACCGACAGCATGAAAAATCGGTGCAAAATAACAAGAAATAAAATAAATAAATTTAAAAACGCACTGCAAGCGCGCTCCATCGAACAAATCCAATTGGCGGAAATTTAATGGATGGGAATTAAGCAAAAACTGAGATTTTTTTTTTTCAAAAAATCATATAATATCAAAATTTTTGTTTTTTTTTTAATTTTTTTAAACATGACATTCGATCATTGTGACCCCATAGGCATAAAGGTGGTGTAGTCGAATTTTTTCTATTTCTTTACTAGACTCAAAATTGTCTGAACGCCGAATTTCATTAAGAAACTTCTTGGAAAATTTTCAAAAAAAAGTTATGGCGGCTCGATGGCCTATAATTAGTGAAAATTTGAAATTTGACCAACTTATCATTGTCGCATCGACTGGAAACAATTTTTTTTTTGAAATTGTCGTTCAATTTTGGGTGTACAGATCGATATCTTGCGTTTTCAGCTTTCTCAAGGTATTTGTCGATGGACTTCAATTGGATCTGTCAAATTTTTTACCAAATCTCGTCCATCGACTTAATACCTAAAAGCTGAAAACGCAAGATAATCGACCTGTATACCCAAAATTGAACGACAATTCCAGAAAAAAATTGTTTCCAGCCGCCGCGACAATGATAAGTTGGCCAAATTTCAAATTTTCACTAATTTTAGCCCATTTTCCGAGCCGCCTTAACTTTTTTTTTTGGAAAAGTTTTCAAGAAGTTTGATTATGAAATGTCTTCAGTGTTTTCAGACAATTTTGAGGCCAGTCTAATTAAGCAATAAAAAAAATTCCTGACTACACCACCTTTAAAGCAATTTCCCCACTGGGCGCGACTCAACCTTTAAAGGGGGATTAGAGTTTGTGGGTATTTTGCTTAATCCATAGACTAAAAGTGCATTCCAAAAACACCGAAGTGATTTCATAATGAGACTTCACAAAAAATCTCCAAAAATTTTTTATGGCCGGTCAAAATTCGAAAAAAAAAGATTGCGCAACTTTCGCGAAATTTGATATTTCGCACACTTTTCTTTGTCTAGCAGCCGATGGATTTTAGTTTTTCTAAGAATATCACCCTCTATTCCTTCTTGGTAATTTATCTCGCGAAACGAATCCGTTGATTGAGACAACTTTTAGGCCGATAGGCATCCAAAAATGCTCAATATAGGGATGCCTAACGGCCTAGTTGTGTCAATCAACGAATTTTCGCGAGATAAATCATTAAAATAAGGATTAAAGGGTGATAATTTCAGAAAAACGAAAATCCAGCTGCTGTGACAAAGAAAACTATGACCCGAAATTTCAGATTTTAGCGTTGCATCTTTTTTTTCGAAATTTTTTATTTTGACCGGCCATAAAAGAATTGTTGGAGATTTTTTGTGAAGTCTCATTATCAAAATATTCGGTGGTTTTGAACCAGTTTTAGTGTATTTAAGCAAGAATACCCACAAACTCTACTCCGCCTGATGATTAAAGGAATGAAAATAATTCTTGGAACGTTTGGTTTAATTTTTTGTTAAAAAATCCACACCGAAGAAAAGTCCACAGTATCAGAGCCTCCGAGCTTCATGAAAAGCCGTGGTTCGCCCCACCGTGGCTCCAGAAGGCCGGGAATTCAAAATAGTAGATGATAGAACTATTAACGAAAAGTACTCGCCGGGCTTAATCCGGGCGTAGAGTTCATTTATGAGGATCGACATCCTTATGTCTGATATCAATCTCTGGGAGGAATGTGTAGGATAATATCGCAGCGAGACGTTCGGACCCTGAAGACGTGGTGGAGCGTCCCACCACCACCTACCACAACGGACGCCGCAGACAGTGTTGGGATGCTCGAGAGTTGGAATTATTGCGAACGTTCATCAAATGACAGGGGATCGGTGTGCGGATGTGGTTCTGACGTGTACGCCGGTGCCGACTTCGGGTTGAGCAGGATTATTTAGGCGGTTGTTAGGAGAGTCGACGGCACGGGCCGGGCTTTTTTTTTTGCCGGAAAGTTCGGGATTTACCGGTTTGGGAACGTTTTTTTTTGCGGCAAATTGCCGGTTTTCGCCGGAAATGTGAAAAACGGCGCAAACCTGACAGTCTAGCGGGAAATTTTCAGTTTCGGCAAACTACCGCGATTTGCCCAAGGATCACAATCGTCCGGCAAATTCGGTAAGTTGCCGGTTTGCCCATTAGCCGGTTAGTTGAATTTAGCAGAGGAAATACGGCAAACGGCAAGTTGCCGGTTTCCCACGACTTACCGGAAATTTGAAAAACGGCAATTCGCCGGTTTGCCGGAAATGTGAAAAACGGCAAATTTCAGAATTCGGCAAGGCCGGTTTTTGCCGGAAATTTTCATCTTAGGAAAATTGCCGGTTTTTGCCTGAAATTTTCGTTTCAGTCAGGGAAAATTGCCGGTTTGCGGGTTTGTCGAATTATCCGGAAATGTGGAAAACGGCAAGTTCCCGGTTGGCTGATTTGCCGGAACTTTTTAATTTTCGGTAATTTGACCGATTAGCCGGAAATTTTTTAACGGGATTTTTGATAAGATGGATTTTTTTCCGGCAAATTCGGCAACTCCGGTATGCCGGAATTTTCATTTTTGACAAATTGCTCCATTCGCCGAACAATAATTATGCCAGAAATTTGAAAAACGACAAGTCGCCGTTTGCCGATTTGCCGAAATTTCAAATAACCGGCTATAATTTGCAGATTGCCGGAAAACTTTTACATATTCGGCTAAGTTACCGCTTTGTCGGATTTTTTAAACCGTTTTTTTCAAGATAGATTTTTTTTCCGGCAAATTTCCGGCAAGTTTCCGCATCGGTTTGCCGGAAATTTCAGAACCGGCAATTTTACATTCTGCGGATTTCTTGTTTGACAATCTCAATTATTAAGACATATCGAACAATTGAGCCGGATCCCGAGCCGCCATCAAGCCTTATTCGCCACAGCTAACTACTTTCCCAAAATGTCGTATTAATCACTTCATCTGGAGACAAGACGAAGCTAGTATTGTATCGGATGTCCTGCTGATAAGGATTTGCGCATTTATGCGCTCGCTTCTATTCGGAATACAAAGTGGTATGATGTGGGGGAGTTTTTTTAATTGTTCCTATACACATATTTTAAATTACTTTATCATTGGAAAATCTAAATTATAGCCCAGTTTACAAAAAAATCTATATTCCAAAAAAAAAATTGAACAAAATCGATAATATTCCCAAAAAACGTTTACATAATCGAACTTTTTAAAACACTTTGAATAAATCGATAAGTTTACAACTGCTGACAATTAAAAAAAATCGAAAATTTCTCAAAGCTCCAGTTGAAAAAATTAATATTTTTCCCGAAAAAATTGAAAAAAATGGATAATTTCCAAGGAACATAAAAGCTAAAGATTTTTTAAAAAAATCGAAAACAATTCAAACCTTTCGGTTCACAAAAATTTGAAAAAAATCGTGATTTTTTTAACTTTTTTTCATCAAAAATTTGTCAAGAATTTGGAAAAAATAGAAAAAATCAATATTTTTCCGAAAAAATTTGAAAAAAAAATCGATAATTTCAAATAATAGTTGCAATTTATAATTTAACAGCGTAGACAAATTTTCAAAGATGTTTAAAATTTTTCACGTTTTTCTCTCTGGTTTTTTTAAAAAGCGTAATTTTTACCGAATTTCTCATCAAATTACATGAATTTTTCTGAAAGAGCGAGAGAATTAAAATAATTCGAAAAACTCGAAACAATTTGTTACCAGATCTAGCCGAAAAATCCCACAGAAACCACCAAACTTTACTTTTTTTATTTAATAAAAAAAAGTTTTAAAAAATATCAATCTCCCTTTTTTTCTGCCAAAAGCGACTTTGATGTGGGTAAGCTTGAAAAGTTTAAAAATTTGCAGGAAAAAATCAGGAAAACTCTTTGTATTTTCAGAGTCACTGCCAATACTCTCGTGCCTATCAGTTAATCGAATGCTCCGAGATTTGCGAAATAAATATCCTGAAGTTGCGTGTCTTGATGATTATGTAAGTTTGAGAGTTTGGAAAAATATTCGAAATTTTTTGGGAAAAATTTGGTAAAAGTTCACAAATGTACTGTACAATTCATTAATTTTTTTGCGAAAAAATTTTTTAAAATTCTCTATATTTTTGCTAAATAGTTTACAAATCTAAATAGTATGAAAAAATATTTTAGCAGAATCAACAAAAATTGTATAAATTCATAATTTTTTGAAAATGAAATAAATGTTTTTTTGCGAACCACTAAGACCAAACTTAAATATGCTAAATAGGTTTTTTTAATGCAGGATATAGTTTTTTAGCTGAAAACGTCTAATGAGAAAAAACGGATAACATTGAAAATTTACGTACATTTTTGCAGACCTTTTTTGCTCACAATTTTGTAAAAACTTTCGGCAAAAATATCACCTTAGTCAAAAAAAAATTGCTTAAAAAAAATTTCTATAATACAAAAAAAATGTGAAATCTATCTATTTTTTTCAAAAAATGAGCTACCTAAAAATCTATTAATGATTCTGTGCGATTTTTTTGTGAAAAATTTTGAAAAAATTCAGAATAATGTATAATTCCGTTATATAATATTTGGCGAAAAAAATTAATTTTTGAACTATAATTTTTTTTATGAAAACTAGTTTCAAAAATCGATATTTCACCTAAAACGAACAACCCTAAAAATAGGCGGCACACGAACTATGTTTCCGGCAAAGTGGTAATTGCCGAAATTTTTGGCAAACTGTATAGGCTTTGCAGAATTTTTTTGTTGGAAATTTCAGATTTTCAAATTTAATCGGCAATGAAAACGAAACGTTTATTCCGCACATCGGCAAACCAGCAAATTGCCGAATATAATATTATGTCTCCTAATAAGTTCCGGGGCAAAAATCATAACCTTGTTCGCTGTGTATCGATTTTTATGAAACTTTGGGAGTTTATGTTATCAACCGTGATCTTTCAATTGACAATATTCACACAGTTTTGTGACCACCCCAAGTGCCCGTACTCGGAGCCAATTGTTTCAGGTATTTTTCTGATCTCGCTTCTTTTTATCTTTGAATCGAGGTTTGTTGCGGATTTTGCTTTGTTTCGAATACATCGTTAGAAAACGAGAAAAGTTTGGAAAAAAATTTGTCCAATAAATTTTTTTTGGATGATCGGCAAAGAAGTTTCAAAAAGATTTTTGTCGAAAATTCTCTTTCATACAATGTAAATGAGGTGTCCGAACCAAGTGTAAATTATTTTTATACATACGAACAACATATCAATTTAGTTCGATACACTAAAATGATAATAATATAATTTTTTCGGATAATTTTTGAGTTTTTTGAATACTTCTTAAGTTTCAAATCGATGTTCAAACTAAAAGAATTTTTGTGTGTAAAAATAATTTTCACTTGGTTACATCATTTTTGTATCAAAAATCTGTGAGCATTTTAAAAATCTTTTTGAAGCTTTTTTGAAACCAAAAAAAATTTTTGGACGGATTTTTTTCCAAACTTTTCTTGTTTTCTAGTGATGTATTCTAAACAAAGCAAAATCCGCACACAAACCGATCAATATCTTCAAAGATAAAAAGAAGCGAGATCAGAAAACCTGCCCAACAAATTGGCTCCGAGTACGTTGGGGTGGTCAAAACATTTTGTGACTATTTTCAAAACACTGAAAGATCATGGTTGAAAACATAGATTCCCAATTTCATAAAAATCGATTTGCAGCGAAGTTAGGATTTCTTGACCCGGAAACTTATTTGGAGACCTTATACAATTTTTCAACATTTTCCAGTAAATTAGGGAGGTAATCGTCTCGAACATTATCGATTCATCTCCAATGTCACTTTATCCGATGCGTTTAAGCGAATTGTCGAAGCTTCACTTGCAATATGTGTATTCTGGTAGGGGGGTTAACTTTTTTTTTCCGGAAATATATTGAAAAATGAGCATATAAAAAGTTTTAAAATAATTTAAATATTTACAAAAAAATTTTTTCTGAAGTCAATTATATTGCGTTTGGAAAATTGATTCTTGTTTCGAGAACGGAAACTCTTTTTTTTTAATTAAAATGTTGAAAAAAAATCCAGGAAAAATGCTGAATTTTTCGGGATTTTTCTGAGCACATTTCTAGCCAAGCTCTAAAAATGAAAAACTTGAATTTTTCTTTATTTGAATTTTGCCCAAAAATGACTATTTGAGGAAAAAAAAAACATATTTCAATCACCGAAAAAATGTATTAATTTAATATTTTAATGTTAAAAAGGTATTTGAATTTTTTTTATACGACCTTTTTTTTGCACAAAAAGTTGAAATTTGGTTGAACCCGGATAAAATTTAGAAAAATTAAAATTTCAATTTTTTTTTGCGTTAAAAGTTTTTTAAGGTTAAATATGTTAAATAAGCACATTTCTTGAAAAGTTCTTTTGATTTTTTATATTAAAAAGTCTATTTTTCAAAAAAAAATTTATTTTAATTTTAAAATTTTAAAAACTTTAGAGTGGTGTAGTCGATTTTTTAAATTGTTCGATTAGACTCAGAATTGACTGAAAACACCGAATTTCATAATGAATCTTCTTGAATACTTCGCAAAAAAAAGATATGACTGCTAAAAAATGGCCTAAAGTTAGTTAAAATTTGAAATTTGATCGACTTGTCAAGCGGCTGGAAACTATTCTTTTTTTTGAAACCGTCAGATTTTGAGTATAAAATGTAATTATATTGGCGATATCAACTTTTTAGGTATTTTAAAGTCGATGGACGGAGAGAAGACATTTTTAAAGGTGGAGTACCGATATTTAATACTTTGCTTTTTTAGACCCAAAATGGCCCAAAACTACCGAATCTGCCGTAATGAGCAACGTTCTGAAAATTTTCCACCAAAAAAAAGTTATGGCCGATCAAAGTGCTTCTTTGGAAAAAACGCCATTTTTAGCTAAGATGTCAAACTTTGGCAAATTTGACAGTCTCGCACCGATAAGTTCGGCCAAAATTTCGGTCTAAAAAAGCAAAGTCTTATATTTCGGTATTCCACCTTTAAAAGTATCGCCGTCCACCGACTTTAAAATACCTAAATCAAGTTGACGCAAGATGCCAATTACATTTTATACTCAAAATTTGACGGTGATTTCAAAAAAGAAAGCTAGTTCCAGCGGCTTGACAACCAAGGTCGGTCAAATTTCAATTTCCGCTAATTATGAGGCCTTTGTCTTATTGGAGCAATCATAACTAGTTTTTTTGAGTGGTAACTTTTTTTTTTCGAGAAGTTATTGTCATGAAATTCGGTGTTTTCAGAAAATTTTGAGCTAATAAAGCAATCAAAAAATATTCGACTAACTTTTTGGCCTATTTTTTTGGGCTAAAATTGAAAGGTATTTTTCCAGCAAAAGCGGTCCGTGTCAGACGTCTGTCCGAACGTTCTCGATGCTTTAACCGACGAGCAGAAGCATTCGTTGACCGCCCTGGCACAGAATTTTGTTCTGCAAATTGCATTAAATCATATACACGAGGTATGCGGGGATTTGAGCAGAAAAAATGTTTAGTCAATTAAGAAAAAACCTTGAGTTTTTAAAAAAATCTGTGGATGAGAAATTTTCGCAATAAAAAAATTATATCGGTATAAAATTAATTTCAAATTTGAAAAAATTTCAATCAAATAAATTTTGAATTTGCATTCCAACGTCATCGGTCTAAAGAAAAAATTGCTTGAAAAATTGAATTAAATATATTTCTTTAACTACCTGTAAATTTTTTATTTGGGATCCGAGAATTCGACACTGAAATTTCATTTAAAAAAAATTAAATAAAATTTGAAATTTTTTGGAATATTGCAAAAAATTGCTAAAAATTGAATTTTCCTATATTTCGATCGGTTTTTTTTTAGATTTTTTAAAAAATTTTTTTTTCAGCCATTTCGGGTGGCCGAAAATGGAGAAAAAATAGTCAGAAAATTCAAAAAATTGCTTTTTTTTTTCAATTTTCCGAAATTTTGTATCTTGATCGTCCAAAAATTTAAAAAATAATCGCTAAAAAGTTTAAAAAAAAATTATTGAAAACAATTTTTTTAGCCAAATAATTTCTAGTAGATTGCATGAAAAAAGGCCCTAGTGAAATACGAAACAATTTTTTTTTCAAATCCGATTCAGAAAAAATTGAATTCTCTCTGATTTTGGGCCGATATTTATAAGATTTACAATATTCCAAAAATTCTTGAGAAAAATTGAACTATGTCTGCCGTATTCCTGTGAACATAGCGGAAAATTGAATTTTCCAGGTTATGTTTATCGGAAAAAGTATAGTGACTCTACGTAGAATTCATGAAAAATTCTGACAAAAAACCAAACATTTTGGCCCAAAATCAGAGATTTCACAAAAAAAAATGCTGAAAAATCAATTTTCAGCAATTTTTTTTTCAAATTTTTTTAAAAAATATATTTTAGTTAATTTAATAATTTTTTTTTCCGTTTTTTTAATAGAAGAAAAGTTATTTTCCCAAAAATGTGCAGACATTTCAGAATTTTCGGAAATTAAAAAAATTTATTTAGCAAAAAAAAAAATTTTTTAATCCAATTTTATACTATGATTTTTTCACTTTTTCGGTGGTATTAGGACTGAATTCAAAGTCTCTTCGAAAAACATAAATTTTCAGAAAACTTAAAATTAATCTGATTATAATTCGGAGCATATATGAAATGTGCTTTTATCACAACATTTTTTTTTTTGACAAGTCAAATCTTTCCACATTTTTAAAAGTTCCTATTTTGTATATATTCGGATTTAAATTATTTTTTTAACGGGTTTATTGTCTGAGCAAAAAAATTGAATTTTTCTAAAATCACCAATTTTCTTCCAGATTCTCGGAATCGATCGTCTTCAAGACCCACTATTGATCTACCATAGGATGCTCCGATCAAAGACCACTGGAGAGCAATGAAAAATGCTGAAAACGCAGAAAATCTCGACGATTCGCCAGTTTCCAAAAAGGAGAAGGATACTCGACGAGGAGCCCGCCGATATTTGAGGATTTTTATTTTAAATTTGGTCGGTTTACGAAATTATTTAATTTTCCTCTATTCTCCCTCATCTCTGTGTTTTTTTCTAATGTCTTTGGGCGTAGAAAAAACGAATGGCTCTCTTCGCGGTTAAACCTTGAAATTTTTATTTTTCTACTATTACCTCCCCCTGCAAACGCGCTCTATTGGCGACAATTCGCAATGGAGCGATTGCATATTTTGTTACCATTTTCCAGACATACTCATGTTCGATCTTCCACTAGGGGAGGGTCTCGCGATTTTTTGAAAACTAAATTTAGATTTTTTTTTGAAAAATATTCGAAACAATTTTAGGTTTTTCGAAAAATCCTAATTTAGCCTAAAAAATCAAAAATTGATGGGATTTTTAAAAAAAATTCAAAACTTATAATCAAAAAAAATTGCAAAGATGTTTAATTTTTTTGTTGAAGAAAATTTTTTGTAAAAATTAATTGATTTTCCGCTTTGAAATAGTTTGAATTTAGAATTTTTTGAAAAATTATAAAAATTTTGAATTGAGCTTTTGAAAAAACATTACTCAAAATTGTTGGAAAAATTTTGAATTTTTTTGAATGAATTCAGAACTTTTTGAAAACGGAAATTCGAATTTTTCTGAAAAAAACGTTCGCAAAATTTTTCGAAATAATTGAATATTGAAAAAATTATAAGTAAATTCCTAATTTAGTCGGAAAAAAATATTGAAAATAAAGTGACGATTTTTGAAAAATTTTCCCAAAAATTCTATAGAACTGTCCTGAATTTCTATAAAAAATTCGAAAAAATAAAGTTTTTTAGAAATTTGCAAATTTCTTTAACATATTGGAAAAAATTCTATTTATTTTTGAAAAGTCATTTCTAAAATCTTCCTTTCTGCTAAAACCTGCAAATAAAAGGACCCTGCCCCTAACTATCTTGTTCATCCAAAAACCGACAATTCTTCTGTTTTTGTGTTATAATCGTCCTTTTTGACTTGTCAAACAAAAATTAAAATAAATTAGAAGAAAAGGGTTTAGATACGATTTTGCCAGCACGAGGCCGAGGTTTTTCACGGCCACGTGGCACAGGCCGGCAAGTAAGGCTGAGGCTGTGGGGGGAAATTGATAGGGAAGAAGGCAGGAAAAAAAAAAGAAAAATTCAATATTTTAAAGCCAAAATAAATTTTTCTGAAAAGACTAGCAAAACAGGAATGGTTAGGGGTAAAGCCGATGTCGGAGTTTGACGGAGAATTTTGCAAAAACATTAACAAAAACGAATCGGTAGGGACGGACCGGCAAGATTGATTGTTGAAAATTGACGAAATCTATCGATTTTTTGGCGCACGGGGTTCTGGCCTTCCCTCATAAATGGAAGAGTTTTGCCGAACTGGGCCACCAGGTCATAACTGGGGTAGGTTTACGGCGCGTTGCGTGTCGCGTCGAGGCTCAATTTTAGTTGTAAAACTAAAGAAGATGTATTTGTCCGTGTGAAGTACACGACTTTCCCGGGGCGCGATTGTCATGGAGCGCGAAAAATTAAGGGCCAGACACAGAACCCCGTGAAAAAAGATAATCCCGTTTAGAATCGGTGAGGGCGTGGAAAGAAAAGATGATCAAGAAAACGGGAATGAGCAACATTTCCAAAAAATCAACAATAGCGCAATTCCAGAAAATTCCATAGAAAACGGGGTCTAAAGCACCAGATTAGTGTTGTGCGTGGGCGTCCACTGTGACGTCATCACCGTCCACGTTTCGTAGTTCTACCGACTCGTGCTGATCTGAGAGCTCGGCCGAGACTTGGAGATCTCGGTGAATGTGGCGAATGCTTCGCGGGTGAACATGTCTGGAAAATCAGCAAGTCAGGAGAAAATTCAATTTTGCGCGTCAACTTTGATGTTTTGTTTGTGTTAGTGAACTTCAGAAAATTGAATTCGCCAAATTTTACGAGCAAAAAATTGGATTCTTTTGGTATTTTTCATGGAAATTTAACCAGGTTAAAAATCGAGGTTTCTCCGGAAATTTAACGTACTTTATCGATTTTTCATCAGAAATCAGTAGAAAATTCCTTCTGCGCGTCAATTGATGTAACCTTCGGGCCGTGCGGAACTGAACTGGATTTCGCCTAATACGAGCAAAAGGGGGGCTACCGTTTGCAAATTTTTCTTGGAAACTGTCAAATATTGAATTTTTCGTGAAGGGCAAAATTTAACCAAAAATCGGGCTTGCTACGGGATTTAACAAATTTTATCGAATTTTTTTGCGCGTCAAATTTGATGTTTTTTGTTGAACTTCGGAAAACTGTATTCGCCAAATCTTACGAGCACAATTGGACTTTTTGGGTATTTTTAGTCCGAAATTGATTGTCTTAGAGATTAAACGCGATTTATCCATTTTTTATCGGGAACAGTAGCAAAATTCAGTTTTGCGCGTCAAATTTGATGATGTTTTTTGTGTTGGTGAACCTCAAAAAACCGTATTCGCCAAATCTTGCGAGCAAAATTGTATTTTTTGCGTCTTTTTCGTGGATTACAAAAATCGTGCATATCTTTTAAAAAAAAAATTCCACACAAAAGTACATTTTCACACAAAAACTGCAATTTGCGCGTAAAATATGGCGCAACCATCGGTTGAGTGCGGCACGCCGACTCAAAAACACCATATTTTTCACGCGCATATATTAATTGAAGCGCCTTCACGTGGTGTCAGGATGGGTCCACGGTTTGATCTACAAAAAAATGGGGGAATTTTTTGCCCAATAATATAGGTGACGTGCATGTTCTTAGCCATGCAGAATCAGTCTAAAATCCCGCCTTTTTTGTAGAAACGTAGATCAAGCCGAAATGAGACGACTCTGGGCTTTAAAACACTCACCAATAAAACCGAGACATGATCGGAACGTTACACGTGCACTTCCGATCGAATATCTCCATCGTCACACCGGCAGCCCTTTCTCTTTTTCTTCTCGAGTCTGGAAAATAATGATTTTAATTTTATTCTTGGAATTTTAAATTTCAAACAGTAAAAAACCAAAAATTATAGCAGTATTAACTTATCCAAGTTAAAGAACTACAGTGAAACTACAGAAATATTAATAAATATTTCGATGCACCAAGAGCCGAAATCTCTGAGAGCCCAAATCTCGGCTCATTTCGAGTTACATTACAAATAAACTGCAAGCTATATATAGAAAATTCAATTTCAATTATTTTGTTAGTTAACAGAATTTGGCTAGAATTGAAATCGAGCTGGGATATGGGCTGGCTAAGTGAATTTTTCCTTTTTTTTTTTGTTTATTTTGATATCCAGGGGTGAGCAGCAAACGATGTTTCCGGCAGATCGGTCGCTAGCTTGCCGGAATAGAACACTGCAAATCGGCAAACCGGCAAATTACCAGACGAGTTTGCCGGCAACGTATGCTCCCTATGAGCCACCCATCAATCGATTTTGTCGGCTTATATTTACGCCATATGGCGGTTTCAGAAGTTTTTATTTTCATGAAAACCAGAGTAACTATAGATCATTGAAAGAATATTTTGTCGTTTATTTTGAAAATATGATAAAAGACAACCGAGATATAAACGGTCAAAGACTAGTCAAGGGGGGCCATACAAAAATGTTTTTTTGTAAATTTAGAAGAAAATGTGTTTCCGTCTTATTAAAAAAATCTCTCTAAGCATTTCCGGCAAACCGGCAATTGCCGCCCTCCCCCGACCTACGCACCTGTTCAAAGTACTCCTCAACAATCCGATGCGCAAACCCCATCGCTCAGACACAATCCCTCTCTCGCCGGATTGGAGATGTCGGGGCGCACTTGACAAGCATACTGCTCATATCGGAAGTGAATTCGTGTCACGTTGCTCCTCCGGCACATCTGTCACATGCATCTTGTTGAACTTGGCGAGGTACTCAAAGTGTCGACTGAGGTCCGTAGCCAACACCATCTCCACCATCGCATATCGCATTTGTATGACTCGCGCGACAGACTCGGGAAGATGTTCACGTTGGCGTTGTGCTGAAGGGTGCTTAGCTGAATGGTTAGCCTAGTGCGGATAATTCCAGGAGTTATCATTGTAAAGTATTGCAAGCTGTCGCGTCGTATTGATCAGGTACGCGTTTCCTCTTCCAGGATGGGCTAGATCATGCACCGCCTCTGCGAAAAGAACCGCCGTCACCGCATGACTTTCATTCAAGTGCACGGAGAACGACGGGGAGTCAAGGTGGCCTGTAGGACGTCGGCTGTGTGAGTTGCGTTGGGATACGTGTTTCCCGCATGGTAATGAGCCTCGATGGATAGATTAGAATCCAGCGGTGGAGGAGATCGTCGGAGCAGCCGAGCACATCGCAAACCTTCCACCTCTCGAAGACTTTCATTCCGATTTCCTTGGGAAAGAGCGTCGTGATCCGACACCTTTTCCAGATGGAGGATGTCGAATTTCCAGCAATTGTCGTTTTCCAGCGGGTGAGGGTCTTCACGTCAGCGGATACCCGTCGACATTCTGCATGGGATCCTCGCTTCTCTCGATGCGCGTCGACGACGCTTGCGCTGCCTAGCTGGATGATGGAGGCGAATGAGACAATCGTAATATTGAGTTGCCTATCCGATCGGCGTCGCGGAATCGGTTGATCGACGGTGCGTACAGCTGGTCCGACGACAGCACCTTCATCGCGTCCTTTATCGTTTTTGCCGGTTCTCCGTCGACCCGCGACACGTCTCGGAGCATTGTGAGCACCTCGGAGATGGGCGCCTAACGATGCCGCCAGTCCGCGATTTCAGGCTTTTCAGGGCGCCGTCGCGGATTGGCGGTACCGGGTTGGTGTTCTTGTGAGCGTTTCACACGAAGTGACTACTGCTAAATAGAATTTTTTGATTAATTGGTGGCCGAGCTTTTTAAATGGTTGCCGCGATGTTTAAGTTGATGGCAGAGTTTTATAGGTTGATGGCCTAGTTTTTTAAATCGTGAGTTTCTATGCAATTTTGTGGCCGTGTTATTGTATAAGTTGGTGGCGGAATTTTATAAATTGACGGCCGAGTTTTGTAGGTTGGCGGTCGAGTTGTATGAATTGGTGGACGGCCTAGTTTTACAATTGTGTGGCCGAGTTTTTGTATAAGATGTCTCGTGATGAGCCGAGTTTTTTCAAAATGATGGCCGCGATCTTAATGATGGTCGAGTTTTATAAGTGCCGAGTTTTATAGGTTGATGGCCGAGTTTTTATGTAATTTGGTGGCCGAGTTTCACAAGCTGATGGTCGAGGTTTATGAATTGGTGGCCGTGTTGCTATACAATTTTGTCTGGCGGTGTTTTTATATAAGTATTTGGTGGACGAGTTTTATAAATTGGTGGCCGAGTTTAACGGAATAAGCAAAGGAAACTAAAGCGAAAGTGCTAATTTTATTGAAGGGTTTTAAAAACTGGGCCATCACCTTTTCAAGAAAAACTCGGCCTCCAAATTTTCCAGCAAAATACTAGGTCGCCAGTTTTTCCAGCAAAAAAACTCGGCCACCAAAATTTCCAGCAAAAAAAACTGGGCCACCAAATTTTACAGCAAAAAAAAAATCGGCCACCAATTTTTCCACAGAAAACGGGCTAGTTTCATTGTTCGTTTGAGAGAAAGGTAGGTCACGTACATTTTCAATACGAATACTCGGCGACCAATTCTTTATAAAAAATTCCGTCATCAATTGTCATAGAGATTAAGTTCGGCCATCAAGGTTGAAAAATAAACTAGGCCACCGATTTTTTTAGTTGAAAAAAACTGCTCGAACACCTAACCTTAAGATTTTCCTTTTTTCTAGCCTAGAGCACGGTTATCGCGTTTTTAGGCCACCGATGCATTTTTTTAATCGAAACTCGAAAAAAAATCGGTGGCCGACTTTTTATCATATACGGCCACCAATTAAAAAAAACTCACTTGTTAGCAAACGGGACCCGTATCATTTTCCTGTCTCAATACCCTCCGTCCGCTTGCCGCTCCTCTTCGGTGCAGGGCCCTCGGGTGTACAGAGACTTCCGTCGCATTTCCGATGCGGGTTGTCCGAACACCTCGGATTATGCATCCCGTCACGTTCTCTAGCCGTAGGCGCAAGGATAACGTACTGCACTAATCGTTGCTCATCACATATTTCCACTGCTTGATTCGTCTGAAAATATCACCGCAAAATTTGAAGGTTTTTAGGCACATGTGGCGCCAGTCCATTTTGATCTACAAAAAATGCGGGAATTTTTCACCCAAAAATATATGATCAGCTCACCCAGTTCTTAACGATTCTAAACTCACCCGCATTTTTTGCACGCTCTACGTAAATCAAGCCGAAATAAGAGACACTCTGACAGCGCGTGTAGGCAGGTAGGCGTTCACCGAGCCAGGCGATTAGGCCAGGAGGCAGTCGATTAGGCAGACTAGTAGGAGGTAGGCAAGTAGGCATTGAGGCAAGAGCTCACCTAATCCAAGACCGCGAAAAGGGCTATGGGCAGCGCGCGGATCCGACTCGCGAGCCGCCCGACGTAGTCGAAGAGCACCACAAGCGTATTCCACGTCACATGCTTAAAAGAAACGCATGAATGGGAATCAGTGTGTATGAAATATAAATTAGAATTGTAAATGAGAAACTGAGAAAACGGATGACTTACCATGATGAATGATGTTGGAGTGCGCAAGAGCTCTCCCTCGCTTTTCGCTGATGTGTCTATGTCGATTGTTAGATTGACAATTCTGGCAGAGTGGTTTTCTAGAAAATTGGGGAAAACTCGGCCAGATATGTTTTCTTTGGTTTTGGTTGGATAATTTTGGCGACCGAGTTTTTCAACGTATCCTTTATGTGTCCGTGGCCGAAGGCACATAGAAGAAAATTAGAACAATGCCGAGTTTTATCAACGTAGTCTAAATTAGGTGTGGCCGAACTTTTCGTCTGACGGCCACGCAGCAAGAGGAAAAAATAATGAAACAAAATTTGGTGGCCGAATTTTAAGCCAACACAAAAAGTTGGTGGCCAAATTTTAAGCCAACGAAAATTGGGGGCGGAGTTTTTGTTTTTTGAAAATTCGTGGCCGAGAATATGGGAAAACGCGGCCACACGATATTTTTTCTTTGGTTTCTGGCTGAATAATTTTGGTGGCCGAGTGTTTTTGTTTTGGATAGGGCAGTTGTGGTGGCCGATTTTTATCATTTAAACCAAATTTACGTGTACTTGGACTTTTTCTGACGGCCACAATAGCAAGCAAAAAATAACGAAAAGTTGGTGGCCGAATTTTAAATTCATAGCAAGAAAAGTTGGTCGAATTTTAAGCCTAAAAAAAGTGGCGGCGCTTTTTCTACAAAATTCATGGCTGTCATTATTTTAATTGGAAAAACTTGTGGCAGTGATTTTGTCTCGAAAAAAATCGTGGCCTTTAACTAGTAAAATTTGTGGCCGACTTTTATTCGCGTAACCTAATTAACGTGGCTGTCGCCGACTAAGGCCACCTTGCAAGAAGGAAAAATACCCAGGCGAAACAATTGTGGCCGAATTTTTAGTCGAAAAAAATGGCGGCCGAGTTTTTGTTTAAAAAACCGTATTTAGTTGGGACGAAAAATGGTGTCCGAGGTTTTTCAATGTATCCAAACTTATGTGGCCTGTTAGTGGCCTATAGCCTAGCTTTCCTAAACCATTTGTTTATAAAGTTGGTGGCCTAGTTTTTAACCAGCATAATCCAACTCACTCACTTCTCGGCGATCGACACAATCAACACCTCCGCTGTGCTCACCGAGGCTGAGACGTCTCTGAAAAAAAGTTTCGTTAGTAGATCATGGCTGACGACGCTGCTCCCTTACTTGGCGATTTATCGAGCGATGGATGAGGTACTCGAGATCTATGAATACAGCTAGAGGGCATATTGATTAAACGTCGGATAGTGCAAGCAAGTGTACATAAAATTTCCGAAATTCAATTTCCTTTTTCCCTCGCCGCGCCACCGTGTCCGAATTTCGGAACTGACCACGTTTCAGTCGTCTTGGTAATTCCCAATTTCCTTTCTCCCTTTTTACGTCACATGATAGCGGTTATACGTGTTTCGATGCATACACAACAAGGCACTTAATCAGCTACTAGCTCCTCTCCCAACCTCCACAGAGAGACTGTATGAGCAAGAGAAAAAGCACCTGCTTCTTCCAGATTAGGCGTGAGCGAGCCTGTTGTCATCTGACTTCTGCTGACGGAGGGAGCTTGAAAAGCGGAGCAGGAAGAGGAGAAGAAATAAAGAGCATTCAGAAATTACGCGCGAGTCGTAGTAGCTATTTATACACTGACTTCGTCTCCTTCTTCTTCCTGCTTTTTCCCCGTCTGCTCCTTCGCTCGTTGATGTCTGCCATCATATTTCATTAACGAGGGCCTAAGAATCCTGGAAGAGTGACGTCACACTGATGGCCTCTACTAGGAATCTCAAAGGCAGGCCATATTGATTCATATAGCAGGCCATATCAGGCCCCATAGCCTGGCCATAGTAGGTCACCACAAGCTATGGACTGCCATCAGGATTTTGGCTCTTTGGATGATAAGCTTCTTTGGAGCCCAGCGCTTAACAGACTGACGTCGTGGTATCGAGAATCTCGGCTAGGCAGAAACGCGGCAATTGTGAATTTTTTGACGCACTAAAGATCTTATAGATCCTTGAAATCTTCCACAGGACTTAGCAGACCGGAGGCCTGGGAACTATGCAGTTAGAGGCGCCAAGTCCAATAGTGGGCTCCGAAGAGAGAGTGCCCAGAAGGGCTCCGAAAAAAGCGTAGATTTTGGGCCAAAATTTCCCAAATTGGGCCAAAATTTCAAAAGTAGTAGGTTTCAACCCTCATGTTTCCCGGAATGATTTTGTGGACTATTATTTACAGACTGTGGTGGCCTGCTACCCACAATATGTACTGGGCCAACCTCTGGCCAGGTTACGGCCTTTAATAGCGAATTGCTCTTCCCTTGGAGTCAAAGTTCTTGCAGAGCCTAGGAGACGCTTACCACTTTGGATCAAATGATCTAAAACTCAATGGATCATGACCCTAGAACCTCAATTTGACCCCTAATAAGCCTAATACGGAGCTACGTCTAAGCTCCCAGGCTATATGGCCTGATATGGCCTGAGCAACACTTCGGTGTGGCCCAGTCTAGGTTTTTCCAAGCCCCAGCGGGCCTCAGTTTTTATAAGCCTAAAGACGCAGCTACTGGGCCAAGCTCTGGCCTTGAATTTTGGAGTAATTATTGCAGAGCCATCATGCCTAGGAGGCCTAATCTAGATTTTTTCAAGGATTGAGGCCCCCACGAGGCCTCAATTTTCATAAGCCTAAAAACTCAGCTGCAGCCCTGCCTGTGTTGGAAACTGTACAAATCCTTATATGCCCGTAACGAGTCAAGAGGAGTACACTCTCGCCGGTGCCTTCCGTCACGATCACAGTCTGAAAAAGACGCATTATTTATAAGATCTTACAGGGGATTTTCAGATTAGGAGGGTCGTGTGCCAGACCTCAACAGCTCGCCGGGGGTGATAAAATGCTGATTGACTTGACATGCATATATATAGATATATATGAAGTTGGAAGAGCGGAAGCAGCAGCAGTGGCAGCAGAACTTGTGTGTGACGGGGATTTGTGGGAACAAGGCGCCAAAGAAGACGAAGCAGAAAAGCAGAAGCCAATGGGGGCAAGCAATGAATGCAATCTATGTAGGAGTATGTAGGAATATGTGTGTGTGTGTGTGTGTGTGCGAAAGTCTCTCTATCTGTGTGTGTGTGTGTCACAGGTTATATCGTGTGCACAAAAAATGTATAAGGTCTCCTGATGTGTGTGCGAGTCTGTGAGTCTGTGAGTGCAGTGTACAACACCTTTTGCGGAGTCTTACCACATACTGATACGAAAGTGTTTGTATTTTATATATTTCTTTGCCACGGCACACTCTTCAATTTTTCGCGGGCTCGCCCTGGCCCATCAGTGGCACGCAGTAGAAAAAGTAGTAGAATAACATGCGTTGTGGCCATAGCCCATCCAACTTTGTTACTTACGGACTGAATTCGCGCGCGCCGCGGGGAGGAGAAGCAGAAGACGACGACGACGAGCTCGAAAGAAGACGAGTTGCGCCTCTGCAGTGCGAGTCCCTCGGCAGCGGCACTGCTGCGCCGCGCGCTTCGATGACGCGAGCTCCCCCCCCCGGCGGGAAAGTACGCGATTTGTCACCGAGATGAGCGCTTTGCTGACAGAATAGAATGGGAAACACAGGAATATCGGATTGCAGTAGACATGTTTTGTTGCAAAGTTATGAAAGCTGGCTTGGCGTGGTCGTCGAATTTTTCGCGCTTCATTGACGGGAGAGAAGGGGAAAGTCGTGTTCTCCACTTCACGGAGAATCACACTAAGATTTAGGACTAAAATCGAGCCGAGCCAAAATGGCCTAGTTCTCGGCAGAAACTGTTCCATTTCAATCTGCGAGGAAAGCCAGAGTTCCGTGAACCTCGGCCCTGCGATCGCCGGCCTGCGATCTCCTAGACAAATGGTCACCCCAGCCGGGACTCGGGAAAGTTAGTGCCAGGAGAATAATTTTTGAATTTGAACAAAAAGAGGAACTTGTACAGTTTTACAGCATCTTCAATTGCATCGGCCCAAACGTGTTTGTGGAGCTGCTCGTTGGACAGTTAGCAAAGGTAGGGTTGGTGGAGCACCACGCGATCCACCTGCACCACCACCATTCTCAGGAATACGACCCACCGCAGCACCATCTCATTGCTAACACTGCCCTGGATGCTGCTGCTGCTGTTGCTGCTGGTGCTCTCTGTGCGTCTTTTAGCTGCGGGCGTGTGCTGCTGCCTCCTGCCAGCTTGACTGTGCTAGCCCCACACTCTTGTCACCCTCTTCTCAGCCCCCCACCCCGCTTCTATCGCCCATTCTCTCCACGAATTCTTCTGTCTGACCTCCTCCTCCTCCTCCTCCTCCTCCCAATTCTCATGTCATCGGGGGGCCCGTCGTTTCGTGGAGCGCCGCGCCTGCAATGTCTCGGGCCGCCGCCGTCGTCGTCGGCATCGGGTATCGTGGCCCGTCGTCTTCGGGGGGTGGGTTGTCATCTGCTGTGTTCACAGATGCCGCCGCCTTCACCGCCCATCTCATCGTCTCCTCCTCTCTGTGGACCCGCCGACCGCTTAAGCCCGCGCGCCTTCTCCCATCAGTTCTATCTCTCTCTATCACTCTCTTATCTCAAACCGCGTCAATTTATCTCTCTGGCAGTACTCGCTCTTCGCTCGGCGAGCTGTATTGGGTGTCGGTTTTCAGTCTGCGTCTCCGCGCCCCGGTGCAATGCATATGTTCCATCACGTTCTGCTCCTCCATAACAGGTTGCTCCGTGTGCTTCCGTGTTTTACGCAATTTGAGGTAAAATTGATACAATACAATTGATAATTATCGAAGTGTCCTCTATGTGTACTGACGCTGTTAATTTAATGGCCTAACCACAGAACTATGCTTCTTTAATTTTTGAACTTCTGTCGTAGCTCCGTAGTTAAATCCACTATGAGATTCCTTGCCATACTCGTTTTTGCAATATTTTTTGAGGTTGTTTGTTATGGAGAAAGTTTATGTGTTCTTTGCTTCTTTGGTTATATGGGAACCCAGCTGGCCAGAAGAATGGAAGGTTTTCTGGGACAGAGCTTTTGAATAGCCCACAATAGGGCCCCAGTGCCGGTAGGCAGGCCCCGAGGCCCCTAATTTAGTGCAGATAGTCCTTATTCAGCGTATAGATGATTCAAAGCTAAAATCAAAGGGCTGTTCCATTACGTTGTGATCTACAAAACATGCGGAATTTTTCGCCCTAAAAATGTGACGTCATCACGTTCCATGCGTTATTATTTATGAAGCTACCTCTGCGTCTCATTATCCCGCTTGAAGATCTAACGTAGATCAACCAAGCGCCTTACCCCTAGCCTCTAAGCTCACTACCTAGGGCCCTCTAGGACCTTATTTCGGCTTTTTGGACTGGCCAAGACCTCGCAATTGGGCTTTTAGGCTCCTAGGTCCCTCAAGGACCGTTAGTCTTGGACTATCTGAAACGATCTGCGTCTAGGCTCCTAGGGCCCTATAGGACTATTTAGGCCTCTTGGACTAGCTGACCATCTAGATCCTTCTAGGCCTCTAGGGCTCTCTAGGACCATGTTCACTTGTCTATAGGACCTGACTAGCTAAGACGGGCTTCTAGGCTTCTAGTAAGGGCGCTCCAGGACCTTAGCCCTCTGGACTCTCTAAGACTAATTGGGCTTCGAAGCTCCTAGAACCCTCTAGGCCCATTTAGGCCTCCTGGACGATCAAAGATCTTCTGGGCTTCTTCTAGGCCCCCAATTTCTAGGACCTTCTAAGACACCCAGTCTTTATATTCCCTAGCGTCTAGGCTCTAAGATAGGCCTCGTTTCCGCAATTCCTACTAATGGCTTTGGGAGACCACGTCACTTTCTAAGGCCCATGGACTTCCACAGTAGCTTTTCACGACAGCCATTTCCAAGTTAACGCACTCAAGGACCATTTAAGCCTTTTGGGCTATTTAAGACCCCAGATCTGGGCGATGACTCTTTTTTCTAGGCCTTTTGCCCTCTTGGGCGCTCCTGTACCTTCTAAGACCCTGGCCTTTTATCCCTAGCCTCTAATCCTCTAGGACTCGATTCCGTAAATACATTCCCAGTCCTAGACGCTCTCAGGGCCCCTGGGGTAGCCTTTCGGTTGACCATTTCAAACAGGCCGTTCCGCTCCATCTCTCCTTGCTCTCTCGTGCTCCTTTCCTCCACCATGTTCTCTCATTGTTCTGACGGATGGTGATGAGCATCATCATCCTCAAAGCTCCAAAGACAATTGCCATCAATGTGCCGCCGCTGTGATAAGTGGTGTTATTTCGCCGGGACAAAAAAAAAGGGAAAATTCTCCATGGGAATTTGCGACTAACACCTCCTATTACTGTAAAAAAACATCTGGAGAAGGGGGAAACGAACTAAAAAAAAACAAAATAAAATCGGCGTATCAAATTGAAGCTTCATCATATGATTCGTCGCCGTCGTCTGCTCTGTTCGGCAATGATCGTTTGTTCGCGTCGTCAAACTAACCTACTCAATGTCATAAAGAACAGAGAATGAATTCAATAAAACATGACGAAAAAATAAATACATTCAGGTACTGTAGCTAAATCAGGATCACATCTGGAATCGCTCTCAGCCTGTTCGTTTGTGGGAGCTTGTTGAGTATAGGCCGACCACTACGCCGCCGTCGACAATCCACGACGACATATACCGCCACCGACGACTACGTATGTCCCCTGAACTTTAAAGTTGCATTTTTTTTTAAAGGATTAGGGGTCTTTCGAAATAAATTTCAGTTTTGGTAATTTTTTAAATTTAGTTTTATTTTTTTACGGGCTTTTGCGATTATTACTGCTAGAATGAAAGTATGTACATTTCTTGTAGATCAGCAACTTTAATTTCTGATAACCGATAAATGTTCCGAAAAACTCGAAAAAAAAATAAATTTTTCCAAACTAACTAAAAAGTAAATTTATTTGTACAATTCAAAGTTTGTAATTTTTGACAAAATACATTCAGAAATCTTTTTGGAATAGGGGTTAATTAGGCTTGGGCCTAGGTTTGCGCTTGGGCTTGGGGTCAGGCTTAGGCTTATGGCTAGGCTTAGGCTAAGGATTGGGCTTAGCTGGCTTAGTGCGCTGAGGCTTGGGCTGGGGCTTAGGCTTCAACTTAGGCTCAGGCTGAGGCTTGTGCTGAGGCTTGGGCTTAGGCTTAGACTCTCAGGATTAGGCTTGGGCCTGGGCTTGGGCATGGACTTAAAAATGTTTTGTTTTTCAACAATTTGGTTGTTTTTCGAAACCTGATGGTTTTACCGGTATAAAGTGCCTTTTTTTGTACATAAAAATAATTTTTAAATTTTTTAACGTTCCTAAAAACTAAACAAACTGTAAAGAAAATTTTATTTAAAAAGCAATAAAACATATTCTTTTTCAGTAATTTCAAATTTGATTTCCCGGTCATAAAAAATCAATTTTTTATGCAGTCAGGGCCACAAAAAAAATTCGTTGAAAAAAATTCAATTGGATGTATTCTTCGTGCTTGCAAATTCGAGTCAATTTTCTAGGGATAAAATAGTTGTTTATTTTCCCTGATTTTTTGACGTTTTTTCCTTTTTTAAAGGATATTTTAGGACTTTCTGGGATTTAGAACGGTTTAGCCTAGGAGTGATTAAGACTAGGTTTAAGCCTGAACCTGATGGGCCTTACAAGCCTAAACCGAACCGCCTAAGCCTAAGCCTAAGCCTAACATCAAAAAAACCTGAGAATCCCCTAAATGGCGCAACGTCGAGTAGCAAGCTGATGCTCGCCACTGACACTAAGCCTAAGCCTCAGCCTATAACGAATAACAATTTTGGAACAAAAATTGCAAAATCTCCGCTTCTCCGCTTCTCTTAAGACATCGAATTTCCTAAAAATTTTTAGAAAAAAAAAATCCTCGGTCCAAACTGATCTGAAAATTCTATCATATTTAGGCTTTAACAAATTTCACTTTTTTCTGGGAGAGACACTTTCCATAACACCACAAATTCGGCGAGTCGACCTGTTGAGGATCTTGTCTCGACCCGCTCTCTCTCTAAGTGATTATAACAGAGATCCCACACCCACCCACCCACCGTCATCTATTATGTTCTAGAACTTTATACATTATGATCAAAACCGAATGCTACAAACTACAAAACATCGCCACTTTTTCCAAATTTTCGGCACATTTTTGCAGTCCGACCACAACTACAAGCACCAAATCCATGTGAATCATCGCATCCGTTGGATCTGACGCGTCGGCTTATAGACGGGACACTGTGCCGGCTACAATCTTCTCTATATGGCCAGCGACTTTCCCGTCGTCGGCTCGCAATGAGTTTCCTGATCTCAGGGGTTAGGCTCACATTCAACGGACTATGATCGGGAAGAGGTGCCTCAAACGATAAGTGAGCTCTCAATGCCTACCTGCCTACATGTTTGCAGTATCAAAGATATGATGCCTACAAGCCTACCCCCCTACCTTGTCCTACGAGCCTGAACTTACACATTTTCTGTGCCTAACATGCTCGCTATACTTTTGTCTGCCGTTACGCGCCCCCCCCCCCGCCTATCTGCCTCCAGAAGTCTCCATTTAGTCTTTATGCCTGCACGCCTATCACAGGCCTCCCATTTGCTTGCGGTCGAGTCGATTCATGCCTACGAGCCTGCGCCTTACTAGCCTGAATTCGCATTTTTCCAGTGCCTAGCATGAGTCCCTATGCCTGCATTTACGCGCCTTCTCCCCTAGCTGTCTACAATCGCACTTTCTGCCTACCTGCATGCTTTCCTACCTATTCGCAATACTTAGGCGTACCTAACACAAGCTTAGCGACTACAAAAGCCTTCCAGTGCCAACCAGCTGCATGACTGCGTAGCCTTTCGCCTGCTTAGGTGCCTACCATAATCCTCCCTTTTGTCGATATTTCTACGCGCCCATACCTACATTCCTATCTTGTTTGAATCGATACATATCATGCCTACGCACCTACCTTGGCCTACCTTGGGCCTACACTCCTGAAATTGCACTTTTCCTGTGCCTAGCTCGTACACTATACTTATGCCTGCCTTTAGGGCTTTCTCCGCGCTTATCTGCCTACAAGCATACCTTCTGCCTCCTTGCATGCCTTCTTATATTAGCCTGCTTACCCGAACCTACCACAAGCCTGGCTGCCCAAACTTCCCTTCTGCCTATATGCCTACGCAACTCCTGCCTGCCTATACGTCTACCTCATGCTGTAAACAGACCTGCCTTGTACCTACCTATGCGCCTAAAGATTGGCTGTCTCCTACGTCTGCCTGGCTGCCGGAATATTTTGCCTATAGGAATTACTGTCAGTGCGTCTTTACCCAGATCCTACCTTTAGGTAGACGTCCCCTAAAGCAACCGCCTGCAAGTCTATCACTTCGCCTCACGCCTCCTTGCCTACCTACACACCTCCCTTATCCCGGCTTTTCCACCTGCCTATGCCTATCGCATGCCTACCCTCAAGACCTGCAAACGTGCCTAGCCGTATGCCTACCTAACTTCGCGCCTACATATGCCTCCCTTTCAGATCGAGATTAAGTCGGAAAATAAAACCGGCCAAGGCAGTAGCCTCCTTGCTGGGACGAGGAAGAGTGGGAGGAGGGCGAGACGGAAACGAGCCATCAATGGAAGGATACAGATGATCGCTATCATGCGAGATACCGGAACACGTCATATTTTGGTAGGTGGGTGAACACAGCAAGTGCGCTCCATGGCGCGGGACACTTTTCCCGCGCTTTTTAGGTCAAACACGTAATTTTTCCAGTAATGACTGTGGCGGTGGAATGCGATGATGAGACTGGAGATTTAACAGTGGTGGATACTCGTTGTACTAGGTGCCGTGCTGTTCGACACTTGCCATCCACGTATTGTCCACGTTTAATGAGCTGATTTGCTCGCAGAAAGCGTGTCTGCGAGAGGAAAATGCATACAACGGGTGATGCCGATGAATATGTAATTTTTTTGTTTTTGCAGTGGAGCGCGTTTGTACTCACTCCACGAGGAAATCACGTGGTGTGAGAGTGTCTTTCGGATTGATCTACAAAAAATGCGGTAGAAGAGACACAGAGTTCTCAACTGTGGATTATTAAGAACGTGCTCACGACAGACATTTTTATGGGCAAAAAATAGGCATCCCGCATTTTTGGTAGATCAAATCAATTGGAGAATAGTAAACCTTTTTATTTGAATATGATCCTTTAAAGAAAAAATAGAAATTTGACTGAATTTCCCGCCAAAAAATTTTCGCAGGTAAAAATTTAAATTTCCCGGGAAAATATTCACGGATATCCGGCTTCCCTCATAAATTGAAATGCAAGATTTTTTGCCGAATTAGGCCAGCCCATATCTGGGGTATATTTTGAAAAGGCTGCGTGTCGCGTCGCGGCTCGATTTTAGTTATAAAAGTAAATATATACGCATTGTCCGTGTGGAGTACAAGACTTTCCCACGCGTTGGTGATTGTCAGTGCGAAAAATTCGAAAATGAGGAAGGCGAGAACCTCGTGAATATTTTCTCAAACATTTTGTTTTTGGAAATAATGTGCAATCGCGCTCTAACGCAGTATCCAAAACTTGAGGCTTCTGGCGGAAAACTCGAAAATCAATTTTTTGCTTTAAAATCGTGAAACAGACGAAACTAGTCGCATAATTCAAATTTACGGTATTGCCGCGCCAGTGCGGTGGATCACGTTTGCACTTAAGAAAATTGGTGAAAATCAAAAATTTGGTTTATTTTTGGCAACTATATTTCATTCTCTATTAAATTCATACTGTACACGTGGAAAATCATTGATTTTCCCGAAAATATAAATGGAAGATGCAAGCGCGCCCTATTGTGGTTCGTTAAAATTCGAAGCGTAACTGAAATCGAAATTTTTTCTCGAAAAATTGCAGTGTGCCCGTTGTAAAATATCGTTTTTGGAAAATTTAATATTTAGAAGTGCGGATGCATCCTATTGTGCGCTTCCAATAAACTTACACGCTGGCATGGGATCCGAATTTTCGCGTCGCTTCCATTGACAATCGCCCGTCTACTCCACAAGGACAAGTGCATTTAGTTTTAAAACTAAAATCGAGCCGCGACGACGCAACGCGCTAAATCTACCCCAGATATGGCCTCAGGCCTTCTAGTTCGGCAAAAACTCTTCCATTTCAAAATATGAGGAAGGCCAGAACCTCGTGGAAAATATCGATTTTTCCGTTTCCACGTGGCCAAAGGAATTGCAAGCGCGTTCCAGGAACGTGAACTCGCACATTTTCCATTTTTTGTTCTCCGAAACGTGGGTACACCCGCGAGTGTGCTCGCTGGCAAATGAGCCAAATCGACGTGCGAACGTGTTGTGATTGTATGCTCAATCCGTCATCACCACTGGTCACCTATTTATGAGCGAAAAAACCGGGGAAAAAAACACACAAAGACAACCCAAAACTCAACAAAACAAATAATTTTACAGGATTCAACGAACACAACAAAAAAAAGAAACAATGGCAATTAAATACGGAAGCTGCTGCCAAATATGCTGCCAAATTCAAATTCTCGCTAGAACTTGTACACACGATCTTTATTGAAAACGGTGATCAACGGGCACCCACCACTCTGACCTTTTGAAAATAATTGTTTTAATGATTTGTGTCATTAAAAACCTCGGCCACGGCCGCGACGCCGCCGCTCCGCACGCAGCTGCGTCGGCGGTGGGGTGGATCCTGAACTTATCCCTCCAGCTCGTTATCGTCGTCGACCACCTCGAACAGTTAGCCTCAAATAGAAATCTGAAAAAAATTAATTGGTTTATTCTTTTTGAAAATATATAATTTTATGTTTGGGCGTCTTTGTGGCCTTCCTCATTGCCTTTTTCGCGCGCTCCATTGACAATCGCCCCCCTATGTACTCCAAACGGACTAATCACATCTAGTTTCACAAACGAACGACACGCAACGCGCGTGGCCTAGTTCAGAAAAACTCTACAATTTCAATTTATGAGGGAAGCCAGAAATCCGCGTGCGTTTTATTGATTTTAATTGATTTTTTTACTTTCGAAAATCCCGTTCCGGAGAAGCACAAGGTTTTGCGCGTGTCGGCGATTCGATCCCTCGCTTTACCCCATTATCTGCAAAAAAAAGTACTATTTTTTTTTGTGTAAAATTCCCAATCTGCGAGGGATCTACAAGAAAAATTTTTTGTCCTTTTAATATTTTAATGATTTTTTCAGAGTGATCACATTCTTGCAGATCCTCTTTTCGTGGGGCCTCATAATTTTTCAGTGCTTCACATTTATTTAACATAAAAGTGATTTCTTCATAAAAATTTGAATTTTTTGCCCAAAAATCGAGAAAACCGCCGCTCCGGCTCTTCTTCCGTGCGGCACTGTGCTTTTTGCAAGCTGGGCACAGTATTGTAGGCTTGAGTATGGTCTTCCTTGAGCGCTTGAGTCAACTACGAAAAAAAAAAAGGACTTTCTTTTAAATTTATGTCGGAGATACCACATTCTTGCAGATCAGGGGATCTTTTCGCGGGCTTATTTTTCAGTGCCGCTCGGAAAAAGAGGCGGAACGTCGTGACGCACGGTTTTTTGTCACGATTACAGTTTGACTAAAATTGTTGATTTTGGATCATTTTCGTTGATTTTTTTCGAAGCTGATTTCGGCAAAAAAAAAGTTTTCGCCTTTTTTTGGACAACGAAGAGCCAAAATATCAATAAAAATGAAAAGCTAACTTCATAAATTTTTTAGGATTTTTACATTTTTTTTTTTGAATTGAAAAATGTTTTTTTTAGGTGTTTTTGGTGAAAAAAACTACTTTTTTTAGCTAACAAAAAATATCAAAAACTAAATGACCAAAAATCGGAAAAAAAAAACGCCGCGCCGCCTCTTTTTCCGTGCGGCACTTCGCCATTTGGAAGCTGGGCATGGTTTTGTAGGCGTTGTCATGCTGTCATTACTTGAGCGCTTTGAGGCAAAGACTTATGGGAGAACGGTGATTTAAATCCAAAATTGTCCCGGTGGCGTTCAGGAAGAGACGCGGGGGCTTCTGAAAAAAATTGTTGAAAGATGCAAAAAATCTGAAATTTTAGAGCATTTTTCTGAAAAAAATGCAAAAACCGAAATTTTTGAGCATTTTTCTGAAAAAAACGCTAAAACTCTGGAAGCGCATTTTAGATCATTTTTCTGAAAAAAACGCTAAAAATCTTAAAATTCTGAGCATTTTTCAAAAAAAAGATTCTTGTGCACCTCTGTGAAAACTTCATCCATGATGGTAATTGAAAAATAACAACTGTCCAAAAGCATCGAATTCACAGTGTCGAGTTGGAAAACGCCGACATCTTCGACTACCCTAAAATGCTCATAATGGGGAAAAGCTCTAAAAGCATCGGTGGGCTTCACGCATTCCTCGCGTTGTGTTCGCTCCATTCACAATCGCCCCCGTGTACTCCACGCGCACAAGTGCATTTAGTTTTAAAACTAAATCGAGCCGCCGACACGCAACGCGCCGTAAATCTACGAAAAAAAAAAGGCTTAATTGTTGCTGAAAAATCGATAAAACACGTTAAATTTAATCAGAAAAATCAATTTTCGCACAATAAAATTCGCAAAAAAAAAAAATGAAATTTTTTCGCTCATAAAATTTGGCGATGCTTCAGTTTCGTCTTAGGTTCACCGACCCGAAAAATCAAATTTGACGCGCAAAACTTGAATTTTCGATTGATTTTTGATGAAAAATCGATAAATTACGGTCAATTTAACCAGAAAAATCAATTTTTAACGAGAGAAGCCAGAAATCCGTTGAAAAAGTAAAAAATCAAAACACAAACATTCGAGAGAGTCTCTACAGATGACGGAGACAGGGAACGCATTTTTTCAGAATTTTTCTGCAAGTTTAGGTCCAAAACTGACGAAATAGAAGACACTCCGGGAGCACACTGGCAATGTCATGAAAAAAAATTAATTAAATGCTAGATTTTTAGCATTTTTTCAAAAAAAATGCAGTAAAATTTCAGATTTTTAGCATTTTTTTCGGAAAAGTACACTGAACATCATTTCAGATTTTTATTTATTTTTTTTTGAATGCTACAGACCGAATAGTTTGCCAGGCATTCGAGGAGGAAATCGGCGATGAACTCTGCCACGTCGCGGCATTCGATGGGCGGGGGCTGAAAATATGCAATTTTTTGGCCTAAAATTTGGTTTTTTCTGGAAAATTCTCTTACCCCGATAATGGGAAGGTTTTCGTCTGCGGAATGCTTAAACTAACATACAGCCCTCGGAGCAATTCTCCACGAATTGGAGCCACCTCCTTGGCTTAAGTGAGAGATCATAGATGAAACTGAGCCGCTTCACCATTACGATGCTCTTGCAGCGTTCACGAGCGTTCAGCGTGTTTTTCCAGGATACTCTGAAAAAAGCGCTAATCCTTAATTTTAGCCAAAAAATCCATTACTCAATTTAGCAAAACAATCCGTTAATTTTAGCCAAAAAATCCGTTAATTTTAGCAAAATCCGTTAATTTTAGCCAAAAAATCCGTTAACTTTAGCCAAAAAATCCGTTAATTTTAGCCAATAAATCCGTTAATTTTAGCTCAAAAAATCCGTTATTTTAAGTCAAAAAATCCGTCATTTTTGCCAAAAAATTCGTTATTTTTAGCCAAAAGTTCGCTAGTTTCGGCCAAATATAATCCGTTAATTTTAGCCAAAAAAAACCGTTATGGGGTTCCAAAAAATCCTTTAATTTTAGCCACAAATTCGATATTTTTAGCAAAAAAAATCCGTTAATTTTACGCAACGAACCGTTAATTTTAGCCAAAAAATCCGTTAATGTAAGTCAAAAAATCCGTTAATTTTAGCCAAAGTACAAATCCGTTAACGTTTAAGTCAAACCATTTTAGCCAAAAAATTCGTTAATTTATAGCCAAAAATTCTAGTTTCAGCCAAAAAAATCCGTTAATTTTAGCCAAAAAAGAACCGTTATTTTTAGCCAAAAAATCCTTTAATTTTAGCCAAAAATTCGATTAGCAAAATCCGTTAATTTTAGCCAAGAATCCGTTAATTTTAGCCAAAAGTCCGATAATTTTAGCCAAAAATTCGATATTTTTAGCAAAAAAAATCCGATAATTTTAGGCAACCGTTAATTTTAACAAAAAAATCCGTACTTTAATAGCCAAAAAGAAATCCGTTAATTTTAGTCAAAATATCCGTTAATTTGCCAAAAAATCACCACGTTAATTTAAGTCAAAAAATTAATTTTAGCCAACAAAGACCCGTTATTTTTAGCCAAAAAATCCGTTAATTTTAGCCAAAAATTCGATATTTTTAGCCAATTAAAATCCGTTAATTTTAGCATCCGTTAATTTTAGAAATCCGATATTTTTAGCAAAAAAAACCCGTTAATTTTAGGCAAAGAACCGTTTAGCCAAAAAATCCTTTTATTATAGCCAAAAAAATATTATGTCAAAAAATCCGTTAATTTTAGCCTAAACAAATCCGTTAATTTAAGACAAAACCGTTAATTTAAGTCAAAAACTAATCCGGTAATTTTAGCGAAAAAAGAACCGTTATTTTTAGCCAAAAAATCCTCTTCGCCAAAATTTCGATATCTTTAGCAAAAAGAATCCGTTAATTTTAGCCAAAAATCCGTTAATTTTAGCCAAAAATCCGTTAATTGTAGCCAAAAATTCGATATTTTTAGCAATAAAAAATCCGTTAATTTTAGGCAAAGTTAATAGCCAAAAATTCGATATTTTTAGCCATAAAATCCTTTAATTTTAGCCAAAAATTGCTAATTCTTTAGCAAAAAATCGCTATTCGGCGTTTAGCCAAAAAATCGGCGTTAATTTTAGCCAAAAAATTCGCTATTTTTAGCCAAAAAACTGTTAATTTTAGCCAAAAATAGACCGTCGATTTTAGCCAAACAATTAGATTATTTTTAGCCATAAAATCCCTAAATTTTAGCCAAACAAATCTGTTATTTTTATTAAATAATTCGTGAATTTTAACCGGAAAGTCCGTTATTTTTACTACAAAAATAGCGAATTTTCGCCAATTATAACCAAAATCTCTCGATTTTTTGCTCAAAAATGCACCTAATGTGCGTTTTTCCTTTTTTTTGGCAGTTTCCCTACTTCAATAGCGAGTTTGCAGGCACGTCGTCGTGCAAATTTTGACTTCGATTGCAACAGAATCCAGCAGAATTCGATCGTCAGTCACTTAATACATTCCAAACAATTTTCAGATCCTTTATGGGCACTTCGATGTAATCTGAGAGAGCAAACACGTTAGAATTGCCAGGGTTTACAGCCCTCTTTTAATCACCATCCAACTGGAACGCGAGGTCCATCTTTGGCTGCCATACCTTCACCCGCTCGCCGCCACCCTTGCAAATGTTGTGGATAAATTGAACGGTTCACTCGAAATTCTCCAGATCGCCGTGCTCGACGAGCGCGTTATTCGATGGGTGTGCTCTTTCCGGCTTCTTTTCCTTCTGAAACTGCTGTTTTTCCTTTTTATTTTTTTATGTCGCAAAATTTTTTTTCCGAATTTTTCACGGCACCAACCTGAACAGCGAATCTTCGAAAAGAGACGAAGCGATTTTGGGCTTTTCAAATTTGAAAAATTCAAAGAAGTTGTCACGGAACTAGCCATTTCGAAGTCGAATTGATTAAAAATCAAAAGCAAAAAATTTCGATAAAAAACAGTGTCCGAGAGGAGTACACGCTTAGCCGGGGAACCATGCGCGGGACTCGCACGGAAGAGACGAATTGAAGAACAGCTCGTAAATCCTGTTCCACGCTTTTTTTTTAATTTTTTCAATTCTACTTTTTTCCCAGAAGTTCTTGAAAATATCCTTTTGCAAATTTTTCGGAAAAATGCTCTAAAATTTAAGATTTTTAGCGGCGATTTTTTTCGGAAAAAAATGTTAAAATTGCAGATTTTTAGCATTTTTTCACAAGAAATGCACTAAAATTAATATTCTTAGCATTTCTGCGGAAAAAATTAGCTAAAAATCTTGCACATCAAAGACTGAAAAGAATTTGTTGTAATATTGCATGGATGTTCTGAGGTTTTACATCAAATCTGGGTTCCATGAAATTTGACGTTTTTCACTGAAACATTCTACAAAAATAATTTCTGCGCTCTCGCAAAAGTTAAGATGAAATAATCGCCAATTTTTCAATAGTGCACAGAAACCGTCAGATTTTTAGCATTTTTTCGCAAATATGAAAATTTTAGATTATTAGCAATTCAGAATGCTCTAAAATTTAAGATTTTACCTTTTTTGAGAAAAATTCACTAAAATGCAAGATGTAACTTTAAACATTTTTTTGCAAGAAGCTCTAAAATCAAAGTTTTTTAGCATTTTCTTCGGAAAAATGTTTGAAAATCCCTTCGTTAACGCCTTTTTCGCACTAAAAGATGCTCAAACTAGTTTAAACTTTCAGAGTTTTCCCATGCTTTTGCCCCCTCCACTTCACAAGAAACAATGAAACGAATATGGCGGGATAAAAGCGAAAATTCGGGGAAAACATCATTTTCAATGCATTTTTCATCGCGAAAGCCGAATTTCATTAAAAATGGCCAATTTTTGTGCCAGGTTTCCCAATTAATCTTGTATTTTCGATTAACTCAACCCCTGCGCAGAGAAAATCACAAAATGCAATTGTTTGTGTAAAGCACTTCTCTGCGCGTTTGCGGCATCCGATATGACGAGCAACATATATCTTTTTTCTGGAGCCCTTTATTTTAAATTTATCATTTTTCATGCATTTTTTGAGAAAAAAACTCCCCCAAAATTAACCTAGAAGCCTTGGAAATGAACTTGAATTTTGTGAAATTTGACGTTTTTCAGCGAAAAATTCTCAATCTTTAGTGCATTTCTGCCGGAAAAATGCTAATAATCTTGAATTTTAGTGCTTAGTGGAAAAAACGTTAAAATCAAAATGAAAGAATTTGAAATAAAATCAGAGGCTTTAAAATTTAAGATTTTTAGCATTTTTCCTGAGAAAAGCTAAAAATCTAATTTTTATAGCTTTTTTGTTGAAAAAATGCTAAAAATCTTAAATTTTAGCTCATTTTATTTCAAATTCGACATTTTCATTTTGTATTTAAGAAAAAATAACCTCAAGGTCTGAAAAATATCGAATTTTGAATGAAATTTGACATTTATCAGCGAAAAATTCTCATTTTTCCGGAAAACATGCTATCTTGTAGTGCATTTTTCCTGAAAAAATGCTAAAAATCTCAATTTTTAGTGCATATTCCCGGAAAAATGCTAAAAAATAGTTCTTAAATTTTAGAGCATTTTCCAGACAAAATGCTTAAAATCCTTTTCAGAGAAAGGCTTTATTAATGAAAAATTGCGCTAAAAATCTCTCTAAATTTTAGAGCATTTTTCTCGAAAAAACTTAAAATCTTGAATTTCAGTAGTAAGCATTTTTTTCGGAAAAATGCTAAAAATCTCAATTTTTAGTGCATTTTTCTGAAAAAATACTAAAAATCTTGGATGCTAGTTTTAGAGCATTTTCGCTGAAATATAACAAAAATTTTAAATTTGCATTTTTCCGAAAAAAAAAACGCTAAAAATCTTGTAATAACTGACAAATTTCGAATTTTGAGTAAATTTTATGGCATGTTTTTCGAGGTTTTTCCTTGCAATTTGTTTTCACCTAAAAATTCGACAAAAATGAGCATTTCTGAGCTCTTATATGGCAAAAATTGACAAAAATCGTCAATTTTTCAATAAAAATTGCCCAAAAACCTTAAAATATTCTGAAAAAAGCCGAAAAAACCCCATTTTTTAGCCATTTTCTATAGTATCTTACATTGTTCTCAACTTTCTTCACCTAAAATCGCCGGAGATATTAACATAAAATACCCTTTTTTTTCAGCGCAATGGATTATGAGCCAGGAGGATGAAGCAGCGAAACCAAGATCCGAAGATTCGCGATTGGTAAAAAGTGGGGATTTCCGTGAAATCAAACTCGATTTTTTGTGAAAATATAGAAAAAGCATGAGTTCACAACTGCTCCAAAAACCGAAAAATTTCACTAAAATCTAGAATTTTTGCCCGACTCGAAAACATCAAACGCAAAAATCGCCAAATTTGTGAAAACTAGATTTTTATTTTTAAAAAATTCTAAAAGTTCATAAAAATCAAAAAACCGGATTTTTTTTCTTAAAAATTCTGGAAAACTGTCTAAAAATCTACTCAAAATCAGTTTGTAGAAAATCTGAAGAATAGTCTAAAAAGAATTAATAAGTTGGGAAAAAATTTGAAAAATTACGAAAAAAATCAATATAAAATCGGTTTTGAGCTTGGGAAAAAAAACCCTGAAAAATTGTCTAAAACTCTATAAAAAATTGGATTTTTTAAATAGAAAATCTCAAAAACTAAGAATCAACAAAAAATCGAATTTTCCGGTGGGTGAGAAAACCTGAAAAATTATCAAAAACTTGGTTTTTATCAGAACATCTGAAAAATTACCTAAAAAGCAATAAAACATCAGGGGGTTTTTTTTCTGGAAAAACTGTAATATAGCCTAAAAAGCAATTTAGAAAAAAGTTTTTTTTTTTATAGAAACTACTGAAAAATTATCAATCAAAACCACGAAAAAAGATACATCTTTCGCTTATGTCCAAAAATCCCAAAATTTGCATTAAAAACTAGATTTTTCCGTATTTCAAAAAAATTCAAATTGCCTGAAAATCAATAAAATTGTTGTTTTTTTTTGGAAAGAACAACCCAAATTGGCTAAAAATCCGCAAATTTTTATGCAGCTCAAAGAACGAGAACTCAATGGTCGCGAACCATCAAGCTTTTCTGCCTCCTGGGAGCCGGCGACTCTGGAAAATCGATTTTACAACCAGATGCGTATCATTCACGACGTAGGATATACGTCTAAGAGAGAATAGTGTTCAGAGGCTTGTGGAAATATTATTTTGGTCAGTGCTCCGATGCACTGAACAATTACCGGAAATTGGCAAGACCAAAATTCGTGGATTTTAACCAGAAAATCCGAATTTTAATCAATAAAGGCTAATTTTAGCCAAGCAAAAATTCGCTATTTTAACCAAAAAATCCGTTAATTTTAGTCAAAAAATTCCCTCATTGTTAGCCCAAAAATCGCTATTTTTAGCCAAAAAATCCGTTAATTTTAGCAAAAAATGTCGCTATTAGCCAAAAAATCCGTTAATTTTACACCGGCAAAAAATCCGTTAATTTTAGTCAAAAACTAGCTCCGCTACTTTAACCAAAACATCCGCTATTACCAAAAAATCCGTTAATTTTCGGCAAAAAATTCGCTACTTTTAGCCAAAAAATCCGTTAATTTTAGCCAAAAAATTCGCGAATATTTTTAGCAAAACATCCGTTAATTTAGGCAAAATCGCTCATTTCTAGCCAAAATATCCGATAATTTTAGCCAAAAAATTCGCTATTTTTAGCCAAAAAATTCGCTGTTTTTAGCCAAAAAATCCGTTAAATTTAGACAAAGACAAATTATTTTTAGCCGCACGACAATTCACCAATTTTCGTTTAAGATCCAATTTTTGACAAAAAAATACACCGAATTTACTCAGACGCAAATTCTCCCTTTTATGGCTAAAAAATGCATAAATTACACAATTAAACCAAAAATTACCCAATTCCCAAAAACTCTAATTTATTTACCAAAAATTCTCCTATTTTTTGTTGAAAATTCTCCAATTTTTTTGCCAAATTTTAACAGAAAAATCTATAAAATATCAGGCGAACCTAATTTTGGTCAAAAATTCACCTATTTTTGTTCAAAATTCTACTCACATTTTACCCAATATCCACCAAATTTTAACAAAAAAAGCTAAAAAATTATTCAAAAACCTAATTTTCGCCCAAAATTTTCCATTTTTACTCAAAAATTCCGATTCTCTTTTTAACCAAAAAATCTAGAATATTAGGTGAAAAATGCCTAATTTTGGCTTAAAATTCACCGATTTATGGCAAAAAAAAGCCTCCAATTTCTGCTTAAAACTTCTCTGCTTTTTACCAAAAAACTCTAAGATATTAGGCGAAAATCACTAATTTCGGCGAAAAAATTACCAATTGACAAAAGAAACTCCAATTCCAATCACACAAAAAGTTCACAAAATTTACTCAAAAATTGTCTGTTTTTCACAAAAAAAAAACCTACAAAATTAGGAGAAAATTCACATCAATTGCCAAAAAATCCCTAATTTTGGCCGAAAAATTTGCCAATTTTGTTAATTCAGTCCAATTTTCGACTAAGAAAACCACGTGCCATTATTTTCAGCAAAAAGTTGACCAAGTTTACTCAAAAATTGATACAAAAAAAGTCTATTAGGCGAAAGATCCCTAATTTAGTCCAAAAATACACCGATTTTTGACAAAAAAAACTCTAATTTCAGCAGAAACTTCAAAACCATAGCCACAAGTTCACTGTTTTTTACCAAAAAAATAGAATATTAAGAGAAAATCCCTAGATTTGTCCAAAGAATTAAACAAATGCCAAAAATGCTCTGTCCGTTTTTTACCAAAAATTCTAGAATGAAATTTTTTAGGCAAACAACATCCCTAATTTTTCCCAACAAATTCACCGAATTTAATCCAAAATGCTCTGTTTCAAAAACTCTAATTCCAGCACAAAATTTACCAAATTATAGCCAAAAACGCTCTTTTTTTTCCAAAAAAAATCTAAAATAGCTTAGGCGAAAAATCCCTACAAGATTTTGTCCAAAAATTCAGCAGATTTTTGACAAAGAAACCTCTAATTTCAGCAGAAACGTCACCAAACTTTCATAGCCAAGCAAATTCACTGTGTTTTTTACCAAAAAAATAGAATATTAAGAGACAATCCCTAAATTTGTCCAAGAAATTAACCAAATTATAGTCAAAAATGCTCTGGTATTTACCAAAAATTCTAGAATATTAGGTAAAAAATCCGTAATTTCCCAAAAGATTCACCGAATTTACTCCAAAATGCTCTGTTTTTGACAAAAAAAAACTCTAATTCCACAGTCAAAATTTACCAAATTATAGCCAAAAATGCTCTTTTTTTTCGAAAAAAAATCTAAAATATTAGGCGAGTGAAAATAATCCCTAATTTTGGTCTAAAAAATTACACCAATTTTCCCCAATTTAAGCTTAAAATGTTCAATTTCTAACCAACAAAAAAACTCCCAAATTTTAACCCAAAAATTCCCTCGAATTTCACCCCAAAACCGTCCAATTTTCCAGTCTTTCAACGCCAACACAGGCTATGGAGCAGTTAAAAATCAGCTTCACACACTCGATAATCAGATGCCCGAAAGCTTCTAATGTTCAGCACAACAGGCGAAGAGGATGAGCTGTCGAGGTCGTCGGGCTCATGAAGCGTGTTTGGTTCGGGAATTCAGAAAGCGCTCGAAAGGTGGCGAAATTTCGCTGAAAATTGAGAAAATTCGAGGGATTTTCGCTGAACATCGAGAAATTTCGGTGGAAATTAGCTTATGTCCATGAAAAAATCGTTAAAATCCCAGAAAATTGCGATTTTGACTATTTTTGAGCATTTTTCGCCTTTTTTCCATGAAAAATTCAACGAAATCTTTAGGTCATACTCGCTCTCAGGAAAATTACCGCGTTTTTCGATGAAAAATTCGTTGATATTCGTTGAAAATTATCTATTAGAGATAATTAAAATTTAAAATTCCAGACAAAAAAATATTTTAAAATAATTCGAATTATTTTTGGCTCACACTTTCAAAAACCTCTAAATTCTAAAAAAAAAATTTTGGAGCCCCTTTTCCGGTCTAGAAAATATTTATTACCCAATGATCAAAATCCGGGAAAATTCAGAAATATTTAAGTTTTTGGCTATTTCTGACCTCACTCTTACTCCCACACAAAAATAGTTTTACCAAAAAAAACGGTAACAATTTTTGTCAAAAATTCGACAAAAAAAGTACCTTTCTGGGAAATATTTTTAATAATTTTCCCCTGTTCCGAATATCGATGTGAAAAAATTCAGAAAAATTTTCCGCGATTTTATATGATTTTTTGAAAATTGAACAAATTTCAGTTTTCCCCCCTAATTCCTATTTTAGTTCAATTTGATTTGTTCGATGGACTTGCACACGTTTTTATTAATCTATTTTATTTACTTTTGTTGATTTTTCCACCTCCCGATTTTTAATGTTTTCGGTGTATTTTTGCTTGAATTTTAGCACTGGGAAAAGTCAAAATAAATGCAATTTTCGATTAAAAAGCACGCTGCCCGGCGTAAAAATGAATAACGACTTTAAACGATTTCAAACCTGAATTAATTAATTTCACTGATTTGCGCATGTACGCGTTCGTAGATCAGTGAAATTAATTAATTGAGGTTCGAAAACGTTTACGGGCAAAGCACTTTTTAATTTTTACGCCTGTAAAGCGTGCTTTTTAATCAGAAACTTGCAATTATTTTGACTTTTTCTATAAAATTCAAGCAACAAAAAATACACCGAAAGCATCAAAAATCGATGGAAAATAACAAAAAATAAAATTCTTTAAATAAATTTAAAATTGCGCGAGCGCGCTCCATCGAACAGAACACCGCGGTAATTCATATAGGAATTAGTCAAAGACTGAGATTTTTGAGGCACCACGTTACGGTTTGAAAATCTGTTCCAAAAAGAAGTTCTACGTTTTCGGGATCTGGCACCGTGGCAACTGCGGTTTTCTCGATGAAAAACGTAACCACGATGCGATGTTACGCGTCGCGTGTTGTTTTGCGTTCAGAAAGTACATTTTTTGAAATTTTCTTCTTGATCCTGAGAAACGCTTAACGACACGCAACGCGTAACAGCGGAGCATCGATGTTACGTTTTTCATCGAGAAAACCGCAGTTGGCACGGTGTCCGATCCTGAGAACGTCGATCTTCCTTTCGTAGATTTTCAGAATGTAGATCTTCTTTTGGTAAATATTCTTTTCGTAGATCTTCCTTTCGTCGATCTTCAAAATGGAGATCTTCTTTTGGTAGATCTTCGTAGATCTTCTTTTCGTAAATCTTGTTATTTGAGCGTAGATCTTGCTTTTTGAACAGACGATATTTAGAACGTGGTGCCTCTGATCAAATTTCAAAAAAGCATATAAAATTGAGAAAATTTCCACGTTTTGAATTTGTTTATCAGCATATTTGGTCATTTTGGTACCATATACCCCTTTCCCCTGATTCCGAACAATGTGAAAAAATCGCTTCAAAAAACAAATCCCTGATTTATATTTACGCTTGAAATTGCGCCGAGTGATGTCAAATACGCGCGCATAAATAAATTCTCGACTTGGAGCGCGTTTGCCTCATTTAATTCCTTCTCCATATTTATTTTTACTTTTTTTTCAGTTTTTCACAGCTATTTTCATTCATTGTTATTGTATTTTATAGGTTTTTTTTATTGAAAAATAAATTTTTCCGTGTGAATTGAAACATTATTTGCATAAAAATGAATGAAAATAGCTGAAACACTGGTCCCAATAAAGTAAAAATATAAATGGAGGAAAATTAAATGAGGCGAACGTGCACCAAGGATAATTTAACGCCTTTGGGCGCGTAAAAAATCTCATGTAGTAGGCATGAAATTTAGGCGATTTCTAGCTTAATTATAACAGGGCGAAATTTTTTTTTTGATTTCATCGATATTCGAATCAGGGGAAAATTTGGAGACCTGTAACAAAAGTTGTGTTATGAAAAAAAAATGTATAATTTCTAAGGACAACTTTTTTTTTGTAGTTCTGATCACGCGAATATCACCTCAACGATTCGGCCGTCTGCTATCAGGGCAACGCGACAGGTGCTCCTAATTACATTCCCACACAGGTATTTTTCAGTGGAAAATTCACAAATTTTTCCACTACTTAAAATTCAAATTTCCTTTGCAGGATGACCCGCCCAAGAATGAATACAACAGGAATCTTCAGGAGACGCAGTCGTTGTCAATACAGATCGCCTATTTTTGTAGATGGGGGAAAACTAATTTTACAAAATTGAAAAAATCGTCGCCGAAAAGGTCTTGAGGGTTTTCGACGTTGGTGAACAGCGGTCCGAACGAAAAAGGTGGATTCATTGCCTCGAGGACGTGACGGCACTCATTTTCTGCGTTGCACATATGTCAGAATATGATATGGTTCTTGTCGAAGATTGGCAGTGCGATTTTCGAGTTTTTTGCTTTTTTTTCGTTTTTTTCCCAAGTTTAGGCTACCGTTTTTAGGTGAAAATCTCGGTTTTCTTGGTTAAAATGGTTTTTTTTTTGGCAAAAAACGCGCAAAAATTGAGGATTTTAGCGTGGCGTAAAATTGAGTTAATTACATGGAAAATTTCAGAAATTGAGTTAAAATTGTAGTTTAAGGATTTATTTTTGTGATTTTCTCGATTTTTGACCGTCGAAAACTGTTCGGAGTGAATTTCATTTATTACGCGCGACCACAAAATGCTGTGAGACCGCGTATTGCACAACATATTTGACGCGCAAAATATCTCGTAGCGAAAACTAAAGTAATTCTATAAATGACTACTGTAGCGCTCTGTCGATTTACGGAAATCGTGTAATCGATAAAGTATTTTGTTTAGAAAAAACACAAAAATGACAAAAAAATACGAAAATTGAATTGTTTCGAATAATCGGGTCCCGATCCCGTAAATCGACACAGTTGCCATTAAATTAAATGAAATTAATCATGTGTCGATTTACGGGACTCTCAATTGATATTCGAAACAATTCAATTTTCTTTCGTTTTTTTTTGTCATTTTTGTGTTTCTAAAAAAAGTTATACTTTATCGATTAATACACGATTTGCGTAAATCGACCCACAATGAGCTACACTAGTCATTTTCAGAACTACTGTAGTTTTCGCTACGAGATATAATTGCGCATCAAACATGTTGTGCATGACGGATTCTCAGCATCTGATTTTGTGGCAAGTCGCGCGTATTGAAAAGCTAAATAATCGATATTTTCTGATTTTTGCGCCGAATTTAATTTTTCTTGTTTTTTTTTCTGCGAAAACCACATTTTACTGACTAAATTCAGGTTCATCCATTTGTGCAAAAACTCCGTCGACGAAAGTGTATTTTAGCGTACTTTTAATTTTAAATTTTTTTCGCTCTGAAAATTATGAAAACAAAATTTTCTCGATTTTTGAACCGAATAAAACGTTCAAATTTCAATTTAAATCGAAATCGGGAAAAAATTTTCCGATTTTTACACCGATGATTATCGCTAATTTTTCCCACACCACATTTTTTGCGTTTCAGAATCGTATGCTAGAATCGCTAAAACTGTTGGACCGATTTGCAACAATAAATGGTTTGTCGAGAAGTCGATTATTCTATTTCTCAACAAAAAAGACTTATTCGAAGAGAACATCGTTAGAACTCCACTCATGCTTTCCGGAATATACGGGCGCCAATAATTACGAAGAATCTGGGTACATTCAACAACACTTTGAGGATAAATGAATAAGAGGACTCCTGCAGAGAAAGTTGGTGGTTTTTTTGAATTCACTGCACTTTTTCTCCTCACGAGGGGACGAGGAAAAGTGGTTTCTAGGTAATGGCCGAGAGGCCGACAAGTACTTTCCAGCAACATGGCCAGCGCATTTAATCTTCACGAGCTTTGTTTTCCGCCTGTTTGCGTCTTTTTTCATCGATTTTTTTCGTTTTTTCGTGAGTAAAACTGATAGAAAATAAGTATTTTTTGCCGATGCTAAAACAATTTCCCTCAAGTAAAAAGATCATGTATTCAGGCGGCAAGCCGGGTGAAATGGGCATTGTATGATGGATTACGGGAATACAAAACCTAAACTTTTTCTGAAACATGAAACATATGATGCTTAGATGCTGAAATTACTTGATTTTCATAACGAGCGGACCGGACCGCTGAAAAGTTTCGGGCTCAGGTTTCCACAAATCAACTTTTTGTGCGAAAAGCTAGACTTTTTCACCACAAAAAGTTGAATTTTGGAAACCTCAAAACTTTTCAGCAAGGCGGTCTCGTTATGAATATCAGGTAGTTTCAGGATTTAAGCAGCATATGTATCATGATTCGGAAAAAGTCTAGGTTTTGTATTGCGGTAATCCATCATATTGATTGCACATTGTTTCTCCGTAATCTGCTTGCCCACTGAATGCATAATTTTTTTACGTGGATATTGATTTAGCATCTGCAAAAAATATTTATTCATCAGTTTTATTAAAAACGAAAAAAATCTGACGAAAGCGGGAAAACAGGCGGAAAACAAAGCAAGATAAATGGCAAACTTGTCGGACCCTCGGCCATGGCGTAGAAACCACTTTTCCAAGTCGTCCCTCGTGAGGAAAACCATGTTGAAGTGAGCAAACTCAATTTTTGAATTTATTTTTCATGGAAATCGGAAAATCTTCAATTTTTCCTAATCAATGCCATCTCTACAGAATCAAGAAATCTACACCCAATTCATTACGTGCCACCGACACTAACAACATTCGATTCGTTTTCGATGCCGTCACCGACATTATCATTTATCGAGAAAACCTCCGCACGTGCGGGCTCAAATTTTTCCGCTAAATTTTTTCCGTTTATTCCCCCAATATCACCTCCGAGACATTTTCCAGTAATTATGTCACTGATTGCCACACACAGCCCTCCTCTCCCGTCTCCGCTGTGCAATGCTACGGATTCTCTTTTTTTTTCTTTTTTTTTCCTGAAATTCCAAGGGTGTCGTTGAAAATCGAAAAATTTGAAAAATTTGGGTTCTAAATTTTAGGAAAAGCCAAAAATACAATTTTTTTGATTATTATTCCGGAGAATTCGAAAAATTTCGATATTTTTTAAATTTTTTACAAAAAATTCGAACAATTGCGTTGGATTTTTTCAGGAAAAAGCCAAAAAATTACAATTTGTGTTTAACAAAACGAAAATAAACCAATTTTTCTGATTTCCGGAAAAATCAAAAAATCTCGATTATTTCCAGAAAAATTCGAATAATTTGGGGCTTTTTCAAAATAAATCTTAAAATTTGATTTTGTCCAGGAAAAATCGATAATTAACTGTTTTCTTTTTTGGCTTCTTCCGGAAAATCCAAAAATTTTGCATTTTTTGGATTTGTTTTCAGAATTAAAATTGGAAAATGGATTTTTCAGGAAAAAGCCTAACAATTTCAAAGCTTTAAAAAAACTTTAACAAATTGATTTTTGAGGAAACAACGAAAAATTTTCCGACATCTTACGTTGATTTTTTTTTTACCGAAAAACAAATTTATTTTTTCCAGGAAAAAGCGAAAAATTTTCAATTTTTAAGGAAAAACTCGAACAATTTAGCCTGATTTCGAGTTGATTTGCGTTTATTACGGAAAAATCGAAAGTAATTTTGGTTTTGAGCTTAGAGTGAAAACCCATAAGTTCAATTTATTTTTCAGAAATCCAATTATTTCAATTTTTGAATTTATTCAAAAAAAAAAAATGTCGATTTTTTCCAGAAAAATCGAAATTTTTCGTTTTTGAATGAAAAAAAAATTTTCCTTCAATTTTTCCTTTAAAAAAAATAAATAATGTTCGAATTTCCATGAAAAAAAGTCAAAAAAATTCAAAATTTTCCATTTTCCCTGAAAAGTCAAAATTTTCCGAGTTTCCTAAACTAAAATCCCAATATATTTTCCGGATTTTCCAATTTTCTCTGAAAAATCGAGGATTTTTTCCCGCACACCTTACCCTGCTGTTCACGTGGTGGTCAGGTTGTCTCATTTTGTGATCTACAAAAAATGAGGCCGGAATCTTTCCTCCCCCGGGAAAATCTGACGTCAGCGCACTCGTGTAACCATGCAATCCCCTGCTGATAAGTCTGCGTCTCTTCTCCCGCCGCATTTTTTGTAGTTCAACGTGTAGATCAATAATGAGACCTTGACACCACGTGCCGAAAGCCTAAACCAATATTTTACCGGTAGCTTCTGGCATCTCTACAACCACTGTCTGAAATATCGCGTCATTTTATATTATTATTATTTATTGTATTCGCTTGAACGGCCAAACAATTCCGCCATTTGATTCAAAAAGTAAACATTTCCGAACTTTTTAAAAATTTGAAAAATATTTTTAAAAAATTGTTAGCGTGAAAAACTTGTCCCCCCACCCTGCCTCTCCATAAAAATTAAGTTCGGAAGAATTCAGTCCTTGTTGTTGTAAATTGACGCAATGCGCTTTTTGGTGGTACCTATTTTGCATATTTATCGTCACTTGCGTACGCGAGGTATTGATTCAGATTCCGTCAGTTTTTTACAACAAAATATCGCTAAGCAATCACTCCAGCGCGAAACTTCAAAAGCGAGAAAGGCCAAAATGTTTTGCGTCGCTTTCTATGATTTTATGACGAAAAGCGAGGAAAGCTAATAAAAACAGCGAAAACTTTGCCAGGAAATTTACCGGTTTGCCGCTTTTTTTGCGCTAGAGCGCGATTGCTCACTGAGTTCAAGCGCCCTTCTTATTTTGAAATAGAAGAGTTTGCCGAATTAGGCTATTTTGGTGCGGCACGGCTGGGGTCAATTTACGGCGCGTTGCGTGCCGCGTCGCGGTAGGTGGACCACGCCTTTACCACGCGTAGACGATTGTCACTATAGAGCGCCGAAAATGTAAGGCCAGAAGCCGGTATGAGTGAACTTTTTGTTCATTATTTTTTTTTTCGTCGTTTTTAACGGTTTTTATGTTAAAATCAATAAAAACGGCGAAAATAATTAAGCAAACGATATTCCGGGTTTGGCGCTTGCTTTGCGCTAGAGCGCGGTTGGAGTGCTCACCGAGTTCAAACGGCGCACTCTGGCTTAACTACCCTATTTTGAAATGGAAGAGTTTATTAGGCCTATATTTTGTCCGGTCGGCGGGTAGATTTACGGGGCGTCGCGTGTCGCCCGCGGCTCGATTTTGATTGTAAAACTAAATGTATTTGTCCGTGAGGAGTACACGCGACTTTCCCAATGCCGCGTTGTCCAGCAGGTTATTGCCAATGGAGCGCCGAAAATGCAAGGCCAGAAGTCCGCCGTATAAGTAGCCCATGAATGAGTGAAGTTGTTGTACATTTTCAGTGCACTTTTTGTTTCGTCGTTTTTCTGGTTTTTATGTGAAAATCTGGCACAGTCTCCTGTCATCGAAAGCGCACAAAAAACTGCCTCGCGTTTGAGGTCGCGTTTTTGCTAGCGCATTTTGTGGATTTCTCCGAAATTCAGAAATTACGCGGCAAATGGCGAGGCTTGAATTCCAAATTACAGCCCCGCCTCTTTTGATACATTATCTTCAGGATGAAGATGATCGCTCCGAAAGGTGGGTGACTCTGAATGAAAATACAAGAAAATTATGATTTCTTCAGAGAAACACCATTTTCACCGTTCATTTTTTAATATCCCTACGCCTCCTTCATTTTTTGACCAAATTTTCTCTTTTAATGGTCTTTCATTTCATTTTGTGCTAATAAACAAATTAAGTTCGACATCTGCGAAAAAATTCGTTCAACGCTAAAAAACGACGAAGTTTTTTTTTCAACACTAAAAAGAATATTCACTCCTAGCTCCGCCGGCTGTACCAATGTGCAAGTGCGCCCCAGCCCACTTCGACGCCGAGGAGACTGCGAAATCATTAAAAACAGTGAAAATAACGGAAATTCTGAAATTCCGGGTTTCGTTTGATAATTTTTTGCGCTGGAGCGACTACGATTGCTCACCGTTAAAATAGCGCACGCGCTTCTGGTTTCCCCCATAAATTGAAATGGAAGAGAGTTTTCGCCGAATTAGGTCATTTTGGCGCGGCCCCGACCGGGGTAGATTTACGGCGCGCTACGTGTCGCGTCGCGGATCGATTTTAGGTGTCAAACTAAATGTAGTTGTCCGTGTGGAGGGGGATACACGACTTACACTCCCGTCCGGCAGGCGATTGCAAGTGGAGCGCGAAAATGCGAGGCCAGAAGCCCGTATATGCATTTTTTTGCTGAGGGTCCCGCCACGACATTTACCCTTTCAGTCACGTGTATCAAAGAGGACCGGGCAATTTGGTCAGAAGGAAAATGAGAACTCGCCACGCCAATCAAGTTCTTTTTATCGATGACGGACAATTGCCAAAGGAGGGAAACTCATCTCGTAAGAAAGGGAATTCTTATGAGCTTCGGAAAATCGATTGAAGTATCTGACAAACGGATATGAGACTGTGAGACTTTTTTTAATACTATTGGGTCTCGACGCGATTTCCCACGGATTTCGGGCTTCCCTCATAAATTGAAATGGAAGAGCGTTTACTTGCCGAGGAACTAGGCCCAGGCCATATCTGGGGTAGATTGCTACGGGCGTTCCTTGCGTGTCGCGTCGCGGCTCGATTTTAGTTGTAAAACTGAAGGTATATCGTCCGTGTGGAGTACACGGGCGCTTGCCAATGGAGCGCGCTAAAAATTCAATTTGTGTCTCGCTTTTAACGATTTTATCGATTCTTGGGTGCTGTTCGAACAAGCTCTGAGTCGTGTCACTTGAATTCAATACGGAACACTTTCTTGTGATCAATTTTTGGATGAGAAGCTACTATTTCATGACAAACGGTGAAAATACCAGCTGTCATACACCGAAACCAACCATCAAACCCGAATTGAATCACTTTATTCGGTTAGCAGGAGAATATCGCTCCATCGCAACCATGTTTTCAGCGAATACTTCATCCAACTGCGGCCCCTCCAGCGAACAGTCAAAGAGAAACCTGCGTTGATCATGTTTGGGGATCAGTCGAAACCGCGAGTTTTAAAGTCGAAATAATCGAAGAGGGAGAGCAGCGCTGAAAGAGAATTCGGGGAAGAAGTGCTGAAAAAGTTCCAGAAAATTCGGACTGAAAGGTTAGAGCGGCGGCGGTGAATAACTCGACGGAGTGGACACAGACGGTGAAGGATACTCGGAGACTAAAACATCGTAGCGAGTGAGTTTGTGCCAAACGCTACTCAGATGTACTTCCGCTTCCGTGAGGACACCGCGTTTGATCTCTGAAAATTGCGAGAGTCAGCCCCTTCGTGTAAGTTTCCCGCAATATTTGAAGGTTAAGCAGCGAGGTCCTCATATTTTGAAGAAAGAACTTTATTGCCGTCTAATTCGGAGTCGATTTACGGCGCGTTGCGTTGCTTGTCGCGTCGCGTCTCGTGATTCGCATATTTATCGACACTCGCGTACGCCACGTATCAGATTCCGTGAGTTTTTGCAACAAAAAAATCGCATATGAGCAATCGCGCTCCACTGGAAAACACCCGAAAAGTTTTGAAATTGGGGTTGTCGCTTGTTTTGCGCGCTAGAGCGCGATTGCTCGCCGAGGTTTCAAACGACACTCTCTGGTTTCCCCCTTGTAGACGAGCGTCGCGGTTCGGTCCAGCAGGCGATTGTGAGCGCGAAAAACACGTGGTGTCAACAGTGTCCCATTATGGTTTGATCTTTGATAAATGTGTACGGGAGACGACAGACACCGACTTCTCAACTGATTTCGCGGCAATGGTTAAAAGTGTTCTGACGTCACATTTTTCTGGCATTCAAGACGCGAAAAACTCCCGTATTTTTTGTAAATCAAACCGGATTAGGACAGCCGAACGTGGAAAAAAGGCAAGATGACAAGGGCCCAAAGGTGACCCACAGAAGCCCGGCAGAGTCTCGGTTTTATCAGTTTTCGAGTAGTTTCGCACCACAAAAAGCGTGTGACGTCACATTTCCGGCCGCAAAATTCCCGCGCTTTTTGAAGATCAAACCGGAATGCATTGTTTCAGAATCTACTCTTTGTCTCTCGTTCATTCACCTCGGTTTGGGTATGGTATTGATCGTAACGCTATCGTTTTTTTGTTCTTTTTCAAGTATTTCAAGAAGTTCAACTCGACGGTGAAGAATGGAGATCAGGTGTATAGAGAGCAGGAATCGGCTGAGACTGATGAGAAGACTGAGAAGACTGAGAAGCGCGAAAAACTTTCTATCTGCGTGTGTCACTGCAAATAAAGAAAGGAATTGAAAATAAAAAAAAAAAAAATTTTTTGGGAGTTGCATATATGCATGTGTCGTGGTGTCCGAGTGGATTATTTCGGTTTGATCTACGTTGATAATCTCTCCAAAAAATGCGGGCACTGATTTTGCATGGATAAGAACGTGCTGACGTCACATATTTTTGTGGGCGAATATTCCGGCATTTTTTGTAGATCAAACCGTGATGGGACACGGTCTGGCATCACGTGTACTTGTCGCAATAAATGAGGTACAACATGTTATGCCGTTATCCTACAGTACTATAGGTGAACCCCGCACTTTTTGGCCTCCAAAAATTGGATGTTATAGGTCACAAACTTGTAAGGAGTCGTGGACATGAATGTCAAGATTCAAATTATTCAAGTCAAAAGGATGATAGCGCAGACACGTGCCCCCAACTTCGGTTTTCTACTGTGTAGATCAACAAAATGCGGGATTTAGGACGCTGAGTTCTCCACTGATTTTGCAACAAATTCCCGGAGCTTTTTTGAAGATCAAACCGGACAACCTGACACCAGGTGAAGGAATAAAACACGCTCTTTTGCCGAAATCTTAAGAGTTTCTACAATTTGAAAATCCAGTATTAGATTTTCTGAAAAAAAGTCCAAAGTTAAATAATGGACGCTGCCTAGTCTTTGGGTCCTCCTCTAAAAACGCCCTTTACAAAAAAAATCTATAGTTTCTGAAAAATAAGTGGCAAATCTCTACAATTTTCAATATTTCATACTAAAAAAATCACAAAAAATTATTTTATGGCCGCGCTCGAGTTTTTTACTCTTCCTCGTGGTGTCAGAGTGTCCAATTGCGGTTTGATCGACCGTGTAGATCTAAATTCGGGATTCGAGAACTGAATTTGCATGATTGCTGACTTCACATTGTTTTGGGTAAAACTAATTTCGGCATTTTTAGTAGATCAAAAAAGCCTGGCACCGCGTGCGCAGAGAAGAAAGAGCTAATGAGCACGGGGTGTCAGGAACGGCTTGATCTACAAAACTTGCGGGAGTTTTCAACCCAAAAATATGTGACGTCAGCGCGTGCTTAACCATGAAGAATCAGTTTCAACTCCCGCAATTTTTGGATATCTAGGATCATAGATGAAACCGAAATGGGACACTCTGAAACCCCGGGAATGAGCCAATTGAGCAAAAGTATGCGAACTGAAGGAGGCATCGTTTTATTCGCGCAGAGGTTAGTTAGACGAATTGAATAGGCAAGAAAAAATAATGTTTTGCAACATAAAAGTAATGTACATACTAATGGAAATAAATTAATTATGGGGGAGCTTCATTATTACAAGTCGACGAAGAGCAGCACTCGTTCTTCTCCTCCTTTTCCTTCTCTTTTTCGTTTGGAACGGAGAATTCGACTGGGGTTTCCACATTAGACGGGAGCTGGAGCATCTGAAAAAAAAACGCGAAAAATGGTAGACTTGTCACACGTTTTCCAACCTACTACCTTCTCAAAATAAGACTGGAGAAGAGCGGTAGTACACTTGAGCATGTTCTTCAACAGTAGCGACTCGTAGTTTTCGATCGATTCCTGGAACTTTTGGATCCACACACCGCTCCTTGTCCGCCCTGTCGGCGACATGTAGGGTGTAGATGCCCACGACCTTGGTAGTAGCGGGTTTGGTGAATTATGACGAACGCGAATCTTAGGGACGGATTACTAGAAGAGAAACACACTTATAGTGACAATACAGTAGTCCTAGAAGGTATTGGTAAGGTACTGAGGTACTGACTGCGCTAATTTTTGTACGTTACACCTTTTCCTGGAGTTTTGCAGACCTTCAAGAAAATTCTAGCACTTCCCATTTTCTCCGAAAAATTCCTGCACTTTCCAGATTTTACCAGAGAATTCCCGCACTATACAGATTTTTCTAGAAAATTTTGTTTTTCTCAGAGTTTTACGGCTCCTATAACTACAGTAACCCTACAGTACCCCCCAGACCATATCGCCCCTACCCCAACATACAACCCAATACATCAAAAGACAAAAACTCAAATTTTCCGGAACGTAACCCTATAACTCCTTTAACGTAGACCTACCGGGCCCCTACAGCACTGCTGCAGGACCTTGAGACATAACCCCCTACCAACATACAAATACCTCTTCGAAAGCTGGGAACTCAAATTTTCTATACAGTAATCCCGCTACAGTACTTCTACAGTACCTCCAGTACTACTACAGTACACCGACCATATCCCCCACAAACGCTATACAAATTTTCCTTCAAAAGACAAAAACTCAAATTTTCCCAAACTACAGTAAGCCTAAGCAGTACTCCTACAGTCAGATCCCCGACCTTCCGATATATCCCCACACCAACATACAGCCCAATGTTCCTTCAAAAAACAGAAAAAACTAAAATTTTCCAAAACTACAGTAACCCTACAGTACTCTTACAGCTAACCTCTACAGTACTCCTACAGTACCTGGACATCATCCTTCACCACTTCCAATCTAATACCTCTTTAAAAGCTGAAAATTCGAATATCCTATAACTACAGTAGTTCTACCAGTACTCCTACCTCTACAGTACCACTACATTACCCCCAGTACCCCTACCACATCCCCCCATCTCTAAACCAATATCCCTTCATAAGCACACTACAAAGACTACGTGGACTACAAACTATGTATGGTCAGACGGTTTATTTTTAATATGAGAAATGATGATGAACTAGCTGATATATACTACTATATGTACTGACACTGATTCACCAAAATTAGCGTGTCAATTCAAGATAGGGGTCTTTACGGTACTGGTATGGTACTGGTCCGATACTAGCCCCAGTTCTTTAATACGATTCCCTAAAATTGCTGACTCGGCGTTCCTGGTCGTTGGAGTCCGCATCACTCTGACGCAAAAATCCATACCTCGTTCGGTAATACGATCCGGCGCTCAGATTTCCCGATTGGGACTGGATCCTTTCTGCAACTCTTTGTCTTCAGTAATAAAACATGGAGAGTAATAAAACTTCGCGGGACTCCTCACCACTTTAAGCTTCGAAGGGCACTTTTTAGTTTTAGTCAGCACAAACATGTCGTTCAATAGAAACGCGTACATGTCAACGGTCCGCCCGTTTTCCACAAGCTCGAGGGGGCGATCTTCGTGGATAAGCTCTCGACGCGGATGAGCCAGTAGGTTCTCGCAGAATTGACGGATGAGGCGACGCGGAGGAACTGGTAAAAAATCAAGGGAAAATGTTGCGGGGAAAACAAATGTTTCAACTTTCATCATGGACATAAGACTTGGCAAGTCGCTTATATTCGGCCAGACCCCAAACCTGTGTCTGCAACTGCTGAAGCCTCTCAATTATGAAGGCGCCACTGCACACTATAATCAATCGATCGGTGGCCAGTGTTCCGTCATTGTGTCGATCATTCTCCACCTTTCCCTTACTCGCCTCTTCCTCCGATCTTTTGTGAATCTCGCGGAGAAGGATCGGAAGCCGAGTGATCGTCGTTGGGTGCGTCAAAAGATCCTCGAGCCGTACACGGAAGCATCGTTCATCGGCCAGACTTTATCCGCTCGAATTCCGTGAATCGTTCCTCTTTCTGTCGCATTGAGCCGAAATATTCCATGGTTGCGTAGTTGATGCAGTAGGCTTGGTAGGCGAAATTGTGGAAGGGCGTTTGCAGAACTGGAAGTTTCGCGTTATAACAAGGCATAGTCTCAAGCTATTTTCTCTGCAGCCTATCCCAGCTGTGGTCCTGGTGCTTAACAGTCGTGATTTCTGCTGGAAAACCGGTCTAATCCGGACTACGGAAGCCTGTGTTTTTGAGTCTAAACGACAACATTGTGAGCGGCAACCAGGTACGCTTTTTCATACTACTTTTTTTTAAACTGTTTTTTTGTTCTTTTTCGGCCAGCGGAAGTTTTTGACCCAACTTCGAAATGTCCCTTTTTTTCGCACTTGAGTTTGGGAATTTCTAGAAACTTCCCAGTATTTTCTCTTTTTCCCGCGAAGCCCCTTCTAAACCTGGGCCTAGGCCTACGCATAAACCTAAGCCTACGCCAAAACCTACGTAGCCTAAGCCTAAAAAGCCTAAGCTTAAGCCTAAGCCTAAGCCTAACCTAAGCCTAAGCCTAAGCCTAAGCCTTAGCTTAAGCAGCCGAATGCCTAAGCGTAGGCCTAAGACTGAGACTATGCCTAAGTCCCAGCCTTTACCCAAGCCTAGGGCTAGTTGAAATCCTAAAGCCTAACCCAAACCCTAAGCCGATAATTGCCTAAGCGTAAGTCCAACATACTTAGGCCTAAGCATTAAGCCTAACAAGCATGTCCCTTTTTCTGGCAATTTTAGGAATTTCTAGAAATTTCACATTTTCTCTTTTTCCAGCCCCTTCTAAACCTAGGCCTAGGCCGCATCAACCTGAGCCTACGCCTAAACCTAAGCCTAAGCCTAAGCCTAAGTCTAAGCCTAAGCAGCCTCAGCCTAAGCCTAAGCCTAAGTCTAAGCCTAAGCTTAAACCTGAGCCCAAGCCTAAGCCTAGGCCTAAGACTAAGCTTATGCCTGTTCCTAGCGAAGCCTTAACCCAAGCCTAGAAGGGGGCTAGTTGAAAGCCTAAGCCTAACCCAAAACCCTAAGCCTAAGCCTAAGCCTAAGTCTACGACTAAGCATATGTCTAAGCCTAAGTCTAAACCGAAGCCTAAGCCGAATCCCAAGCCTAAGCCTAAGCCTACGCCGACGGAGCACGAGGAGAAAGTACATAACTTTGTCACAAAAACAAACATTTCTCAATATCGGTCAGTTTTCAAAAATATTTCGGGTAATTTCTCAGGACAAATAACAAAAACCCACCCTTTCATACAAGTCCACAACTAGCTGTGTGCCAATTCTCCTTGTCTACCGGACTGAGCAACGAGAGGAACGATTGACAGAAGGCGAGTATTCTGACAAAATAAAAATGTGTGTGTGTGTGTGAAATGGCACGTCAGATTAAAGGGAAATAGAAAAAAAAAATTAAAACTGAAGGAACCTGCAGAGTTGATCCAAATTTCGGAAAAGGAGGGTCCGGCTCGACAAGAGTAGACATCCCTGTTCGACTTGACATCTCTTCAGCGTCCTTGTAAACATCGCGGAGCACGAAGAGCTGACGATAGAGGAAGACGAGCCGTGTGGAACAGCTCCCATAGCTTGAAGTTATGTGTGTCTGGATGTGGGAATTGTCGTGGTCTCGTCTCACATGAACATTTCCTCAAAGGATACTGGCTGAAAGTTGGATTTTTTTTTGGAATTGGAGCGCGTTTATGGGCTCGTTTTGCAGTTTGTTTATACCCTTAGACATTAAAAAGACATCAGCAACAAAGTCCCACAAGTAGTAAACAAGAGAGATTTTCTCTAACACGAAAATGTGAGAGAGGAATTTTTATTCGAAGCACCATGTTTCTCACTCAAATTTGACTACTCATAACTTAGGTAAACTTAATCCAATACTTCCTTAATAGCTAAAAATTCACATATTCCAACAAACTACAGTAAACTACAGGTACCCTACCGTACCCCTACAGTACCCCGACAGTACCCATACAGTACTTTGACAATATCACCAATCCACTCCCTACAAAATCATCAAAAACAAAAAATTCACAATTTTCAAACAGTAAGTACCCTAGAGTGATCCTATAGTATTCCTACAGTACCACTACATTACCTTGACATATCCCCCTAAACCAATTTCCACCCCCAGGAAGCAATACCCCTTCTAAAACTAAAATACCCATTTCCCAAAACTACAGTAACCCTACCGTACTAGTACCTGCAGTACCACTACAGTACCATTAACCTTGACATTATCCCCCTCAACTTCCAATTAAATACCACTTCAGAAGCTAAAAAATCAAATTTTCCCGAACTAAAGTATCCCTACCGTATAACTACAGTACCCTACAGTGCCACTACAGTACCTTGACATTATCCCCCTCCAACTTCCAACCCAATACTCAATCAAACGCTAAAAATTAACATTTTCCCAAACTACAGTAACCTTACCGTATTCCTACAGTACCCCTATAGTTTCACCTACCAACAACTTTTCCAGCTCATGATCCTCAATCTCATGATCCTTGAAGTCTCCAACGGCCTGAACATGCTTAAGAATCTCACTCCGTTTTGCTCGCTGCACCACTCGTAACGTCTCTTCAGTATCCAGGGCGATCGATTTTTCTGGGGCTGACACAAGCTACTGGATAGAAGGCTCGAAAGGCTATTGTGGCACGTCGGGTGAAGATCTGAAAATGAAGAATCGGTGGGGATCCGTGGTGTCAGCGAGGGAGAAGATCTATTTGGTGGGGTGGCATATAGAAGTGGGTAGTAGCGGTTTCTTCGTTTGTGTGATCTTTGTGTCAATAGACATGATATTAGGGCTTCGGTGGTAGGCAGGTGCGGTTTTAGGGCCTGGCTCTTGCCTGACGCCTGCCCTTCTCACGCCTGCCTGGCGCCTTTTATCATTTTGAGACAGTGAGTATAGGTTTCAAACTTCAAATTTTCTCATTTCTATCATTTTGTTGAAAATCAAATTAAGAAATGAAAAAAAAGTTTAAGTAGTTGCATTAGGCGTGTATTTAGGAATTGCGAGAGGCAGGCGGGGGTCGTCAAGTCAGGCAGGCAGGTCTTCTTATGCCTACACCTCCGGAAGGTGTTCAAAAATCGGTTGCGGGTGTCCAGCAGTAACTTGACAAGAATCATACAAAGCATTCGACTTTTACACAAACCTGACTAGGCTGTGTATTCCACCTGTACAAACACCTAACGATCGATGTACCTGATTTTATTTGATCTGAAAAAAAAATTTCTCAGAAAATTTGAATTCAAAATGTTTCTTTGAAAGTTTGAATTCCCTGCCAAAAACATTCTCAGAAAATTCAGGTTCGCCAAAATTGTTTCAGATTTGAAAATTTAAATTCCCGCCAAAATTTTTCTGTGAAAATTTGAACTCTCGCCAAAATGTTTTTTGTGAAGAAATTTGAATTCCGATACACAAATTTTTACAGAGCATTTGAATTTCCCCCTACAATTTTCACAGATCTTCTTATATATACATATATATATATATATATTAGTTGAACTTTTGGGCAGTTTTCAAAAAAAAAGTCCGGTGATTTATTTAAGCACGTGGTGGCAAAAAATAATTTTTCGGCTTGATCTACGCCGATCTACTAAAAATGCGGGAGACGCAGAGTTCTCAGTTGATTTCTCAAGGTTAAGAAAATTCCGGCATTTTGTACGATATCAAACCGTAATGGGACAGCCTGGCAGATTACCACGTGCTAAAGTTATAGTTAATTTACAAGTCCTGGTTGCAGTGGACCTGCAGGATGTCATGAAGTAGCACGTGTTTTCTGGAAAAAGTTGGTAAACTTTCATACGAAGAGGAAAGTGTAATCGATATTTACTTGACCATTTTTTTGCTAAAAAGTAAGAGTCTTTGAGCCAGGCCGGCGATCGGTAATTGCCGAAAATCGGCAATTTCGGCAATTGCCGGTTTAGTGCAAAGAATTTTTTGGCAATCGCCAATTGTGGCAATTGCCGAAATTGCCAAAAATTCGATTCCGCACACTCCTGCTTTGAACTGTGAATTTCCAAAATCCAATCGAAATTCTGCCGACACTGTACAATCCCTACCTGCCAACAATCCGCCGGAGCTGATTGCCCAAATTTATTGAGGTGACTCTCGTTAGGGGATAGATTTGATCATGTGGGACAATGAGGTCACATTGTCGAGCAGCACCCTTCGGATGAGGTCTCCTGATTCTCACTTGGCTGATCAGGAATGATTGCATGGCGTCGGGAAGGTTGCCTTATTAGGGTGACTTGTTTGGGCTCTCCTTCTTCTGGCTGGAAAAATACAATTTTTTGAAGTTAAGATTTGAAAAAGAAAGCTGTCATTTTTTTGTTGGTATTTTTTACCCTAAAAATGTGGTTTCAAAATATTTTTACATCTGAATATCTATTCAACGGGGTGAACAACTGCAGATCGACCATACTCGAGCTTCTAAAAGTTTGAAGGACGCTTCTCGTGAAGAAAAGAAAAGAAACACGATATAGTTACCCCTACATCGGAAGAGGATGGGATATACTGAGAAGTAAGAATAGGAAGAGAAATGAGAAGAGTTCATATGCACTAGAGAAGTATGTACAATATAATAATTTATGAGCATCTGAGAAAATGAGAGCTATTTGAAAATCTGCAGAGCAAGATAAAACTCGGTCTCTTATCAGAAAATTTGAAATCCCGCCAAAATGTTTATTGTTTAATTTGACGCCAAAACTTTTCACAACGAATTTGATTTCGCCAAAATTTTTCTCAGAGATTTTGAATTTTCCCGCCAAAAGATTTACCAGAAAATTAAAATTCCCGCCAAAACTCTTCACCTCGAATTTGAATAACCCGTTTTTTCTCAGACAGTTTGACCGCCAAAATTTTTCACATGAATTGAATCTTTCGCCAAAGATTAAAATCGTTGGATAATTTTCATTCGCGGCTGGTTTCCAAATCGAATTAAGAACGGCCAAAGTTTATCGGGGTTTTTTTTAACACTTACTACGAAAAAAAGCATGATATACATTTATTTTCCTAACGACGCCTGGTAAAATCCGCTTTACACATCAAAAACTTCTCGGCAACATTGCGTCACCGCCAAAAGAGATGCTTGCACTTCACCACGAATAATAGCTATGACAAGGCAATGCGTGTAGGGAGTTGAGAATTACAACTAATTCATATCCCCTGAAAAAATAAAAGCGCTGTTGTCTATATGATTCTTTACATGGTGACAGCTTACCGAAGAATAGACGGGTAATGAGATATATATGTGATTCATAAATATGGGCCTGCTCCCGGGTATCCGAGAGCCGAGTCGAAACAGAAGGGGAGCATGAATGGAGCAACTAGGGAAAATTGTGTTATCACGATGAGGCACGGCGGGGGACACAATAGATTTTTTTTTTGTCGAAAACGTTTTCCATTTTCACGTGGTTGGCGCATTACGATTTGAGCTACCAAAAACGCGGGAATTTTTCCCCTAAAAAAATGTATCGTCAGCACGTTGTTTACCATGAGAAATCAGTTGAGAAACTTGTTAGCGTCTCTTCTCCCGCATTTTTTGTAGCTCTAACTTGATCAAGCCGAAATGAGACGCTCTGACACCACGTGACGAAAAAAAGTAGATCAAAATTTGCCAAGCCCTTATAATACTCCCTTTTTCAGATCTAGGCGGAGCTCAGTTTGACTCTGATGACGTTAACGCAAATCTTGAAATTTCGAATTCTCTATGGAGATTAGAACTTCCCGCCCCCGCCAGACTTTGTAAAGTTCAACATAAAGATGAAATATAGAAAAAGTTCAGACTATGATAAGGAACTTATGACTAACGGCTCTTGAGGTGAATGAGTATGATGTGATTAGTGATGCAAGAGGTGCCGACTAGAGAGAGAGCTAGAGCGACGAGAGGCTCAGAGAGGGGGGAAACGGGAAGGTAGGTTTGTAGGTAGGCAAGGTAGGCAAATAGGGGGTCGGTATCCGAGAAATAAGGAACCTAGGTCGGCAGCCGTAGGCATAAAGTAGGTCAACATCCAAGTAAGTTAGACAGGTACGCAAAGATAGGAAGGTAAGTAGCCGCGGTGGCAAGGAGACTAAAGGAGTAGGACAGGAATACGTAGGCGCAGTAGGCAGACGATGAAGGTAGGTGGGTAAGCTTGTGAGAAGGCAGTCATAAAGAACGTCGACAGTAGATGCACTTAGTAGGTAGGTATGAAAAAAGAATTAAGGTATGCATAAGGAAGTAAAGTATGAATGGATGCAGCCGAACATGTAGATACAGAAATATCAGGCAAGTAGGAAACAGGCAGGCTCATAATATAGGAAAGTTAGCATCGTAGGCAAGTATGTAGTCCTGGGTAGGCATGTAGGTAGACACGTGGTAGGCTTATGGTTCGATATGCAAAAGAGCAAGCAATCATCAGAAATATGCATATTGGCAAGTATGTAGGCACGTGCATAAGATACAAAAGTAGACCAGGCATGTAAGTAGGCACGTAGGTAGGGAGGCTTGAGGCAGCAATGTAGGAGATCTGGTAAGTAGGTATGAGTATAAGTAACCTAGTGGTGGTAAGTCACAGGTATTTGGCACAATCCTGTGGTCACTGTTCTCAATGGTAATCAGGCGAACGTGCCTGCCTGCCTCCTTAGAAATTCGGTAAAAAGATTGTGGAAAAACAACTAGGGGAATTCCCATCCATGGAGTCCAATGCGTAATGTGAGTGGGAGGCGGCAAAAAAAAAGCGGACGTAAACACTTTTTCCTAATTCTCTTATACTCTCGCTCGTGGAAAATGTGAATATTTGATACAATTTTGTGGGAAAGTACAGCGAGCAGAAGAAGAAGCTGATGTCCCGATCGCGCGCGCGCGAAAAAAACTTTCAATTCCCACTCCCCTAATAATCCGCCTAACGCCTAATGTTTGTCAAATTCACCATGTATCGTTTTCTCACCCATCGGCTATGATTGTTTTTTTTTCTTTTTCAGCAAAAAAAACGGGCACATGAGGTCGGGATGGATAATTAGGGATGTGTGCCAATTTGGCTGATAGACAAAAAAGGAGTACGTGAGATTTTTAGAAAAGGTTGTTGAGAAAATTATCATGAGGCGTTGGGCACGTGGCCGCGAATGAGAAAACTAGGCTACCTTCACGGGGCCCCCATGGCCTTTCTCGTTGGAAAACTTTTCGCGATCTACTGACAAACGCCCGTGTTCCACACGGACAAATTCATTTAGTTTTGCAGCTAGAATCGATCAGCAACGCGACACGCAACGCGTCGACTAAATCTACCCCGAAGATATGGCCGCTCTTTAAAATGGCCTTGTTGGGCAAACTCTTCCATTTCAAATTTTTTATCGCCCTCAGTTTAATTTTTTAGGATACGCCTACGAGTGATCTAGGCCAGGCAGTAGGTAGGAGTGTAGGTAGCCCCCTTTTGGTGTCAGGCTGTCACATCGCGGTTTGATCTATCAAAAATATTGGTTCTCCCAGTAGAATGTGAAGTGAGCACGTTCTTAATCACGCGAAATCAGTTGATAAGTCTGCGTCTCAACCCGCTCCCGCATTTTTTGTAGATCAAGCGACGTAGATAAATACGAAATCAGACACTCTCGTGGTGGCAGAGCTGTCCCAACGCGGTTTGATCTACTAAAAACGCGGGAACATGTGCCCAAAATTATGAGACGTCAGCACGTTCTTAATCAGGGAAATCAGTTGAAAATAAAGTCTGCGTCTCTTCTCCCGCATTGTAGATCAAAGTAGACCACATTAAGACCTTCTGACACCATCCCCGAGAAGAGTTCAATATAACTTAGCTCGTAGAACATAAATTTTTCCACGTGGATTTTACAGCACAATTGCTTAGAGCCACTAGCGCGGTTGCCCAAATTTTACAGGAAAATGAATATTCAGGAAAATTTTACCAGATTTCCCGCGCAAGACACGAAAGTCTTAAAAAGTAGGAGAGCATGAAACTAAGAAAGTAAGAAACTTCTGGTTTACCACATAAATCAAATTGGAGATAGTCGACCTTAAAAATTTTGCACCAAACAGGGCGGAGCCAAAAACACCAAAAGTTACGCAAATTTGTACATGAAAACTAAACACCTAAAACCGGAGGACAAATATGAAGAAAAACGCTGAAAATGCGCAATGAGACTTTTTCCTCCGTTGCTTAATTTAATACATGTCCTCTCCCCCTTCCTTCCTGCTTTCACACTCTTTCGGCGTCGCCTCCTTTTGATTAGAGACCTGAGACTTTTTTTTTTGTGATTGCGTTGAGTAGTGTGGGATGCATATATTAAATCAAAAATCTGACATCAAAAATATCCCTGAAAAAAAACGTAGTTAAAATTTGCTTTAAAACTGCCGATGCGTTTGCTATTTGATCTACAGGGTGCTTTGGCGCGTTCGCGTCGCGGTTTGGAGTTCGAGGCGACGGCCATTCAATTTGACCCTACTACAATAGAAATATTTTGTAATCTTAGGCCATCAAAAATTTTTAAAAAACAAAACCGGAAATTTCTAGGCCATCAAGAATCTCTAGGCCACATCAGACTACTTTGAAAATTTGTAGGCCACAATGGGAACTATTTTCTGAACCAAATTTCTGAAATTTCTTGGCCACGATCTGAAATTTCGAAGCCATATAAAGATTTGTTTATAGGCCACGATCTGAAATGCGGATTCTAGACTACATCAACAAATCCTAGGCCACGATACTAGGCCACTATTTGAAATTTGTAGGTCAAGGTTTGAAATTTCTAAGCCACGATTAGAAATTTCTAGGCCACGATCTGAAATTTTTAGGCCACGATTTGAAATTTCTAGGCCACGATTTGAAATTTATTAGGCCACGATCTGAAGTTTTGGTCATCAAAATTTCTAGGCCATTTGAAATTTCTAGGCCACGATCTGAAATTTGCCACGGTTTGAAATTTCTAGGCCACGCTTTGAAATTTTTAGGCCACAATCTATTTCTAGGCCATCAAAAATTCATAGGCCACGATTTGAAATTTCTATCTGGCCACGATTTGAAATTCTGGGCCACGAACTGAAATTTCTAGGTCATCAAAAATTTCTTTTAGGCCACGATTTGAAATTTCTAGGCCACGATTTGAAATTTCTAGGCCGCGATCTGAAATTTCTAAGCCATCAAAAATTTCTAGGCCACGATTTGAAATTTCTAGGCCGCGATCTGAAATTTCTAAGCCATCAAAAATTTCTTTAGGCCACATTTTAAATTTATTGTTTAAAATTATAGGTTTTCAAAAAAATTCTAGGCCATCAAAACTTTCTGCAGGGATTTGAAATTTCTAGTAGCCACGATCTGAAATTTCTAGGCCACGATTTGAATTTTCTAGGCCACGATTTGAAATTTTTAGACCACGATCTGAAATTTCTAGGCCCTCCAAAATTTATAGGCCACGATTTGAAATTTCCAGGCCCCGATTTGGAATTTCTGGGCCACGATCTGAACTGATTTCTAGTCATAAAAATTTCTAGGCCACGGATTTGACATTTCTAGGCCACGATTTGAAGTTTCTGGGCCGCTAAATTTCTAAGCCATCAAAAATTTCTAGGCCACGTTTTAAACTTTTTAAAATGTTTAAAATTGTTGGTTTTCAAAAAAATTCTAGGCCATCAAAAATTTCTAGGCCACGATTTGAAATTTCTAGGCCCCGAATCTTTCTAGACGATTTGAAATTTCTAGGCCACGATTTGAAATTTTTAGGCCACGATCCGAAATTTCTCCAAGGCCATCAATTTATTGGCCACGATTTGAAATTTCTGATCGAGGCCACGATTGAAATTTTTAGGCCACGATATGTAATTTTTAGGTCCTCAAAAATTTATAGGCCACGATTTGAAATTTCTAGACCACGATTTGAAATTTCTAGGCCACGATTTGAAATTTCTGGGCCACGATCTGATTTAGGTCATCAAAAATTTCTAGGCCACGATTTGTAATTTCTAGGATTTGAAATTTCTAGGCCGCGATCAGAAATTTCTAAGCCATCAAAATTTCTAGGCGGCCCACGTTTTAAAATTTTTATTCAAAACATTTATAGGTTTACTTCAAAAAAATTCCTTAGACGGCCATCAAAAATTTCTAGGCCTACGATTTGAAATTTCTAGGGTGACAACGATTTGAAATTTTAAAGCCACGATCTGAAATTTCTAGGCCATTAAATTTATAAGCAGGCCACGATTTGAAATTTCTAGGGCACGATTTGAAATTTCTGGGCCACGAAAGATTTATAGGTCATCAAAAATTTCTAGGACAGGATTTGAGAATTGCTAGTCCAGGATTTACAACGAAATTTCTAGTCCGCGTATTATCAGTCGAAATTTCTAAGCCATCAAAAATTTCAGGCTCACGATTTGCGCGAAATGTCTAGGCCACGATCTATTTGAAATTCCGTGTTTAGGCGATTTCAAATTTCTTGGCCACGATTTGAAATCTAATTTATAGCCCGTGATTTGTAAGTTCTAGGTCATCAAAAGGCGATTTCTAGGCCAGGATTACTCTAAAATTTCTAGTCCATCAATATTTCTAGCACAAAATTTGTGTTCACTTTTTTTTTTGTTTTGGTATGTATTTTTCAGAACTTATTCAAAATTTGTGGGAGCAACAATATGCTTTTTTAATTTCTACGCCACAAAATTCTTTGGCCTTTTTCACTTTTTTTCACGCCGCCTATGGTTCCACTGGATAATTGAATGTAGAGAAAAAAGGGAAGGGTTCAGCTAGCGCAAAATAATTCGTTGGAAGGGAAAAAAATAAATGCAAATCTTCGCCAAAAACCAATTTTAGGTCGGAGCTCGGCGCGGGTTCGCACACACACAAAAATGGAGCAGAAGATGACGTCAGATCTTCTTTTTCAGAAGGCTTTCTCAAACTTTGAAAATGGCCAATTTCTTGCTGCTAATTGTGGGATGGGGACAGAATGATATTTTGTTTCAGGTTTCACACCACATCAGATCCTAGTCTTATTTTTTTCTTTTCTCAGGAGTACACACACTATAAATTGTGGTAAAAAAAAGAACACGTCCAGACTTGCTTATTTTATACCGATTTGATGCGGCCTACACAAAACGCGGGAGTTAAAAAGCAACTCGACATCTCACCTGATTTCGCAAGAGCGTGCTCTAGACCAACCGCCACAATTTTTTTGGAAAAATATTTCCGCATTTCTTGTAGATCAAACTTAAGACACCCGCACCGCGTCACAAATAGTATTCCTCTTGAAAAGGATTTCCCAATCAAGTTCCTTGACAGGCGTACGCAAGATTTTGCAAAAAAAATCGGTGGCCGAGTTTACTCTTCTGGCGGCCACGTAACAAAATTAACAAGGAACGTATAAAAAGGAAAAAAAAATTTTCGTAAAAAGGTACCAGGGACCGAAGCAATTTGAGGAAGGAAGGAAATTTGAGTGTCACTCAAATGATCTACCGGTTTTAAGTCGGTGGCCGCGGAACAGAGAAAGCTCGGCCCCCAAGTATTTTTTAAAATATCACGGATTTCTGGTCCCTGATAAGTTTGAAATGGAAGAGTAAAGAACGAACTAGGCTAGCTCGTCTGGGGCAGATTCACGGCGTTGCGTGTCGCGTTGCGGCTCGATTTTAGTTGTAAAATTAAATATAATTGTCCGTGTGGAGTACACGACTTTCCCACGAGTTTTCCGACCGGCGATTGTCAAGGCCCGAGCGCGAAAAATTCAATAAGGAACGGCCAGCCGTGAGATAGGATTTAAAAAATATTACACAACTATTTATTCAAAACTGGCAATTATACATACGATAAGTATTAACTACATACATGGCCGCGAAAAACCCGGCCACCAATTTTCGCGGTTCACTTACCGGATCTCCTCCTGAAATCAGTCTTGCCCTATAAAATAAGGGCATTTTTCGGATCATAGTGAATGAATTATTTAAGGAATATTATTTTAAAGAACACACACCACACAAGACATGTGAAGGGAAGGAACCAGGGAAAAAGAGACAGGGCAAAATACAATTTCTCTATTATTCCGCTCTGTGTTCTGACTAGCAAATGCAGAATCAGTGATGAAGAAACTGGGAATTTACGAGGTATTTAGCGAGATGGTGACCGCGAGGATGAGGAAAAAATCGGCCACCGCAAGACTTACCGGCTTAATCAATTGACCTGGGCCCGTATGTGATGGAACAATCATGTGAGAGCCGGAGCTTCACTCGTCATAGCTTTGTGTCTAGGTGGCTCTCAAGTACTGCTGGAGCTGAAAAACTGTAAATTTAATTTGAAATTTGTTTCGGATGCAAAAAAGTAGCGACACCTGCCGGGTTCCCACAAGATGTCGTTGAATTGACCTAGTAGAATCGTTAGTGATCTACCGAGCAAACAAGTATGCTTGCAATAAAAAAAGGCGTGTGGTTCAAGGTCGTTGACAAATTCGACACTTTGGACACACGAAATTGGTTATGAGCCACACCCCGGCTAGCTTAGGTCAGGAGAAGAGCCTCTCCGAAGAGGACCCCATGTGCGCGCGCGAGCCGAGATTCTGACAACATGAGAAGCGGAGAAGGCGTAAAGGGAGAAGAGTCTAAGTTGAGCTTGTTGCTGAAAATATCTAGGACTCAGGCTTAAGCTTGGGCTCAAGGCCTCATGCTCAGGCTTAGGCGGATCAGGCTTAGGCTCAGGTTACCCATAGGCTCAGGCTGCTCAGGCTTAGGCTCAGGCTTGGAGAGGCTAGCTCGGAATTGGGCTTCGGCTGCGGCCTTGGCTTGGATTAAGCTTAGGCTTAGGCTCAGCCTTAGAATTGGGCTTAGGTTCCTGAGGCTTAGAATTGGGCTTAAGCTCAGGCTTAGAATTGGAGGCTTAGGCTTTGGCGTAGGCTCAGGCTTAAGCTCAGTTAGGCTCCGTTGGCTTAGGCTTAGGCGTTTAGATTTAGAGGCTTAGGCCCTGGCCTAGGCACAGGCCAAGAGGTCACGCCTATCACTTGCTCCTAGATGTGGTTGGGGAAATGAAATTCTAGTGACGTCAAGATTCTGGAAGAGTTCCGTTGACGCCACCAAAAGCAACAAACACTTCAAATCTGAGAAGATCAGGGCGGAACAAAATGTACTGAAAGTACAAAAAGCCCGCATTTTTTTCTCTAATAATACTACATATCATTTGAGTGGGGTTGAAAAAAATGTGTTGCAAGAACTTATTCGGGGCGAAAAAAGATTGAGAGGAAAGAGGAACTTGTTTTTTTGTTGGAAAATCGTAGGTGTGACGTCACTTCTCTTCCAACGCCCAGGTTTCTAGGCAACTTAGGACATTGTGCAAAAAAATCACAGAGCAAAACTACAAAACCCCAGGAAAGAAATGTGCTCTTGGCCAAAATAATAAATATTGGTTACGAAATAAAGGAGAAAGAGAACGAAAAAAAGCTTTAAAAAAGAAATCAAGGAGGAATGTGGAGAAGAGCTTGTGAGGATATACCCAGCAATTAGGGAGAGAGTACTACGCTGTCGGGAGATGACGTTTCGAGGATATTTCTAAATTCACTGGAATGAAGGGTGGTGGAAGAGTTTTGTAAAGTTCGGGTATAGGCCAGGGGTTTTTTTGGCCAATGAGCCTGGTGCATCGAAGAAAAGCTACATTGGAAGGTTTTATGTCTCGGCCACAATAAATTATAAAACCTAGTACGATGAAGCACACTTGCATTAGGATTGCAAAAATTTATTTGACAATTGAGAAGAAAGAAAATCAGGGGGGCATAAATGCGCCATAGAACAGTGCGATCAAATTGTAGAAGAACTTTCGCCCAAAAAGCTAGGCCACGTAGGAGACCGCTGGAGAAAGTACGTGTATATGGTGGAAGAGTTTTCTTGTTTTTCTAGGCAATCTTGCGACAAAACTTGAATTTATGAAAAGATGGCTTGGAAGAGCTTTCGCATAGAAAATCTAGGCCACGGCTAGCAATTTAATAGGAGATAGAAAACCGCGTCGGAAGATTATTTAACTTTTCCATAAAAATTAGCAAATGTAAGAGAGTTCAGATACTGATCTGGAAGAGTTTTTGTGCAAAAAACCTTGGCCGCGACCAGCAACTAAAGTAGTAGGGGAGATAGGGTACCCCGCTAATTTTTTATTTATTTTTCAAAGAAAAAGTTTTAAGGCTTCGGGATTTGATGAAATGGCTCGGAAGAGCTTTTGCCGAAAAACTTAGGCCACGGCCAGCAATCTAATGAGAGGGGGAGGGTTCCCCGTTAAATTTTTTTTGTTTTTTAAACAAAGTTTTGGGGGGATTTGATTAATTGAGCACCATGGAAGAGTTGTTAAGCAAAAAAACCTAGGCCACAGCACCCTGAGAGGCGGGACCATAAGGTAACCCTACGCTATATTTTTTTTTTCAAAGAAAGTTTTAAGGTTTTGGAGGAAATTTGATTACATTACTTGGAAGAGCTTTTGCAAAAAAAAACTTAGGCCACGGCCAGCAACCTAACTCAGAGTAGAATGGGAGATAGGGTACCCCGCGGAAAATTTTTAGCGTTAATTTTGGTAAACAACAATGGAAGAATTTTCCGGTTTTCTAATCCATCGCATTTTCAGCGTCACGGATTCTGTGGCTTCCCCTCGCATAAAATGGAAGAAGTTGCCGACCTATATCTGGGGTAGATTTACAGTGCGTTGCGATGTCGAGTCCGCCGCTCGAATTTAGTTACAAAACTAGGTAATGTAATTATTTGTCCGTGTGGAGTACACGACTTTCCCAGGAAGGTGATTGTCAATGAAGCGCCAAAAATTCTCAACCAAAAGAATCCAGATTCCCGCGCAGCATCGCCTAGGAGAACATTTTCAAGAAATCTGGCTCACGAAGGATTAAGTAAAACAAGAAAAGAAATAAAACTCTAAGATGAAAGGTAAGGGTGGATGCGGGACAACTTATCACTATTTGCCATCATCATCATTTTTCTTCTCCTCCTCATCAGCTTCTGCTCCTCCGCGATCTCGCGGTGACTCTTCTGAAATTCTTAACTAGGCCAACACAACGTCGGCAACGAGTTTCGAACCCTTCACCCACAAACACATACGAAAAAAGCTCCTTAATTGGAGCAGGGAGACGGAAGAGGCGAGGGAGGAGAGGCTGGTCAATGAGTTAGAGTAGAGAGAGAGAGAGAGAGACTGAAAGATGAAGTATAAGCAGAAGTCGTCGGGATGACAGAAGTAGGAGGAGAAGAAAACGTGAGAGGTGGAGTCAGAAGGATATAATATATTACATTCATAGCGAGGATTACAGTTTAACGAGGCAAAACAAACGAATGCTCCAATATGAATTTTTGGGGTTACTGTAGTTTTTTCTGTAGCCTTATACTTCCAGAAGTTACATGATAAACATATGCGAGTTTTTTAAAATTTGCCAGAAGCACGGGTTCATTTTTTTCAGGCTCAATTGACAATCGCCTGCCGGACAACCCACGTGGAAAGTCGTTCCGCACGGACAAATACATTTAATTTTACAACTAAAATCGGCGACACGCAACGCGTCGTAAATCTACATATATGGCCGAGCCAAAATGACCGACTAGTTTGGCAAAGACTCTTCCATTTCAATTTATGATGGAAGCCAGAAATCCGTGCAGAAGTTTCTCGGAAAAAATACAGAAAGTTTGTGAAAGGGTTGCGACCTCTAACGGTCTTCATTAACATAAATTCAAATTTGACGCGCAATAATGAATTGCGAAATTTACTAGCGAAACATGGTGCATTGGGTGTTTGAACCACAATTTTACAGATCTGTGGTCACTAACATCAATGCATGGCCCGAAGGGAAGTGGTACCTGTACGCAATTTATCTAACGTAAACCTGGACGTTTGGGCGCGTGTATCTCACAAACGGTTGGTCCTGTTTTTTTGTGATGCATTTAAAAAATTTGAATTAAATTCTAAATTTATTGGACCAATGCTTTTTTCGTTGAGTATCACGCGCCCAGACCTGGTCTACACTCAAATTACCAGTAGAGCGCATTTGCTGACCACTTGCTGTCCGGGCCGTGTTCAATGCAACGATGGCGCGTCAAATCGACTGCAACTTCAGAAATCCCTAGTAGTTGCGCTTCAAATTTGATGCATTGCACGGCCCGGCAAGTGGTACATCTATGCAAATTCGCTCTACTGATAATTCAGTGAAGACCAGGTTTGGGCGCGTGATAACGAAAAAAGCTTTGGTCCAATAAATTTACTTAGAATTTAATTTCGTACATTTTTTATATGCATCACACCAAGAAAAAACTGGACCAACCGTTTTTACACGCGCCCAAACGTCCAGGTATACGGTAGACAACTTGCGTACAGGTACCACTTCTCGGGCCGTGTTGAATGTTTGAGTTAAAATTTTGAGTTATATGTGCTGGAAAATTGACATGAACATGGTATTTTTCATTATTTGCGCGTGATGGTGCATTGAAGTCGTTTGCAAATTTTTTTCAGAGCTGAGGTCAACTGACACCAAAGCAACAGAGTTGACGATTTTAAACTGCACTTTTGCACGCTTTGCAGTCGGTATTTGGAGGTTATTTTCGATTGTTGTGTGAGATTCACCGACACACCAGATTGGATGACGCGCAAAATTGTACGAAAACAGTTAGTTAGAAAACTAATAAAAGAAAACTATTAATAAAAGTATAGCGAACATCCTGAACAATTATTTCTGCACCGCCAATGTATCTATAGCATGAATTTCAAAATATACAAAAAAAAATTATGAAAACCACGACGAAAAACCCGGAAGTGTTTTTTGGGTAGCCTGTCTGGATTCCTGAGGGTATTGAATTTCGCCCTCGAATAATATTGTTTCCTTTTTCCCCAGAATACCTACAGAATTTGGGGGAAAGAAATGAACTGTTCCTCACATTAACCTACACGTTCTTATTTTTAATTAAATTTAGGCCACGCCCAGAAAGTAGCTGGGCGGGGTTGCACATTTTTCTAGCTTTCCAAAATATAAAAAGTCGGAAAAAAAGTTGTAGTCCGTAGTTTGTAGTTTGTAGTTTGTATCAGCTTGTCCCATAAGTTTTTGTACTTTTTTTCAACTATGTTTCCAACGTCTAGAAAGTTTTAAAATTTTTTCATCGTAGGTCGTGTCAAGCGGGTCGTCCCGGGCCTGTCACAAAAGATTCATTTCATCCATTTCTACTTTGCCACGATGACAATCATCAAACCTGAACGTCGAGACGTTAGATTGCTTCTTCTTTATGAATTTCGTCTTACTTAGGTCATTCAGCAATGGAAGCGGAACGAAACATATGCGGTCCGATGGGTGAGGGAGCACTCTCTTATAATACAGCACTCAAGAGTTTCAAAAGCTCAAGACGGCGCCGACTTCAGTCTCGAGAAATAGAACGTCAATGTGGGCGACCGGAGGCTACAGTTAAATGAGGAAGACATAGGGAAGCTGGTGGAAGCGCCTCGTCTTAGTCTTCGTGAAATGAAAGAGAACCTTGAGTGTTGTCACAATAGCAAAATTGCACGTCACTTGGGTCGCCTTGGTTTTACTTCAAAATTTGGAAGCCTGGGTGCCTCATGAACTTTCGGCATCACAGAAGCTCACTCGGGTCACCGATTGTACTCATAGACTTCTACCTTTTCGTCGGTACGATTGGCTGAACGACCAATCTTTACGGGAGATGAGAAGTGGGTGCTCTATGTTAACCCACGAAAACGTCTATGGCCGATCGGTGAGAAAGGAATAGCGACGCCAAATGATCTTCACCCAAATTATGATCTGTATCTGGTGGGCTGTTCAAGGACCCGTGCACTGGGAATTGTTGCCCACTAATAAAACTATCACTGCTGATTCCCTGACTATTGTGCCCAGACCGAGTTGCAAAAGACCAACGGAAAATATGAAAAACTATATTTTCCAGCTTTCACGATAATGCTAGTCCTCATGTCGCCAAGAAGACTTTGCAAAAGCTGCAAGATCTTGGTTGGACTGTTTTACCGCATCCACGATATTCTCCACATCTTGCACCAACGCGTCAAACTACCAGTTCTTGTCTCTCAGTGACTACTTGCGCGACTAGCAAAGTTATTCGACGACGAAGAGCATCTCAACTGAACTCTCCACTTTCTTCTCATCGCGCTCGGTACGCATTTCTTCTCCCGTGGCAACATGATGTTACCTAGTAAATGGCAACAATTTGAGGTGGAAAGGTGAATACTTGTGTGTATAGTACTACTTGTCGCTTGAGAGAAATAAATTTTTTTTCAAAAAAAAAATAGTAGAAAAACTCATGGGACAACCTGATAGTTTTAGTTCGTTATTTGCTAATTGTTAACGTTAGTATTCGCCCAGGAGGGCCGAAATAAATAAATTTTAGAAAAGAAAACGAAATTATATACATAGTCATTAAAATGTGGTAGTTTGTAGTTTGTAGTCGATGTATTATGTCTATTCAAATTGTATTATAAACAACATCTAAAATTAAACAGGAAACTTATATTTAAAAAGAAAACGAATACTGAAAAAAGGCGGCTGCATAGTAAAAAATAATGATTCTCCTCCAAAAAATGGAATTCCATTTTTTCAGCGGCTATTTTCACGATGATGAGAGGAGACCAACAAAAACATTTGAGATGAGAAATGAGGGGAATCTTGCACAATTGAAAATGGGAAGTGATTTTTTTAACTTTATACACAGTTAAAATTCCAGCGAAGATCTGCGCGCAGAGTGTTTTTGGCGTGGATCGCGAGAGAAAAAGGAACCGGAGGTGCGCACAGCATTGTGCGTCCATCGCGAATTCTTTGAGATGCATTAGAGTGCGAGCATCGCGAACATAAATAATGGGCACATGTGGTTTCTCCTTTCTGATGATATTTTACTCTCTATGGCTTCTCCAATTATCTTTATCTTGTACTCTGTGCGCTGCCTACTATATTCTACTCTCAGTGTCACCAGTCATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCCTACTATATTTTACTCTCTTTGGCTTTACCAATTATTACTGTGGCTTCCCACTATATTTTACTCACTATGGCTTCCCACTATATTTTACTGTCTGTGGCTTCCCACTATATTTTACCCTCTGTGGCTAGTCCCCACTATATTTTACTCTCTGTGGCTTCCCACTATATTAGATTTACTCCTGTGGCGTCATCAACTATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCACTAAAAATGTTTTACTCTCTGTGGCTTCACCAACTATTTTACTCTCTGTGGTTTCCCACTATATTTTACTCTCTGTGGCGCTACCCTCTATATCTTACTCTCTGTGGCTTCACTAACTATTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCACTATATTTTACCCTCTGTGGCTTCCCACTACATATTACTCTCTGTGGCCAACTATTTTACTCTCTGTGACTTCCCACTATATTTTACTCTCTCTGGCTTCCCACTATATATTGGTTAATATCTGTTACTGGTCACCATTCTCGTCGCTTCCCACTATATTTTCCCTCTGTGGCTTCACCATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCACTAAATTACTCTCTGTGGCTACACCCACTATTTTACTCTATGTGGCTTCCCACTATATTTTACTCTGTGGCTTCCCACTTTCATATTTTACTCTCTGTGGCTTTTTCCACTATATTTTCCTCTCTGTGGCATCACCAACTATTTTACTAACTCGGTGGCTTCCCACTATTTGACTCCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCACCAACTACCGGTTTTTACTCTCTGTGGCTTCCCACTATATTTTTATCCTCTCAGTGGGTTCCCATAGCTCTACTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTTGGTGGCTACACCAACTATTTACATAACTCTCTGTGGCTGCCCACGCTGTATATTTTACTCTCTGTGGGCTTCCCACTATATCTTACTCTCTGTGGCTTCACTAACTATTTTACTCTCTGTGGCTTCCCAATATATTTTACTCTCTGTGGATTCCCACTATAACGATTTTACTCTCCTGCCTACAATATTTTGTCTGTGGCATTCCCTCTATATTTTACTCTTGGCTTCACAGTGTATTTTATTCTCTGGCATCACAATTATTATATTATACTCTTTGTCTTCTCGCAGAAAGGATATTTTACACTCTGGCTTCACAGAATATTTTACTCTCTGGCTTCGCAGAATATTTTACTCTCTGGTTTCGCAGAATATTTTACTCTTTTTCGCTATGTTTCACAGAATATTTTACTATCTATTAATCCAATTCTTCGTATAACAATCTATTTTTTCGTATTAACAATCTATTTTTTGTATAACCAACTAAACTCGACTTTTCCAAAATTACAGGAACCCTAAGAAATTCTACAGGACTCCTAACTCGCAACCTGCAGTTCAATGAATCACCTCGTTTTTTCACGCGTGACTCATGACTTCCACATTAGTTTACATTTCCTTCATCCATCGGTGTTGGGGCGCTGTTAATATACAACAATTAGAAGAGACCCCACCTCACGCTGCTATTTCTGCTGCTGATCTGTCAAGAATTCTTACCGCCACTTATGACTCATGCCATCAATGACTACTTCCTTCTTTTTTATATTTTCGGCTTCATCTCGAGTAGCAAATTTAACAAAATTCAATAGGTGTGACGTCATCACACCTTCCAGTGGAGAAATCCAAGATTTCTCTCGAAAGGATCAATGTGGTGTCATGGCCAAAACTCCAGTGTGAAACCTAGGCTATGTTAAATATTGAAACCGACTCTAAACTGAGCACATAAGGCTATGATGTCATGGCCTAGAAATCCCAGATTCTATGACGTCATGAAAGACCTGAACTGCACCGAACCTACGAATACCGTCAAAAGGGGTCCTGCTGTGAAGTCTTGTTCGAGAAAACAACTGAGTGCGAAAACTACGGCTCTCCGTAATCTACCATGTGGTAGATCATGCGGCCCTATTGATGGTAGAAAACTTACAGCTTGAAGCTATGTCTTACCTAGAAACTCAATAGTTTTGACGTCATCAATGGCCTAGGTGTATTCGAATGACGCAGTGTCTTAGAATTTTCTGAATATCACACAAAAGTATAACATCTTCTTGAAACCAAATAATTTTGAGGGAATTTGTAACACCCACCCAGTATTGTAACAAATGATATAATAGCGATCGGAACATTCGAGAAAACTGGAAATTTGAGACCTTGTTCGGGAAACTTACCAGTGATTATGCCCAGAGGATGGCTGTGTCGAAAAATGTGCCTAGGAAATGGGATTAGAAAACACGCTTCTTCCTTTTTTTTTCTAAGTACAGAATTACGTTGATAACGAGAAGTGCATTTCATTTTTGTTAGGTTGGAAATTTGAAATTTAAATATTCGTCTCTAGTTAGCACAGCCGTGGAAGACTTTTTCAGAAACGAAACTTTAGCCACGTGTCGCTGGCGGTGCCCACGATATTAGAGAATGTTGATATTTCCTATTTACTTATCTGTGATCATCGAAATTTTAAGATAAAGTTACTACCGTTCAGTTACACTGGTGGAAGAGTTTTTAAGATTTCCCACCGCACAGTTTGGGTGTGCCAGTGACCCTAACACTAAATTTGTAAAATTCTTTTTTCAGCCAAATAATCATATGGTGGTGTCGCCTAGAACCAGAAATTTAACACCTGAAAACTCTTCCATATTTTTTTAATTTCTGAAATCCAACGAAAAATAATTTTCAAACTCCTCTTCCTTCGAATGTTCCAGAAAAATAAAATAATGTGACGAAATCAAGTTCATCTATGAGTTGTGTGGAAGAGTTCAGATTCCTAGGCGACGTCAAAGTTTGAGGGCCCGTGACCCTATCTCGAGACTAAATTTTCCAATTTTTTCAGCCAACCCCAATCAGAAGCTTTCTCTGGCCTGTAATGACATGACAATCGGATATTATCATATGAAGTTTTTTAGGTTAAATTTCTGAGGTCATTTGCAAAGGTGTCATGACTATCATAGTTTGGAGGCTTTTTTGTAACGGTAGGGGTATGAAACTTGTTACTTCTCGAAACGGTATTATGTGGGGGAGAGGAGAAGGAAAGAAGGAAGGTTAGCCAACAGAGATAAAGCAAATTTTGTGTTAGTGGTGGCAGTTTTGAAAGAAGCCATGCTCCAAGGTCGGTTTGTCTTCTTCATTTTTCGGTTTTCTTTTTTGTAATGATTAAAAATATTTTTGTATAGAAATAAAAATTCAATACCAAAAAAATAATCACTGGAAGTTTCAACGTATCGTTTGACGCCTTCAAACATTTTTTAAAAATTCACAGTTTTTCAAATAGATGTACGTACACGTGGTGTCAGAGTATCTCACTTAGTTTCGGCTTGACTACACTTCAAAAAATGCGGGAATCTCCAAAAAAATGTGGAAGTACAGCACGCTCTTATGACCATGCGAAATCTTGAGAACTCTGCGTCTCTCCTCCCGCATTTTCTGTAGATCAGCGTAGATGAAGCCGAAACGAGATACTCTGGCACCATTTTATTTGTTTAGGGCAAAAAATTCCCGCATTTTTTGTAAAGGGATCAACCCGTAATGGGGCGGCCTAGCCCCAGTTTGCGTGCATACTTATTCCTGATGCCGAACGACATTCGCCGATATCCCGTTTTTACAGTATGACTCCCAGTGGGTTACTGTACCAGATTTTTGGTGCTTTTATAATATTGTTTTCTTTTTCAAAAATCTATGACGGAAAAATTTGTACAATTGTTTTTTTTTAATATTTGAATTTTTTCGGCTCCCAGACATTTTAGCGGGATATCGGAGTATCGGCGCATGTAAACGTTTTTTTTTTGGTTTTTTATATTAAAAACGGTTAAGTGTCGTAATAAGACGTGATTCATTTGAATAAAAAATAGCGAGCGACGCCGGCCACCACGACTTAATGGCTTCCCGTCCTAATAACAAAATGGAAGAGTTTTTGCTCCGAACTAGGCCATTTTGGCTCGGCCGTATCCGGGGTACGATTTACGGCGCGTTGCGTGCCGCATCGCGGCTCGTCATTTTAGTTGTAAAACCTAATGTATATGTTGTCCGTGTGGAGTACACGATTTCCACGCGGCGGTTGTCCGGAGGCGATCAATGGCGCGCAAAAAATTATGCCTAGGACAGGACACCGATTCAAAGATATAACGGCCCACATTTCAACAGCGGTATATCGCGAGGGAGTGTCGTTAAGCCTGCACACGGGTTTCTGGCCTTTTCATTGCTTTTGCGCGCTCCATTGACAATCGCCTGCCGGGCAACGCGTGGGAATCGTGTAATACACACGGACAAATTTTTTTAAGTTTTATAATGAAAACCGCGACACGACATGCAATGCGCCGTAAGTCTACCCGGGCCGACCGACACGTGGTGTCGGAGTGTCACGGCTTGATCTACGTAGACCTACAAAGAATTTTGCGTGATTAAGGACTAGTGAGGTGAAGTCACACAACTCTTATGGGCAAAAAATTCCCGCATAATTGTAGATCAAACCGTAAAGGGACAGTCAAAATGGCCTAATTCGCTCTTACATTTCAAAATATAATGGTAGGCAAAAGCATGATGGGGAATTTGTGATTAGATTTTTGAAAAAGGAAATACAATTTTTTCCAAATTTCTACTGAAATTTTTAAAAAAAATGTATTTTTTCCCTAAAATCTTCAAATTTCTGGGGTAGTTTCAATCTCTCACTACCGTGGTAACCAAAAATATGTTTCCTATTTTGACCTCCCGCCACACAGTTTTACTAACAACTTCTTCCCCCCCCACCCACCCACTTACTTCGTATCTGAAACTCCGCCCCATTTTTCGTGTACTTTACACTTGAATGGTGATGAGGTAGAACAAATCTGTGTTTATTGGAAGATCAGCAGTGGTAGCAACAGGAGAAGAAGAAGAATCAGCACTGTGTGGAACCAGCCAGCTGTGTTGTTGTGGTTTTAGTCCTGGGGCTAAGGGAAGAGAGAGGACGACGTCGTGTGTCTTCAATAAAATGAGGATCTGCTCCTATTCCTGACTTTCTTGGCTGGAATTGTTCAGGTAAGCCGGGGTTTAAGTATTGATATTGGTGCTATTTGAAAATTATTTCAAAAATTTTCGATTGGAAAATTTTTTTTTTTTGGCCCAAAACTTTCTTCTAGAACTTTATCATTCCTAGGCATACTAAATATGTCTGCAAATATTATTTTTTCTGGAAAAACACTTTTGAAAATGTACATATGGATAGCAAGTTTGGTTTTAGTATTATTTTGAAAAATTATATTTTTTCAAAAAAATTTTTTACAAATCTAGCAAGAAACGATTTTAAAAACAATTTTAGTCCATTTTCTTTTTTGTTTTTTGGAAATTTCACGAAATATCGGCCCAAAATCAATGCAATACTATTTTTTCACAAAGAAATTTTCAAAATTTGACAATATACAGATCTAGGGCTTCCATGTTAGGCAGGCGCGGTTGCAGACGGCTGCCTGAAACCTGCCTGGTTGCCGCCCGCCTTAATTTTTACGGGAATTTAGAAAAATTTCTAATTTTCTCATTTCTATCAATTTGATTAAAACCAAAATAAATTGCCGAAGCCAAAGGTTGCCTTAAAGACAGGCAGGTGGGCGTTTTAACGCCGAGCAGCTTTACAAAAGCACTATACAACTCTGTTTTTGAAATCTAGCAAATCTTTAAATCAATAAGAGACATGGTGGACAAGACAAAGACATCGACAAATTTTCGACAATATCATCTATAATTTTTTTCGGAAAAATTTTAGTTTATACCTTCCAAATTCGCCAAAGTGAAAAAAAAGTTCCTAAACGTGAGATATTGTATGTCTTCTACACATACTAGCCAATATCAATAACATCTGCCAAGAAAATCTCGAACCAAACACCAAAACGCGGCGTTTGGTAACCGGTTTTCTCTTTTCCAAAAAAACTATACATAGTTTCTAGTAAACAAATACAAATGGAAAATTCAAGGTGACAGCGAAGAAAAAAAGAAAAAAAATAGTTGGTAGTCGCCTAAGAATTGCATGTAACGTCACACCTCGGCCTTAAGAGGGGTCATGGTACATGCTAGATGATTAACCATGGCAAAAGAGTGACGGACCTTCTCGGCCATGACAGTTTTTAGGTTTAGGCTTATTTAGGCTAAGGCTTCGGCTTAGGGTCGTAGGCTTAGGCTTAGGCTTAGACTTAGTCGTGCTCAAGCTTGAGCCTTCTTACACTGGCGTAGGCTTATCCTATGAGCCCATAATCTGAAAACAAATATTAAAAAAAAACCAAAAAAAAAAAAAAAAAAAAACAAACAAACAAATAAAAACAAACAAACAAAAAACAAACAAAATATTTGAATTTTTCTAAGAAGACAAATACGTTACTATCGGTCACGATTTTTGGGCTTTAGGTTTAGGTAGATGTTTAGGCTTAGGCTTTGGCTTAGCCTTAAGCTTAAGCTTAGGCTTAGTGCTTAGGCTCAAGCTTAAGCTTAGGGTTAGGCATACCTTATGAGCCTATAAGCTGCTAGTTCTGAAAAAGAACCAAATATTTAAAAAAAACCAAAACAAAAACAAAAAAAAGACAAACAAACAAATAATTTATCAGGTCCAAGTCTTGCTAGCAATGTTCAAGCCGCTCCTTGAAGGTGGCTGTGGTGTCGGTAATCCGTTTGCAAATCCAAAGGCGATCGGCGTAAGTTTTCGCGCGACAGGCACAGACAAACAGACAGACAATCGAAAGTAGTCCAGGCGCTGAATGGGTTACGCAATTGGTTTTGGGCGCCACGCGCACATCAATTATTTCCATAGATACATACATCATTCAGATACGTGGAAAACCAACACAACGTGAAGATTTAGTGGGTTGGCAAATGCATTTTATGTTTCTTTCCCAGGGTCTCTTCCAACAATTCGCCGGTGGAAATGATGAGGGGATTCGGGCCTTGCTGGAATGGCACCGGTATGTGTTGCGACGGTTAAAACGGACGTTGTGAAAATTTCCGCTTTGGAATATATTGAGAATATTCGAAAATTTTTGTAAAATTTTCGAGATTTTCTTCTAAGCTTTGGCGCGCATCTTAGGCTTAGGCTTAGGCTTCGGCTTATGCTTGCCTAGGCATAGGGCCTATAGGGTGCCTTAAGCGAATTAGGCTAAAGCTCATGACTAGACTTATTCTTAAATTTAGCCTTAAGCTTAGGCATGGAACCCTTAGGCTTAGGTTTTTGCTTACGCTTTAGGCTTTTGCTAAGGCCTTAGCGGCATAAAAAAAGGGATGCCCAAAGTAAAAGACAACTTTTGACAAATTTGAAAGTGAAATATTATATTTTAAGCCTATTTTTTCCCTAAAAAGAAAAAATTACTTTTATAGTTTAGAAAACTATTTTTTGGCAGTGTTTTAGCCGTCAAAATTATGGCTGAAAAACAAAGTTCAAAATATTTTTCATCTAAATTCTTTTAAATTTGCTCTACCTTGAATATTGAAATAGTTTAAACAATTTAAATTATTAAATTTCAAGTAAATTCTAAAATTTTGTTCATTTATTGAAGTTTATGTTCACTCTTACAATATAAATTAGGGTATAATCCTCAAACATTCCAGAAACCAGCACCAGCCGCAGCTGGACCCCGCTCAGCTCCAGCTCCAACCAACGAGGATTACAACACCGACATCGACGTCCCAGCTCCAAAGGCAACGAAGCCCGTGCAGCTCCAACTTCCACGAAGAGCACAAGGTGCTGATGATGATAATATTGATATGACTCTTACACGTCTTGGCTAACTTGGCATGGAAAAGCCCAATTCCTTTAATACAAAAAACTTTTGTCAAAGATTCTCAAAATTTTGCACTTTAATTTTTAAGTTTAATTTTTAAAAAGTTGTGGACTCTCACGTTTGTTAACCATTTTATATGCAAATATGATCCTTATTACTAACAATTTTTAGTAATCTAAACATAAATTGGAATATTTGGTCTTTTTCCCGCCGAAAATCATCAAACATTCCTTAGCAACGGAAAATTGCAGTGAATTGTGTTGGTTTAATTTTACCGTCATTTTTTCCGCATATTTTTTGCCATAGCTCTGCTGTGTTTTGTGCCATCCTTTTCTCTGTGCTATAGAACCTGTTACGTACTTCAATAAATGATTTCTTTTAAAAGTTTTCGCACAAAAAATATAGTCGAGTAGCTGGCAAAATACACGCCATGGTGCAAGAATGTCTCATTTCAGCTTGATCTACGTTGATCTGCAAAAAATGCGGGAGAATGGAGACGCCGTGTTTTCTATTGACTTTGCCTGGTTAAGAACGTGCTGAACGTCACATTTTTTTAGACAAATTCCCGCACTTTTTGTAGAAAGCCGTGGTGGGACATCCTATCCCCACTTGCGCTGGGGGGACAAACCGACATAAGTTTTGAAGACATATTACACATATACATTTAATAACATCTATGTTTTCTGCGGAGGGAAATTAGATTAGAGAATTTCAGCAAAAAAATTCTGATAGCTTTTTGATTTATATTATAAAATTGTTCTTTTTTTTTAGCGAATTCTGATTTTTACAAAAAAGAAATTTTGCGTGAAAACGCTGCCAATATGTGCCTGTCTTACCCTAAAATAAACATTAAAATGGTTCAAAAATTATCTTTTGGAACAATTTTACGGGTCACGCGAAATACTGTCTTAGTTAGTTTTTTTTCTTTGAAATTTATTATTCCCAATATACGTAAATGTCACTGCAAGTTAGAAAATTATACTTGTTCTTTTTCCAGAAATTGAAATGTACATGATACAAGGCTGATTCCATGCAAAATCTAATAAAATTTTTAGAAACAATTTTTTGTCAGAGTCTTGAATATTGCCTTGAGCTATAAGTTACCGTTTTTTTTTTAAAAAAATCAGTTTGGCCTAAAATCTTAAGACTAAGATTAAGCCTAAGCCTACGCCTAAGCCTAAGCCGATCAAGCTTAAGCCTAAGCCTAAAAGGGCCTCAGCCTAAGCCTAAGCCTAAGCCTATGCCTAAACTTAAGACTAAACCTAAGTCTATTCACTAAAATTTTGACGTAAAACTTGTGACTAAAAATTTTGGAAAATTTTTTATAAGTCCTAATGTTTGTTTTTCTAAGCCTAAGTCTTAGTCTAAGTCTAAGTTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCCAACTCTAAGTCTAGTCTAAGTCAAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTACTGAGGTCTACGTATTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTATCGGAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAATCTAAGTCTAAGTATAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTGAGCCTAGTTCAGCCTAAAAAGAGGTCTAACGCTTGCCACTGACGCACGCTCTCTAACGCTCACCACTGAAGCCACGCCTAAGCCTTTATAAGCATAAATCAATTTGAAACTTCAGACTTAAATTTTTGGTGGCCTATACTCTGTTAAATTTCGCTTGTGATCAGAAAACGGGACCCCTTTGTTACAAAAAAAACTAACGCTCGCCACTGACGCCAAGTCTAAACCGTAATACTAAGCCTAAGCCTAAGCCTAAGCCTAAGCGTAATAAGGCGTAAGCGTAAGCGTAAGCCTAATAAGGTGTAGTGTAGCGTAAGCGTAAGCCTAAACTTAAGCCTAAATCTTTGGACAAAAATTTTAAAACTTTGACCTAAACTGCGATACTAAATATTTTGGACGCAAATCTCGGCCTGAATTTTTGGAATAATTCTGGGAACTATTCCAGAGTAATTATAATTAACAAAAAAATTTTTATAGTATTCGGCGTAAAACAAAAAATAGATGCAATGTTTTCAGTAATAAGTTTGAAATTTTCGAAAAATTAAATATTTCTTCGAAACTTCGAAACTTACTTTTCTCTGGAATAACCCCAAATTCTAGCCGCCGAGATGCCCCGCCAGTATACCGCCAAACAGCCTCGCACAAAAGCCAAAAATCGAAAGATTCCGGAATATCGGACATTCGCCGTTCGTGTACGTGGTGAACACCACACCAGCTCCTCACTTTGATAACTTCATCTGGCCACAAAATGCAGCTGTCCCAGGAGCCATTCACATTTGCTCCATGCTCCTTCCAAACTCTTGCCACCACCACCAGCTCCAGGACCCGGCGGCTCGGACTCTTGAGCTATTTTTACCGACGACAGCTAGTCCGAAGCTGTTCTCATAACACTGCTAATCAAAAAATTTGAATACTCAATACCTCCTTATAACTTTTTCAAATTCCAGATGATCCGAGAAATCGCTTCATTTTCCGACAGAGGACGCTCCAGGGATCAGGATTTTGGCGCAGTCGTCTTCAAACGCTCATGCAAGCCCTTCGAAGCAGTCTCCAGTCGGAAATAATGGTGGAGCAGGAGCTGCCGCCGGAGCCGGAACAGCTCTAGGAGTAGGTTAAGCTCACTAAAGACGTCGTGAAGTTTTACTATTTTTTAGATGCTCCAATGCTTCAAGCCCATCGAGATGGTAGTTGGGGGCAATCCAATCGCGCGCTAACCAACAAAAGCTTTTCGAGTCGGACATGGTGTTGACGGTCAAGCAGAGGCGTGAGTGTGGGGTACGGCGCAATAAGATTATTGTAGGGGTACTGTAAGATCTCTGTAGGGATACTGTAACCCTACCGTGATATTATAAAGGGGTGCTGTCAGATTACTGTAGGGAGTACTGTAGGATTCCTGTAGGGGTACTGTAAGATAAAATATCTGTTTAAGAGGTTACTGTAGGGGATGCTGTAAAATTTCTCTAGGGATATTGTAGAATTATTCCGACGTAGGGATACTGTAGAATTACTGGAGGGAACTGTAAGTGTACTGTAGGATTACTAAAGAAGTACTGAAGTATTACTGTAGGGGTACTGTAAAATTACTATAGAGTACTGTAAGATGTAGGGGTACTGTAGGATTACTGTAGTATTACTAAACAAGTACTTAAAGATTATTGTAGGGGTACTGTAAAACTAGAGTACTTTTAAGAGTACTGTAGGATTACTAAAGAAGTACTGAAAGATTACTGTAGGGGTCCTGTAGGATTACTGTAGTATTACTAAATAAGTACCGAAAGATTACTGTAGGGGTACTGTAAAATTACTATTCCGAGAGTAATGTAAGATTACTGTAGGGATACAGGAGATTAACGTAGAGACACTGATCGTAAGATTATTGTAGGGGTTCTTTAAGATTTTCATCTGTAGGGTTACTGTAGAATTACTGTAGGGTACTGTAAAATTACTGTAGGGGCACTTTAAGTTTACTGTAGGGATACTGTAGAACTACTGTAGGGTAACTATAAGTTTACTATATTAGTTCTGGGTACTGTAAGTCCCCGTAGAGACTTAATAAGATTCCTGTGGGGGCACTGTTACACTACTGATAACTAAAACGGTACTGCACGGTACTATAAAGCGACCACCCTAGATTCATGGTTATTTCAAAATTGTGCTGCCGCCCAAGAGGCCCGTAAACGGACGTAAAAAGCGAAAGGTGATTAACCGGGATCCGTGTACCGATGGAAGAGTGTGATTCCCTTCCGATTCAAAGGTGGCGACGCGAAATTGAAGAAGCTGATCCGTGAAGGCCTAGGCCTATGGGGAACGGGTGTGCGATGGAGCGACAATGCCCCCGCCAAGGATTATGTGATCTTCTTGGATCGGGGTGAGTTGACATGCCCCACAGTGTAGTTTTTTCATCAGATAGTTGGTGGGTTTTTTTTCAGATGCTACTCATCGCTGTCGATCCGGAGGATCTCAACCTTATTTCGATTCGGTATGGCTGTGAAGATCTAAGTTTTAGTATTTTATACTATTTATAAATTCAAATTTTCTAGAAAGGAATCGTTGCTCACGAAGTCGGTCACTCCCTAGGTTGGCACGAGCAGTCCCGTCCGGATCGGGCTCATGACTACATCCATTTAAGAAAAGACTGGATTATTAAACCGATGGAAACTTCGAGAAACGAAGTTGGGAAGAAATCGAGGATATGGGCGTTCCGTAATGTCGGAAGTGTAATGCATTATGGGTCGAATGTAATTGTTAATTCTGAGTCGGTAGTTTAGATACTCAAAATGATTTTCAGGCCAAAGGACTGGGACCAAATTACTATTGAGACCAAAGATAGTAGAGGGAACGATTGGTCAACGGTGAGCCACATGAAGCTTTCGTTTATCGATGTTAAGCAGCTTAACAGGCTTTATTGCAATTGTGAGTAGTTACGCAAAAATGAAATAAATTTGACGACTGAGCGGATCGAACGCCCAATCTTTCAATCTGGAGTCGAACGCGATACCATTGCGCCAAGCAGACACAGTCGCAGGAAACGGATAGAGGAGAAAAGAAAAAAATAGACAACCCTACGTTTTATCAGTGGAGCGCGGTTGCAATTTAACATTCCAATTTTCAGCTGTTTGCCCGGTTGCCTTACCCTGCATGCAAGGACGATACCCCGACCGCCGAACAATAACTGTGCGGTTTGTAGCAATGTCCAGACGGTCTCGGAGGATTGTGTGGACGTGCCGCTAAGCGCACAGATCATGGACTCCACTGGAATTTATGGGAAAAAACCCCCCTAAAATTTTCCGACAAATGCGGCGGTGCTAACAGCGACCACCGAATGGCAGGAGATGGTCTACAAGGGGAAGCGGACGTGCAATTGGAAGGTGAAGTCACCGAGCGGTGGGCGGGTTCGGTTGGTGCTCACCGAGCTAAGCAGTGTGCACCGGCGTGTAAGGCCTACAACGAGATCAAGCATAATACCGACTCCCAGCAGACCGGATTCAGAGTTTGGTGAGAACCCTAGATTCCCAAAATTCTACACCTTTTTCAAAAAAAAATCGAAAATCGACCCATTTTGGCGGGAATTAAAATTCTTTTAAAAATGACAAAATATTTTTCTGCAGAAAATGTTTCGACTTTTTTTAGAAAGCAAGCTGCGTTTCACGCGGTTTTGGCTTCCCTCATATATTGAAGTGGAAGAGTTTTTGCCTAGGCCATTTCATGGCTCGGATATCTACTGGGCAGATTTACGGCGCGTCGGATTCGGCTCGATTAGTTGTAAAACTATTTAATTGTCCGAATGTGCAGTATATGCGACATTCCCACGCGTTGTCCGGCAGGCGCTTGTCAACGGTCCACTAAAAATTGAATCAGAATCGAGCCGCGAAGCGACACGCTACGCGCCGTAAACTACCCCAGATATCGCCAAGCCAAAATGGCCTAGTTAGCTCTTCGGACATTTCAATGTATGAGGGAAGCCAGAAATCCGTATAAATTTAATTTTTTGTTGCTTAAAAAAAAAAACTAAACATCTATTTCCCAATTCAAATTTCTAGCTGCTTCAACAAAACATATGACGTCATCTCCGACCACTCTGAAGCCCTGATCCTCTCCAACGCGAACATCTTGGACTACGCGTAGGGCTCCTACAAGCTGCAATGACCGATTCAAGCCCACCCCCCCCCCCTTTTTTATCCATAGAGCGCACTCTGATTTGTTCCAGACAACGGAGAAGCCACCACCGAAACCCACGACCCGGGTGTACAGCCCGGAGAGAACCATTCCGCGGTGTGGAGAACTGGGGCGGCACCATCAGAAAAGTTCATCCTGCAAGCGATTCCAAAGATCCGAGACTCGCATCGGCCACTCGAGAGTATTACTAGTATTGTTGCGGAATATGGTCTCGCAACGCTACTTTATATATAATGGATAGTCCGACCGATTTTTGCAATGGCGTGAGAGGATTATATATATATATTTGTAAATTTGGTACCATTCCAAAAATCCAATTTATCTTTCACAATTTTCAAAATTTGCTCATCTTTCACAATTACTCGGGGATTAACACATCTAATGGCTTTCAAATTCATAAATAACAGTTCATATTTAAAGTGATTATTATATTGCAGGAACACATATATCTATGCGTATCGGACAACATATTTTGACCAAATATCTCGTATCGAAAACTACGTTTAAAGGACTGTAGCGCTTGCCATGTCGATTTACGGGCTCCTGTTTTGAAATTTACACGGTTTTCATCGTTGGCTAGCTTCCCCTCAAAAATTGAAATGGAAGATTTTGCACTAGGCTATTTTGGCCACATCGTTCAAAAACTACAGTCGAATTATTAGCGTCAAAATGGTGACTACTGTAGCGCTTGTTTCGATTGTACGGCATTATTGAGATTAATTTTCTTTCGAGTTCCCTTCGTTTTTAATTTTTTGCTTAATTTGAATTTTTTTTTGAGATATTAAAAAAAATGATTTTACACGGTCTCCTGGAGTGTTCATGATTATTGGAGCGCAGTTCCTGATCCTTGCCGCGCTGATTTACTTTTTCACCGTTAGAAAATGAGTAAAATCAAAGATTCCATTGGTCAAGAAATCTGATTAAAATAAATAGGATTATTAATTTTCAAAACCGAGTCACAGGTGGTGCCAGACTGCCCCATCACGGTTTGATTAGATCTACAAAAAATGCGGGAATTTTTAGCCAAAAAATGTGTGACGTGAGCACGTTCTTAAGCATACGTTAAGAGTTGAGAATTCTGCGTGTATTCTCATTATTTGTAGATCTACGTAGATCAAGCCGAAATGAGACATGACACTTTGACACCACGGTCCGTAAATTGACGCCAGTGCTACTGAGTCATTTAAAAAGTTACTGCCTGTCAAAATAATTGCTGTTCCCGTAATATCGCATTCAGCAGGCCACCCTATGAAAACCCAAATTGGAAAAAAATCAATAAAAATTTGAATTTTGACGGAAAAAAAATTGAGACCACATTTTTGTATCTTGAATATAAACCCGTTGTTTATCACAAAAAATTAGTGAAAATCCTTCAAATCATATTATTAGTTCGAAACGTCGACGCGTAGGTGATCGATCGTACACTGGGAATTGCCGGTTCCGAGAGTTCACCGCCGTTTGATATCCTTCTTTGCAAACTTTTGATCTGAAAACATTGACTTTTGCTACCTGGTGGAAGAGCAAACTCGGTCACTATGTTTGTTTTAGCGACAAGGGTATATGCGCAAACCTACAAAATGATCTTCAAAAAAGAATTTTTTGCCCAACAAAATGAAGTGTCAGCACGTTCTGACTAACACCGTAAATCCCGCATTTTTGTAGATCTGCGTAGATCAAGCCGGAACACAAAAATATCAAAGTTTTGAATTTTTCAAATAAAAGCCAGCACACGAGAAGCTAGCCAGCTTGAACAGCAAGTAAATAAGCCACAAAACGCGCACAAAGCTCAAGATCAAACGAGAACTTGGTCGCCCGCATTGAAACTTCTGTCATGTGAGAGAAACGGTTGGGTGGCGTGATCGTTCAAGACAAATGAAAGCATGTAGACTAGTCCATCAATCAGATAGACTGCCGCAATGACTGGCAAACCCTTTGACATCCTGCTCATCAGAACCCTGGAGAAGCCCGCAGCAAACAGACGAAAGAGCAATGTAACTGATGAGGAATAGAATGAGCTCACGGAGAAGTTGAAGAGATCTAGTCGGTGCCCGGGCTACTGCTGCTCCTGATGCAGAATCCGGTGATGGGATTGGCGGCGGCGGCTTTTGCGAGATCGCGAGCTGGCATCGACTAGTGGAGCCGTCCCAGGATGAGCATGATCACGCGGGTGCTGGAGTCGTCCTAGAGAAGATCATTTTTTTAAATCCGTTAATGGACGGAAAATTTATCATCTGGAATACAGGCTGACTAGCCCTATTTCCCGTGGTAGTGTCTTATTTCGTCTTGGTCTACCATGATCTACAAAAAATGCGGGGAAAAGAGACGCAGACTTCAACTCTCAACGTATGGTTAAGAACCTGACGTCACATTTTTAATGTACAAAAAATTCCGTCGCATTTTTTGTAGATCAAGCTGTAACAGCACAAATTTCAGCCCTCAATATATGCGATGTCCTTGTCGCCTTATTCCACGACACACAGATCAAGAGCTAGTAGCCAGAGACGCGCCGTGTAGTAAATCAGTGAGGCCACTAAAGAACATGGAACATGGGAAAGCCCTCCGACGACCGACGAAGGTGATGTAATCGGTTCACGAAATCTGACTGTCTTTGGAACTTCCAAAATTCTTTTTGAATGGTTCGAAAATATTGAGTTTGAGCCTAGTTAAGTCCATTTGAAGTTGGTGGCCTAGGATTTTTAGGAGTATTCTAGGCCGCCAACTTTGGACAGCCATAACTTGGCTGAAAATGAAAATTTTTGAAATCTAATTTCACAGTTGAATTTAGCAGACAATGAGCTTAAATTTGAGAAATATTTTTGCGCCTTGCCACGAAAGCAGACCTACAGTAATCCCGCCATGCATAAATTAATGTTAACTGAAAGCTCAGAGTATGCTAAATTTAAATACAAAGTTCGATTTCCAAACATCTCGATTTTCAGAAAAATTATGAAGACGCTAAGTTGATTGGGCCTAGCATTTTCCTCAGAGTATTCTAGGACGCCAACTTCAAACGCTCATAACTTGGCTCAGAATTAATATTTTAGAGCAAAATAACAAGTATTTAACATAACAAAAATCTTGTGATCTACCGCATACAAGATGCGCCCAATTTTAAATATCTAGGCCACCAAATGAAAACCGTGACTCGGCTCAAAATTATTTCTGCTTCAACCAAAAACCAATTCATTTATATAAAGCCCGGTGTCGGCTCAATTCAAATACCAAGTTTATTTTCAAAATACCAATTTTCAAAAAAGCAATGAGCGTTCTAAGTTGGTGGCTAGGATTTTCATAGATATTCTAAGCCACCAACTTCAAACGCTTATAACGTGGCTTAAAATCAATATTTTCGAGCAAAATAAAAAGGATTTAATAGAAAATCTTGTGATCTATGCAGAATGCATAAATTCTGCAGAGGTCACTAAGTAAAATATTCGGTGCCACAAGCCTCGGCCGAAAGTTATTATTTATGTCTGCTGAGCCAACAACCAAATTCTCCAAAAACTGCTTACCTGATTGTCTTTAAACGAAATGCTCACAAGATAAACCCATGCAAAACGAGAGAGAAGAAAATGGACGGCCAGTTTTCGTAATTACTGTGAGTGGAGCATCTCGAGACGTCTAAAAGATCCTGTTTTTGGAAAATTAGGCCACACATCACACAATCCAACACTTACGACGAGTATGAAGAGTGATAGAAGTGTTAGTATTACAGAGCTCAGCGAGAGAATCACCAAGCGTCGGGTTGCGGATTCACGTCTGAATGTACTCATTTGTTACTGAACTAGGTCTACCTAAGCCTAAGCCTAAAGTAAGCCTACCTGCCCAACCTTCGGTTCGAGCACTAAGGCACACACTTTGAGGATCGATTCAGGAACAACCCGACCTGGGCATTTACCTTTGACGCAGGCGGTGATCGACCTCCCGTTGAATATCTACGTCGATGCATTACCGTCGTCCTTCTGGAAAGACAGAAGGACGATTGATTTGAAGCTCTGTATCTAATTACCCCTGTTTGATGATCAGAGGACGGACAGATTACAATCAGATGTTCTCTGTTTTTCTCTGTTTTTTGGTAGCTAGTATAGAAAACTATAGAGTACTGTAATTCCTATTTGGGGCTTCAGCTAGGTATTGTGCTATTATTAAAAAAATACAATTGCACAAATTTCTCCTGATTTACCTCGACATGTTGAGCTTGACTCCGCCCCCAATCTTGTTACTCTTTACATTAAGGTAGATGAAAAAGGAAGATCAAATAAATGACGAGAAAATTGTGCGATGGAATTTTTTTCTATAATATCAAACTTTTATTTATCATTTTAGGACATTCTGTGATTAACTTTTATAGTTTCACGGATTTCTGGCTTCCCTCAAGTGTAAAATTGAAATTGAACCTGGCCCTAAGTTTTCACTGGACTAGGCCATGTTGGCTCGGCCACGCGTGGCGCGTCGCATTCAGGCTCGATTTTAGTTGTAAAACTAAATATTTCCCACCCGTTGTCCGACAGGAGACTGTGAATGGAGAGCAAAAAATTCATTGAGGGAGGTTTCTATTTGGCAGCTTTTGGTTAGTGGTCTTTCAAAAAATTTTTCATAATTTTCAAATGATCATAACTCTGAAACTACAAATTTTTCGGCATAAAAAGTGCTTAATATTGTAAAATGTTGCTCTGTCTAGTCTATACGATAAATCCTTATTGTTCTCAAAATTTTACATTGATAAACAGGCCAATAGGTACAGCGCCCGACAACTCGCGGGTCCAAAATTCAAAAATGGCCAAACTTCGACTCGCGAGATCTCGAGGGCTAAATCTATTGACTTTATTTTTTTGAATTTTTCAATTGGAAAATTTGTTATCCAATAGAAAAATTTATGAGCAACATATTATTAGTTAAGCGTTTCTTGCCAAACATTTTATATTCAGGAGCTATACTCATTTAGCGAAATTTTTGAAAAAGGCAAACCAAAAAGCTGGCGCGGCAAACGATTTTTTCCCGCAAATCGGCGAATTGGTGCCGGAATTAAAAATTTCCGGTAAATCGGCAAACCGGCAAATTGTCGAATTTGCCGAAAATTTCGGCAAATTGTGGTTTTGCACTGTTTTTGGAAATTTCAGAATTCCAATTTCAAATTGCAAAATTATAGGAAACTCATCCTATGAATGTTTCTATCTATTTTGAAAAGTAAGTAAATTCTATGAAATTATATAAACGACGGAAAAAATTAAGACCTCGTTTTAAGTGTTTCCGTCTTATCAAAAAAGCCCTCTTTTATCCGGCAAATTGATATTCGGCCAACGAGGGAAATTGGCGAGTTGCCGGAATTGAACCGATACTTAAACTTTCTTTCGCTGCAAACTTTGCCCTCTCATCTTGAATTGCTCCTCGCTGTTCATTAACTTTGGCCCTTTCATGCACTTTCTCTTTGTTCTCCAACGGGATATCACAACGAATCACATCGGGCCACTTGAATCCGTTCCAGCACTGGAAGACACTTTTCCTGGACGGAAAGACACAATGGACGGCATGGACCAATTGGGTTGGCTAGCGTAGTTGAAATTTGAACGATGATAAGATAAAATTGTGCCTGATCTCTGATTGAAGTCACTTTCTCGTTGCACATCGGGAAGTGACGGAGCACATGAAGAATCTACTCGGAGCAGATAACGGAGAGCAGGAAGAAGGCTTGTAGGTGCGGATGGATTCAGGAGGCGTCTTTGCATGATTCCGCGTCGACGAGATTTGTGCAACTGGAATAAGGGCTTGTAAACAACGTTTGAGAAACTTGAGATTTACAGGGTCAAAAATTGCTCACGACCTCTCCGGGTGCCGATAAGTTCTTGTGCGGAAATTTGAGCAACCAAAAGTTCTGCCGATTGCCGTATAAATCGGGTACGGCAACTTCGGCAATCGCCGGTTACCGAAGAATGTTTTAGAGTTCTGCAACTTCGGCAATTGGCGGTTGCCATTTCTCTCCACGAAATTTCCCACTATTAGATTAAACAGCAAGTGCAAGTGGGGGTGACTCAAACAGGAAAGAAATCCGGCACTGGTGCCGACTTGCCGGAAATTTTCAATTCCGGCAAATTGTCGGTGTTCGGATTTGCCGTGTGCCGGCTCTCAGATTTGCCGGAAGTGTGTAGAGGGATTTTTATAAGACGGTAACACTGAATACTCCATTGTGCCTTTTTGAATTTTTCAGTGTCGTTTTCTTTGGCTATTCATAGAATTTGCTACTTGTATGGGCAAAAAAATGTAGGAACATTCATAGGTTTAATTTTGCTATTTGAAATTGAAACTCTGAAATTTCCTGGCCAAAAAAATGCAAATCCACAATTTGCCGGAATTGTTCAATTCCAGCAATTTGCCGATTTGTCGTTATGCTGGTTTGCCGGAAATTTTCAATTCCGGCATCTTGCCGATTTGCCGATTTGCCGGATTGCCGAAATTTTTCAATTCGTTAGCCGTCCACCCTGGATCCTGCCATCCAAAAAAAAACGGAAACCATTTTTGGCACATTGACGTTTTCCGCCGGCAAATTCGGCAAATCCATGTCAATGTGCTGCTGTGCCGTTTTGCCGGTTTGACGGAATTTTTCTATTCCGGCAATTTGCCGATCTGCCGACTTGCCGGTTTGCAGGAAATTCTCAATCCATCCGGCTCAATATGCTGACGATTTGTCGGAATAAATTTTCAATTCCGGCAATTGACGACGGTTTACGGCTGGAAATTATCAACTTCGGATTTTGCCAATTTGCCGTCTGGCCAAAAATTTAGGGTTAATTCGGTTCGCCGTTTTGCCAAAACTTTTAGGGTTCGGCAACTTCGGCAGTTGCCTGTATCCGCACATCCCTGTCCCACACCCCAGGTGGAAGAACTGGTGGGAGTTACTAGCGGGTCCATCAAGAATGGGACAATCATCAAGTCAACACAATCCTTAGCCGACCTTCCCAAATTCATAATTCCTTCCTTCCAAAGGCAACGGTTTCCGGTCCTTCCAACTGCTTAATACCAGCCACCACCACCAAACCCTCTCCTTCTAGAGAACAAAGTTGCATACCCCCTTTCATTGTTTTGGAGAAAGGGGCGTCTTGTGGTGCTAGTCCGGAGAGCCTGAGGACGTGACAAGTGATAGACGGGCTTATACTATCGGCTCGTCCATTGGATTTCATGCGCCTAGGCAGAGTGCACGGCGGGAGGTGGGGACGCAGGTTCCCGTCCAACTATTGCCGCAGAGCATCCCCTATCTGCTCCTATCAATTGTTCGGAGAGACTTTTTTGTGAATTTTGCCTTTTGCAAGAGGTCTGAGATTTGGGATTTGGGCTTTAGCCTTTAGGCTTTAGGCTCGCTTGCCTTGCGCCAGAGAATGGAAATTTGTCCGTATTTTCCCGGATATCAAAATATGATCGAGGCAACTATAAAAATATAGTAAAATTTTCCAGGTTTTTTGTCAGTTAGTATTTATTGATTAAAACAAAAGAGAGCGGAGATATAAGCTGTCAAAGTAGAAGGGTGGTTTGATCTACAAAAAATGTGGGGATTTTTTTTCATGCTGATAAATAAAAAATGACTCCCACAAATCCAATAAGCCTCAAACTTAAGTTCCTCCAATCTCATCCCCCTCATAAACCATTAACTAAATCGGAGTACTAGATCGCCGGTAGTATATATCAGAAGAACAGTTGCTCTCCCTCTCGAACCGACTTACACTTGAGAAATAGAATAAATTGTGGAAGAGAAGTGACGACATCATAACCTACCACTTCACAAGTTTAGATATATATATATATATACGTACTAGTTGGACTAGCTAGGACCTAATTTAGAACGCATAGGTATCGCCTGTAAGTGAGGACCTAATTAGAACTCACTAGGACTATAGTATATATATATATATATATATATATATGTAAACAAGAACCCGGGCGGGTAACCCCTTACGGTCAGAGGGGTGTCCTACACCAAGGGTATGTAAAACCGTGTCCTCCAGATGTCGACGTTGAAAGGGAAAAAGTGCAAAAGCGCGCGGCTTCGCGCAAACCGTAGCTGATCCAATGTAGCAACGTTTTTGATTTATTGGAGGAGATATTTTGCCAAAAGTGAAAAAAAAGTGCCCCATATGAGATGCGTAATAAAATTCCCTACAAGACCTTAAGAAAACGTGGCGTTGGCTGGCAAAAAACAGGTGGCAATGATAACGGTGTAGGTGTGCTTGTGTGTGTGTGTGTGTGCTAGAAGAGCATAGGCTCGTGAATCGTTATAATTGATGCTGGAGGAGAAGGAGACGATGGGCCTCCAAAGTGTTACACCTGGTATTGTTGGGAAAAAATTGGGAGAAATAGGCATTAAACTACCTAACCTAATTGAGTTTCAAAGCTTATCTTATTATAACTAAGAGGTGTGATAATAGATAATTAAAGAACTTTAAACTTATCAAAACAACGCTTTCAAATCTGTAAAGCTGAATTAGGATTTGCGTAGTACTAGCTAAAATCTAGTTGGGACCTAGGTCTGAGACTATCTAGAAACTTCGGACGGAACTATTTAGGAACAGTTAAGTCTTAAGGCCTGCTTGGGTACAGGTAAACATGTTTAGAATAGGAACTAAATAGGGAAGTACTAGTTAGACTAGTAAGACCTAATTAGAACCTAGGTAAGGCCTGTCAGTCAGGACCTAAATAGGGCGTACTAGGACTTAGGTCTAGTTAATGTCTTATTAGGACTAGTTAGGACTAGCCCTAATTAGAACCTTTTAGGTACGGCCTGTTAGGGAAGATCTGATTAGGCTTTAGGTAGGACTAGTTAAGATAGAGTTAGGCGACTCGAAGTTAGGACTAGTTAAAATTTAATTAGAATCTAGGGACCGTCAGGACCTAATTAAGACATACTAGGGCTTAAGTAGGACTAGTTAATACTAGTTAAGAACTGAACATAGGCACTGTCTCTTAGGCCTAATTAGGACTCACTAGGACTTAAGCAGGGCTAGTTTAGTTATTGTTTGCACTATTTGACTAGTTATGTACCTAATTTAGTACTCACTAGGACTTAGGAGGACTACGTTATAATGCCTTGTTAGTAATATTTAGGACTAGTTAAAATCTAATTAGAACCTAGATATATCCTGTAAGTTAGGACCTCATTAAGACTTGATTTCCGCTAGGATTTAGACAGGACTAGTTAAGATATTGTTTCGACTAGATTTTTGACTAGTTAAGAGCTAATTAGATCTTAGGTACGGCCTGTAAGTTAGGGCCTATTAGGACTGAATAAAAACTAGTTTGTTACGAATGTAGTTAGGACTAGTTAGGACTAGTTAAAACTTAATTAGCACCTAGGTACGGTCTGTTAGGGAATACCTACTTACCAGGCCTTAGGTAGGACTAGTCATGACCTAATTAGAACCTAATTATAACCATTTCTGGGCACGGCCTGTTAGGGAAGACCTAATAAGGACTTACAAGGACTTTTGTAGGACTAGTTAGGACAAGTTAAGACCTATAGTGGTTGTCCTGTAACTTCGGACTAGGACTTACTAGGAAGGTAGGAAGCTCGTTAAAAGGAATAGTTGAAAATTGGGACCTCATAGTTAGACCCTTAATTTTGTACACATCCTTATTAATATCAAGACACATTTTAAAAAAAAACGACTTTTTTAAGTTTAGCTATATAAAACTATAATTATGGAAAATTTGCTGCTTTCCTTGAAATTCGAAAAACCTAGCGTTTCTATAAAAAACCATCTGGAAGTAAATTTTGAAAAAACCCCGTCATCCAACAAAAAGAAATCTCACTCACTCACCTCGTTAAGTTATCGGCAAATCTTTGCACATCTCATGCACCTTTTGACACCTCTGCCCGTCCACACCAATGTCACAAAGAGCAACAGGAGCCTTCCTAGGTTACCCCGAACCACGACAGATGGCATTAATGCTAAGGAATTGGGCTCACAGCCTAGAGAGGGTGGGGGAAAATATTGAGAGTAAAAGAAACAATGAGAAGAGGGAAAGACGGAGGATAGGCGGGGGGGGGGGGGGGGGGCCACAACAGTGGCAGCACCACCAGGGCCTGTCCGTTGACAAATGACCCAAACGGACGGGTGGGGCAGACCTGTTGTGTTTGTTGGGAGATGGCTGGCGGTTATCAGATACTTGTATTAATGGTATAGAGAAACACCAAGAGAGCTGAAAGATGGAGAGGCGAAAGAGGAAGAGAGGGGGGGGGGTGGAAGTTTTTACGAGCCCTTAATAAATATATCGAATCAGGAAATCATTTGATGATAACGGAGGAGCGCGGGGACGGAGACGGATCATCATTATGAGGACCGAGGGGTGTGCGGCGAATTTTTGCCGAATTTGCTGTTTGCCGAGCTCCGCAATTTACCGAATTTGCCAAGCTCGGCATATTTCAAAAAAGTAGATTTGCCAAGTTTGCCGAACTTGGCATATTTCAAAAAAGTAGATTTGCCGAATTTGCCGAGCTCGGCATATTTCAAAAAAGTAGATTTGCTGAATTTGCCGGCCGAGTTTGCCGAGTTCGGCAAATCTGCCTTAGCCGAGCACGGCATATTTCAAAACATTTGCCCGAATTAGCCGACCCGAGCTTGGCATATTTCAAAAAAGTAGATTTGCTGAACTCGCCGATCTCGGGAAATGCCTATTTAGCAGCACGGCCTAGTTCACAAAAGTAGATTTGCCGAATTTCCCGAGCTTGGCATATTTCAAAAAGTAGATTTGCTGAACTTGCCGGGATCGGCATTTTTCAAAAAAGTAGATTTGCTCAATTTGCCGAGTTCGGAATATTTCAGTAGATGAACTGTGCCGAGCTCGGCATTTCTCAAAAAAGTAGATTTGCTGAATTTGCCGAGCTCGGAATATTGCAAAAAAAGTAGATTTGCCGAATTTGACAATCTTGCCGTGCATGTTCCCCAATTGAGTTTGCCGAACCATACTTGGTCCAAAAAAGGAGATTTGCCGAAATTGCCGAATTTGCCGAAACAATGTGCCCATGGCGAGCTCCTGTTGATTTTTTTCCAAAAATTCAGTAAAACGACACAAATTTGTTTTAAGAATTCATTAGTTTCGGTGCTCCGAACAACATCACAAAAGATCAAGGGATTTTTCCGAAGTTGTTAAGCACAATTTGCCAAATTTGCCGAATCCGCTAATTTTGAGATTTGTCGCACACCCCTGATTAGGACCGAGCAAAGGGCCTAACATGATCTCACAATTTGAAAAATGAAATTCAGGGATTATTCTTGGGAAAAAAGTATGAAACTCTTCCTCCGCCCGTTTCCGGCAGAAACAATTGAACCAAACGAGCCAAAAGTGCAGTGTACAGACACTTTGTTGGGAGTGGAGAGAACCAGAAGAAAGATGGAACTTTCTTGCGATGAACAAATTTTGGATCACTGGAGGGAAAGATTGGTGTTTATTAAGCTTTTTAAGTCAATATTTAGAACTCAATAGGCCCAAACAGGCCTAATAGGCAAATAGGCGAAGTAGATTAAATATGCCAAATAGGTATAGGTTGAATAGGTAAACAGGCCCAATAGGTCAAATAAGCTATAGGCGAGACTGTTGCTCAGATACTTTTTGACCTGGTAATGTTTTTCTACACGAAAAACAAAAAAGTCCCTGCTCTATTAGTTTCGGCAGCAAAATTGTGATTTTTTTCAAAAGTTTCCCATTTGTGCCACTTTTCAATAGTTTTTGATGGGTTAAATCTATATTTTCTGAATTCAGCTTATATGAATTACCCGTTTTCAACAAATTTAGGCAAATTTTTATTTTTGCCCAATCTTTTTAACCATCTAATGACTGATTTTGGGTAAATTTTCCTGAAATTGTACAAAAGCATTAGAAATTGATAGGCCAGTTTATAGGCACATGAGGTTTTTCGGAGTGGGTAATCGTCGTTAGGCGAATTATTTGGTTGACAAATTCGACAAATGCTGGTTTGCCGATTTGCCGGCAAGTATTTCATTTCAAAATATATGTAGGAACATTCAAAGGACGGTTGCTTACAATTTTGCCGGATAAAATTTAAATCTTCTGAACTGAAATTCCTTTAAAAAAAATGTGCAAACCCATAAGTTGCCAGATTTCTAATTCCGGCAATTTGCCGATTTGCCGATTTGCCGTAAATATCAATTCTGGCCAATTGAAGATTTGTCTTATTTTCCGACTTGCCGCATCCCCTGATGTAGGCATCAAAACGAATGTACACCAAGTTTTTTTCAGAGTTTTTAAGTTTACCTTCTAATTATAATTTTTAGTGAGGCTCAAAAAGTTCCAAAATTAATTCTGAAATTTGCTCGGCAAACGGCAAATTTTCCGCACACTCCTGTTTTAAATGTTCACCGCATATTTAATTATTCCGGAAATCTGATTCCCTCAAACAAGTTTCCATCAAAAGTGTTTTCCCTGATTTGTTGACTCTGACACCGACGGTGGTCGTTCCCCCCCCCCCCCACTCTCTCAATTGGCATGTAAATGACCCCGTATGAATGAAATGCCTTTTGGCGGCATAATGCATATCGCCTAGTACCATTATTAATCTTCCATCCCCCATTGTCTCCATCTATATAGGGGGGAGGATGCGTGATGCGTGAAATATGCAAGTGAGACTTCAAATTGAGCGTGTGAGATGTAGTGGCAGATGGCTGGCTGACAACGGATGAGCTCAGTTCCATCGACTGTATCACACGGAGGACTTGGAAGAGAGCAGGGAGATGGATGGGGGCAGATGGCGTCATCTATGGACCATTTTTTTTGGAGCTGTTCACTCAGATATTAGGGTATTCTAATCCCCTTTTTAGGTCTATTTCTGATCGTAAAACTTGTTCTTTTCAACTCATTTTTAATTCAAAAATTTCAAAAGTTTGTCGTAAAAATTACACAAAAACCTAAATTTTGATCTGATTTGAGGCATTTTAGTCCCTTGTTAAGCGTCTTCGATGCACCATTGTTCAACTTGTTTAAACTTTTTAGTTCCGCATTCGAGGAAAATGGAAAATAAAAAATTTGTAAAAACCAGACTTAGATTCTCCGTAACAACGCTTTCATGGGAGGTCACACGCCCGGTTTCACGGCCTGATGCCTACGTCAAACCTGCCTCACGCTGAGTCGGCCTCACGCTCCATTTCTGAATTTTGGCGAAAAATCAAATACTTGGTCATAGTGAAAAGGTAATTTTTTCAACCCGACACTTTTCGGGTTCCGCGCCGCACTATACATGAGGCGAGGCCCGCGGCGCGAGGCAGGAGCGGAGGTCGCAGCAAGGCAGGCGCGGCAAGCGTTTTTGCTTGCATGGATACCCTAGTCTAGACAAAGCACGAAGTTCTGGCTTCCCGCATAAATCGGGAAGAGTTTTTGCCGAACTTGGCCATTTTGGCTCGGCCATATCTGGGGTAGATTTGGCCGTCGTGTTGCGTGTCGTCGCGATTTTAGTTGTAAAACTAATTATATTTGTCCGTGTGGAGTACACGACTTTCCCATGCGTTGTCCGGCGGGCGCTTGTCGATGCAGCGCAAAAAATTCAATAAAGGCCAGAACCCAGTGAAAAAGATAATTTGCGACACTTATAAATAATGTTTACCATAAAATTTTTTTTTGTAGTTTTGATTTGTGGCTCTCCTTGTTTTAAGATGTGAACAAGTTTCATCACCGCTGTAAATTGGTGGATTTGTAAAAAATTATGTATTTAAAAATCAAATCTTGATTCTCCGGGATAGAAGCATAAATCAAATTTATTACTGTAACATGTTCACTTTCAGTACGTTTCATTGAAATTTTTAGGCTTTGAATTTTAGGGCATCATAGTTTTGCCTTCAAAATCCACTTGCCCAAAAAACAAGCCAATTCCTACTCGGCGGGGGACGATGGTTCGATAGCATCAATCATATCGGTGTGTGTGTGTGTGTGTGCAAGGCGGGGGATGTAGCTGGCGCGCGAAACGAATAAATCAAGAAACGTCTCTATTTCTGCGAGCACGGATTTCGTTGAGAGCCCGGGCGCTCACGCGGTCTAAAGGAGGAGAGGGTAGTACCACTTCTAATGCAATACAGGGCATACTTCTTCCATTTCCATGTTTTTGTACTGTGATAAACCAATTGTTAACTAGCCAGAAGTGGTTCACATGTTCCGTAAAGGTTTGCAGGGTGTACTGATAATGAATGTCTATTGCTCTGTGAGGAGACAAAGAGGCAACCGAGAGCAAGTCAGTTAGGTTAGGCAGGTGACTTTTCAATTGTGACCAGGAAAAAGTACTTTGGGAATTTTTTTTTATTTTTTGGCTACTGGCCAGATTTTCAGGATTTTTCAAATATTTACAGAAATTGATTCTACATTATAATATTTCTGTAATTTTCTCAATTTTCAAAAAATAGCCAATTAATTTTGAAGTTTCGAATGATTGCCGATCACAAGTTGCCGACTCCCAAGAACACCGGCAATTGATGGCCCTTTGCCGGAAATTTCGAAAACCGGCAATTGCCGAAATTGCCCATTGCCTTGGAAATTTCGAAAACCGGCAATTGCCGAAGTGGCCGACTCCCGGAAATTTTCAAAACCGGCAATTGCCGACATTGCCGACTCCCGGAAATTTTGAAAACCGGGAATTGCCGAAGTTGCCGACTCCCAGAAATTTTGAAAACCGGCAATTGCCGAAAGCGCATTGCCGATTGCCGGAAATTTCGAAAACCGGCAATTGCCGAAATTGCCGCTTGCCGGAAATTTCGAAAACCGGCAAGTGCCAAACTTGCCGAATGCTCCGGAAATTTTGAAGACCGGCAATTGCCGAAATTGCCCATTGCCGGAAGCCATTTCGAAAACCGGCTGCCGACCAAATTGCTAGCCGGAAATTTTGAAAACCGGCAATAGCCGAAACTGCCCTTTGCCGGAAATTTCGGTGCGAATACCGGCAACGACCAGTTTCCGACGAAATTCGAAAACCTGCAATTGCCAAAATTGCCGCTTGCCGGAAATTTTGAAAACAGGACACTGCCGAAACTGCCGAAACTCCCGGAAATTTCGAAAACCGGGAGACCGAAATTGCCGACACCCTTTGGGTAATTTCGAAAACCGGCAATTTCCGAAATTGTCGATTGCCGGAAATTTCCGATCCCTGAGTTTAGCCTTTTTCAGCAAATCAAACAGTTTATGATTCTTTTAATTCAAAAATTGTTCTGCAGTGATCTTGCATCACTATTGCTGTGGCCCTCCTTTCAATACAGTACTTTCTACAGTACCACTACATTATTGATGCGTAATTTCCAGTAATGCCATTCGTACACATTGTACCACTACAGTTCCTACAGTACCCTATACAGTACCGTCGCAAAACAATTACCGTAACAATGGAAATCTTATAATAGACTACAGTGTTATACAAAAACTACAGTAACCCCCTTGAAGTTAGTGTACAACTTGTAAATGACGCTTTTTTCTTTGTTTTTTGCTAAGTTCAGAAATTGTAGAGTGTTTTTGGCATCTGCTCAGATTTTCAGAAATTTTCGTGATTCTATAGTAGTCTTTTTAATTTTCTCAATTTTCAGAAGTCTGCAAATTTAAATTGAAATTTCGTGAATAGCTTAAAAAAACTCAAACAGTTGGCACAAATTTTCGTAGATTCATGTACGAGTTTCAGCCTTGTTCAGCAAATCAAACAGTTTTTTATTTTTTTTTGATTAACGTTTTAATTGTTCTCACCCCCTGCAAAGTACTATCAGGTCCTAACGGTAATATTAGCCTACCGTATCACTACATAGTAATCTCCAGTACTTCTGTGCATGCTGTACCCTTGCATCATCATAGTGGTCTTTAAACCTACAGTACTTCTGCAGTAGCACTACAGTACCACTCAGAATCTCTCCATTAGATAGACGGCGTCTCGTATCGTACCACTACCGTAATCCTACAGTACCGCCACAATACCATTACGGTAACACTATGAAAATCTTACAATAACAGTATACAGGCCGGAAACTAAGCCCCCTTGAATGTAAAACTTGCAAATCTCTACCGTTCCTACAGTACCCCAATGCAGTACCACCGCAATACAGTTGGCATAACACTATGAAATCTTACAGTACACTACAGTAGGCAAAAACTACAGTAACCCCCTTGAAGTTGGTGTAAAACTTACAAATGTTCAGCTTTCTTCTACAAATTTGCCAATAACTTGTAAGTTGGGGGAGCGCATCGAACTGTATACATATATGTACATGCCAACCAATTATTTTATCAAACAATTTATTAATAGTCGAAGACACCTGAAGCAACGATTAGGAGGAAGAACACGGGCAGGGAGATAGGCAGAAGAAGAAGAAGAAGACGAATTAGTTGAAGAATCTGTTGAAACGGACGACGTTTGTTTGTGATGTCGCTGTGCGACAGCTTCTCGTTGCGGACGGAACGATGTTCGCACGGCGAATTCGGTGGCGAGATGTCGGACACGTCGATTGTCGACGAGAAGGGATCAGTCGAGACGGTTGAAGAATGCTGAGGAGGAGGATTATGTCGACGTTCCCGTCCACGACACGGGCCTGGGTACAAGTGATACAGACGTGAAGGTTACAGAAGATGTTCACCCCGTTGCGGAGGTATAATAGTCGTTGAGAGGTGGGTGGTGAACATGAACAAAGAACTTAAGAGGCTTCGTTGGGAATGCGCAGGCCTTACTGCTATGTGGTTGTAGAAGATGGTCTTACCATTGCGTCGAGGCACTTCAAAGTCCCCCCACACCTGGAACACAAAATTTTCAATGGTAGTCTCAAATAATATGCAGTGGCCGATGCACTAGGATAAATTGCCAAACAAGGTGCATCGACGCTAAATAATTTTCTTTTGAAATTTCATTTAGAGATGTTTTGCTGCGCAGACTTTCAATCATCTTTTTAGTTTTCCTCTCTAATATCATCAGTGCATCGAGAAAAAATGTTATAGCAGGAGTAAAGAAATTTGAGACTTTACTTATTTAGACCAAAAATGACCCAAAATTAACGAATTGTTTAGTAAGACGTTTTGAACATTTTTCAAAACAAAGTTCTGGCGGTTCAAAGTTCTGGAAAATAGCACATTTTCAGCTAAAATCTAACCAATGTTTTGGGGGTGTGGCTGGGGGAGCTAGGAATCAAAATGTAATGTCATTTTTTTGTGCCCCACTGCCCGTAAATGGACTTTAAGCGACGAATAATAACTGTAAGGGCCACAATATTTATAAAAGAGTTATAGTTATAAATAGAAATTGAGTTCCGCCCGACCGAGAAAAAACTTGACGAAAATTTAGCCTTAATTTTAAAATGGGACTTTTTTTCCAAAACATTGAGCGATAACTCTTTTTTGAGAATTTTACGTGTCATTTAGAGTAAATTCGGTAGATTTAGGTCATTTTTGATTACTAAAAAAGTAAAGTCTCAGATTTTGATACTTTCTCGATGCACCATGATGAAAAGAAAAAAAGAGAAAGTTTAGGGTTAAAAAAAAGAAATCCGTAGAACCCTTCCGACGTTTTGGGAAAGTATAGCAAAACAAAAGATTTGTAAAAAATTCAATTTCAGTAGGTTCCCCCTATTAAATTCTCAATTTGTATCAATGCACCATACATTTTCAGCGTGAGATTTTGTAAAATGGACAGGAATGAAAATTGATCAGGTGTGTATAAAAAAGAAATTGACATTTTGTTTTTTTTTTTGTCAATACACCATGATGAACTTCACGTCAAACATGGTACATCCTGGAAAGGAGAGAGTTTGAAAAATGTATCATTTTATTCTCGATGCCATGAAGATTTATATTAGTAGAAAAACCTTAGCATAAGTGGCATAAAAATAAAGGTGGAGTAGCGTGGGGATTTTGTCTACACTTATTATGATCCAAAACGATAGAATATCTTAATTAAACACTCCAAAATATTTAAGATTTTTCAAAATTTCCGGTAAAAGTTTTGGCAACTAAATATGCTTGAAAAAAATATGAGCTTTTGAGGAAATCTCATCCAAAGCAATGTCGCGTGTTTCGACCCACTGTTTTTATGGTCGACAATGTAGAAAAAAATTTTTTTTTGGTCGACTTTTAAAATTAAGATGGCAAAAACTTAGTAATTGCCTATTTGACAATAAAAAATTTTCAAAATTGAAAAGTTTTATTATGATATTCGATTATTCTGGCACCATGTGAGTATGGTTTGTAGTAATTTCCCCACTGGGCTACTCCACCTTTGCTTAAAATTAAAAAAAAAATCATAATCACAGGGGGATTATTTAATATCAATGAAAGTTTCGATTTTTCCAAATGTATCAAATGCAGTTTTCAGCGCGAAATTTATGTGCAGTACTTTTTCTTCCAATAATATATCCCGAATGATGCATTAGTTATGGGCTACACGATTTGTTAGAAAAACTGGCCATGCTTAAAGGTGGTGAACCGAAACTTGATACTCTGTCTTTTTAGATCCAAAACGGTCCAAGACTACCTATCGAATATTCGTATTAACCTGTTCTGAAAACTTTTCAAAAAAAAAAGTTATGGCCGTTCAAAGTTTTGGAAAATGGTCGATGTTTAGCTAAACTCTCAAATTTTGGCAATCAACCGTCTGTCACAGTTGGAGCTTAATGTTAGAAACAACACGTGATAAATTGCAAAAACATGCCTAAAGGTTCCAACCGCTCCGACACAACCAAAATTTGAATTTTCGCTAAACGACCATTTCCTCTTCCAAAACTTTGGGAGGTCATAATAACTTTTTTTTTTGAATAAAATTTTCAAAACGTCTTAATACGAAATTTGGTAGTTTTTGGACCATTTTGGGTAAAGGCAAAGTATCGGCCAAATTTTGGTACTTTCCACTCAGCCTTTCAAGCAGAGCCCCTTTAAAAGTTTGACCGAGGTCCCAAAATTTTGTAAGTTTCTTCCATGAACCATGATGATTTTGAGCAAAATGTTAGTTTTTTTTTTGTGCTTGAAAAACTGGTGGCAGGACAGTTTTCGGGTGTTAATAAATATTTCGATTCACTATGTTTTTTTTAATGAAACCGTACCTCCCTTCAACACAAGTCTGCACATCCGTTCCGTCTGTGGTAGCTCGGAGATCCCGCCATTCGCCCAACACCTTCCGATTCGTCCATTCTGATCATCGCTCATTTCAACTGTGTACGTCTACTATTTACAAATGCTAGTTTCTTATGATTTATGGAGTCATCCTGACTTACTATCACCAACTGCTAACACGTTGTAGCTGAATCCAAACTGTCCCCGTTTAGACGCTCACCGAACTCGGTAGTCGACTGTCTGAAACATTATATGGGTATCGCAGCGATAATTTTGAAGCCTTACCTTATTATCCGATAGGCAGCTTGCGTGGCATCCGAGCACTTGATAGTGATTCCACCAAATGATACGGTCACCTGAGATTCTTTAGGAACAGGGGCAGAAGGTATACATGCAGGTCAGAAGGTCGTTTGTCGGTTTTTGCACCTTGAATCTTAAAAAAAAACGATGAGCAAGTTATTTTTTATTTTTGTCTATTTTTGTTCGTATATGGTTTTTTAGGTACCATGGAATAAAAAAAATGCTCCAAAAAAAATTAGTTTACAAATATTACTGGTACAGAGAGTGTAGATAGTTAGAGAGTGACTGACCGCATCCGGTGTGGACCCAATGGGGCGGGGCGCGCGGAAGGAGACGATTGGTGTCGATTTACGAAATGATGACAAAGAGGAACGTAAATCGACACAAATCGCCTCTTCCGCGCGCCCCGCCCCATTGGGTCCCGGATGTATGTCACTCTCTAACTATCTACACTCTGTAGGTCCGGTAATACCATAATATGATCATTATGGGCGTCTACATTAGAAAAAAATCGATCTGAAATCACAGATTTTTGGCCTCCCTCATAAATTGAAAAGGAATAAGAGGTTGCGAAATTAGGCCATTTTGGCTCGGCCATATCTGGGGTAGATTTGCGGCGCGTTGCGTGTAGCGTCGCGGCTCCATTTTAGTGTAAAACTAAATGGAGTTGGCCGTGTGGAGTACACGACTTTCGCGTTGCCCGACCAGCGCGCTTGCCAATGGAGCGCAAGAATCAATGAGGAAGGGCCATGGCGCGCCAGAACCCCATGATTTTTAGGGTATTTCGAGGTTGGCAGACGCAATATGCTGGAATCTTTTTGAAAAATTTTTTTTTTTTTGAAAAACAAATTCCAAAAAATCTCCTCATCGATCGAAACATTCTTGGGTGAAAAAAGTTGCACGATTAGGAATTTCAGAAATTAGAAAAATTCGAAATTAGGAGAAAACAGAAAATTTCCAAACTGCTTTCAGAATACTTGTATACATGAAATAGCCTAAAAATCATGAAATTTTTCAATAATTACTCTAAACTAGCCCAAATTTGGTAGTAAATATTCACTGGCAGCAACTTCAGTGCGAGATTTTTCTACTCAGTTTTAAGTGCTCGTATGTCGCTGAATTGTTTGTAGGTACTTATTTGAAACTCTTTTGTCAAAATTCAAAAATTTAATTTTCACGTTTAAATTTTGAGTAGCGCCAGTGGGGGATTTTGTCTAAATACACTCATTATGATCCAAAACTACCTGAGTAATTGCCACTATTTGACAGTAAATAAAACCACGATTTACAGAAAAAAAAAGTTGTATTATGATATTCGGTCACTTTGGGACCAAATGAATGGTTTTTCAAAATTTCCCCACTGGCGCTACTCCACCTTGAAGAAACTGAGCGGAAATACTTTTTACTCCTTGTGAGTATGGCAAAAAACCTTGTACCACATGGCAAAAGAAAACCCACGCATTGTTAGTCATGACAACTTCGGTCTCATTCTCCAAATTGCCGCCTTCTCCGTTCTCCTTGGTCGATCAGCCAGTCAGGCATCTAAGCAAATAATGCCCAAAATTCAATACATCCAGCAAACGTTCAACTGATATTTCGTGTCCCATTGAAGCGTGCCATTTGAATAGATACACTTTGGATGGCCCGCGTTTGTATCGCACGGAAGTTTTCGTCAAACCTGATCTTCAATAGGAATCTGCAATATTGAATTTTTTTCCTTTTGGTGGTGACCTTCAAGGTTTTGGCCTGGGTTTTTAATCTTCCATTAAATCCCTTCAAGTTCGCTTTTTCGAGAGTTTAGTTTCTAGGCCGAGGAACTTCTTGCAGCCAAATTTCTAAACTATTGTGTTTTTGCCAAATTCTAACAAAGAAACATTAGGTCAATTACGTCATATTCTTGCCACATGCAACTTTGTCGTCATAGGCCCACATCATCCGAAAAGCCTAAGCCTGAGCCCAATCGAAGGTCGCTTGAGCCTAATGTTCAGCCTAAGCGTACGCCTAAGCCCAAACTAAAAGCCTAAGCCTGAGCTCAAGACTAAGCCTAAGCCTTAAGAAAAACCGGAAAATCCTAAGCCTAAATAGCGTAGCAAGCTAACGCTCGCCACTGACGCCAAACCTAAGTCTCGGCTTAAGCCAAGGCCTAAGCCTAAGCCTAAACCCATGATTAAGCCCAATCCTAGCGAGCCTACGCCTAAGCTTGAACCTAAGCCTAAGCCTAAGCAAGCCTCAACCCAAGCCTATAATTTAGGCCACCACTAATGTTTTCAAAACTCGATTCTCAAATACTTTTTTCAGGATATGAAAGTAGGACAGAAATGGGCAGGGTATATGGTATGGAGCAAATATCACAAGATGGATCAGAAACATAGATACGGGGTGGGAGTGTTGGACTAGGTGACTTTTCTAAGCCATCCCTACCTTATGTGAACACACGCATTCGAAGTGTCCACAATGGCCACTGATCGAATCAGCGGTGGCAGCACCACAACCACCGACCAAATGATCCAGTGCAGAATGATAAATTTGTGGAGGGAAAAATCGATAACAGTAGGCTCCTGAGGGTAATAGTAGTAATCATACATATATGGAAAAATGAAGGCAATCCAAAAAGATGTGTGCGCTGGTTGGGGTAGTGGCATCAGAATAAAGGTGGGATTGGGCGGTATAATTGGAGCGCGGCCGAGGAGGAGAATCCCAAAAAAGAAGGAAAGTGCAAAGAGGAGAGTAATGACATGTTACGGTAGACAGGACAATGCAACTACCTAATTATATGAAAGAGGGGGGGGGGGCGACGAGAAGAGAAAAGTCTTACGCAATTTGCAATCTACTTGCCGACTTTCAATTTCTGCTAGAAATCGAAAAAAGGAAACAAATTCCAACTCAACTTTTTCGATATCATCACTTCCGTGGCACGGCACACGTCGGAGCAGATTCAACGACGTCTCGCGATCCCGACTCGCTTTACCCATCCCATTGTTCCCCTGATAGTCGATGAGCTCGGAGATGTTGACCCTGAACGTGCGATCGCGGGTAATCGCACTCTCTGGAATTTTGAGAGCTTGGAAGATTTGCCGGGGGGGGGGGGGGAGGGTCTTACGGTGTGATTGAGTAGGATGATTTGTGCCGTTCAGGCGGGTCGGCCAACTCAGCACGTACTTGCCGGGCGTGTGGTCGCTTAGTCTGCAAGGAACTGGCCAAGTTTGAGCGGCCGACAGCATGCGGGTCTTTTTTTAGAGAAGGGGGACTGTGAGGTGTCCGCTGCTTCAGACAATCTTAGCATCATGCAAACCTTGCATCTTTTGTATTTCAGGAAAAAAAACAGAATTTTTTTTGAGCAAATTTCAGCCTAAAACAAAAATCTAACAAAATTTTGGGAGGATGAACTTATTATACCAAATTTTTCCCTGGTCTTTGAAGAAATTTAAAGCCCCGTGGCTTCTGATATTATCAAACAAATTACAGATATGAAATGTGACTGAAGCTTTAGGTCAGAAATACATAAAAAAAGGATTTTTCATACTATTTTTCCAGTCAAATTTGATTTTAGGCTTTCAGATTTATCTACGAAGTCTGTTAAAATAGGCTTATATTAAAAAGCTATCCGATTTACTAGTAAAAAATTATAGCGACCGACATCTCGCAGGTTGTTAAAGAAAAGTGCATTGACGGGCCACGCAACCTTGGCAGTTTATATCTCGGCTGGTTTTGGTTTTATTGGTTAAAAAATTTCTGACGAAATAAGTTTGTATCACTTTTTCTACTAAAAATTTGCAAACACTTTTTGCTAGCAGCGATTAACCGAGATATTACCGGAAAAAGTACATGAGTAACATGGTGCATCGACAACGAAATATCTCACAAAACTCTGGCAGGTTATATCTCGGCTGGTTGTGGTTTTATTAAAAAATTTAACAAAATGTTTATCCTCTTTTCTACTACAACGCAGTTGAACACTTTTTGCTAGCAGTGATATAAACTATGATCGGAAAAAGTTAGATGAGAATCATGGTGCATCGCCAAGAGATATCTCACAAACTTTGGCAGCTTATATCTCGGCTGGTTGTAGTTTTATTGAAAAATTGTTAATTGACAACATATTTTTCCTTTATTCTTTTGCCACAAATTTGCAGATGAACACGTTTTGCTAGCAGCTATAAACTACGAGATATGATTGGAAAAAGTTAAATGGTAGATGCATTGATCAGCTATCATAGCTCATGTTTTACTTATCTCAGGTTTTACCAAAAAATTGCCAATTATTAAAACATTAGCCTTTTTCTTCGAAAATTTTGCTCCCCCGAATTGCCGAAAATATCCTAGATTTGATATTTTTTTGTAGATTTAGGAGCCTTAACATTTGTTAATTTTTTAAGTATTGACCGTTTCCTTTCAAAAATAACTAATCTAATACTGAAACACAGTTAACTTTTTTCATTTCAATTTTTATAATTAGGTTTGAAAATTGCCGAAAACACTGTCGGCATTCAGTTGGAATTTTGGCAATTGCCCCTAGGAATATTTCCGATTCCCACGCGCCCCTGGTGTGAACCTAGTGAGCATGAAGCCAAACGATTTAGAAATCCAGCACAAATAATCCTAGCTTTTTACTATAAACAATCTAAAAGACCTTACCACCAACGCCGTTTCCGTCTTCAACAAAGACTGCAATCCTCTCTGGTGCTGATAAATTTCCATGATACCAAACTTTCCCCACAACATCCTCAGTTACAGTAGGCGCTATTCGACACAAATGACTGTCGATGCAGGGAACCTCAATTCGTCGGGGGCGCCGGCACCGTAGATCCATCGAAGACTTGAAGCATCGCCTGTGAAAGTGTTCACATTGATCGGAGTGGTAAGGACGGCGATGAGTTTGGGCACATCCTCGATGAACACCACGTGGCATCGACGATCCGTTCCATCCTTGTTTTTTGCAATGTAGCCGAACATTAGCTCCGTGTCCGTCCCCTTTTGGCCTTGGGCTCCGAGTGAGAAGAATGAGAAGGGATGACGTTGAATTAGACGACTTTGTTTTGAATGATGATTTTGATCATTTTCGCGAGCAGGAAATGTTGATGTCTACGGTTTCTGGAAGTTTTCTTTTTTCACTTATTCACCGAGGATTACCTGAAAAGATGGTTTACCTGGGCTTTTTCATGGACCCGTGAGGTTGTCGGATGCAATAATTTTGTGGAAATTAGTGAATATCTCTACTTTTATGACTAGCGGCTTACATCATTTAGCGCGATTTTGAGCGACCTGTAAGATGTCGGTTGCTTTAGTACATTCTAGTGGCAGGCTTGGCTGAATTTTACTGGATATATAAGCTATCAAAATTTGAGCATGTCGATGCACCATATTATCTCCTGAGTTTATTTCCATGCTGCTATCAAAAAGTGTTAAAATGCAAAGAGTAAACGATAAATATTTTGTCAACTGACACTTTTTCAAAACAAAACCAAAACCAGCAGAGAAAGTAGTCCAAGTTAAGTCAGATATTTCCGTTAGTCGATGCACCATGAGTAACCTTTCTATAATAACCTGGTGAGATGTCGGTTGCTATAATTTTTTGTCATTAATTTGGACAGCTTGTTAATTTGAGATAAATCTTGATGATATCGTGGCGCGGCCTACCTTTCATATGCGGGTCCTTTTTTTAAACATTTTGCAAAGCTGGTCATGCATTTTTAGTAACACTTACAAATTAATGAGTGTTTTGTATCGTAAATTTTTACCATCAGCCATGCCCAGAAAGGCAACTAGCCTTTTATTTTCTTTTGTTTTTTTATTCCACAAAAAAAAACTCACCCTACTAACAACTGGATTGATTTCTCGAGCCGCAGTCACGCGAACAGTATCTGCAACGTGTTACATTCTCTGAAAATTGATCAGTTACTTACGTAGATTTGTTATATATTTGAGCTTGCAGATGCCTATTACCTGCGTTCATGCCTACTAAGACTACCGTCTGATTTCTAAATTGAATAAGATTTTTTTTTGATTTTAAGCCATAAGAAAAACTAACGAAACAATTCTCATCTCGGAAACCATCACGTTGACTCGACTACTGGATGAACAATGCCGAGGTACTGAAATACAATTTTATATTTTCGGGGAAAAAACTAATAAAAAACTCACAGTAGCCGACAGAGAAACCCCGCTGCTCCGCAGCTCCTCTGCAAATGAGGGCTCCACGTTGAGCATCTCCGCAAGTTGATTTTTCATTCCGACGGAATTCTTGATTATCTTTAGAAAAAATCTAACTCGACATTCGATCCGAAATTTTCCAACGATTGAGTGAATGAGGAACATGACCGGGAGAGAAGAAACGGAGACGCAGGCGGTGAGCGGAGTGGGAGAGAGAGCGCGCGAGACGGAGAGGCGCAGGCAGTGGTAGGGACGAGACAGGGAAAGATCAGATGTTGGCTGATGTAGGTGAGTCAGCATCTAATAAGTTAAGTTGACTCATAACTTTGTTATTTGATCAGACGGGGGGGGGGGAGGCCGTGGCCTAGAAATATCATTGCCTACTTATTCTAACGTCACTAATGGCCTAGGAAACCTTGATAGCTTTTTTGGAGAAGATATGACGTCATCGTGCTGGTGAGTGACTAGAAATCTTATTTTAGTTCTGGAAGAGGACAAATATTCTGACCGTGCAAAACAAATTAATGATGTGACTGGTGGCCTAGAAGTCTCAAATTATACCTGGGGAAATAAATGACGCCACTTGTGGCCTCGAAAACTTAAACTATGCCTGGACGTCACCGGTGACCTAGAAATTTATTTCTGGCCACGTCATAGAAATTTGAATTTTGATGAGAAATATGACAATTTTATTTATGGTTTTCTGAAAATTAGAATTTTATTGATTTTTTGGCAACCGGGAAATTGGAAAATTTAATAATTTGAACAAATGCAAATAAGCAGTTTTTCAACAGTCATTACTTTTTTCCGTGAATTTGATTTTAATTTGTAAATTTAGGTCGGAAAAGTCATACACACCGAGGAGCTTCCCTCATCCTCCCTGGATCAGTCGGTAACTGCGTTTCGACAGTGGGAGTGGGAGGGGTGGGATGAGTTCGATTCTTCTGGAATTCTATAGTTTTTATTTTTGTTTTTTTGCGCCTACATATACCTGTGAAAATTGGAACTCGACACAAAAACCTCTCTAGCGCTTATATTTACTCCAATTCTTCCGGAATTCCATAATTTTTATTTTGCTTTTTTGCGCCTACATATACCTGTTACAATTGGAACTCCGTTTGACACAAGAACATCTCTAGCGCGGGCTTAAATTTACTTCAATTCTTCCCGAATTCCATAATTTTTATTTTTGTTTTGCGCCTACATATACCTGTGAAAATTGGAACTCGACGCAAAAACTCTTTAGCGCGGCTTACATTTACGTTTACAGTCCAAAAAAATCATCTATAATGTTTTTAAAACTAGAATCCAAATCTATCAGATTTTTTTGAATTTTTGATTTTTTTCACATCGAGATTCGAGCGCGGGAAAATTTGGATCAATTAATATTTTCCAGATTTCGATACTCCATATTTAAAGCAGATCACCTGAACGCCAGAATATGATACTTCCTACTCGTCCACCATCTTCGCTTTTGAAAATAAAAAAAAGTCGCCGTATTATATTGATATAGAAAAAATACCAACAAAATTGTTACTATTCACTGATTAGGCATGCAGGGTCTTTAAAGTCAACATTCATAGTGGGAGCTGGAAATACAAACGCATATATAATAACTTGTTAAAAGTAATTTATTGTGGAGTTATAACCTATAGACAATTAAAATAACCTGCTGCCTAAAGAGTAGTTAACAGAAGCAAAGGTTTTCTTAGTGGAGTTTGTCCATTTACTTTTGTGCATGTTATTGAATTGAAATGATACAGTGAAACTAGAGGTAAAATTATTTACTCGGTTTAGGCTTAGGCTCAGGATTAAGGCGCTTAGGCTTCGTTTTAGGTTTAAGATGAGCTTAGAAGTACCGATCGTAACTGATAACTTCTGCAAATTTAGTTTCTGTAATATCGGCAATAGCCAAAATTGCCGGAAATTTCAAGTGCGATTAAATAAATAGAGAAATAAAAATTAGTTCCTAAGATACATTATCTTTTTGCAGTAAAGTAGTAAAACTACTCACGAAATGCGAAATTGCGATGCGGAAGGAAACATTCCTATGGTTCCTTAGACAATTTCTCACCTATTAGGATATAATATATAAATGATGAATTTGACCTTTTGACAATAATTCTCTTCGATAAATGCATTTACTTGTTTTTTTTTTAATGAGTAAAGCAGAGTGTGGAATATACTATGAGGAAGATGGTGAATATTGTTGGAAATTTTTCTGAAAGTTTTCATTTTTTCTGGAAATTTAAAGAGTTGGGTGTAATTACTGAAAATTATGTTTTAAGAAAATTATTTTAATGTTCAAATTTTACAAAGAACTCATTTTTAAATCATTAGAGGTGTAGCCAGTGGGAAGATTGTTGAGAAGATCCACTCCTTACGAAAAGATACGGAATATCATAATAAATCACTTTTCACGCGAAAAGCTATTAGTAACTTTTTACTGTCAAAAAGTGACAACCACTCTGTTTTGGCCACTCATAATTTTGCAACGACCAAAAAATTAAAATTTGTTCTCCTACATTTATTATATACTTCAACTTTGTTTTAATTATTTGTACTTGAAAATTGTAGGGAACAGCATGCGACAATCCTGTCAGTTTTCAAAAATCTCTACTTACAAAATATAGGACACGCTCTAAAAATGGATGTTTTTACATACAACGCCATCCGAAAATCCCTTGTAACGTCGGCACATGCGGTCCTTTATGTGACAGTTGTCGTGAGAAAATTAGAGATAAAAAATGTCCTCAGTGTAATCAGAAAGGCGTTCGTATCGTGAAAGCAATGTGAATAAACAATTTTGGGATTTAATTGGTTTTTGGCAATTTTTAAAACCCCAGGAAATGGAAGTTGAGGAGACTAGGTTGGTTAGAATAGCTCTTTTTCTTTTGGATTTTTCGGTAATTCCGGGACTGCGGTTATCCTTTGGGCCGAAAACTAGGCCTTAGAGCGATAGGACTAAGCCTTAGCCTAAAACTAAGCCTCAGCCTAAAACTAAGCATGAGCCTGAGCCTAAGCCTAAGTCAAGCTCGCGCTAAGCCGAATAAGTCTGCTGCTATCAAAAAGTGTTAAAATGCAAAGTTGTAGTAGAAAAAACGATAAATATTTTGTCAATTGACACTTTTTCAAAAAAAAACCAAAACTAGCAGAGATATAAGTAGTGATGAGTCAGATATTTCCGGTCGATGCACCATGTAACCTTTCTCTAACAACTGTGAGATGTCGGTTGCTATAACTTTTTAGTCATTAATTTGGACACCTTGTTAATTTGTAATAATTCTTGAAGATCGTAGCGGGGCCGACATCATTCACGGGTCCTCTTTTTTTAACATTTTGTAAAGCTGGCCGCATTTTTGGTAGCACTTAATATTACATCAACCATTAATGAGAAAATGTTTTGTAAATTTTTACTATTAGCCATTGCCCAGAAAATGGCAAGGTTGCTTTTTTATTTTATTTTCTTTTGTTAATTCACAAAAAAATCACCCTACTAACAATTGGATTGATTTCTCGACCCCAGTCACGCCAACTGTAGAACGTGTTGTATACATTCTCTGAAAATTGAACAGTTACTTTATTACGAATTTTTATATATTTGAGCTTGCGATTGTGTGATCAAAAATTTTGAAGCATGGTACGTAATATTTGAACGATTTTTTTTCGGAAAATCAATAAATGAAAATGGAGTTTTTTTTTTGGATTTTAGCAGACTTCCCAAACCGATGACTCGGAAAGATCATATGAATCGATTATTTTTTCTTTAATAAACCTGTTCAGGATTTGGCAGGCATTATTATGAGAAATAGGCCAATTAGCCTAGCATGTACGGAAGTAATTTTTGGTAAAACTTTATAAAAGTAATGAAAAGCTGATATTTTCAAAATTCCAGAAAGACGGAAAAATCATATGAATATGCTTTTTTTTTCTTTTTTAAGCCTATTTAGAATTGTCAAAACTACCAGAAAAGACTAAACAAAATAGCTTAAGCTTGATCGGAAATATTACATTTTAAAAAAATAAAAATAATGAAAAGCTGACGAGATATTTCCATTCCAGAATGACGGAAAAATCATAGCGATACTATTTTCTTTTATAAAACTCTTTAGACTTGTCAAAACTAACAGAAAATACTATACAAAGTAGGTTAGCTTAACCGAATTTCTACAAACTGAAATAATAAAAAGATGATTTTTTCAAATTTCTAAAATGACTGAAAAATCCTATGAAGCGATTCGTTTTTCATTCATAGAATAGTTTAGGACGAATTGGAATCATGATCAGAACACATAAATTCGCAAAGTAGGTTAGCTTGACCGGAAGTATTTTTGAAAAAGTGAAAAAACTGATTTTTAAACCAGAAGGACGGAGAAATCAGATATGCAGCGATTCTTCTTTTATAGAGTAGTCAGAATTAGCATTATTATGAGAAAATCGCGAATAAGGCTAGCATGTACGAAAGTATTATTTAAAAATTTATAAAAGTAATGAATAGCTTCGGATTTTTTAAAAATACCAGAATGACTACGGGAAAACTCATATCATAAGAACGATTCTTTTTTCTTGTATAAACCAGATTTCAGAACTGACAAAACTATTAGAAAAGACTGAACAAATGAGTCCTAGAAAAGACTAGTTAGGGAAGAATTCTTAAAATAGGAAGTTGACCAGAAAATCTGGATCTGAAATCTGGAAAAAGTAACTCTCAAAAATTCAAATTTTGATTTTAGGAAGATATGGCTGTGTAGTCTTCATAGACAATCAAAATAAATTCTATTTTAATTTTCAACCATCTTTATGCACGGGCTGATTCTGTCCTTCCTCATTGAATTTTTCGCGCTCCATTGACAATCGCCTGCCACAACGCGTGGGAAAGTCGTGTACTGCACACGGACAAATACATTTAGTTTTACAACTGAAATCGAGCCGCGACGCGAACACGCAACGCGCCGTAAATCTACCCCACGGTAAAGCGCGACATGAACTAGTTCAAACTCTGCGGTCCATTTCAATTTACGCGGAAAGCCAGAAACCCCAGTCGTTTTTATGTAAAAGTTCATACTGAGCAGTTAATTTAAACAAATCAAAATTTGGAAAATGATTTTAGGCTTTGTGCAAACTGTAGCGTCTCACGCGTAAAAATCTGCCAATGAATAAAAAATTTCTTTTAAAATTTTTATAACAGTTATTTGCCCAACTTCCGTTTTTCAACGTTAATCCGTTTCCAGTGATCAAATGCTTACACGGAAATCACTGATGACGTTCCATGTTTGGTTGCGATGTGAATAAGGTCGTTTTTTGCCCGAGAAAAAATGGTCACACGCACACACACATAGCCACACAAAATATAATTTGTATATTTTGTTTGATTCGAGTAAAAAAAGAGAACAGGTATTCCTGCGGCGTCGTTTTTCTAAACCGCAAGAAAAGATTGAGAGAAAGAAAGAGAAAGAAAAAAGATGGGAAAAAAACAGTATAAGGGATAAAAGTGTTTCTGGATTAGGTTTAATTATTAGGGGCGCACCATATTGTCGTAGAGGTAGGGCCCTTTTCCAAAGTTTTAAGTTTAATCGATAGAGCGTGAATACATAAAGAGAGATATTTGACCTGCAAAAAAAATATATGGTTGGTTTCTCATGCCATAAAAAAAATCCATGCAACAAATGAAAACTACACCTGCCAAGTGTCTCCGCCAGGCTAACCTAGTTTTTCCCTCCAAATGTTCCGTGACTGTTGTTTAAGGCTTTGCAGACCGCTTTCCCCACCGCACCCGTGTTAATCTATTCCCGAAGTGTTCTCCCTAGATAATCGGGTTGCACATTTTTGGTGAATCGGCTGGGGGTAATGAAACGGAGTAATAAAATAAATGAATAAAAAAGAAACTCCTTGTGGAGAGGCAATGAAAAAGCAAGCTATGCAAAGTATTGATCCGTTGTTATGAATCTTCTGGGCTCTTAGGCTTAGGTTTTTTTTAGGTTTAAGGCTTAGGCTTAGGCTTAAGCTGGCTTAGGGTTAGGAGGCTTAGGCTGAGGCTCAGGTTTAGGCTCAGGCTTCGGCTTAGGCTGAATCTAGGCTTTGGCATAGGCGTGGCTTGTGCTTAGGCTTAGAATTAGGCTTAAGCGTGGGCTTAGGCTTAGGTTAGGCAAGCTTAGACTGAGAAGACTTAGGCGTAGGCTTAGGCTTAGGCTTAGGTTTAGGCTTAAGCCTATACCTAGGCTTAGCCTGGCTTAGTCTTAGGCTTAGGCATCTCATGTTTAGGCATTTTATGCTTAGGCTTAGGCTTAGACCATGGCGTGGGTATATCCGAATGTGTGTTTTATTATGTTTCTGATTCTGAAATCATTTGTTATTTTAATATCCTACCAACAAACAAGGTTGTCTCTTTGTGCTGCCAGGTGGCATTTCCTTAATCATCTCAAATATTTTTGGTTTCATTTCCCCCCATCGCAAAATCCCTTTCTTTATCTGTCATTTCGCCTCTACGTTCAACTTATTTGATTTTGTGGTTTTCAAGAGATCATCACGATTAAACAACGAATGAAAAAAATAGGTATGGAATTACTACCGTATTCTTTTTTGCCTATCCTTGTGTCTCTCATTTTCCTTTTCTCTTCTAACCAGTTCTGCATTTTGGAATTTCTTCTCCGATTTGATCAGTTAAAGCTATTCGGTTTAAACCATCTTCTATTCAATTCTGATGATTACTGTTAGGAACGAGTGGTCACTTTCAAAAGGTCGAACTGTTGTACTAATTGAATTGGAAAATGCTCGGTATTTGACGTTTATCAGAGAAAAATTGAAGATTTGATATAAAATTTTGTAAAAATGAAAAATAAAGTTTCATTTAGAGTAGTATTCTGGCTTGCCTTATAAATTGTAATGGAAGAGTTGGCCATATTCGGCCATATCTGGGGTAGATTTACGGTTCGAGCGTTGCGTGCACCATCGCGTCCGGCTCGATTTTAGTTGTAAAACTAAATGTATGTCCGTGCGGAGTACACGACTTTCCCACGCGGGTCCGGAAGGCGATTGTCAATGGAGCGCGACAAATTCAATGAAGAAGGCCAACTTAGTGTAGTATTAGCAGACCAGGTTTTCACATAATTTGAGCGGTCTAATGCACATTTTTACGCAACTTTATGGGCCAGTATAATTTTCTTGGAAGTTTTATTTGAAATAAATTCAAATATTTTGAAGCCTAAAAATAATTGCCAAAAAAACAAATTTTTAGTAATTTAACTGCCTCTAAGAGTAATGAACAAATGTTTCCAACTTTTTGCAAATTACTTGCTAAGTTCCCGTGCAAATCTTGTATATAGATTTTGGCCTGAAACATAACAAGCCGATTGTTACAAAAATTAGGAAGGTACAATAGTGTGTTTATTGATCAAACATGTGTTCTTGAAGTTGGGTAAGAACAATTGATGAAGGTTTGGACCAAAGGAAAGCAAAAAATGTTTTTAGAAGTGAAAGTCTGAAACATTACCTTATTTCTGATGGTCGTTAATCAAATTTTGACAGACTGTAATAAGAAACCTTGGCCATCGTATTTTCTTATTAGTGCAACCGACCACTTTACTTTGAGTAAGACGTTCTTGTTTATTGCCTTTTAAAGACCTCAATATTTTAATAACTACACAATCATAGAGAACCAACAAAAATTTTGTTAGTTGACAAATTTAAATAGGACAAACGATAAATGAGCAATGAGCTGTCAAAGTTGAACAATGGTGGTGCAATAGAAGGAACTACTAGAAAAAATACGGGTCCTAAAATAGTTTTTATGTTAAAATCAGAAGATTGGTGGGTTGATTCCAGAAGTTTATTTCAAAATATAAGGTAACTCCGCTGACCGCGCCTCCGGTACCTTCAAAAGGCAAAAAGTAAGACTTTTCTAAAACTACAGTTATCCTACAGTAGGTCCAACAGTACACCTACAGTACCTCTACAGTATCTTGACATGATCCTCTACCTACTCCGAACCCAGTACCTCTTCAAAGGCTAAAAAGTCAAAATTACACAAACTACAGTAATCTTACCGTACTACAGTAAACCCAGTGAACCATTACAGTTTGACATTATTCGCCACCAACTCACCCTAACCCAATACCCTTCAAAAACTAAAACGTCAAAACAAACTTGTAACAGTAATCCTGACACCGTACTCCTACAGTACTCATACAGGACTACTACAGCGGACCCCAAACATATCTCACTAAGCCCCAAGTCCAGATCACTTTCAATGAAGTCAATTTTTCCAAATGTAACTACAGTAATCCTACAGAACTCCTACGGTACCCCTACAGTACTACTATAGTACCCTGACTATGTCTTCGACTAAATCCAAAGCAATATCCCTTCAAAAGACGAAAAGTTAATCTAAAACTGCACGTTACGGAGTCTTCCAGTACTCCTACAGTCCCCTACAGTACTACTACAGTACCCTGACTATGTCCTCCACTAACTTCAAATCGATAACCCTTTTCAAAAGACGAAAAATCATGTCAATTTTTTCTTTTTTTTATTTGAAATTGTCCGTTATTGCCATTATGTAATTTTCCAAAAATGCTGCCATCCTAAAAAACTGTTAGGTTTTTGTTCATACACATTTAGCTTATACACCACCTGCATAGTGACCCATAAAGAACCAACTTGGCCCCTGCCATACTTGGTATACAAAAATCGAGAACATTTGGCAAACCTGAGTGGTCATTCTATTAGCTATTCACCATGTGCTCTAATAAAGTAGAACTGATCATGGGAATATGTGTCAAGGCAGTAAATGGGGGAGTACTGTTAATGTACGTGTGCAATATTCCAGATGCCAAGTATACAGAGTATCTAATGACGGTAATTTGATTTCAGGTGCTTTAGTACGCTATATTGTTCCAAATGCATGATATTTTTTTTTCGAAAATTGAGGTTTTGTGTCGAATGTCCCATAATTTTGGATAATCAGTGGTCTTTAGCGAAATCTTGAAGCCGCTTAAAGCAGTGCTATATTTACAACTGCATTAGCGTTTTATTTTGCTCTGAAAATGACTGCAAATACACAAAATTTTGGATTAAACCGCCTGATTTTAAAACCGAGCTTAAACAGAATTTTTATTTTACAAACCTTAAAAAGTCCAAAAATTTTCTAAATTCCCTATACTAAAATTTAGCGACCCCATCACTTTCTACCCCTTAATTAATTTTTTACTCCATTTAAAAAAAATATTTTGAACCGGCAATTGTCAGAAAATTGGTTGCCTATTCCCGAAAATTTCCAAAACCGGCAATTGCCAAATTTTCAAAGCCGGCAACTGTCAAAATGGCAGCAAACTTCCAAAACCGGCAATTGTAGAAATTGCCTATTGCCAATAATTTAAAACCGGCAGTTGCCGAAATTGCCGAAATTGCCGCAAACCAAGACAGGCAATTGCCGAAATTGCCGGTTCGAAAATTTTCGAAACCGGCAGTTGCCAAAATTGCCGCAAACTTCCAAAACCGGCAATCAATAGCCTAAACCTTTGCCGATTGCCAAAAACAACACCGGCAATTGCCAAAATTGCCAATTGCGCAAAATGTTCAAAAAGATTTCAGAAATTGATACGTTTTATGTCCTTTAATTGTTGTGGGATTCTTTTTTAATAGATTTGAAACATATCATCCTGTTTTCAAGAAAATTAATTCCTTCAGTTTCTGACGACTCAAATCCTCCGCAAATGCCAAATTTATTTTGGGCAAACTAAACCAATTCTCAACAGAATTTTAGAGGTGGAGTATTGCCATTTGGTCTAAGTACACTTATAATAATCCAAAAGAACAGACTATCATGAAAAACACTCGAAACAAAATTCTTTTGGGCGACTTCCAAAATTATGAGTGGCAAAAAGGCTGTGTAAGTGCCACTGGGAATTTTGATGACAGTAAAAACTATCAATTTCAAAAAAATTTTGGAACGTTTTATTATGGTATTAGGTTATTTTGGGAACAAGTAAGTGGTTTACTCCACCTTTAAAAATTTAGCCGTTATACAAACTCCAACTATATCCATTTGATACTTTCCCCTCTACCCTACCCATAACAACATAACAGAAAAATTGCTTGGGAAATTACGCATCGTCGCAGTACACCACACTCCATTTGGATTGATGTCCCGAGAGAAAGGTCAAATCGTATTCTACCTCCTTATTCTAACCATCTCTATTATATCATGCTTTAATGAACGAGCGCCGCCGCCGCGCGCCTAGCGCCTCCGAGTATCGCAAAGTGCGACTTGGTCTGCCACATAACCTGAATTCTACTTTGTTGTATGATAGAATCGGATAGATGTAATGTGTAACAATAAAAAACCACGACGACGACTGAATATGGAATCGGCTAGGTGGTACAAAAGTTTCGGAATGTTTTGGTACCATGGTATGTGTAAGCTCTGTGAATTGAGCCACGGTCTAGCAACGATATTTCGTCGAAACTTTATTCTCGAAAGATTGTTCAATTGAAATTTTCCGCAAAAAACATTTTTTGAAAATATTTTTTGCTAAAAATGTGAATTTCTAGTGCAGCATTTTTTTTTTAATATGAAGTCCAATCAAAAAAAAATCTCAAAGAAAACATTTGAATTTCCCGGAAACCCCAATTTATGAGAATCAGTTTCCCTTTAAAAGAAAATTTCGGAGAAAATTTGAAATTCCGCGACGCCAAATAATTATTTTGAAATATTATTTCCTTATCGGCAAGTATTTTTTTTTTTGAAAACTTTGATTTAACGGAAAACCTTCTGAGAATTTTTGAATGTCCAGTTTAAAGAAATGTTCGGTCGCACGGGTTTCTGGCTTCCCTCATAACTTGAATGGAAGAGTTTGCCAAACTAGGAAATTTGGTTCGGCTATATCTTGGGGGGTAGATTATTTACAGCGCGTTGCGTGTCGCGTCGCGGCTCGTTTTTAGTTTTAAAACTAAATGTATTTGTCCGCGTGGAGTACACGATTTTCCCACGCGTTGTCCGGCAGACGATTATCAATGGACCGCGCGAAAAATTCAATGAGAGGAGGCCAGAACCCCGTGAATTCCAGCAAACCAAAACTTGAAACTATTTGAAATACCCACAAAAAACCACTTTGGCTGAGAATGTTTGAATTTCCACAATTTGACGGAATACTTGAACAGATTCAAAAAATTTTGTGAGAATAGTTGAATTTCAAAAACCTGTTTTCTGAGAGTTTTGGACAAAATCCCTCAAATTTCGGAAAAAATTTATTTCCCTCAAAAAATTTCGAGAAATATTTTAAATTACCGGCATATTTGACATTTTGAACCCCACGAAAAAATTTTTAAAAATTTTCGAAATCCCGGAATAATTTTTTTCACTATAGTCAAAAAAGATCAACTGACTACTTACAAACTCCAGTACCCAGAGCATAACCCCCATTAGCTTCCGATTGCTACAGTAATTTCCTACAGTACTCCTAAAGTCCCCCTTCATAACGTTCCCCTGATAAATGCCCTTTAAAATATGCGTATTATCACATCTCACATGATTAAGACTAAAAGGGAGAGGTGTACCTTCAGATAAATACCCGTTCAATGTTTTTTCCTAAACCAGTTGACTTATAGGTTATGAAGAGAAGACTTAGTGTAAACAATGTCGTTGGAAGTGATATGTTAAGAAGTTAACGGCAAAATCGATGCCAAAACTTTTTCAGCTTTGACTTCTACTGCACAGCTCATTCCATAACCATGAGCTCACGTGCCCTTCCCCCCCCCCTCTATCTTCCACCGCACTTTCATTCCTCGTTGTGGCAACAAACCCATCTCCGGATTCGCCTTAATATTTGTCACAGCACAGGAGTACACTCCTTAGCGGCCAATTCGTAATAGCGTCTACCCAGCGACTTGGCCCAGAAACCTTCCTCTAATCGCATCCACAATAAAAAGGTCTGCAAGTACAAGATTAGCACCCCCCATTGATGTCAATTTATCTATTTTGATTCCATGGAACTATTCCACAATGTAGAAAATTGGGGTTATGGTAATCGAAACATGGTGGATCACCTAACTGCTGGCCAAATCATCATGGTGTCAAAAATAAGAATCCGAGTCCTCCCAGACATCCATGTAGGGTATGCACTTTCCCGCCTGTCCCGCATCTAACCTAACGATTAACATCTTTACAGACCATCTCTCCTCCGGATGATGTTGAAAATGTCGCGCCAGCACCTTTGGAGGCGGGGGGGGTTAAAAAGATTCCAATCAACCACCTATCTTCTCGATTTATCATCAAGTTTGCCCCCCGCGCTCTTAGATTAAATGAACTCTTTTGGCTCAATCACAGCACTTGTTATTAAATCTAGGAACTGCATCTATTTCGAACATTGTATCGTTACAGTTACCGAAAAATGTTGAAAATTTGGGAAAAGTGCCAAAATGTTGATCAAGTCAGAGAGATTCGAAGACGCTTCTAGCAATTTTTTGACAGTACCTGTCCCCTTTCGGTAGATTTGCGGCAATTCTCGGCAGATTTACAGCCGCTTTTGGCGGTTTTGCAGGTCAACTTTTAGCAATTTTGGCAATTTGAAAACTTCTACTTACTTTGCATTTTAGTCAATTTTCTGTAATTTCTGAGAACTTCAGATTTTCTTTTACATTTTTTTCCGATGCACCATGTCCTGAACGCTCGCGCCACGACTTTTTATTCATTATAGCAGGTCCTGTTTTGATGCATCATTTCCCAAGAGCCCTGCAATGCTGGCGATTCATGTCGCGATGTACCATGTCATCAAATGTTTGCACCCACTGCACGTTCCACCGCAACGAGGTTTTAATGCCAAATTTTCTGCAATTGCTCGTCAAAATATTTTTCGACAATTTTGTTAGCAAATTTTTCCCTTGCAAAAAGGTTCAAAATTCTGTTCCAAACACCAAAAAGTCGAAGATCCGCAAAATCTGCACTTGAAACACTATTTTGACAACCCCCGTCTCAGCTTGCTATCAAAAATGCAGCCAGATATATGGGCAGCTTGCATGTGAAACAAAAAAGAGAACGAGAGGCATCAGGGGCTAGTCCTCAAAGTAGATGTGCAACTCTATGAAATCGATACGGTTATGCATGGCATGGTGACAGGGAGCGAAGTATGATGATGATGATGATGGTGGAGAGAGCGCAACGTATGGTTACTGAATGTTTTCGATAAAGGTTATCTTTATGGGGGGGGGGGGGGGGGGGGTTGGGGCAGTGTGCATCGAAATATAAAAACTTTCGTGGAGATACGCTTTTTCAAGAAATTTGTGACACCTTCTTGGTGCATCGAGACAGTTTTCGTGGCAAGACCTGATTTGGTTGAAACTCTGAAGCCAAATCGCGGTCTACGATTTTGTGACCAGGTCAAGGTTTTCGTGGCATGGTGCATCATAGTAAAAATTAAAATCCTGGGAAAAAAAGCTCTATATATAATAGCGAGCCATGGACCGTACCTCCCGCGTGGCCCCCTTCTGGAGCTAAAAAATAATTTTTCTAAAACTACCGTAACCAGACTACAGTATTCGTACCGTACCACGATATTGTACCACTACAGTACCTCGACGCTATATCCGACTAACCCCAACTCACTATTTATCCAGAAGCCAGAAATGTGACTACAAAGACTACATAGATTACAAACTATGAACACACGTTGTGAATAAGCGCTTCACATAAATAGTGACATGATGGATTATTGAGATCCCATATGTGACATGGTGCATGGTGACAGGCATTCTGGGAGGGTGAGCACAAAACAAAATCATTAGTTATTTTTCGCCGACAATTTCCAATACAGCGAACTTTACCAAGGTCGTGGCCTACTTGTTTCCGTTACAGTTTCCTATTGTTGCATATTATACCGCCAGTAATCATTGCGTTATCACAGTTGACAACGGTTTGATAATGTCACAAAGTGTGGGGGTTTTGGAACAACAAACCAGCATACGATTATTAGAACGTGATAATTATTTTACCTGAACATCAAGTATTATTAGGTGGTGGAGCTGGGAGCTTAGTATTTGGGTTTTGAAACAATGCACCATGTCCTAAAAGATGCTTTATTGCTAGGTAGGGTGCCGCGACTGTATCCATTCCTATAACAGGTTCAGTTCCGATGCATCTGCTATGAATTAATACTGTTCTTATTCTTAGCTCAAAATCAGGCTGAGGCCCGCAGGCCCGAACACTTTTGGAGACTGTGCAGCTTTAATCCCCAAAGGCAAATTGTTATTCGCTCAAGCCAACTCATCTCTCCAGATTTCCACAAACTTTAATCACTCATATCTCTCAAAACCCTAGACTTCGATTTTTAATCCATAGTCGATCCCAATTTTTAAGGAAATCTCGAATATCCCTAGCTCAGGTTTGAGGCGAAGCAGCTGAAGCTACCTTTTTGGGCATCCCCATTCCAGAAACAGACGATAGCTGGCGTGGCCCTGCCGAGCTCGTCATTTGCCAAAACGTCAAATTGCTGGATCATGTCACGATCCATAATGCCTTGAACGGTTCTTCTGCACCTAAAATTAGCACTCAACTGGTTGAGGTAATACATGATGCAAGACCATGTCCCAAAGGGTCCTGCCATGTTGGGACATGTCACGATGCACCATGTCCTGAAAGATCCACGCTGGAAAACTACATTGTTCCGAGTGTTTACCTCTATTTCAATACGAAATGTCAGCAAATTTTCATCCAAACTCATGTCATTCAAACAAGAGCCTCATGTGACTATAGGGTCGTGACTACCTGCTCGAGTTCGCCTCAGCCCTGTTTTCAGAATAGCTATGCGTTAAGTACCCGATGTATTGCAACTGTCACGATTTAACGCTTAAGTTTTGTAGTTTTGATGGAAATTTTTGAGTTTTTCGTTTTTTCTTGGCTCAAATCTGGGAGAGTTTTGCTTTTTTGACGATTAAATATTTCATAGGGCAGCCCGGCATTTCTTGACTGATTGTGCGACATGATGGTGACAGGGCTTAATCGTCGCGAGACATCCCTCTAGTACAAAATTCTTTTAATATCAGTAAAAGCATTATAATCCATGTCTATACTTATTTTATGGAATTTTCATTAAAAAAATCTGAAATTTACGAGATGATCTACTCCAATTATAGATGGGTTTCAATCCAAAATTTCTCAGAAAAACTAAAATTAATGGGCATAAAAATGTTTTGTCTGAAAGCCCTAGATTGTCAAATATCCCTAACACCCCAAAAAACACCAATGTACATCTCCTCTCCGTAAATATGTAGTTTTACAACCGCCTCTCTGTTGACTGGGAGCCATAAATGTAGATATATTATCTTTCCAGATCGCCTGCCGGCCCCTCCCACCTGATTGTAAAACTGCTCTTTGCTGTGGCGGTTTATCGACTTGTTTTTCTTATATATTCCATTCTACATGCACCTTAACACATTTTCTTGTTTCTATACACTTTTTTAACTATAAAAAAATGCAACTCCTTTTCGATTCACGATCTTTTTATGCAAATCTTTTGGCTTAAAGCTGGAGTAGCACCAGTGGGGAAATTGTTAAAAACCACTCCTTTGGTCCGAAATGTACTCCGAATATCATAATAAAACTTTTCAATATTGGAATTTTTTTCTTCACAGTCATAAAGTGATAATTACTCAGTTTTTGCCACTCATAATTTTGGAAGTCGACCAAAATGTTTTTTCTAGATTTTTTATAATGTAACTATTTTGTTTTAATTATTTTTATGAAAACATTGGCATAGAGACAGGCGGGCCAACATAAGATATTGCTTTGCCTCAAAGGCTCATATTTTTCAGAATTTTGGCAATTTGCCAAAACTTGGTATTTAAAAATTGTTAGAGATAACTGTATTTAAATTGCAAAACATAGAACAGTTGTATTTCAAAATAGTTCGTAAAAATTGTCTAGTTTATTTTGCGGCCACACTGACCCCCACGATGCACCAGGACAAATTGCATTTTTTTGTTCAAAAGCTATTGTTTTGCAAAGGGGCATGTTCCAAACATCTGACCCAAGTTTTCCCGTAGTTCTTCTCTCCCCCAGCGGGGTAAACACTGCACTTTACGACTCCGCCCAGTTTTTTTTTTCGCACAAAGTGAGAGAGAAAGAAACATCACTGCGTCACTCTCCCCCAGTCTTACGCTCGTTCCCGCCCCCCTCCTCGATCTGCAAGCCAGACCGTCCTGATGATTCGAGGAGCCATTCCTTTTCTTATATGTATACGTTTTTGGAGAGGTGATCTTGTTTTTTTTGTTTCTCCTTTCGTTTTGTTCTCTATGCTCTGATAAGAATTTTGTTCTCCTACTTTTCTACGGTTTTTTTTTTTATATCCAAATTTTTGAAATAGAGGGTTGATCTACATGACCCCCATGCTTAGTCTACTATAATGCTATATCTGATATTCCGAATGGCTGGTAAGTGAAGGCTTTTAGCCCAGTGAGCCGGCTTACCAAGTCTGCCTAAGGACCATGGTTCTTTCAACTTAAGGCCCAAAATAAGCAGGGATTCTGGCCTAACCCCCACTAAATCTGTAGGCTAATATATAATTTCTATCATACTCCATCCTTCTTTTCTACCTCTTATCATGTTGTTATTGAGCAGCAACCCTTATATTGTTTGGTATATAGATTTGATATAAAACCTCGTAGTAAATTTTATTTTACACAACAATCATTTATCATAATTTTTTTTCATACTATTTTTTTGCAGAACGAAAAAAAAATGCTATTCACAACATCTTGAGCACTGGAGCTGTTATCATCAAAAAGGTGCATCGCAGCACAGCGGGAGCGTGTCATCCGATCAGTTGCTCAAGGCTTTCGGCGAGCTGGAACTTCCACTGAGCAGCTTCACAATGACAACACAGCAGCCCTGTACCACTCCTGTGCAACATTTCACAACACCCAAATTACAGACTCCAGTCAAACTCACCGTGCAGACCGTGTCGACGTGAACTCAGAGCCACACTCTTCAAATTGTCATCACCATTCATTTGAGCATCCGATATGCGCGAACGCTCCGCGGCCGATTAGGAGTCAGCGAACGCCGAAGGAAGACTACCACACTGTACGATCCGAATGAGCTGGAGGAGTCTATGAAGCAGAGCGAGGCGTGCATTTTGGATATCAAGACATTCATCACACAGTACTCGTTGCGGTAGACTACGGTAGTAATGATGACAGGTTAGTTCCCAAAAAAGTGTAGTGGAAGATTTTTTCTAAAATCTAAGCCGTGACCCGCGGAAATAAATCAGAATACATCCCCGCCTAGTTACCTAATCTCTGGTGTTAGCCACAGTGCAATTGTGTATTACTGTAATTCCTTCTATGACGTCATATGAAATAAAGTTGGCTAAAGGGAAAAGGGGACTCTGGATCTTAGGCGAGCAATTCTCTGCAGCCGGCACCAGAATCGATCCCCCGGTGCCTGGATATCTATCCTTCTGGGCTATTAGCCACTGCGAAATGCCCCACCCGCGCTGAGATCGAACAGGCGTCTGAATTCCTAGGCGAAGTTGCTACCCGCGCCATGTAAATCTCCCAAATTTCCAGGAGTAAGCCAGCTGTACATTTCAAAATTGCTCAACGGCAACCACCGTGAACTATCGCTCCGTCGCCGTAAGAACATCTACGGTTGGTACCTGAACTGCCGACGTCATCCCAACAAACTCGCTACTTTCCTCGCCATGTCGATCCGGCTACTCGCCTCGAGAATGGAGATGTCGAGCTGATCCCACAACGTCGAGAACGCTACGTGTTTCGTCCAAATTTCTTCTGATCCGAATGCTAGAATCGTTCTTCACACAAATGCCATTAGATCTTCCACGGCGAGTCTTACGAAATAGCGAATGCTTGCACTCACGTTCTGATGATGGATAAGAAAGGTGTTGGGTCCATGAGGCCAAAGGAGGAGGTTCAGCAGCCTCAAGTGGTTTCGAATTGGTTTGCAAATAAGCGGAAGGGAGTTGAGAAGCCAGAAAGTTCCGCTGAAGCTTTGGCCGCCTCCACCTCGTCAGCTTCGTCTTCTGCGTCATCGACATCATGATTCTGTCAGGGTGTCATCAGCATGAGCCCTCGCGAAAGAGGTGAGAGTTTTAATTTCTCGGCCACGCTGTACTCTGGGTCGAAGAATTTTTTGTAGGTCTGATAAGGAATCCACTCCGGTTTTCCCACACGTTAGGTCATAAACATGTACCATCTAGAGGTACTTAAACTTCTGGACTTTTATTTACTTTAGAGTATGGTAAACCTGTCAGTCCTTGTCAATCATGTGTCTGTTTGGTCTCAAGTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTCGGTCTAGGTCTAGGTCTTGGTCTAGGTCTAGGTCTAGGTCTAGGTCTTGGTCTAGGTCTAGTTCTAGTTCTAGGTCTAGGTTTACTAGGTCTGAGTCTAGACACAAATGTCTAGGCCACGGAAATTTCTGCCGTCGCCTAGGATTTAGGCCATATTCTAGGCCATGATACAAAAAACTTTCCCTGTCTCCTCTGGAGTAACCCATTTTGAAACAGACAAGCTCCCGTAACACAACCCCGGACAGCAATCTCCCCGTCTCCAGCAGTGTCCACTTTTGAAGTGTCCCGCCCGTATGCCATCATCTCTGCCATGTCATCAACAACCTCGCCAATCTCAATTCCAGCACAATCATGATCCATCAGTATCGCCGCCAGCTCTCGAATTTTTCGCCATGGCCCAACGGCTTGGAGTTCAGATTCGGTTCCATTTCCGACATTGCCAACACACATTTTCCCGTTTCAAATGGCCCCTACGGGAACCCGGCTTCTATTTTGAAGTCTGAGTTAAGCATTTCTAATTTTCTTTTCCTCTTTTACACCAATATCTTTTTTCCATTTGTTCTTATTCATCCCATGACAGAAAACCTCATTCTTTCATATTACAGGAATAACGATGCTCCGTTTCTTACGCCCTGCAGTCCCCACACACCCGTCGTCGTAGCAAAAATCACTCAATAATCGATAGGTTTTTCATAATATTTACTTTGTTTCTTTCTTAGTGTGTTTCACTGCTGTTTTAATATTTGAAAAGTACGAGTCTTCAAAAACTCTCCATTTTTTGTGAATAATATTTGCAATCCACAGCGTAATTCGTAATGTATCGCTTGCCCTACGACGAAATTTTATTGGAAATTCCATTTTTTGTGCAATTTTTGTTATTTTTCAAGCGAGAATAAATATTTTCTCGTTCTAGAATTCAATTGTGAATTACTTTGCAAACGCGCCCCATTGCACTTCCGGGTGAAACAAGTTCGTGTTTTCAAGATATTTTAAAAACTTGAATTTGGAACAACACAGAAATCTGGAAAATGCAACAGTGTTCCAAGTCTTGTCCACGTGTGATACGAGTACACAATAATTTTTCATCTATACGGACAGATTTCAAAATTGGAATGTTTTCCATTTCGTGTGGTTTCTAGGCCATGGGAAAACGAGCTAGCGGCCATCAAAAATTCCAGGTGACCTGGAAGTTCTAAAACTTTGTAGAAACTTGTCCACGCGGAGTACACTATTGAATAGTTTATCAATAGAGCGCAAGTAAAAGGATAATCGAATTTCTTGTCCTTTCGCCACCCCCTCTCCATTATATATGAGGTTTTTTCCCTCGCAATTTCCCACGCTCAAGAGGGTCGCCGCCATTTTTTTTTTGAGGGGGGTCGTATCTAGATTAAACACGTTCATTTATGCTCAAAATGTGCCAATAATTTTTGTTTTTGAGTTTCTAGGCCATTTTGGTAAGTTCGCACACTGACTTTACGACTTCCAAGGAAATGGCCAACGTTAGCTTATTTTTCTAGGCCATATAATTTTTTGAGTTGCAACTGTGGCCAATGTTTTTTTTGGGTTTCTATCACTTGTGAAAAGTTAGGTCATAGAATAACATTACAGTAAACGGGTCCTCAAGGGACAATCAGGAATTGTAGCCTAGTTTTCCTAGACCACATTTGATTTTTGTCTTTCTAAGCCTGGTTTGGGTCTAGCTCTAGTCCTAGGTCTAGTTATAGGTTGGTCTATGTCTAGGTCTAGATCTAGTTCACATGAGAAACAAGAATTAGGCCACCTTCCCCCTAAACTCTATTATCTCCAAACTACTACTTTCTAGAAAACTCTAAAATCATAAAACCAATTTTTTATCACTATTTTCATGCTAAAATCCAATCAGAAATTTGATCAGATACACGCATATAAATATTACGACTATAAATTCGTTTCTTTTTTTCATTTTTCCCTCGATAAGGCTCTCGGCGAGAAAAATTATTTCTTCTTCTATGTGTCGAGACATGTGATATTCCGGCCGGCGGTGGCTCTGAATCAATATTCAATTGAGCGAGAAATATATATTCTCTCCAGAAGGCGTTTATATAATGTGTTCCTCCTGTAGTTTCTGCTGTATTCGGCGGATTTGGTATGCTTCTCAGTGGAGTGCAGTTGCAGCATTTTTTTTCTTTAATACTAACTTTTTGTCAAGTCTTTTTTTGGGATCCCTAGAACACTAGAATTTCTCGCTATTTTGAGATTTCTAGACCATTCTTGAGATTTCTAGGTCATATTGTGAGTTCTAGTGCATTTTTGGGTTTCACGGCCGAATTGGAAGTTTGAGGCCATTTTTCGGTCACATAGGCCACGAATTTGAGGATTTTGTGCCAAACTGGGATTTCTAGGCCATCATGGGATCTTTAGGCACGAGTTTTCCAATCATAATATAATTTCTAGGATATCTTGAACCTGTATTCCTAATGCCACTTTGGAATATTAGGCCATCTTGGGACTATTTCTGCCATGATTTCTAGGTTAATAACTGGCAATTTTAGATTTGGGCTTAATCTACAGGAGGACATACTGCGAATTATACACGAGCCCACGGTTGGATATATAGGCTATCGTGGGATATCTACGCCGATATGTATGGAATCCTAGGCCAACTTAAAATTTCTAGGCCACTTAACCCCGGGATTTCTAGGCCGACCATCACGCCTCCTAAAAGGCACAGACGGAAAGTTCAACACCCACCACCAGGATAAAAGTGTTCGTGAATTAGTCAGCAACACCCCATTTTTCTTCTCCAAAAACTAAAAAAAAAGATACCCCTGACAGATATGGGCAGAGATGAGGGTGCGAATCCTGAAATTGCCTAGAATTCCGAGCTTTTTGTGCCAGACAAAGTAGAGCAATGGAGAATGTGTGTCGCCACTTCAAACACCATTTTGTCCGTTGCTTCGCCCGAAGGGCCCGAAAATAGGCTTGAAAAGCTGTGGCCTAGAATTTTTTCTCAAAATTTTTGACGTGGAAAAATTGCTTAAGATTTTCGAGGCCAAGAGGTGGCCTAGATTCAACATTTATTGGCAATTCTTATCTAGATCCCGAACCCCGACCAGCCAGTTTTTAATTCTCCTCCGGTGTCTGAATTTTTAATTAGAAAAATTATTTTTGGTTGAGGAGCTCTGTTTTTTTTTCGTCAAAAATTGAAGGTGGCCTAGCTTTCTCATTTTAAGGCCACGAATTCTAGTTAATTTTTTGTTGGCTCATTTTTTGTTTCAAAAAATGAACCAGTTAGTCAAAAAATTCTTTTCTGCATATCAAAGGCCACTATTTTTGAGGTTCTTTCCTGCACAATTTTTCGAAGAAAATTTGAATTCCGGAAAGTTTTCTCAGAAAATTTGAATCGCCGCCAAAATTTTTCTCTGAAAATTTGAATCGCCGCCCACCCAAAATTTCAGAAACCGTATTTGAATTCCTGCAAAGTTTTCAAAATGGGGTCTCACCACAGAATGGTGACAGCGCCCACATTTCTCAGAGACATTGGTTTTTAGGCCAAAAAAATAGTTTTTTTGACAAGACAAAAACATAGCAAACACTTGAGCAGTTGTCATATGTCTGTTGCAAGTGGAAAAAATAAAACATCTTTCCTTTTTTCTGCTTCTCCCCCTCCGTCCTTTTTGGGCTCAAAACTCAAATGGGTTGCTCATCTCAATTGTCTGACAAATTAGCAAAAGATGAAGCAATTTTTCCCTGTTTATCTTTTTTTGCCTCCGTTTGGCTCCTATGTCTTTTTTAGTAGTTTTCAGAGGTTTAATATTGAATGTTCAAACTGGCTAAAAAATTTCGATTTTTTTTTCTTTCTAAACTCTTACGAAAATTCTGATATAGGTTAGAAAATTTGCCTTAAACAGATCGACGGCCGACAGCGTTTACATTTGTGGCCTAGACTTCCAAGCCTGGGCCATGGCAAAAACTTGTTTAACTAGCCTACCTTTTCAAATAGTGGCCACTCTAAACTATTTCTGAACTGTTTACTCAAAAGAGAAAGTTAGTGGCCTAACTTTCTCAATGGTGGCCTAGAAAACTCCAATTTTGGCATTCATGACCGGTCATCAACCTGACATTGATGGCCATGCTAAAAAGTTAATGAGTGGCCTAGAAAACCAAAATATGGCCATGCGCTCAGCATGTTTCTAACTTTCCAACTCTGCTATAAATTCCTTGGGGGAAACCTCGGCCATCACGGGTGACCTAGAAAACAGAAATTCGGCCAAGACCCCGTAATTCATGGCCTAACCCTTTAGACGTTTGACTTTGGTGGCCTAGTTTTTTGTGATGGCTAAGTTTACAGAAAAAATCCTCAGCCACAACCTTTACCCTATACATGACATAAAAATGTCCATTATCCAATTAAATTTCCAATTCTCCACCCTTAATTTTTCATTTTGTTCTCTTCTTTTATTTTGTCACTCTCTCATTCTGAAACTAATCTTTTCAATTCTCAGTTTTTCTGGTGTGGTTGATTTTCACAGCTTTGCTCCCGCCATTTTGCAATAGGATTATCCGTGACACAGGCGCTCACATAGCTCAGTGAGCAACACCAACAAAAGCATATATAGATATACAACGATATCTAACTAGTTACACCGGAGCTTCTGTTGTTCTTGCCCCTCCGAGCCGAGACAAACTTTTGGAAAAGAGCTAAACAACGCTTCTGGAGCCGACATATTCGAATGGAAAGAGACAATTGCGACCACTATGAGGAAATGATGGTCGAGGAGGAAATGAGAGATGGCGTAGCTCAAATTGCGCGACGAATGCTCCAAGTTGGTCTATACGGTAATCAGTGAGTTTTTGTGTTTTGTTGGCCGTAGTAGAGATAACTAGGCCAACTAGGTAGGCTGACGATCTTCAGTTTGCAAATCCTCTTCAACCGTACTTTTTTGAGCGATCTAGGTTTGCAAAAGGTAGGCCGCCTGGTCCACCGTACCTGTCAACTTATGATGGCAGAGGTTTTGTCTGGGAAAGCTAGGCCACCTGTGTGAGCTCATGGTCCAAGGTCTAAAGTTTACAAAAACTCTTCCACCGAAACTTCTAGGGTGCTCACGACCGAGGCTTGCAGAAAGGCCACGAGACTTGGCTCGTGGCCCAGAATTTTACTCATCCATCGTAAATTATTAGAAATCCGCGAGGAAAAAGCTAGGCCATCAAATTACCTTAGTGGCCCAGAATCTATAAAAACTATCCCATCGTAGCCCTCTTGCATGGACGGCTGAGCTGAGGTAGCTAGGCCCCGAGAATAGGCCAGTGGTCTCGAATCAACACAAACTCTCCACCGTACCTCCTACAATGGCCGAGGTAGGGAAGATGGGCGCCAGGCTAATCTAACTTTCCTAGACTGACCTAAAGGGGAAAAAACAAGGCCACCGGGTTTACGGAGTGGCCGACTGCGAAATTTCACAGAGACATTGCCCTGACTATCTGACTGATTTTTTACCGTCGAAAAATTCATATTTTCTATGCCAGGGGCCCCCTACGGCCCAATCCTCGCAATTTTTTTATGCAGATATCTAAAATCGCACATTTGTTAAAGCTCTGCACACTAATCAAACTTCTCGTCTGCTGGTGGGCCGTTGCTCCGCAAGTCAACTCCTACATGACGCACAGTATGGGGAGCAAGAGTTCATTGGCGCGAATTTGTCAGATCCAGAGAAAATTCAAAACTTAAAATTAGCAGATCTTAAAATGTGATTCTCTAGGGAGCCTCCCGCTTGAGGCCGTGGACGCTGTAATTTTCGATATCCGACTTTTCCATTACCTATGGGGCATTCGAGGATGTGTGGCAGATTATTTGGATGGCGGTGGGTACTGTTAAGTTTCCCTACGAATCTATACATTTTTCAGGCTTCGGGCGACTTTTGTGGTGCGTTTCCTGCTTAACCCTGGTTTTCTCCATTCCGGTCCTCTTCATCTCCCATCCGAAACCCTGTCTCTTTCGGCCGCTGCTTTTTCAGGTGAGTTGGCTGAAAAAATTTGGAAAAAAACTTTAAATTTTATCCGAAAGGCGATAAGCAGTGGGATTTTCCACGACTACCACTCACAACAGCATGGTTCGACCCAGTCCGCGTGGGTGTGAATTATTTTTCTAGTTTTTTTTTGAAGTACGGAAATTGTATTTAGCCTTATCTGAAAAATTCTAAAATATGCAAAAAAATCTCCGATCAAACCAAGTAGTATCCTTCTCCAAAAAGCGCAGCAACGTCAAATGGTCCCACGTGGGGCCTGAATAACGGCAAATTTCCTGACAATTGACGGGTTATCATCCACCACCCTCATCCTCTTGAAGGAACATTGACTTTTTCCGTTGAAATGGACAAAAAAATTGAAAAGAATTAGATAGATGCGGGAGAATGAACATGGTGGCCTAACGTGGTGCTTGACCCATGGGCTAGAAAACCAAAACTCAGTCATCACCCTGATTGAGGCCATGAGATTAAGCCACGTACGACGCAATCCTAGGCCACCACGTTTTCTCGGCCACAGCCACCCCAAACAAAAATCTGAACTTTCTGATCCTTTCCATCTCTAACCAACGTTTGTTTATCTTTTTACTCGCTCCACAGGAGCAGAACTTTTTTCTATTTTGAAATCCACAAAAGAATCCGGGACAGACACTAGTGTATTTTGTTTTTTATTCAGCCATGAGCACAGACCAGAAATAGGATTGTATCTCGGACTTCAGAGCCTGGAAAAAATCGGAAAAAATCGGAAAACAGTGGAAGAACTGAGTTGGGTGCTAAATTTGGCAACTTGCCAAAATTTGGGGATAACTTTTTCGGTAATCTGTAACTACAGTTTTCCTAAAAATGTATGAACCTTTTAGTGATTACTGCATAGTTTTTCAGGTCTTTAAAAATGAACCTACAGTAGCCCGTACAGTTCACAGGATTGCAAAATTCCAAATTGACCACTTTTTAAGAGTGTATCTCGGCAGAGTATTGGGAAAGTATCGGAATATTTTAAAAATTTTGGATAATTTTTTTTTTATTTATAATTAATTAACATTTAGCTTTCAAAGATGAGCAATGTATTTATAGATACCCATGCAACTTTGAAATAGTTTGTATATCCGTTCAGTGTAACTATCAAAAAATTTTCAACTACAAAATTACTTCATAGCAAAATTTAAAACAAAGAAATTGTTAGTTACTTTTTAATAAAGTACAACCGAGATATTTGTCAAAGTTGAGCTACTTTATCGGCAACCATAAGTAGCCCCCGTACAATGCACCATGTGGTAGAAAATTTCGGTTTGATCTACTTAAATCTACAAAAAGTGCGGGAAGTCGGAGAGTTTGGATAGCTAAGAACGTGCTGAAGTGTTTGCACATTTTGTTGGGCACAAAATTCCCACTTTTCTGATTGTAGATCAAACCGTCGCGGGACAAACTGGTACCTCTTCGTTGTTGGTATGTAAATTTTGAAAATCACTTCGTTTGGTTGGTATGAAACTTTAAACTAGAAAAAGCCCTAAAAGTTGAGCTAGGCGCTCAAATTGGGTAGCATTTACTTTTTTCAACAAAAACATTGCTGGCCGAGCTTTCTTTTACGGCCACGTTGCAATAAAAATCCAGGAGGACCATGTCATCAACAAAAGTACAAGGATGTAGCATAAACAATCACTCCGAAACTTTTGTCGGGCACTGCTTTATCGGAAAAAAAAAAGGATCTCTCCGAACACATCGGTGTCACCCCCAGGGTTCTATAGCGTCTCCCTGACCTCGCGAGCTATTTCCTCGAGACAAATCTCTCTGAATCCTTTTGTAATGGTTGTTTCATGTTCTTCTTCATCTTCTTCTTAGGCTATTCTTCGCTGGGATAAGTAGTAGAAGAAAACCAAAAGAACACATAAAACACAGGCACACACACACACACATTCACACCGTAATATCATATAAAAGTGTGGCTGCGTCTCCCAGAGCGCCCTGGGGGTAAGCAACGCGGGCGCCCGCAAGGAAAAAGTGCAAAGAAATTAGAGAAAAAAGACCGTCTCACTCACTTCTCGATGCCTTTTCTTCTCTAACTATAAAAATTGTCAACTGTGGGGCCTCGAAACGAACGAAAGCGAAAAAAATCAAGAGAACTAGACTCTGAGAGAGAGACAGAAGAAAGAGTTTTTTTCGACGCCGACCGCAGCTGCCAAGCAGCAATAATGACATGCTGGAGAAAAAAATTCAAAGTTTAAATATGTTTTGGCGATCAGAAGCCTAGACCATAAGCCCCTTGTATTGAGTTTTCTCGGCCATTTTTGGTACGGTACATATACATAGAGACTTCAGATTGGGAATTGCGAATCTGTTAGAGTAAGAATAGGCCTAAAACATTGGGCCTAACGGTGACGGAGACTAGGCCTTGTTGGGAGCGATTGTTAAACTATGACATTGCCTAGAACCTCGTTCTATCTTGGTTATGTGGTGTCGGGCTTTCATGATCAGCTCCTTTACTTTTGTCCAGAGAAGGTTTGGGCTTTTTCTGTGGGTGCTTTGGGCTCTATTGTAAATAGGTGATCTTGCGCAGAACACAACGTAGATCTAAATTCTTGTCTAGGCTCTGCAGGCTCCTGAGGGTAGCTGTTTTGCACCCCAAAGCAAAATGATCTCAAAATTACACGACTTCAAGCAGGAGGATTTTTCGATGATTGCCAAATTTTGTAACTTTTATAGGCTTAAGCTTATGGTTATGTTTAGGCGTAGGCTTAG ####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### -V 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC diff --git a/htslib/test/ce#tag_depadded.sam b/htslib/test/ce#tag_depadded.sam deleted file mode 100644 index 408080b..0000000 --- a/htslib/test/ce#tag_depadded.sam +++ /dev/null @@ -1,11 +0,0 @@ -@HD VN:1.4 SO:coordinate -@RG ID:UNKNOWN SM:unknown LB:UNKNOWN -@SQ SN:CHROMOSOME_I LN:102 -I 16 CHROMOSOME_I 2 1 100M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC PT:Z:27;28;+;STOP;Note=tag1 -II.14978392 16 CHROMOSOME_I 2 1 100M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC PT:Z:27;27;+;PRIM;Note=tag2|28;28;+;OLIG;Note=tag3 -III 0 CHROMOSOME_I 2 1 27M1I73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTCAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA ###########################"##@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC PT:Z:1;1;+;COMM|101;101;+;COMM -IV 16 CHROMOSOME_I 2 1 100M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -V 0 CHROMOSOME_I 2 1 100M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -* 768 CHROMOSOME_I 2 255 1M * 0 0 * * CT:Z:+;STOP -* 768 CHROMOSOME_I 28 255 2M * 0 0 * * CT:Z:+;COMM;Note=consensus%0Amulti%09line%0Atag%0A!"#$%25^&*()_+<>?:@~{}%7C%0A1234567890-=[]'%3B#,./\ -* 768 CHROMOSOME_I 101 255 1M * 0 0 * * CT:Z:+;STOP diff --git a/htslib/test/ce#tag_padded.sam b/htslib/test/ce#tag_padded.sam deleted file mode 100644 index d0a3924..0000000 --- a/htslib/test/ce#tag_padded.sam +++ /dev/null @@ -1,11 +0,0 @@ -@HD VN:1.4 SO:coordinate -@RG ID:UNKNOWN SM:unknown LB:UNKNOWN -@SQ SN:CHROMOSOME_I LN:102 -I 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC PT:Z:27;29;+;STOP;Note=tag1 -II.14978392 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC PT:Z:27;27;+;PRIM;Note=tag2|29;29;+;OLIG;Note=tag3 -III 0 CHROMOSOME_I 2 1 101M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTCAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA ###########################"##@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC PT:Z:1;1;+;COMM|101;101;+;COMM -IV 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -V 0 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -* 768 CHROMOSOME_I 2 255 1M * 0 0 * * CT:Z:+;STOP -* 768 CHROMOSOME_I 28 255 3M * 0 0 * * CT:Z:+;COMM;Note=consensus%0Amulti%09line%0Atag%0A!"#$%25^&*()_+<>?:@~{}%7C%0A1234567890-=[]'%3B#,./\ -* 768 CHROMOSOME_I 102 255 1M * 0 0 * * CT:Z:+;STOP diff --git a/htslib/test/ce#unmap.sam b/htslib/test/ce#unmap.sam deleted file mode 100644 index fec218c..0000000 --- a/htslib/test/ce#unmap.sam +++ /dev/null @@ -1,6 +0,0 @@ -I 4 * 0 1 * * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -II 4 * 0 1 * * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -III 4 * 0 1 * * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -IV 4 * 0 1 * * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -V 4 * 0 1 * * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -VI 4 * 0 1 * * 0 0 ACTAAGCCTAAGCCTAAGCCTAAGCCAATTATCGATTTCTGAAAAAATTATCGAATTTTCTAGAAATTTTGCAAATTTTTTCATAAAATTATCGATTTTA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC diff --git a/htslib/test/ce#unmap1.sam b/htslib/test/ce#unmap1.sam deleted file mode 100644 index ba1bcfe..0000000 --- a/htslib/test/ce#unmap1.sam +++ /dev/null @@ -1,20 +0,0 @@ -@HD VN:1.0 SO:unsorted -@SQ SN:CHROMOSOME_I LN:15072423 -@SQ SN:CHROMOSOME_II LN:15279345 -@SQ SN:CHROMOSOME_III LN:13783700 -@SQ SN:CHROMOSOME_IV LN:17493793 -@SQ SN:CHROMOSOME_V LN:20924149 -@SQ SN:CHROMOSOME_X LN:17718866 -@SQ SN:CHROMOSOME_MtDNA LN:13794 -@RG ID:UNKNOWN SM:UNKNOWN -@PG ID:bowtie2 PN:bowtie2 VN:2.0.0-beta5 -SRR065390.33808391 4 * 0 0 * * 0 0 GATCGCACTGAAAATCTGGATATAGAACGTGTGCAAATGATTGTCTCTACCGTTCCGTAAAAATTATTGCTAATTAGCAATGATTTTAAGCTAATTAGTT CCCCCCCCCCCCCCCCCCCACCCCCACCCCCCCCCCCCB;CCCAACCCCCCCCCCCCCD=B9BCABCBCB>BBBC@B<<@BA;BCC?B>A<<@(?:4==4 YT:Z:UU -SRR065390.33808433 4 * 0 0 * * 0 0 NCATCTTCTGCAGGCGCGGTCGGCACCGTGTATTCGTTACGTTCCACGCCGATGATATTAGACACCAGCACGGTGTGATGCGCAGTCACCGCACGACCCG !################################################################################################### YT:Z:UU -SRR065390.33808462 4 * 0 0 * * 0 0 NGTTTGAGCGCAATGACTTGACGATGACCGGTGATTACAGTAACCAGCATATTGTGCCGATGAAGCAGGCTGTCGCTCCGCAATTTGAAGAGGGACACGA !################################################################################################### YT:Z:UU -SRR065390.33808468 4 * 0 0 * * 0 0 NGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCACTTTATTTTACTCTCTGTGGCTTTATCGATTATTTTTTTCTCCTTGGCTTTCCTCTTTATTTTT !))))))''&585555AAAAA6AA############################################################################ YT:Z:UU -SRR065390.33808471 4 * 0 0 * * 0 0 NCGTCTTCTGCGGTTTCTATGATAGAGCAATTCTGTGGCGGATATTAAGATAACGGGTATCTGTTCTTTAATGATGCCGCAAAAAATGGAAAGTTAAGAA !################################################################################################### YT:Z:UU -SRR065390.33808489 4 * 0 0 * * 0 0 NGGAAATTCTGCGGTATCGAGAGATATTTGCCTTTAATTACCCCATAGCCGATTAACATCCCGGCACTATTAATCATTTCAATATTATCAATCACAAAGT !################################################################################################### YT:Z:UU -SRR065390.33808504 4 * 0 0 * * 0 0 NTGGAACACCATGCCCACTTTCGCACGCAGCAGGGCGATATCCTGAGAGTTGGTCAGGATGTTGTCGCCATCAAGCAGAATTTCACCTTCCGCACGCTGC !################################################################################################### YT:Z:UU -SRR065390.33808511 4 * 0 0 * * 0 0 NCAGAAATATATTGAACTTTTGAAACATGTCCCAACTTTTTTTTTTTTTAGAACACGTTGGCTGGTTTTTCAAGTTTTGAATACTTTTTAGGTTTTTTTG !***()(+++AAAAAAAAAA:78:8318::AAAAAAAAAAAA########################################################## YT:Z:UU -SRR065390.33808521 4 * 0 0 * * 0 0 NTGTCAATACATTGTAAGGATTTCCCATTATGTCAATACATAGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATTTCGTATGTCGTGTTTCTTT !################################################################################################### YT:Z:UU -SRR065390.33808523 4 * 0 0 * * 0 0 NTACTTCTTACAAGATTTTTATCGCTACTTGAAAAAAATTCATCAACATAATCGCCATGACTATCTGCACCGTGAGTATGATAAGCAGCAACTCTATCTG !***+--,')AAAA778577A72AA50888AAAAAAA72A88858AAAA77AAAAAA7AAAAAAAAA8AA############################## YT:Z:UU diff --git a/htslib/test/ce#unmap2.sam b/htslib/test/ce#unmap2.sam deleted file mode 100644 index 363362c..0000000 --- a/htslib/test/ce#unmap2.sam +++ /dev/null @@ -1,29 +0,0 @@ -@HD VN:1.0 SO:unsorted -@SQ SN:CHROMOSOME_I LN:15072423 -@SQ SN:CHROMOSOME_II LN:15279345 -@SQ SN:CHROMOSOME_III LN:13783700 -@SQ SN:CHROMOSOME_IV LN:17493793 -@SQ SN:CHROMOSOME_V LN:20924149 -@SQ SN:CHROMOSOME_X LN:17718866 -@SQ SN:CHROMOSOME_MtDNA LN:13794 -@RG ID:UNKNOWN SM:UNKNOWN -@PG ID:bowtie2 PN:bowtie2 VN:2.0.0-beta5 -SRR065390.14978392 16 CHROMOSOME_I 2 1 27M1D73M * 0 0 CCTAGCCCTAACCCTAACCCTAACCCTAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA #############################@B?8B?BA@@DDBCDDCBC@CDCDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:1 XM:i:5 XN:i:0 XO:i:1 AS:i:-18 XS:i:-18 YT:Z:UU -SRR065390.921023 16 CHROMOSOME_I 3 12 100M * 0 0 CTAAGCCTAAATCTAAGCCTAACCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA ###############################################???88:;98768700000<>:BBA?BBAB?BBBBBBBB>B>BB::;?:00000 XG:i:0 XM:i:3 XN:i:0 XO:i:0 AS:i:-6 XS:i:-13 YT:Z:UU -SRR065390.1871511 16 CHROMOSOME_I 3 1 100M * 0 0 CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA 0:BB@>B<=B@???@=8@B>BB@CA@DACDCBBCCCA@CCCCACCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:0 XM:i:0 XN:i:0 XO:i:0 AS:i:0 XS:i:0 YT:Z:UU -SRR065390.3743423 16 CHROMOSOME_I 3 1 100M * 0 0 CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA ##################?6@:7<=@3=@ABAAB>BDBBABADABDDDBDDBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:0 XM:i:0 XN:i:0 XO:i:0 AS:i:0 XS:i:0 YT:Z:UU -SRR065390.4251890 16 CHROMOSOME_I 3 1 100M * 0 0 CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA ###########@BB=BCBBC?B>B;>B@@ADBBB@DBBBBDCCBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:0 XM:i:0 XN:i:0 XO:i:0 AS:i:0 XS:i:0 YT:Z:UU -SRR065390.5238868 16 CHROMOSOME_I 3 1 100M * 0 0 CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA @,=@@D8D;?BBB>;?BBB==BB@D;>D>BBB>BBDDBA@@BCCB@=BACBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC XG:i:0 XM:i:0 XN:i:0 XO:i:0 AS:i:0 XS:i:0 YT:Z:UU -SRR065390.8289592 16 CHROMOSOME_I 3 1 100M * 0 0 CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA ###############################A?@C9@@BC=AABDD@A@DC@CB=@BA?6@CCAAC@+CCCCCCCCCCCCCCC@CCCCCCCCCCCCCCCC XG:i:0 XM:i:0 XN:i:0 XO:i:0 AS:i:0 XS:i:0 YT:Z:UU -SRR065390.33808391 4 * 0 0 * * 0 0 GATCGCACTGAAAATCTGGATATAGAACGTGTGCAAATGATTGTCTCTACCGTTCCGTAAAAATTATTGCTAATTAGCAATGATTTTAAGCTAATTAGTT CCCCCCCCCCCCCCCCCCCACCCCCACCCCCCCCCCCCB;CCCAACCCCCCCCCCCCCD=B9BCABCBCB>BBBC@B<<@BA;BCC?B>A<<@(?:4==4 YT:Z:UU -SRR065390.33808433 4 * 0 0 * * 0 0 NCATCTTCTGCAGGCGCGGTCGGCACCGTGTATTCGTTACGTTCCACGCCGATGATATTAGACACCAGCACGGTGTGATGCGCAGTCACCGCACGACCCG !################################################################################################### YT:Z:UU -SRR065390.33808462 4 * 0 0 * * 0 0 NGTTTGAGCGCAATGACTTGACGATGACCGGTGATTACAGTAACCAGCATATTGTGCCGATGAAGCAGGCTGTCGCTCCGCAATTTGAAGAGGGACACGA !################################################################################################### YT:Z:UU -SRR065390.33808468 4 * 0 0 * * 0 0 NGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCACTTTATTTTACTCTCTGTGGCTTTATCGATTATTTTTTTCTCCTTGGCTTTCCTCTTTATTTTT !))))))''&585555AAAAA6AA############################################################################ YT:Z:UU -SRR065390.33808471 4 * 0 0 * * 0 0 NCGTCTTCTGCGGTTTCTATGATAGAGCAATTCTGTGGCGGATATTAAGATAACGGGTATCTGTTCTTTAATGATGCCGCAAAAAATGGAAAGTTAAGAA !################################################################################################### YT:Z:UU -SRR065390.33808489 4 * 0 0 * * 0 0 NGGAAATTCTGCGGTATCGAGAGATATTTGCCTTTAATTACCCCATAGCCGATTAACATCCCGGCACTATTAATCATTTCAATATTATCAATCACAAAGT !################################################################################################### YT:Z:UU -SRR065390.33808504 4 * 0 0 * * 0 0 NTGGAACACCATGCCCACTTTCGCACGCAGCAGGGCGATATCCTGAGAGTTGGTCAGGATGTTGTCGCCATCAAGCAGAATTTCACCTTCCGCACGCTGC !################################################################################################### YT:Z:UU -SRR065390.33808511 4 * 0 0 * * 0 0 NCAGAAATATATTGAACTTTTGAAACATGTCCCAACTTTTTTTTTTTTTAGAACACGTTGGCTGGTTTTTCAAGTTTTGAATACTTTTTAGGTTTTTTTG !***()(+++AAAAAAAAAA:78:8318::AAAAAAAAAAAA########################################################## YT:Z:UU -SRR065390.33808521 4 * 0 0 * * 0 0 NTGTCAATACATTGTAAGGATTTCCCATTATGTCAATACATAGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATTTCGTATGTCGTGTTTCTTT !################################################################################################### YT:Z:UU diff --git a/htslib/test/ce.fa b/htslib/test/ce.fa deleted file mode 100644 index ac19897..0000000 --- a/htslib/test/ce.fa +++ /dev/null @@ -1,20803 +0,0 @@ ->CHROMOSOME_I -GCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGC -CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCT -AAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA -GCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGC -CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCT -AAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA -GCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGC -CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCT -AAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAAAAATTGAGATAAGAAAA -CATTTTACTTTTTCAAAATTGTTTTCATGCTAAATTCAAAACGTTTTTTT -TTTAGTGAAGCTTCTAGATATTTGGCGGGTACCTCTAATTTTGCCTGCCT -GCCAACCTATATGCTCCTGTGTTTAGGCCTAATACTAAGCCTAAGCCTAA -GCCTAATACTAAGCCTAAGCCTAAGACTAAGCCTAATACTAAGCCTAAGC -CTAAGACTAAGCCTAAGACTAAGCCTAAGACTAAGCCTAATACTAAGCCT -AAGCCTAAGACTAAGCCTAAGCCTAATACTAAGCCTAAGCCTAAGACTAA -GCCTAATACTAAGCCTAAGCCTAAGACTAAGCCTAAGACTAAGCCTAAGA -CTAAGCCTAATACTAAGCCTAAGCCTAAGACTAAGCCTAAGCCTAAAAGA -ATATGGTAGCTACAGAAACGGTAGTACACTCTTCTGAAAATACAAAAAAT -TTGCAATTTTTATAGCTAGGGCACTTTTTGTCTGCCCAAATATAGGCAAC -CAAAAATAATTGCCAAGTTTTTAATGATTTGTTGCATATTGAAAAAAACA -TTTTTCGGGTTTTTTGAAATGAATATCGTAGCTACAGAAACGGTTGTGCA -CTCATCTGAAAGTTTGTTTTTCTTGTTTTCTTGCACTTTGTGCAGAATTC -TTGATTCTTGATTCTTGCAGAAATTTGCAAGAAAATTCGCAAGAAATTTG -TATTAAAAACTGTTCAAAATTTTTGGAAATTAGTTTAAAAATCTCACATT -TTTTTTAGAAAAATTATTTTTAAGAATTTTTCATTTTAGGAATATTGTTA -TTTCAGAAAATAGCTAAATGTGATTTCTGTAATTTTGCCTGCCAAATTCG -TGAAATGCAATAAAAATCTAATATCCCTCATCAGTGCGATTTCCGAATCA -GTATATTTTTACGTAATAGCTTCTTTGACATCAATAAGTATTTGCCTATA -TGACTTTAGACTTGAAATTGGCTATTAATGCCAATTTCATGATATCTAGC -CACTTTAGTATAATTGTTTTTAGTTTTTGGCAAAACTATTGTCTAAACAG -ATATTCGTGTTTTCAAGAAATTTTTCATGGTTTTTCTTGGTCTTTTCTTG -GTATTTTTTTGACAAAAATTTTTGTTTCTTGATTCTTGCAAAAATTTTTC -CGTTTGACGGCCTTGATGTGCACTACCTTCGCTTAAATACTACATTTTCT -GAAAATGTTATAATAGTGTTCATTGTTTCATACAAATACTTATTTAATAG -TATTTCTGGTTATATAATTTGTATAAAAAGTGGTTGACATAACAAGGCTG -ACGAAACTTTGTGATGGCTGAAAATATTTTCCTAGCTTTATTGATTTTTA -TTTATACGTGTTTGAATAACTTGGCCAAATCGCCGAGAAGGAATAGAATA -CTGGACGACATTGTACATATTTTCCAAAAAATCAGAAAGTAGATGACGGG -ACCAATTCTTTCTGTCAGGTTTTACAACCGCCCAGTGCGTCTACGTCACA -TGTTGTATAAATGGTTGTAAACAATATGCGGAAACAATCAAATGCATTCC -CATAAGGCATAATATAGAGGCTACAGGCAATGAGTATCGCTCTTTGCTTT -GTTTAAAGGGGGAGTAGAGTTTGTGGGGAAATATATGTTTCTGACTCTAA -TTTTGCCCCTGATACCGAATATCGATGTGAAAAAATTTAAAAAAATTTCC -CTGATTTTATATTAATTTTTAAAATCCGAAAATCCATTGGATGCCTATAT -GTGAGTTTTTAAACGCAAAATTTTCCCGGCAGAGACGCCCCGCCCACGAA -ACCGTGCCGCACGTGTGGGTTTACGAGCTGAATATTTTCCTTCTATTTTT -ATTTGATTTTATACCGATTTTCGTCGATTTTTCTCATTTTTTCTCTTTTT -TTTGGTGTTTTTTATTGAAAATTTTGTGATTTTCGTAAATTTATTCCTAT -TTATTAATAAAAACAAAAACAATTCCATTAAATATCCCATTTTCAGCGCA -AAATCGACTGGAGACTAGGAAAATCGTCTGGAGATAGAACGGATCAACAA -GATTATTATTATATCATTAATAATATTTATCAATTTTCTTCTGAGAGTCT -CATTGAGACTCTTATTTACGCCAAGAAATAAATTTAACATTAAAATTGTT -CATTTTTGAAAAAAAAATAATTAAAAAAACACATTTTTTGGAAAAAAAAA -TAAATAAAAAAAATTGTCCTCGAGGATCCTCCGGAGCGCGTCGAATCAAT -GTTTCCGGAACTCTGAAAATTAAATGTTTGTATGATTGTAGAACCCTTTC -GCTATTGAGATTTGATAACTTTTAAGTAATAAAATTTTCGCAGTAAGACA -TTAAAACATTTCACAATTAAGCTGGTTCTGAACTGTGTGAAGTATATTGA -AAAAAACTAACTGATACAAAAATATAATTTTATGATAGTTTTCTGGATGT -CCCAATATAAACGATGTCAATTCTGCGACATGCTACAGTCATCCACGAAA -GTAACCCGAATACCGACAAAAGAAGAGGAACGCCAACTTTGGATAGACGC -TCTAGGGGCTGATTTTGGTCGGAAAATAGTCGGGAAAAAATAGAGGACAT -TACAGATGAGGATGAGGATGAAGATAGAAATTTGCCGACAACTTCGTCAT -GCCGCTGATTTTTTTGATGTTCTACGCTTAAATTTTCAGCGAACGAACTA -TTTTTTATATTTTGATTGTTTTTAAATAATATTTGCCATAAGAAATTCTC -ACTTTTCCAGGAAACGTCGTTTCGCCGCGATTTTCCTCGTCTCCAGTCGA -TTTTGCGCTGAAAATGGGATATTTAATGGAATTGTTTTTGTTTTTATTAA -TAAATAGGAATAAATTTACGAAAATCACAAAATTTTCAATAAAAAACACC -AAAAAAAAAGAGAAAAAATGAGAAAAATCGACGAAAATCGGTATAAAATC -AAATAAAAATAGAAGGAAAATATTCAGCTCGTAAACCCGCAAGTGCGGCA -CGGTTTCGTGGGCGGGGCGTCTCTGGCGGGAAAATTTTGCGTTTGAAAAC -TCACATATAGGCATCCAATGGATTTTCGGATTTTCAAAATTAATATAAAA -TCAGGGAAATTTTTTTAAATTTTGTCACATCGATATTCGGTATCAGGGGC -AAAATTAGAGTCAGAAACATATATTTCCCCACAAACTCTACTCCCCCTTT -AACAACCACCCGAGGATATATTCGACAAACGATCTATCTACTAGGAATAA -CTCGATTATTGACATATTATAGACTTCTTTTAGTATTTGTAAAATAGAGG -ATCAGACCCAAAATTCAGCCCGCGAAGGCATGACGTCAGCGCGAGGCAGT -AGTTTCCAGAAGAACTCTGTCGTCTACCTTAATGCCTCAAATGCGAACCC -GCTTCGGCCATCCTTCTCGCTCAGAGAATGGATTAGAGTTCTCATCAACT -CCTCTGTCTAATTTTCAACTGCGGCGGTTGGCGACCGGTATTACCGCGGC -GACCGACACCTCCCGGGTTCCGTCGATCGCTGTCTGTTGTGTGCGCCGCG -ACTCCGCCCACCGGTGGTAACTTTTTGTGGGGGAATCTTTGTTTTTGGTC -ATTTTTCAGCGCTTTTCAGCGATTATTGACCAATTTTGAATAAAATTTTC -AACAGAATATCATCTAAAATATTGCTTAACATTTATTTAACAGAAATAAC -GTGAGCACGCATGTAAAACATGAAATTTTCGGGAAAATTGCAATTAAACG -AATAAAAATCGATATTTAAATCAATTATTGGTGAATCCGGTGTGTTGAGG -CTTCAATGCATACATTTTTACTGGATAAATCTCCTTTGGGAATCCGGTTT -GCAGTGCTTTCGAGACCATGTCCAGTTGAGAATCGGCGAACGCTTTAAGA -AGCTCGGGCTGAATAATGAATTGTTTTAAAAAATGTTTAGTAAAAAATTG -TTTTCGTGCAAATTGTCTTCGATATTATCCAAACGTGACGTTTTGCGATT -TTCGCGCTAAAATTACAGTAAGTGGGGTCTCGACACGACAATTTTTGTGA -AATACAAACGGGCGTGTGTCTTTAAGAAGTACTGTAGTTTAAAAACTTCA -TTTCTGTGGAATTTTCATATATTTTTCATAGTTTTTCTCTTTAAATAAAT -CACTTTTCAACAAAAAACTATGAGACAATAGTTTGAAATTACAGTATTCT -TTAAAGGTGCACGCCTGCTCGAATTTCGCAAAAACGTGTCGTGTCGAGAC -CCCAATTACAGTATTTTTGACCCGAATATCGCGAAATTTCGAGTCTGGGT -GAAAACATTGAAATTTTTGGCAAAATAAAAGAAATATGTCCTTTTTCAGA -ATATATTTTCTAAATTTCGAGACGAAACAACAATTTTAAATGAATTTTAA -TTTTAAATATTAAATATTTCGGAATTTGGCGTTTTTTATGCATGTCGATT -CACTAACGATTTTGTACTACACGTGGGCAAGTTTATACAGTTTTTGGCTA -AAATTTGTGAATTTGAACCGTTTTTCGGCGAATATTTGAAAAATTGGCAA -AACTGGTTCAAAAACAAAAATTTTTTAAACTGTACAAACTGTCCAAAAAT -TCGTCGTAAATCGACACACCCTTCTCATTTTTTCAAAATTTTAATTGTTT -TCGAATGTTTTTTTTGCAGAATAATTTGTAAAATGAGCCTTTTGTGAATT -TTTTTTAATTTCAAAGTTTTTATTATTTTTTCTCAAACCAGCACCTCTGT -TCTCGTCCAACTATGATCATCATCGTCGAATAACCGTTTCTCGTGATTTG -TCACATTATCCTTGAGCACAATACATCCACCAGGTTTCAGTCCTTTCTGA -AAATGAAAATTAATTTTAAAAAAATTGAATTATTTTAAATGAAACAGTTT -TCAGAGATTTCTCAACTTTTGAGTCCACCACCAGGCCTGCACGTTTTTCG -GGTTTTATCTTTTAAAAAACTGAAAAATCGAAAAATTTCAATTTCTGTTT -TGTGGTCAAAATTGTAATTACAGGTAAGCAAATAGTTTAATTTTAAAATT -GAAAATTAGGGAAATGACCGGACATAAGTTTAAAAACCCGATTTTTTCAA -TAAAAAGGAAAATTGAAAATTTAATAAAACAGGTTGTAAATCAAGGAGAT -CGTATTGATTGAAAAAAAATCCGAATGTTCCGGATTTTTCAGTGGTTTTT -TTTGAAAGAAAATCGAAAAAGTAAATGTTTTTAATTTTTAAATTTAAATT -TTTAATCGGAAAAAATGTACGAAATTGACTTTTTAATGTGAAAAATTGTT -GTTTTAAAAAAAAATTTTAACCGATACAGATTTTCTAGACTCAGTTTTTT -CGGTTGAATATTGTTTTTTACTATTTTTTCATTACAGAAAGAATCCAATT -TTATTTCGCTTAAAAAATAACCGGAGCATCGAAAATATTTTTTTTTCTGT -TTTACTCAAAGCATTTCAATTACCTAGAATTTTGTTTAAAAACTACATGC -TTTATTTATGAACGTAATAAATAAGACCCCCTCTTATTTATAAACTTTCA -ACATATTTTCAGTTTTCAGTGCTATCTAGTGCTTACCGCACATCTTTTAA -AGAAATCAACCAAATCCTCATCAACCAAATGCCCTGAAACCCATTGAATC -CATATCAAATCATAACGTCGTTCGGGCGGTGCAAACGTCTGCAGTCCTTC -GACGAATTTATCTCCAATTCGTGGATGTTTTCCAATATATTGATCACTTT -TCGTGATCAACTCCTCGACGACGTCTTCCATATCAACTTTCGAGAAGAAT -GGCATTAAGAGATGCTTTGTAACACGTCCGATACCCGCTCCGCAGTCCAG -TGCATAGTCAAAGTAGCCGAATAGATTCTGGAAAATATTTATAAAATTCA -AAGTTGGCCCAGGGGTGACCGGCAATTTCAAGCAAATCGGCAAATTGTCA -ATTTTCTGAATTTGCCGAAAATTTGACAAAAACGACAATTTGCCGGTTCG -CCGAATTTACCTTTTTTAAATTTAATTTTCAATTCAGGCAAACTGACGAT -TTTCCGTTTGCCGGATATCAATTTGCAGGAATTTCTCAAAGGAATTTTTA -TTAAGACGGAAACACAGTGCTTTTTTGAATTTTTTTTCCCGTTTTCTTCA -GATATTTTTATAGAATTTACTGACTTTTCAGAATAGATGTAGGACAATTT -TGTTGTTTTAAAAATTGAAATTCTGAAATTTCCAACAAAAAAACATGTGC -AAACCCACAAGTTGGCAAAAATATTTTGCATTTGCCGTTTTTCCCGTTTG -CCGAAAAGTCTAATTTCGGTAATTGGGCCATTTTTCGAAATTTTGAGCCA -CATAAAAAACTTTGAACCATTTTTGAGAAGTATTATTACGACATTCGTTT -ATTTGAGCACAATTTGGGCCTATACTTTCAAAATCGGGGTTTGAAAACCC -CTATATGTTCGACCGAATGTTAATCTCATAAAAATTTGATGAAAATAAAA -TTTTCTACGGCTCATAAACGTATAGCCCCCGTCAGTCTCAAAATTTATAC -GATAGACACTTTTTGGCGTTTATCGCCTATATTCCGTCAAAAACCATTAT -TCATCATTCTTTCAATGTTGTTTTTTTTAAGGCTAAAAAACTTTCATGCA -AATTTGTTAGCCGTGTCGTGGTTTATACGAAAATTTCAGAATTTATAAAA -TAAAGGAAAACGAAAATGTTTCTATATACCCTATTTATGTTCTCTGATTC -CGAATACCAATGTGAAAAATTCAAAAAAAATTCCCTGATTTTATATAAAT -TTTTGTAAGCGACAAAAATTGTCGTTTGAATTTCACACTTGGTTACAAAA -ATTTATGAAAATGAGGAAAATTTGTTTTAATTTTTTCACATTGATATTCG -GAATCAGGAAAATAAATAGGGTCTATAGAAAAATTCCGAACCTTCACTCC -TTCTCTGAGTATAATAAATTTAAAATAAATACAGAAAATTTCAGTTCAGA -CCTCATTAAATTTGGGTATATTTCTAGGATCCGAGTTTTTACACCAGATT -TACAAACTTTTAGCCTTTCACCGCCTTTTTATGCGCATTTCCCATCAGTC -AACTCCAAAAAAATCGCAACTTTTGCCTCATATTTCAAGAATATTCCCCT -TTCTCTCCCCATTGAAAGTCATTTTCGAAACAAGCGGAAGATTCGTCATA -TGTGGTAATGTGTGGCGTGCGTTGGCAAACAACAAGAAAGAATCATTCTC -TGAAAACAAAAAGCGTTTTGGGTGCCAAAGTAATATTGAAAATCTGCCGT -GTTTTCTCATTTTCCATCAAAAGAAAATGAGAAAAAAGTTTCGGCGTTTT -ATTTGATTTCCGGGAAAGAAGACTCGGAAAAAGATTTAATTGAATTTTTC -ATAGCAAACCTATATTGCAACAACTTTCTAAAAGGTCAGAAATTGCCGCG -TAGCCTAGAAAATTGGAAAACTCTTCCAGCTGGTATTATTTCAGACATGG -TGCATCGAAAATTCGAAAATTACAGAAATTAACATTTTGGAGCATCTGCC -AGAAAATTGAGATTACAGTACCCCACTTCTGCCGAGAAATTCGAGGTGGA -AGAGGTCTTACAAAATTTTCGGTCACGTGAAAATGGGAAGCGTTCAGGCT -CCACACGACGGAATTCACCTAGTTTTCAGGTGAGAAGATATCGTACGAGG -AGAATTGACCTCCAAATCCTGATCGTGACTACAGGTCGTCGTTCGGAGCT -GTGGAAGAGTTTTGAAAATCTTCGACCATGAGAGAAATAGACAGGACGAC -CAAACATTTTCAGTGGAAGAGCTTTTCCTAGGCCATCAGGATGCTATTTC -GACAGAGCTGAGTTATCCTCAAGTCGTTACGAGGTGTGGAAAAGTTTTCC -AAAATCCCCGACCAGGTAGAAAATGAGCACACCGATTAAGTTTCTCCAGT -GGTAGAGTTTTTTCTAGGCCATCATTATGCTATCTAGAAAAAAGCTTCGG -CCATGGGGTTTTTAGGCCGTCTATTTATTTCTCATAACTTTCTCAGAAAT -TCGTCTATTTCTCAGAACCCCCCAATGATAAGTTTTTTGCAAAAAAAGTT -CTGCTTTGCTCATCAGCCGTAATCAGGTGACCTCATTAGGCCTACCCAAA -CACAGATTTGTCATTATTTTTCAGACAAAAAACACGAAAAAAATCTTCAC -GCATGGGGTGATAACCTGATTTTAAATCTTACTGTGCCGGCTGGCGCGGC -GAGCTTCGATCACTGAGCCGAAAGATTATGAAAACTATGGGAATGACGGC -GTAGCCTAGAAATCGTCCAGGCAGAGATTCTGTCTAATTTTCGAGCATAT -ATCTCCCAGTTTTGTTATTAATTTAAGTAAACTCAAACCTAGAAACAAGT -AAAACGGGAGGGGGGGGGGGAATATCAGAAAATTAAATCTTGCGACACTT -TTCCATTGATACTTTCAAGGTAATGCCCAGAGGTGTGCGGCAAATTTTGA -AACTTGCGCATGCCGCCTTTTTTTTTTTCTAGAAAACAGTCAGAATTTTT -TGTCGAATTTGTTGAAAATTCGCTAATATACTGTGAGTTTAGAAAAAATA -ACGAAAAAACTCGGAAAAGGAGGAAGAGATCTGAAATATGTAGATTTTTT -TAGAAAAGACCAGAAATTACTGAAAAATTGGCATTTTTCGTCGAAACCCC -AATATACTAAATTATTCGGATTTTTAGAAAATTTTCAAATTCACCATACA -GTGCATTTTTTCCTACTTCTACGACTTTAAAGGGGGGAGCATTTATGCGG -AAGGGTCTTGCCGCGCATTTAGTCATCATTTTTAGCAGTTTCTGTGTAAA -ATTCGCGTAGATCACATGAAGATCACAAAATATTTATCCCATATTTCGTA -TTTCTGTTGCTTTTTCACAAATTAATTGTGATCTACGCGTGATCTCCGCG -AATTTTGAGCAGACTTTGTTAAAAATGATGACTATGTGCACGGCAAGACC -CTTCCGCATAAATGCGCCCCCCTTTAAAGTCGTAGAAGTGGAAAAAAAAT -GCACTGTAGCAAAAAATCGAACATTTCTGTTCGATTTTTGAATTTCTCGA -AATTTTTTAAAATAATTTTTAAAATAACATTTTTATTTTATTTCGAAAAC -TACCGATTTTAGAAAAATTCTAAAATTTCGATTTTTTTTGTTGATTTTTC -GATTTTTAAAATAAAATTTCATAATTTTTTAAACCGATCTTTCTTGCTTT -TCCTGAAAAATCGATGATTTCTATACCTTTTTCTTCAGTCCTTCAATAAA -TCGTTTCGACGCCGATATGTCGGGCGCGTGAAGCGCTTCGAATCCGCCGA -GCATTCCGTTGACGTCCTGGCTCGCGCGGCTCCAGTATTCCTCCGCCTGA -AAGAGAATAGTTGAAAACATTGTTTTGAGACTTAAAAATTTTTTTTTTAG -TTTTTTTCAAAAATTCTTACATGTTATAGAGTTTTTTTTTCAAATTTTCA -GCTTTTTTCAGAAAAACTTAGTATTTTCGATAATTTTAAATAAAAAAGTT -TTTTTTCAAAAAATGTTTCGGTTTTTTTTTTAATTTTTGGTCTAAAATTC -TCCGCAAAAGATTTGCGTGCTGGCCGAACTTTTTGATTTTGTACCTTTTC -ATAAACATCTTCACCATTGTGAATTCTAGAAGATGATGAAGAGCTCATTT -TTGATGTTGTGACAGCTGCTCCGAGCAATCTGGAGACTTTTGTGACGAAA -AGACGAGAGGTCACGGATATGATGATGATACTGGAAATGAGATATTTATA -TTTACTAGTTCATCGGGAAAATTATTACGAGAAAGATAAACAGACATGTG -CGTTTTTTTAATGGAAGAGAAACACAAGAAAAATCTGGAAAACTAGGCCA -CGGCTATCAGTGTCGATTTACGGCATACGGTCTCGACACGACTATTTTTG -TTAAATGTGAAGGTATGCACCTTTAAAGAGTACTGTAGTTTGTAACTCTC -ATTGCTGCAACATATTTGACGCTCAGCGAAAACTACAGCAATTCTTCAAA -AGACTACTGTAGCCTTTGTGTTGACTTACGGGCTCGATTCTCGAAACGAA -TTTCTGCTCGAATTGTGACAGCCATATTCAATTTGGTATAGTCTTTTCGT -ATTTTTTGCCATTTTTCTGTTTTCTTCTAATATTTAATCTATTATTAAAT -TATGTCCGTAACTCCCTCCAAAATTAGAACTGCGACCGAACAGAGATTCG -TTCCGCCCCATATTCCGGCCAATCAGATCGAGTAGGCGGAGTTCGAAGTC -GCTGATTGGTTTGAAAAGTCGCGGAAATTTGCAAGTTTTAAGGTAGCGAA -AACTGATGACTATTGTAGCGCGCTTGTGTCGATTTACGGAATCTCGATTT -TCAGGAATGAATTTTTAATTACATTTTTTCGCTCAATTAATATTCTAAAT -AAATAAATAAATGATTTGAATTAATTTAATTTCATTCGAGCCCGTAGATC -GACACATGTGCTACAGTAATCATTAGTTTTCGCTACGAGATATTTTGCGC -GTAAAATATTTTCCCGTAATAACTCTACTCCGACAAACATTACGACCTCC -ATGGAGGCCTCCAGGTATAGGTGAGACTCTTGTATTTCCAATTCAGAGAC -AATGCGTCACTGGAAGAGAAAACGAAGCGGAAAAAAAAACACGGAAACCC -AAAAATAGTGTTTGCCCCGCTCTATTCTTCTCCAATAATTTCTGTGTCTA -ATTTTGAAAGACTCCACCTGTGTATGCCTTCTCGACATAAACCCCCCCCC -CCCCCCCTATCTTACATGGTACTGATAACACTTTCAGTCTTTCACACTTT -TGGCGCGCAACGCCGCTCTTTTTTCGCGGCGAGCTGATGACGTCATCAAT -TTTTCATCGCTTTTGATTATCTTCAATGTTCTAGAAGGGCACATAGGTCA -TCCTTATTTTTTCCTTCTCTTTCTCGTGACGGCCCTTGTTGCGCATGCCC -GCCCCCTAGAGCAGGGCGTGGCCTGAACGGCGGCTCCGAGAGCTACTCAT -TCTTGCCGCGTCACCCTCCAGCGCCACCCAAACTTCTTCGGTTCTAGAGA -TCGAGAAGAACGTATGATTTTTTAAAATTATAATTGTTTCTTTCGAAAAA -AAAAATTTCATTTACAGTAAGCCAAACATACACAATCAACATGAAACTCG -TAATTCTGCTATCTTTTGTTGCGACAGTTGCGGTTTTTGGTGAGTTTATG -CTTTAGATAATACTTTTCCGCCAAAAATACAGTTGCCGGTCTCGGTATGG -CAATATTTTTGTTAAATTCGAAAAGCAGTGAGTAATGTAGTTTCGAATTT -TCGTTTCTGCTTAATTTTCATCAATTCATCGTTTTTCTCACGACTTCTTC -TTTATGAAAAATCAATGAAAATTCTGACTAGGTCAGCTTAGGGGTGAGGT -ACCTAGAGACGCCACATATGCCAAACGGAAGCTGAGATCATTGGCTACAA -GAATATGCTTTCAAATTCTGCAACGGACCTCTGGGAGTCTGGAAATTCTT -GTCTGAAATTATGCTTTTGAATGCTCGAAAGTGGTAAGAATTTAGAATTT -ATTACAGAAAAACGTTTAATTAATAAAATTAGTTTTATACTTGAAACAAG -TACTGTATGCACTGTATCAAAACACATTTTCATCTTTTCTAGGTATTCAA -CTTCACGTTTTTCTGTAATAAATTCTAAATTCTTACCACTTTCGAGCATT -CAAAAGCATAATTTCAGACAAGAATTTCCAGACTCCCAGAGGTCCGTTGC -AGAATTTGAAAGCATATTCTTGTAGCCAATGATCTCAGCTTCCGTTTGGC -ATATGTGGCGTCTCTAGGTACCTCACCCCTAAGCTGACCATTCCCTAGTG -AGCAAACAAAATTTTGAAATTACAGTACTATTTAAAGGCACATTGATTTT -TTGGGTCAAGCAAAAATTTGTCGTGTCGAGACCGGCTACGGTATTTTCGC -GAAAAATCGCAAAATCTTGCGGCTGGGATATACTTGTGCGAAATACTTTT -TGCATTAATTTTGAGCAAAATTATTTTTTTTAGACTTTTTGAAATCCAAA -TTTTTTGGATTGCGAAAAAAACCTGTGTCCGGTTGTTTCATTAGGCCAAC -AAAGTTCCTGGAACACTGATGAAAACCATGATAGAGGCGGAGCATAATAT -CGATTTTTCGTACTTTCCTGTATTTCTTCTTCTATATGGCCGAGTAGAAC -AGGATTAGGGGTAAAGTCAAAATTTTTCTCATATGGATATCATATGGATA -TCAAAATTTTTCTCATATGGATATGGAGAAAATTTTTCTCATATGGACTT -TGAAAGTTGAATCACTTGACATCTGGGAAATTAGTATTCCAGGCGTAAGT -CGGATCTGTTAGAAACGGAATACTTATAGGCTTCGTGAATTAGGTAGACT -TTCAATTAATCTGATCCATGGGAGTCAGACGCGGTTTCCAGGCCTGACGC -CTGCCTCCAACTTGCCCGCCTCACGCCGGTCTCTCGCCTCATTTCTGCAC -TGTGACGAGACAGACGAAGGTCGCCTTCTGGCGCCCGCATGGAAATCCTA -CGAATATGTCAGCTTCTGATGGGACTCCGTAAATCGACACACAGGGGTAC -CTCAGACATTTCCCTCCCCCTTACAAATTGTTAGGACAAGGAGGGGGAAT -TCATCTCCACTCGAGACACACATATGTTGTCGTCAGTGAAGTGTAAAGAT -CTAAACGATTGCGTGTATGAAAAAGCACTCTATGATCACCTTTTTCATCT -TCCTACACCCTTTTTAGGTGTGGTGCCCATCGAGCACTCACGCCAGGCAG -GGAGAGCACCGGTCCCTGACTAATGGGATTCGAATGTTTTAGACCGGAAA -TAGGAGCGATGAAAGAGCATAGAAATGATCATTTGGAAATCACGTTTAAT -TAGGTTACGGCGAAAATTTGCAAAAAAGAGCAGGAAACTTGGCTCAAATC -CTTCGAAATATAACAACTAGGACTTCCATGTAGGCGTTAAAGCGCCCTGT -CTCTCACCCCAATCCGTACCTTAAGCTGAAACAAACGTGAACTTTTTTCA -TTTCTTAAAGGAGTATCGTCAATGGGAAAATTGTTTTAAAATGTAGTATT -TGTACTTCAACTTCCAATTATTGCAAAAGAAAAACGGAAAAAATCCGTTA -ACATTCAGCATTTTAAGTCGAAGAAATCTTTAAAATTTAACTAGAGAAAT -CCTAGGCCACGACGCTCATTCGAATTTTAATTTGTTTTGATATTGTATTT -TGAAAAAAAAACTTAATACAATTCCTTCTTCCCAGTTTTCTATAACTTTT -TGAGAAAAAAACGAATTAAATTCCGAAAAAACTACATTTAAATCAATATT -TTGTTTACGAATATGGCCTAGAAATCGCGTGGTGGCCTAGGATTCATTTG -CGCGCGAAATTCAAATTCCGTCACTTTCGTCGATTTCAACGGCTAAATGC -TGAATGTCAACGGATTTTTCCCGTTTTTCTTTTGCAATAATTAGAAGTTT -GAGTACAAATACTACATTTTAAAACAATTTTATTTTTGGTATTTTGACGA -AAAATTGATTTATTGGTTTTTTTGGTTGTTTGGGACCAAAAAATCCAAAA -AAAATGTTTGGCGTGTCTAGTTTCGACTCGAGACTATTCTGTATTAAAAA -TACATTAAAACATGTATTTTAACACAGTTGTGACGTCATAAATGTATTTT -GATACATTTTGCAACATTACTTAAATAACCCCATTAAAAATTAACCTAAG -CATCAAAAATTTTTTGGTTTTTTTGGTTTTTCGAAAATTTCAATTTTTTT -TGTTTTTTGGTTTTTTTTGGTTTTTCAAAAACTTCAATTTTTTGTTTTTT -GGTCCAACATTTTTTTTTGGTCTCAGCTCTGCTGCCTACCCTAGAAGAAC -TAATAGCGCTTCAAAAACTGATGAAAACGTTCAAATTTGTCGAAATATTA -CGAAAATTTGAAAAGTTGGCTCAAATCTAGATTGAATCGGCCGATTTTCC -ACAAGTTTCCAAGTTTCCACAAGTCGCCACATATCCCGAGAAAAATCGAT -TCAAATTGTTTGAAAATTGGAATACTGCGAATTTTGAACCAAATTTCCCT -GGCTTCTCTGTTGAAATACTTGAAAATACCGCGAAGCAAACAAAAAATCT -AATTATTACGTGAACACAAAATTCTGAAAATGCGTATATATTGCGCAACA -TATTTGACGCGCAAAATATCTCGTAGCGAAAACTACATTAATTCTTTAAA -TGACACGCTGTATGTGGTGATTTACGGGCTCAAAAAATTATTTTCGAAAA -TCAAGCCCGTAAATCCACACGTAGTAATTATATAAAGAATTACTGTAGTT -TTCGCTACGAGATATTTTGCGCGCCAAGTATGTTGCGCAATACGCAACCC -CATATGTTGATATATACTGATGTGAGGATAAAAAACAACACAACTTTCAG -CGGCTCCATCGGCTCCGGCAGGTCTCGAGGAGAAGCTGCGTGCTCTTCAG -GAGCAACTGTACAGTCTGGAGAAAGAGAACGGAGTTGATGTGAAGCAAAA -GGAGCAACCAGCAGCAGCCGACACATTCCTTGGATTTGTTCCACAGAAGA -GAATGGTCGCGTGGCAGCCGATGAAGCGGTCGATGATCAATGAGGATTCT -AGAGCTCCATGTAAGTTAGTGGTGGTGGCCGGAAAAGAGAAAACTCGGCC -AAGCTGCTCGGAGTTTTTGAATTTTTGATAATCCGAAATAAAAATTGATT -GCTCGAAAAGGAACAATCTTTTGGAAAAAAACGAATTTTGTCATTTTTTT -CAGCAAAAATTGATTTTCGAATTTTTCCAATAAAAAATCGATAATTTCTC -CCCGTGCAGTGGAAAACAAACAATATTTTTTTGTTGATCGTTCTCTTCCA -AACCCGGAATAGGTACACACATTCCTGCGTCATCCCATTCTCTTATCACA -CTTTTTTTTCGAAAATAAAAGTGTAGAGACGGAAAAGTGAGAAAGGAGTC -AATTTTATGCGAAATTTTGCATGATAATACACTCAAATTAAAAAAACTGC -GTGGCGTGCACTGCAGAAAACCTCATATTTAGGCCCCGCCTTTTTCTCGT -CCACTCACGGAGAAAAGGCAAAAATTTGGGGACCAACCAATATCAGGCCG -CCGACATCCTACGGGTTCCGCGCGCCGCTATGTTTAACTCGCTGTGGGTG -TGGCGAGCTGTCTCCGCCCGCTGCGAGTTAAACATAGCGGCGCGCGGAAC -CCGTAGGAAGTCGGCGGCCTGATATTGTTGGTCCCCAAATTTTTTCCTTT -TCTCCGTGAGTGGACGAGAAAAAGGCGGGGCCTAATTATGAGGTTTTCTG -CAGTACACGCCACGCAGTTTTTTTATTTTGAGTGTATAGGTCTCGATTCT -CGAAAGTATGACAGTTATTTAAATGATGAACTCGTGATGACTGTTAAATT -TTTGGAAATTTCGGGGGAATTATATCGATTTTTCGATAAATTTACAGGAA -AAAAGTCCAAAATCTAGGTATTCCATGGTAGGCAGGCGCGATTTCTTGAC -GCCTGCCTGGAATCTGTCCGCCTCACACCAAAAAATGTCAATCATTTTGC -TGAAAACCAAATTAAGAAATGAAAAAGTGCACTTAGAGATGATGACGGAG -GTCGCCTTAAGGTCAGACAGGTTAAAAAACCGATTTTAGTTGAGTTTTCC -CGAAATTTTCTGAACAACCGAATTAGAAATATGCTGCTTGTCATTTTTGA -GTAAAAATTAACGAAAACTTCGACCAAAACCACGAAAAAAATGAAGAAAA -TAAAGATTTTTCGAGAAAATAACAACAAAATCCAGCAAATAGTGAAAAAT -AGTTTTATCCGAGAAAAAGTAGTTTAGACGCTATGAACTCTCGAAAATCA -GATTTTTTCAATCTAAAAGCCATAAAATTATCGATTTTTTAAAAATTCTC -ACTGAAAACCGGCGAATTTCAGTGCTCCACGCAATCGAAGCCCGCTTGGC -CGAAGTGTTGAGAGCCGGAGAACGCCTCGGAGTCAACCCGGAGGAAGTTT -TGGCGGATCTTCGTGCTCGTAATCAATTCCAATAAATATTCTTTGCCCTA -AATACTTTAAATTATCCATCTGACAACTAAAATTTCGGTTCTTCTTGGCT -TCTTCTATTTGTGAAATGGTTTATTTTCCCCCGAACTCTCAAAAGGTTTA -AATATTGTTCGATTACCCCTTTTTATCAATTATTTTCTTCAATTTCTTAT -TTATCATTATTTTTCTAAACGAAGACGGATGTGATTTTAAATTATGTTAA -TGGACTATTTTACAAACTGAATAAATTCAGCATGTTGGCAGGTTTTTTCA -GTAGTTTTTGAGTGAAAATAGAGGTAAAAAGACAGAAAATCAATAAAAAA -TGAAAACAAAACTATGAAAAATGGTTGAAAATCGAGCAAAAATCGTTCAA -AAAAAAATAAATTCAAAAAATAATTGCGTCGAGAAACGCGTCAGTAGCCG -CTCTCTGCGTCTCTCACCCTTCAGCACGCGGAGAGAGCCACGAGAAATGC -GCAAAGGCTAAATTCGGCGCGGAAAATCATTTTTCAAAATAAATTCGACG -AGAAAATCAATACTTAAGTAATTATCGATTTTCAGCTCGTTCAAAAAATT -TTCAGAAACGTTTTAGTCGTTTAAAGGTTTTTTTAAAATTAAAATCGTCG -GAAGTAAAAAAATAGCGCGGATGGAAATCTACGGAGTGCGGAGCGAACAA -ACGCGCGGTAATTCAAATGGGTAGAATAGTCAAAATTGAAAATTAGCCAG -CATCGACCGATTTTTTTAAAACTTAATGGATTTTTTCGTTTTTCTTTTGT -GGTATTTCGGCATTTAGGATTAGATAGCACATTTTAAAGTAAAATTCCCA -TCCAAGCTACTCCACCTTCTCCAGACTGTACAGTTAAACCAATTTGAAAA -GTGTATTGTATCCCGTTTTTTTTTCTGAACAATTTTGAAAATTTTTCGTT -TATCCAGGATACGATAATCATGATTCAAATTCGTTAACAAAAAATGAATA -TATGAGAGCGATTAAAGCATTTGTGTCGGAAAATATGGGTTAAATGGGGA -GAAGGGGGCGGACATTTGGATGGGGTACAAAAAAATATGCAAAAAATGGG -CTAAAAACAATATTTTCAAATTATGCCCGACAAAGGTTCAAAAGTCAATA -TATAGAAATGAGAACATGAGTATTATGCCACGTGGCGGGAAAAATATGTG -GAATGTAATACGATGAGATCCTTGTGAATACAAAGCTTGTGACGACGTGG -CCGAGAAGAACTTTTTAAGCCAACGAGAAAAAAGGGGTTCAAGGCCGAAA -TTTTTTTTGGGCCACCTATTAAGTTAAATTGAAAATTTAAAAAAAACACA -GCGGATCCAATTATTTGCCGAGTTTTGACTTGAGCTCGGCGCGATACGTG -TCGATTGACTGAAAATATTGTTTTTTTTTATTTCCGAATAAAAAATGGTG -AGTACCTCCAAAATTAGCTTTTCATTGTCCATATAGAACTTTTTGATTTG -TTCCACAGTTTTTGTGGCCATCAACTCGGCGATCAACTCGAAATTGTCCT -TGTACCAGTGGAAACCTGAAGGAATTTCGGATGTTTTTGCTTAATCATAA -TCATAATAATCTTAATCATAAGACTTGGAAAATGCGAAATTTTTCGAGAA -TATTCAATTTATCTTCAGATTTTATTGCAACAAATCGATTTTCAACATAA -AATTAATTTTTCCAACTTTTTTTCCCAATTTATGAGAGTTTAAAGATTGT -TTTAAAGCAAACCGCCAACTTTACATAAAAAATTAAAATATTGTGAAAAA -AATGATGAAATTTAGCAGATTTTCTGATAAAAAATTGAATTTTTTTGGAT -TCGCGCTTCAATTTCACATTGTTCTTTTAGAAAAGTCGAAATTTTATATT -TCCAATTTTCAGATTTAAAAAAATTTAAAAAGGAATGAACTTTTCCAAAG -AAAAACTGAATATAACCAGAAATTGTGATTTTTCAGCATTTTTTTTTAGG -TTTGAATTTTTTTTTCATGATTAATCACGTGAAAAGTCAATTTTACCGCA -AAACATTTAAAAAATCAAGATTTTTCAATTTTCTCTGAATTCCTGCAGAT -TTTTCGATGAAAAATTGAATTTTCCTTGGAATTTATATTTTTCGGGTATT -TAAAGTTTCGGATATTAAAAAAAATTTTCAATTTTCTCTGAAGTTATCGA -TAAAAATTATTTTCTGCAAAAAATCTACTTTTTTTCGTTGAATATTCCGG -AAAAAAAATCAGAATTTCAAGGCACATTTCCTTTTCTAATCTAATTCGAA -TAATTCAATATTCTTTTAAAAATTCGGGGTAGAAAAGGAATTGTACCAAT -TTTTATTTTTAAAAGTTAATTTTTCTAATTTTCAAAATTTTCTTGAATTT -TCGAATTACAGATTTTCAAAAAAATTTTTTTTGTTTTTTTTTCTCGAAAA -TTTGAAATCCATACATCTAATAGCATTCTTCTTTTCCTCAGGACTCCAAC -CATAATTTATCCTGACTTTTCCAGATCGATTGCCATTTGTTGCAGTAGTA -TCTAGTTCAGGAGTAAATCTCTCGAATCTTCCCTTCAACGCCATCATATC -TTTCTTCCAATTTGCAATTTCTCCTTTTGGTACACGGCTGTATGTCATTG -TTGCACGGAACATTTGTTGACGGGCTTCTTCATTCAGAATTCTGGAAAAA -TTGATGTTGTGCGATTTTTTTTGGTTAAAAAAAACAATTTTCGTAAGTTT -AATTAACTAATATTTTAAAAAATCTCTCATTTTCTGAGGCACCACGGATT -CAAGATCTGGTGGGATTCCGGATCTGGCACCGTGCCAACGCATTAAATGC -AATTTTTCTGAAAAAAGGGCAACGAAGATCCGATTTAAAAAAATTTTTCA -ATTATTTTTCAAAATTTTCACTAACTATAAGAAATTAGAGATTTTTCACA -AAAATTCCAGTTTTCTGTTAGAATTTGAAAAAAAAATTGAATTTTTCCTA -AAAAATTTGTAATTTTCCGATATTTCAAGCTGTCAAAACCTAAAATCTGA -AAACTGAATTTTTAAAGGAAAAATTTTGAGCATTCTTATCAAAAAATTGT -TTCAACTTTTTCTCAAAATGTTTCAACCTTTTTCTTTCTAAATTCTGAAA -AGCATATCTCAGCTTTTGCTAAACTATTTTTTTCCTCAATTTTTGAGAAA -ATTAAAATATAATATATAATATAGTAAATATTGCTTATTTTCTAATAATT -TTTGGTATTTCTATTCTTTCGTTTTTTTTTTCAAAAATTCCAAATAGTTT -TAAATGTTCATATTATTTTTTTTGACGAAAATAAATTTTAATTTTAAACC -GGAAAATTGTTTCGTAACTTTTTTTTTCAAAAAATTTGAATTTTCGACAT -GAAAGATGTAAAGTGTAATTTAAAAATAATAGTGCAGGTATTTTCAGTTT -ACAGCAAAAGTCAGTTTAAAAAATTTCGACTGGTTTTCAAAATGAGTTTC -CTTATTTTTTACACGTAGAACTTTTTTTATTTTCCGATTTTTTTTGTTGC -GCAGAAATTTTTTTTCCGCAAAATCAGGAAAAATTCAGAAAAAGACAGTC -AAAAAATTGTAGATACAATTTTTTGACTGTCTTTTTCTGAATTTTTCCTG -ATTTTGCGGAAAAAAAAATTTATTTTTTCATGAATAAAAATCGAATACCC -ATCCAATTCCACAAACTTACTCGTTCTCCTCCATACATTTCGTTTGTTTA -ACTCTCCAAACAAGTGGAACACACATATGATGTTTTCTCTTGATATTATC -AATTAATGCCAGTGCAGCCGGTGTATCGAAGCACCGTGTCATTCTGCACG -TATTCTCATCGATTGGATCAGCTTCAATCGATTGCTCCACAATGTAGGGG -CCTGATGGTTTACGGAGAAGGCAGTCGTCTGGAGAAAAATAGAATAGAAT -AATGATTTTTAGGTTATTTTACGTTTAAAAATCTAATTTTTAAGACGCGT -AAACGTTGAGCTCATTTATAAAAATTCGGCAAACCGGCAATTTGCCGAAA -AATTTCGGAAAATTGTCGGTTTGCACATTTTTTCTTGAAATTTCAGAACT -TCGATTTCAAACGGCAAAATTGTATACATCCTATCAAAACATCAATCTTG -AAAAGCCAGTAAACTCTATGAAAATGTCTAAAGAAAAGAAAACGGTAAAA -AAATACAGTTTTAAATGTTTCCGTCTTATTAATAACAAAATTCGACAATT -TGCCGGAATTGAAATTTTTTTTTCTCCAATTTCCGAAAAAAACCCACCGA -CCACCATAATATCATCGTCTTCTTCTTTTTCTTTTCCAATTCCAAGCCGT -TTGATCGCTTTTCCGTTGGCTGGCTCCATGAGCTCAAGATATCCGTATAC -ATAAATTTTCATGTCTGAAAGAAAATTCAAATTTCTTCTGGAATCAGTTA -TTCGAAACTAACATTCTGGACATAAAACTCGTTGCCGTCGTTTTGTCAGT -GCACGGAGGCTTGCCGGACGTGGAACACGCATCAAACGGAAATAAAGGAT -ACACGGTTTACATTCGTGACGCGACATTACACGATTTAGCTTAAAATTGT -GAAATTAATTTTTTTTAATAGCTCTTTATTTTTTTGAAAATTTCTCCCAT -GCTTTTTCCATTTTTTCAACGAGTTTCCTTATTTTTTGTCCATTTACTGT -AAGTTTTTTTTGAGAATTTTTTTTTGTTAATTTAACATTTTATTAGCTCA -AAACATTTATTAGCAAAAATTTTATTAGCAAAAAAATTTTTTAATTTTTT -TAAATTAGCTCAAAATTCTCGAAATTTTAAATTTTTAGGGTAAACAATAT -AAAACTTAGGGAGTTTTGAGCTATAAAATGATAAATTGATTTTAAAAAGG -ATGAAAAACTTATTTTAAAAAACCGACAAAAATCGACAAAAATGAAGGGA -ACAGGCAGCAGCTTAGCCCCATGCTTAGCCAGCAGCCCCGTAGCAACCCA -GTATCAATAATATCCCGTGCCAATTTTCATAAAACTGAATATAAATTGGG -TTGATGTTGCTAAAGGGCTGCGAAAAACTGACCTGGGATGAAGCTGGGCT -GCAAGGGGCTGCGAAGTGCTGCGAGGGCAAAGCGCTACAGTGCTAAAAGG -GGGCTGAGCCCAGACCCTCAGGAAAAAACTCATACTCGCAGCCCTTCGCA -GCCCACATTTGCGCTCTGATCGCGTGCTATCCGCGCGCACAGAATTTCGA -AAGTATTTTCCAAATTCGGAATGCGCGCGGAGCAGACGCAATTAGAGCGC -GGATCTGGCACGTAAGGAAGAAGTGTGACTGGAGCACGAACCAGTAATCT -AGTCGCGCCCCGTCCGCGCTCCAGGAGGAGCGATTTGCCGAGCAGTTCAG -CCCTTCGCAGCCCTTTAGCAACAACCAAATTTATACAGTTTTATGAAAAT -TGGAACGGGATATTATTGATACGCCTAAGCAGCCCTATTAAATAGTGATG -AGGGCGTAAATGAAATTCGCCATTTCCAGCTAAAATATAAATTTTTTGAA -TTTTTTAACATTGATATTCGGAATGGATTCAGCAGAAAATTTGAAGTCAT -TTGAAAATATTTTCCAGATTTCGGTACTCCACTTTTAAAATTGAATAAAA -CTGTAGTCTTTATTCAATGTTTCTTCAAAATTTAAAAAGTAGAATATAAC -TGTGAGAAAATTTCCAAAATTGTCAAAATTTCAAATAGCTGAAATATTTC -ACGGCCCGGCGGGGGGTACATGGATGAGAATTCTCTACCGTATTCCAATT -TGGCTGACTGCGTGCTCAACGTTGAATACTCAGTGTAAACTTTCGTACAC -CGTTGCGTACTGCACAGCGCGCATTTTAATTGACGACATTTAGCAAAAAT -TGAACATAAGATTTTTCGGAATTATGAAGCTCAATTTTCACAAAAATAAT -GAGTTTTTTGTAGAATTTATGAAAAAACGTGAATATATAGATTTTTTGTT -CATGATATTCAAGAAAAAGCGATTTTTAGTTCTTCACAGAGGAATCCTCT -CGCATTTCACTTGCTCATGATGTTTTTTGCTCCACTTTAGGACGATAAAA -ATGCGAATTGTTGATAAAATGAATGAATAATATAAAAAGTGCAAATATGA -CTTCAGCAAGTGTTAAATCCCAAATTTTTCCTGCGATTTTCTGCTAGATT -CCTGGTTTTGAGTAAACAGTCTGATATATTCATGATTATAATGATAACAA -TAACGAACATAATAATAAAAATGGAGAGCACAGAGAAACAACAAATTGCA -AAAACAGCAACTGATATCAGAATTAACGACGACCACGGAAACCGCCTCGG -TCTCCACCTCGCCCACCACGGAAGCCACCACCTCTGTCGCGTCCTCTGAA -TCCTCCTCGATCTCCACCGAATCCACCTCTAAATCCTCCATCGCGGTCTT -CTGATCTACCACGGAAGCCTCCACCTCCACCAGGATCTGTTGAAAGTCCT -CTGAAGCCTCCTCGATCGCCACCTCCACGGAAGCCACCACGATCCGCGGA -TTTTCCTCTATAGCCTTCGAGGCTTCAGTTGTACCCCATTCTTCGTTGGC -ACGCTTCAGATCTCTACAAAAAAAACAAATTAGAAGCATTCAATTATCGA -AATGTGTACCTATCCCGATTTATCGCAATCTGTCTATTCTTCTCCTTCTG -ATTCTCAACTTCTTTAACTTGTCCAGTAGCGGCAGCTTGCTTACGAGCAG -CATTTTCCCGAATCGCCTTCACCTCTGCCTCCTCAGCATCCTGTTGCTCC -TTGACAATCGTAAGTCTTCGAATGACACGTTGCTCACTCTCCTGCTCACG -ACGCTTTTTCATCTGCTTCTTCTTGTTTATAGTCACCGCATTATGCTTGT -GATAGAGAACCTCTCCCTCATCGATTTCTTCTTCAATTTTGACGAGTTCC -AGGGTCAGTCGGGTCCGATCTCACGAAGACGGACGTTGCTATTCTGGCCA -ATTCCGCAGTCACGTCCTTCATAAATGTCTTGTGGAAGTTCTTCTTGCTG -AGGGGGCTGCTGAAACCAATGTCGGCATGATGAGAGTTCCGGTCTTCTGA -ATCCATTTCCTGCGTGGGCTGTGGCGACGAGCTGCACGTCTGAAAATCAA -GTTTTTGTAATTTTTGGGCGCATGATATGGAGCTGAATCATTCGATTTTA -GAATCAGCATGCTTTTATTCATATTTTAGGATCTTTTTAAAAAATCTGGA -CCAACAGTTTTCGAAAAAATTTAATTTTTGTTCAGAAATGTGAATATTCA -CTAAATCGAAAAAAATAATTGCAAAATCCGTCAGCTGAACATTCAAAACT -TATCAATTTGAAATCAGCATATTTCAGTGTATAATTAAAAAAGTTTCAAA -AATTCTGAGACCAATTTTTATTGAGAAAAATAATTTTTCGCTCGAATTAT -TGAATTTTCACTAAATGCAAAAAACAGTAAACTTGGGCCCATGCTACAAG -CCTGAATCTTTCAAATTAAGAACCAGCATGATTTTTTCAATATTCTAGGA -CGTTTAAAAAAAATCTGGACCAACAGTTTTTGAGGAACGTAATTTTTTAT -ACAAAAATGTTCTGATTTTTCACTAAACTCAAAAAAATAGTCAAGTTGGG -CCCATGCTGTACACCTAAATCATTAAAATTCAGAACCGCCATGTATTTTT -TCTTACCAAAGGCTCTTTAAAAAAAATCTGGACCAACAGTTTTTGAGATA -TTTAGAAAAACAACTCACTTTTCGACGTTTTTCGCCTTTTCGTGGCTCAC -CCGGTTGATTTTTGCGGCGATTTGTGGTCTTTCGCTGAAAATATTATTTT -TATTTCAATTATTAACGAAGAAAACAAGAAAAAACGACGAGAAAACATCA -AAAAAACGCGAAAAAACATCGAAAAACCACCGCAACCTCATGAACAAAAA -AAAAGCATTGCAGCCGCGGGACTAGTTTTCGCAACTTTCTAGGCCATGTC -CCGTTCGCCGTGCCGTGTATTTGTTTAATTCCCTTTTTGGAAAAAGTCAA -CATATTTTTCTAACAAATCGTTTTTCTATTAATTTTTTTCTAAAACTCAC -AATCAACAGATCACTTTTTGCATTGCAATTCTCACAATATCCCGACGGAA -CCCTCTCCAAATGATTGACCTCTTTGAATAGTTCATCATAAGTGTCGGTT -TCATTCAAATGCACATTAATCATTGTTTTATAGTTTTGCACTTTTTTCGT -GTTGTAATAGTATTGGATAATGGAAGAAAGCGAGCGTTGGGGCATCTGCA -AAAAATAATGAAATTTATTTTCTTTTTATGATTAAATTAAATTTTCAAAA -ATTCCCTTTTTTTGACATATGCACTTACAGCCGCATGAATCTTCTTGAAC -CGTTTTCCGAAATGAAAGAAGCAAGTGGAGAAAAGACTAATTTCTTCTGC -CGTCCAATCATCATGAATTTCTTTTCTTCTCATCGCTTGAACCATCGCAG -CGTCGAAATCATTTGACTGTTTGTTCAGAATGAACAGAGCCTGTAAAAGC -AGTTAGTTTTTTTTTCAAATTCAAAGTACATTTCCGAAAAATAAAAAAAA -GGCTTGATTTTTTAAAATCTCGAATTTTTATTATGGTCAATTGTTATTTT -TTCCAGAGAAAAACTCATTTTCTCCCAATTTTCAGACGTTTCTCTCTAAA -TTTGGTGTTTTTCCAATCGTACCCTATCTATAGGTAATTGATATCGTCCA -GTAGCTTCTGAAATGTATTCTGTAAGCCGATTCTCGTTCATTTCGTCTGG -AAACGCCCAAATTTGTTGATCTCTGCACGGTTCTTTTTCCAATTGCTCTG -CAGTTGGCTGTATAATCGCCTGATATTCGGTTCCCACGTGGATTAGATTG -TCGACGTTGGAAAGTGGATTTGCTGGAAGAAATTGGGAATTTTTCAAGGT -TTTAAGTGGATTTTCAAGCTATTTATAAAAGCATGAAAAAGCTCAGAAAT -GACTATAAAACCTTTTTTTACGTCGTATTTTTTTCAATGAAATTACCTAC -TTTTAATTAATTGTTCGGCTTAAAACCAGAAAATTGTTTCATATCGATTT -TCCCGGTGAAAATCGAAGGAATCGTCGCATTCTCAAAGTTTTTTCACCGA -TTTGTTTCAATTTTAGCACAACTAAATGGAAAAATCACAAAAATTCCATT -ACAGCCGATTTTCGTGAATTTTCCTACATTTCGAACTAAAAATTGTCCTT -TCTTCTGTTTAAACCGGAAATTCTCTTTTGAAAAACCAATGAAAATTTGA -ATTTTCTGGGCTTTTCTTCGGAAAATTATTCTCGAAATTTATCAATCGAT -CCTTGGGCTTTTTTTGTTCCGCAGAGGCTGGCGGAGTTTACAAGCGTACG -AAGTGGTTCAACTTTTATATAAAGCTTTATAAATGGGACATAGATGAATA -TTTCGAATGCTAAATGCAAAAAGAATCAGTAAAAAAGCGCGCAGCCCCGT -CCTTCTCTGACGAAAAACGCCGTTTAAGGATCGATTGCTAAATTTTGGCA -GTAGTTAGAAGTGTCAAAATTTCTGCCGGAGAGTCGTCAAATTTCACTGA -AACGTAACCCGGTAATTTCCACAATTAATGGTCGATTTTTCGCAAAAAGT -GGTATGTTTGTCAGGATTTATTAGAAATTGTGGCTGTCCAGATTTTAAAG -AGTATTTTTGGGCAAAAATGTCGAATTTTCTCTGAAAAAGTTCGATTTTT -ATCGAAAATTCAGATTTTTTAGATAGTTTTCATCGATTTTCCCAGTTTTC -AGCCTGAGAACTTTACTAACAGAAAGATGTGTCATGAGCACCACTTTCAT -GATGCTCACGAGCTTCAGCTTCTTCATCTTCGTCCTCTTCATCCTCCAAA -TCTTCATCCTCATCGCCCATTGATTCCCCAGACGTTGTTTCGCGTTTTCT -CATGGATCTTATAGGACGAGCCATCTGAAGTTTCAATTTTAGCTTTTAAA -TTCAATTTTACCGCTTAAAAATCGATAATTCTCCCGTACTCTGCTGGTTT -CTTCTTCTTGTTCCGCCTGCTCCTCTGGATCATCTTCCTCCATTGGCTCC -GGCGATGCATTCAACATATTCAAGCCTTCGTCTGAAATATCTGGCCAATT -TATAGAAAAACCGACAAAATAATAAGCCTCACTTTCTTTTCGAGAGGCGT -CTTCGTCAGATGACGTGTACGAATCCATTTTCTGGAATTTGAGGATTTTT -GAATGTTTTTAAACAAACTTTATAGAGAAAACATTCGAAACACTAGAAGT -TATGTTGAAACACGAGAAAATTTTTTAAAAATCCATGAGAAAAACAGTTT -TGAAAAATCTGTTTTTGGAGGCTCTCCGGATTTTGAGGAATCGTCACCCC -GGAGACGCAGATTCTCCGGTAATTTTTCATTCATATTTGAGTTTAAGAAC -AAAACAGTTTAAAAAAATGTTTTTAGTATTTGAATGAAACTTATAATGTA -TTTTTTCTTCCATTAAAACTTAAAAAAAACTACAAAATTATTATGAATCA -AATTTGAAACCGTGAATCAATCTCCGCGGAAGGGCGAGTCTATACTGCTG -CAAGCGCACTCTATCGCAAATGTACAATTGGCGGTTTTTCAAACAGGAAT -TAATCGGATTCTCGTAGTTTATTTTGGATTTCTTTTTTCGGGAACATATT -GGTGTTTTTGCGTTCAATATTCAAATTTAGAGGAAAACTGCTTCAAATAT -TTAGGTAAACTCTTGAAACCGCTGAAAATAGGCAAAAATAATTATTTTTG -TATTTTTTAGGCTACTTTCTATACTTTTGCGTAAATACTATAGTTTTTCT -ATAAAACACCCATTAAAATTATTTTTATAAAATGATTTTTCCAATAAAAA -TAAAATGCGCAAAATGATTCTTTTCCAGAATCCTATATGCGCCTTTAAAA -TCTCTCGGATTACTGTAGTTTCAAAGAAATTATCCTTTATATTTTTAATT -TTAAATTTTTTCCTGAATGTCAAATATTAGGGGAAAAATTATAATAATAT -GTGCTTTATTCATATGAGTGTAGAATTAGTGAAAAAGAAAAAAAACATGT -ATGGACTGTAAAATTGGAATTTTAGCGAGAAAATAAAAATAATATGCAGA -AAAAATTAAAATTTTCAGGAAAAAAGTCAGTAAAGCCATCAAAAACTACT -CGATTTTGAAGGAAATCAGCAAGAAAAATTAGAAAAAAGTATTTTTAAGT -TGGAAAACCCCTGCTTGAATTTGTACACTAAATTGGGCATAAAAGCGTAC -AAATTCGCAAAAACCGGTAAAAATCTGGGGATCGTGATGGATGGAGTGTT -TTGTGAAAAAATGCAGCGAAAAATTGAGTAGACAATTTCAAAAATGTCGA -TTTTTGAAATTTGTGACGAAAAAATTGAACAAAAACTGTTTTTTTTTGGA -ATTTTCAACAAGAAGTTTTATAAATTTTTTTGTTTAAAATTTTGAATATT -ATATGAGTTTGGTTTCACTTAACAGAACAATTCGAACAAAAGTATTCTAG -AAAGGAAATGTGCGCTCCAGCACACTATTTGCCCGTGGAGCGCACTTGTG -TGCACGAACGCTAGCGAGAATGTGTGGTAGAAAGGGAGGGAATAGGAAAT -ATTAACAAAATTGGGCAAAATATGTAAGATTCGGAGAAAGAATTGGAGAA -AAATATGTATTTCGAGCTCCGCGAGCTGATCAATCCAAAGGCTTTCTCCA -TCCTTTTTTCGAGAGGCACATTGCATTATAGTTACACACAGCACGTGTAT -AATGGAACATTGAAGCCTGGAAACGAGCCATCGCTACCATCATTACCACG -TGGATCTGAAAAAATTAAAGTTTGATGATTCGAAAATTTTCTGGAAAAGT -TATGATTGTGAGATAAATTGAATTCTTTGAAAAATCAAAATTCAAAAGCT -TGTAGAAAATTTTATATATTTTTTTAAGCGTATTTTTTCCGTATACATTT -CCAAATTTTTTTGTTACCCAATTTTAAAGATTTTCTTGAATTTTAAAATT -TCTTTCAGTAAAAACTTTTTTTCAACTTTTTGATTTTTTTTCCGCATTTT -TTAAAATTTTATTCAGAATTATTAGATTCTTTTGAATTTAACGAATTTTT -TTCGCTAAAAAATTGTTCGATTTTTCCCGAATTAAGAAAAATATTATTTG -GTTTTTGAATTATTTTCCTGATTTTTTTCGATTAATAAATTTGTAAAAAC -AATTTTTTTTCTAATTTTTGGTTTTGATGATTGTGTTTTTTTTCTGAACT -TTACAGTTTTCAAAGTTTACACCGAACTTCCACATTAAAAAATTCTGATA -CAAAAAAGTATTCACATGATTTTTAAAATTTAAATATTTTTCAAAAAAAA -TAATATTTAAACTGTGTTTTTTTCGGAATTTTTTTTCGATTTTTTCCGAG -TTTTTTTTGGAATTTTTTCCTTTCTGCTCCAAAAATATTCAAATTCAATG -TTGTGTAGAAATTTTATTCAAAAAAAGTGTTCAACTTCTGAGTCTAAACC -TTTTCCGAATCCTTAAATCCTGGCAGAGCTCTCGTGAATTCAGTTGTCAA -TTTATGTGGATAGCAAGCTGCCAGTTTAATGAAAGTTTTAGTTCCTTTGT -CAAGTACTCGATTAATTTTCGAATAATCATAATCATCGACTCGAACACCA -TATAATCCTTGAGTATAGTTCCAAATTGCTTCACGGAATGCAGCAGTGTC -AATTTCATTCTGATTCACGGCGGCTGGTGGTTCTCCGTCTCCAGATGCAT -GGGATGAGCCGGATGGCCTGAAAAATTAATTTTTTGGAATTATTATATTT -TTCTGTTTTTGAAATTTCATGCATCTCGAATATTTTAACAAAATTACCAA -ATTCAACTAGATTTCTTACAACTTTCACTGTGTCGATTTACGGGTTCGTT -ATACGAATTGAATTTGTTTATCGATAGAATATTAAAATTTAGCTAAAATT -GAGAAGAATATAAGAAGAAATTAATTTTTTTAATTTCAAAAATCGAGCCA -GTAAATCGACACGAGCGATCGACACAGTAGTCATTTAAAGACCAGTTTCC -GCCACGAAATATTTCGCGCTTCAAACATGTTGCGTAGTACGTATTCTCAA -AATTGTGCGTTCACGTATAATATTTATGCGAATTTTTGGTCTACTTTGTT -AGAGAAATCATCACTAACATATTGCCAGTAAGAGTCCGAATATGATCGAA -CATTCGATCAAGCCGTGACGTCAGTGTATCCGTATACTCATTCATCGTAT -TATAAACATGATCCCATCCAAATTCTTCAACTCGGAATGGCGGAATATCC -TTTTCAGGTCGCTTTCTAAAATCAATATATCCAAATGTTCGATGATGCGA -GTAAATTGGATAATTACACGGCGGCTCTTTTTCCATAATATCTTCTCCAT -TTTCATCGATATTTGCAAGAAGAAGTACAGGCGAGTAGTTTTTCCGATTG -GAACTATATGTTGCTGCAGGAGCACTAATTAATGATTCAATAGTTTCAGT -AGTCATTGCACACATCTTCGCTGGTGGCCTAGTTTGTCCTTTTTCCGTCT -TTTTCAGCTCACTGATCAAATATTCGACTTCAGTTGGCCGACGATCTGGG -ACTTTTCGGAAATAGGCCGACATTCTCGCCTCCCAATAGTCGAGATCATC -GATATTAAGGAAATCAATCTCATCTTGTGTCAAATCAACACGACGTTCCA -ATCCAATACAGCATATAACTGTGCACATTGCGTGAGTCATTGACATTATT -CCGACGGCGTGGTGGAGAGAGCAAACCGAGAAAAACGCAGGACCACCGTC -TGGCGTGCGGCGAGCGAAGAGCACCTGGAAATTTTCAAATTCTTGAGAAA -AACCTAACATCGTTGTTATACGTTCGTTCTCTTGGCATTGGAGTTGGCAG -AATTTGTTTTGAAAAAACGTTGTTTTTTTTTTGAAAGAACATTTTTTTAT -TACGGGACCATGAGATCATGAGAATTCCTATTTACTGGCGCGAAAATATT -GGCAGGCCACGGCAACGAGAGAGCATATGGCAAAGAGAGACGCATCTTAT -TTTGTCTTGTAATTTTTTTTTAAAATAATTTACAATCCCTTTTCAACTAT -CGTGATTGTAAAATATTACAAATTTCAGAATTTCGCTACCAAATTATTAC -TGGAAAACTAAACTCTGAGAATGCGCATTGAGCAACATATTTGACGCGCA -AAGCATCTCGTAGCGAAAACTACAGTTATTCTTTAAATGACTACTGTAGC -GCTTGTGTCGATTTACGGGTTCGGTTTTTGAAATAATTTTCTTTTCGAGA -AGTGACAGTGATATTCCATTTTCCTTCTTTTCTTCCTATTATTTTATCAT -TATTTGCTTAATTTTAATATTCAATTCATAACTAAATTACTTTAATTCAT -TTCGAGTAGACATTCAAAGAATTCCGGTAGTTTTCGCTTCGAGATATTTT -GCGCGTGAAATATGTTGTGAAATACGCATTCTTAGAATATGGTGTTCCCG -TAATATTCAGAAAAGAAAAGATTTCCAAGAACTTTCTGAAGATTTCAATA -TTTGCAAAATCAGAAACCAGTTCTGAATATTCTTTATTTTTAGAAATTTT -TCAAGGTTTTCTAAATAACTTTTCTAAATAACCTACCGTATTTCTTCTAT -TAATATGGCTGCAATACTATTTTTCGATGGTCTTCCCGCTTGCAATACTA -TTAGGGAGTGCAAGTCTAATAGGGAGTGCCATACTATTCTTCAGAAAATT -TTTCTGTGTTGGGGCTTACTAGATTCTACTTGAAAAAACTCCAATTTTAT -TTGGAAGTATAGAAAATTTGATTGAAATTGCAACAAAAAGGTACAATAAC -TTCAATCTCTAAAAATTTTGTTATAAACTGTTGCAAAATAGGCAAAAAAT -GTTATTAAAATTTTAAAATTAGTAAGGAGTGTTTGCAACAAAAAAAAGTA -GGTGCAAGACTATTAGGGAGTGCAACACTAATAGGGAGTGCAATACTAAT -TTTCGGAAGGTCTCCGAGGGGCAATACTAATAGGGAGTGCAAATCTAATA -GGGAGGCCATATTAATAGAAGATATACGGTATATATAGCTTTGAAAAATC -GGAAAATGCCTAATTTTTACTTTTTGAGGTTTGAAAATCTCTAAAAATTC -AATAAAATTTCAAATTACCGCTAGATTTTTCCAATGAATCATCCATGGTC -TATGACAGAGCATTCGATTCAAATAATCCAATTTTCGAAATTTCATGTAT -GACCAATCAATGCCCAACAACCACATTTGTTGTCCACCCTTTTCCAGAAA -TTTGCGACGATGATGATCCATAAGTGATAGGCATCTGTGACGTGATGCAG -CCATTAGTGCAAGATAATGACGAGCCGAAGCTGGTAGATCACTTATATCA -ACGAACATATGGCCATAACTTCCTGTCATATGAACATGTAGAGTTGGGTG -TTTACATGTGAAACGGAATAATCTGGAAACGTGAGGGAAATTAGTTCGAG -ACGGGGAGGGGCAGGTTGGCGGTGCCAACCGACAGCCGAACATTGGGGTT -TCTCAGCTGGTAGCGCCAGCCGACAGTCTACTGCAGTACTGCAGATAAAT -TTTCGTCGGCTGTCGGCTGGTGAAAATTTTCATGAAAATCAATAATTTTA -AAGAAATTGTTGCAAATTTTTCCCAAACTTGACCAAATTTGTTGGCTGGC -TGTACCAGCCGACACCCGAAATTTAGAACATTGATTAGAGGCTGCTTGGC -AGAAATAATTTTAAATTCAGAAATTCAATTCGTTTTCAAAAAATATTTTT -TAAAACTTTACCGATCAACTTCTGGAATCGGATCAAAATTGAGCCAATCC -ATGGCTTTTCGTCTTTTAGTTGTAGTGTGCATTGTGTAGATCTTTTTATA -TTGCTGCGAGGTGAGTAAATGAAGAATTTTCGCGACCCGTTTCTGAAAAA -ACTCAGTTTTCTAAGGAAATTTTGAAAATAAATTCGAGAAAAAGAAACTG -AGTCAGCAAAAGAAAATTGGAAATGTCTGTCTGGAAATATTCGAATATTA -TATTCAAAAGTTTTCAAAAAAACAACGAAATTACAAGCAATTGTGATCAG -AAACCGCGGAAGGAACTGGACGAAAAAAATTATCTTTGAGACGAATCTCT -TTGCATCTTTGTGATCTAAAAGATTAATAAAGGTTGTCATCACATTTTTC -GAGATTTGGGAATGTGATAAGGGTGAAAAATGGAGATTAATTGTGGTAAA -ATGAGGAAAAACCTAATTTTTGGTGAGAAAATTGTGGAAAAACTATAAAA -GAATCTTTATGGAGTTTAAAACTCAAGTTTTTCACGCTTTTCCGCACTGT -GCGGAACGTTTTTTGAGAGAATTTGGCCGAATTCGGTGATTAAAAAAATA -ATTTCAAAACTTTGCGCCTCAATTGTGATGTATTACCGTACTCTGTTGCC -ATTCCACCAAAATTTCCTTCATTGTTTTGCCATTTTTCTGCATAATAACT -GTTCTGGGTTTTTTTGCTTCATGTGCCCAAATGTACGAATTTCCCTAAAA -ATTATACCTATTTTTTCAAAATTTTTAATCGCTAGAATTTTTTTTTCTGC -ATTTTCTTTAAAAAAAGAGATTTCTCGCAAGTAGAAGGAGAAAAAATGTG -TGGCTATACTTCTTCTTAAAGAATGCACGACTAGCCATAGCTCAAGCCCC -CTCTGGAACGTTCCATCTTCCTCCCATTTTCCCACGTTCAAGAATCATCA -GCTTCTTCTCCCTCAGCTTCTCTTCTTCTAAAACCACAACTAGACAAATG -TTCTTGTTTTCCACCCTATTTTTCACATAAAACCGCCGAGAAACCCGCTA -TCACAGACTCAATGCGCACCGGAGGGGCTCTTTGTGTGTGTGTACTGATC -TCTGCGTTATATTCGAACACCGGCGCACACTCGGATTGAACCAGAGGGGG -GGGGGGAGGGGGGGGGGGGGGTGAAAAAAGAGAAATACTCTGAAATTCCA -TAAAATCTAGAAGAAGAAAGAAAACAAAGGAAAAATTGGACATTCCGAAG -TCAGGCTAAAAAATCTCATAAAACAAAATCTATTCGATTTGTGACCATTT -TCATCTATCTCTCTCAAAACCCGAATAAACAAAGCCTCCCGTCCCCAAAG -TGTGCTCTCATGCTCTTCTGGAGCCTTCTAGACTGTCTGTAGAGCCTAGA -GACAGCGGAATTGCACTGAAGTGATGGAGAGACGTAGAGAAAACGCCTGA -AGAAAAAAACGAACACTTTGGTGGAGGAGGAGATGGCTTCCCTCCAAATA -AACAACAATTTCTATCGTTTCTCTGTGATTGTGTTCTCTTCTATGTATAC -TGTTACGATATTGAACAGGAAATTAAATTGAGCACTCTGAATACATAATA -CACAATAAATAAATACAAAAACTATAGTTTCAGCACAAAAAATTCGAAAA -AAAAACGATTTTTTTTGTCCGAGAGGAGTATATGGCCTAGAAAAAGAAAA -CTCGGCCACTCTGATGCAATAAATTTAAAAAATTATGGCCGAATTTTAGA -TTTCTCAGGCCAATTTGATACGTTTCTCGAAAAGCCATAAATTAGTCGGT -TTTTCACGGGCTTCTTGCCTTCCTCATTGCATTTTTCGCGCTCCATTGGC -AATCTCCTGCTGGACAACGCGTGGGAAATCGTGTGCCCCACACGGGCAAA -TACATTTTGTTTTACAAAGAAAACCGTGCCGCGACGCGACACGCAACGAG -CCGTAAATCTACCCCAGATATGGCCGAGCTCAAATGGCCTAACCTGTCAA -AATCTTCCACTTCAAAATATGAGGGAAGCCAGAAGCGCGTGTTGTTTCTG -AAAAAAAAACCCGCCTAAAGTTGATTTAAATTATCGTTTTTTTGGAAATA -ATAAAATCGATGAATTTGTAGATTTTGATAAATTTCCGATAAAAAAAAAA -TTTTAAAAGAGGAAAAAAAATGTTTCTTCGCCCTTTAGTACCAAAAATAC -GCCCAACTAACCAAATCGTTCTTTCAATCTTTTTTAAATGTTTGTGCGTC -TATAATTGTCGCTTCAGAAAACTACACAAAACACACACACACACAAGGAG -AAGAAAAGAAAAAACGTGTTCCATGACCTGCCACTGGGATCGATCTGTAA -AAGAATTGGGGAAAATTGAGGTAAACTGGTTTTTTATCGGGAAGATTTTT -TCGGAAGGATTGAGATGAAAGTTCGAAAGGTAATTGGCAAAGTTGAAAAT -TGAAAAATTCGAAAAAAATCTCAATTCTCTGCTGTAACCCCCAATTTTGC -GTCATGGCCTAGAGTATGCAGCGTGGCCTAGAAATTCCTAACGTGGCCTA -AAAGATCACGGCGGTACCTATGATTTTCTAGCGTGACCTAGAATATACCA -GACCTAGAATTTGATAGCGTAGAATTTCCCAGTATATCCTAGCAGTCTTA -AGTGACAGTTTCTCAGTACGTCCAAGAATTCGTCAGCATGACCTAGGATG -TTAAAGCGTGGCCTACAAATTTTCAGAGTCTTCTAGGATATTCCAGTCTA -AAAATTTTCAGTGAGGCCTGAAATCATCGCGTGTCCTAGAATGTCTAATA -ATTGCAAAAAAAAGATTTGAAAACTAGTATTTACCCTAAAATTGCATTTT -GAGCATTATTTTTAATCTAGTTTTAAGGAAAAAATCAGAAAAAATAAACA -TTTTTTGATTAAATCTTCCGATCTACAGATAGAAAGTGTGCAAGAAAGAA -TGCAACATTGTGCTCGGTGGAGCAAGAAGATAAAAGAAAGAGAAAGAAGG -TCCCCCACCCCTCCAGTGGTCGAAACAATGATAAATTGGACAAACGGAGG -ACCAAGGGGCCGGGCAGACACAAGAGAGAGAGTACGTGAACTGAGGAGGG -TGTGCAGGGAAAAATGGGATGGGGGCAAATCTAGTTCAAAGATGAGACAC -TTTTCAGGATCTTTGATTCTGAGAAAAATTTTGAACAAAAAGAATACTTC -AATAATTTAATGGCACATAGAAATATTTTCAGATTGTTCTTCAAAAGAAA -AATATTTTTATGCCCGGAAAATTTATTTATTGCATTTCTTCCAAAACAGT -GGCCGGTCTCGACACGACAAATTTTTGTTAAATGCGAAGAGGTGTGCGCC -TTTAAAGAGTACTGTAATTTCAAACTTTCGTTTTAATATTTACTTGTGGG -AAAACATTAATGCTTAACGAAAAATTACAGTACTCTTTAAAAGCGCACAT -CTTTTCGCATGTGACAAACATTTTCGCGTCTCGGTGACAACTTTTAAGTT -AAAGGCACATAGAACTTTTCTGAAGAATTTTATTTATTTTTCTGAAAGTT -AATTGCTACAGTATCCTTTTTCAAGTCGCACCGAGAGCCAAACTGTAGCA -AATCATCAAAAAAAAGTCGACAAAACGTGCCGAAATCAGTAAACTTGAGA -GCTTTAAAACTCTATTATCAGTTCTTCGCCAACAAAAAAAAAGAGTACCG -TATCAAAAACGAACTTCGACTTTTTTGGCTCTCCTGCATACGGACATGAT -TCTGATTGACAGTTTTCATGTTTTTTTTTGGGAGTTTTATTTATTGTGCA -TTTAAAAAATCGTATAGTTTGATGCGTGGCCTAGAATTTGCCAGTGTGAG -CATTAACTCTCCACGGTAGCCAAGAAATTTTCTACGGTGGCCTAAAAACT -GCCAGTGTAGCCTAAAATATTTTATTGTGGCCTAAATTTTCCAATGGTCT -GTTTTTTTTATAGTTGCCTAGAATTTCTTTTCGTGACCTAGAAGCGTACA -GAGTGGTGGCCTAGAAAACGATTCATGGCAGAGTTTTGAAAAAAAAACGA -AATTTCGAGAAACAAGCGAACAAAAATCGTCTGTCGAAAGAGTATTTCGA -ATGCTGGGGATGCAAATCAGCAAATCATTCAAAAAAAACTTTTGTGATAA -GAAATCAAACTGATAAGCCAGTGTCAAAGTCTCGAGGATTAAAAATAGCA -TTTCAGGTCGGGGTACGGTAGGGTTTTTGTAGAAATTAATGCAAAATTTC -AGTGGGAAACGAGTTCGTGGCCTAGAAAAATCATGTCTGAAAAATTGCAA -ATGCGCTCCCCCGAAATGGTTAAAAATTTTCAATTGATAGCCTATTTGAA -GTGGCGGCCTAGAATATCAAATAATGGCCTAGAACTCAAATTGGCGGCCT -AGAAATCAAACTAATGACCTAGATTAGGGCATCTTGTAGGCAGCTTAGAT -CACCTATTATAGGCAGGTGTAGGTAAAATTGTAGACAAATGTAAGTTTCT -TTGAAGATAGGCGTAGGTTCCTTTGCAGGCATACATAGATCATTTATTAG -GCAGATGTAGGCCTGATTGTAGGTACAGTGCCGGCCAAAAATATATCCTA -TTTTTGACTTTTGATAAATTTACAAATTTTCCAAACGAGCACAACTTTAA -AACTAGAAATGTTATCGAAAAAAGTTCAACTCATGTATGTATTGCCCATA -ATTACGTCTACTCGTATTCAATTGTTTGTTGTTTACTAGTGTCACGACAA -CAAATACAGCGGCCGACATCTCGTAAGCCCGTTTTTGACAACGTTTACTG -ATTCGGCCGTATCTCGAAAACTAATTTTTTTCTGAAAATGTTGTTAAAGT -GAAATAGTTTTCATGTTATTTGTTATCATTTGTGTTTATTCACTTTGTTC -TGAAAAATCCAGTAAAAAAGTTATGGGAGTGCAAACTTGTCGCTCACTGC -CACTCACCCGCTACAATCAAAAATCAGGTTACTTATAGTTAGTTCTAATT -TTTTTTTTGTAGAGCATTTTTTAGAAATAACACATGTAAAATCACAATGA -AGCTATATTCAAACACGATATCAAGATTCAGGAAAAAATTCATTGTTTGC -GAGAAATGTTCAAGGCGTGGCCAAACACTATTCAAGTTTAATCTCTCATA -ACTCTTTTTCTGGATTTTTCAGAACAAAGTGAATAGACATAAATGATGAC -AAGTAGTATGAAAACTATTTCACTTTAACAACACCTCGAAAAAAAAATCG -CTCTCGAGATACGGCCGAATCAGTAAACGTTGTCAAAAACGGGCTCACGA -GATGTCGGCCGCTGTATTTTTTGTCGTGGCACTGGTAAAAAACTTAAAAA -ATTGAATACAAGTAGACGCAATTATGGGCAATACTTCATCAGTTAAACTT -TTTTCGATAACATTTCTAGTTTTAAAGTTTTGCTCGTTTGGAAAAGTTGT -AAAGTTATCAAAAATCGAAAATGGCATATGTTTTTGGCCGGCCCTGTAGG -TTAAATATTTTCGTTATCAGGTGTAGGCATGAATCGCCATGTAGGCGGGC -GTAGGTATCTTCTAGGTAGGCGTAGGTTACCTGAGTCAAATTATAGGCAG -ACGTAAGTAATCATAAAAATTGACACTTTGTGGGCAGGCGTAGGTCACCT -TTTAGACAATCATAGTTAGCTTTCTAAGTAGGGTTAGGACACCTATTATA -GGCAGGTTTAATTCCTCTTATATGTGTGCGTAGAACACGTTATAGTCAGG -TGTAGGTCACTTTGTAGGCAAGTCTAGGTTCTTCTTTCGGCAGGCGAAGG -TCATCTTCTGAGCAAGTTAAGGTTCGCCTTGTAGGTCGGTGTAGGTTGCC -TCGTAGGCAGACTAAGTTACCTTCTGGGCATGCCTAGATTGACTAGTAGG -CAGGTGTTGGCACCAAGGGTGTCAGTGTCCCGTAAAAATTACAAAAACGG -GACAACGGGATGTCCCGTTCCCGTGAAAATTTTAAAAACGGGACAACGGG -ACGTCCCGTTCCCACGAAAACACCCAAAAAACGGGACAACGGGACATCCC -GTTCCCGTGAAAACGCTCAAAAACGGGACAAAAGACGTCCCGTTCCCGTA -AAAATGACAAAAACGGGACACCGGGACGTCCCGTTCCCGTGATAATTTTG -AAAACGGGACAACGGGACGTCCCGTTCCCGTGAAAACACCCAAAAAACAC -CCAAAAAAACGGGACAACGGGACAAACGGGACACGGGACTTGACACCCTT -GGTTGGCACCACTGAAGAATGCTGAAACCGACTTTTTTTTCAAAAATGTC -CTGCTCAACGAGCCGAATGCATTTTGGTCGGATTATATTGGCACACCTTT -TTGCCCCCGAGAGAATCATTGAACAAAATCTCATGCACTTTCAATTTCAT -TTTTCATTTCATCAAATAAAAAGATTCGGGAGGATTTGATATATATTGGA -AAAATAAATGAATGGGGGATTTGTATGGTGGGGGAAAAGTGCACACCCGG -AAATGAGCAGTAGGATTTTGAGCAGGAAATTGAAGGAGCTGGAGCAGGAG -AGCAGCTACAGTAACCACCCCTTCACAGCAAAACACATGGCTCATAAAAT -TGAATATTTGAAGTGAACTACTAGTGATAAGCGGTGAAACGGGGTATGTG -GCACTAATTTTTTTTTCTTCAAAAAACCCATTTCTTATCACTTGTGTGCA -GAAGCATTATGGAGACAGGCAGGAGGCAAGTGGTGGTCTAAAAATTAGAA -AAGTTCGGCCACAGCTTGCCCGATAGGAGCACACGGGCATACTGTTTCAA -CAAAAATTCGAAAAAATTGGAAAATCCCGGAATTTTGATTCCGCGGAATC -CGACGATTAAAGAAATTCTCGCGTTTCTGATTTCACGGAAATCGGTATTC -TCGAAATTTGGTTTCTGCGGTGTCTATTGTTTTGGAAATGTTGTGTTCAT -GTTTTATGAAGAACAATATAATATTATGTATAATAGATATTATATATTAT -ATATAATAGAATAATTTTAGTAAAAACCCCACAAAACTTCGAAAATAGAA -GAAATTCTCGCGTGTCTCCAAAATTACAAAAAAATCAGTTTTTTTCCTTT -ATTTTATATTACACAGGATATTTATATCAATTCAGCAAAAAAACGGGCGG -GACAGAAAATTAAGAAATTTGCGAATATTCGTTCCCACGGAAGTAAATTT -CCCCGAATTAGAAAAAATTCGAATTTTTACTGGATTTGTCTCAAGCTTTT -GAATCTAGAAACATTTTCTAGTAAAATCTCTTTAAAAAATTTTTTACACC -AAAAAACTTTTTAGGCCCTGAATTCTGCGAATTAAAAAATTCCGCAAGAG -ACCACACAAAATCGAGAGACTTAGTTAGACAAGTAGAGGGAAAAATAAGA -GGCAACAAATCATCGAAAGTTTTTTTCTGCAGAGAGAATGGGGGAGAAGT -TGCGGCGCTGAAAGAGAGAGAAAGAGAGAGAGAGACAGAGAGGGTGAGAG -ATATAACAGAAAACCAGGATAGTGCGGAGGAAGAGAAGAAAAAAGTGTTA -GAAATATTTGTCCGTCGACGCCTTCTTCGTCTTCTTCGTCGCCTTCATAA -ATGAAACTATGCATTTTCCTCAGATATTGCCTTACTATTAAATGGGGCCC -GGGCTAAAGGGTGTGGCCGGCCGATCCAAAACGGTGGCCTAGAAAAATAT -CGGCGGTGGCCGATATCAAATAAAAAAAACATCGATAGTTATGAGACCAT -AATTTTTAGTTTTTCAGATTTTGAGTCACTTTTCTGATTTTTATCCCAAA -AATAGAGCTCTTTGCTGTTTTTCTGCAGAATCAGCAGGTGGCAACTTGGT -TTTCGGAATTTGTGCTATTCTTAGAAATTCCCGACACAGCATCGAGTTTT -ACTGGAGAACACGTAGCGAGCACAGAAAAAGGAAGGAAAGACAAGAATTG -GCTCGGCGAGCAACCAGAAAAGCAGCAAGAAAAAACTGACCGAGCAAAGA -ACAGCGCGATGGGGCTCATATATATCTAAAAATGGATGGATGGAGAGATG -AGAGACAGCAGCAGTATTCGGTCAAATGAAGACAAGCCAATTTCGAAGCT -TATTTGGTATTCATGCGTGTCTTTTTTTTTCTTGCAAGAAAAACTGATCA -TTAGCAGAAAATTCAAAAAATATTGGTTGTCCGAGAGGAGTACAGAAATT -AAAAAAAATCGTCCGAAAGGAGTACAAAATTCAAAATGTCTATTATCCAA -GAGAAGTACAAAATTCAAAAGTGTATATTGTCCGAGAGGAGTACAAGATC -CAAAATATGAATTGTCCGAGAGGAGTAAAAATTCAAACCACAAAAATCCG -AATTTGCCAAGAAAGGGGCGGAGCCTGATTCGAGTGGAGTGTCGTTGCAA -AACGCAAAACTTCAAAAACATACGGTTTTCAAAATCTACCTCGCCGACCT -ACCGTAACCCTCTAAAATTTCTAGGATCAAATATCATCGCAAGAAAAGTG -TTCGTTCGAAACGAAAAATATTTCTGACGCCTCATCAATCATCATATCAG -TAACAAAAACCTGAGAGAGACGGAAACAAAGAAATATATTTTGAACCGAA -CAGGGATCCTGCAACAAATCACGTAATGGACAAAATGCGCCCTATTGCTA -AATATGCAGCAAGACGCAATTGCATTCTTCTGCCAGAATATCGATTTTTA -TACGTACTTATAGTGATAAAAAAAATGCTGAATTATCGATTTTTAATTCC -CCGGAAAAATGTGCGACAGAGCGTGTTTGCATTTTTTTTTTCGAATTTTC -GTGCAGAAAAACCCGTAAGCATCGATTTTTCTCAGTAAAAATTTCTCGCG -CCAAAATTGTTTCTATTTTTTTCGGGAAAAATCGAAAATCTCCAAAACTT -CGGTGGAGCGCACTTTCTGGACCACAATTTTTGAAGGGAAACATCACTTT -CTGCGGTTTTCAATAAACGAACAAACATCAACAAGAAACGAGAGAGAGTT -TTTGTTGACTTTCAAGAAAAAAATGGATATCGAATTTCTGTGCTCCATTT -CCCTCTCCGGGAAATGGCGCGGGGAACGTGCAAACAATGCGAGTATGTCT -AATGGCTCTCACGTAGATCGAGAAAGTGGAAAATTTGCTAGTATAGACAG -TTTAAGGAGGCTCTTTTATTCTATTGGGGAACCGATTTGTTTATGTCTTG -CCGTGGAGCGTAGTTACTGTAATTTTTTTGCAAACGTGCTCCATCGAACA -GTAAAAAAATCAGTATGCATACTAGTATGTACCTTTAAATAGCTGTAACA -CGAATTGCCTGTGAAAATAAAAATCTCGGCAAGTTCTCTCCATCGGATCA -ATGTAGGGAATTTTGCTGTTTATAATGCAAACTCGCTCTAATAAACTACA -ATTTTCGATCGGTATTTCATGCATTTCGACTGATTTTCGTTATTTTTTAT -GTACGCTCTCTATTGAAACACGGGGCCCGAGAAAATATCCAAAATCTAGA -GAGGTTGTATTGCTTAGGCTTAGCCGAAAACCTGTAAAGATTTTTTAAAA -ATTGTTCAGCCTGCGATGGACGACTTTTTGTAAAACTTGGCCACCAACTT -TTTTACGGTGCGGCTACATCGCATTTGGGTGACCTTTAATGTGTTCAGGG -TGTCTAAACATGCACCCAAAAGAGAGTGTCATTTTTAACGCGAAACAGCA -TCAATCCAAACGGGGCGACAAAAAATGAGAGAGAGAGAGAGAGCGGGCGC -AATCTAATGTTTTATCAAGTGTCTCTTCTTCTCCTCCGACCTCGTTTGCA -TCCCCCTAATTCATCATTCGTCGGTTTGTAATACAGAGAGAGGGACATAG -TGAGTGAGAGGGAAAATTGAGGAGATTCAGAGAGTTAGAAAGAGAGAGTG -AGAGGGAACTTCAACTTTTTTTTTCAAAAGTTTTGGTCGATGATTTTGAC -ATTTGATAAAACTGAATGAGAGATGATGCTTAGATAAATGAAAATTGATG -AGATGATATTTATAAATGCACTTGCGATGTTGTTTTACGTGCAAATTGCT -GATTAGTCGAGAAGTTGTGATTTTCGTGTCGGGAATATTTCACTAGGAAC -GCCCTTGCGCCTTTAAAATGTAAAGTAGCATAATTTATTTTCAGAAAATT -TAAGCGTTGGAAAAATAAGTAGTGCGCAACATATTTGACTCCCAAAATGT -TTTGTAGCGAAAACTACAGTAACTCTTTAAACGAATACTGTGGTTCTGGT -GTCGAGTTACGGGCTGCCAAAATTCGAAAGTAAATTCATTTATAATCGAA -CCCGTAAATCGACACAAGCGCTGCAGAAGTCATTCGAAGAATTACTGTTG -TTTTCGCTACTAGATATTTTGCGCGTCAAACATGTTGCGCAGTACACATT -CTCAGAATTTTGTGTTCCCGTGATATAACAATTCATTTTTCTGTCTATAA -CCTCTTTCAATTATAAGAAACCATTTGCAGCGAAACACAAAAAATTTAGC -CGATTTCTATTTCACCTATAAAATTCGCGTCAAATGGCCCGCGCTGTCAA -GACAGTCATAAAACCAAATGTTATGCAAATGGCGTAAAATTCAACAGTGC -CCGCCCGCATGGTCATTGATCGTTTAAGAAGAATGGAGGAGGGTGCGGGG -AGCATCATTTCCTGAAATGAGCCCAGAAGCGAGAGATTAGAGAATTAGAG -AAATGAGAGATCAATGAGGAGAGGGTGAAAGGTATGAACAATGAATAAGA -AAGGGATGGAAATGATCACAGATGGAAATAGATGGAATAATGAAGTGCAT -CGATGCACCATTTCAGATTTTTCGGGCTTTTCGCAGATAATTGAGGAATT -ACATTTTTCGGGCTCCATCGATAATACCCTGCCGGACAACGCGTTGGAAA -GTGTGTGTACTCCACACGGGCAAATACCTTTAGTTTTACAATGAAACCCG -AGCCGCGACCCGACACGCAACGCGCCGTAAATCGACCCCAGCCGTGGCCG -AACCAAAATGGCCTAATTCGTCAAACTTTTACATTCCAAAATATCAGGGA -AACCAGAAGTGCGCGTTTCCTGTTGTCCGAAAAAAGATTACAACAAAAAA -GAAGAAATGGAGCATTTGCGCTCCATCACACTCTCAGACAATTTCATTTT -CCACATCCTATATATATTTTGGTTTTTCTGTCGTATTTTGTTTTAATTTA -TTGGTATTTCGTTCAAAAATAATTATTTTGACTGTATTTTTGGTTGCATA -CATGTAGAACTGCTGTTTTTTAAGATATTCTGCCCATTCAAGTTTTTCAG -TGTAAAATTGATATATTTCATTCCAACTGAAAATGAGATCGAAACGATGG -AAAACCTCGGATATTACTGATTATGGAAAGAAGAGAAAAGAATCGGAAAG -TTGTGGATCAAGTTCACCGATTCTCGAAACACAGTCATCTGGCGGTGCGG -AACTTGACGAAGTTACTGAGGATGAATATTCTAGTAATTCGAGCAGTAAT -GAAACTAGCGACGAAGAGGAAAACTCAGAAGTACCAAATGTCTTATCTAT -AACAGAAAGAGGTAAGAATTGCGTCTTCTAGTGATCATACTTTTCGCCAG -ATTCCCTAATGTAATATATTTTGTTGTAGAGAAAAGTTGGCAAAAGTTAA -CGGAAAACGATTTGGGACGAATTCGTTTCATCTTGAAGTACACTAGCAAT -ACTAAAAAATGCGTGAACGAGTATTTTCAATATAATCATGGGCAAAACAA -TGAAATTATGAAAAGTCTATTATTGGATACCGATGGAACTATGACTGCAA -AGGCTTGTTCGGAATGTGCCTACGATTTGAATCAGTAAGTTACTCTCTCG -ATTTATTCCCAAAATTAATATGTGCTTCAGGTGCCACTGCAAAAAACCGC -TTCGCTTCATCAATGCTCCGTGTGGTTGGTTTGCTATTCAAAACTATAAA -TAGTTCACTGTTTCCGTTCAGAGGTCATCAACCAAGTTCTTCATGTTGAA -AATGCGGAGCCCACCAGGATCAACCATGTAATCGCAACACTCTTCCGGAA -TCACATTGGCGAGATTTTGTTGGTCCACTCTATTTCTGTGCGAGAACTGT -GATAAAACTAGTATTTTCAGCACAAAGGCTCGAACTGCGGAAGCTCGCGC -ATCTGAAGAAGCTCAAATCAGGATTCAAATCCAAGACAACTCGAACGCAT -TCCAAAGATCGTATCATAACGATCCACAACCTTCATCAGCCGAAGAACAT -GAGGAAGATATCGTGGTGGATGGCTGAGTACGGAGCTCAAATGCCTTAAG -GCGAAACAATTGGTTTTTTAATTTGCTGGTTATCATGTTAGATTTTGAAC -GTGTTAGGTCTTTCAATTGTTTTTTTTTTTCGAAATGTTGTTGTTCTAAT -AAATTTGTTTTATTTAATCAAACGTTTTTTAGTCTACTACGGGCGTGAAG -CCAGATATCAGTGGTATCTTCTTATCAGAAGCTGAATCATTTCCGGTTGA -CAATGTTTGAAGGACATAAGAAAGGCTGTGTTACTGATTTCGACCATTGA -TTTGTTTATATATGGATATGTTCCACTGCCTTTTGGAAAGGCAGTATTCC -CGGTATATATGGGCCTAATACGGAATCTAAAATAACCTGACACAAACCTG -ACGTTGACCTGTTGCCGGCCCGCGGCGGCTTAGTGTCAACTTGACAGCGG -GTCGCGATTTCACCTGCCAGTTGTTCTCCATTCAGCAGCCAGCGACCTGC -TGGCAGGTTGCCACTAACCTGACGCGGTTTACCTGTGTTATCGGCGCGTG -CATAGCTTAGTGGTTTCAGGAAATGATGCTAGTAATCAGAAGATCGGGGT -TCGGGAAACGGCAGGGGCTTGAAGGTTAGGTTCTATGAAGCAGGGCGAAG -GGTTGACAAGGAGAGGCAATAAGCAAGTAGTAGGGGTTCTCTAGAAAACA -TTTTTGTCTTTAATATGCGTTTCCTACTGATTTATTATTGATATTTGGAT -CCCCTTTTCTAGAAAAAAAAATCAGAATCAGCAGAAAAATTTGAGAAAAA -GTCATAGCAAATCAGAGTTGGTCAGAGTAAATCAGAGCTAGTCATAGTAA -ATCATAGCTAGTCAGAGAATATCAGAGTTAATCAGGGTAATAAGTAGACC -TAGTCATAGTAAATCAGAGCTAGGCATAGTAAAGCGTGGTTACTCCGAGT -AAAACCACACTTGCACCGAACTGCGGTTAGTGTGCTTTACCATTATGTAA -CTCCGCTTTTTACTCTGAGTTAGTATGATATGGTTTGTCTGAGCTGTGGT -TGGGCTTCGCGGGAAACTTGAATAATTCGAGACAAAATCTAATTTTAGCG -AATTTTCTTTAATTTCTTTGAGGTTTCTACGACAGAACTCGAAAAATTTC -GGGTTTTAATGTTTACACATTTTATTTAAAATTGAATAATCAACTGCGGG -ACTCCTCGAAAATCACATGCTCATTTAAATTTTGAAGTTCAAACCTCAAA -AAACGCGCAAAAACCAAATTCAGCTAGGATATCAAATTTATGATTGAAAT -CTATATTTTGATGCGGTGTTTCTGAAGTTTTCGCGATAAAATCCGAATAA -TAATTCCACGTACCGTATATTCTCTATCTAATTTCCAGGTCATTTTTTAA -TGCAGCACTATTAGAGACTGTCGTACTACTGGAGACTGCAGCATTAATTT -TCGAACGGCTACTGTCAATTATAGATCACTAGTATTTAGTCACAAAAGCT -AATTTTTTAAGCAGAAATTCATAAAAATGTTTTCAATATTGCGAACTTTT -GTAACAAAAAGACCCAGTAATTCAATTACTTTCGTAAATTATCAAAAAAT -CATCAAAAATATACAAAAAAATACCAAAAAATATTGAAACTTTCAAGTGA -CTCTTTCAATAGAAAATGGGGTGCAGCACTAATAGAGACTGCTGCACTAT -TTTTCGGACCCTTTTTGAATGCAGCACTATTAGAGACTGCAGTATTTACT -ACTGGAGATGCAGCACTAATAGAGAATATACGGTATATACGTAATATATT -CTTGCAGAAAAAAGTACGATTATCAATGAAAAATAGCTGATAAGAGGCTT -TTGTTTGAACTAACAGACGGAACGACTCCGGTTTAGTTCAAAAAATTCTA -AAAACACGTTGTGTCAGGCTGTCTCATTGCGGTTTGATCTACGAAAAATG -CGGGAATATTTTTCCAGAAAAATTGTGACGTCAGCACGCTCTTAACCATG -CGAAACGAGATGAGATGTCTGCGTCTCTTTTCCCGCATTTTTCGAAGATC -AAAACGAATGGGACTTTCTGACTCCACGTGTAAAAAGGGGTTACGACGGA -CCCTGGCCTAGAAATTAGGCGTGAAAATTCTCGGGCACTGGATGTAGTGA -ACGCCCGCGATGAAAAATTGGGGGAAAATTAGGCTTTCTTTGCGAGAAAG -ATTAATTAAAAATGTTTTCCTTTGTCGAAAATAATTTTTAAAAAACACAC -CACGTGTATTCAGCTCGACCAACGCCTCGAAAATTTTCAAAAAAGGCGGG -AAAAATTAGTTGAATTCGCCAAGAGGAATTTCACCGCAGCGCGTGCAAAA -ATTTCAGCATTTGCGCGTGACGGTGTTTGCACAAATTACACCGAATGGTC -GAGCTGAAAACACGTGCACACTTTTAAATAAAACTAGAAAATAAATCCCA -GGCCTGCAAATATTGCACACAAAACCGTAATCCCCTTCGCGCTAAACAAC -ACGCGCAACGATGCTCCGCTTGGGGACAAGGAAAAATTAATTTAACTCGG -GATTTTCATTAAAAAATTAGGTTTTTAGTTAATTTTTCGATGTTTTCACT -GCGAAAAAGTGTTAAAATAACGATTTTTCAACCTATTTTCAATTAATCCG -TGCAAAAAATCGTGTATTTCTCGAGTTTTGAAAGAAATTTATGAAAATCG -GCATTTTTAATAATGGTTTTTCAAATAAAAATATAATTTTTCGGTGCAGA -AAAGTCGTTGCTCGTACAGTTTTTTTAAAGCATTTTCACATCAAAATCCT -CCATTTTTCCAGTAAATCGATATGGAGTGCGACGAGACAAAGCTGAGCGA -CGGCGCAAGCGGCTGGGTGCCGAGTATCCCGACAGATATCGATTCAAAAG -ACACACCGTTGCTCGATATATCTTCTCAGGCGATTTGGGCGCTTTCCAGT -TGTAAAAGCGGTAAATTTTCCGACTTTCAAGGGAGAAAAGTGTAGAAAAA -TCGAAATTACTTCTTAAAAATCTCGTAAAAATCGAATTCTTTCAGGATTC -GGCATCGACGAGCTCCTATCCGACAGTGTTGAGAAATATTGGCAAAGCGA -TGGCCCGCAGCCGCACACGATTCTTCTAGAATTCCAGAAAAAGACCGACG -TGGCTATGATGATGTTCTATTTGGATTTTAAAAACGACGAGTCTTATACA -CCGTCAAAGTTAGCATTTTTGGCTTTTTCAAACGAAAAAATACAATGAAA -CACTGAATATCTAGTTTTTTTCTCAATTTTTGCCTAAAAAACGGCGATTT -TTCACTAGCTTTTCAATTAAAATTTGAACAAAAAGTTTTTTAAAGGAAAA -ACATGAATTTCTAGCTTTTTCAGAGGTTTTCTATTAAAAAATAGAGATTT -TTGTGATATCTGACTGAAAAATTACCAAACTGTCGATTTTTTTAAACTAT -TTTTCACTTAAAATCTGCAATTTTTTTTTTCGAGGAAACATGTGAATTTC -AAGCTTTTTCAGAGATTTTCTATGAAAAAGGTTCGTGCCGAGACCCATGT -GCTTTTAAACTTCAGAATTTTCCCAATTTTGAAATTAAAAAGAGAATGAA -AATTGATTTTCATGGAAAAATGCGTTTTTGGCCCAAAACCTCCAAAAAGT -ACAAATATAGGTCGACTTTCAACTGTTTTAGATCAATTTTTTTGCAGAAT -TCAAGTAAAAATGGGTTCATCTCACCAGGATATATTTTTCCGTCAAACAC -AAACATTCAACGAGCCCCAGGGATGGACATTTATCGATTTACGCGACAAA -AATGGGAAACCGAATCGCGTTTTTTGGCTTCAAGTACAAGTTATTCAGAA -TCATCAAAATGGGAGAGATACTCATATAAGGTAGAGGAATTGAGAATTTC -AGAACGAAAATTGCCGAAAAAATGAAATTTTAGCGAATTTGAGTCGGAAA -TTTCGAAATTTGATTGATTTTAAGCAAATTTCCAACTAAAATCTTGAAAA -TTTGATCTTTTTAGATAAATTTTTTTTTAATTTTGTGCTTTTCAAAAAAC -CTCAAAAAACAATTAAAAATTGAAGTAAAATTAATTTTTCAACAATTTTT -GAAAGGCCGAATTTTTGATTGAAAATTTTCACAATTTGTCCATTTTGTGG -TGGGGCTTATTCCGAAAAATCGTTGTTTTTTTTTTCAAAAAAGTTATAAA -AACTTTAAAATTGCCATGTAAAATATGTTTATTCTCAGACCTCGTAGGCA -CGAAGCAGGCGTAGGTCGCCTCGCAATAAATTTGAAAATCTCAAGAAAAA -TCAATAAATTTGTGATTAATCAAAAAAATTTAATTTCCTGGTCCCAGCAC -GAATGCTATTTTTCGAAAAAAAAAAAGAGGCGAGCCTAATATAGACCACG -CCCACAAAATGGGCAAAAGTTTGATTTTTCAAAAAATCGAAACAAAAATT -TTTCCAATTTTGTGAGATTTTAAAATTTCCGGTTTTTGGAAAATCGAAAA -AAAATTTCTCGTTTTTTAATTTTCAAAAAAAATTGTGCCTAAAATTCAAA -AAAAAAATCAATACTTTCTCAAAATTTCCAGAAAACAGTCCATTTTCCAG -GCACGTTCGAGTCCTTGGACCCCAGCGATCTCGTGTCTCCACAACGAATC -GAATATTCACCGGAGAACCACACGGACCGATTCCCGATAAAAATATCACT -AATTTCGACGACGAGGATTTTGCCAATTTTATCGATCACTCACTTGTTCA -CTTATCACTTCGTTAAATTTACCTCCAGTGATTCCAGATAATGAGCCAGT -TTTGCATTGAAATTTAGTGCCAAAATATAGAAAATCGCATGATTTAACAT -AAAATAGCGTTTCGAATTGAAACAATGGAAAAAAAGTGCTATGATGATTT -TTTAACACTTTTAATTGTTCCAATTTGAAGTAAAATCTATTTTCAGATAA -ATCAACTGATTTTCTATATTCTGCCACTAAAGCTTAAAAACTTGCCCTGC -TGTCCTAACCTTCAAATTGTTCCCTGCAAATTTTATTATTCTTGTTTCAT -ATTTTTGCGATTGCTTCGCGAGACCCAAACTCACACATTTACCTGTAAAA -TATAATCGAATAATTATTTATATATTTTCTGTAAATTTCCTTAGTATACT -ATAAATTTTCTGATCTCTCTTCAAAAATCGCTAGAAAAAATAAACAAATG -TCGGTTTAAAAATTCCTGGTAATTTACCTTCTATAGAAAATTTTTCGAAA -AAAAAACCGAAGAAATTCAGATGGAAATTCCCGATCCCGAACTGCCGGGA -ATACCGATTGATCCGCAAGATTTGGAGATTCTAGACACGCCCACACGGTT -TTACGAGAAGCTTTTAGTGCGTTTTTCGTGTCGGGACCCGGAAATTTGAC -ATTTTTGGCGCGCGGCTTGTTAGACTCCAAACCTTTTCAAAGATTTTTTT -TTCGAATTAAATAACATTCGTGCTTGGGCCCGGAAATTGAATTTTTGATT -TGAAAACAATTTTTTTTGAGTCCAAAATTTTCAAAGTTTGTCCATTTTTG -GCGCGTGGCCTAGTAGGATCCGCCCCTTCTAAATTTTTTTTGAGCAAGTT -TTCTGAAGCATTGATTTCAAAAATTTTTTTTGGAAATTTCTGGTTTATTT -TTCCGGTTTTTTTCCGAGTTGCTGTTTAAGTTTGGAGAAATTCCAGAATT -TGTCAATTTTTGGGGCGTGGCTTTTTCAGTAAGCACAGTTTTTTTTTTTT -GAAAAATTGAAATTTTCGCGGTGCGGTTCAAGAAAAACCACAAAAACTCA -ATGATTTTTTAACGAAAATTTCAAATTTCTTGCAAGACCTACTGCAATTT -CGATTTTTAGAAACTTTTTGAAAAAAATCCGAATTTTCTGATTTAGCCCC -GCCCCAAAAATGGAAAGATTTCCGAAAATTCGAACCAAAAGTTCGCAAAA -ACTTGAATTTCTCTCACACAGATTGACGCGCTAATTTGAATTTTTCCAAA -AATAAGCCCCGCCCCAAAAATGGACAAATTTTAAAAATTTTGAACCAAAT -AAATTCAATTTTTTTTCGCTTTTTTCCGTTTTCGAACAAAAAATTCTAAA -AATATATGGTTCTAGGCGGGGCTCAGGCACCCATCTACCTACTTAAAAAT -GCGTTAAATTTCAGGAATTAACTGCATCAACCGAACGGCGTCTCGCATTG -TGTAGTCTGTATTTGGGCGAAGGAGATCTCGAAAAAAATCTGATCGCTGC -GATCCGAGAAAGATCCGAAAAATCCGAGATTGAAGTGACGATTCTGTTGG -ATTTTTTGCGCGGAACACGGACCAATTCAAGCGGCGAAAGTAGTGTAACA -GTGCTGAAACCTATTTCGGAAAAGTCAAAAGTTGGTTTTTTTTGCAAAAA -AAAATCGATAAATCGATAAAAACCGACAATTTTGAGAATTTTCATTTCAA -ATTTGAGTCCCACATGCGCCTTTAAATATGGTGTACTGTAGTTTTAGCTC -GAATGTTGAATTTCAAAAATTGAGAATAAAGAAATGTCGTGACGAGACCC -ACAAATGTTTTGAAAAAAATTTTCAATTTCAAAAAAATGTAAAAAATTGG -GAATTTCCCTCCAAAAGTTAAATTGGTTTAGTCACAAACTTTGAAATTTT -GAAATAAAATTTTTTTCGGCTAAAAATAAGTATTTTTTAAAAACTATTTT -GAAGAAAAAAAGTTAGGTCTCGCCACGATGTATCTTGTATATGTGTATCT -AAATTGCCATGTCGTGACGAGACCCTCTCATATTTTACACTGCAACTTTT -TCCTCACGAGGGACGAGGAAAAGTGGTTTCTAGGCCATGGCCGAGGGGCC -GACAAGTTTCATCGGCCATTTATCTTGCTTTGTTTTCCGCCTGTTTTCTT -TCGTTTTTCACAGCTTTTTCCCATTTTTTCTTATTAAAACTGATAAATAA -ATATTTTTGCAGATGCCAAAACGATTTTCAAGTAAAAAAATCATGTATTC -AGTGGGCAAGCAGCGGTGAAAGTGGGCATTGTAATATGATGGATTACGGG -AATACAAAACCTAAACTTTTTCTGAAACATGATACATATGATGCTTAAAT -GCTGAGACTACCTGATTTTCATAACGAGACCGCTGAAAAAGTTTTGAGGT -TTTCAAAATTCAACTTTTTGTGCGAAAATCTCGACTTTTTCACCGAAAAA -GTTGAATTTTGGAAACCTCAAAACTTTTTCAGCGGTCTTGATATGAAAAT -CAGGTAGCTTCAGCATCTAAGCAGCATATGTATCATGTTAAAGAAAAAGT -TTAGGTTTTGTATTCCTGTAATCCATCATATTACATTGCCCACTTTCACC -GCTGCTTGCCCACTGAATACATAATTTTTTCACTTGGAAATTGTTTTAGC -ATCTGCAAAAAATATTTATTTATCAGTTTTATTAAGAAAAAACGAAAAAA -ATCAGTGAAAAACGAAAGAAGACAGGCGGAAAACAATACAAGATAAATGG -CCGCTGAAACTTATCGGCCCCTCGGCCATGGCCTAGAAATCACTTTTCCT -CGTCCCTCGTGAGGAAAAAGTTGCAGTGATTTTGCTCAAATAAAAAAATC -CCCCAAAAACCGATAATTTCACCATTTATCAGATATATCTCTTCCACACA -CCGGAGCTTAGTGGCTTAGTAAAACGAGTTCTTCCACAGCGAGCCGACGA -GATTATCGGTCTCCAGCACATGAAATTATACATTTTTGATGACAATGTAT -TGATTAGTGGGTTAGTTTTTTGTTTGCATGGGTCAGACTACAAACTACAA -AAAGCCTAATTTCAGAGCAAATTTGTCGGATTCTTATTTTACTAATCGAA -CGGATCGATATTTTCTATTCAGAAATTGCAAACCATTGGCAGATTTCTTC -CACGAAATTATCAATGTTGTTGGTGAGTTGGCGATTGCGCTCCACCGCAC -ACACTGTTCAATGGGGCTCGCTTGAACTGATAATTTTTTCTAAAAAATTA -CAAAAATTGTTTTAATTTGCCTTCAAAAAACCATCAGTTAATTAAAATTT -TCTAAGCAAAAAATTATATACTTTCTAAAAAAATTGAATTTCCCGCGAAA -ATAATTTTTTCTGAGAAAATTTGAATTTTTCACCAAAATATTTTTTTCAA -CATTTTTTACCACAAAATGAGGCGGGGCCTCGGTATACACGCTCAAAAAA -TCAAAAAATACTTGTAAATTTGACTACCAGCTATTTTTTTTTCGAAAAAA -AAATCGAAAAGTAGGCCAGTTTTCGAAAAATTCTCGACAAAAATTCCGAA -AAATGGGGCGGAGACCTGTGCGGTATTCGGCATTCGGCATATGCCGATGC -CGGTTTTTGGAGCCCGTCATATGCCGTTATGCCGATTTGAAAATTCACGG -CATATGCCGAAAATGCCGTTATGCCGAAAAATCCCGAATGCCGCACAAGT -CTGGGCGGGACTTCAAAAACCACGCCCACAACAGAGAACAAAAATTTGGA -GTGATGGTTTGCAATTCCCTCGCGCACTTTTTCTTGTTTTTTTTCAAAAA -GATGAAAAAGCGCTCTACTGTACACGTTTTTTTTCGAATATTTTCATTAA -AAATCCAATTTTCAGCCGACTCGAGCTTCATTGTCGAAAATGAGCAACTG -GTGCCGAGCCCAAAATGTGATGTGCACCCATATTTAGGTAATCTGAAAGG -ATGGGTAACCTGAAATTTTTCCAAAAAAATTTTTTTTAAGGCTCCGCTCA -TCTCTACCGAGAAATGCTCAAAACACGTGTGAATCGAGTTATCGAAAAAT -ACAAAGAATCGCGAAAAACGTCGTCGAATTGCATGTCTGCTGACACGTGG -ATTTACCCCGTTTTACAAATGGGGCTTTTGGGAATTCATCAGGAGTTTGA -ATTTTTGCAAAAACTTTTCTCACTGAAAAATCCGGAGCTCAAAATGACGA -TGGCTTCGGGATATTTCAATTTTATTCGAGATTATGAGGAATCGATTCTG -AAAGAAGGAGATTATCATTTGGATATTCTTACAGCTTCTCCTTTTGTAAG -ATTTTTTTTGAGGGAAAAATATCTGAAATAAGTTCAAAAATTTCAAAATT -GAATTTTTTCGAAATTTTTGTAGGAAATTTTGGTTAAAAAAAGTTTTCTC -GAGAAATTTGAATTTCCCGCCAAATTTTTTCTGTGAAAATTTGATTTTCC -CCTCAAACATGTTTTCTCATAAAATTTGAATTTCCCGTCAAAATGTTTCT -GAGGAAGTTTGATTTTCTCATCAAAATTTTTCAAAATTTCCAGGCGAACG -GATTCTTCGAATCAAATGGCTTCTCGAAATATATTCCACCACTATATTCC -AACATTTCTGATCAATTTCTTCGAAAACGAGAAATCAACGGCCGATTGAA -TGTAAAAATGTTCGAATATCGAAGAGAAGAATGGACATTTCATGCAAAAG -GTCTTTGGGCAGAACATAATAATCAATTAATGACATTAATTGGCTCATCA -AATTACGGTTATCGATCGGTTCATCGAGATCTTGAAGCTCAAGTGATGGT -TGTTACAAGAAATCCGACACTTATCGATCGATTGAAAGATGAGAAAAATC -TATTATTCGAATATTCATCGATACTTGACATGGCTGCACTTCAACAACCG -GAACATCATATTCCACCATTAGTTCGAGTTATTTCACGTCTTATTCGGAG -TTTTTTGTAGACGTTTTCCAATTTTTTATAGCGGAATAATAAGGTTTTTG -ACTTTAATAAATCTTTGTAGATTTCAGTTTTTTTGAAATGCAACATTTTG -CCGAATTAGGCCATTTGACAATTTTTGGTCGTGTCACGGCGCGGTTTGCA -GTAGAAAACTAAATGTATTTTGATTTGTTTTTTCGAAATATCCGAAAAAC -AACAAAAAAATCTGTTTTTTGTTGAAAAAAATGTTGCGAATTTCAGAAAA -CGGCACTTTTCCGATTTCTGCCCCCTAGGGCTGTTATGAGGGACGTCCCC -TATTGGGGGGCGGGGACGATCATTTGTCCCCCCATGGGGGACGGGGGCTC -GTCCCCGTCCCCACGTCGGGGGACGGGGAGCGCCCCTTGTCCCCGATGGA -ACGAAAAGTCGTCCCCTTTTAATTTTTGATTTATTTTAGATTTTCACTTC -ATTTATTACCGGTACAGAGAGTGTAGATAGTTAGAGAGTGCCAGACATCC -GGGACCCAATGGAGCGGGGCGCGCGGAAGAGACGATTAGTGTCGATTTAC -GAAATTTTCCTCGTTGTCATCATTTCGTAAATCGACACAAATCGTCTCTT -CCGCTTGGGTCCCGGATGTCTGGCACTCTAACTATCTACACTCTCTGTAC -CGATAATAAAATATTTTTACGTGAATCTCGTTTCCACTAAGATGTGCGGG -TGGATACCGTGGATATTCCACACAAAAAACGTGTCGCTTTAATAATTATG -AAGCAAAATACAAACGCACATTCTTCACATTGGGTAAAGGGGGCGCGCTC -CCCCTTTACCCGGGCGCCCCTTTTCGGGGGGGGGGGGGGGGCGTATTACG -GGAGGTTTTTTGAAAAATAATTTTTGAAATTTGTCAACTGTCGACAGCTG -TCGTTCAATTAATGTTTTTTTTTCAAATCTCCATACAAAAATGTTCATAG -TAAATTCTTTATCAATATTGGGGTCCCTCACAAAGTTCAAGTTTTCTTCT -CACTCTTCACGGCCGCCTTCGATTTTTTCTTAAGACCTTCATTTGCATCA -AAATACATTCGACAAATTTGAGTCACATAAGCATCATCATGTGCGTTTGC -CTGCAAATGTTAACAAAGTACCAGGCGGATGCCAAGCTTTCACGTCTTCA -TGTCTACGTAGAAAATGCAGTCATGAAGTAGGCACGCAGACAGACAGGCA -AGTACATAATCAGGCAATAAATGGGCAAGTAGGCAAAGCAGGCATGAAAT -AGGCGCTTAGGCACGTGGGTAGGCAGGTATGAGACATAGGCAAACATGCA -GGCAGGTATGAAAAGCGAGAAAAGGCAGGTGAGCATGATGAAGGCACATA -GGCAGGTAGGCAAGGAAGCTCCTAGACAGGTACAAAATAGATGTGCGCAA -AGTAGGCATGTGCAAAGAAACTAAGCTCGTCGCCAGGCATGAGGTAAGCG -CATAGGCTTGCAAGTAGGCGAGTAAACACGCGGGCATCGAATAGGCAATT -AGGCAGGTATTTTTGTGCTCCATTTGGAAACACACTTACTGGATAGAAAA -GAGTGAGAGTCGTGTAAAATGCAAATGCCAAATAAATTGGATCCGGTGCA -GCACATTTTCTCTTTGATCTCGTTTGTTCAATCAGACTCCGATAATTGAT -TTCTCCAGTTTCACTTGTATTGATCGCTTGGAAGAGGCTCTCGATGACTG -AAAAATGCTCAGAAATTTCGGATATGTTCTCGATTTTCAGTGAATTTTTC -CTGAGAAAAAGCTAAAAACTCACGAACAAACGCTGCCGATCGTCCACCAC -CAGTATTGCATACGACAAAAACCGGTCTCTCGCTGTCTGTCACTAGTTTC -AACAAATACCTAATCTCCTCGGCATCTTTCGGTCCCATATGCTCCGGCCA -TCCGGTATACTGGTAATGAGTCACCTCTTGAGTACGCTTCTTTCTGGAAA -AAAGTTTGTTGCAGGCTACCTTTTATGCCTGCATGGAAAAAAATAGTAGG -CGGACAGGCGTGAGGAAGGTTAGAATATTGATGAGAAAAATTGAAAACAA -TCATTTCAAAAAGCAAAGAATTGACCGGTTATTATTAAAAAATAAAAATT -TTTATCCGGACAATCCGATGCAGATGTGAGTGCCTGCCTACCGGCGTGCC -ACCGCGCCTATTTCATGCCTGCGTGCCTATACTTACCCAAATGTTAGCAA -CAATTGTCTAGTCTTCAACAAAGGCTTCGAGATACTCTTCGTGCAAGTGA -TTGTTAAGTCCGCCAAAATTAGTTTTTCGTCGAGTTCAGTGGGAAAGTAC -CTATCACAGTTCACCTTATTAGCTCCAATAAAGTGATCTGAAAAATAAAT -GGATTAAAAACGGAGGGTGGCTTGATAGACAGGCAGGCAGGACTACTGCC -CTGTGTAGGCCGTCTTGTAGACAAGCAGACAGGAGTGGGTCACCATGTAG -GCAGACGGGAGGGTGTAGGTTGTCTAGTGGGCAGGCAGGCGTAGGCTGCT -GCCAAGCAGATATAGGCTCACCTATTTCCGCGAAATCGCACAACATCACA -ATTGTGCTTGGTTTATTCAGCTTCACTGACTCCCAAAATGCGGCAATCGC -CAAAATATCGGAGCTTTTCTTATCAACAGGCAACTGCGGAGCAGGCATCA -ACACAAACTTCAAGCCGTTATCCAATTCAACAACATGTGATGATTCTCCC -TGGCTGAAAATGAAGATTTTTTGGTAGGTACCCATAATTTTGCCTACCTG -TCTACCTATGTGCGCTTGAGTTAAAGGTTAAACCTAAGCCTATGCCTAAA -CCTGAGCCTAAGCTGAAGCCTAAGCTTAAGGTTAAGTGTAAGCGTAAGCG -TAAACCTAAGCAATATGTAGAGGCGAAAGGTAGGCAGGCAGGCGTAACAG -TCTTACCCATTCTTTTTCGAAGACTCATATGACACCGGATCACATTGACA -GTGATTACCTCCCTGTAAGCCGCAAAACTGGGCAAAATCGTCTCCCGTAA -TTTCTAGGTTATTTGGAACATTCTCAAATACTGAAGTACAATTTCTTTTT -CTAGTAACGAAATCCGAAATTTGCGTGTTGAATGTCTTGAGGAAGTTTGA -AAAACGTGTCTCATTCACATCCACACGACTGATCATCTGATTTGGCGGGT -ACAGTTTCTCTTTTTCTTCCGAGTCGAGTATTTTGTAGCCGTTCGGGGTT -AAGCAAAAGTAAGCAATTATTGCACAAATTATGACAATGACGATCAGAGC -CAAAATTACATATTGTCCGTGTGTTCTGGGATTTTGGAAATTTTTAGTGA -AGCTTCTAGGCTTTAGCTTATGCTTAGGCATAGGCTTAGGCTTCGGCTTA -GGATTAGGCCTAAACACAGGAGCATATAGGTTGGCAGGCAGGCAAAATTA -GAGGTACCCGCCAAATATCTAGAAGCTTCACTAAAAAAAAAACGTTTTGA -ATTTAGCATGAAAACAATTTTGAAAAAGTAAAATGTTTTCTTATCTCAAT -TTTTTCCTTGATTTTATATTGTAATTAAAAATAATAATTTGAATTTTCAG -CTCGATTTAGATAGAGTTGTGCTAGATTTCAAGAAGAAATTGAGAATTTT -CGTAAAAAATATTTTTAACGCGAAAAAATTTTTAAAGCTTTAATCCAAAT -TGTTCAAAAAAGTTTGGAGTAAAAAATTTGGAATTTTTTTGATTTTCACC -CGAAAACCTTTCTTTAGAATGTCTGCCTCTTGCCTCCATCCGCGCCTTAT -GCTCAATCCGCGCCTTATGATTTTTCTCCGGGAACTTGAGACGATTTGGT -TGTTGGGAGAAGAAGTGCGGAATGTGGAGCGTTTGTTGAGAAAAGATAAA -ATTTGGAATTTTTTTGATTTTCACCCGAAAACCTTTCTTTAGAATGTCTG -CCTCTTGCCTCAATCCGCCTTATGATTTTTCTCCGGGAACTTGAGACGAT -TTGGTTGTTGGGAGAAGAAGTGCGGAATGTGGAGCGTTTGTTGAGAAAAG -ATAGATTTTCTACTATTTCTCAATTATTCAATACTATCGAACGACTTGAT -GTCCAGTCTTTGAATGTTCTTGTCGAGGAGGCGAAGGTTATTGGTAAGTG -TATGCGTGGCTTTCCGATGAATTACCAACGGCACGGAAAGCCTGAGTGTA -CCCTTTCGATTTCATCTTCGGAAAGTGTGCTAAGCGTAGGCGCGTTAAGC -TAATTTTTCCTGGTAAATCCGCAATTCTTGAAGATCGAACCAATAGGGAA -CACTGTGGCACCACGTGCAACTTCAGGGGTAGGCGGCAAACACAACGGAA -ATTTATCGATTTGCCCAATTTGCCAGAAATTTCGGTTTCCGAAATTTTGT -CGATGCATTAAGGGTTTGATAATAAAATCGAGTTTGGGAATTAGCGTTTT -TCAAAAATTGTCGAATACCTTCAGAATTTTGGTTTCCGAAAGTTTGTCTA -AAAATGCAGGGGTAGGCGGCAACTGCCGTTTGGCATATTTATTTTTGGCG -AATTCACCAAATTCCCGTGAAACATGCGTGAACTTTCTTCTCGTTTCTTA -ATTAGTTTTTCATCAAATTGATAAAAATGAGAAAATTATAAATTTGTAAA -TTCACTTCAAAATGCAGGCGGGCAGGTTTCAGTCAAGCCCTGAAACCGCG -CCTGTCTACCATGGAAGCCCTACTTTCAAATAAGATCAACTCACTGTGGT -GGTGGACCATTCTTTTCAGAATTTCCAAGATCTGGCGGTGGGAGAATTGC -AGTCGGCAGAGGCTTGAATAAATTTGAAAAAAACAAGTCAAGAGCAGCAA -GAGCCTTTTTCGGTTCATCAAGTCTGTTTTGAAAACTTGAAAACTCCAGT -CCACCATCATCCAAGCTCTTCAGAGCATCCTGAACTTCACCGAGCGACTT -CTTATTGCCAACATCCTTCACAAGTTCTACCAGTTTTTCCAACGATTTTT -CCAAGCCCATAAGACCACCAAGATTAGCCCAATCAACCTTCTTAGCTTCC -GTGAAAACATAACCATAGTCTACAAATTTTGTGGAATCAGACTTTTTAAT -TCCACTCTTCCATGCATCTAGCTGAACAAACATCACATCCAAAGATGCTC -CAAGCGCCACCAGCTTCTCCAGATTATCCTTATCGTCCTGTGCCAAAGTG -GCTCCACTCGCTGCCAACTCTCGTTGCACAATTTGTGCATGGTTCTTGAT -AATATCCACATTTGCTCTTTCTCGGAGCACGTCCTCCAGTCGAGCAATTT -CTTGTGCCGCTGGGCCAATGGAATTAGTGTGTTCAGCGGCGTTTGGAAAC -TGGGATGTTTTATCCGAAGCAAATTTGCGGCGCTTGCTAAAGTACAGCGC -CAGAGATTTCAGACCACTATTGAGGCTTGAAACTGAGATCAGAGCATCTT -CGACGGCAGTGACTATCGGCGGGAATTTTTGATCTGCTCGGAACGAATTC -AAATCTGACAGGTTCTTTTGAATTTTGTCCAATTCTTTGTTGGATTGAAG -ACAGCTCAGTACGTCGAGAAATTGAGCAATATCAGATCGAGAGTCATTGA -TTTTTTCAATAGCACGTTTTTCTAGTGTTTTCAAAAGATTCGGATTCAAG -AAAGTAGCGTTTGCCGTCATTCTACTCATGGTCAGCGACAAGCCGGTCAT -TTTTTTCACTCCATTAAAGCATGGCTCAGCGGTTGTCCAATTGCTATTGT -TCATATCCTTGCAAACAGTGAGCACTTCTGCGTGTCCTGATTTGCTTTCA -ACAAGTTGATTCATCACACTTTTCAATATCGATTTCGATTGTTCCAATTC -GGTGTCAATGTTCGATGCAATTTTAGATAGTTCCTCCAGATTCGTGAAGT -CGGGGGCGGTAGTTAGAGTAGATTTGGCGCATTGGGCTGAAAGTTTATTT -TTATTTTCGTTTTTTTGAGTTTGAACTTTTGTGGACAACCGACAGATTGG -CTCAAACTAAAAGGACTCTAAAATATACAAATTTTGGAACTCAAATCAAT -TTCGCAAATATTACTTTTTTCTACGGAGCTTTGATCAGGGTGGGGTGGCA -AACGATTTTTTTCCAGCAAACGGTAAATCGGCAAACCGGCATTTTGCCGA -TTTTCCAAAATGGCCGAAAATTTTTGAATCCCTCCCTCTAAACACTTCCG -GCAAATTGTTATCCAGCAAACTACAATTCGGCAAATTGCCTGAATTAAAA -ATTTCCGCCCAATCGGCAAATTGCAGTAACTGCAAATTTCCGATAAATTT -GGAGAAACCGGCAAATCGCCGAAAATTTTTGGTAACTGGAAAAAATTTCA -AAAGGCACTGTACCCGTGCTTCCGTTTTTTAAAAAATGCTTCTAAACAGT -TCCGGCATATTGATATCCGGCAAACGGCAAATCAGCAGTTTGGCTAAAAT -AAAAATATCCGGCGAATCAGCAAATTGCTGGAATTAAAAAGTTCCTCCAA -ATCGGCAAAACCGGGAATTTGGTGAATTCGCCAAAAATAAATATGCCAAA -CGGCAGTTGCCGCCTACCCCTGCATTTTTAGACAAACTTTCGGAAACCAA -AATTCTGAAGGTATTCGACAATTTTTGAAAAACGCTAATTCCCAAACTCG -ATTTTATTATCAAACACTTAATGCATCGACAAAATTTCGGAAACCGAAAT -TTCTGGCAAATTGGGCAAATCGATAAATTTCCGTTGTGTTTGCCGCCTAC -CCCTGAAGTTGCACGTGGTGCCACAGTGTTCCCTATTGGTTCGATCTTCA -AGAATTGCGGATTTACCAGGAAAAATTAGCTTAACGCGCCTACGCTTAGC -ACACTTTCCGAAGATGAAATCGAAAGGGTACACTCAGGCTTTCCGTGCCG -TTGGTAATTCATCGGAAAGCCACGCATACACTTACCAATAACCTTCGCCT -CATCGACAAGAACATTCAAAGACTGGATATCAAGTCGTTCGATAGTATTG -AATAATTGAGAAATAGTAGAAAATCTATCTTTTCTCAACAAACGCTCCAC -ATTCCGCACTTCTTCTCCCAACAACCAAATCGTCTCAAGTTCCCGGAGAA -AAATCATGTGATCAGTAGTTTCTCGGGCCCAAGCGTCGGTTGCCAATTGA -GAGTTTAGTGCTCCAATATCAATTGCTCCATTCGGTAGACCAACTGTGTA -CTTCTTGGTTCGCAGGGACTGCCCGATGGATTCGATGGTTTGAAGATGGA -TCTTCGATTCTTGATTTGGAAATGCATTCCGGATAGATGCCATGTGTTCT -TCTAGCTTTCTTAGTCCCCGATTGATGTCTACAATCTTGAAGGATGAAAT -AAAGTTCATCACATCACGAACTTTTGGCCATAATACAAAGAAAGAAGCAG -CAGAATTATTGTTTTTGAAGCCATGCAACGTAATCTTCGGATTCTCCACT -ATGTTCAAAAAATCTTGGGATTTTTTCAACAAATCGTTTAACGCAGAATG -GGATTTGGGAATATCGGTGAAACTAGTGAACGCTTCAATCTCTGTGTACG -AGTTGCTCCATACTGATAGCTTTTCGGAAAGGGTTGTAACTGATGAAAAA -CTGTCTGTAATGTCTTTCATGTCTGCCTTGAAATTAGTCTCGTCTGGCCA -CTTCTTGAGATCTCCAATATCATGAGCCACGTGGACAACACTTTTGACAG -TTGTGAAGAATTGATCTGCCTCAACATCGTCGCCGATATTCGATTGTAGT -TCTATAAAGGTATAGTTTTTGGGGGCAAAAAACGAAAGTGGTTCAAAATT -TTGGAACAAAATGCCTATTTTTAGATAGCTAAAATCTAAAATTTTGCAAT -GCTGACAAGTTGTGAAAATTTGAAATTTTAACAGAAAATAGGCTTTTTCC -TAAACTTTGAATCACCTTACTTTTTTTTTGAAATTTTCGAAACTTTTCGG -TTATTTCCAAAAAAAAGCCGCAAATACTCTATCAGGGGTAGGCGGGAATT -GCAGTTCGGCAAATGTATTTTCTGCAAATTCGGCAAATCGGGATGTGTAC -AATTTTGTCGTCTCTGGCAGTTTACCGACTTGCCCATTTACCGAAAATTT -TAATTCCGGCAAATTGTCCATACTCTATTACTACCATAGGCCCTTATATA -ATCTTTTTCCGCCCACCCCTGTACTCTATTACCACCTAATCTGTTACTAC -AGTGGATTTTTTGAAACCAAAATTTCAGCTTTTGAATTTTATATTCGTAG -TGAAAAGATATTCGTAGTGAAAAGTTGAAACCTGGAAAACATAGTTGCAT -AATTGCATCGTAATATGTAAAAATAGGTCTTCCATGGTAGATAGGCGCGG -TTTCAGGGCCTGCCTGGAACCTGCCTGCCCTATGTGAACGAGTAGACTGT -AGTTTTAAAAAACAAAAAAAGGTATTTGCCTAACAAAAAACATACTCAAA -TATTTGAATGTTTGCAACCAAACCTTTAAGCGCTATCAGTTTAGATTCCA -GCGAACTGTAGTCAATTGCATTCAGTTGATCCATTGAGAAATCGTATTTG -AACAAATCCAAAGTTAAATTCATTGATGGAATGGTTCCTTTTGTCAATTC -TTGTTGTAGGTACATTGCATTGATCAATCGTGAGGCGAATTGTAATCGCT -CAACGGCAGTTATCAAGTTGTCATCTGCAACTTTTATGAATGATTTTTTT -AAAAAGTTATTTGTTGTCATTTTTCTTTTATTAATTATTACGTATATTAT -ACGTATCATGCGAGTTTAGCTTTCCAACCCCCCGCGAACTCTTTTTACTT -TTTTTTTTTTTAACTTTTGTCTTTTTTGTCCTTTCTTGGCTATTTTTTTT -ATGAGAATTGACCCGAATTTGACTTTTTTCGGATTTTTAGGAATTTCTAG -GAATTTTTCTTTTTTGTCAAAGCGAGCTAACGCTCGCCACTGACGCCAAG -CCTAACATAAGACTTAACCTAAGTCTTAGCCTAAGCCTTACAAGGAAAGT -CTTTGAAGGGGCCTGTAGATTTGGGTTTCTCATGTTGATATTCCGATAGA -AGAGTGTTAGTTTTGATCTCTCCAAAAAATTTAGCTGCCCAAGCCAAGTT -TCAGCAAAGTAATGACATTTTGAAATTTCAGTTAAAAACACCATTGAAAT -ACACTGTCTTACAGTGCTATCCACACAAATATCAGCTTGCGTGAACACCG -AAAATGTGACGCCCACCACAATAGGCTGAAGACAGTGGATTTCAATGGTG -TTTTTAACTGAAATTTCAAAATGTCATAACTTTGCTGAAACTTGACTTGG -GCAGCTAAATTGTTTGGAGAGATCAAAACTAACACTCTTCTATCGGAATA -TCAACATGAGAACCCCAAATCTACGGGCCGCTTTAAAGACTTCCCTTGTT -AGCCTAAGCCTATGCAAGACACGCAAAATATACATTAACATATATATACA -ACAAATACAACGTAAAAATTGTTTTTCTGTAATTCGACTGACAAACCTTT -AGCTTCACGTTTGGAACGTGGATCTAATGACATCACATTAAAGAAACTGG -ATTCTTCTGGAACAAAATATATTGAAATTAAAGCTCTGAAACAGTCAAGA -AACCTTCGAAAGTATCCGAATTGACAACACGATTAACCGTTATAATTATC -AAAACGATTATTATTTTGATTCCTGGAAGACAGAAGAAATTCGGAACGAA -AATAAAAATCAACCTACTCATTGCAAAGTATTATGAAACTTCCCTTTGAT -CGACGGTTTTTGAATCAATTAATGATTGGAAGTGTGAATTCTGAGAGAAG -GAGTGTTGGAATTTTTATTTATTTTATAACGAAAAGGTCACGGTTTCTGT -AATTTTAATTTCTATGAAAGTTTTAGGGACTCACAGAATGTCAAACACTA -GATGGCCGAAGAAAATTTGACATAAGCAGCGAAATTTGACCTTTCAAAAA -AAAATTAATATTACGTGAAATCTTTTTTTTTCCAATGGAATTGAATTTTT -GGCTGATACATGAGGGAATGTGTTTCAAGCTGTAATTTCAGTAAAACTGT -ACAAGAAAAAACGTTCAATATTTTTACCTTTGCTTATAACTCCTCTACAA -AATTTTTTCGGACAAAAAAATAAAACAAGCATGGAGATTACAGGTGAATT -TCGAATCCTCATCTTCATTTTTCAGACTGAAAATCCAAGAAAAGTAGCCC -GAACTTTTTTCTGAAAAAGTTCCTATATACTCATCAAACATTCATAAACA -GTATTTAAACAAAAAATCCCGAGATAACACTTTTGTCTTCAAGATATTCA -GGTTGAAAACTAATGTCCTGAAACTTGGATTTTGGGTCCTTAAGAAGATA -AAACAGATAATTAGCTTTTACGTTAATACCCGCAATCATTTGCAAATTAG -AGCAAAATTAAATTGAAACTTTTTTTTGGATTTAAACATTTTTTGGAGCC -GAAATACAAGTTTCAGGACACTAGTTTTCAACCTGAATATCTTGAAGACA -AAAGTGTTATCTTGGGATTTTTTGTTTAAATACTGTTTATGAATGTTTGA -TGAGTATTTAGGAACTTTTTCAGAAAAAAGTTCGGGCTACTTTTCTCGGA -ATTTCAGTCTGAAAATGTATGATTTTTTAATTCAAAATTTGAGGGAATGT -CGTTCATTGTGGCTCGAGGTCAATGGATAAATGGCTAAGACTAAAACATC -ATTGATCGAAGAATGATTTTTTATTCATAAAAACTATATATTTGACCTGA -AATCATTGTTTTTTGTCACTATAACCCATTGGAATGAGCTGTAGAAATTA -ATTAAATTTAGAAATGATTTTACCGATACGTGGCAATGTTTAATACATTA -GTTTTCTGGCCGAAGATTTGTATGTTTTCCCGAGAAAGTGAAGCGACAGC -TTAAAAGCGCATCGCCTTTAGTGAGAGGCAGGTCTCGACGCGACGACATC -TTTCCTCGCGCGCAGCGGCGAGATTTCGTCATTCTACGTGTTGGTAAAGA -AAAAGGACGTGATTTTATCGATTTGCATCGATTTTTTTTGGATTTTTCTT -TGTTTTTATTGTATTTTTATCGAATTTTTAGTAGTTTTAAGGTTTTTTAT -CGATTTTCCTTGATTCCGTTGCGTTTTTAAGCGTTTTTCTCGTTCGTAAT -GATAAAAAGGGGGTTATTTCTCCGTTTTCCAAGAGTTATCTGCGCGTATG -CCAGATTTTGCAGGAGGAATCATCAAAATTCTCAGTTTTTGGCATGTAAT -CCTTACGAAGAGTACTTTCTGAGGCTCAATGGCTTTTTCCCCCGCTGTTA -GGTGCTTCAGTAAGTGTTCTACTCCTTTCAGGGGTTCCTTCTCTCGTCTA -GGAGATTAAATATGTTCGCATTTGTTTCTTCCCTCTCTCTTACGCGCTCT -TTCCAGCATTGTTAGTTTATCCACGCTCTTTTCCTCTGTAATTTTTCGTT -TATCACTTTCTCTAATTTTTCGGTTTCCGGTTCGTGCACTCGCGCACCCT -CTCCCTATTTTACTCTATCTCTCACTATCTCTCACATCTATCTCTATCTC -TCACAAGCTATTTTGGTATTTTGCGCGTTAAGAAGTCATGTTTTGATGGA -CCGTGTCCAAAGGAAGAATATTTTCGTCGAGTGAAAGGTATGTAACTTCG -TGTGAAGTCGACTCCATGAGTCTTGTGAATATTCCGATAACGTTTTATCG -AGATGTATTATCGGGCGGCCCGAATTTTATGTATGTTTTTCATTGTGGTT -ACCATGTAACGGGAGTTCACATCGCAGAAAGAGCAATTCTTTATCGCGAA -AGTACGATTTCAGGCCCCGGAAGGCTTTCTTATCAGTTTAATGCGACATC -TTTCGTCGGGTGAGATATATTGTCTTGCGTTTCTATCGCATTTCATTGGA -CCGGTCGAGCCAGGTCTGAGTGTTTATGAGTACGAGTCGACTCCGTGAGT -CTCAATGATTTTCCGTTTTCAGGCGGTTTTCAAGGTTTCCCGTTCTTGGT -TTCTGCTTCATCTTCTACTACCGTTTTAAGTAGGATTGGCTCAAGTCTAC -GGAAGAGTAGAGCAAGCCTACGAAGAAGGTCTTCGAAAGAGTAGCGCAAG -TTTACGGAGGATTCACGCAGGTCTACGGAAGAGTGGAGCAGGTATACGTT -AGAGTGGCACTAGACCATACTGGGAGTCCGATTTCCAATTGGATTCTCGA -AAAACCTTGTACCTGCACAAATAACCAGACGAGCCGATATATCTACCTTA -CCGAGCTCCGGGTTAATCGTCGTCAAGTATTTCAGGATGAAGCGTATAAG -GCGATGATTTTCTTTAGCTATGCCGCGCGTTTTGCAATTGCATAGCTGTG -TATTCCGTGTAGACTTTATCGCTCACTTGTTCGATTTTCAGGACATCCGG -TTCGACCTTTTTTCTTTCTCCCGCTATCGACGACGCAGATCACGTATGAG -TTGCTTTTATATACGGCGATCGATTGGTCCGGTATACGTAAAATTAGCTC -TATATTTTATCGCTTTCGTTGCTCACGCGATTCCCAGGTATTTTAATGTC -GAATCATATTCCGTCACCTACCACTACGTAGGAGATATGCAGGGCTATGT -GAGAATAACTCAGGTTTCGTAAGAGTTTCTCAAGACTAGGGAGGATATTC -GCAGGTTGTTGAGTAATTTGTTTTTCCAATTAGCTATTCTCCTTGTCAGG -ACTTATTCAGGTGTGAGTCGAAGTAGCCCGAGACGTTTGGCCCTAGTATG -GATACTTCACGACAGTTTCAGACAGATTGTGGTCCGCCTTTAATGGGAAT -TATTTCTACTGCACAGGTTCATAGCTGACTTAGCCGAATGAGCCCCTTCG -ACGTCGCAATTTGGCGGTTAGCACACTTCCAGGAAGACATAGACGAATCA -CAGTTTCAGAATTCCTATACACTTCAGTAACTACGGAGTAAGGCGATCAG -TTCCTTGCCGCATTTATATGTTCATCTTAACTTTATTTTATATTAGCTCA -CGGCTTTCATTGGAAACTACAGATAACTGAGCCAAATGCTTCGCCTTTTT -GTCACTTTTTCCCAGTTCACTCAAGCCCAGAGTAGATGTAGTTTGAGGTT -ATCTACTTCTCGTTTCCATGTGCGGATACTAGCAGAGTTTCTCCTGTTAT -AACTGAGAGTCATTTCACACACAATACGGTTTATCTGTCGGCAGTTTCTT -CTCACAAGGTTTTCGCTATAGATGAATATCTGGTATAGGGGTGAAGAATC -TGTAATTATTAAACGCCTCAAGCTTATAGCCGTGACTGACAGTTATAGCC -CCCGGCTTTGCTGGTTCTACCCTATACCACACAAAACCCAAACCAATAAA -CCCATAATACTATATAATTCGTGTTGTCTTATTAGAGCGTAACTTGATCA -GGGAAAACGAATTCTCGGGGAGCGAAGCGATCCGAGAATTGTATGTTTTC -CCGAGAAAGTGAAGCGACAGCTTAAAGGCGCATCGCCTTTAGTGAGAGGC -AGGTCTCGACGCGACGACATCTTTCCTCGCGCGCAGCGGCGAGATTTCGT -CATTCTACGTGTTGGTTTCCCCCCTCCCGCCCCACACACATATTATTCCA -AAGTGCGAGACACATATGCTATGATTTCCCTTCCGGAGAAAAATCGAATT -ATTATGAAAATATTAAGTTTAAACCGTAAGTCGTTTATTTTCAGGAGGTG -AGTTTTATTTTTCCTTCATTGTCGCCTGAGTGGGCAGTCGGTGTCTATCT -GCAACATTCGCAGCTCGACCCTTGTGCTTGTTTTGGCGGTAGCAGGAAAC -TTATGGGTTTTTTCACAGTTTCGGGAGAGATATTTACAGGCTCTGGTTCA -GGGAACCAGATTCAGAGTTTAATAATGATATATCTTTACAGGAAAATTGT -GGTTAGAGTTTCATGGCAGCTTCAGATCCCCTGATGATCAACAGTTCAAT -CCACGGAAACACGGACGAAATGAGTGGTCCACCGAGCAACAATGTGGAAC -GAGACGATTCCAGGTTTTCCATGCCCCCTAACATCGATGATGGTCTTATG -GTAAAGTTCTTCCAATCAAGCGGTGTTCGTGTTTTGGATAAACTTCTTCG -ATAAGTAATACTTGACTAAAAAATATCGAGAATTAAAGTCACAATTAAAA -TTTACAAAATATTTTGTTCCAGATTATGAATTTTCGAAGATTAGACTATT -CACGGCCACGTAGCGTTTGACATGTTGTGGGACTGAATTTCTACAAAAAC -GTGAACTCACGTAGACTGTCTCTTGAATAATTTGAATGAAACAGATGTGA -GCTCCGGAATAGGCTTAGGCTTAGGCTTAGGCGGGGCTGGGAGGAGAAAA -AAATTGCGGAATTTGCCGTTTGAAGAGCTCGGCGAGTTTGCCGAGTTTGG -CAAATTTTAAATTTTGCCGTACACACTACAAATTGGACAAAAAATCGAAA -TATCAAAAATAACAAATTGTTCTGAGTTTGATCAGTTCGGTAAGAAAATT -TTGAAAAAAGTGATTTGCAGAATTTGCCAAGCTCGCCTTTGTCTTTGGTC -AATTTAGCACCATATGAGTGATTATTATCAATTTTCCCACTGTCGCTACT -TCACATTTAAAAAGTAGTCATCAATTGCCGAAACAACTTCCTTCCAGCTT -AAACTTTTTTCTTAGCCTCATCGGGACCCTTTCCTAATCCCTTCTTAACC -TCATTCTTCCCATCTTCCAAAATTTCCATCCTTCTTCTTCTTCTTCTTCC -CACTACGACCATCTTTGTCGTATAGCACCTTTCTCGCGAGAGTGTGTGGA -AACAATTTGCGAAAAACGGCTCCCGATCCCCCCATTCGTTTTGGCGAAAT -CAATAGACACAAAAATGTTCAAACAAATCTCCCCTTCTCGTTTATCCCCC -TGTTGCACAATATCCTTTTCTCACAAAAAAACCTTTGCTCTTCAATTTTC -GGAATCATCTTTTTGCGCTTTGTCGTGTTACTGTGAAAGGCGGAGTACTG -AAATATGGAAAATATTTTTAAATGACTCCCTGATTCCGAATATCTATGTG -AGAAAGTTCAAAAAATTTTCCCTCATTTTATATTTCAGCTTGAAATCGTG -ACTTTCATTGTGCACTAATGAGATTTCGATTTCGAAGTTTTTTTGAAATG -TGTTTTCAAGGTCAATTTTCAAGGTCAATTTATTATTTTACTATCGAAAA -ACTAAAAAAATTTCAATGAGTAAAGTAAGTAAGTAAGCATTTCGTAAATA -TACAAAAATCTCGTAAATCGACACATAGCGTCTCTGGCGCGAAAATTCGA -AATCTCATGGGTGCACAAATGAAATGCGAGATTTCAAACTCAAATGTAAA -ATAAGGGAAATTTTTTTGAATTTTGTCACATAGATATTCGGAATCAGGGG -CAAATTTGAAGTCAATTAAAAATATTTTTCAGATTTCGTGGTACTCTAGT -CTAAAACTAAAACTAAAACTAAACTAAAGTTAAATTAATATTAAATTACC -ATGAATCTAATTTTTGTTTTTTAAAGTTTCCTGCAAAAATTCCAAGATCT -CAGTTTGCCGAAGTCTAAATAACGACAACTCTGAACTTTTGTCCCGAAAG -AAATCGAACACCGGTGTATACTAATAAGATCCCTCGAAGCTCGGTATACA -AAAGGATCATGAAAAAGGGGTGTCTCACCTTGCGCATAATACCTTCTGTC -TTTCCCCCTTCACCAGAAAGATTTCCTTCTTATATTTGTTCGTTTCGTTC -CTGCACACTCTCCATCTCTTCTAACCCCCTCCTCATTCAGAATACTCTCT -CATCTCACAACGCTTCTGTCTACCTGCCTGCGTCTCCTCGGTACCATATA -CTATCTTGTAGCTGCCACTTACCAACAGACTTGCCTCTTGGAGGTCTCTC -TCTCTTTTCCACCAAATCACCTTGTTCTTCCGACTTGTTCTCTCTTATCG -AACTGACTTTTCGTGTCTGCGGGCCTTTCACATTATTTTCCAATTTTATT -CGAATTTTATGTGCCCACTGCTTGCTAGGTTTATTGAGTGCCGCATTAAT -TTTATTGATTAAAAAAAAAGCCACTTGTAACAATTTTTATGAAATTTGTT -TGCATATTTATTTAACAGTAGCGAAATTGTTTTAAAATTCGTACTGTGTG -AGAAATTTGCACTTTCGAAGTGTTTAAAACATTCTATTACGGGATCACAA -GATTATGAGAATGCTTATTGCGCAACATTTTTGACGCGCAAAATATCTAG -TAGCGAAAACTACAGTAATTCTTCAAATGACTACTGTAGCGCTTGTGTCG -ATACTGGCTCGATTTTTTAAATGATTTTTTTTCGAATAGTGACGTCGATA -TTCCATTTTGCTTTCTTTTTCGTATTATAATTTTATTCATTTCGAGAATC -GAGCCCATAAATCGACACAAACACTACAGTAGTCATTTAAAGAATTACTG -TTATTTTCGCTACGAGATATTTAGCGCGTCAAGATTTTTCCTTACGGAAA -TACAAACTTCTTGGCGAAAATTTCACGAAAATTCAAATTTCCCGCTTAGA -ATTTCCCGAATTTTTCGAATTTCCTGCCAAATAAAAACTAGTTTAAATAT -TTAAAAAAAAGCTTAGAATTCTTAGAATGCGTATTGCGCAGCATATTTGA -CGCCCAAAGTATCTCATAGCGAAAACACAGTAATTCTTGAAATGACTACT -GTAGCGCTTTTGTCGATTTACGGGCTCGATTTTTGAAATAAATTTTTTAA -AATCTTTTCGAATCAAGCCCGTGAATCGACACAAGCTCTACAGTAGTTAT -TCAAAAAGTAGTTTTGGCTTCGATCGAGATATTTTGTGTGTCAAATATAT -TCCCGTAAAACAAAATACCGTCTAAAGATATAAAATTTAACGCCTATTAC -ACCCCAAAACCCGCCGGAAAATCCAGAAAAATTATATAAATTCGCAGTCA -CTTCTCAAAAATAACCTGAATAGTTGACCGCGTAATTCGACCCGTTTCCC -TACGACTGACCACACCCCGATTCTCTCGAATTACCCGCGACAAGCTTAAG -CATCTTTCTTCATTCCCACACTTTTCGTAAACTTCTGAGAGACAAAACAA -TAATATTTCTTTCTCAAATCAATAATGCCTATATTCTCCGCATCCCGTAG -CCGATCCCATCACCGTAATTCTAGAAATCCCACGAAATTTTCCAATTTCT -CTATTGAAAAGGTCTCTCTTTTATATTACCCAGGCGCAAAATTTCGTGCA -AAAATACAATCGACGGTCTCGACGCGATAATTTTTGCTAAATTCCAAAAA -TGTGTGCGCCTTTAAAGATTATTGTAAATAGCTTCAAACTTTCACCGATA -TTTTTAAAAATTGATTTTTCTATGTTTTCCGTTTAATATATATTTATTTA -TTTAAAAATTAAGTTGAAATTGAGAAATCGATGAAAATCGAAAATTACAT -TACTCTTTAAAGGCGTACATGTCGTTTCGAGACCGGGTACAGTATTTTCG -ACTGCGATTTTGGTTTTTAAAAAAACCTAACCAATAGAATTTCCAGCGCT -CACACTCATTGGGTGGAAGCAGCAGCAGTCCGACGAGCTCTTTTTCGTCA -AACGACGAATTCGACGATCGTCAGAACAAAAAGTGAGTCATCAGTTTTGT -TTGAACAGCAGGTGTGAAATTTATTGTGAAATTTAAAATGGGAAATCCGA -AAAAACACACCTTGTGTGATCTAAGATCCAAAAAAAATAGAACAATCGAT -AATTTTCGGGTAATTTTAAAGTTATTTTTAGCGAAATAAACAATGCATTT -TTGAGGGATTGGTTTTCAGTCATTTTCGATTAAAAAATTCAATGTTGAGC -TGAAAATATCGATTTTTACCAGAAAATTGATAATTTTCGAGCTCAATACC -ACAATTTTAATGTTTAAATCGCTTTGAAACCTCATAAAATCTCCCGCACC -TCCAGTTTTTGTAGTTTTCCGCCTAAAATGTCGGAAATTCAACAGAATAC -TCATTTTCCTAGCGAAATCTATTAGTTTATAATAAATTTGATCGTTTTCT -GCTTAAAATTCCCTGAAACTTCTGAAAAAAAACCGATTAATCAGCTGAAA -TTCGCTTAAAACTAATTTCGTGCCGGGACCACGGCCTTTTAAATCGGTAT -GCGCTTTTAGTTTTGTACCGTATCTATTTTAGTTTTTAAAGTAAAAAATG -AAATTTTCAGCAAGTTTTGGCGTCAAAGAAATGTATCGAACGCAGAAATT -GAACGAATAATCGAGGATTTCATAGCGAATGGTATTTTAAGTGAGTTTTA -TTCGATAAAATCGACGAAAAACCAGAAATAAACAGTTAATTTCCAGAAAT -GAGCAACGGGAACAGCTACAATCACCATCACCAATTCCCGATGAGCATTC -CAATATCGTGCTCGTCACACTCAATTCAATCACAATCACGAATGAACACT -CTGAACGCGAATAGGGATCTCCTGTCTCCCGGCAACGACGTAATTGTCAC -CAGAACCGTGTCACCGTCGTTTTATTCGCATGGAATGCCGGCCCGGGATA -ATGTTTTTCGAAAAGACGATCATGTCAGGATATTGGGGAATACAACGGTA -TGAAAATCTGCTTTTCATCGAAAAAAATTGGAATTTTCAGGACCCAGCGT -GGTATCGAGCCCGTAATGCGAATCAGGAGGAGGGTCTGGTTCATGCAGAT -TGTGTAGTGAGAATAAAGTTGGTTTTTCTGATCAATTTCTGTGAATAACC -CCGATTCCCATGAAAATAGGATTTTCAGCAGAAACTCCAGGCAAATTGAG -TTTTTGATGCGAATAATGGATTAAAAAAGATAAAAATCCATGAAAATTTA -ATTTTTTACATCAAAAATCCATAAAAATCGGATTTTTGAGCGGATTAGAT -TACTTTGCCGAAAATTCATTTAGAAAAAAACAATTCTTGCGCGCAATTGC -GCAAAAAATTCAGAAAAATGAAACATAAAAGTTAAAAAAATTATTTTTAA -ATATTTTTGAGCTGAAAATAAAAGAAAATTCGGATTTTGTGGCCAAAAAT -TCAAGAATATTCCATGAAAATTAGTTTTTGTTTGCAAAAATCCGAACAAA -AATTAATTCTTTTTTTCGCTAAAAATTGAGAAAATGGTTTTAACACAAAA -ATCCACAAAAAATTGATTTTTAGGCCACAAAATCTATGAAAATTCTGATT -TTCTGGAAAAAAATTAAGAAAATTCAAATTTTTTGTTCAAAAACTTTTTT -CAAAAGCATTTCAAGAAAATTTGATTTTTCATCAAAAAAATTAATAAATT -TTAGCGGGCAAGCCTACGACAATGGAATTGTAAGAATGAGAGCTAGCGGA -TGTGACGTGGCTCCGGGAGCAGCTTCAACAACCTCCAGCACATCATCACA -TCATTCAACTGCAGCAAACCATCAGCCATGGTTTCATTCAATGATTAGCA -GAGAAAATACTGAAAAGTAATATTGAAAATGTTGGAAAAATCTGGAAAAA -TGCGTCATTATCTCGGTTTTCAGTCGGTTTCCAGTTTTATGAAAAAAACG -TCACTAAAAACGACATATTTCTTTAAAAACGTAAACATCGGAAATTGTTT -GCATGAAAAATGTCGCGATTTTCTAGAAAATTTTAAAATTTAAAGAAAAA -TGTTGAAAATAGATTTTTTCTGAATTTTTTGAATTTTATTAGAAAATAGA -GAAAACATCATGTTTTTCAACGTTTTTCGCCTGAAACGCTGGAAAATGCA -GAAAATGGTTTTTTTAGTGGAAAATAAAAATATTTTTTAAAAAAACGAGA -ATTTTTTTTTCGTCGAAAGTTCCAACAAAAATTACATGTTTTACAAAACA -TGTAATTTTTGTTGGAACGTCTTTTTTTTCTGAATTTTTCTTTGATTTTG -TTAACTTTCTGAATTTCAATTCAAATCGGCAAAATTGTACGCGTCTTTTG -AATGTTCCCACATCTATTTTGTAACGAATACGGGAAAAAATATTTCAAAA -AGGCACATTTTTCAAGTGTTTCCGCCTTATAAAAAATTGCCACTTCCGGC -AAATTGATATCCGACATACGGCAAATCGGCGAACTGACAAATTGCCGGAA -TCGAAAGATTCCGGCAAACCGACAACCCTCCGATTTGCCGGTGTCAGAAA -ATTGAAAAGTGTAGAAAAATGACGTCACAACTAAATTATAATACATGTCA -TTTCTTAATGTATTTTAATACAGTTTTGACGTCATTTTTCTCCACTTTTC -ATTTTTCCGGCACTACTTGAATAACCCTGTATACCACTTTTAAAAATCAT -GTTTTACAAATTTGTAAACTCCAGATTACTCCGCGGCAAACCGGACGGAA -CCTTCCTAGTACGTGAATCCACAAATTTCCCCGGCGACTTCACACTATGT -ATGTCGTTTCACGGAAAAGTCGAACACTATCGCATCGAACAGACGTCCGG -CGGACAGCTGACCTGTGACAAGGAAGAATACTTTTCCAATTTGACACAGT -TGGTCTCGGTGAGTCATTTCGGGGCTGTAGAGACAGGAAAAGGGGGAGGA -ATGGGTAATGAACCGGTATTCGTTAGAATGAGACAGGTGAAGATAACAGT -TATGATTTTATATTGTGAAGAGTTGTATTATAAAAAAGGTTGGTAGAGAT -TTGAATATTTGGGAGAAAGAGAAAATGAGGGGAAAATTGTTAAAATTCGG -ATTTAAGTTTGAAAAGTCACAAAAATGTTATATAAATATTTATATTTATT -GGATATAACTAATTAAGATTTTATATAGCAATACTTTAAATAATATGAAT -ATTGTTAAATATTGATATAATATCATATCAATCTTCATTTAATGGCTAAT -TGTAATTTCCAATTTTCCAGCACTACAAACGTGACGCGGACGGTCTCTGC -CATCGCCTGGTAACTCCGATTATTTGTGAAACAGCGACATTTTCATCAAA -CGGATCATCGTCATTTGGTTCATCGTCGACAGTTGATTTGGAAGATCGAA -CATCAGTATTTCGACACGCGGGTCTAGTTATTTCATCGAACGATATTGAT -GTTGGTGATACAATTGGACACGGAGAATTTGGAGATGTTCGATTGGGAAC -TTATAAGAATCGAAAAGTCGCGTTAAAAGTGTCGAAAAGGCATGGAAATG -GAATGTTGGACTCATTGCTGGATGAAGCCAAGTTTATGGTGTAAGTTATC -AAATTATTGAGAAGAAAATAATTTTGGCAAAGCCCAAAACAATGCGTGTT -GAACAAAGTCATATTAAAAATATATTTATGTTTCAAAAATGTTATAATTC -AATTTATTTTTAATTTCGAAAATCTATAATAACAACTTTTCCAAGTTTTT -AGTTATGAGTACCCCGAAATCTGAAAAATATTTTCAATTGACTCCAAATT -TGCCCCTGATTCCGAAAATCTAAGTGAAAAATTCGAAACCTGATGGGCGC -ACAAATTATTTGTACAATTTAAACACTTTTTAATTAAGATTAAAAATTTC -CCCAATTTTTTTGAAAATATTCATTAATTTCTATTTTATGTTAATAATTG -TTTCAGTTTATAACGCTTAGTTTCAAAATTTTCAATTTTCCTGATTGATG -ACTGATAACTAATGGCAGCAAATAAATCTGAAAAATTCCGAATTTTGCAG -AGGTCTCTCGCATCCAAATCTAGTGACACTTGTCGGTGTTGTACTGGATG -ATGTGAATGTCTACATGATAACTGAATATATGGCAAATGGTAATTTAATC -GATTTACTCCGATCTCGAGGAAGGCATGCGTTGGAGAGGAGGCAGTTGAT -GATGTTTGCGATGTAAGAAAAAGTTGACAAATAAAAAAATTGGAATTTAA -CATTCAAATTAGATTGTTCAAAAATTGTTGACATTTCTGCATTTTTATAA -CCGAAAAATCGAAATTTCATTTTTTCCGCCTGAGTAATAGTAACTCACCA -CGAAAAGGGTTACTGTAGCAGTGCTTTTAGCTGTCTCTGGTTTAGAAATT -TACGATTTGCCGGTCTGTCTGAAACCCGATTTTTTCTAGATTTTAAACAA -TTTTCTAGTATCCTGTTGAATTAATTCCAAAAACATTTTTTGCTAAATTT -TTGTTCTCCGTTTGTCAAAAAGCCGACTTTTTAAAAACACTGCAAAATTT -CTCTCTAAGTTTTTTAAAAAATGTTTGCCCTTGAAATCAATGCAGTTTTT -TTTTTAAATTTTATTTTGGAGTTTTTTCGAACAAAAATTTATTTCTTCGT -CTATTCGTACCGAAACACCAAAAAATCCACTTTTTTTCGAAATTTTTTTT -TTCAAACAACAACCCTGATTTCAAGGGTAAACATTTTTTAAAAAATTTGA -AAAAAATATTGTAAAATCGGTTTTAGTTTTTAAAAAAAGTCGTTTAAATT -TGTTGCACAATTAAAAAAAAATTTAGAGAAAAATCTTGCAATGCTTCAGG -CACACAGCTGAAAATGCTAATACAGTACTGCTTTTCGTGGTTGGACCCAG -CCGTGGTTACTGTACCTCCGGCAAAGTGGAAAATTCGATTTTTTTTTGTT -AGAAAATTTGAAAATGTCAAAGATCTGATTTGAATGTTTCAATTTTTTGT -GACAGCTGTTCTTGAAATCCAAATTTTCAACTTTTTTTCCATTTTCAGGG -ATATTTGCCAAGGAATGTGTTATCTGGAATCAAAACAGATTGTTCATCGA -GACTTGGCCGCTCGAAATGTCCTACTCGACGATGATTTAGTAGCGAAAGT -TTCGGATTTTGGATTAGCGAAAAAAGCAAACAGCCAGTCACATGATTCGG -CTTCTGGCAAATTTCCGATTAAATGGACGGCACCTGAAGCGCTTAGACAT -AGTGTAAGTTTGGTTGAAAAATTGAAAAAAATTGAGAAATTTTTACAGAA -TTTATTCTTTCAAAATTAATTTCATAAAAAGAAACAAAATCATTTCAATT -TAAATTGGAATTTCGTATTCTTAAATTTTTAATTTAAAAAAATCGATATT -TTTTAAATTTAACAAAATTTGAAAAAAGAAATCCGAAAATCCGCCGGAAA -ATGCCTCAAAAATCTGCACTTTTTTTGAATTTTTGCCCAAATTTCTAGAA -TTTTCCCTTACTTCATTTTCTTTCATAGCTTGAATATCAAAAATGGGAAA -ATCTTGAAAAAAAATCCCAAAAAAATAAAAAACGAAAAAATCGATTTTCA -AAAGTTTATTTTTTAAAAATTTTTGTGATTTTTTTCTGATAAAAATAGTT -TGAAACTAGAATTTTTAGAAAATATCCAAATTTTCTAATAGTTCGCTGAA -AAATGACTCAAAAATCACCAAAAAATATTGAATTTTCGCATAAATTTTTC -AAAAATGGAATTTTTTTCATTAAAAATTAAGAATTTTTGCAATTTTCCCA -AATTTTTTTTAGCAATTCACCACAAAATCCGATGTTTGGTCATTCGGCAT -TCTTCTTTGGGAAATTTTTTCATTCGGACGAGTACCGTACCCAAGAATTG -TGAGTTTTCAGACAACATTTTTTTAATTAAAAAAATTTCTCGTGTTTTTT -CATATTATTCCTCGCTAGCTGTTGTTTTTATTTCTTGGTTGGGATCATTT -CTTTTAAGGCTCCACGGAAAGGGAATCTGCGCGAGAATGAGATCTACGAA -AATGAGCGACGATGCTAGGATGAAACGCGCGTTGTTTAGCATGTTTTTGA -GACTTTTCAAAAATAGAGTTTTTAACCTTTTTCGTAGATCCTCTTCTCGT -AGATTCCTTTTTCGTGGGTCCTCTTCCTATATTTTCGGCTTGGCCGAGTT -TTCTCCCGGCCACGATCATCACTATTTTATTGATTTTTGTCATGATTTTC -AGGGAGCCGATGGTCGTTCGGTATGTGTATATTGCATTTTTTCGTTAGGT -TCTATTTTTTTCAAATTCTATCCACTTCTATTATACAATACATCTCACTA -TCTTTTCCCCTGCCTGAAATTTTTGAAAAAAAATGAAGAAATTTTAATTT -TAAACTTTTTCCAAAATTTTCCAAAAAAAAAAGTTTTTTATCAATTTTTT -CAATAGCTCGAATTCTGAAAATGAAAAATGATGATAGAAATTGTTTTAAA -AAAATGATTTTTTTTGTTGCAAAATTTAATTTTTAAATCGAAATACAACG -TTTTTTTCAAAAAAAAAACACCTTATTCGAGACAAAAATAAGTTTCTTTT -TTTTTCAAAATTGAACATTTGGATTTTCTGGAAAATTGAATAATTAAAAA -AGATTAAATGTTCGAAAAAAAGAGAAATATATATTTATTGGCTTATTTGG -AAAAATCAAAAAATAGTAAGAAAAAAATCAAAATTGTTCGATTTTTTATT -TTTGTTTTGTTTCCGAAGATGTCCTTGTGGTATATAGTATTTTGGGTCCC -ACCACGAAAATCGCCGTGCGCCTTTAAATTCGGCCGACCACGTCTCGCCT -AAGTCCAGTCCCCCACTAATGTCAAAAAAAATTTTTTTTCGCAAAACCTG -AATTTTGAAATCTTTTTTCCAAAAAAAAAAACGTTTTTTATTTAATTTTA -AAAGAAAAAATTGGAAAAAAGTATTATTTTTTCTAATTTTGAACTTTTTA -AAAAAATTATTACACATTATCTGGATTTTCAAAATTTTCCATATTCGATG -TTAAAAATTATAAACATTTTTCAGAAAGGAACACCGAAATTTTTTTTAGA -AAAAAGTCAAATTTGGAGCGAAAATTATGTTTTTCAACAATTTTTCAACA -ATAATTTTGTTCAATTTTTTTTTTGGATCCAAAAAAATCTGTGTGTTTTT -GTGTGATTTCCGGCACCCAACTCCCCAGAATTTCCCTCAAAAACTCTATT -TTTTTCTCTGCTACCTCTTCTCAATCTTCTAATTAATTCTATGTTTTTTC -ACTATTTTTTATTATTTTTTCACCCCTTTCAGAGCTCATTTAGAGCCCAA -AAATAACCATCAGAAACACAAAAAAAACAACTTTTTTTTTCTTTTTGAAT -TAATTTTTTCAGCCTATCCAAGACGTTGTGAGATATATTGAGAAGGGATA -TCGAATGGAAGCACCTGAAGGATGTCCACCGGAAATTTTCAAGGTTATGA -ATGAAACATGGGCTCTATCGGCACAAGATCGACCGTCTTTTGGACAGGTA -GATTTTTTAAGGGAAATTTTTTAGAATTTTAAGACGAAAATCTGAAAAAA -AAACCTACAATTATGGCAATTTTTGTGATGAAAATCTACAAAATTGAATT -TTTTTTCGAAAACCTGATAGAAAAAAGAATAAAAATTAATTTGAAAAATG -CCGTAAATTGACCAAAAATATGGAATTTTTACCAAAATTTCAGGGGTTTT -TCAGATTTTACCAGAGTTTCTGCCTTATAAATTAAAAATTTCAAAGAGAA -ATATCTTTTTAAAATCAGCATTTTTAGCAATTTTTGTGATGAAAATTGTT -TAAAAATTGCCAAAAATGGGAATGTTTGAAGAAAATTCAGAAAAATCTAA -ATTTTGGGCAATTTTTGCAATAAAATTGAAAGATTCGGAAAATAATAAAT -TTTTCGAAATCCTGAAAAAATTTCACAATTTTTGCGAAAAGAATTGTAGA -AAATTCGAAATTTTATTATTAAAAATATTGAAAAAAACAAAAAATTTCAA -AAATCCGCCGAAAATGGCTTAAAAATCTAAAAGAAAAGATTTTTTGCATT -AAATTTTATTGCATTAGTATTTGCGAAAAACAAACCCGAAAATTCACTCT -AAAATTACAAAAATTTCAATTTTCTGAAGCTGCGTCCACAAAATGGCTTT -AAAAATCATTTTCATGTACAATGTCAAAATTTTAAAAAAAGTGAAATTTT -GTTCAGAAGTTACTATAATAAAGGTTTTTTGCTTTCCGGTCATTTTTTTG -AATTTTGGAACATTAACCGAAAAAAAAATTCCGCATTTTTACCCTGAAAA -ATGCGAAAATGTTTGAATTTTTTGAAAATTCCACTTAAATTTTTTATATT -TTCAGGTCTTGCAACGATTGACAACCATCCGAAATACAGTATGACATCGG -CGCACATCTCGAAACTTCCAGAAATCCATCGAATTTTCTAGTCCATATGA -TGTTTCTGTTTTTTTTTCGCTGTTTTTTACACAAATTTTGTCATATTTTA -TTGTAATTTCCCCCACACATTTTTAGGCATCGTTATTATATATTTTCTAA -TCCGCTGCCGCGCATTTCGGGAGATCCTGGAATTTAAAGGCACAGCGGTG -TTTTTGGATGGGTCCCACCGCGAAAATTATTATGCGCCTTTGAAATTTTT -TTTTCGATATTCCTAAAAATCACAAAAAACATTTTTTTTTCTAAATTAGA -GAAGTTTTAGCCTTTCTTTCGAAAAGTCGATTTTTTTGGTTTAAATTTTT -CTCGATTTGAAAAAAATTTCAATTTTTAGTGAAATCAAAGAAAAAACATC -AAGAAACTTCTATTCGAAAGAATTTTTTAAAATTGTATTTTCCGAAATAA -TTTTCTCTGTTGGGTCTCACCACGAAAATCGTCATGCACCTTTAAATTTC -CTTGCCCACACCTCTCCGAACGGCCGATACCCAATCTACGGTTTCTTCAA -TTTTCCTCTGCATTTTTCATCGATTTTTAAAAATTTTTATCGAATATTTT -CACGTTTAAAATTATTAATTTGCAACGAATTTCCCTCAACAAAAAATGCT -CAAAACTCCGCCCCTTTATTGGCATAATTTTTGCCGCCACGGAAAATGCA -ATAAATTTTATATTACTTTTCACCGATTTTTTAAGATTATTTTTAGAACT -TTTAGTTTTTGTATGTGTGTGTGCTCGTAGTTTATCGGCAAGAAATTATT -GTTTTTTTTTCTTAATTTTTAATAAGGGAACATTTTTTAAAGAGATTTTC -AGAAAATCGGTAAAGATTTAAGATGCTCTGAATATGTCCAACTTCACAAG -CTTCGTAGATTACGCGGAAAAGGTGATTTTGAATGTTGAATGTGCAAGTG -CGCCCTATGGATAAATGGAGCAGCGTGGCAATTCGAAAAAATTTAAATAA -AAACGTATTACTCGAAAGTTCACAGAGTTTTTCACCAAAAAATTGAAAAT -TCGCTGAAAAAGTCGCGGGACATTCCATTTTTATTTTTCGGGAAGAAATT -CGAGAATTGACTGAAAAAAGCGCGTCTTTATTCCAGAAATTTTAGCGGAA -AATTCCAGATTTTTTTATTTAAAAAGACTCAAAACATGAAAAAAATATTC -TGGAGAAATCAAAAATTGATTGAAAAGTTTCAGTTTTAGGCTAAAATTTT -TTTGCGAAAAATTCATTTAGTTTTTGTTGGTAAAGTTCCGATTTTTCTGC -AAAATTTGAATTTCTTTCTGAAAAAGTGCGTTTTTTTTTTCAAAAAATTC -TTAAAATCGGAAATTTTTCGCCCCGAAACTGAACCGAAAAATTCGAAAAA -TGAAGCGCGGTCAATTTTTGAATTTTGGCATTGAAAATATTCTGAAAAAT -TCAAAAATTGACGGAAAAGCTCAAAGTTTTTCACAATATAATCGATATTT -TCTCATTTTTCAATGTAAAAATCGATAGTTTCAGCCGCACGTCGCAGCAA -CAAGCCAGACACCAATACCGCCGTCACCGTTGAACGAAAAACGGCCAATT -CCACTGTTTCCAAGTGAATTTATCGATTTTTCTGTAGAAAAATCTGAAAA -TTTCTGAATTTTCAGACGAAATCAGCAGCTCTTCGTGCGATGACGTCTCG -TTTTCCATGCAATTCGGAGAATCTGAGCAGGGACATGTTATATGTACAAA -AGTTCGACTTCGATTCTATCCTGCCGTGGTGAAAGAGGTTCGAAATTCAA -AAAAAAAAGAAAACAATATTACTATACATTCGTAAAAATTAAATTTCAGT -TTAAAGGCGCATCTCACATTTAAATATGCATTATTATTCATTAGTGTCGA -CCCAGATTGAAAGCGCATGCAAATTTTGAACTTTAAAACTGGAAAAAAAA -TTTTATTACACATTCGTGTAACATGAATATTCAGTTTAAAGGCGCGTGCT -AGTTTTAAACTTCAAAAATTAAAAAAATATATATATATTCGTGAAAAAAT -GTTCTTTTTAAAAGCTCTTTAAAAGTTTAAAAATGATTATTATACGTTTC -TCAAAATTTTCAAAAATCAGGTCAAATGCACTTAGAATATTGGAAAATAT -GAAGAAAAATCTTTATACATTCCTGAAAAAATACGCATGGTCCAAAAGTC -GACAAATCGTGGCCCAATATTTTCTATTTTTTCAGAGAAATCTTCCGCAA -AGGTCGAAATTTTTCGACGATTTCTACGATGTTCCGCTCACTGCGATCGC -CAGAATTGAGGTGGCCATTGTGAAAGGTGAAAAATATTTTTACTTCAAAA -AATTATTATATTAAATTTACACATACACATTCGTGAAAAAATTTTGCCGG -TAAAAATAATGAAAAATATATACAGAAAAATACGGAAAATTTGGATGAAA -AATATTTTTTGGTGACAATTAGAATATTACCCGCAAACAAAATTCAAATG -AATTTTTTCAGTTTTTGAAAATCTAAACAAATTTCAAAATGTTATTATAG -ATTCGTGAAAAATTAAAACTCAGTTTAAAGGCGCATTTCATATTCAAATG -AGAATTATTAAACATCTTAAAGACATAAACAAAAAAAATGAAATCTGAAG -AAGAAAAATTATACATTCGTGAAAGTTGGGAACAAAATTTTGTAATTTGA -GTGCTTGACATCAGTTTAATAAAAAATTTTGAAACCAAGAATTTTCGAAA -AAAAATCACGTATACCTAAAAACTTGTAGTTTTTTAAAGTTAGTAAACTA -TTTTCTCTCAAAAATTCAAAAATATTCCAGGTAACAGTAAAGGAAAAGCG -GACAAATTTCAACGCCTCGAGACAAGCCTATCAACAATGGAAACAGTATC -AATAATTCGTCTAATATTAAAAGATGTCAGAGTTGTTACAATTGACTTGA -GAAGATCTCAAAATGCAAATATATTGGCTAATCAAATACTCTACTTCTCG -AAAAGTGGACCAATCGAAAAAATGACTCAAGTTGGAGCTGCTATGGAGGA -GCGCGGTGTGAAGGCGAAAAGTAGGCATTGGATAATTAGTATTGGGGGTT -GGGAGGGGAGGGAGGAAAGTTCGAGAAAATCGGAATATCTTATAAATATT -AGGCCGTTTGATTAATAAATCGACACATCAAGTAAATAAATTTTGAAACA -AATTAAAAATTTTAAACGTTTCGATTGATATATGTGTATCAATTTTTTAA -AAGATGTATATTAGTAACAAACAAGAAATTTTTTATTCAATAAAAATATA -CTACGGGAGCACTAAATTTTTAGAATGCGTATTGCACAACATATTGGACC -AGATATCTCGTAGCGAAAACTACAGTAATTCTTTAAATGACTGGTGTCGA -TTTACGGGCTCTTTTTTCATTTCTCCGTATTATTTTCTCTTTTTTGCTTA -ATTTTAATATTCTATCTATAACTAAAAAATTAATTCATTTCGAAAATCTA -GCCCGTAAATCGACACAAGCGCTACAGTAGTCATTTAAAGGATTACTGTA -ATTTCGCTACGCGATACTTTGTGCGTCAAATATATTGTGCATTACGCATT -TTCAGAATTTTGTATTCTCGTAAAATTTTCGAAAAAGTAAATCTTTTAAA -AAACTTTTTATTAAATGAATAAAAACGCATTTTTTGGAGAATCGGATAAA -AATAATTTATTTAAGTTTTGAAATTTTAATATTTTGAAAAAAAAACATTT -TAATTGGAAAAAAATATGAAACTTTCTTTTGTAAATATGGTTTTTACAAA -ATTCCCGAATGTCCAATATACAAACTTATCATTTTCCAGCAGCATTCAAT -AGCTACGAAGCATGGCGTTCGGAACTCCAAAGGTGCCAGCAGAAGACGGA -TTCAACGTCTGTCTGGAAAATTGTAGCACTTAACAAAGAAGGCTTCAACT -ATGCGGCTCAGGGGTGCGATTTTTGGAAAAAAAAACTGGATTTCCGATTA -AAAATATGTATAGTGTATGTATTTTTCAAATTTCCAGCTACCCTGTGTAC -GTAGTAGTGAGCAACTTCTTGGATCGTGTGGACATTGAACGACAACTACA -ACACTACAAACAAGGACGATTTCCGATTTGGGTGTGGTCTCGGGCGAACG -GACACTCGGCGTTATTCGTTTCGGCGGATCACGAGAACAATATCGCGATG -CCGGCGATTTTGGCGAAGTTAGTACATTATATTTTAAATTTGTAAAATGT -TATTTTCTTCCAGAATGCAAGAAAGTATCACCCGTTGCCATCCGAATAAC -GAGAAGCCGCATGTTATAAAATTGGACGTCGATTTTGTGTCGAATGTTGG -AAAAGCTTTTGATAATCTTCTATCGCTTTGTGCAATTGGTGAGGGAGAGC -ATTTCATATTTAAAAAAAAAATTATTCGCCGTATTTTCAGCTGTTTTATT -TTCCATTATTTTCCATATAATATGCATTTTCCCAGACTCCTACGAGCAAT -ACGTTACACTGCAAAACGGTTGGAATACGAAACTCTCGAGAACCGGATGG -CTTCATCTCGTCAAGCTGTGCCTTCAGACTACCTATCAGACGATTCAATG -GATTGTTGATAGAGATCGATCGGTTATTTTACAGGGTACTATCAATTTAG -GTTTTATTCAGAGAGAGAGAGATAGCAATTTTCAAAATATTTACAAACGA -GTTAGTCATTTACATCCACAATCGACTGATCAGAATCTGATTCGTGGCCG -TTTTCCTCCGCCAGAACTTTAGGAACTTGCACCGAACTACTTGCTGCTTG -ATCCTCCCCCTCCAGAGGATCTTCTCCAGATGGGATACAACTTTTGATGA -AGCTGATCATCGGATCCTCCTCTCCATCATCCGAACTAGTTTGTCTGAGA -AGAATATCAACCAGTGTCTGCATTAAATCACCGGGTTCCGTTCTTGCTCG -TCGAGTACTCAAATTGTGTCGGCACATGAATTTGTCCAACCATCCGCGGG -ATGCCTGAATGATAAAGGTGGAGTAGCGTCGAATAGTTATTTTTTATGTT -TTTCATATACTCGTTTGCATTAAAGTAACGGCTCTCCTACCTTGAAATCC -GAGTTCTGACTGATTTTCTTTGCCGTTTCACCGATGATTCTTCTGGTGAC -TCGTTGTTTCTCCTTACGCTGATCGTGAACCCATTTAATCAATTCCTTAT -CAACGTCGTCATACTTTAAAGGTCTTCCACCTCCCGAAAGTCGCTTTGTT -GCAGTTGAGCCGTTGTCTTCTCTGAAAGTGTTATTTGCCAAAAGGCAGCA -AGTCGAAAATTTTTCAAAAAGAAAATTTGAAATCGAACAGAGAATTTATG -TTATGCCCGTATTTCAAAATATAGGAATAGTTGAAATGACTTCTTTTGAT -AGGATTAATTATAAGCCTAGAAAAAATCATAGTATTTGGAATAAAAGGTC -CATAAAAGGTTCTCAATTGATAGGGCTTGCATGTAGGCGTTAAACCCTGC -CTTTAAGGCGACCTCCGCTTGCCTCTCGGTTACGCCTTACGTTGTGCTAA -AACATAATCAATCTTTTTTTTTTTAATTTCTATTTTGATTTTCATCAAAT -TGAGAGAAATGAGAAAATTAGAAATTTGTAAATTCACATAGGCGGGTTTC -AAGCAGGACCCTGACACCGCGCATGCCTAACATGAAAGTCCTAGCCCTGG -ACTATTTTTTTGAACACAAAAATATGTCCGAAGTGGCAAAACTTACAACT -GCTTCTCGATTTCAGCTTTCTGGGCGATCCACTGTTGAATGTTTTGCCTA -TTCACATTCAAATCCTTTGCTGCTTTCGATATATTCTTATGTTCAAGGGC -ATAATTTATGGCATGCAGTTTGAACTTCAAGTCATACGTTCTTTTTCGAG -TTTTTACAGGCACTTCTGTAGGGATTTCGCTCATTGGTTTTCTCTGAAAA -ATAAGTATATAACAAGCAAAGTCTTAACTAGTCAGCAAGTTATTGGAAAT -AAAACATGTGAGAAAAGCGAACGAAGGGGCAAGACTAATGGAGACAGCAA -ATTGGCACACACGCAGAGAGACATGGCTAATAGAGTGTGCAAGACTATTA -GAGGGTAGAGGCAGTGAGACGAATTTCCGACTGGTCAGAATGTAAAGGGG -GTGCAAGGCTAATAGGAGGAGACAAGACAAATAGAAAAACTACATTATTA -TATGAAAAGAGAGTAAGACTGAATACGTGTATGGGCACCCCACATATTTG -TATGTAAGTAGTTATGTAAATGACTTTTTGGAATTGAAAAGAAAATACCA -AGAAATGGAAAAAACCTCCGGTCAATCGTAAAAAAATTATGAAAGAAGTT -CGATCTACTCGGCTACGATTTACAGTTTCCCTTACTGATTTCTACTAAAA -TGCATTAATCTTGAGTTTATCTCTAACAAATTGATGGTACTTTTGAATGG -TTATAACACCGGATATTTTGCAGAAGACGAAGGATCAGATATGTCGATTA -TTGTGGCCAGCCTCACGCAAATGTGCTGTGATCCATTTTACAGAACAACT -ACGGGTGAGTTTATTAAATGTTTTTTCTGTACTAAAAATGGGGTTTAAAA -AACTAATTTTAATTTAGTTCTCTCCTTGTATTAATTTCCAAAATTTTCCG -AAATTTTTTTTTCAATTTAAAAATCAATTTCAGGTCTTCAACAACTCATC -GAAAAAATGTGGATTGCCCTTGGCCACCCATTTGGTGAACGGCTACTCGG -AAGAACCGACGATGATCCATCGAGACGTGGAAAACCACAGAATAAAATGA -GAACTGACGTCATGCCGACGTGGTTGCTCTTCTTGGATTGTGTTTCACAG -CTACATCGAATATATACATTTGAGTAGGTTTGGTAAAAAAAATGTTTTCC -CCCGCAAAAAAATGTTTTCCTCAAAAAATTTGAATTTCCCACCCAAAATT -TTTCTCAAAAATTTTTTTAAAAATTAATTTTAAAATTGTTTTCTCAAAAA -ATTTGAATCTCCCGGATTTAAAAATTCCAAAAATTCGTCTATCAATAAAT -TTTATATTGTTTTCGAATTTCGAATCATAAAAATTAGTTTCAAGTTAACA -CACCTTTTTTTTCAAATAATTTTTTTAAAAAATAATTTTAAAAACAATTA -ATTTTTTTCCTATTTCCAGATTCACATTCTCTCCACACGTTCTCATTGCA -CTATGGGATCTTTCATTAACTGGAATGGTTCCATCAATGGCTTGTAATAA -TCTGGAAGAGCAATTACTCGCAAAAGTCGGCGGTGGACCATTCCCATTGG -ATCGATATTTTGAGAAAAGCTACTCGAAATTATTTGGAAATATTTGGCAC -GACGCAGTGCTTTTTATGGAATCTATTAAGAAAAGTTGGTGCTTTTTAAG -AAAAAAATTTTATATCGATTGTTCTTTTCTTTTTGATTTCAGCTACTTTT -TCACCTCGGTCAGCAACATTTTTTTGCAACATTTTGGACGTGGCCGCGAA -AAAAAAATTGGTGGCCGAGTTTTCTTTTTTTTCACTGCCATTAATTTCCG -AGAGGAAAATCTAGGAATTAAAATTTTTTCGAAAGTATACAATGTTGACC -GAGAAAAAATCGGTGGCCGAATTTTCTCTTTCTTCTCTGCCACGTTATTT -TAGTAAAAAATTAGAAAAAAAAACACAAAATGTTGTTCAAATTTTGGAAA -AAGTCTGTAAAAACAACAAAAAATTGATGGCCGAGTTTTTTTTCCATTTT -CGCGGCCACGTGACAAGCAGTGATTTCTCAAATGTTTTCAGGAAAAAAAA -ACAGGCGGAATTCAGATAATTCTACGAAAACTATTTTTGTTTCTGGAAAA -AAGTCAAAACTTGAAAATCGGTGGTCGAGTGTTCTCTTTTTTTGCGGCCT -TATCTCGATTTTTCCAGATCAACCAGTGTGTGCTCACTCGAAATTCCTTC -AATGTGAATTTATTCGGCCACCGACGTCGTTTTGCGATATTCAACTGTGG -TCCGAGTGCTATCTTCGATGGATTCCTCCGGCAAACGGGAAAAATTCGGG -AAAACTCGGCGAAGAACTCTCGCTGGACGAGAAAATGATCGAAATGGCCA -AAAAATGGAACAGTTCCGAGTGGAAAATGCATTTGGACCTACCGGAAGAG -GTGACCAAACTTTTCGGATTTATAGGCTCTAAACATATTTTTACTTTCAA -TTCTTAAATTTTTAGTATTCATCTGCATATCCTTACTCGATTCCGGAGAT -TTCCCGCCCAATAATGGATTTAAATGATTTTGATATGATCCGGCCGGATG -ATTTCGACGCAATGTCCATGAATTCATCCATCAACTCATATTCGTTCGTT -AATACGGTAGGGATACTTATTAGCTCGGAAAATAAATTACGACATATTTT -GTCTCGAATTTTTTATAGGTGACTTATAATAGACATTTAGTGTCTAGGCA -CACATAAAAGTTAGATCTTTTTCAGCTATCGTTTCGATACTTTCACACAA -AAGTAGGTTTTTTTTCGCAACTTTGTAAATTGAAAAATCAATAGGTCGGC -AAATAATTGTTGGCGTATTTTGTCAATTCACGATATTTATCAAAAATTTT -ATATGTGACTTCTGGTAGAAATTTATTATGGTTGGCAATAAGTACTGAGT -CAAAATTCATATAACTTGTTTTGTTGCTTATCGATTTTTTTTAATTGCCG -GAGTTCATGTTATTAACTATGGGCTTTCATCTGAAAGTAGTCACAAAACA -TTTTAAAAACTCGAAGTGATCCAAGTCGAAACAACTTTTTCAAGGTTTAC -GCCCTCTTATTTTTTCTCTTATTTTCAGCATTGATATGAGTTTATGTACG -GATCAAGAGTGTCGGTTTTTCGATTTTTGTATAAAATCGAAATTTTTTTT -TTGATTTTTCGATTTTCCCTGAAAAACACACAATTGAAAAATGTCACTCT -TGGTACGGATATTGCTAAATCTATTATACAATGTGAGAATCCAATAAAAG -TTTTATATTTTATTTTTGCAGCCAGTTCGTAACAACACGACAACAGAATC -AATATTCGATCATTCGACACTTGAGAAACGAAATCGTCGAGCAGCTGCCA -CAATTGGCTCCGAATCGCCAGTTATTCAAATGAGACCAAAAGAGCAAATT -GTCGGATATTCGAAATATGCATTTGATGATTCATTATCACCAAGACCACA -TTCCCGAACTGTTGAGACGCCTATTTTAAAGAATGTACGGGATTTTTGGA -AAATTTAAAATTTGGAAAATGAAAAATTCAAACAAAACAATTTTTTCGCT -TTCAAATTTCATAAAAATTTATGTTAAAAATAGTTTTTAATTGAATTTTT -AAAAAATTCTTACTGAAAACTTTCGAAATAATTAAAAAAAAAAACCAAAC -TATATTTGTTTTTTTATTATTGAAAAAGTTAAAAAAAATGTTTTTTTTTG -ATAATTTTACACTGCTCGCCTTCAAAATTTGATGAAAATCTTAATACTAG -ATTTTTTTAATTTTTCATTTAAGACTTTTCGAAAAATTCGAAAGTTCAAA -AAAAAAAATCCAAAAAAAATTTCACTCAAATCAATCGCCTTCAAAATTTG -ATAAAAACTCGATGAAAATTTTGTGGAATTAAAATGTTTAATTTATCATT -CTGAGGCACCACGTTTTCAAGATCTGGTGGGATTCCGGATCTACATTCTT -CATTTCAGCGCAAAATCCCTAAATCCGGAATTCCACCGAATCTTGAAACC -GTGGTGCCTCATCATTCTACCTTTAAAAACTCGAAATTATAAAAAATTCT -GCAAAACTCTAAAAAAATTTGATTTTCGATTTTCGAAAATTTATCTTTTT -TTGTATTTAACATTCAATAAAATATTGATGAAAAAATTTCTAGAATCATA -TTTTTAAATTTTGCTTTACAAAATTTTTTAAAAATCTACAATCGTTCACT -TTCTTGCCTTCAAAATTTGAATGAAGAAAAAATTTCAAAAACTTTAAGAA -TTAAATTTAAAATGTGCTCAAAAAATTCTTTAAAAATATGCGTTTCCCTA -ATAATTTCCATGTTTCAGTCCCCATCGCCCTCCTACACCCCATTTCACCC -GACGCCCGTTCACCGGAGCAACACCGTCCGTGCCGACAATCGCCCAATTC -CCCCGCCCCGGCCGCAGGGCCTAGGAACACTGACCCCATCACGCCCCGAG -ATAAGAGCTCATCGAGATGATATAGAGAGCCCTACTATTCGGGTCACAAG -ATTTTGAAGAAAAAGTTATACTTTTATTTTAATTTCCGCTCAAAATCGGA -ATTTTCTATAAATATGCCCCTTTAAATTGAGCTACAGTAGTCACGTCGAA -AAATTTTCAATTTTTTTGAATTTTTTGAATTTTTTCATCCAGTTATAAAA -AAAAGCTTGCCCCTCAGCTCTACCCCATTTTTCTTTCATTTGTCACCTAC -TTCCTTCATATATGCCCGGTTAATTATGTATTTTTTGATGCTTTTTTAGT -CCCGCCACGGTTTTTTTCATTTCGAAAAGTCGATCGATTATCGATTTTTT -CGAAAATTTGGAAAATTTGGAGAAAATCTAAATATTATCGATTTTAAGCT -AAAATTTTAAGATTTTATTTTTTCAAATAAAATTTTGGAAATGTTTTTTT -GAAAAAAAAAGTGCAAAAAACACTCAAGGGAAAATTTTTAAAAAATTGGA -AAAAATCTTGAAAGTTTGTCGATTTTTCAGTGTGCATTTTGGAGTTATCG -GTTTTCTTTCCGAATTTTCATCAAATTTATTTTTGATCTACCAAAAAATC -TCTAAAACCCCGTGGCGGGAACCTACTTCACTTTTATTCTGCATAATTAG -ACAAAAATGTGATTATTTTCTCATTTCAAAACTTGTTACATATTTTGTGT -TGTGATACATATGTCTAAATTTTTACGGACTGAAAAAATACTTTTTTCTT -AATGTTTTTGAAATTTTCATTATTGGTGGCGTCATCCATGTCTATTTGAT -TTTCCAGACCCCCCCCCCCCCCTCTAAAATGAAAAGAACAAGACGATTGA -CAGCTAGCATGTGCGACGATCAAAGTACCGATTTGATTCAGTTGAAGGGA -CACGAGAACGCGAAAAAGTCGGAAGCCCATCTGAAAGTGCTGGAATACAT -TGGCAAACGCTATGAAATTCGAATGACCGACGGGCGGTACATACGTGGCA -CGATGATCGCCACTGACAAGGACGCTAATATGGTTTTCAACAAGGTAAAA -ATTTGATGAAAATTTGGTCCAAAAGCTCATAGTTTCAAATATTTTTCCTT -AAAATTATGCGCCGCAGGCAAAACAACATTCCGCCTTTTTCTATTGCTGG -CTTAGTTTTCGCAATTTTCTCGGCTACCAGGCTACTGCAAAAATGATCGA -TCCGTGAATTGTGCAAACATCTGAGTTACACAGAGAGTGGGGCGGAGCGG -AACATCGCAACACTGCCGCATGGTTTTTCCACAACTTTTTTTTTCAAGAA -AGTTTCGATTGTACTTGTTTTTTCTCTTTTTTGTATAAAAATGGTATTCA -TTCTAAATAATTCACATATGCTAAATTGCATATAAAAACATGGAATATCC -TCTCAAATTAAGAGTCTTAATCTTATTAGAATTAAATTGGATATCATTTT -CATTCGAAAAGAAAGAGAAAGAAACAAGTAAAATCGAAACTTTTTTGAAA -AAAATGCTTGATTTTATTTCATTTTCGTTGTTTTTTTTTCAGTATTTAAC -TTTTGAACGATCGATTATTTATAAGGTTTGCGGTTAAAAACGATGAATTT -CGTGTTTTTCTTTTCTGGATTCAAATGACAAGTTTTAACCAATTCGAATG -TCAAACACGGAAAAATAAGCGAAAATAACAAAAAATCGTGTATTGTAACC -AAAAAGTTCTCCACGAGTAGTACACTAGAGCCGACGCGCCGCAGGTTTGC -AAAACAACGCCCACCCCGTTTTCTGCGCGGCACTACACAATTTTCTATCT -CACGAATAAATATTTCAGAAAAGGCAGGATTTTGTCTGAAAATCATGAAA -AATCAAGTTTTTTTCAGGTTTCCAACGCTGAAATGGTTGGAATTAGGGTT -TGTTACCAAAAATCGTATAATATTAAAATCCCAGTGCTTCTCTGTCTTTC -AGCAATTTCTTTTAATTTCCAGGCAGACGAGCGATGGGACAAAGATCCAC -AATTGAAAGGAGTCCGATTTCTAGGGCAAGCGATGATCTCGAAAAAGCAC -GTGGAATCGATGCACGCGTTGCCGGACCCTAAAGAAACTGAAATTTGATC -CAGTTTTCTTATTTTCTCTAATTTATCCCATCCTTTTCTTGTCAAGATTA -ATATAAATTAATTTTTATCGAAGCGATTTTTGTTCATCTCATCCAAATAT -GAAAAAACATTCGAAAAAAAATCGCAGGCTTCACTTGGAACCGCGCGCCA -TCAGTTGAAAATGCTGAATATGTACAAAGACTGGAAAATATTAAATTTTT -ATGTTTAAAATTTCACGTTTTTCGTGTTTTCCACAAAAAAGCAATGCATT -GTCGTTTTTCAAAAAACACTCATGGTAAACGAAGTCCCCGTGGAGTACAC -GACAATGTCGCATCGAGACCCAAACTGGGAAACGCCTGCGCCTTTAATTT -TAGGAGTTTAATTTTCGAATTTCGAGTTATTTTTTTCTCAAGTCTTTTTG -CGACTTTTTTTTGAATATTTTATTACTTGTAGCGCTGAAATATGACAGTT -ATTATAGCGTCACACTGGGGACCTCAATCAAAACAGGTATTTTTCAAAAT -TTCGCCGTAAAATCTAATAACCAATTTTGAGATGTTGCCACCCGAGCCCC -CACGGATAATTCTGAGAGAAGTTCCGGTCCAGAATAACCAGAAAGAGCAT -CCACCGGTTCAGGAGATCAAAACCGTGTCCAGCAAGTCGAAGGAACATCG -CGTCAGTTCGAGCCGGAAAATTCCGGATCACTTCGACGTGGGCCCACGGT -TCTACATGAATGTCCCCGCAGATGGCTCAGAAGTGTTCGAGGACGACGAA -AAAGACGTCGAGAACGAGTGTTGGGCGGTGATCGAAAGAATAGGAAGCGA -GGATGACAAGTTCGAGGCCTCTGAGCTTGTCGAGTACCGCGATCACGATT -GGTACATCGCTTTGGCGATTAATAAGGAGAAAACGCCGGATAAGGCGAAT -TATCAAGTAGGAATTACGAAAAAAATTTTGATTTTCAATCTCATTTTTTA -AATTTCAGCACCTACTCTACAGCTATCGAGGCGGAATCCAACGCATAATT -CTCACGCCTCAACAGACGGATTCGATCGACAAAACGCCGCTAGTGAAGTA -CAAAATCATCGGAGACGGTCTGTACGAAGTGCTTCCGATTCACTCGTCCC -TTCCTCAAACTGGTCTAATCAGTCCCAAATATCGTTACAACAAAGGCGTC -GAGCTTCGGATTTTCGGGATAGTGAATTGGATTGATTTTGTGTTGGACGA -CGATCATCAGACGCACAGGACGATGGTTTGGACAGATGCGGTCGGACCGA -TCTATCTGAGTGCCGCGGATCGAGCCAATATTCGACGGAAGCTGCTGCTG -ACCGAGATGCAGATTTTCGCGCCGTTGCGAATGTGCCATATTACTGTCAA -GGCGGAATTTAACTTGTTAGTTAAAAAAAACGCGTAAAAAGAATAATAGT -TCCAAATTTTCAGCTCGATTCCCGATGGTTCCCCGATTCAATGGACCATA -TCATCGTTCCAGCCACTCATCGAAGAATCAGAGAAGGATCCGAATATTGG -GCGCAATTTATGGCCAGCGAGAGTGCTCAGATTCGATGATTTAGTCGTTA -CAAAGAAGGTGCTTAATCATTTTAATATTAAATTTTAACAGCATTTATAA -TTATTTATCTATTTCCAGACACCGAACGGCTACTGGCTGAAGTCTCAAAG -ATTGGAGGGTCACGTTAATGTGTTCGCCGGTGCAAATCAAATCGGAATCA -TTGAGTCGGCGGGTGAAAAATACGCGACGAAGGGAAGCATGATGGCGTTC -GTGGTTCCGTGCTATCAGAACAGCACGTTTGCATATTTCGAAGCACTTAT -CGCCGGACCCCCGCGAGTCGTGATGATTATTACCGAAGGACGCTTTCTGA -ATTATTGCCCGAAGACGTGGCCACCGTCTGTTCGGAAAATGCGTGATCAG -TATCAGAAAGAGCACGTTGTAAGCACAATTTTCCAGAGAAAAAGGCTTTC -GATAAATTTTCTTATTTTCAGCTGAAATCCGAAGTCCGAAGTTCACCAAT -CTGCATGAAACAGCCGGATTATTGCCTCAAATCACTACGAGGATTCAGCG -AGTGCCCATTTTGATCACTCAAAGTTTTATATATTTCTGTATTTCTTCTG -CCTTATTTTAAAAAGTATTTTCCCGTTTTTTTTCTTTTGTTCAATTTTCC -CTTTTTCTTTACTTGTTATGTCCTATGTTTCATGCTAAATTAACGTATAT -TTTTAATTAGCAATTAAAAAACTTTCTGATTAACTGCCAGTTTTTGAGAA -GAACCAGAAGATGGAACGCAGGCGAGTTTCTGAAACGGAAAGGGTTTGAA -ATTTTTATCAATCAAACAAACTCGCAATTTTATCAAAAACCATGCCGTCG -TTGCAAGTTTGAAAAAACCACATATATTTGCAACATTGATAGAATATCAT -TGGATCGTATGGATCCGCCATGGCCAGACCATCATATTGACATGTACCGT -TTAATGGGTTCGGTACCGCTGAAAAGTTGTTGGTCTCGCAGCGAAGTACT -ACAGTAATCGGGAAAAAGCGCTGTTTATTATCGATTTTTCAATTAAAAAT -CAATAAACTCGCCGCGAGATCCAAACCTCAACTTACGATAGCTTTTTGTA -GGAGTCGATTGTCCATCGACAAGGAAGCCAGCAACTAGGAAAATTTTGAT -AGGGAGAAGCATTGAAATTTAATTGTTTTTGGGGGTTTCGTTTGGTTTTT -ATAGGAATTTTTGAGCTGTAAGAAAACAAAGCAACATTTATTTCAATTAA -AACCGGAAAATATGAGTCATTATGGGGGGTTTTCAACCGTACGGAATTTG -ACAAATTTGAAACTACCATAAAATGGTTAGTTTTGTAGTTAGAGAACTCA -AAATTGATTTTCTAAGACAAAAAAATTGCCCTTTTTCAGAATATAGTAGG -TTTGTATAATTTCCAAAAAATTATTTTTCTTGCCCAAAAAAAAAAGGACA -GTCATTAGATGGCTGAAAAAAAAGTGGGCAAAAATAAAAAGTGTCTAATT -TTGTTGAAAACGGGTAATTAATATATGCAGAATTCAGAAAATCTAGGTTT -AACCCATCAAAAACCATTAAAAAGTGGCAAAATTTGGCAATTTTTGCAAA -AACTCACAATTTTGAAACTCCTCTAAATTGGTTCAATTTGTAGCTAGAGA -ACTTAAAATTGGTCTCCAAGCCCTAAAAAATTGTCCTTTTTCAAAATATA -ATAGTTTTAAACGTTTTTAGAAAATTTATTTTTCTTGCCCAAAAAAAAGG -ACAGTCATTAGATGGCTGAAAAAAATTGGGCAAAAATAAAAACTTGTCTA -ATTTTGTTGAAAACGGGTAATTCATATATGCAGAATTCAGAAAATCTAGG -TTTAACCCATCAAAAACCATTAAAAATCTAAAATGATTAATTTTCTAGTT -AAAGGATTCAAAATTGATCTTCGAACACTAAAAAGTTGTCAAGTATCCAA -AAAAAGTGGTTCAATTTAAAAAAAATTGGTCAGGGAAAATTATCGATTTT -TTCGCCGCTTCGCAACTTGGACGAATTTTTCTTTCGCTGCACAAAAATCA -ATAATTATTGATTTTTTTTCTAAAACAGAAAAATAGATATTTGCACTTTT -CTGAAAAATCGATATTAAACGGAAATTCGCAAAAATCGATGGTCACTAAT -TTTTTTGCAAAACCCCAGTAAAAAATCGCTTTTTTCGCCGCATTTCCTAA -CTTTTTCTATGCCACCACTATTGATTTTTTTTCCAGAAATCTTGGAGCTT -CCCAAACCCGCTCATCAGCCCGCGTGCTTCATCAATCATTCCGTTGAGAA -CTATGAATTTTTCGAATGAAAATTAAAAAGAGGGGGATTTATTAGACTGA -AAAAGTGTTTTTGTGCCACGTGGCGGCGGCCGAATTCTCCTGGACGGGAA -TTTCTAGGCCATGCTTGGGGGAGATGAGGAGATGGGGGTCAACTTCAAAT -GTGTGTAACAAAATAGAAAAAAAACTATAAAAGGTAAGAGGAGATCAAAG -GTCACGCCACTAGGGCTTGAAAAATGAATGCCTGCCTACAAATAGACATG -TAGGAATGTAGGCAGGCAGACAAAAAGTGGGTGAACAACGAGAAAAGGCA -CGTAAAAAGGGGTAAAGGTTAGAGAAAAAGAAAAAAAAAGCTCACAGAGC -ACATTAAAAATGGAAAAAAACGAGATCATTGGATATTCTGCTGCCGTTGA -TCATCGTCATCATGAATGATCAGCTGATTGGGGTCGACTATCACATCATC -TGGGTTCACGAGAGCATCTTCTTCGAGCAGCTCATGCGGAGGATGATCGT -CGTGATGATTTGGCTCTTCCACAACCACTTGTTCGAGGACATCTGGAATT -TATAGAATTAAAAAATACATTTTTTAGACAAGAAATCGACAAATTTCTGT -GTTTATTTCTATTTTTCAGATAATTCCACACAATTAGATAGTTATTGAGT -TTTCTTTCTATAAATTTCAAAAAAAAAAACGATAATTATTGATTTTTTTT -TAAATCAAAAACTTCACAAAACTCAATAATTATATATTTTTCGTCCTCAT -TCTCTTTCGGTTTTGTGTGTGTGTGAGTTTTTTTGAAAAACGCAAAATTT -TCTGTGATATTTCTATTTTTTAACCTGACATGGGCAGTTTTTGAAAAAAT -TTTGCAATATTTTCGGTGTTCTTTCTCAGAAAAACTCGAAAAATTGCAAA -ATAAATGTAAAATTTATCAAAAATTACACATTTTCGGTCAACCTTTTGCT -CAGAGAAACTAGAAAAAAAATTTCAATTTTTTTGGAAACCTGCCAAAAAA -TGAAGTTTCAGTGAAACATTTTTTTTATCTTTTTTCGAAAATTTAATACA -TTTTTTTGCAATTTTTTAATATCAATCCGTTCTCACATTTTTTGGTAAAA -ATATGAGGAAAATGAATACATTTTGGATTTTTTCAGAAAATCTGTTTACC -ATTAATCTGCTTCTCCCCAGTATAAACTTTAGGCTCATTCTCGTGCACTT -CTTCTTCCAAATTAACATCATCACCAACTGTCCCAATAACTTCTTCCTCG -ACAATTTCCTCAACAATTGCTCCATCAGGAGCCATATGCAAATGCATTTC -TCCATTATCCATTTCTTCTCCAGCCATTATTTCGACTCCAAACGTGTGAT -TCACTATTTGCAAGAGACGATGTTCGCTTTTTTCGAAGAGCATTTTGAAG -AGCAAATCGAATGTCTCGTTGTCGGTTGCTGAGCCAAATGAGTTCTTGGC -AATACGGAAGAGAGCCTCGTTTCGACTTGTTCCACGCGCCATTCCAGATT -GTGATAGAGGCTGGAAATATTACTATTTCAGATTTTTAGATTAAATGTGG -AGCTGGGAAATTCGAGTTTTCGACGAAAAAATAGCCTTTCAAAAGATTAT -TTTCAGATATGTTTAAAAAAATTCCGTTGAAAACGACGAAATTAGATAAA -AATTGGATTTTCAGCACATACACGGGCGTTTGATTACGTGGCCGTGAAAA -CGGAGAAACTCGGCCACGTAGAAACAAAACCGAAAATTGCAGAAAATCCA -GGAATTTTTTTTAATGACTCCGAAATTTCCCCGATTCCGAATAATATATA -TGAATGAATATATACTTCTGAAAAATTTCAAAACCTTTGCTCACCAAGCC -ACTACTCTGCTGCCCAAAATTTTTAGGCTCCTGATATTTCGCCTTTCTAT -ACGGCAGCTGAATCTGTTGCTGGGATGATGATGGTTGCTGAATCTCTTCG -GTATGTGAAACCTGAAGCTCTCGCTCGTCGAGCATCTCCTCAAGATGCAC -ATTTTTCTTTCTGGATCCTCCTTCTGAAGCTTCTGCTGAAGCTCCAGCCG -TGTCAGTCGTCCAATCATCCACAAAATCACCCGCCGCCGCCGAAACAATC -ATCTCATTCTTCAACTCGTACGGATCATGATCATCTTCAGCATCCCGAAT -ACCATCAGTCGCCGCCATAATCTCACGACGTCGTACATAATAGAGCATCT -TCGTGTTCACCTGAATCCCATACTTCTCCAAAATCACTTTAGCCACCTCG -GCAGGTGTCATTCTCGCGAGCAGCCGGAGCACATCCTCCCGAATGTGTGG -TGGAAGACGTTGAAGTGAGTATTCTTGAGCGGAGCTCATCGTGCTCACGT -TAACCGGAGCCGGCATCTCGCCGGGCTCAGTGTACCAGTAAATGATCATT -GCGTTGCCGATTTGATGGCCATTCTTCAACACGTACGTCACCTTCTTGCG -AAGACGTGGACAACGTGGAAGGGTGGCTGTGTAGACGTGAAGCTGGAATT -CGATGAGATCCGAACGATGGGATGATGGTGTCTTCCAGATGCGTAGTTGA -CCTTCTCGATTCAGTGCGAGCGCTTGTTTCGCAGATTTTGGACGTTTTGT -GATGCCGTCTGAAAAACAGAAAAAAAATTAAGTTTGGAGCATCTTGAATT -TGCCTTTTTTACTTTCGGAACGTCCCACTTTTGCTGATTTTTCGTGTTTT -TTTTTCTGGAATTTTGGAATTACAGGGAATATCTCTCCAAACCAATTACA -GGGAATATCTCTCCAAACTGGCCGTCGCAGGAAGACTTCACTTTTAAATT -GTTTTACCTGTAGGCACAAAAGCAAAAGAGGAGAGCCTACATCTTTGTAT -CTTCGATAAATTCGTTAAAAGTTCTTTTGTCTTTATTCATTTTTCAAATT -ATTTTCCAATGTTTTAAAAACATTTTTTCTAAACTTTACAGTAATTTGGG -CTATTTTCACTATTTTTCAACTTTTTGACGCGTTTTTAATTCTTCATTTC -AACCTCATTTTGTCCAAACTTTCTCAAATTTCCACATAATATGGCCGATT -TTCATGAAATTTTCATAATTTACACCAATATATTCAATTTTTAACCTCAT -TTTTTTCACAGAAATTCCCAACATTTTCACATATTTTTCATGACAAATTT -GAATTATTTCAATGTTTTCCAAACTTACGAGGATTGGTGCTAGTATTCTC -TGACCACGGAACCAGTCCATCACACGTCAAATTTCTTGCATCAACCTCGA -GCCCATCAATAAAGAAAACGAATGCGGCTTTGCCAGTTGTGGCTGGCGGA -AGGGCCGGTACTCGATTGTTGAGGCATCCGAGGGACTCACTGCAAAAAAA -TCATCGTTTTTTCTAGAAATGGATCGATGTTTGTGTAACTTTATCGATTT -GCTAGAATATTATCGATTATTCCGAAAAAAAATTTTAAAACAACAACTGT -ATTTCTATTTTTATTTTTTTAAAGATAGACTTCCAGATCATATTTTTTTT -GAAAATTTATTTAAAAAATTATCGATTTCTCTAGGAAAAATATCGGCTAT -TCTCGAAACTTGTGGATTTCCCTAGAGATTTATCGATTTCTGAAAAAATT -ATCGAATTTTCTAGAAATTTTGCAAATTTTTTCATAAAATTATCGATTTT -TCTGAAATATATCGACTTTTCGCCCAAAAAGTACGTACATCAATGAAGGC -TTATTGACAAGAAAGTGTAATTGTCGATTCCTATCATTCCAGAACTCCAT -ATCCAACAGCTGAAGATACAAACTACCATCATCGGCGGCTTGTGCTGGCA -CAGCAAACGGGCATTCTTTCTCGCATTCCGACATATCCGACACATCATTA -TCGATATCATGTATCTGCGTTGGCTGGAAAAATGGATCCTACACGCGTTG -AGCACACACTTTGTGAGCTCTGCGAGAGCTCAATGAGAACCTACCGGTCG -TTTTGTGGCTCGTTTCGCGAATCGTTTCAAATATCCGCCATGCATTCGTG -GTAGCTCGCCTTCCTGATTATAGTCGTACATGATGAGCGCATGGCTCACC -ACGAGCCGTGATTCGGTTTCCATCATGTAATAGATTTTTTTGCGTAGTCG -TGGCTCGCGTGGATTGATGGAATACAGGAATACCAAGTGGAATGGGCACG -TTTTGTAGTCCATGTTGTCTTTGGTCTGTGAGGGGTTTTGGATATTATTA -CGGGAGGCATAAAATTCTGAGAATGCGTATTGCACAGCATATAGACCAGA -TCCGTAAATCAACACAAGCCCTACAGTAGTTATTTAATAAATTACTGTAG -TTTTTGCTGCGAGATATTTTGCGCGTCAAATGTGTTGCGAAATACGAATT -CTCAGAATTTTTTGTTCCTAAGAACAGCTCGTCAATTTTTTTTTCAGTTT -TTCAGGGTTATTCAAAAAAAACCTGTTTTTAAAGCTTCTAGGTCTCATAT -TTAAAAAGTTTTGAGAATTTAATACATTTTTTTTAATAGAAATTTGGCAA -TTTTTTCATCACCTCATCGTCGATTATTCTTTTTGAAAAATTTTCGATTT -TTATGGGAATATATTTATTTTCCAAGAAGATTAACTTTTTTTCAAGAAAT -CTGAAAATTTATCAATTTTTCAAAAGAAATTAATGAATTTTATCAAAAAA -AGAATAACTTTTCCAGAAAATATTTTTTTTTCTTAAAAATTAAAAAAAAA -TTGTTAAATCGCTTTTTGTGTCAATTTTTCAAAAAAAAAAAAGAGGCATC -GAGAATATCCCATTTTTTTCGAAAAAAATTTTTTGGTTATTTTTCTTTTT -TTAGATAAAATGTATATACTTTTTTAAAAATGTTTTTTCACCAACAAATT -TTGATATTAAAAAGTTGGAATTTTATGACTAAATTATGGAAAACTTTTTC -GATTTTTAGAAAATCGGAAAATTTTGAAAGTGGGCGTCGTCAAAAAATTT -AATTTTTTAAGAAATTATAGAAAATATGCTGATTTTGGTATTTTTGGAGA -GCGTCGATTTCCATCGGATTTTTTTGGTTGTTTTCCCTGGGATCCATGTA -ACACCTGAAACTGTGATCCCAGCTCATCACAAATCACTCCGACTTTGCGA -ACTTTCGTCCGATAGCACGTCGGATTCTGTGCATTTCCATTATGAGACCA -TGGCGAGAAGTCGTCACGATTGATGTCGTGTGGAAAGATGGCTGTCCCGG -CGACGAAGAATGCGTACGCACGAGAATTACGAACAATTGGTGGGTGTCCC -GGCTTCGCGTAGTTCAGCAGACCACGTTCTTCGCTGGAAAAATGATGATT -ATATCGAAACATTCGAGGAAAATGGATAGAAAAAACGAAAAATTCAATTT -TTATCAAAGTTCGTTTATGTTGATGAAAACATTATTACGGGAACACAAAA -TTCTGAGAATGCGTATTGTGCAAAGTATCTCGTAGCGAAAACTACAGTTA -TTCTTCAAATGACTACTGTACCTATTGTGTCGATTTACGGAAATAATTTA -TAAATCGATAAAACAGTAGTTATTTTTAGAATTACTGTAGTCCTCGCCAC -GAGATATTTTGCGCGTCAAATATGATGCACAATACGCATTCTCCAAATTT -TGTGTTCCGTAATAAAAAATAAAGTTGTTAGATGAATATTCAGGGTCTCA -ACAAAATTTAATCTGTGTTTTCAGTTTTCATGTTTTTAGAGTGGAAAACG -TTTTTTTTTCAGAAAACAGTCAGAAATGTAGATTTTGTTCCATATTTCAA -AAAATCATTTAAAAAATATAGAACATTTTTTTGAAAAATCAAATTTCTCC -AGAGTGTAGTACGCCATTAAAGGTCTCGTCACGATTTTGTTTGTTTTCAA -TTTTTAAGTTTTTGAAGTAGAAAATTATTTTTTTTAGGAAAATTTTTCGT -CGATTTCGTTGAAAATTCGCTAATAAACGGGGATTAAAAAAAACGAAATT -TTCCAATTTTTCGAAAAAAAAAATCGAAAAATTCCTCCCAAACTTACACA -ACATTGGTATTAGCAATCCACTCCAACACGGCCTCAAACGTGCTGGCGAC -CCTCTTATGTCGAACAGTCAAGTAGATATGTCCCGTTTCCAATTGCCGGG -GATTCTCAAAATAGGGCGCCGGGTTCTCCTGCTGAGTAAGCGGATCATCG -TCAAACTCCAAATCGTAGCCATTGTTGAGCACATCCTCTTGAGACATATC -CAACAAATCATCGTCTAGCAGATGTCCCTGAGCGTCTTGAGCAATCGAAA -CATCTTGCATTAGCTGATGTTGCTGCTGCTGGTGCTGATCGTGTTGAAGC -TGGATCTGATCTAGGGAATCATTGTGATGTCCGATGACTTCTTCTTCCAC -AACTTCCAAATCTTCTACATCTATAAATTGTTCTTCATCATTCGGTGCAG -CAGATGATGTAGATGGATCTTGTGATGTATCAATCTTCTTCTGATCGTCG -ATCCATTTCGATCCTCCAACACCTCGTCCAGGTGTTCCAGGTGGTTTAAC -ATACGGACACGGAACCGGACCATCTCTCACATATTCATAGATATAACACA -CATTTCCGATCGTAATCGTATTGTTGCGTTGAATATAAATGAGACGCTTC -CGAAGACGGGGACATCTCGCCAGGACGGACATTGTTTCGACGAGACACAA -CTGTGACGAGTGCCAGCCGCCAGCCGTGTCTTTTGCCATTTGGAACTGGC -CGTTGTCGTCTTGGACGATGGCTCGGCGAGTTGAGCGGACGCGGGGTGAC -GGACCTTCCGAGGCAGCTGAAATTAATGAAACTACGGCACTCTGTACATC -TCCGGAGGCACCACGTTTTCAAGATCTACCAAAACAAGATCTACTATTTG -GAGATCTACGAAAACAAAATCTACGTTTTCAAGAAATGGTACCATGCTAA -TTGCAGTTTTCGCAGTTTTCTCGAAGAACAACAAATCAACAATGTTGACC -GCCCAGTGTGCTCCGATGTCGCGTGTTGTTTAGCGTTTAGAAAAATCTTT -TTTGAAAGAAAAACTTCAGGAGAACGATAAACAACGCACGATGAGTAATA -TGGAAGAATTTTTGTTTCGTTTTTCTTTGAGAAAACTGCGAAAAAGTGCT -AGATCCTGAAAACGTATATCTTGTTTTGGTAGATCTTATTTTCGTAGATC -TTGTTTTTGAACAGATCTCGAAAACGTGATGCCTCAATCTTCTGCAGTTG -CCGAATTTTCACATTTTTAAACCTTAAAACATATTTTTTCTAAAACTTTT -CCAAAAATCGATTTCTTCGTTTTCACGATTTTTTTCAGAGAAAATATAGA -AAATCGAAAATTTGTAAATTTTCGATTGAAAAAATGGAAAAATTACAGGA -AATTATTGAAGATTTAAACTTGTTTCTAAACAATCGAAAATTATCGTTTT -TTTTCTTTTGGAAATTTTTTTTTGGATTTTTCCCAAAATGGTGGTTTTTG -AAATCAAAAAGCGTTAAAAACAAATTTCTTTTAAAATTACCGGAAATTAT -TTTAGAAAATTTCCGAAAAGTCAATAAATTAAAAAATCGAACAAGAGAAA -GAGTTATTAAATTAAACAAAAACAATTTCACAAAAGTCGATAACTATTGA -TTTTTCATCAGAATTTCCTAAAAGTCGATATTTTTAAACCTTCTGATAAA -TTCTTTTTTTGTTAAAAAAAACTTTCGATTGATTAGAAACACGTTTAAAT -CTTTAATAACTTCCTGTAATTTTTCCTTTTTTTAATCGAAAATTTACAAT -TTTAATTTATTCTTTTAAAAAAATCAAAAAACGAAGAAATTGTTCGTTTT -TTCTGGAAAAATTAATTCTTCGGCTCGAAATTTCGATGATTTCTTTTTAG -AAAAAAATATATGTAAAAAATTATACAATTTCAAATAAAACACTGTTTTT -TTTCTTTTGATATTGAAAATAGTAGAAATTTTTCAATAAAAATTCCAATT -GTTCACTCAAAATTTCAAATTTTCGACAAAAAAACTTACGATTAACAGTC -CACGGTGACAGTCCATCGCCAGTATGATTAATCTGATTTGCAACAAAATT -CGCCGGCACAAAGTACACAAAAACGCCGGTTGTCGGAATAAGTGGCGGTA -GGTACGGTGTTCGGCGATTCAAACAATTCGATTGGCTCAGCAGCTCGGGC -TCATTCACCAAATATCGGAGGAGAAGCTTCTTGTTGTGTGCCCAACCGAG -TTTTGCAAGTTTTACGCGAAGAAACATTCCACCACGTGGTCCTTCCACTA -TCTCGTCTTCGAACTGGGAATTTTTTTTTGATGAATTTGAGAAAAATAGT -TTAAATCTTTATATTTCAGTTTGAAATCGCCGAATTTCAGTTGTGCACCT -TCGTGTATATTTACGATATGTTTAATCTTTTTCGGATGCTGATTTCCGAT -CTTTAACGGTTTTCCTTCATTTTCGTCGGTTTTTTTTGGATATGTGTTTT -TGAGGTCAATTAATGAACCATTTTATTATCAGAAAACTAGCAAAATGTTC -AATACTCGACAGAAAATCCATATGCTATATGCTTTTCTCGACTGAAAACC -GGAAATGTTGCTAGTTTTTGATAATAAAATGTTAAATTAACACATTTTCA -AAAAAAAAACACTTCTACAAAAACCGACGAAAATTAAAGAAAATCGTTGA -AAAAACGAAAATCAACACCCGATAAAGATTAAGCATTTCGTAAATATACA -CGAATTTGGTAAATCGACACATGGCATCTCTAGCGCGAAAATTCGAAATT -CGTAATTTCCAGCTGAAATATTAAATCAGGGAATTTTTCTGAATATTTCA -CTTAGATATTCGGAATCAGGGAAAAATTTGGAGTTCTTATAAAAAAATTT -ACTAAGCAAAGTTTTAGCAATTTAGGTTCTAATAGGCTTTACAAATATCA -AAAAGTCCCGATTTTTCAAGGATCTATATATATTTTTAGAACCACAGATT -TTTTGCTGTTTTTCAGCATTCTCGGAAGACCATACCGGTGTGGATCCGGG -ATCATCCAGATCTAACGAGACGTGCGGATCAGTTGGATCGACCATCGCAT -GTCTTAAATAGTCGTTTCCGTGCGGAAGATTTACGATTGGTGGAATTTCA -CCGGGACACGTGTAGTCGTAGAGAATGAGCACGTTTCCATAGATTTGGCC -ATCGCGGGAGAGGTAGAAAATCTGGAAAAAATTTTTTGAATAGATTTTTT -CGCCTTTTCTGAAGGATTTTTTTTGAAATTTGAAGGAAGACGGGTTTTTG -CTTGCATAGACTCAAAATAAACCCTTTAGAAAATTTTTACGTTGGCTCAA -AATATCGAGAATAAAAACCAATTTTTTTCTAAAATTTCGAAAAAATGGGC -ATAACGGCGGAAAATGTATTTTTATTTGATTATTGTACCTTTTTCAGTTC -ATTTTGGAGCATTTTTGGCCCATAGGCTTAAAATTAACCTTAAACATTTA -AAAAACGTGAAATAAGATATCAAAAAGCCATTATGGCCACTATGACCTAA -AAAAAATATTTAAAAAAAAACAACTTTTTTTTGAATATTCAAATTTTCTG -AAACTGATAATAAACCTTTTTTCTCAATCTTAACAGTCTCGGCAGCCACG -CGCTGTACTCGGTGAGATGAAGTTCGGCGATACGTGGATCTCCTTTGACC -GATTGGAGCCGTCCGTTGAGACGAGCAACCGGATGACGTCGGACATTCGG -TTTGATGACTGGATCGTTGAAGTGTTGCTCGCCGCCAGTAGAGCTCCATG -GCTTCAGATCGTCATTCGAGACGTCTTTTATCGACATGATTTTGGAGCCG -TCCACGTAGAATGCGAAACAGGCTTTGTGTGGAACAAGTGGTGGGAGACG -GGGTGGTTTGTCGAGAAGCCAACCTCCTTCGCGACTAAAAATGGGGACCG -TTGATTTTTGTTTTTTTTTTCTGACCGATTTTTCGGACAATAGCTTGAAA -TTTTGACAATTTTCTTTATTTTTAGAAGATATTTTTTTCTTATATTTTTT -TTTCTCTAAAAACTATAGTAAAAAATAGTTCAATTTTTTGTGGTTCTGGC -GAAAAATGTATTTTTTCGAAAAAAATTTTTTTTTTTCAAAACAAGATATT -TAGATTTATCACTGAAAATTGCTAATTTCCAGTGCGAAAAATGACTTTTT -CTGGCTATTTCTGCCTGATTTTTGATATAAATTCCAATTTTCACAATAAA -ATTGCTGAAATTTTCTCCTTTTTTCACTGTCTCCGTACATCATTGCAATT -TCGGTCTCGTTGGTGAGCAGCTCAATTATTCGTTCCTTTCTGAGAAGGTA -GGCCAGGCAGCCTGATATCACTGTGGCGTAGCAATCACCGTTTTCCGTCA -TTTCAACTTCATCTTCGAACTGCAAAAATTATAGAATTGAAAAAAAAAAA -CGATAAAATCCGACTTTCTCGATGATTTTTATGATTTTTAACTGAAAAAT -TGATTTTTCGGCATTTTCTGAAGGATTTTGATTAAAATTTGAAGGTTTTT -TTTTCTCCCGTAGGCTCAAAAAACGCCCTTTTTATGGCGGCTCAAAGGCA -AATTTTAAGTAATAATCGAATAAAAAATCATAAATTTACGACCCCTACGG -CACGGGAAATTGGAGACTTCAGCTAAAACTAACCGTTGATTTTGAATATT -TTGAGCCAAATTTGGCCAAATAGGCATTAAATGCACTCCAGATGACTAAA -AACACGTGAAAAAAGCTATTAAAATTAGGTAAATAAGACAAAAACAGAAA -AAAAAGAACTTGAAGCGAAACTGGAGCCCATTTTTGGAGACAATTCTCAT -TACAAAATTGGTTTTTTGGGCACATTTTTTAGTCTTTCTAGTTATTTCGA -ACATTTTCCGAAGAATTCCCATAAAACTTTGAAGCTTTTCCATGTAAGCC -CCTACCAATTTCACGTGGTACTGCCTTTCAGCAAGAGCTTTACTGATAAC -TCGTTCTCCTTGAACTCGGAACATTTTCGACGGTGTCGCCGCCGCCGGAT -TTATAATTTTCATCGCCTTCTTCTCCTTATCCCCATCGTCGATAGACCCA -TCGGTATCCATTGGCTTGCGTGTTCGGACACGTCGCTGTTTGCTGGGCCT -GGAAAATTTCGATTTTAAAGATTTTTTAAATAAAAAATCCCCCACAAATT -CATTTCCAAATCCGGTGGTTGCCCATCCATAAACCCGTCGTCCTCCTCCT -CATCATCACCGAACGGGTCCATTTGTATGCGATCCTCGTCTCGATATCGG -GAAAGGTTCAGAATTGGCGGCTCATCCTCTACGATGACCTCCGTCTCTGC -GTGGAGCATCGAGTCGTCGCCGGCGAAGATGGGCTCTCCGAGCTCTCCGG -CGGTGAGCTCCTCCAAATGTGGCGCTGGCTTTCTCTTTTTCGCGTTTCGA -ACCGTACTTTCCTCCGTCCTGGAGCGTTTTGGAGCTGCGATCGAGCTTGT -TGATGCAGAGGCGAGCGCTTCTTCCTTTGGGATGCCCAACTCGTAGTCTT -CATTGTTGTAGAGCACGGATTTCCGAGCATTTCGACGTGGACGAGATTTT -GTGGCTGGATCCTGGGGCTCTGCGGCAGGCTCTGGATTTTGCTGGGGCTC -TTCGGCCGGCTCTGGATTTTGCTGGGGCTCTGTTGGATTTTGCACAAGCT -CTTGATCAACTTCTTCCTGATTTTCTGCCAATTCTCCCGAATTTTCAGGA -TTCTCGGACATTTTTCTGCAATTTAATAATTGAAAATAAGAATAATTAAC -GGGGTGGAAAATTAAAAATTAAACAAGCATTAAAATAAATTTGAAAAAGT -CCTGATTTGTAGTCCGCAACGCACGCACGCAAGCATACACCAGAACAACT -AAGAGAGACGGGAGGAGAGATGGAGAATTTGAAAGAGACGGCGAGGCGAC -GAGAGAGCCGGAGGATTGAGGAAGGACAAACACACAGATGTGGGGTCTTG -CAGCGCTTTCTCTGCGTCTCTTTTTTCGACATTTTTCAATGGGAAATTTT -TTTTTGGAGTTTTTCTTTTTTTTTATCGGAAAACTTCAAAAAATTCAAAT -GGAAACGCTGTACGGACAATGCATAGAATAACACGCAAAAATGCACATTT -TTAGGCCTTAGGTTACTGTAGTGGTCTCGGCGCGAAAATGCGGATTTTCA -TTTTGAATTCAAAATAAAAAAACTGGACGTGATTTGGTACAAGCGTTTAG -TGAAAATGTTTCACAAAATAGGAGATCAATTAGATATATTTATTTATTCA -TGGAAAATGACTATTTGGAAAAAAATTGCGAAATAAATAAAACTCGATTA -AAAACAATGTGCATATGTCTTCGTTGCTTTCTTGGCGAGGGTTTCTCGGT -ATCGAGTTCTACAAGAGACACACATTACGAATAACCAAAATAGTTTAGGT -AATATACACATTGGGTGGGGGTGGGCCAGAATAATATTGAATAAGGGTGA -AGAAAAAATATTCAAAATACGTCGCTGAAGTTGGCATACAATCTTGAGTC -GGATAAATGGTAAGAAAGCAGCACCACTCAACTCAGATCACAATCTTCTG -AAGAAAAAGGGACGAATGTATAGGTTCGGAGGGGGGGGAGGGGGAAGGGG -TGGGGATGGAGGCAATTACAAATAAATCTGAAAGAAAGTTACAAATACTA -CACACCAAAACGGTGAAGACTTGCAAACGCAGTGCTTGCAAGAATTCGAT -AAAACTCGCGGATGTTAAGAGCGAATCATTTGGATTTCGGGGGCAGTAAA -TTAAATGGACAAGGCATTTCGAAAAATACACACGTTAGACTGAAAAAAAA -AAACACGATGTGATTTATGGGATGCAACACTGCTTCTTTGGTGGGTCGGA -CGCTGGCGAAGGAATGATTGTACCACTGCCACCGCCATATCCTTGTCTGT -CAGTTCCTACATGCTTGTTGGATACTGATTTGTAGATTTCCGTCAGGATA -TTAGTGAAAGCTGCTTCAACGTTGGTGCTGTCGAGGGCAGATGTTTCTGA -AAAAAAAAAATATATAAACGCAATAGATTAGTTTAACTTACCAATAAACG -ACAATTGATTTCTTTCGGCGTAGATCTTGGCCTCGTCTGTTGGAACTGCA -CGCAAATGGCGCAAGTCGCTCTTGTTTCCGACCAACATAATCACAATGTT -CTGATCGGCGTGATCACGAAGCTCCTTCAACCATCGCTCAACATTCTCGT -ACGTCACATGCTTAGCGATGTCGTAGACTAGGAGAGCTCCGACAGCCCCA -CGATAGTAAGCGGATGTGATGGCACGGTAACGTTCCTGTCCAGCAGTATC -CCAAATTTGAGCCTTCACTGTCTTGCCTTCTACCTACAAAAATAATAATT -TGAATCATAAGTGTATTCTAATGAAGTTCCTCACCGAGATGCTTCTCGTG -GCAAACTCGACTCCGATTGTTGATTTTGATTCCAAGTTGAACTCATTTCT -TGTGAAACGAGACAGGAGATTCGACTTTCCGACGCCTGAGTCTCCAATCA -GAACAACTGAAACAATTTTTCGTTTGGGAATTGAAAAATGAAAAACAAAA -TTACCCTTGAACAAGTAGTCGTATTCATCGTCACGAGAGCCCATCTTTAC -TGCTGAGCTGTAAAATGATAAAGCTTGTTTGAAAGTTGTGTATATATTGG -GACGATTGTAAAAAAGAAAAAGGGCATTGGTCACATGATTCATCAGCCGG -GCGCAATGTTTTGTTGTAAAATCGATATTAAAAGAACGAGACACTGTTTT -ATCGGCGGAGAATATTTTTATGTTCTGTTCCCGACACAAACGCGGAGTCA -GGAACCGGTTGTCTATCTCGACGGGGATTGAAAAAATATAAGTGAACTTG -ATTTAAGAATGATTCAAAGTATATGGAGTTGGGAGTTTTATATTGAATTT -TATCAATATATGAGGGTGGTTAGTCAGAAGAAAAATGTGAAAATGTATAT -AGAAGTGTGTTATGAAAGAGTATTTGAGGCTTATCATACCCGAAAAAGGG -AAGGTGAGCGGCCGAACTTTGTTTGTCGACACGATTTCGAAATAGTTGAA -CAGGATATTTTTAACAAGGGAAAGCTTTCTCTGGGTGTTCTTTTTTGATA -ATTTCAGCTAAAAATTGAAAAAAATAATTAGTTTTATGGCTGTGAACATC -CAGAATAAGCTTTTCCGAACGCGAAATGCGTGTGAAACCCATAAAATCGA -ACGTAAAACAGGTCAGGCGCACCGGCGCAGCCACGTCGGTCTGAGGGTAC -GCGACGCTAGCCGCAGCGCAAGCCTCCTCGGGTCTCGGCACGACAACTAC -CGTACCCCTTTCGCAGCGGCGCAACGGAATCTCAATTTTACATTTTTTTC -TTTTTGGCCTAACGAATTTTTCCGTTTTTTCAGAGCATTTTTCATTGATT -TTCTTAAATTTTCATCAGAATAAATTTTAGAACTAATTTCCCGTAATTCT -GATACGCGTTTTTTATAGTTTTCGTGAAGAAAATGCTGAACATTCGAAAA -ATACTGAAATAATTTAGTTTTGAAAACTTGCTCCTCTGTTTCAATATCTT -ATAATTTTCTTTTCTGATTAATATTTTGATTTTCCAGGTAATCAATCGCC -TATAATGGCTCCAACGTAAGTTTTCTTTATAAATTTATATTAGATTGAAA -TTTACTTTTAGGCCTGACTTTCAAATACTTCAATTTTGATATTAATTCTT -GGTTTTTCAGAAAGAAAGTGCCACAGGTTCCAGAAACTGTGCTCAAGCGC -AGAAAGCAGAGAGCCGATGCCCGCACCAAGGCTGCTCAACACAAGGTGAC -CGTCGCCGCTGTAAGTTTATTTAACTGTCAGAAAACAGAAAATGCTCTTC -AAAAGCACTGGTTTTAGGATCCACTATTATCCAAGCCAGCCGTCAAAACT -GAGCTATAAGAATTATCTTGTTTTTGGGTGAGGTGTATTCAATTCAGAAT -GCGTCTCAATAACACGATGACAATTCGAAATTTTAAAGTTTAAATTTTCT -TTTAGGTGTTTGAAAATTAATTTGAACTAATCCTGCATTAAAAATAAAAT -TTTTTACAGAAGAACAAGGAGAAGAAGACCCAATACTTCAAGCGTGCTGA -GAAATACGTCCAGGAGTACAGAAACGCCCAAAAGGAAGGACTCAGACTCA -AGCGCGAGGCTGAGGCCAAGGGAGACTTCTACGTTCCAGCTGAGCACAAG -GTCGCCTTCGTCGTCAGAATTCGCGGTATCAACCAGCTTCATCCAAAGCC -AAGAAAGGTGAAATTGTGTTAATGAGTTTTTTAATAACCATTCTTTGTTT -TCAGGCTCTCCAGATCCTCCGTCTTCGTCAGATCAACAACGGAGTGTTCG -TCAAGCTGAACAAGGCTACTCTTCCACTTCTCCGTATCATCGAGCCATAC -GTAGCTTGGGGTTATCCAAACAACAAGACCATCCACGATCTCCTCTACAA -GCGCGGATACGCCAAGGTTGACGGAAACCGTGTCCCAATCACCGACAACA -CCATCGTCGAGCAGAGCCTCGGTAATTTGAAAACTTATGCTTTTTAATTC -TTATTTAATTGTTTTCAGGAAAGTTCAACATCATCTGTCTTGAGGATTTG -GCCCACGAGATCGCCACCGTCGGACCACACTTCAAGGAGGCCACCAACTT -CTTGTGGCCCTTCAAGCTCAACAACCCAACTGGAGGATGGACCAAGAAGA -CCAACCACTTCGTTGAAGGAGGAGACTTCGGAAACAGAGAAGATCAAATC -AACAACCTTCTCCGAAAAATGGTCTAACTTGTTTGTTGTTCATACCTTCC -TTCCGGATAAATCGTTATTGTTTGACGTTGTTTAATTATGTGCATAAATA -ATCATGAAACGTGATCGTCTTGGCTCGACTCATCTCGCATTTCATGAAGC -GTCTCATCATTCAGATGAATCGTAAAACCGCTTTGCTGACTACTCTCCCG -AGAACAGTCACTGTTCCCTACTATGCTCCATCCTGTTTATTTCTAGAAAC -TTTTCTTCGGAGCAAGCTAATTCCCTATGAAGTGAGAGCATTTAGGTTAA -TAAACATAGTCCAGATTTAAATCCAGACAACGCAATGTTCTCTCTACAAT -GTACTCCCTCGTGAGCACCTATACCCATTGATTGATGTCGATGGGTATTT -CTTCAAAAATTTGATGGAAGGACTTGATTATCTGCTCGCCAAATATGGAA -AAGTTGGCTTAAAACTAGAATTTTAGAAAAAGCTTAAATATTCTTCCAGT -CTCTGGACTCGGGCCTGACTCCAAAAGAGCGAGCACAGGCTCTCGCATTG -AGCGCTTTGCTCGACGAGCTTACTTGGATGCTCGCCTACTCGCGAGGCCA -AGATTTCACGTGGCTCCGCGATGATCGTAAGATTATCGAAGACTTCGGGC -TTGTTCAGCTCTATTTTTGGAGGAATTGGATTGTACCGCAGATGCAGAAA -CGGGTAGATTATTGATATTTTATGGAAAAATCGATAAAATATTGATTTTT -TACTGAAAAAATTGATCAAAAATCGATTTTTTTTTCCTCGGAAAATCTGT -AAATTAGTAGTTTTTTGTTGAAACAATCGATAAAATTCTGGTTTTTCAGA -AGCAAAATCGATATATTAGGCCAAAATCACCAAAAATTATCAATTTTCCT -ATAAAATTTACCATTTTTGGCTAGATTATCGATTTTTAAGGCAAGAAAGT -CGATATTTCACAATTTTTTATTGATTTTTTTGGCTTTCCAGCGCGCAAAC -TGTGCCAAGATCTAAATTTTCCGAAATTTTCATTTCAGACACGCCGCCGA -GTGCGAGGCTACGGAATATCCGGAAAATCGGCGAGAAAGGAGGTCGCCTG -CCGAACTGAAGCAATGTTGGAGGCATTGGCCTCACTTTTGGCCTCGAATA -AATACTTTTTCGATGTCAATGAACCGTCTTGGGTAGGTGGCAGCCAAAAA -ACTCGGCCAAAACTCGGCCTTTCAGCTCGACTGCAAGGCGTTCGCCGTGC -TGGCTCAATTCAAATATACACCACTGCAGAACGAGGCCCGCGTAAAACAA -TTCATGAAGGACCGAACTCCAAATTTGGTGGGTGGCCTTGAGTTTTCTAG -GCCACGAGATTTGAAAAATTCTATAATTAGGGCATGTGGTTTCAGATGAC -ATTTGTGACGCGCATGAAAGAGGAATTCTGGTCGGATTGGTGCACCACGT -CGGAGGATTGAATTTCGTGGAAAATGCTAATTTGTTTAATGTAATATGAT -TTTGCTTCGTAGATTTTAACCTATGCTCGAATAAAATTTATATTCTAATT -TTAAAAAAATTTCAAAACAAAAAATTTCTTACGTGACAATTAAAGGGTAT -TACAATATGGGCATAAAAAATGTATTCCCTAATTTTCGAACTTGTTCAGT -CTTGGTTGCCCAGGTAATTTTTTTGCAGTTCTTGTTTGGGACTCGGAGCG -ATTTTGCGCAGATGCATCATATTTGACGCGCAGAGTTTTAATTGAGGTTT -GAGCTTGAATTGAGTTTGAATTGAATTTTAATTAAATAAAGCGAATTCTA -GAATAAAATGATGTGTTTATTGCGAAATAGATCGTGAACCTACAAAACAA -CAGACTTTACGCGCAAATTTCCGAAATTTTCCAGAAAAACCAGTCAGAAT -TTCAAATGATACTTGTTCCTCTTCTATTTCTTCTCCCAATTTTGTTGTGC -GGTGGGAAAAAGAAAAAAGCGAACAAAAATGTGAAAGAGGCGTCGAAAGT -GAACTCACTGGTTCCACCGTCGACCTCTACGGACCCGCTGAAGACTAAAG -AGAAGGAGATGAAAAAAGAAGAAGCTCCGGGAGCACCAGACGCCCCGACT -AAGCCGAAAAGTCCTCCGAAACCAGTGGTCCAGGACACGAAACTTGCTGA -AGTGCTGCCTGAAAGTGAGAAGGAAGACGAAATGAAGAATGGTATTCAGT -TGCCGAATCCGCCGAAAAATTTGGTGGGTCTCACGGCGATTTGAGTGTTT -TATCGATTTTCTATGAAATAATTGATTTTTTCTAAAATTATTGAGATCTA -GATTTGCGAGTTTTCTGAATTTTCTAATATATCGATTTTTCAGAAATGCG -AAAGTGAAATTGCTCCAAAGGAAAAGCCGGCGGCTGACGAAAAGAAGGAC -GAGAAAAAAGATGAAAGCAAGAAGGATAAGAAGGAAGAGAAAAAGGAGGA -GAAAAAAAAGGAAAATGACGAAATTATGTGAAAAATTCGATAAATTGGTT -CTTGAAGATTATTGATTTTTCATTGTCGATTTTTCAGAATTCCTCGAAAT -TTATTTGCGCGTCATATATGGTGCATTGAGTCCATAGAGACTTCAAAGTT -CACGCGCAAATGCAGACATTTTTGCACGCGCTGCGGTGAAATTCCTCTTG -GCGAATTCAAATATTTTTTCCCGCCTTTTTTGAAAATTTTCGAGGCGTTG -GTCGAGCTGAATACACGTGAAGTTTAGACTGAATGTCAAATCACAAATAC -ATCACATTTGACGCGCAAAAAATTCGTTTTGAAAATTTGCGCGTCAAATA -GGGTGCATTGAGTACGCGGAGCCAATACATCACACTTGCTTTTCGTGGAA -AATGGAGCGAAATTTGATTTTTTGATTTAAATATTACGGGAACAGAAAAT -TCTGAGAATGCGTATTGTGCAACATAATTGACGCGCAAAATATCTCGTAG -CGAAAACTACAGTAATTCTTTAAATGACTACAGTAGCGCTTGTGTCGATT -TACGGGCTTGATTTTTTTTCCATTTTCTTCAGTTTTTCTGACATTATTGT -GTTTTATTTTAATATTTTTACCGATTAATAAATGATTTCCGTAAATCGAC -ACAAACGCTACAGTAGTCATTTAAAGAATTACTGTAGTTTTCGCTGCGAG -ATATTTTGCGCGTCAAATATGTTGTGCAATACGCATTCTCAGAATTTTGT -GGCCACGTAATATTTGCGTTAAATAAAAATCAAAAAATTAAAAAAAAAAA -AACATTTCAGAAATTTTCAAAAATTTTTTGAAAAATTGACGCACAAAGTC -TCCTGTTTCCCTTTTCCCCAAAGTTTTAAACTAATAAAACTTTTTTAATT -GTCGAATCCGACCAGTTATTTAATACGAGACAAAACGGAAACAAAGATTC -CAATTTCCGATTACGGTCAGCTCAACACTTTCGCTCAAGGAATTCTCTAC -GCTTAGATTTTGATCTTAATGGAAAACTGGTAGAACTTGGTATAAAACTA -TCCAAAAAACTGGCAGAAAGAGTAGTCTTTCCGAAGAAATGAAGTCCCTA -ATCGAGGAAGATGACTTGGAAGTCGGCAGATTCCGCCGCAACGCGTTTTC -CGCCGTCGCCCTCTCCACCTCCTGTATTCTGGCGATTGTGGTGTTAACAC -CAATTGCCTATCAGGCAATTCAGAGAATTCACTCAAATTTGCTTAACGAT -GCCCATTTTTGTCAGGTAATTTTTTTAAAAAATTTAGAAATTTTGATTTG -GAAATATTCAAATAAAAAAAAAGTTTTTCGAAATTTATTTTCAATCGTTT -GAGATTTTGACATACATTCCAAAAATTCCTACTCTTCGCAATTTTTTAGT -CAACTCAAACTCAAAACCTTAAAAAAAAACCGCAAACCTGTCATGGCGCA -TCGATGTTATCCCTACGCTAAATGTTCTGTTTTCGAAGGTTACTTTTTTC -CAATTTTTATCACCAAGGAAAATGTATACACAAAAATATATAGAATTTGA -CGTGCAAATTGGCAAAAAACTAAACTTGCGCGTAAAATCACTGCATTGCC -TCTGCGGACTCAACACACCAGATTTGAAATTTCAGGAACTTATCGATTTT -TGTAAAATTTTGCAGCATGGCGCATCGATTAAATATTAAAAAAAAATTGA -AAATTATCGATTTTTTTGAACACGAACAATTTGTGGAAAATATGAAATAA -AAAAAAACATGGTGCATCGAAAAACTTACAGGCTCGAAACCGTGACCTCT -GGACAGAAACAATGAAGATGGCTCGGAGCCGCGGCCGGGACGAGGAGCTC -GTGGCCCGAACCAAGCGAGCGGTTAAAGGCACATGGCTCTTCGGACAGTA -TATTCCAGACCGATCAAGCAGAAATCGACGACAGCAATACGCCGAGGCCG -CTGGCGGAGGCGGTGGAGCACCACATGCCGAGTGTAGACGGGGTCCACCG -GGACCACCGGGTGATGGTAGGTTTTTAGATTTGCGAGGCAATTGTGGTGT -ATTGGTTTAATTTTACAGACGGGGTCGACGGAACGGACGGAAAAGACGGT -GCACCTGGAACCGATGGAAAAGACGGTCAGGTACCACAAGGACCAGCCGA -CGGAGGTTATCAAGAGGGACCATCTGATGCAGTTGAAGCATGCACACGTG -AATGCCCACCAGGACCGCCTGGACCAACTGGAGCGCCCGGAGACAAAGGA -TCTCGAGGCTACCCTGGAGAATCTGGAGAGCCAGGCACCCCGGGAAGCGC -CGGACCGAAAGGAAATGCTGGACCGTAAGTGGAACTAAAGAATCGATAGT -TTTCGGTAAAAAATCAATCATTTTAGGAAAAAAATCGATAATTTTCATTT -TCATTTTTCTCCATTAAATTATGTTAACTTTCTAGAGCTGGACCACCAGG -ACCACCCGGATATCCAGGACGTCCTGGAGAAACCGGAGATCACGGAAAGA -CGATCGCCGGAGAGGCGCCACCTGGACCACCAGGACGACAAGGAGAAATG -GGTCCACAAGGACCACCGGGACCACCAGGGCCACGTGGAAAGGACGGAGC -CGGTGGAGAGAAGGGTGCTCCGGGAGATCAAGGTAATCCGGGACCATATG -GAAAACCTGGGCAACCGGGAGCTCCAGGACCCGATGGCTCTGCTGGTGAG -AAGGGAGGATGCGATCATTGCCCACCGCCAAGAACTCCACCTGGTTATTA -AAGATTCTTCGATTGATATTTTATTTTATTTTCATGACGTTATTCATTTT -GTCATTCGGTTTTCTTTTGTTGCAATATGATAATAAATCAGATTCTCTTG -CCAGTAGTTCCAAGTGCCCCAACATATTTTTGAGTCCTTTATGTAGATCC -CTCTCCTCGAAAGCTGGATGATTTAATAAATCTTTCAGAAAAATCGAAAA -TTTTAGAAAAAAAAACATCAAAATTTTTGACAAACTGCATAATCAGTCAA -TATTCTAAAAAAAAATACGATCGCACAAAAATAAACAACGACGCAACGAC -ACTCCGCGGTTACTAAGCTCCGCCCACGATTTCATTTGCACTGCGTTGAG -TCGGCCGTATTGTTATTCAAACATGAATGAATATACTGGTGAAGTTTAAA -AAATTGGGTGTTTAGTTTTGAAGAAAATAATTTTTTTGGAATTTTGAATA -AAGCACAATTGGCAGCTGAAACTGGACTTTCAGACAAATTTTGAACGGTG -GTTGTTGATGCTTTGAGTTTATATTGTTATTCAAACATGTATGAACTTGT -AAAGTGCTTGTAAAACTTGTAAGTTGCTTGTTCGCTCATTCTGAAATAAA -ATTTAAATTAAATAAAAGTTCACGTGATACAAAAAAGCCAACTTATTGAT -TGAAATCGATAAAATCGATAAGAAATTCATTCATTTAATAGTTTTTAACA -AACAACAAATGCGATCAAAAAGTTCGGAAGGTGATTTACAACCAGAGGAC -ACCCAATCCAGAGAAGATAAAGAGACGACTGCTACGTATAGTGAGGATAC -AAAGCCAGGTAAATACAGTAGTCCTACCTTAAAATTACAGTAACCCAGCT -GACTAAATATCATAATAAAACTTGCAAAAAAATGATGTAAAATCTTAGTT -TTTAGTCTTTTGAACTGGTAGAAACTGTGTTAGCGCCACTTTTTGACTCT -AAATAGAAAAATTTCCCATTTTAAAAGAGTTGTATTATGATACACTGCGT -GGCGTGTAAAATACCAAAAAATAAGCGCGGTTTTTTTTTTCGTAAAATCA -CAGGGAAAAATCCGAAATCGGAACTCCAATCAGCCGCCAACATCCCACGG -GCCCAATAACTTCTGGGTTTTGTTTCAACAATCTCATTTACTCCAATTCC -AGAAACCCAAAAGGAGAGAAACGCGGCACTGGACAATCTTGCCAAGACCC -CAATCCAGTTAGTCGTCCAACCAACTCCTCTCACACCAGCCATCACGCCA -TGCGAAGCACCACCACCACCACCTCCACCAAAACCCTCTAGCGATAATAA -CAACTCGAAACGATTGAAAGTGAAAGATCAACTGATTGAAGTGCCCAGCG -ATGAAGTAGGCCGAGTTGAGAATAATATAGACAATTTCCCGTTCTATCAT -GGATTCATGGGAAGGAACGAGTGTGAGGCGATGTTGAGCAATCATGGAGA -CTTTTTGATTCGAATGACGGAAATTGGGAAGAGGGTCGCCTATGTGATTA -GTATCAAGTGGAAGTATCAAAATATTCATGTTCTAGTGAAACGGACCAAG -ACGGTGAGAGTTGTTTGGTATTATCATTTAGTTTCGTTTCAAATCAGACC -GAGATACATACAAATATTGAAGTTCAAATTTAGAACATGTTGCATCGCAA -TGTGTTCATTGTGCTCCCTGAAGCATTATGCGGACATCACGAATTACATA -AATTATTTTAACCAATGGTGGGCGGCAAATTGACAAATTGCCGATTTGCC -GAATTTGCCAAAAATTTTCGGAAAATTGTATTTTTGCACATTTTTTTTAA -ATTTCAAAATTTCAAATTTTATCGGCAAAATTGTATGCATCCTATGAATA -TTTCTACATCTGTTTCGAAAAGTAAGCAAATTATATGAAAATATCTAAAG -AAAAGGGGAAAAAATTCGAAAAGGCACAGTTTTCAGTGTTTCCGTCTTAC -AAAAAAAACCTCGAAAAACTTTCGGCAAATAAGCAAACCGGCAAATTGCC -GGAAATTATAGTTTCAGGCAAATCGGCAAACCGGCTATTTGCCGAATTTG -CCGAACGGCAGTAGCCTCTCACCCCTGATTTGAACATGGTGCATTGCATC -ACCGCTCCTCGACTTGGAAAGTTTATATCGGTAGATATTTGCAGCAGATG -TAATTTACTGATATTTTCAGAAAAAGCTCTACTGGACCAAAAAGTACGCC -TTCAAATCCATCTGTGAGCTTATTGCCTATCACAAGCGAAATCACAAGCC -GATTTATGAGGGCATGACGTTGATCTGTGGCCTGGCACGACATGGATGGC -AGCTGAACAACGAGCAGGTCACATTGAATAAGAAGTTGGGAGAGGGACAG -TTTGGAGAAGTGCACAAAGGATCGCTGAAGACATCTGTATTTGCAGCCCC -GGTCACTGTTGCCGTGAAGACCTTGCACCAGAACCATCTATCCGCCAATG -AGAAGATCTTGTTCCTAAGAGAGGCCAATGTGATGCTCACCCTGTCTCAT -GTAAGCTACCTGTTTCAAGTTGAACTAAACTAAAATTAATTTCAGCCAAA -TGTGATAAAATTCTACGGAGTATGCACCATGAAGGAGCCCATCATGATTG -TCATGGAGTTTTGCGACGGGAAATCCCTGGAGGACGCTCTACTCTCCAAG -GAAGAAAAAGTGTCAGCTGAGGACAAGATTCTCTACCTTTTCCACGCCGC -CTGCGGTATTGATTATTTGCACGGAAAGCAGGTTATTCACAGGGATATTG -CGGCGAGAAATTGTTTGTTGAATTCCAAAAAGATCGTGAGTTTGTTTTTC -AAAAATTTCTGAATCTATGTGAATGAAAAAATAAATTTCAGCTGAAAATC -TCCGACTTTGGATTGTCGGTCAAAGGAGTTGCTATAAAGGAGCGAAAGGG -AGGATGTCTGCCGGTCAAGTACATGGCTCCGGAGACATTGAAGAAGGGGT -TGTACAGTACTGCCTCTGATATTTATAGGTGAGCCTACGAGCATACATAG -ACATTGGTAGTGGCGTCAGCGGTGGCCTAGAAACCTTATCCGCGTCTGAA -GGTTAATCAACCTCACACAAGTCTCTATGATTTCCAGCTACGGCGCTCTA -ATGTACGAAGTCTACACGGACGGAAAGACGCCATTCGAAACGTGCGGGCT -ACGTGGAAATGAGCTCCGAAAAGCGATCATCGGGAAGAGAATCAGCTTGG -CCGTTGAGGTAGAGCTACCAGTGTTCATTGCCAACATTTTCGAGCAAAGC -AGGCAGTACGAGACCGAAGATCGCATAAGCTCCAAGCAAATTATTCAGAT -TTTTAAGGAGGTTTGTGAAGCATTTTATCGGTTTTTTGTTCAAAAAATTA -GTAATTTTCCAGGAAGTCGGATTCCATGAAATTGAGACAAGTGGGATACT -GCATAAGCTTGTCAATTCTCTTCCGAGAATTCACAATAAGGAAAGAAAAC -CCGCGGCGGTGGCAGTGTAATAAATATCTGAAAATCCCCCCACCCCTGAA -AATATTTGACTGTATTTTTTAAATCAAACACACAACGCACACAAACAGAC -AGACAGAAAGCCTAAGTACACAGAGAAAATGTTTGAGGTGAGGTGCGAAA -GGGAGGAGGCTAGAACACCTACTTTACGCCAACAAGTTATGACTTTTTGG -AATTCAAAATGTCGTTTTTTGCTAGTTCACTGCTTACCTACAAACCTTCC -TACCTTGTCTGCCTACCTTCCTTCCTATTCTCTTATTGCAAGATCTTTTG -AATTTTTCTGAAACGTCTGTCTACTTCTGCGTCATTTGCAAACAGGCTGT -TCTCAGTTTTAGGGGGTGGCAGCACCCACAAAAAAACATTGGAACAGAAA -TCAGTCGGAGTGATCTACTAGATTAGATAAACATTAGATATCAGTTTGGA -AAAGTTAAACATTATTAACTCACAATGGATTTTCTTATTGTGTTTCTTGA -TATAAAGCGTTGAGCGGTATTGATACCATTACAATGCACTAAGCTAAAGG -CTGTCAGAGCCGAATGAAAAACATGATACATCGAGCATGCGGCAATTGGC -GTTCGGAAAATCGGCAAATTAAGATTTGCCGGAAATGTTTTGAGGGATTT -TTTATAAGATTTAAATGTGCCTTTTTGAAATTGTGTCCCGTTTTCTTTAG -ATATTTTTATAGGATTCGCTCACTTTTCAAAATAGACGTAGGAGAATTCA -TAGGATGCATACACTTTTGCCGATTGAAATTTAAATTCTGAAATTTCCAA -TAAAAGTGCATCACCACAATTTGCCGACTTTTGGCAATTGCCGTTTCTCC -GGCAAATTCGACAAACCGGCAATTTGCCGATTTGTCGATTTGCCAGAAAT -TTTCAATTCCGGCAATTTTTCGATTTGCCAATTTGCCGAGAATTTCAATT -CCGTCAATTTGCCATATTGCCGGAAAAAATCGTTTGCCGCCCATCCCTGG -TTCGAACTCCTAGAATGGTAGAATATGAGTATACTAAAAATAATTTGAAC -AGAACTGGAACTGGAAGAAAAATTTTTTACCGACGTCTTCTGAGAAAATT -TCGTGAAAATTGAGTTTTTATCACTTTCTGACTCACAATAAAAAAAATTT -CCAAAATTTTTTGAATAGTTCTCGATCGTTTCCAAACTGGTCTTCCGACA -TTCAGGTGCGTGATTGGTAAATATGAGGGAACTGCCATAATCAAATGAAA -AACACGGTGTATCGTCTGAGAAAACCTTAAACTGTTCCGTTTTAGTAATT -GGACAAGGATCTGCTGAATCTCGCTACTATAGCAACCGACATCTTGCGGG -TCCAAAAAAGATTGATCTTGAAAATTTGATCCAAGTTTATTTAATCGCCG -CCACACACACACTCACAAAAAAATCAATCAAATCACCCATATCAGTTGCG -CGATTTCTAGTTTCTAGGCGCGAAAATCAAAAGGAGGAGAAGAAGCATTT -CCGCATTACTCGTGTGTGTGCCGTTTCCGTTTATTTGTCCCTCAGGCTCC -CCTCTCTGTTTTTTTTGTTTGCGAAAACTGTCTCTCTCTCTCTCTCTCCA -TCACTTTTCTGTTGCGGAATAGAGGGAGAGAGAGAGAATTTCGGAGGGAA -AAATACCTGAAATGTGATCCTCTCTCTGTATGTCATTGACTGTTGCGCGA -GAGCCTTTTCCCGCGCGCGCGAGCCTCCCACCTACCCGTCGACGAGCCTA -TTTTCTTGTCGGCGGTGCCATTCGGCAATACACGTCCCTCTCTCTTCTTG -CTCTAGAAACATTCGGATTTTGATTTTTTGATTTTTCATGGTGGATCTGT -AGGCTTTTTTAGGCCATCTTGGACTTTGTGGTGGCCTAATATATGGTGTA -TTTTCCAATTTATCATATTTGCTTTAGTATTGTCCGACTTGTAGGCAAAT -TGCACCATTTTAAGCCAAGTAATAAAGCTTTGAAGTTTGGCTGCCTAGGT -TTTTCTAGCCACCAAACAATTTTTTTGTTTTCACAGCACACTTTTTTAAA -GACTGTCATAAGTTTTCAAAATTCTTTGAAAAATTTTACACCGAATTTTG -AGATCTTTAAGTTTGGTGGCCTAAATTTTTCAAAATTTTCTATGCCACCA -GACTGAAACGTCCTAACTCTATTTGAATTATCTTTGAAACTATGAAAACT -ACAAGTTCGACTAAATATGGCTTATCCAATTAAACTCGATTGGTGGCCTA -GAAAACCAATTTCGATTTATTTCATTTTCTAGGCCACCAATAATCTTGTT -CGAAAATTACTTTTATTTAATTACAGTGGAGTTTGGAATACTTACTGCCA -TGGGCTGTAAGATGTTGCTCGCCTAACTTTTTCTATGCCAGCAACCAAAA -AGTGGTGTTGGTGGCCGACAAACCCAAACTTGGACAATTGCATTTTCTAG -GCCATCATTTTTTTTAAACTAATCGTTGTTGGTTTAGTCTACTGTAAAAA -ATCAAATCGATAAGAACATTGGGAGCCAAGCTTTGGAGTTGGTGGCCTAG -ATTTTTCTAGGTCACTAACTTGAAATGTCTGTAACTCTAAAAAATAATTT -AGAGATATATAACAGAATTAGTAGGCTAATTTTAGGATGAGAAACTATTT -AAACAATTGGTGGACTAGAAACTGAATTTTGAAATTTCTAGGCCACCAAT -TCCAAATAAGCCTATTTCACTCCTGAATTGAGATAAAACGCTGAAATTTT -GGACATATTAGAATACGCTATATTTGAAAAAATGGAATTGGTGACCTAGA -AAATATTTTTTTGAAATTTCTGCTCCACCAATTTCAATTATAGCATAACT -CATTTCATAGTTGTAGGACGGTGATTGAAATTTAGGATAGACAGATTTTA -AACCAAAACAGATTGATGGCCCTTGAAATTTCTAGGCCACCTCTCCAGAA -AAAAATCTGAAAATTGTTTTTATTTCTAATTCATTTTCTTCGTCCGTTTT -TCATCTCTCGAGGATCTTATCCCCTTGTCTTACGTCTCCCACCCGCTGCT -ATTTGGGCGACCTTCATAACTGTGAAAATTCTCACCATTCTCCCTCTCTC -GTTTTTGCCCCCCCCCCCCGGTCTCCTATCATTGTTCAAGTACACCTGTT -GTCCCATAACATCTGCCAACCAATTTTTTCCAATTTTGCCACAATTTTTA -TTCAAAAAAGTGCATTGCAGCGGCAGGCATGCCTCACTCGTACACACACT -TGAGCATACAGGAAAAGCGAAAAAATCAGTGATTGTTTGGATTCCTGGCT -CTTTCTAGGAAAAAAACTCTTCCATTTTTGTAGTGCACATCAAAATGATC -AAGCTGGTTAATTTTCAAGTGACTCCCAAAAAAATAACTGAGAAAGTTGC -GTTTTAAAGTTTCTAGGCCATTGTGGGATTTCTAGGTAGGTTTTTGAAAA -TAGAAGACAGTCTTGCACTAAAGTTTTGATTAGGCTGTTAAATGATTTTT -GTCAGTACGTTTTTTGGAACTTCGATTTTTGCCAAAAATTCCTTTTTTAG -TTTTTGTTTCAGTTTTTTGCAAATTTTTATTTCTTCCATATCTTACAACA -TTTAGAAGGTCTCAAAGTCTCTGATAGCCAAGAATTGACTCTAATGACGT -TATGAGCTCCGAGACTATTTTAACCTTTTTCCCTTTTAAGCATAAAATAT -ATAAATATCAAAAATTTAATACAAAAACTTCTCGTTTCGAAACGTTTCGA -AATCCTCCAGTTAAAAAAAAATTAGATTACGGCATCGGAAAAATTGCGAA -ACTTTTGAATCTGAGGGATTTTCAATAGAGGGTCCCGCCAGGAATTTGAG -TTTTTAACAGTACCCTTTCCATCGTCCTTCCCGAAGCCCATTACATCATC -ATTAATTTTGCGACCTTTCTAAAAGCGGTCATGGGGGGGGGGACATGTGT -TTGTTGCATATACAGGGACCCCCCGCCACAACCACCGCAACTAGAGATAA -AGATCTGCTGCACACAGACAGCTGGCACATGGATGGACAGAATGTCTCCT -TAATTTTACCGCCTATTTCATAATAATAAAAGTAGAACGGGGGGCAGAAA -AGAGAATGATTGCGAAACCACCTGCTTGGCTGTCAGCGCATAAACTTTTC -GGAAATTTTGGGTCCCACCACGCTTTTTTCGGTAACAAATTTTGAGATTT -CTCGATACACCATGATGTCTTTTGGTGGAATTTTGGGTTATCATGGCTAA -TACAAAGCTTTAACGTGCCTTGAACTTTCGCAATTTGAACTTTTGGCCTT -TACTTAAAAATTTCGATGGGGCTCTATAAGCCATGTGGTTTCGAACTTTT -CCTGAAAATTTAGATTTTTGTTCATGCACCATGTTGTTTTTTTTTTGGAA -TAATTGAGGAATTCCTTACTTTTAAAGTAAAAAGTTTGGTGAGATCCATG -TGTTTTCATATTATTCAGTTGGTAAATTATACAGATTATTGACTGAAGGT -TAATTTTTTGTTGGGAAAATAAAAATCGCCAAAATCAATAAAATCGTATT -TAGAAGTAGGGTTTCCATATAGGCGGTAAAAGGCTTGTCTGCCTGACAAT -AAGACGACCGCCGCTCGCCTCAATCCGCGGCGGAGGCAGGCAGGGTTCAG -GTAGGCACTGAAACCGCGCCTGCTTACCATGATGTTCCGTTCTTGTCGAT -GCACCATGATAATTTTGGGTTACATTTTGAGCCTTTTCGAAAAATTAATG -GTGGAAAATTTCAAGCTGAATTTTAATATTTATTTTTTTAACCGTATTGT -GGGACATGCAAATGTCTTTCATTTTGTGTCCCTTCACTCTAACGTCTTCA -GAATTTTCGAACTTCTCGATGCACCATAATGCTGTTTGGCGATAACTTTA -GAGTAAGAATGGTAGCGATTTTTGCGATGCACCATGACGTTTTTATCGAT -TTTCAGAAAAAAAATCACTCCGAGACCCAAATAGTTTCATTCTCGACGCA -CTATAACGTTTTCGAAGTAAATTTCAAAATTGCTTCTCGGAAAAGTTTTT -TGAGACCTACATGCACCTTTAATCTTCTTTGGAAACTTTGGAATTTCCGC -CGAATACTCTCATTTCAGTTGTTCTCGATGCACCATGATGGTATTTTTTT -CAAATTACTTTTTTTTGATTTTTCCATGAGAGGACCAATATCTGTCTTTA -TAACGGCGCATTCTGTAACCAAATTTTGAAATTCCACGACATTCTGCTCT -CATCGATTCAACATGATAATTTTAAAATGAAATTTAGCGATTTTTCGGGA -AAAAAACAGTTTCGAGATTTTCTAGTTATTGGACACTCTGCACCTTGCTT -ATTTGGAAATTACATTTTAAACCGACAACCCTTCAAAAACTGCTTTTCGT -CGATGCACTATGAGTGCATAATTTTGTGTAAATCGTGGTGGGCCTCTAAA -AAAACCGAAAAAAAAAACGTATAAAACGCAAACAAATTGTTTTTGTTGTA -ATGTTGACACCAACAGATTCGGCGTGGAATATACGGAAGATCGGATTTCC -AAAAAAACAACCGCTCTCCTGTTTTCGACGTTCCGCCGCTTTTTATGGGA -GAAGTAGTATGTACCTTTAAGGGTACTGTAGCCCCTTGAATATTGGCCTA -AAAGTGAAACTAGTGTTGCCAAAAAAAAACGAGATGACCAGTTTCAATAT -GTCATTTACATCTACACATTTCTAAAATCTCATTTTAAATTCCATTGTTT -TCTCGTTTCTTCTGTCCCAAAGTACCGTATCCTCATCCTTCTACCACCTT -AATTTGCATTTCTTCTTCCTTATTCACTCTTCTTCCCCTGGACGAAAAAT -GTTGCACGACAACAACAAAAGAGACCCGCCCCCCACCATCGGTTTCTCTG -AACCTCTAACTGTCCCCGCCCCCTTTTGGGAGCCCACTGTCTTTTCTTTT -TTTCTTTGGTCGCTGATTATGACGGATCGTTTTTGTCGTTTTTGTATTAC -AGGAATACAAATTTCCCAAAACGCGTATTGCACAACATATTTGACGTGCA -AAATATCTAGTAGCGAAAACTATAGTAACTCTTTAAATGACTTTTGTAGC -ACTGATGCCGATTTAATTAAATTATTTATTAACAGATAAAATATTAAAAG -AAAACACGACAATTCAAAAAAATTCATTTCGTAAATCGAGCCCGTAAATC -GACACAAGCGCTACAGTAGTCATTTAAAGAATTACTGTTTTTTCGCTACG -AGATATTTTGTGCGTCAAATATGTTGCGCAATACGCATTCTTATAATTTT -GTGTACCCGTAGTATATTTTTGTCTCTCTGATTTCCATTGCAATTTTTTA -ATTCCATATTTTTTTGGTGACAAATTTCTCCGCTTATCAATTTTTTTTTC -AACCACATAATTATTAACCCCAAAACATCGCAGATTTTCAGGTAAAATGC -CAGTCGTGAGCGTTAGACCTTTTTCTATGAGAAATGGTGAGCAATTTTTT -TGAAGTTTTTTTTTGAAATTTTTAATTTTTCCAGAAGGCTTCTCAAACGG -GCATAACACGTGGAACGACGCCGAATTTTGGAAACCGTGAGTTTTCGGCA -AATAAGCTAACAGTCTAAGAAACACGAAAAAAAATCCAATTTTCTTTTCA -AAATTCGTGATTTTCGGATGATTTTTGAACTTTTTGATTAATGTTCCCAC -TGAAAATCCTCCAAATCTCTAAAAATCCGCTTCTAAAAAAGCCTCAAATG -GCCTTGCGAGAATAGACGGAATGTTCAAGGATGACTGGTATAAAATCGGC -AAACGTGTTGCCATTCAAACAGAATATCTCGAAATTTCGCCTTCCTTTTT -TTTAAGTGGGTCGGATATTTAACATACAGAAGAGAATAGGGAGAGAAAAG -AGGGAAAAGAGGGGAAAAGTCTTCTTGGAAACAACCTCGAACCGCAATTA -AGTTTTTGCCTCACCCTTCAATTTTCGTGAGAAAGTTAAAAATCCAAATT -TTTTTCTCCTTTTTTAAAAAAAGATTTCCTCCTCAAAAATTCAAAGGATC -GAATTTTTTGTTACACGCCTGCCTCCTTTTTATTACCCTTGTTCTTGATC -GCAACCTCTTTTCTAGATTACTTGAAAAAATGCGCTATTTTTTTTCCTTT -TTCAACAGAGTCAATTTCAAAGGTGCTGTGGAAAAAGTTTCGGTTTTTTT -TTGCAAAAATAATCGAAATTTGTTCGTTTATACTGCTTAAAAAATGACCA -AAATTTCAAGTAATTCATTCGAAAAATCGATTTTTTTGAAATATACAAAA -ATTTTCAATTTTTCATATCTGAAAACACAATTTTTTCGATTTTTCATTTT -TCTTGGAAAAAACACAAAAAAAAACTGTATTTAATTTCCCACTTAATACT -ACGATATCCAAGCCCCGCCTCCGCGTATTGTACGTGAACACGGCGGCCCA -AAATTACACACTATCTCACACACGTTAAATGAGTGATACCGTACTCTCTC -TGTTTTTTCTTTCATTTTTTCGGCGCCGAAAATTTTCAATTTTTGGTGGT -TCTTTTGGCGGGATTTTTCGGATTTTTGTCGCGTTCACACACACACACCA -GTTGGTGTTGCCTGTCGTCACCCACCCGCCCCACTCTTTGTCCGTGTACT -GCTTTGCCATTTGTGCGCGCGTACCGCTGCCCGTCTGTCTTTCTCATCAT -ATGCGCCTCGTTTTGTCGCTTTTTCTCCATTTGCCCTTCCTACATGGGTA -CCTGCGGTTTTCATCGAAAATATCCTTAAAAATTCCGAAAAACCTCTATT -TTTCGATTTTTGAATCGATTTTCGCCCAAACATAACCATTTTTCAGAATG -AAGGAAGAACAAATCGCCTATAAATTGCCAGGGGCTTGGTATTACGAGGA -GGACACTGCCTCGTGCTCTCCAGTCAGCGATCCGGAGGATATTGCGCAGT -TTCTCAACTACAGAACGTCGATAGGCGTGCAAAATGTCACAGAGTCCGTG -GAAGTTCCGACGTCGGAGCATGTCGCCGAGATTGTTGGTCGTCAAGGTAA -AAATTGCCTTTTTAGTCAAATCTACAGTTTCCACAAATTTTCAGGCTGCA -AAATTAAGGCACTGCGCGCCAAGACCAACACCTACATCAAGACACCGGTT -CGCGGAGAAGATCCAATTTTCGTGGTCACCGGACGCCTGGAGGACGTGAA -CGAGGCGAAACGAGAGATCGACTGCGCCGCCGAGCACTTCACACAGATCC -GTGCGTCGAGAAGACATACACAAGGTAGGTGACCGTAGGCAGCCGGTTCC -TGAGCGCCTTGTTCAGTTGTTCCAGGAGCCCATGCACCTGGACAGATCAC -GAGCTATGTCAGAGTTCCGTTAAGAGTTGTCGGACTCGTCGTCGGACCGA -AAGGAGCGACTATCAAGCGAATTCAACAGGACACCCACACGTACATCATT -ACGCCGAGCCGAGAAAGGGAGCCCGTTTTTGAGGTAATTTTGTTGGAGAG -CATAGAGTTTTGGAGCAAAATTCTCAGCAATTTCATGCTTTTTAACAAAA -ACAGAGAAGTTTCTAGTTTCGGCTTAGAAAATACTGAAAATCGGCTTTTC -CATGGCATATATCGTGCTGAAAATCTACTTTTGACTGAAAAATTCAAGTT -TATGACTAAGAAAAGTTAGATAATTAGACCATGCTATTATTTCATAATAT -TGGTCCAATTTTTGTTGCTTTGCTGAAAATTAACAAAATTTAAAAATCGG -CGGGGTTTCTGAAATATTTCTGTATAAAAACCGATTTCAACTCCAATTTT -CCTCGATTTTTACATATAAGTAATCTAGAAAAATTGTAAAATGGGGAGAA -TTCATAAGAAAATCGGCTGTTTTGTAGCAAAGTTTGTAAATATATCATTC -TGAAAGTCTCAGCGATAACCGTGATTCTAGAAAACCTCATCAGGATTTGA -TTTCTGCGACACACTTCTCTCGAGTTTTACATAGAAGTTGTTCATTACAA -ATTTCTATTTTTAAGGTCCCCATTACCATTGTCAATCTTTCATTCCGATT -ATTTGTTTTTCCTCGTCACTGCAAGAAGGGGAGCCTAATGCCTAGACAGA -GACAGAAAACACATGTGTGTTTGTAAGTGTCTGGTGTGATATACCCAATT -CTTTTCGGCCGTCTCTTGTTTTCTTCCTGACACCGAGTTTCGAGCGATTT -TCGAGGTCGTACAGTTGTGAATTGGCTGCCACTGCTGTGGCAAACAAACA -AAAACAATCAAACTTGTGCGGAATTGATATTCTAAAGAGAATAAAGAGCA -ACCATGGGCGCCGAAACGAGCAGCGGAAGGGCTTGTGACCTCTTGGTGTG -AATTTTAAACGGTTTCCTTCCATCCGAAATGCTAAAAATTCCTCGGGAGC -CGTTTAGGGTCTTCACTGAGAGATGATGATTAGAATCTTTTAATTTGGTA -GAATTCCCCCCGCGGGACCGATTAATGTTGCATGTCGTCTTCTTCTTCTT -GGCAGCAAAATATCATTGTTGATGAGATATCTCAGTTTGATGCTCAATGA -CGCCTTGAGAAACATCCAGCACACAGTAGATTAGTCGAATTACCGATGGA -TGGGGCCGCCCGGGTTTTTGGAGCCAAGAGTCACGCGATGGGGAGTCCAC -ATACACACGCACCAACTCTTTCATTCCATCTAACAGGGTAGTAGGGTGAA -GAAAAGGGGGGGGATCGCGATGACAAAGAGACTCAATTAATTAAATGACC -GGGGCGGGCGCCAAATTGCACATATGCTTGGTTTTATTGCACCGTTGGCT -CAGGGAGAGCAACATTTTGTGGCAGCACCAGGGGTACTTCAAAATGACGA -ACAAAGGTCGTTGTTGTTTCTATAGGAAGGCTTCCGAACTTTTGAACAGT -AATCAGATCATATTAGGGTTATGTAATTGACGGTTTTGACCGTATGTGTC -TATAGATGCGTGTGTGTGTGTGTGTGTGGCGACATAAATTACCGTATCCG -CATGGCCTTTTTCCTCCTTCCTCACAATGGTAATTATCATCCCCCACTAC -TCTGGGTCGCCGGACGAACTGTGAATGTGTTGACAGTGCGGGCCCACTAG -TACATGACATCTTGCCCCGGTGCGGTGCGCTCATCGTTATTCCTCCCAAT -TTAGTTGTCCGTTTGACACAAATGCCTCCGGTACCCTGGACGAGACAAGG -AGGTGATGGATTTGCCAGGCGGGGAAGGAATTACATGATGTTTGGGAGAA -TATGAGGGAAAGGTACAGAAGCTTCACCTCGGATATTATATGCGTTCTAA -AAAGACCAATTGTCGTTTTTGTTCGTGGCTCAAATGAATAATTGGTATGG -AAATATAGAAAAATGTCCGACTAGTTTGGTAATAGAATTGTTTCGTTTTG -AACATTTCAAAAATACCTCAAATAGTGCACTTGAGATCTTTGTTGAATTT -TCAAAGGTTTTATTTTCAGATAAATTGAGCATTTTCCATACTTATAAAAT -CAATTTTTGGTTCAAAAACTTCTAATTTTCTCACCGAAAAAGTTCTCACA -AGACAGTGACAGAGGTCGCGTGTCGTTTTGATATCCATCTCGATAATCAG -AGATTGTGATCTATGCCTCAATGACACAGTTCCGCGAAGGAGTCCGAGAA -AAACGTACAAAATTGGGGAAAAATATTGGAAATAACATTTATTGAAAAAT -TAAAAAAAAAACATAAACTATTTAAATTCACAAAAATTCGGAAGCATATT -TCCTATAATGAAAACAAAAAATTCTGAAAATGTGTACTGCACAACATATT -TGACGCGCATAATCTCTTGTAGCAAAAACTACAGTAATTCATAAAATTGA -CTACTGTAGCGCTTGTTTTGAGTTACGTGCTCTACGAAATGAATTTAAAT -AATTTATCGATGGAAAAATAATTTTAAGCAGAAAATGAGAAAATAATATG -AAGAAACAAAAAGAAATTCGAGTTACGTGCTCTAAGAAATGAATTTAAAA -AATTTATCGATGGAAAAATATTTTTAAGAAGAAAATGAGAAAATAATATG -AAGAAACGAAAAGAAATTCATTCGAAAATCGAGCGCGTAAATCCAGAGCT -ACAGTAATCAGTGAAAGAATTACTGTAGTTTTCGCTACTAGATATTTAGT -GCGTCAAATATGTTGCGCAATACACATTTCTGGAATTTTGTGTTTCCGTA -ATAAAATAAGTTTTTTGCGAGAACTACAAAAATATAACTATTTCTATTCC -AGGTGACCGGCCTCCCACATAACGTCGAGGCTGCCCGCAAGGAGATCGAG -ACGCACATCTTCCAGCGAACCGGAAATCTTCCAGAAACCGACAATGACTT -TGCCGGACAGTTGGCCGGTGTCTCGTTGATGGTGCAGAAGCAGCAACAGG -CTCAACAACAAATGCAGGAGGCTCAGCAACAATCGATGTTCTATCGAAGA -GCATTCGGCAACAGTAATCCGTTCAATCAGAAGGAGATGTCGTCGTCGCC -ATTCGGAATGGAGAGCTCGTTGGGATTGGACGCGTTGCTCCGCAGTTTCC -CATCGATGCGTAGTTCGTTGACTCCGGAATCTCTTTCCGGTACTGGACTG -TCTTCTCGTCCATCGTTGGGAGGAGGACAATCGGCGAAACAAGATCTGCC -AACCTACGACTACTGGGGAACCAACAACTCGCTTAATGATATTATGGAGA -ACGGTAAGCTTTTTTTGCGAATTTTAATAAGAATTTTAAATGACAAATAA -GGATTTTTCAGAAATTCTCAGCCGCAAGTACGATGCCCTGTCCGCATGGT -CGTCGATGGGATTGGAGAAACGCGAGGAATCCCCAACCAATGGGTATATA -TTTTTGAAGGAATTTTATAAATTTTTGAAATAAAACTAAAAATTGCAATT -TTCCTTCAAAGTTCTAAATTTTTGAAAGAAAATTTGATTTTCCGCTAAAA -AATTTAAAAAAAAAACAAGTTTTCGTGTTTTCCACTCGGAACCTGACGGC -TTCTTATCAATTTTTTAAATAAAAAATAACGTTTCTAAAACTCAGAATGT -TTAAAAAATTTCACATTAAAAAATTATTTTTCCGAAATCTTGAACCTATC -CGTTTTTGAAAATAAAAAAGAGTAAAATCGTAGTTTTCTCTATAAAAATT -ATAATTTTCATTTGAAATTCAAAAATTTTTAAATAAAATTGGATTTTGTC -CGTCAGAAATCTATAAAAAGAAAATTTTTTTTGAACAATAAAAGAAAAAT -TGTAATTTTCTTTTGAACTTCAAAAAAATATGTTTTTTTTCACATGCAAA -AAATTGATTTTTTCAAAACCTCGTTTTTGAGAGAAAAAGGTGAAATTCCA -ATTTTAAGAGGTAAAGTTAAATTTATTTATTTTATGAGAAAAACTTGAAA -TTTAAAGGAAAATTACTGAAATTTACAATTTATCATACATATTTTTTAAT -TTCGACATATCTCGAAATATCAAGTCGTAAATTTTTTCCACAAAAGTGTG -ATATTCTCTTTAAAAACTAGAAAATTTCAATTGTAAATTTATGAAAAATC -AAATTTTTTGCAGGCTCATGTCCTCCCTCAAAGGAACATCCGCCGGCTTC -GGTCTTCTCAGCACAATCTGGTCTGGCGGAAACATGAATCTGAGCCCAGG -ATCGTTGGCTTCAGCATCTGCCTCGCCGACTTCATCGACCTGCGATCACA -ACGATCATACTCTCGTGCCGATCAATGGATAAGCTGTGGATCCATTCATC -ATTCCATTACTATCGTGTAGACTCTCATCTAGCAAAAACCCATCCTCAAC -GAGTTCCAAATTCATCTTTCCATTCTTTAAAAGACTCTTTTTCCCATTTT -CTACTTTGTTCATCGGTGTACGAGTCCCTCCATTCCCATTTTCTCACCTC -TTTACTACATTACTAGAACACACAAAAATCACCATCATTCTCACCCCAAA -ATCCTAGACAAAAAAAACGAAAAAAATCACATATATTTATATATAACTAT -TATTATTTGTTATTCATATTTTTGAAATATCTATATTATATATATTTATA -TATGTAACCCATGCAGTCCCCCAATATATATTCCTACAGTAGGTTTTTTT -GGAAAATCTGTAACTTTCTCTATTATTCTTTTTTGCATTATGATAGGACG -ACCAACTCATGTTTTAAACAAAAATTATATATATTATAAGGATTTCCTCT -TTTCTCTCTATCTCTCACCTAGTGTTTAACTCCCAATTTTCCCCCTCTCT -ACTACGCACAACTAACGGAGAATTGAGAGGCCTTTTATATTTATAGCACC -TCTTTATAATTAAAAACTCGAGTGATCCCCACCTCACCCATCAAATTTAT -CGTATTTTGTAAAAGTTCTGATATATTCCACAGATTTTGGTGTATGTGAA -TGAAGCGATTCGTGTCGTCTCTCCATATTCTGGTATCCATAGCAACTCCC -CGAGCTTTTGGCTCACTCGCGCACGCCCTATACTATACCTTTACTATTAT -TAAATGCACTCAACAAATCCTATCCTGCGTCAATTGGCCGATCAATTGTC -CGAATTGCCACAATATGCACCATTGCGGGTAATAATAGCACAATAGTTGA -ATATATTAATAATTCAAAAATATTTATTATATTTTGAGGTGTCCCATTGT -TTCAGACATATATCCGCGCGACGATAAGTGCCACGTTGGGGGAAACGCCA -AAGAAAACGAGTAGGGATTTGACGTATAGAGGTGAAATTTTTAGAAAATT -TGAAATTTTCTGAAAAAAAAAGGATTTTTCTTTTATGAAAAATGCTCTTT -TCGCCAAAAAAATCACAATTTTCGACTTAAAAACTTCAAAATTTTTTCAG -GAACACACAATTCAAAATACAAAATATCTCGTAGCAAAAACTACAGTAAT -TCTTTAAATGACTACTGTAGAGCTTGTGTCGATTTACGGGCTCAATTTTA -AAATTAGATAAAAATGAGAAAATAAAGACACGAAGAAACGAATGAAAGTG -TAATATCGAAAATATTCGAAAATAAATAAATTTCAAAAATCGAGTCCGTA -AATCGACACAAGAGCTACAGTAGTCATTTAAAGAATTACTGTAGTTTTCG -TTACAAGATATTTTGCGCGTCAAATATATTGTGCAATATGCATTTTCAGA -ATTTTGTGTTTCCGTAATAGGTAAAATGTCAGAAAATCAAGGATTCAGTG -CAACCCCGCGTTCTACGGGTATTTTGGCCACGGCCACTTTTTGCAAAACT -GCAAAATAGGCGTTGTTATTTCATTTTCTGAAAAAAACATTGAAAATTAT -TATCGAGAAAGTACGATCTGACAAATTTCTCATAATTTATTTTTGATCTA -CCTGTTGAACTTTACTCCGCCCCCAATCTTGTTGCCGTTGTTATTTTGTT -GTAGCTGTCTTGTCGAAGGACGGGGAGGAGCCTAGTCAACAAGGTAGATA -AAAAATATATTATGAGAAATTTGTGCGATCGTATTTTTTCGATTATATAT -ATATATATATCTTCATGTAATTCTCATGAAATCTTGAAAAAAAACGCGAC -ACATGGTATTACCACGCCCACTTTTTATAATTTGAGCGCGTGCAATTTTT -TGTCGATAACATAGTTTCTATTTAAACAAAAAACATCGTGCGCCCACATT -GAAGAAAATCCTATAATTGGGCGTGGCCTTAACTCTGAAAATTTACAGAA -CGTGTCACCCATAGCATGATTGCCGATTGGCTCGAGCAGAATGGATATCC -AATATCATCTCAAGTCTTGAAAACAGAAATGTCTGGAAACTACATGGAGA -GTGCAGAAAAACACGTGGAAAATGGGGAAAAAATCGATAATCTATTGCGA -AGTCAGCTGAAAATCGATATTCGCGATGGCACCGGTGACGATTTTGAACG -AAAATCGATAAAATCGATTGGCGCCGGCCGCCCGTTTGCAAAAATTAATA -TGGTCGATAAACAGCGAGCACCGTTGAAAATTACACCGCTTAGTGATGAG -GAATTTCGAAAAACGATGCGGAAACGGATGGAAATGGAGAGGGAACGAGT -GAGTTGCGTTAAATAATTTTTTTTTGAAATATTTAACAAAAGTCGACAAG -GCGATTTTTTAAAATCGATGTTTCGCGACTTTTATTCAAAAGAAAAATTT -CAATGCCCTAAATCACTCAAATGATGATTAAAAAAGTATTTGCGCGCGCG -CGTAAAATTTAGTGCCAGCGTATGACACTATGTGGTGCAAACTTCACTCC -GGGTCCGACACTTTTTGGATTTTGCGCATCGCTATAAAGATTTCAGATCG -CGGCGTGAGAGCGGCGTTTGCGGCGCCGACATGAGAGTCCTACTTTCCTA -CTTTTCTTGGCAAAAAAATCGATCGATTTTTCAGCTCGCACGTCTATCCA -ACCAGGCAGAAGACGATTCCGACGATTCATCGTCCTCCTCCGACTCTTCC -ACGTCATCCGCGTCGTCATCTTCCGAGGAGAAGTTGACTTTTTCGGATAT -CTTGGGGAAACCCACAGCAGCTGGCGCGGAGAAAATGATCGAACTAAGCC -AAATTCCCAACGCATGGGGTCCGTCAAAATCCGCGTTAGTCACTGATGAC -GTGGCAAGCACTTCTGACCCACTTCCGGCGATTTTCAACGCACATCTTCC -GCCGCTCTCCATGGGACGACCACCGCTGACAAAAAGCGCGAAAAGTCGGG -AAATCGACGCCATTTTCGGCTCGGATAACGTGGATTATGATTTAGAGGAT -TTCGAGCAGGATGGCGTGGCGAAGAAAAAGTCTATACTGCCTATGGAGAA -AAAGAAGGAGGAAGCGAAACCAAAGGAACAGGAGCTAGTGGAGCCGTTGG -TCTTGTCAGAAGGTAACTTTGAACTTGCACCATGCAAAAATTTCGAAAAA -TTATGCACGTGGTCACTGGCTGTCCTTTTGCATAAGCTTGAAGCAAACGC -GCCTCATTGAGAATTCACGTTTGCGCCAACTCTCGCTATCCATTGGGCGT -GAGAGACGCAGATACTACTTTTTTCTCTGAACGTGAAAAACGCAAAGAAT -AACCGTTTTGCCGTCTGCATCTCTTCTTTCACACGCTATTTTGGCTGTGG -ACGAGGAATTCTCCTCTTCCAGGATTTTCTAGGCCATTTTCTCATATTTC -TCAAGTTTTCTCGTCCGCGAGAAAACGTGAATTTTGAGACAGCCAGCGAG -CACGTGATTATGCAACTCTCCTAAAAATCGATCATTGTTCCTGTAGCTTA -TAATTTTAAAGGCGCATATTCCGCTTGCGGAGCAAAAGTAAAAAAAAAAC -ATGCCTCTACATACAAATCGATGAATTTCCTGAAAAATCAATAATAAAAA -ATTTTCAGGAGAATCAATCGACGAGCTTGAAGATTTCGACACCGGTCTAC -TATCTTCCGGAGGATCCGATTATTCTTTTTAAAATTTTCTTCTTTTAAAA -AATTTCTTTTGAAATAAATAAATTCTCACCTAGGAATTTCAACAATTCAA -CTTGAAAAAAGTTCGCGCAAACTACGAACAAATGTGTGTCGAGCGGGCGG -AGCCACTGAGAAAGAGGAGCAAAATGTACACAAAACCATATTTGAGTGTA -ATTTTTCAAAGTTTGGCGCCGATTTTCTGTGAGAGATGAGTTTTCTCAAT -TTATATTTGGTTATTTTTATTTTAGTTCTTACTGGTAAATTTCTGGGTAA -GTCCTGATGACTTTGAAAACGAAAAAAACTCTTTCATTGATGCTAGTGCG -ATTGCTAGGAAAGCAACTTTTCAGTTACCAAGAAAAAGTCCAAGGCCATA -GGGATTAGCTGCGTGGCATAACAACTCATCCATCCTCGCAGATGCAAATC -CGCTCTATTGGCAAATAACATGGAAGAGTATAAACATTTTCTCTTCCACA -CGGAAACCTAGTCCCCTTGGGGAGCGGTAGTGCCCACAACCCCGCATGTT -TACCAAACTACACAGACAGCGCTATTGTCTGCAAGTGGCAAAAAATGGCC -GCCGAAAATTTTTACAATGTAAATAATTTTCAAAGTGTTACTATTTGCAC -CTTTTTGGCAAAAATTCCATAAGTAAGAAATTTGATGGAAGAGATGCGAG -GTGCGGGGAGTCTGAAAATGGCTGCATGGCCTGTATGTGACCTGTGTATG -TGGCCTAAAGGTCTAGTTACCCCTAGAAATCAAAGTTCAGTTCAGCAAAG -AGACTTTATTTTCAGCACTCCAACAAGAGGCAGAAACTCAACGGTACGAC -GGATGGTACAACAACCTGGCGAACAGTGAATGGGGTTCTGCTGGTAGGTT -TTTTTGGAAGAGAAATGACGTCACACTGACCTACTCCTTCAGGAAGTCGG -CTGCATAGAGATGCACGTTCCTACTACTCAGACGGTGTATATTCAGTGAA -TAACTCACTTCCGTCCGCCCGTGAACTCTCCGATATACTATTTAAAGGAG -AGTCCGGTATTCCTAATACAAGAGGATGCACCACTTTATTGGCATTTTTC -AGTTTGTATTTTTTTAATACTTATAGTAGCCAATGTTTGTAGGTCAAGTA -GTTGCTTATGAAATAATGCAATCAAATGGAGTATCCTGTCCACTAGAGAC -ACTTAAAATTCAAGTACCCCTATGTGATAATGTATTTGATAACGAATGCG -AGGGGAAAACTACAATCCCATTTTACCGTGCAAAATACGACAAAGCAACT -GGAAATGGTCTTAACTCGCCTCGAGAACAAATCAATGAACGGACTTCATG -GATTGATGGATCATTCATCTATGGTACCACCCAGCCATGGGTGTCCGCAT -TAAGATCTTTTAAACAAGGACGGTTAGCTGAAGGTGTACCTGGATATCCA -CCACTTAACAACCCACATATTCCATTGAATAACCCCGCTCCGCCACAAGT -ACATCGATTGATGAGTCCAGATAGATTATTTAGTGAGTTCATTGTTCTAT -AGAAAAGTATAAATATTTAAAATTGAAGTGTTGGGAGACTCGCGTGTGAA -TGAGAATCCTGGTCTTCTTTCATTTGGTCTGATCCTCTTCCGTTGGCATA -ACTACAATGCAAATCAAATCTATCGAGAACATCCTGACTGGACAGACGAG -CAAATCTTCCAGGCAGCACGTCGTTTGGTGATTGCATCTATGCAGAAGAT -TATTGCATATGACTTTGTTCCAGGACTTCTAGGTTACTCAACTATCATTT -AATAGCTTAAACTCAGTGTTTCTTTTAAGGTGAAGACGTTCGTTTGTCAA -ACTACACCAAATACATGCCACATGTTCCACCTGGAATCTCGCATGCTTTT -GGAGCAGCCGCCTTCAGGTTCCCTCACTCAATTGTGCCACCAGCAATGCT -TCTGAGAAAACGAGGAAATAAATGTGAATTCCGGACGGAAGTTGGTGGAT -ATCCTGCATTGAGATTGTGCCAGAATTGGTGGAATGCACAGGATATTGTG -AAGGAGTACAGTGTGGATGAGATTATTCTTGGTTAGTTCATACTTGAGTG -GTTATATAATAAAGATTGTAATTTCAGGAATGGCAAGCCAGATAGCTGAA -CGAGATGATAACATAGTAGTCGAAGATCTTCGTGATTACATCTTCGGACC -AATGCATTTCTCTCGTTTGGATGTTGTTGCTTCATCAATAATGAGAGGAA -GGGACAATGGAGTACCACCGTATAATGAATTGAGAAGAACATTCGGACTT -GCACCAAAGACATGGGAGACAATGAATGAAGATTTCTACAAGAAGCATAC -TGCAAAAGTGGAAAAGTTGAAAGAGTTGTATGGAGGCAATATTTTATATC -TGGATGCTTATGTTGGAGGGTAAGCGTTTTTTATAAATTAAGTTAGAGAT -CCTCCAATATACCCTCATAACATATTGTATCAGTTTACTTCATCAATAAT -TCAGCTTGAACCATTTAGAATGCTGGAAGGAGGTGAAAATGGGCCTGGAG -AGATGTTCAAAGAAATCATAAAGGATCAGTTCACCCGTATTCGAGATGGA -GATCGATTCTGGTTTGAGAATAAACTAAATAGATTATTCACTGATGAAGA -AGTTCAAATGATTCATAGTATTACACTTCGTGATATTATCAAAGCAACAA -CCGATATCGATGAGACGATGCTTCAGAAGGATGTGAGTTTATTGTAAACA -CCCGTTGGTGATGATCGAGTAAGTTAATAGCATGTTTCATTCCAGTCATT -GATTGATATTTTGTCATGAATTGTTATATAACAATATATGTATGTATTAT -ATTACTCATGTCTCAATATTGCATTTAATTTCCAGGTATTTTTCTTCAAA -GAAGGTGATCCATGCCCCCAGCCGTTCCAAGTGAATACCATTGGACTTGA -GCCTTGTGCTCCACTTATTCAATCCACCTACTGGGATGATAACGATACTA -CTTATATCTACACTCTAATTGGTTTGGCGTGTATTCCTTTAAGTCAGTCT -TTATTTCAATCTAAATGACTACCGATAGAGACTCAGCGATTATAGAGTTG -ATCAAGCTAAGAACTTTCAGTTTGCTATAGTATCGGTCATTATATGGTTG -AACGACGTATCCGAATAGGTCATAACAGTGCTTGTGACAGCTTGACTACT -GACTTTTCAACAGAAAGTCCCAAAGTTAATGTCTACAAAGTGAATGGTTC -GTTATTTTTTCATACTTGATTTTTATTTAAATTATACGGTGAATCTGTTA -CAGCTTTGGAATGGCTTCAAGAAGAGTACATACGGCAAGTTCGGATAGAA -ATAGAGAATACCACGTTGACAGTGAAGAAGCCACGTGGTGGAATCCTTCG -AAAAATTCGTTTTGAAACTGGACAGAAGATTGAGGTATTCCACTCTATAC -CGAATCCATCAGCAATGCACGGACCATTTGTACTTTTGTCTCAAAAGAAT -AATCATCATTTGGTGATAAGATTGTCGTCTGATAGAGATTTATCTAAATT -TTTGGATCAAATTAGACAGGCGGCTAGTGGAATCAATGCAGAGGTTATCA -TAAAGGATGAGGAGAATTCTGTGAGTTTACTTCAAGAAATACGTCGAATC -TGGAAATTATTTCAGATTCTCTTGTCCCAAGCAATCACAAAAGAACGCCG -TCAAGACCGACTGGACCTGTTCTTCCGTGAAGCCTACGCAAAAGCATTCA -ATGATAGTGAACTTCAAGATTCGGAAACTTCATTTGACTCATCGAATGAT -GATATATTAAATGAGACAATATCTCGTGAGGAATTGGCAAGTGCAATGGG -AATGAAAGCTAATAATGAGTTTGTGAAGAGAATGTTCGCGATGACTGCAA -AACATAATGAGGATTCGCTCAGTTTCAATGAGTTTTTGACAGTATTGAGG -GAGTTTGTTAATGGTGAGTATGATTTACTAAAGTTCTGATCACAAAAACT -ACACGTGAATGAATGTTCCAGTCCGTTTTACACTAGGTTCGGTAAATATG -TATAATGTTATAGTGACTGTTACATGTTGAAGCAGTAGTCTTCTTTTCTT -TGAATGGCAACAAAAAGGCTCCCTCATTATTTAAGCTGTATTTCACTGCG -AATAACGGCTTAATGTGCTATTTAAACATTCGGGTCTATTAGTCTTTTAG -TATATTGTCGCGCATACTAAGGCTCGCTTTAATAATCAGTTTGAAACGCG -AATTTGATGGTGTTAAATACGATTTTAATTTGGGAATTGTTCACAATTAG -ATGCTATCTTGACTAATAATAATTAAATACAGAAACAAAAAACTTTTAAT -GGACAAAAATCACTCCGAAACTACCCAAATCGGCATTAGGTTAATGTCTT -TGATTACTCACCTTCTTTCCTAATTTCCAGCTCCTCAAAAGCAAAAACTG -CAAACTCTATTCAAAATGTGTGATTTGGAGGGAAAGAACAAGGTACTCCG -AAAGGATCTCGCAGAACTCGTCAAGTCCCTCAATCAAACCGCCGGAGTTC -ACATTACCGAAAGTGTGCAGCTTCGATTATTCAATGACGTGCTGCACAAG -TCTGGTATACATCCCTGTTTAGTATGCCAAGTATTATAAGAAGTTTCAGG -AGTAAGTGACGATGCGGAGTACTTGACTTGTAATAATTTCGACGCATTGT -TCTCGGAGATCTCTGACGTCCAGCCGATCGGTCTGCCATTTAATAGGAAG -AATTATAACTCACATATCAAGGAGTATGTTGTTGAATTCAAATCCGCAAG -TAAATACAAACTTCAGGCCATCATGCCACACCTCATTCCCAATAGTGGAC -CACTCTACTCCTGCTCCACTTTCTCTGATTCAGAGAATTTGTGCATTCCT -GGAAACCTATCGCCAACACGTCTTCATCATCTTCTGCTTTGTCGCCATTA -ACATTGTCCTTTTTTTCGAACTTTTCTGGCGTAAGTTTACTGTTTAGTTC -GGTTTTCAAAAGCAATATTCAATTAAGATTCCCGCTACCTAAACGAAGAT -CGAGACCTCCGTCGGGTGATGGGTGCCGGGATCGCTATCACTCTCTCTTC -TGCGGGAGCCTTGTCATTTTGCATGGCGTTGATATTGCTCACAGTTTGTA -GAAATATTATAACACTGCTTCGAGAGACAGTTATTGCGCAGTATATTCCA -TTTGACTCGGCTATCGCGTTCCATAAGGTAAGAGCCTCTCTCTTGGCCTA -GCGCTGTAAATAAAACTGCCAAATTTTTAAACTCCATCAATTTCAGATCG -TCGCATTATTCACCCTATTCTGGTCTACCCTTCACACCATCGGCCATTGT -GTTAACTTTTATCACGTTGGAACTCAAAGCGACCGTGGACTTGCTTGTCT -CTTCCAGGAAACATTTTTCGGGTAAGCCCCACCTACTCGGTAGATCTCTC -AGTAGATTGAACGTTGGCTTGCTTTCAGATCTGACGTCGTGCCTACCCTA -AGCTATTGGTTCTATGGAACAATTACTGGGTTGACGGGAATTGGATTAGT -TATTGTTATGAGTATCATTTATGTGTTCGCATTGCCAAAGTTCACTAGAA -GAGCATATCACGCGTTCCGGCTGACTCATCTTTTGAATATTGGGTTTTAT -GCACTCACTATTCTTCACGGACTTCCTTCACTTTTTGGGGTAAGGCTTAA -TTTAATTTGATTCATTTACGCTCTTTTTACGCTCTTGACGTCAATATTTG -TTACAGTCTCCCAAATTTGGCTACTACGTTGTTGGACCCATTGTCCTTTT -TGTAATCGATCGTATAATTGGGTTGATGCAATATTACAAGTCGTTGGATA -TTGCCCATGCAGAAATCCTTCCATCAGATATTATATACATCGAGTACCGT -CGTCCAAGAGAATTTGAATATAAATCAGGACAATGGATTACTGTATCATC -ACCATCTATATCATGTACCTTTAATGAATCTCACGCATTCTCGATTGCCT -CAAGTCCACAGGATGAGAATATGAAGTTGTATATAAAAGCAGTTGGACCA -TGGACATGGAAGTTGAGAAGTGAATTGATAAGATCATTGAATACAGGGTC -ACCATTCCCATTAATTCATATGAAAGGACCATATGGTGATGGTAATCAGG -AATGGATGAATTATGAAGTTGCAATAATGGTTGGAGCAGGAATCGGAGTG -ACTCCATATGCATCCACGCTTGTTGATCTTGTACAAAAAACATCAAGTGA -CTCGTTTCATAGAGTTCGATGTCGTAAAGTATATTTCCTATGGGTGTGTT -CGAGTCACAAGAACTTTGAATGGTTTGTGGATATGCTGAAAAATGTTGAA -AATCAAGCAAAGCCGGGAATCCTGGAGACACACATATTCGTCACTCAGAT -GTTCCATAAGTTTGATTTAAGAACTACTATGCTTGTGAGTTTTTTATGCG -TTTTTGGTTTTTTAGTGGTATAACTCTAAAACTAAATGTTTGGAGAAAAA -GGCTTAACTAATAAAATGTTGCTCATAACTTTTTCTATGCAATAAAATAT -GTTTCAAAATTTCATCCGAGATCTCACAAGTCCAAATTTGATTATTTTTC -TTAAAACGAGTATATTTCAAGACCGAAAAGTTTTCTTGAAAAAATGGTAT -ATTTTTTGCACATAATCATTTTTTCATAAAGTGCTCTGCAAATCAGAAAT -TAAAGTTCGAACAGTCTTATAGTTAGTACCGTGACATTTATTGTAACTTA -AAAAAAAAAATTACGCGACATAGAAACGCTCGATTATCTGAAAAACCAAA -TTGGATTTTGATTCTAGTTAATTTATTTTCAAAAATAAACATATTTTGTG -ATAATTGTAAACTAAAAACTATACCTGAATATTTTTATAAATTTTATGTG -GTTTTTGGTTTCAGGATTAAAACAATGGTAAAATACTACCCTAACGGCTT -ACCCAAGGCTCAGAAAATTGTAGTTAGTCTCAACAAATTAATACATATCA -TTTCTTATTTGCAGTACATTTGCGAGAAGCACTTCCGTGCCACCAACTCA -GGCATATCAATGTTCACTGGCCTACACGCTAAGAATCATTTCGGACGGCC -CAACTTCAAAGCTTTCTTCCAATTTATTCAGAGTGAACATAAGGAGGTTA -GTTTCATGGTTTTAACCTCTAAATAAAGCAAATTTGCAGCAATCCGAAAT -TGGAGTGTTCAGTTGTGGACCTGTAAACTTAAATGAAAGTATAGCTGAAG -GATGTGCAGATGCCAATCGACAACGAGATGCTCCGTCATTTGCACACCGC -TTTGAAACTTTCTAATCTTTCTACTGTTACTTACTATGAAAATCATAAAA -ATTAAGACGCTTCATGAATAAAACATTGAGAAAAAAAACCTGAAATAAAG -AATTTTCACATTTGTCCAGGTAGTATATATCCCCAATACAAACATTTTGA -GACGCGAACCTTCCCAAATAATCATCAGACATTGTTCTGTAATTAGGCAA -AAAACCAGCCCCCTAGCCTCCTCCCTCACCACAAATAAAACCAATTCCCC -CATTTCCCCCCAGTTCATTCACCAACAATGAGTTTGTTCAAAGTATACAC -CTCGTTTTCTTTGTTTTTCTCCGTTCTATTCCTTCTCGTCGCTTTTATTG -TGATCTATGACATTTTCGATGAAATTCGCGAATTTCAAGAAGTAATCGAA -AAAGATGCCAGGAAGTTTGAGGTAAGGCAATATGTGGTGCAGCAATAATT -TCCGCATTTTTCGTAGATCATACCGTTATGGGACAGTCTGACACCACGTG -ATAAAATAGTATACTAAGTATTACAAGCAAGGTTGAAACGAAAATGAAAT -TTCGTTTTCGAAAACGAAAACGAGAATTTTCGTTTTAAACGCGAAAAACG -AAAACGAAAACGAAAATATCAGTTTTGTCCAATTTAATTGGTAAAATATA -GATTTCATGAAATATTAGGTCCATTTTCGAATCAATAATAAACAAACAAT -AGTTTTATTACAAAAAAAACAATAAAAATTAAATAAAGCAAAAGAACAAT -AACAATAACACTTGCTGAACAACTATTCCATTAATCTAAACCAATTTTAA -AGCCTAAAACTTTTTGATTTTGCTGTAAGAACACAGACTTGCTCAACGAC -TTTGTAGACATCTTTCTTCTCAGCTTTGTAGAAACGCGGCCAGCTCCTGA -AAAAACTCGTTCCGATTCAGCAGATGAAGCTGGAGTTGTCAGATATCTGT -TCGCTATTTGAGAAAGCAATGGAAACTTAGATCGATTGAGCGGATTTTGC -CAAAAAACAGCGGGGTCTGATTTTCTATTGTTATCGGTATCGTAGAAAAC -TTCAACTTCTGCACTAGCACAGAGCATGGAATCTACAGGCGCTTTGTCTT -TTCTTTTTCTGATCTTGGAATGCTTTTTCTCGTAAGCTTCAAACAGGTCG -TCTATTCCCTCAAGAGTTTCATTTTCTGGCTCATCGACTGCTTCTTCCTC -TTCTTTTGATAATCCTTGAGCTAAGCTCAAAACAAGCTCTTTTCCGTCAC -AATATTTTCTTTTGTATCGTGGGTCAATGTTTGATGCAACAATCAGTTTG -AATGTCACCAGTCGGTGCCCGCGCCGTAGGTGCGGTCAACGGCTGGTATG -TATATAAAATATATTAGATTGAAAATATAACATTGAAAAAAAAAAACAAA -CATTGAAACACAATAAAAATCAAAATATAGACGCTCTTTATTCTTGAATA -AAAATAAGAATTACGAATTGTTCACTGGGAGTCAGCTTATTTCTTGTACA -AAATAATGATTTTGACCAGTGTCAGCTCAAAAAAAATACGTTGACAGAGA -GAGGTGGCATTTTCGTTTTTTCGAAAATTTTCGAAAACGAAAACGAAAAA -ATCATTTTCGCCAAAAACCCGAAAATAACGAAAAAACGAAAATTCGAAAA -CGAAAAAGTGACAAGCCTGATTACAAGGTCGGTATTTCATAATATGAATA -TTGTAGAGAAAGGTTACTAGCGATGATTCCAAAAAAATTTAGATTCATCA -GAGATGTACACCCAAATACCCAAGGCATAGGCCCTAATTATTGATTAGTC -ACAACTTCTTACTTCCAACAAGCTTTTCCTATTTTTCCAGTTCTACTCCA -CCGCCGCCTCACGTTCAATTGCCGGTCTCGACAAGCGGAGCCTATTCGGA -GGAGCTGTTTCTTTTTAGTTGTATATACATCTATTCAAAATTAAAAGTCA -TTGTTGTTGTTACCCATAAAACAGTGAATGAAAAAAAATGAAGTCTAGAC -AGAAAATGTAAAGCTGGCACAGAATACTCAAAGAAGCATAAAATATGTAT -AATAATGATGATATAGGGAAGGTTAGAACGTTTCAAAGCGATGTGCAAAT -GAAGGAGCATCTCGTTGTCGGTTGGCATCTGCACATCCTTCAGCTATACT -TTCATTCAAGTTTACAGGTCCACAACTGAACACTCCGATTTTGGATTGCT -GCAAATTTGCTTTATTTAGAGGTTAAAAAGCATTTAACTAACCTCCTTAT -GTTCACTCTGAATAAATTGGAAGAAAGCTTTGAAGTTGGGCCGTCCGAAA -TGGTTCTTAGCGTGGAGACCAGTAAACATTGAAATTCCTGAGTTGGTGGC -ACGGAAGTGCTTCTCGCAAATGTACTGCAAATAAGATGTTAAAGTTTAAA -AGCTTCAGACCTTAAGATGCCACTGCGTTTAAATGCGTCCGCTTTAATCA -GTTTATAACCAAACCTGACGTTTGATTTTGAAAATTATCTTCAATAAACT -CACAAGCATAGTAGTTCTCAAATCAAACTTGTGGAACGTCTGAGTGACAA -AGATATGTGTCTCCAAAATTCCCGACCTTGCTTGGTCTTCCACGTTCTTG -AGCACATCCACAAACCATTCATAGTTCTTGTGAGTTGAGCACACCCATAG -GAAATATACTTTACGGCAACGAACTCTGTGAAATGAGTCACTTGATGTTC -GTTGTACAAGATCAACAAGTGTCGATGCATATGGAGTCACTCCGATTCCT -GCTCCAACCATTATTGCAACTTCATAATCCATCCATTCTTGGTTACCATC -ACCATATGGTCCTTTCATATGGATTAATGGAAATGGCGATCCTGTATTCA -ATGATCTTATCAATTCGCTTCTCAACTTCCATGTCCATGGTCCAACTGCT -TTTATATACAACTTCATATTCTCATCCTGTGGACTTGAGGCAATCGAGAA -TGCGTGAGATTCATTAAAGGTACATGATATTGATGGTGATGATACAGTAA -CCCATTGTCCTGATTTATATTTAAACTCTCTTGGACGACGGTACTCGATG -TATATAATATCTGATGGAAGGATTTCTGCGTTTACAATTTCTAATTTTTT -GTAATATTGCATCAAACCAATTATGCGATCAATTACAAATAACACGATGG -GACCAACAACGTAGTAGCCAAATTTGGGAGACTGTAACAAATATTGAAGA -AACTTCTTGAACCGAACAGTGGCAAAAACTCACATCCAACAACTTTGGAA -GCCCATGAAGAAGAGTAAGTGCGTAAAAGGCAATATTGAGAAGATGTGTG -AGCCGGAATGCGTGATAAGCTCTCTTAATGAAACATGGTAACGCGAAAAC -ATAAATGATGCACATGACAGCGACCAATGCAATTCCTGTCAGACCTGTAA -TTGTGCTGAAGAACCAGTAACTGATTGAAGGAAGGAAGTTGGATCTGAAA -GTTATTTGATGAAAGTTGTTGACAGTCTTGAGGGAGTTTGTTAATGGTGC -GTATTCTAGTAAGATTGAATGCAAAAATGAATTCAAGTAAAGTATTACCC -AAAGAATGCTTCCTGAAAGAGACAAGCAAGACCTTCTTGACTTTGAGTTC -CAACGTGATAGAAATTGACACAATGTCCAACGGTGTGAAGAGTGGCCCAG -AAAGCCGCAAAGAGCGCAACGATCTAGAAATGTTCAGTTATTATAGAGTT -TTTGATACTGGCGGTCATAATAAACAATACTTTGTCCGAAATATTAGTTT -TCCCATTGTTTATCATAGTTTATTTTTTTATTCAAAAATCTGCCCTCTCT -ACAGAACACTTATATGTAAAGTAGACTTAAAAACATCTGAGTTTTTTGAG -CAACAAGAGACCCACACTCGTTCTAAAAAGAAATATATCTGGAGCACAGG -AAAATCTAAACTTAGGAGACACTTTTTTGTCAACAGAACACTACACACAA -TGAAGCAACACTGATCTAATGTTACCTTATCCTCACTTCTATTCATCATT -TATTCTTGCCTTTTATACATCGATATTTGTGTTTTTTGCTTCTTCTCCAA -TGTAGCCATTATTTTTTTTCTCATCTCTTTTTATTTTTGTTCCATTTTTA -TTTATGTAACCACTTGTGATGGTTTGTATCTATTAATGTGTGTTTTTTTT -CTACCTCACGATATCTTACTATCGTAATAAATTTAAAAAAATTAAACACT -TACAAGTTTAGGATAACATCGCTATATCATAAGTTCACATCTGGCTGAGA -AACACCATGTTCGATGCAAAGATCTTTCCTTTCATGCTTGTATTCTATTT -TAAAAAATCTTTTCAAAACATTGGGTATGCACAGTACAGTTATCCTACTT -GCATTAAACCTCCGCATTACTGTACAGATAATAAAATAACAAGTTTTCCC -TTATATCTGAACATGCTAAATATTTTTAAAAACAACTGATTTGACAAAAT -TTACTAATGCAATAATAATATTTAAAAAATGTGTTACACGCTGCCCTAAC -GTTTCTCACCTTGTGGAACGCAATAGCCGAGTCAAATGGAATATACTGCG -CAATGACTGTCTCTCGAAGAAGTGTGATTATGTTTCTACAAACTGTCAGC -AATATCAACGCCATGCAAAATGACAAGGCTCCCGCGGCACCACGAGTAAT -AGCGATTCCAGCTCCCATTACTCGTCGGAGATCCCTGTTTTCCGCCATGT -AACGATAATCTGAAAACTAAATTAACATGAGCTCCCAATTATATGAACTT -ACGCCAAAACCGTTCGAAGAAAAGAACAAGATTGATGGCAACAAAGCAGA -AGACAATGAAAACGTGTTGGCGATAGGTCTCCAAGAACGCTGAAACTTTG -TGGATCAAAGTTAGCGGTGCTGAACTGTTGATGGATCGATCCACGACGGC -AAATGAGTTCAGAGAAGATGTTCTAAAAGTTATAATTGTTATACAGTCAG -AGTCCTCCTGAATACTCACTCTCCAATACTTGGCTGATAGTTCTTTCGAT -TGAACGGCAGTCCAACTGGTTGCTTGTCAGGTATATCCGAGAACAGAGCA -TTGAAATCGTCGTAAGTCAGGTACTTGGCATCATTGCTCACTCCTGCATA -GTGCAACACTTCATTGAATAATCGAAGCTGCACACTTTCAGTAATGTGAA -CTCCAGCGGTTTGATTGAGGGACTTGACGAGTTCCGCGAGATCCTTTCGG -AGTACCTTGTTCTTTCCCTCCAAATCACACATTTTGAATAGAGTTTGCAG -TTTTTGCTTTTGAGGAGCTGGAAATTAAAGTAGGTGGTGCATAACATTTT -TTAAAGGCAGTGTTGGTTTTTCTACTGTTCAGTAAAAGAAAATCTACAAT -TGACTAAATTCTCAATACTTTGATGCCATATTAGTTGTGACCTCCCTGTC -ACACGAGAACTTTCTACAGTGCTCGCAAATTCTATAGGACTCCCCCGAAT -AAATTCAGATTCAGAATAAATAACCTTTAGAACTTTTACTATCTCGAAAT -ATTGCCGACCATAGGACACCGAGTTTCACCTCACGGCTAATGAACCTACA -AAATGTTAATCGGTCGCTAATCCCGGCCTAGTTTAAATTCAGATCAGAAG -AAATAAATTTCTTTTCGCAGGAGACTTCGGCTCTCTTGAACCAAAACCTT -TTATATGTAGTTTTGTACGTACAAAATCAAAGACAGTTCAAAACAACTTT -ACCGCTACTGCTGTTACACGTAATTAAGCTGCATTAAGAAATTATATTTA -TTCAATTAGAACTTATGTTAATGGGAAACACGCCGGAACATTCTAGAACG -TAGTCTTTGTATCACAACAAATTTATGCTGAAATACTCACCATTAACAAA -CTCTCTCAAGACTGTCAAAAACTCATTGAAACTGAGCGAATCCTCATTAT -GTTTTGCAGTCATCGCGAACATTCTCTTCACAAACTCATTATTCGCTTTC -ATTCCCATTGCACTTGCCAGTTCCTCACGAGATATTGTCTCATTTAATAT -ATCATCATTTGATGAGTCAAATGAAGTTTCCGAATCTTGAAGTTCACTAT -CATTGAATGCTTTTGCGTAGGCTTCACGGAAGAACAGGTCCAGTCGGTCT -TGACGGCGTTCTTTTGTGATTGCTTGGGATAAGAGAATCTGAAATAATTT -CCAGATTCAACGTATTTCTTGAAGTAAACTCACAGAATTCTCCTCATCCT -TTATGATAACCTCTGCATTGATTCCACTAGCCGCCTGTCTAATTTGATCC -AAAAATTTAGATAAATCTCTATCAGACGACAATCTTATCACCAAATGATG -ATTATTCTTTTGAGACAGAAGTACAAATGGTCCGTGCATTGCTGATGGAT -TCGGCATAGAGTGGAATAACTCAATCTTCTGTCCAGTTTCAAAACGAATT -TTTCGAAGGATTCCACCGCGTGGCTTCTTTACTGCCAACGTGGTGTTTTC -TATTTCTATCCTGACCTGTCGTATGTACTCTTCTTGAAGCCATTCCAAAG -CATTTACACCATAAATATCTCCCTTCGCGCCACAATCATCATTTGCAAAG -TCAGTAGTTAGGCTGTCACAAGCACTGTTGTGGCCAATAGCAATGCGACG -ATTAACCAAGTATCGGCCAATTCCATAGCAAACTGAAAGCATTTTGGTTT -GTATGGAACTAGATGCAATAGCTCACTTAATGGCACACATGCTAATCCAA -TTAGGGTGAAAACATAAGTGGTGTCATTATCAGTCCAATAAGTTGATTGC -ATAAATGGAACACATGGTTCAAGTCCAGTTGTGTTCACTTGGAATGGTTG -CGGGCACGGGTCACCTTCCTTGAAGAAGAATACCTGGAGTGATAAATACA -TTGCAATGCGGAATTCAAAAGAACATAATAATAAACCATTAAATTTGGAA -AGTAACTTACATCCTTCTGAAGCATTGTCTCATCGATATCGGTGGTTGCT -TTGATAATATCTCGAAGTGTAATACTATGAATCATTTGAACTTCTTCATC -AGTGAATAATCCATTCAATTTATTCTCAAACCAGAATCTATCTCCATCAC -GAATACGGGTGAATTGATCCTTTATGATTTCTTTGAACAACTCTCCAGGC -CCATTTTCACCTCCTTCCAGCATTCTAAAATAATAACGTTTGATTAACGT -AATCCAATATATGTGCACTGAGAAAGAAACAAGTATGCGTAATTTATTCT -GCCTAGATTTGCAAAAAAAACTACCTTGCATGGGTAACGTTTGAAATACC -GAAGGAATTGCACTATAAAACTGAGGTGACATACAACTTCCAGAGTTTAT -GCCTGCTACAAATTTTAGAGTTTGACCAAAAGAAGCCGTTAGAAGTTTAC -TCGTGAGAACTTTTTAACCCTTGAGAAGATTTAGTGAATATTCAAAATTC -CACACTTCTTAAACCAATCAGTTATGTTAAAACGAATTGATTTTCATTGT -TTTTGCTTGAAACTCTTCGAATTCACCGCATTTTAAGTTAAGCATTCCAC -TTTAAACCCAAAACTAACCCTCCTACATAAGCATCCAAATATAAAATATT -GCCTCCATACAACTCTTTCAACTTCTCCACCTTTGCAGTATGCTTCTTGT -AAAAGTCTTCATTCATTGTCTCCCATGTCTTTGGCGCAAGTCCGAATGTT -CTTCTCAATTCATTATACGGTGGTACTCCATTGTCCCTTCCTCTCATTAT -TGATGAAGCAACAACATCCAAACGAGAGAAATGCATTGGTCCGAAGATGT -AATCACGAAGATCTTCAACTACTATGTTATCATCTCGTTCAGCTATCTGG -CTTGCCATTCCTGAAATTACAACCTTTATTATATAACCACTCAAGCATGA -ACTAACCAAGAATAATCTCATCCACACTGTACTCCTTTACAATATCCTGC -GCATTCCACCAATTCTGGCACAATCTCAATGCAGGATATCCACCAACTTC -CGTCCGGAATTCACATTTATTTCCTCGTTTTCTCAGAAGCATTGCTGGTG -GCACAATTGAGTGAGGGAACCTGAAGGCGGCTGCTCCAAAAGCATGCGAG -ATTCCAGGTGGAACATGTGGCATGTATTTGGTGTAGTTTGACAAACGAAC -GTCTTCACCTTAAAAGAAACACTGAGTTTAAGGTATTATAATATAGTTGA -TTAACCTAACAGCCCTGGAACAAAGTCATATGCAATAATCTTCTGCATAG -ATGCAATCACCAAACGACGTGCTGCCTGGAAGATTTGTTCGTCTGTCCAG -TCAGGATGTTCTCGATGGATTTGATTTGCATTGTAGTTATGCCAACGGAA -GAGGATCAGACCAAATGAGAGAAGACCTGGATTCTCATTCACACGCGAGT -CTCCCAACACTTCAAGTTTAAATATTTATACTTTTCTATAAAACTATGAA -CTCACTAAATAATCTATCTGGACTCATCAATCGATGTACTTGTGGCGGAG -CGGGGTTATTCAATGGAATATGTGGGTTGTTAAGTGGTGGATATCCAGGT -ACACCTTCAGCCAACCGCCCTTGTTTGAAAGATCTTAATGAGGACACCCA -TGGCTGGGTGGTACCATAGATGAATGATCCATCAATCCATGAAGTCCGTT -CATTGATTTGTTCTCGAGGTGAGTTGAGCCCATTTCCAGTTGCTTTATCG -TATTTGGCACGTGTAAATGGGATTTCTGTCTTTCCCTCACATTCTTTATC -AAATACATTATCACATAGGGGTACTTGAATTTTAAGTGTCTCTAGTGGAC -AGGATACTCCATTTGATTGCATTATTTCATAAGCAACTACTTGACCTATA -ATTATTATTACTAATTTTTGAGGTAGAGGGCAATAAAAACGAACTGAAAA -ATGCCAATAAAGTCGTGCATCCTCTTGTATTAGGTATACCGGACTCTCCT -TTGAATAGTATATCGGAGAGTTCACGGGCGGACGGAAGTGAGTTATTCAC -TGAATATACACCGTCTGAGTAGTAGGAACGTGCATCTCTATGCAGCCGAC -TTCCTGAAGGAGTAGGTCAATGTAACGTCATTTCTCTTCCGAAAAAACCT -ACCAGCAGAACCCCATTCACTATTCGCCAGATTGTTGTACCATCCGTCGT -ATCTTTGAAATTCCTCATTTTGTTGGATTCCTGAAAAGATAAATGTTACG -AGTTTTTGATTTCCAGGCCACCAAAATCTATATGATGGCCTAGGTTCCTT -ATTGAAATTTCTAGGTCACACATGCTCCCTTCACTACATTTTCACACCGA -TTCGTGCATTTTCTCACTGAACGCGCAAATTTCCGGTCAGTAGCGGAGCA -GAGCAAACATTTGCCCCGCCACCCGAAACAATTATTTTCGTATCATTTTC -GCACCTATATTTATTCTGTTTGTTTGCCTATTTTTTGTACATTTTATCCT -TTTTCTTGTATTGGGCGACGATGGCAAGGTCAGTAAAACAGGAAATTGTT -CCTGATAACTCGGGAATTTCAGGAATTTTTCCAAAATTGGTTGGGAAACC -ACCACTTTGTTGAAATTCGAAAGATACACATTTTGTTATTTAGGTGTAAA -CATGAACACTTTCTTAGGTAAACTATGTGATTTTTATGAAAAAGAACACA -GACACCGGGTGGCACACAGAGCTTATCAGTAAACAGCTATCAGTGATTTT -GAAATTTTGGAGGGGCAGAAATGTTGCGGACAAGGAAAATTTTTGTTTGG -AATTTGAAGTTTTGAAATACGCAATTTGAGAATTTTTGAACATTTTTTTG -TAATTTTTATCCCATTCATTTTTAACCTAACATTTTGAAAATCTAGCACA -GAAAATAGTACAGACACGTTCAATTGAGCTATTCCAAAAATTATCAATAT -AGCGCACTTGGTGTCCATCTTCCTTAACTGTTTGCAATTAGTCTCTCTTT -ACAAGAAATCAGCTACTATTTGAACAGATCTTGAACACATTTTCAAAGAT -CGGCTCAAGATCAAAAGCCTCTTAAACATTTAAGATAGCAGGTCCGCTCT -GTTGACAAATTTTCCACCCGGTCCTCCGAAAGGAATTTTTTTGGTCATCC -AACAACCTAGACCATGACGGCACCGATCATGCAATTTGCCTGCTTATAAA -AAACGATATTTCTAGGCCACCCATTTTTAAATATTTTTTTGCCTAGTCTT -AGCTATGTGGAATAAATTCTAGGTCAGGAGGTTTTCTAGGCCACGTAATT -CCACTCACCTTTCCCTCCAAAAATTGAACTGAACAGTATAGCTATGTACA -GCACATGTTTTGAGCGCATTGCTCGTGCGCCTTAGAGTTTTAGTTGACCT -GAAAATATTTGAATATTTAGAAATTGAAATTTTGAAACGCAATGATTAAA -ACGGTCAAAAAAGATGTTATTTATACATACGCAACATTTCAAAATTGATA -ACAAATATTTACAGGAACACTTTTTTCCAATAATACGGTGACTAAGGGGG -AGTTTACTGATAGTAACAAATTGGAACGGTACAGGAAGAAAATTTAAAAC -CGGCTCTACCCATTTTAGTGCTACCAGCCGACAACCAAAAAAATCAATCA -GCCGCACACCCTGCTTGGAATGTGACAATCACAGAGTTTTGGAATTTTCC -TAATTTCTAAAATTTAATTTTCTAAAAACTGGGGATTTTTTCTGTAATTT -TTTTTTAATTTTAAATTATTTTTTAGGAACATTTTTTTGAAAATAACTTT -TGTTTGAAAAATTGTTCGCTAAAAGAGTATAAATAAGATCAGGCTTCCGA -AAATGTTTCAAAAAATATTTTTTCACGATTCTTGCAACAAAAAAAAACAA -ATACTGAAAAAAAAATTGTAAGAAATTTATTTTGTTGAACTTTTCAAATC -TACATTTACAACAAAAACAGTTCTTTATAATATTTTAAAATCCAAATAGA -TTCCCAGTAGATTTTGTTTAAATATTCGGAAAACGACCAAACTTTCATTT -TTTGAGTTCTTAAATTAAAAAAAAAATTTTAAATTAAAATTTTTGATTTT -CAGTCTAAAAATTTCAAAAAAGAGCTTTTAGTTCTGTAACTTTTGGAATA -AAAATTCAAAAAAAAATTGGGGGAGCCAAAAACTAACGCCTGCTTGAAAC -CTGCCCGCGAGAACTTGCAAATATTCAATTTTCTCATTTTTATTAATTTG -ATGAGAAAAATTTAGAAATAAAAAAAAATTTGCATAAGGCATCGATTGAG -GCGAAAGGCAGGCGGAGGTAATTTTAAGGCCAGGCTGGCGTTTTAACTTA -GGCTTCCATAGACCTAATATTTTCATACTTGTTGAAATTTCAGAGGTTTG -AAAATTGAACAATTTAGGCCCAAAACCTTTGTTCCTACAGTACTACAAAA -ATTCTTTGAAAAATTCCGGTAATAATAATTGGAGGAGGAGGAAAAATATA -AAATGATTCTTCGTCAGACAGAAATAAATTGGTGAAGAGAAAAAAATGAA -TTGAGAGAAAAAGAGAAAGAAAGACGGAGAGCGTCTTCGAAAGAAGGAAT -CCTCCTGCGCGGGATCGAAAAAATAAGCAGCAGCCGGGAGTGAGAGAGTA -CACTGCACTAGAAAAGATGCAGAGAGATTCACAGAAAATCGGGAGAGACC -CCCCGTATGTCGGTCGAGACTGAACACCTAAGACCTACTTCATATTTCGA -ACCGGTTCATTTTCATTGGCATTCGTATTATTATTAGTTTTGACAGGGGC -AGTCGTCGTAGATGCTATTGTTGTCAGTTTGACGTGATGGCCGTGTCATG -GGAAAAATTCGGCCATCAAAAATCGGGGGGTTCCTGCCACCCTTTGTCTT -CTATGGTCGGAGAGGCGTTTTCTAGGCTACTTATTTTGGTAGAGTAGCTG -TTAATTAAAAATTTCATCAATTTGGTAATAATGTGGCTGCAAATCATATT -TAAATTTTCTATACAGTCAGTGCCACCCAATTAAAAATTTTCTGGCAGTG -CCACCCAGAAAAAAAAAATATCCTAGGCCACCAATTTTTAAGATCATTAA -TTTTTTGGCTATCAAATTAAGTAGACCACTAAAATGTTTCGTCATTAAAA -TTTTCTAGGCCACCAATTTTGCTTGACTACTAACCTTCTTGGCCATCACA -ATTTCTAGGCCACTAATTTTTTTTCTAGGCCACTAATTTTCTAGGCCACT -AACAAACTGTTCAGGCCATAAAGTTTTCTAGGTCCCTATTTTTAGGTCTT -CAATTTTTTCAGGCCACCAAAATTCTATTCCAACATTTCTCCGTCACCAA -AGTTTCTAAGGCCTTTAATTTTATAGACGACTTCTTAATTGTAAGTCAAA -TTGTTTCAAAACGATTATTTTCAATACATATCAAAAACCCAAAATTTTTC -AAAAACTTAGTAAACTAAACTAAATTTCCAATACGTGCTTCATTTTTATA -TGTAGGCGTTTAGACACCCCAGTGGGCAGCAGTAATTGTTAATTCTTATG -ATTATCTCATTGGTACACTTTTCTTGTTCAACTTTAATTATTTATTTTTG -AAAAGGATTATCATTGGCATTGGCAAATAAATAAAATTGTTAGTGACGTG -GTGATATTGGACATTTTTTGATTTTAGTTTGCTTTTTGAAATTTCAATTT -TCGGCACTTTGAAATGTTCAAAATGTTCATTTGTATAGCAAATTATTTTA -TTAAAATTTTTTTCAAATTTATTACATTTTCAGTGAAAATTGCACAATTT -TTTAAAACTTTCTAAAAACTGCAAAAAAATAATTAGGTTTAAATAATCAA -ATCAATAATTTTTTAAAGGATTAAAATAAAATTATAGTTATTACAAATTA -TTTAAAAGATGTATACTTAAAAACTACTATTTATGTTTTGATTTTTACTC -GAAAATCCAGAAATTTTAAGTTTTCGAGAAAACTTTTTAAATTTGTTTTT -AAAAGAGGTTTATATAAATATAATGAACCCAAACTTGAAAGTGCGAAAAT -GTACTTAAAAGAGTCCAAAATAAGCAAATATCATCACGAAAAGCTCCGAA -CGTTTTTAAGTTTTTCGAAATGTTCAGTTATAGTTTTGGTAAACTGCCAA -CTTTACGAAAAATTCGGGTTTAATTTTCAATGTTTTTATACAAATATTTA -AAACAGAGTAATAGTATAAAATTTGTAAAAAAAAATTTTTTGGTCGGTAT -TTAAAAATGGTGATAGGTGATAGGGCCATTTTTGACAGTAAAAAAAACTT -TTATAATTGTTTTACATTTTACCAACATAGGAGCTGCCTTAAAAAATATC -TAAAGGCTTGGGGTTTTGCCCTACAGTCCCAAACTACCAAATATAAATGT -AAAATTTTTATAAAAATGTTCAAAATTTTTAATGATTAAAAAAATTTGCG -AAACTTAATCAAAATGCCGAATAATTGTTTCATTCCCGCGATTTTTTAAT -AATAATTTTTTTGTATAATTTTTGCATTTAGTGGCGTCATTTGTTTACAT -GTTGTGTTTTTCGGCAATATTAATAGAGGTTTTCAGAGATTTTCTAGTTT -TTGAAGCACATTTTGCCTTGTTCCCGTAAAGAAAACTTGATAATTGGAAA -GAAATTTGGCAAAACGGCGAAATTGACCAAATTGACCAAAAAAGTTAACA -AACTGTATTTAAAAATAAATTATTAAGCAAAGTAAAAACAAAGAAAACCC -ACATAAATGTCAAAAATGACGTCACTCATTTGAGCTGAAATTCAAAAAAG -AATTCGGTCCTTCTTTTTTTTTTTCAAAACAAATTTTTCTTAAATCATAA -AAAACATATTATAATTTTATGACTTTTCTGACAGTTATATTTGGAATAGT -GGGACATTTACAAGGGAAGTCGAAAAACTGAACTCCGGACTTTGACATGC -TATAGTTATTTTTCGATAAAAGAGTGAAAATAATGATCCCTCCAAAAAAT -TTTGCTGCCGCGGACCAGGTTCAGCAAAGTTATGACGTTTTGAAAGTGCC -GAAAAAAATTCCTTGACCAACCCAAGCAAAAAAAAACTTTCAAATTTTCA -AAAAAAAAATTCTGAAAGTTGATAAAAACTATTGTAACTTATTCAAAAAT -GTGAAAAACGTATATCATGCACGTTTTTTCTCCCCACGGACAAAAAACCA -CATTGCTTGATCAAAATATCTTGAGCAAAATTCTAAAAATTACTTTTTCT -TGTAGATTCATTTATTGGTTTTCTTCAGAGTTATGAGCTAAAACTTGCAT -GGCATATGTTTTTCACTGTTTTGAATAATTTACAAATATTTTTTCCTCTT -TTCAGAATTTTTTTTTTGAAATTTTTGAAATTTTTTAAAAGGGTGTTTCA -GCCACTTTCAAAACGTCATAACTTTGCTGAAGCTGGCCCGCGGCAGCTAA -ATTTTTTTGGAGAGATCGTTATTTTCACTCTTTTATTGAAAAATTACTAT -GACATGTCAAAGTCCGGAGTTCAGTTTTTCGACTTCCCTTGTTAGGGCAA -AAAATACCCACAGACGGTACTCCGCCTAAAATCAAAAAAGTTCCAGCAAC -TCGAGATCACTTTTTTACCATCTCAAATCGTTCGGTTTGTTGGGGGGGGG -GGGGGGGGGGCTTAAAGAAAAACGAAAAAATGAGACACTTGTTAATTTGA -TGGTAACAAGTGAAATGGAGAGAGAAAGAGAGTGTAAATACAAGAAGGGA -ACAAACACTTGAAAATCAAAATTGTCGGAAGGAACTAGGGGGAGGATAAA -ATATTGGAAATTAGGTTTAATAGGATATGTATCTAATCCCGAAGAATATT -ATTAAAATAATCGGTTCAAAGAATCTGAAAAAATCGATAAATGCGTTGTG -TTGTCCTACTTCCGTCCTCTACACAACGTCGTCTTCTTCTTCAGGGCGCA -TTCTTTTGTGTAACAGTGCCCCTTTTCTCTCTTGATGCCACAAAACACTT -TGGCAGTTACGCAATCGAAAGGCGAGGAAAGCAAAACGGGTATCAGATGA -TGATTAAGTGAAACTGGAACTGATAAGTGAGATGGATTGAAATACAGATA -GCCGTAAACTTTTAATAACCTAGAATTTTAGTTATTAAAGGTGTTATGTA -TGTTTCGAAATTTGAAAAGATTTTCTCAATTTTTGAATGAATTATGTTTG -AAGTAATTTAAAATGCCGAATGAAGGGTTTCAATTTTTGTTTTTTTAAAA -AGATTTTTCGTCCGGCCGATTTTTCGCAAAATGTTTTTTAAAATTTGGGT -TTATGTTCTTCTCTTTTTTCATGCCTAAGCCTAAGCTAGGCTTAGGTTTA -GGCTTACTAATCCTAATCCGAAGCATAAGCTTAATCCTAAGCCTAAACCT -CTCCTACTCTTTTAAGCTTAATGAATGCCCTAGCTTCATTTTTTTCATTT -TTCGCAGGTTTTTTTCTCAAAAACTCAAAAGCGATGCTACGAACACCAAA -AATTGGTGGTTCAAAATGTGTGTTTCTATTTTTTTCAAAATTTATTTGAC -TATACAAACCAGCTGACAATTTTCTTCAAAATTCCGTTTTTCTTATCAAA -AATAGTCAATTTTTCATCTAGAAACTTCAAAAAACCGTTACCGTTTCCCT -AAGTTTTGCTATCAGTTCCGTAAATCTTGTACCTTATGTCACATGGCATT -AGAAATATTTCAATTGAACCAATCTTGTTCGCGTGGAGTACAAGTTAAAC -ATTTATGATATGTGGATGGGTGCAATTGCGCTCTATTGAACAAACTATGT -ATCAACAGAACGCGTTAACATTATTTGTACAGGTGGGGAAAAACAGGAAA -AACGACTAGGCAAAACAAAAAGTATATAAGTTTTCTTCTACACGTCTCAT -AAAGGAAATTCAAATTTTTTAGAAAAAGAGCGGGGGGGCGCGATTGCAAA -GGTTTAGACGGCGTTAAGATCTTTGTCGACGAGTGGTTCAGCCGCTGAGA -ATGTGATTGCCGCCGGAATATTGTCCTTCTCGTTGATTGAGTCTTTCGAG -AAGAGCGCCAGAATGACGGGCAGAATGAAGAGACCGTGGAGGAGACCTGG -GAGAATTTTAAAATTTTTGAGTTTCTAGGCCACGAGTGACGTCACTATTA -TGTCCAAGAAGATATTCTAAGGACAAATTTGATGATTGTTCACTACTTTT -TCACTAAAAATCAGCTTGAATCGTAGAAAACAAAGAACTTTCAGAAAATT -TCAGCGCTCACCAATAGCAACGACCAAAAAAACGGTCTTAGCAAAGCACA -CGATTGCATAAGTTGGCACAAAAATCAACGGAAGCATGCATAGGAATGTC -GACAGTCCGGCTTCACACATTGGCATTGCCATTTCTGCCAGACTACTGTA -GACACGTTCTTGTGGAGTGCCACGTGCACGAAAAAAGTTGTAGGCCACGT -GAGCGGTGTAGTCGACCGAGAATCCCGTGGCGAGAAGGACGTCCACTTGG -ATTACCGGGTCCAGGTCGGCACCCCAAAGGGAGAGACCACCGACGAGAAC -TGTAAAAACGATTTTAAAAAAAAGTAACTTTTTCAGATTAAATCCAAGAA -AAAAACATAATTAAAATTTGTTTCAATGGTTTTTTAAAGTGACAATTACT -CATTTTCAGGTTTTAAAAACTTTAACTTGAAAAAAAAAAACATTTTGAGC -TACTTTTGAAAAAGGTTCTATTTTGAATTTCCCATCCAAACTTTTTGAAA -AAATACAAATGATAAAAATAATTGCTTTCTTAAAAAAAAATTGTTAGCAA -CCCTACCGTTCGCTAAAGATCGTTGTCGTTTTTTCTCAGAAAATTTAAAT -ATCCCGCCATATATATTTTCGGAGAATTTCAATTTCTCGAAAAATTGTTT -TCTCTGAAAATTTGAATTTTCCGCCAATAATTTTTCTCAGAAAATTTGAA -AAAAAGGATTAAAAACATGAATTTTCCGCAAAAAATGTTTTCTCAGAGAA -TATGAATGTCCCGCCAAATATATTTTCAGATAATTTTAAAGTCTCGCCAA -AACGTTTTCTTCGAACATTTTAGGATTATGTGTTGAATTTGTAGAATTTT -GATCTTGATTTAAATTTTTTCAGTTTTCAATTGAAAAAAAACTAACCATA -ACAGATACTTGCAATAACAGATGTAATCACAGCAACTGCATTAAAATTTG -CAATAAACACAAAACAAACGATTGCCATACAGACTACCGTAACCGCAATC -GATCCAATTAAGTCAGTGCCAACAGTCAGGATGATACTGAGAATTGCAGA -GTCACAGTCAAAGAGTGTAGCGTTGAATTGACTTTCTTCATGAAGAATTG -TTCGGATATGTTGCATTGCACGTGCTCTTTCTGCCCATTCAGACATTCCT -TTACCGAGAAGTGTCAGACGGAACGCTGTGACAATTGTTCTGAAAATTTG -GAAATTATTCGGATTGAAATTGAAAAGTGTATAGGAATTAAGTTTGAACT -ATTTGAGAAGTTTGTATTTTAAATTTTGCGCTAAGTTGCCTGAAAAAAAA -CTAATTTCGAACTATATACCTACAAATATTTTTCAAAGAGCTCAATATTT -GAATTTCGCGCCTAAAATATTTCGAAAACTTAAAATTTGCGACAAAACTA -TTTAAACTATTTGAGAAATTTGAACTTTTAATTAACATTTGAACTTTGCG -CCAATTTTTTTTTGGAAAATATTAAACTTTTGAAATTCTAGTTGAAAGGA -AATTCAGAAAAATTGAGGATGTAATTTTTTTATATGAAAAACTTTTAGAT -TCGATTTCGCGTCGAAAATTTTTGAATTGTCAAAATTTAAATTTTGACTT -TTGCAAAAAAATGGCGGGAAAGTGAAGTTTCATTAGGAAATTCAAATTTG -ATAGGCGTTTGACTAACTTATTATCATCTCCCATGTGATATTTTACAAGT -GGAGGGTTCCCGATCGCATCCATCCACGTCGGAAGATTATCATAAGATGG -GCGGTATTTTTCTCCAACCAGAGTGGATAAAATATTCATCGTCTTATCAA -AATTCACATATTGCGGAAGAAAAATCAGACTTCGATTGTCTCCACGAATA -CCTGGCACGTGCTCGAGCCGATCCATCATATTGTTGAAAGAGTCGTACTG -AAAATTGAATGGCCTAGTAAGTAAAAATTAGATCATGAACTTACCTCTGC -TTTGATCTCGATATTTGGAGGGTTGTTCACTATTACTGTAATAGGAAAGT -AACGGTTGAAGACTGGCCTGAAAAATGATAAATGCTCAAAAAATACAACT -TTTTTCTTTTAATAACGTAAAAAGTTTTTTAAATCGATAAAATCAATAAA -TCGGCATTTCAACTGTAAACCAAAAATAACAATTATTGATTTTTCTTACA -AAGACCTTAAAAATAAAAAAAAATCAATAAAAATAGCGATTATCTTTCCA -AAAATCTGAAAATCAATTCAAATAATTTTCTTGATCTTTTATGTTAACCT -ATAAATACCAATTATTGATTGTCTGGAAAATCAGTAAAGATTATTGATTT -TTTTGAGAACCTAAAAATCAATAAAACCCAATAAAAAAGTAATGTTTTTT -CAAACGCTTTTTCAAACAAATTCTTGATTTTACTTTCAAAAAACCAACTT -AATATTCGACAACGAATCCACCAGCTTCGAATTTGATGGGAATGCCTTTG -CAGGTTCAAAGGTCGTTTTCATGGTGACTACTCCATAAGTTGTCAACGCA -TACATCCCAAGGAGCACCATAATGCACGCTACACGCCCCTTCACGGAGCA -CACGAAGCTCGAGTACTTGGAGAGCCACGTGTCGGCTCGGGAAATTTTTG -GCTCCGTCTCATTGGCGATGGATTTGTAATCTGGGTCGTTGCAGAGGAAT -ACAATTGGAGCTAGGATCGTATAGGTGAAGATGTAGTCGAGGAGCAAGGC -GAGCGAGGCAGTTAGGCAGAACAAGGACATCTGGAAGAAGAGTTTTATTC -AAGCTAGCCCACGTTTTCAAAAACTGGGCTACGTGCCAAAAAAGGTTACC -TGAGGCGTTGGCGTCAAGAATCCGATTCCAAAAGCAATAATATTGGTAAG -TGAGGTGATTGTAATCGATGGTCCAACATCGACAATCACTTGTTCCAAAC -GGCGAGGTCTGAAAATTGCAATTTCACGATGCTTTTACAATACCCCTACA -GTACTTTTGCAGTTTCTCTACAGCACCCCTGTACAACTACGGTACTTTTA -TTTATTTATATATTTGTTCATCAGGCAACAATCATAATGATACAATTACA -ACAAGGCAGTGAACTTTTACAATACAATGCCCCACCCTCTTTTTCCGTGA -AAACTTACGTGTCAGTAATTGCAATATGATGTTTCCATCTGTGAAGTAGA -ATAAAAGCATCATCAACTCCAATTCCAAGTACCAAAAACGGCGTAACACA -TTGAATAGAGAACGACGGGAAGCCCATCCAACAAATTGCTCCAAACGAGG -CGACAGTTGCAGCCATCGGAGTGAGCAATGATGTGGCAACCAGATAGAAT -GCCATTTTGACAGATGACAGGCGGACAATGACAATGATGACCTGAGTCAG -AAGTAGGAAGAATCCGATTGTCATTAGAGTGGTAGCTTCAATGGCTCCTC -GAATCATTTCACGATTTGCTACTTGGTCACTGAAGATGGTGAACTGAACG -TGCTCGAAGGCAGAGGAGTTTTTGGAAAGTTGGAAGAGCTCGTCGATTGC -GTCCTGGGAAAAGTATAATTAGGAAATGCCGAGTGCTTGCCAGTTTTTTT -TATTATGTAAATTTGCTTCCCAGAATCGCGAAAATTTGATTTCCCGCAGA -AAAGACTGAAATTTAAATTTCTACTAAAAATTGTTCAGATGTTTGTTTTT -AGAAATTTTCTTTAAAGACAAAGATTTGAATTTCCTATTGAAAATAGGTG -AAAATTCAAATTTACTACAAAAAAATTGAGTTTTGTTAAAAACACACTGA -AAAATTGAACTTCCTGATTAAAATTGATTGAAAAATTAGAGGCTCCTAAA -AAATATTGAAAACTCGAAATGTAAATTCAAATTTCCCGTCCAAAAATTGA -CAAAAATATTTGAACTTTCTGCCAGAAACAAGTTAAAAAATCAAAGGTTC -CTCTAATAGTAAAACTGACTCAAAATTAATTGAAAATTGATCAAAAAGCC -GTATGAGTCTTCTAGGCTATTCTCACCTTAAACGCCAATTTTCCTTCTGG -AGTATCAGACCTCGAAAAATACCACAGCACCAAGGATTTGGAGCTGATCC -TCTCGGTCGGTGGTTCTGAAAGTTTCAATATTTTTTCACATTTTTCCAGA -ACTTTTTATAGTTAAAAAAATGAAATTTTAACTGGAAAGTGGCTAAATCA -TAAAAACTATTTTTCAACTTTTCATTTAACATTTCAAAAAAAATCTTACC -AAAATCCGCATTACTCAAGTGAAGTCCCAGGAAAATATCCAGTCCGCTAT -ATGGCATATCCGGATAGGTGAATACACTTGTGGTACCATTGTTTCTCCGC -GTCAAATTCTGAAAATTGCCATGTGGTCGTTGAAGAGTTTTCTAGTCCAC -CACCACCACCACCAAGGGTTTCGGTTTTTCGACTTTTTAGAAAATCGAAA -AATCGAACAATTTTTGAGAAAAACTTACAAAAAGCTGATAATGTTTTTAT -TTTAACTTTTTTCTCCATCATTCATTTTAAGAATATAGATAAATGGGATA -AGACCGTCCAGGTTTCTGTTCAGTTTTCCCTGTTGTTAAATTCATTAAGA -TGTTTGGTCCCCAAAAAACAATGTTTCTTTCATTTTTCGATTTTCAATTT -TTAGATTTTTCGATTTTCACTAAAAACATCGAATAATTGAAAAAATCGAA -AAATGACACCCTAGACCACCACCTACCGCTAACAAGTGAAAGGGGCTGTT -CAAGTCGCAGAGTGGATCGCAATTTTTTCGTCCATCCCCATCTTGGTAGC -CAACTGCCGCCGATAGTCGATTGTCCACAGTATAAATCTGAAATTTTTTA -AATTCCCGCCAGAAAAGTGGGCGTGACGGAGAATCAACTTACGTCTGCCA -GTGCGCCTTCCTGGAGAATACTGGAATTTTCGCGCTTGGCGGTAAAAATA -CAGAATGCTCGTTCCGGATAGATGTCGAGTCCGTAGTATTCCAGCCAGAC -ACGGGTTTCACTGAAAAATGTAAAAAAATTTATAGAAATTTCCGCAAAAA -GCATATATTTAAAATAGGAGTTTTAAAAAAATTAACAAAATAGTTACGAA -CGAAATTTTCATTTGCTTTAAAGTTTTCTTTTTTTTCTTATTTATTTTTG -ATCAAATATTTATTTTGGGTTTTTTAACTTCAAGTGGAATTCCAAAAAAA -TTCAATTTTCTTCCCAGTCAACCAAACATTGACCAAATCACAATAAGAAA -GGGAGAAAGGGAAATCGAATTAGAAAAAGAAAAACATTGCGAAAAAACGT -GTTATTTCTGACTGGTGGAGGAAGGAGGCTTCAAGGTCAGTAGTCACTTA -CTATCCAGCATCTGAATCATCCGGTGAAAAGGCTTTGCGAATATCTGGCT -CTAAACGAATGTGCACAAGTCCTGAACTGAGAACTAGGATGGATAAGATG -CTCACTGAAAATTGTCCAACTTGAAAAATTTCGATTTTTTATGTTTATTA -AATTTTTTCTGGTGTAAAATAGCAGAAAATGCCAAAAAAAAATGTATCAG -ACACAACTTTTTTTCAATTTTTCAAACTTTTCGTTGCAAGACCAAACATA -CAATAACAATTGTCGTTCGAGCGCGTTTTGCCCATGCACCCTTAACGGAG -ATTTTCATCGACTACTCTATAGAGCGCGTTGGTGATTTTGAAAATGAATT -TTTCTTGGAAATTTAAAACTTTTAGAAAGGGATTTTTCTATTTTTTCCAA -AAAATTATATTGAAAAATCAATAAATTAATTATTGATTTTTCAAAACTAT -AGTGATTCTGATTTGAAAAATGAAAAACATTGCTTTTAAAATTATCTGAA -CTCAGTTTTCACGAAAAATCAATAAATCGGTAATCGAAAAACATTCATTT -TTCTATTTTTCTCAATTTTTCGATGTATTTTCCAAGAAAATCGATTAATT -TATCGATTTTTTTTCCAGAATATCTGATCGATTTTTTTATTCATCGGAAA -AGTTCAATTATTTTATTTTTAGGAAATTGTTTTCCAAACTTATATTGGTG -GCCAAGTTTTCCCATTTCGACGACCATAAAGTTACAAAAAACTCACAAAG -TATCGAATAAACCGGATAGGCGGCTAACAGCCGTGCCACGACGGCACTAA -TCACATCCCATCCCATGTGCTGAAAAACTTCGAAATTTTTTTAATATTTC -AGAATTTAAAGCAGCATGCAAACGCGCTCCAACAAAGAAAAATGTTTTTA -AAAAATTGAAATTCAAAACACAAGCACGTGAAGCAGAGAATGCAGAAAAC -AAGACCACTGTCACAAAATTGTAGAAGTGAGGGAGGGAGGGCTATTGCAG -AGGTGACCAACGGGTTTCGGTTTCCAATTTTTCGGACACGGCGCAGAGGA -TTTGAGTCATTATTATTGTGTTTAGAGAGTGTAAGAGAATTAGAGAATTA -GGGATAGATGGGAAACTGTACGTACTTCTGCGAAATGGTGCACTTTTAGG -ATCGGCGGCCTAGAAATTTACATGGTGCTCTAGAAGTCTAATAGATAGCC -TAGATCTTTTTAAGTCCAGAAAATTACTTGGTGGTCTAGAAGTTTTTTTT -GTGACCTAGAAATGCAGTTGGTGGACTATAAATTCACTTGGTGGCCTAGA -AATTCATTTGGTAGCCTAGAAATGTACTTGGTGGCCTAGAAATTAACCTT -GAAGCTTAGAAGTTTGTTTGAAAGCCCAGAAATTCACTTGATTGCCTATG -AATTCACTTGGTGGTCGAGAAATGTTCGTGAAAGCCCAGATATTTACTTG -GTGGTCTAAAACATTTTTCAGTTCAGAAATACATTGGAAAAAATTTCGAT -TGAGAATTATGGCGTGGGATTTCAAGTGGTGACCTAGAAATTTGTCAAGG -GACTGAGGAATTCATTTGGCGTCTGGAAATTTTTTTGGTGACCTAGAAAT -TTATTTGGTGACCTGAAAATTCATTTCATGACCAGTGAATTTACTTGGTG -GTCTAAAAAGTCTCATGGTGCCGGTCTTAAAGTCTCATGTGTTGCAAAAA -TTATACTACAATATTTAACTTTGAAATAAAAATTCAGCGGGTCTAGATTT -GCAAGAAAAATCTGTATTTTCTCAATTTTTTTCAGGTTTTTGATTAGTTA -AAAAAAATCGAAATGATTGTTTAGAACTGCAGAGAAAAAACAATTTTGTA -TCTCCGGAATGCGCTATTCTGGGGAGTCAGATTTACTGGATTTTACTTTT -TTTCCTGCAATTCCAATGCAAAATAAGGTAAAAAAATGAGAAAACTGGCG -GAACACGGCGGTACACACAGGGGCAACTTGAATGTAAGGCAGGTGTTTAG -TAAGTGGACCGAGGGGACGGCAAAAGCTGGTATTTTTCCTGTGTCGATGG -GGGACAGTAGTAGCACACAAGAAACAAGTATTTTGATGATAATACGAATA -AGAAAAAGAAAAAGGCAGCAAAAAAGTGTGTGGCAGACCACCACCGTCCA -TCGGATTAGGGAGCGGAGGCAAACTCGCTCTACCGAACAGAGGGGTGTCC -GTTTCCCCCAAAATCCTCTGAATGTGACGTCATTGTTGGGGCGGCGGGGC -GGCGTCCAAAAATTAGTGATTTTTTTTTTGGTATTTTGGAAAAAAAGGAA -AAAATCGAGAAACATTTTTTTGTGTTTTTGGGGAGTTTGTCATGTGAAAT -TTGAAAATGTTGGGTACAATCAAAAAATTGTTTTGGTTTTTATAATTTTA -ATAGGAATTTTTAAAAATCTGAATCGTTTTTCTTTGAAAAATCAAAAAAC -AACAAAACATCCGCTTTTTTTAAAAATTGTTTGTTAAAAAAATAGAAATC -GGAAAACAAAATTTTCCGATCTTCTCGAAATTCACAAACTCATAAAAAAA -TCGAAATCCCCTTGTACCCCACCCTAGTTCACTGAAGCGCGTTTGCTTTC -TGGCCAAAGGCATGGAGGGAGGCGGGCACCTCCCTTTTGCAAAATTGACC -TAAATAAAGGTGATATGCCAGTGATAAGGAACGGTTTAATGATCCGAAAC -CGCCAAAAGTGCATAGTTTCTGCGTTAAAAAAAGTGACAACTGACATCAC -ACGGAGGCTACAAAAGGGGACTCACAAGTTTGCCGGAGAGGAATGAAAAT -TGGAAATTTGTACGGGTAAGGGGATCAATGTTCAGTGGTGGTCGCGAGGG -AGGACGGAGGGAAAAAGTGGAATTAGAATTGAATGGGAAATTGGTGGCAA -AACGGTAAACACTTCTTATTATCCAAATGCATGAGGGATGGAGAAAACTG -GAAACCTTTGCAGAATTTTGGAGGGGGTGATGAAAAGTATTGGCAACACC -TTGGTGGCCGAGAATTTTAAATTGATGATCTGGACTAAAAATTCAGATGA -TGGCCGAGTTTTTCATATTCGCACCAATACAAATGATGGCCTAGAAAGTT -TGGAGCGACCTAATTTTTCAAATTTACAAATAGATCTTTAATGTTTCATC -GACAAGGGATGTGAACTAGAAATTAAGATGGTGGCCTAGAATTATATTTA -TGGTTCGTCAAGAGGTGGCCTAACTCTTCAAATTCACGAAATATTCTAAA -GTTTAAATTTCCTTTAATTAGTATTGTGGACTAAAAGTCGAGATAATGAC -CGAACTTTTCATAAGCTCTCCACATCAATTGGTGGCCTTGAAATTCCGAC -ATGGCCGAATTTTCGTAAGTCGACCCCAGTGGTGGCCGAGCCAAAAAACA -TAATTCCGCAAACTCTTACATTTTAATATATGAGGGAAGCCAGAAGTGCG -TGCCACATTATTTTTACATTTTTGACTATCGTGCCAAAATTCCAAAATCC -TCAAAAATTTGAATTTCGCGGCACAATTTCGGGTTTTGAATATCTTTTTT -TTAGTGTGATGTAGGGCGTACTTTCCAATTTGCATAAAATAAAAAATCAA -CAAAAAGCCATACATAATGTCAAATGGTCAGTTGCAAAGAAAACAAACCT -GCGGTCAGGATGGCCGAACCAGAAAAATCAATTCAAGCTTTCGATTTCGC -CCGAAAAAAATGAGGATCAGAATAAGAAGGTGTCGCCTATTAGAGATTGG -AGGATGTTGAGAAAAAGAGAATAGTGGAGGAAAATGATGAGGTAGAACGG -AATTGAACATGCAAATAAAATGAATGTATTGGGTAGGAGAGGGAAGGTAA -CACTGTGTGTTCTGTGTTTGGAAAAGGATTGAAGTGGTGGACAAAAGGAC -TCTTGGTTTAATACTACTTGCCTGTTCTGATCAGGTTCAGAGGTATTTCA -GCAATAGCTTTTGTATTTTGCATTTTGTCTTTTTAAGTACTATTATTTAT -CAAATCCTTTTTTGTAACTTTGAATCTGATGTCAAACTTGTGGAAAGTTT -GAACTCGAAGAAATTGCTCAAAAAGTAAAATTTGCGCCCAATTTTTCGAA -TTTTTTTCGTTGTTTCTTTTTAATTTCAAAACACAAATCTTCGCCAAAAC -ATTGTTACAAAATTAACATTTTAATTTTTAAACAGCTGCTAAAGCACTAC -AAATGTGAAATTGATGCCTAAAATTGGAGAAAAATGGAGTTTTTCAAAAA -AAATTGAAATAAGAAAGTTTGGAAACTAAATGTCTATATATGGGGAAAAT -GCTATTTCGAATCTCGCGTTTTTTTAAGTTGGGCATCTCCAAAATATGAA -AAAAATACAAAAAAAAACTCCAAAAGATAATGTTGAATTTTTTCAAAACC -CTCACCAAGAAGTATGTTTTAATAAACAAAAATTTGAATTTCTTTTCGAA -TTTTTTTCAAAATTCGTAATATAAGATACCTGTCACACTTATTTTCAAGC -TAACAGGAAAAAATAAATGTTGAACTTTATTTAATGATAAAAATAGTTTG -TAGAAAATTCGTAAATTTAAAAAAATTCAAATTCTACCAAAATATATTAG -TTTTTCACCTGGAACTAAAAACATTTGAAGAATTTTTTTTAGCTTATATA -ACACTACAACCGCAACACATTTTTGTGAGAACATGTCTAGCCTCTGTCAA -ACAGTTTTCCGGTATCTTCGTGTGTGTGTTTGCTAGTGTTCAATAGATCT -TCCTGTAAAAAATCGAAAATTTCCGATTATATGCTTTTTATGTGTTTGAT -TCTATAAGCGTTTAGATTGTTATCAGATGATTTGACATTATTCGCAACAA -TTTTTTTAAATCCGAATGTTTTTCGAATTTCTATTTTTTATAATTTTCCA -GACAGTTTAAGAGCAAAGTTGAAGTTATTTTTTCCTATCAAAAAATGCAG -GAATAAATACTACCTCAATTTTTGCAAGAAAAAAAATTTACAGTAGTTTT -TTTGCTGGAAACTAAATTCCGCAGAATTTGAAAAATACTGAAAGGGTTTT -TTTCCTTTTTTAATTTGTACTCCCTACAGTACCCCTTATTTTTGAATTAC -AATTTGATGTTCGTACCTAAAATTGACACTTTTTCTCTAGTATATTTCCG -AATTCAATTCATAATTATCAGTTGAAACTAGACCCCACCAAAATCACAAA -TTGATAAGAAAACGTAGAAAGGGGAAAGCACGTGTAGCCTACAACAATAT -TAACTGTTTTCAATTTATTATTTTTATTTTCCAAGGGTTTTATTCTTAAT -TCTATTCACAATTTTTCGAAAAATATTCAGCAAAAAAGTATGCTTTCTGA -CTATATTATCAGTATAAAGTGAGTTTTTTGTGAGCATTAAAAAAATCAAT -TTTTTGTGGCCTAGCTTTGCATTTAGTGGCCTAAAAAATTAAATGCATTT -CTTCCACGTTTTCCGTAAAAAAGACAGTGGAAGAGTTTTTATCCGTACTT -GGGCAGGCTTAATATTTTGTGGCCAAATTTTTCGCGTGGTGCCTAGAAAC -TTTTTTTACGTTTTTTCTCGGAAACTTATTTTTTTCCATGGCCGTGAACG -AGTTTTGTTTAAATTTCAGGTCGCTTTCAATATTTTGATGACTAGTTTTT -TAAAAAATATTTTCCTGCTTTTAGTAATGCTTGGCCAAACGTCTTCACGT -GGTCGAGCTTTTCATTTGATGCCCTAGGATTTTTAACCTGTCGTTCTCTA -GACAATAACTACCGTGGACTCGAAAGTTCTACGCCACGTTTTAAATATTT -GTAGCCTAGAAATCAAAGTCACTTCCCGAGTGGCCTACGTTTCCCTGAGC -ATAACTAGTCCTCGAGAAGTCCAGTCGACCGTTACTGTCTACAAGATTAT -CGGCAAGATAATCCGTTTCGATTTCGATGTCCACTCATTCACTAGTCGTT -TTGTCGTCGTTGCAACAATGTGGAAATTACTAAATTTTGGCATTTTTAAA -GATTTTTAAACACATTTTTTCTGTCGGAAACTGAGAACCGCAGTTTGTAG -AGAAAAAAATTGCATTTACTTTCCTGATTGAAAAATCTTTGTTAGCGTTC -TTCCCCGCTGATTTATGTACCGTTTAAGTTTCAGCTGAGAGACAGCGTGG -GATTGGGGGAGACGCAGACAGCGAGTGAGTTTGCGTCTCCCTCTCCCTCC -CACTCTCTCATTTGCAAGTTTTGAGTTTTCATAACTCGGAGAGTGGAGCT -ATCGAAAAATTCAAAAAAAAAAACAAAAAATTAAAATAAAAAAATTCTAC -AAATTTTTAGTTGCTAATTTTTTGATAGCGCTGCTAGGTTTTGAGATAAT -GACGTTTTTAACTCTACCTCGACTTTTTGTGTGTTACCAAGTTAGTATTC -CTCTGACAAACCGCATGACCTCACCTCATTGTAGCCTCTTTCGAAATCTG -TAAACTTTACAACTCATGTTTCCTAGTGATATCCGCCTCCATCTCAGCTG -TTCTCTTTCCATCTTCTCCTAACTGTTTTCGTCTATTTTAAAAATGAGAT -TATTCGGATTTCTTACTAGTTCCGCTCAAAAACCAATAAATTTATTTTGT -AGAGCGAAAAATTCTACACATTTTTGTAGTCAACAAGTTTTTCAATGCAC -CTCTCCTCGCTGAGTTTTTAAGATCTATAATTTGATAGTAAAAATATTTT -TGACAGTAGCTTTTGTTTTAGAGATAATCAGGATTTCGCAAGCCACGGAC -TTCAGTCTAGCCTCATTTCGAAAGTTGTGAACTCTGCAAGTCATGTTGAC -TAATAGTATCCCTCTCCAGCTGTTCTTTCTCCTCCTTCACTCAAGTGGTG -ATCGTTTTCTCACTTCTCTCGCTTTTTCGCCCCTCTCTGTAGTGTCCAGA -GAGTATCAGTTATGTCTCCAGGACGCCGTGTGACGTCATCGCTGACAAGC -CGTAGCCTACAGCGCCCGGCAGAAGACCTGTTTTGACATGCCATTCGTGA -AAAATTTAGATTAGCCCTCTCACACTCTACATGTCTCCATGTTTTTTCAC -ACAAACTATTTTTTTGAAGAAATATCTTTAAAACTTTGCTTTGTCTATAA -TTGATAGCATAAAAGGTCCAATTTTTTCCGTAGCTCAGCAAATGGCGTAA -CTAAATGGTGTGAAATGTTTGATAGGGGACCGGTTTTTGGCTGAAATCTC -AGAAAAAATGGAGCCCTGCCTGCATAGAGACCCCTTTCGACTGATGACGT -CACAGAGTAAGGTGTCACATCACACCATTCTTATTTCTCTATTTGAGGTC -CAATTAGACTAGGGGGTCAGCGTGCTCTCGATTCCTAGCCGATGACGTCA -CATATTTGCCATTCACAACTTTCTAAACTTCAAACATTTTTTAATTTTTC -CCAAATTTCAGCCGATTCCTAATGGGAGGATTCCTCTCCAAACATCACCA -CCTCACTGCAGTCCACGATGCCACGTGTGGCCCAATAAAAGGTGTCGGAT -ATGAGCAAGTAGGTCATAAATTGAGCTCTCACTAAGTTAAGATGAAAGAA -AATTATTTAGGAAGACGGTTCAGTGGTGGAGGGGTTCCTTGGAATCCCGT -ACGCCGAGCCACCAATTGGAGCCTTGCGCTTTAAGAAGCCAGTTGCTCAT -CGGAAATGGACGGAGCCGCTGGATTGTGTTAGGTTCGGGCCAAGGAGTCC -GCAAAATGATGAGCTACTAGGGCAGGTGAGGCGCCTAAATCAGAGCAAAA -CTCTGTCATTTTTATAATGTTCAGTTTGTGAACACAGTCGGGAAAAGTGA -GGAGCACTGTCTCAGCCTGAACGTATTCACTCCAAAGTGGGAGTCAAATG -AATGGCCCGACGGCTTCCCAGTGATGGTCTTCATCCATGGCGGAGGCTTC -GCTGTTCACTCATCCAGCAACTACGGCTGCGCTTCCATCGCACGAAACCT -TTGCACCAAGGACGTCGTCGTCGTGACCATTAACTACCGCCTCGGCGTCC -TTGGATTCTTCACCACCGGCGACGAAGTGTGCCGTGGAAACCTTGGACTT -TGGGATCAGACTGCCGCACTCGAGTGGGTTCAGGAGAACATTCAAAGCTT -CCGAGGCGACCCTGATAATGTTACAATCTTTGGCCAAAGTGCAGGTGGAG -CATCTGTGGATCTGCTTTGCCTATCGCCGCACTCGAGGGGATTGTTCAAT -CGGGCGATTCCGATGGCAGGGAATGGAGAATGTGATTTTGCGATGCGGAC -TAGTGAGCAGCAGGCTCAGTTGTCGAGGGAGTTTGCGAGATACCTTGGAT -GGGAAGGAGATGGTAAGTGATTGAAATGTCGCTTAGTCGTAAGATGTTAG -AAATTGCATTGTCATCAGAGTTGGATTGAGTTTGTTTAAGCGTAATTTTT -ACTAAAGCCCATCGAAGCAGTTCCGTTGGCTACTTGGCCTACCACACTCA -GCCTGGGAGCCCGTCATAGCAAGGCTCAAGACATTTCCTATGTAGTTATT -TCTATTGCAAATTTAATACGGTGAATTTTCCAAAAATCTTGACGTATCCG -AATGAAAAACCAGTGCAAACTTGTTGAGTAATATCCCTAATTACTTCATT -CCAGACAACGACAGTGAAGACCTTCTCCAATTCATCGACCAGCAACCCCT -TTACAAGATCGAGATGGGCATAAACCCGAAAAGAGGATTCAAGCATTCCC -AGGCTGGAAGCTTGTATTTTGTGCCAAACTTTGACGGCGACTTCTTCCCG -AAACCACTTAACCAGCTTAGAAAAGAAGCTCCAAAGATGCAAATAATGAC -AGGAACCACCAAGTACGAGGGTCTATTTTTCAGTGAGTTTAAACTTCTGA -AAATTTTCTGAAAATTTTCTATTATAGTCGCCCTCGGTGCCTTATCGAAA -AATCCGGAAGGAATTAAAAAGTTCATGGGAAGAATCTTTAAAGAATGCGA -CTATGGAGAGCGTGCTGACGATGTGCTGCAGATGGTCTACGACTTTTATT -TCAAGGGGGTACATCCCAAGGATCATGAGAAGAATATGCATCAGATTGTG -AAGGTAGGTGGCATAGAGCCTACAGGGCCATCAGCCAGTGTTTCAGTTCA -TTGGAGACTATTCTATCAACTATGGTACATACCGTCTGGCTAACATTATG -ACGGATCTTCAACACGATGTATACTTCTATCAGTTTGACTATCATAACTC -TGCAGGATTCGGAGTGTTCCGGTGGCTTCTTCCGTTTTTGGGTGAGTTTA -GGCAGGATGGGTCAGATTTTCTAAGCTCTGGGCCACATGCTTTTTGGTAG -ATCAGTTTTAGAAATTCTAAGCTAGAAATGTATGAGTATGGTAAAACTTT -TAAATCAGATTGAAAAGAAATTTTCCAAATTATAGGACTTTGTAAAAACT -CCGATTGCTTAGGCTACTTCATCCGTACGACCGTAACCTGTCACTAACGA -TTCTAATAGTGTACCTTATCTGAACAGTATTGCCGAACTAATTGAAATTA -ATCCTGAGACTCCGAGATTACCTAGCGGTCCCTATCGCTGTGGCCCAGTG -CCCATTTGGCTCAATATCCAATTTTCAGGCTCCACACATTGCACGGAAAT -GAGATATGTGCTCGGCAAAGGAATAATCTCGAAATTCCGACCAAATGATA -ATGATAAGAAGATGCTTCACGTTATGACAACTTATTTTACAAATTTTGCA -AAATATGGGTACTTTTTTTGTGAACACTTTCGAAAAAAATTAAGCTGCTT -TCAGAAACCCTAATGGAGAAAACCAGGAGACTGGAGAATGGCAAAAGCAC -GACTCGGCACACCCGTTCCGCCATTTCAAGATTGATCTGGACGATTCTGA -AATGGTTGAGGACTATCAGGAACGGAGAGCCGAGCTATGGGATAAACTGA -GAGCATTAAATGTTAGCAGGGCTCAGATGTGAAATTGCTGTTATTTTTAC -TTGATTGATTTTACGGGTTTATAAATATTTTTGATTTGTTATATATTTAT -TTTTTCTGAGTTACATACATACATCAAGAAACATTTCAATATCTTGCAAT -CTAACTGAATTTTATTTTATAATCAGTTATTTTTATTAATCCTGTACTAT -GCCAAAAAATCTAACTTGTTTGAATCAATAACTCAACTACCAATCCTTAA -CACAAAAACCAACACGGTTCTACCCAAACGATGTATAAGCTGGCACCATT -ATAAATTATCCGCATACTTTTTCAAACAAAGGAAAAAGTCGGAAGCTTTC -CATACATTCAACTCTATTATACTTTCCCCTTTCCATGGATGTGCTTTTTG -TGTGAAACCAAAACTTAACCGCCAGAAAGCTTTTTACATAATCTATAACA -GAGGTGGGCGGCAATTGCCGTTCGGCGAACATTCTGATTTTTTGGAAATT -TTCATTTTTGGCAAATTGCCGATCTGCCGTTTGCCGGATATCAATTTGCC -GGAAGTGTTTAGAGGGTTCTTTTTACGACGGAAACACTTAAAACTGTGCC -TTTTTGAAAATATTTAATTTTTATTCTTTTTTTCGGCAAATTTGCCGGTT -TGCCCAATTTGGCAATTCGCCGGAAATTTCAATTTCGGCAGTCTGCCAAT -TTGCCAATTTTCAGAAAAAAAATTTCGACGCCCATCCCTGATGCATACCG -TTTTTGACTCAATTTAAATAGTACACAACCTTCCACATTAATGTAGTAAC -GGTAAGGTTGCCTAATTTGTTTGAACTTTGAAAGCCGCGCACAGCACCTA -CAGTAATCAATCTCCTTAAAGAGTGTTTTCGCAATACCAAACATAGGAGT -TTGTAGAAACATGAAACCGAAGGACAACACATTTTGAAACAGGTGTCACA -TTTATGTATCTGCACTTGATAGCTATGCAGTCAATGAAGCATAACGAGAG -ACATGTGTTCATTCCCGAATGGAGTCAATGAGTCATAAGGTTCTTCGTTC -TCATTTTATTATTACAGGCTTGGGTCCCACATTGATTCATATTATACTTA -CTTTTCAATTCATTGTTTTTTTGTGATTTTTTTTCATTAGAATAGTATTA -TAATAATATTCTTCTAATAATGACAATCGAAATAGTTGCAAGTAGAATAA -CGATTTGTACAGTGATGCCCATAATTGTGCATGTTTATAATGTTCTAATA -TTTCAACGCAATCATGACACAAGCTCTATAGCATCTCGTGAGTTCATTTT -TGGTGAGGTTTCAAAAAAAAAATCCTCTTGCTCAAGAGCCATACGTTTTC -AGTTAAAAATTTCTTTAATAAAATATAATGCTCATTTCTCGAACGTTACC -TGTTAATGTTAACTGCGCCTACCATGTCCGTTCAATCCCACTAGTCAGTT -ATTCTTTGCAATTAAATGATAAACTTTAATGTCTAAATCTCTTCATGGAT -ATCTCCATCTCAACCATCCATCGTTTTTTATCAACCATCATCATTCTCGT -GTTCTCGTTCTCGGGGTCGCCTCCGCTTCTTCATCATCATCACCACGACC -ATTCAAATCGTTCATCTTCCTAATCGACATATTCCCGCATTAAATTTCTC -TGTTGGGTATCAATGACTACCCAAAAACGGTCGCATTTTCTGAAAAAATG -GGAAAATTGATTCCTAATTTATTGGTTTTGACCGGTTGTAACTAACCCCC -ACACACTGTTTTTTGATACTACCTACGTCTATTTTCGGCTAATTTTAAGA -AGTCAATGATTCCTAATTGTCTTTTTTGTTATTTTCTGTGAAGTGAAGTA -TCAAGATAAAATCAGTTTGCGTCTCGCTTCGATTTTCTCATTTTTCGAAT -GCTATTCCCCCGTAGCAATATGGTTTTGTTATTACACATTTGCACTTTTT -TGCTACCCTCCCAATTCTGACTCACACTTGCATTCCGGAGACTGCCTGAG -AGTTAAAACTAAACATAATTGTTATATAATAAATGTCAAAGTTTTTCGCA -AGCTGAAAATTTTTGCCAGCTGAATTATTCCTCCTTCAAAGGAGCATAAG -TCTAAAAATGCTAGAGTTATTGGAAAGTTGCTAATTACAAGTTATAGAGT -TTAAAATTTTGAGTAGTTTCTCGATTTACAATTTTTGAAGCTTTATTCCT -TGCTCAAACTCGAGCAATGAGAGGCAGTGGGGACTCCCCCACTGGGGAGG -GGAGAACCTTGTCAACCCACTAGGGAGGGGAGAACCTTGTCAACTTTAAA -GCCACGTCCCTCTGCAGGGAAAAGATCTATCAAAAGGTTATCAACTAACA -AAATGTGCAAAATTATACGCTCTACATTTTTGTAGTTAACCGTTTTCTGT -TATCACAGTTAGTTTTTGTGAAACCATCAAATCTGTAGTTTCTCCATTAT -TATTATCACCTAACAGTATTATTATCAGCTGATAAGTATCCTTTCTTTTT -GGATAATCCCCTTGTAAAGGAATATACCATTGTCTTCATCTCCTTTTTCT -GTGTCTACCCTTATCTTTGGGTCGCCATCTGCCTCTCCTCCCCGCATATC -CCCTCTTATATCTTCAGAAATTCAGGTTCCAAGGAATATTCCGAAAAATT -TTGTTTGGAAGGTGACATGTCCGATCAATCGCTGGTCCAGAAGGTTCCAC -TACTTGGCTCGTGTTCTCAGGTGAGTATGCGCCTTTAAACATTGAGGGTA -CTGTATGCACCATAACGCAAAATTGCAGATTTTATAGTGGGGCAGGTTTG -TTCTACAGATAACCGTAAAATTTTTATGTCCCTTTAAAAGAAACTCGTCC -GAAAAATTGATAATTTACGAGGAAAACAACTTTTAAAAATGTTTTTTTAC -TTCAAACGATGCTCTATTGTGCCGAATCGCTTGTTGTTTAGCGGCGTTTC -TAAATATTTATTTACTTATCGAAAATCTTTTTTTTCATATTTATAACTGT -TTAAACAAAATCGATAATATTTATTTTTTCTGAAACTATTCTGAAAATTT -TGAATTTCCCGCCAAAAAAATTTCGGAAAATTTTGATTTTTTTTGGCATA -TTATTTTCTGATAGAATTTGAATTTTTGGCCAAAGAAATTCTGAAAGTTT -TGAATTTCCCGCAAAAATTGTATTTCTGAGAGAATTTGAATTTCTTGCAA -TTTTTCTGTGAAAAAACAATTGAAAATAAACGTGGTCGCCAATACGAGAA -AACTCGGCCACCGATTTTTTTTTCGCAAATTTTGCATTCGTTGCTGCATG -ACTGCCAAAAATTGGCGGCCGAGTTTTTTTATTCTACAGGGTTAAATTTC -ACAGATGGCCGAGTTTTCTCAGTTTCACGGTCACAGGCTTCTAGTTTATT -ATATTCATCTCCGCGGCGCGCGCACCGTACTTTCTCCTTCTCTACTCTCT -CGTTGTTCAATCCCTCTCTCGGATCCAACCAACGCCCTCTGCGATTGTGT -CATCATCGATTTGTTATCTCAAATTCCGTTTGGCTTTTCAATAACCGTGC -CTTATTGTCTCAGGAATTTCAAATTTCCGGTCAACAATTCGGATTATTAA -CCATTTCGAAAAAAATCCTTTAAATTATTTTTATTATAATGAAAAACGTG -CGATTTTTTCTCGCTGGTGGGTCCTGGCACGACTGAAACTTTTCAGCTAC -TGTACCCAGCATTGCTTTAGAATTTAAATTTTTGCCGGCAAATTAGAACT -GCAAGATTTTTTTGTTAGTTTTTAATTATAATTGTTTGGGAAAAATTACA -AACTTTAAAAAAACCTACCGTACTCCCAAGTACTGCAGCCAAGAAATAAT -TTGTTTCGTGCCAAGACCCATTTTTCCTTTAAGAACTAGAAACCTCCCTT -GTTTACAACTGTACTTAAAATCGAATTAGTTTGTTCGCTAAACATGTTTT -TCGCGCGAAATTTCGCTTTACTTTCGAAAAATGTTTTTCTTCATTTTCGT -CGGCATGCGCCTTTAAACTACTGTTTTTGAAACTTTCGAATGATAGAAAA -AATTAGAAAATATTTTTAATTTTCGCTTTCGCCGGAATATTCGAAAATTC -GAAAAAAAAACTAAATTTCATGGATTCTCAGTTAAAATTCACGGAAATTA -AAACTTGCGTAGCGAGACCTCAACGATCACATTACCTATGCGCCTTTAAA -GCTACCGTAACCCTATTTTTAATTAAAAAAAAAAGAATTTCCTTTTAAAA -TCGCCGGATTTTCTCCGTCTCTTTTCCCATCTTTTTTCATCTTCGGTACC -AATCATATGTAGGTGAGAATATCTCTGCACCCTCCAACGAACCCAACACT -ATATCGCTGCGCACCGTCCTTCAACGATGTCATCTTCCTCCTACTTCGAC -CCCCTCAATTTATTTCCGATTTCCTCTGATTTATTGATCTTTTTTCCTCT -TTTTCATCATTTCTACGTTCTATAAAGCGAGGTTTATAGCCAAATGGACT -CATTCAAACGATTACAATCCAAAGTTTTCACGTCAGTGAGCTCACTGCGA -AAATCTGAAGAGAATGTGAGTAAAAAGCGGCGGAAGACGTAAAACATCTG -AAATATTTTTAAAAAAATTTGTTAAAAGCCCCACATTTTCGAGATAAATC -TAAATTTTCAAGTTTGTAGCAGCAAATTAAGCAAAGATATATATTTCAGG -CCGACGAGCAGACATACAACACAAAACGATGCTTCATCCACGTCAATCAC -TTATCGATCGCGATCGCCGTCGTCGAGCTCTCGATTTTAATTTATCAGGT -AATTTGTTTGCCTGCAACTCAGACCAACGCTTAGTCGTCTAATTAGATTT -CAACCATATTTGATTAGAAACTGAGCAAATATAATGGGGACATAATTAAT -AGGCTTATGGATTTTATTTGATTTGACAATATGGATTTTCTAACCAAATA -TGGTTAAAATCTAATCCAATATGGAGCAAATCTAATCAAATATGGCTGAG -ATCGTGCCATATTGGATTAGATTTCGACCATATTGGATTAGATTTGTTTT -CTAATGAAATATGGAGAAAATCTAATCTAACATGGATTTCTAATCTAATA -TGGAGCAAATATAATGCAATATGGATTTTCTAAAAAATATGGTTGAAATC -TCGTTGAATATGGTTGAAATCTAATTAGACGACTAAGCGTTTATCTGAGA -AACTGGAAAAACCTAAAAAAAATCTGAAAATTTTCAGTTTTGTGTGGAAA -AAATCAATGAAAAACTCAATCCTACAGTAATTTAAAAATTCTTTTTCACT -AAAAAAATCAGTTCCCATTGAAAAAACAAACTGAAAATCAATTATTTCAG -CTCTCAAATGGCAGTTGGGGCAATTCGGAGCACTCGACCGTCTTCACAAT -CGCCGCCTTGCTCTTTCTGCTCGTCATTTTTCTGCTTTTCGTCGCGATTT -TCTACCAAATCGGAAATCTTCTCATCCCGCACATCGTCATGCAGATTCTG -CTCGTTTTGTGCTTCCTGGGACTCACATGTGCGACGCTTTATGCGCTTTT -CCACGGTGCCACGTTTCAGTTGCTCGTCGTGGTTACAAATCCGCAAATCG -CCGCTGATTCCATGGTAAGTGTGGTAAAAAATGAAATTTGTTTCCTTGGG -AAATTCCTTCTTTTTCCTCAATTTTTCCTCATTTTTTTGCTTCCAAAAAA -AAGACCCATTTTGCGAAAAAAATTTTTTTTTTTCATTAATATATGTATTT -TAAATTTTCCAGACAATTCTCCCGGCGCCAATGATCACAACAAACGTGGT -TTCCGGATTCCTAGTGGGCCTTCTCGTCATTTTCGCAGTCTCCTACTTGC -TCATCGCTGTGCTGAATGTGAGCTTTTCCCATGGCGAGACCCATGTAACT -TTAATTTTTGCAGACCTGGTGCATGTACGTCGTCATCGATAGTTACCAGC -TTTTGAAGAGCCAGAAACTTCAATCTCGTACTCCGTCGGTCGAGGAGTAT -TGTGCGCCGAAGACGATTCAACTCTCACTATACCCCAATCAAATCGTTCA -GGCCACCGATTTTTAGTCTATATTTTAGACCATTTGTTGAATTTTTCTCG -AAAAAATCCGGTAAATTTTTGTGTATATATGTCCCGAAATTCTTCACTTT -TATCACATGTGTCAGGCTTTAATTTTTTCATACTTTATTTTCGAATTCTG -TACAAAAATCTTTGATATATTCTATTTATTCTTCTCAATTAATAATCACA -CGATCCATCTTTCCACCCGTCTCGCCACCTTTGCATCACATCTCGACACT -CGAACTTTGGTTTTCCGGTTTTTTCGTTGACTTTATTGTGTAGCTGGCAC -ATCCATAGCGCAAACGCCTCGCGGCTTTCCACTTTTGGCGGCGATTCTTT -CAGATCTTTTCGGAGATCTTTGGCGCAGAAATCGCAGGGATATGTCTGAA -AAATTTAGGCGTTTTTGTGGGAATCTTGAGCTTATTAGCTAACTTTTCCT -AGAATAGACATGAAACTTCTGGCTCGATCCTTATCCTCGTCGGTAGGCTT -TTCCGGGTAGTAAACCGACATTGTGTGTAGCAAATTCCACGTGGATCTGC -CTGAAATTTGAAATTTTTGGTGGAAATTTGAATTAAAAGCGAACCGAGCT -CATCCTTGTCTACTGGACATCCGTGCAACTTCGCTCCTGTGCTCGTGCTC -GGCGTCGTCTCGGATTCTGCAAAGAACTAAAATAATTGAGATTTTTTGCT -CTGGAAATCTAGGGAAATCACCTTTTTTCTTTATTTTTTCAGCCATTTCT -CTGCCTTTTTTCATCATATCCTCTACACTGACGCATGCACGACACGGCTT -TCCATCTGGACCGATTTCCATTCTGAAATTAATTTTTAAACTTGGTTTTC -GTTTCGTCAGTTTTAGAAGCCGTTTTAGGGCGTAAACTTATGAAACTATA -CATAGTCTACGACAAATCTATAGAAATGCATTAAAAATAGGTCAAAAATG -TGAGAAATTGCGCAAAAAATGATGCAAAAACGAAAAAAAATTAACTAAAA -ACAAGAAATGCAAGTGCGCTCCACTGACACGCGTTAGAGAGCGTAGACGC -AGAGAAATCTCGAGATGAGGGAAATCGTGGCGCGCGGGAATCAAGCTTTT -TTGAATTGTCTTGATTTTTAAAGCCCAAAAAATAGATTTTTGGCGGATTT -TTGGTGGATTTTCTTGCTTTGCAATGTAAAAATTAATTATTTGTTGCATC -TAATCACTTTTAACAGAGATTTACAATTTTTTTAGTGGTCTGAACCTGGG -AAAATCCTTCAAAAATCAATTTTCCCTACAAAAATTCGTTATTTACCGCA -TTTTCCGCCCAGCTGATCAAAAATTCTTCTATTTTCTCAATTTATTGATA -ACACTCGCCCACCTCAAGCATTTTATCACCTGAAACTCGTCACACTTTAC -AATTTGTTTGCAGAAATATGCGAAAATGAGCGTTACTCAGCTAAAAAATC -TGAAACACGCGATAGCTCAGCTTCTGGAGTGGGATGGAACGAAAACGGCG -AGAAAGGCAAGTTTTTGGTGGAATTTATCGAAAAAACCTGATTTGTTTTT -TTGCAGAAAATCGTCGACGAGGTGGTTCTTCTCTATCACGCTCTGGGAGC -GGAGGCATTAAGTGAGGATAACCAGGAGATATATGATTTGTATGATTTAT -CTGCACGTATATTCAACTTAGCTAAGAAAGTTAGTTTTTTTTTTGTTAAA -AAGTCGTAAACAACAAGTAAATTTAAAAATAAGCATTAAAAAATATTGAG -GCTTATGAGAGCAAAAAATTCCAGGAAATCGAAGAAGCCAACCAACAATT -CGAAAAAGAACGAAAAAAGGGCACAAGACGAAGCGAAAAACCAGTCCCAA -CTCCACTTTTCGAGCTATCAATACAACATTTAAAACGTTGCTGTCAGCAG -GGAATCGATCACAATCAGGTGCCATGGATAGCATATTGTCTGAAACTACT -GGAATTTCCAATCACAATCACCGAAAAATCGATCGAAAACGAGATTTCCA -ACGTGCTCCTATTGAGCTCCAACGCCTCACAGCTCCATTGGGCCGAGCAT -GCTCATTTGAGCAGCTTATGGAAATGGATTTGGAGCCGTGTCGAGACCGC -CGATATTGGGGCACTCGCCATGAGAAATTATATGGAATTGGCGGCGAACT -TGCTGGAAAACGTGGATTACGTGGTTTTCGAGAAGTCGCCTATTGACCTG -ATGGCGAAAGTGATGGGAACACTGAAGAAAAGTGTGGAAATGGGAAATCC -CAAAGAATAGTGCGTGGAAAACGAGTTCTTGAAATAATGTTCAAAAAATT -CAAATTGGCTTGGACTTAGGCTTAAGCTTAAGCTTAGATTTAGGCTTAGG -CATAGGCTTACAAGGGAAGTATTTCAACTTATTCCCGGACTTCAGAATGA -AACCTATGTCATTTCGAAGAAGACTCTTTAAGTAGGTCCCTACAAAAAAT -TTAGCGGCAGAGGAGCACTTTGACCTGGAAAAAAGTCGCTCTGAAAACTT -TTCAGTGCATTTTTTCACGGCTTTCAAGGCCCGTAAAATGGCTCCAAATG -CGAATTTTTGTAGATTTTTGAAGATTTCTAGGATGCTCAGGGGCCGGAGA -GCACTCGGAATTTTTTTTGGAATTTTTTAAAATTTTCGAAAAAATCTGAA -ATTTTTTGAATAAGTCCATGGCAAAATTTTTCAGTGAATATATATATATA -TTTTTTTTAAATTTCAGAAAAGTTGTCAGTTATTTAAGATCAAAATTGGG -TGTTTTTACACAATGAAAATTTTTTTGAGATTTTTCGGAACTGCAAAAAC -CAATTTTGGAAAAAAATCGGCACCCGGAGTCGAACCCCAGTCTTAAAAAA -TATTAATCAAACTCGCTAACCACTCGGTCATTCAACGACAATTTTTCTTG -TAAATGAAATGGATGACAAAAAAACGTGACTCTTTGATATCTACTTAAAT -ATATAGGGACGTGAGAAATAGCTTTGGAAAAGGAGAGGACGCAGAGAAAA -ATTTTCAGAGCGACTTTTTTCCAGTTCAAAGTGCTCCTCTGCCGCTAAAT -TTTTTTGTAGGGGCCTACTTAAAGGGTCTTCTTCGAAATGACATAGGTTT -CATTCAGAAATCCGGGATTAAGTTGAAATACTTCCCTTGTTAGGCTCACT -AGGGAATGACCAGAATAAATGGAGCGATATTCAAAAAAAATATATTGTAT -CGGAAAGCTGGCATTCTCTACTATAAGAATATGACTGAAATTTTTGCCCG -TTCGGGCTGGAAATCTGAAATTTTTACGTCTGAAATTCTACACTGAAATC -AGTGCATTTCCTATGGTTAACAGTGGATTTTTGTCTCTGGCGCCAACAGA -AGTCTCACCACAATGGTGGAAGGGCGAAAACATCGGTTCGGTGGTCGAGT -GGTGAACGCGTTCGCCTCTTGAGCAGAAGTTTGTGGGTTCGGTTCCCATA -CATGGTTTAACTTTTGGCCTTTTTTATACAAAATTTTCAGAACGGGAAAC -AAGTATTTAGAACATTTTTTTGAGGGTTTTACATAATTTTTTTGCTTTTT -AATTGAACCATAATTACCCTGGAAACTTTTCAGAAATTTTAATTTTTTTC -GAAAATTGTCACTTTTTTCTCCACCAAACCCATGAGAAAATTTGATCGAA -AAATTTTTTTTTGAAATTTTTTTAAAAATGCATGAAATATTTTAGAGTGT -CACAAATAACCTATTTTTCATTATTTTCAATGACCGAATCATTGATTCTG -ATGCCTTATCAAGACGTTTTACCAAATCGATATTGGCAAAACATCTTGTT -TTTGAGGCTCCATATCTCTGCAGGAAAAAATCGCACTAAAAAGTGATCAA -CTAGAAACTTGTTAAACACAATGTGATCTAAAACATTTCAGTTGAACACT -TTTTTGTAAAAAATTTCGTTGCCGAGTTGGAACCAATTGATTTGAGCTTC -ATTATTTTTGAATATTCTAAATAGTTAAAGATCTATATCTTGGCAACGAA -ATTTTTTACAAAAAAGTGTTCAACTGAAAAGTTTCAGATTACATTGTGTT -TAACAAGTTTTCAGTTAATCACTTTTTAGTGCGATTTTTTCCTGCAGAGA -TATGGAGCCTCAAAAACAAGATGTTTTGCCAATATCGATTTGGTAAAACT -TTATTTTAATTTTTTTTTTTCATATTATTGTTTTTATATTGGGTCAAAAC -GTATTTGCTCTGCTAAATAGTTAGCTGGCGCTAATTTTTAATTTTATTAT -TTTCGTATTTTGATAAATTTCACTGAAATTGTCACTTTAATAGTTTACAT -TCTATTGGTTTTCTTTTATTCAATGTCTTTTGATATCGGAAACGTGATGT -TTGCCTTGCATCGTCATTTTCCCAATCCCCTCCCATCAAATCCCTCGATT -TCGAGACATGAGCAGAAGGTGGCAGATCATTTGGCAAGCATTATAAAGGA -ATCTTATTATGGAGATACCAGTGTGGAAGAATCCGAATATTTGGTTCAAG -AAGAATATGGCGATTGGGAGCCAGAAGTTTTTGAGGTATGTTGGTTTCGA -CACTATTAATTGTCATTTAAAAAACCTTTCAGCCGTATGACTGTGTGTTG -CCGGATCAAGATGATGTATTGTTCGGTGAGAAAGCTGTATCAAGGGAAGA -GTTGGATAAAGCGATCACCTTCTACCGTAGCGGAAAAATTGGAAGTAGGC -CGATAACGACTATGCACCATAGTTATCGCTGGATACGAACCGATGCTCAT -ATGAACAAACTGCGCAAGTACGAGAAAGATAAAAAAGCGTTCCAAGAAAG -CGTGCGGGTTCGTTTGGCACAGCTTACACAACGGCTTTATGAGGAGGTCA -AGGAGAAACTTGATAATGGTAACGAACATTAATATAACAAGTTTTAATAT -AAATATTTCAGGAGTCAATTTGCATGATTCTGATTTGATGGCTATGGCAC -TGGAAATCAACACCCGCGAAATGAAGTTGCAAAAACAAAACGAAATGAAG -TTGCAAAAAGCGTCACAATCCTGGATAACCCGATGGAAGCAAAGCCACAG -GTATGTAATAAATTGCGGAGTATGTTAGATATATATATATATATATATAT -AATTTCAGAATCGTGAGTCGGAGAGTCACCAAGTTTGTCACACGGAAGTG -CCTGATCAATAAAGACGCTATCAAAAAAAACGCGGATGATTTTGTCAAGA -ATGCCAGAACAGAGATCTCCAACTATCACCCGTCGATGGTCTTCAATTGT -GACCAAACCGGAATTCAAAAGGAGCTGTATCCAGCCCGGTCTTTAGCCTT -TATGGGCGAAAAAACAGTCGAGAGGTTGGCGCAATCGAAATCGTCGCTGA -CCCACTCGTTTACGTTTCTCCCGATGATTTTCCTCGATGGCTCAATGGGA -CCCAAGGCGTTTATGGTAATCGCTGAACCAAAAGGCCAGTTTCCTCCGTC -TCGTCCAATTCCAAACTGCCCAAATTTGGAAGTGCGGGCTGGATACAAGA -CACACATCATGACGAAGCAATTGATGTGCGATTTTTTCGAAAGTTGTGTC -TTCATTCCGTCTGTACCGAAAAAACTGTACATCATGCTGGACAGTTGGCC -AGCGTTCAAGGACCATACAACGATCAAGAACTTGGTTCCCAATGGTCATG -ATGTCGTCATTCGCAACATTCCAGAGCACACAACTGGAATGATCCAACCG -TTGGATGTCTATTGGAATGCGCCATGGAAGGTATGAATTTAAATCTTTAT -AACTTTTTGATAGTATTTTCCAGAGCTTGATCAAGAAGTTCACAGCATAT -GCCCTTCGAACCCAGACGGATTACGTCATCGCACAGAGGAACAACGCAAT -TTGCATGGTATCTGTGTTGTATCACCAGATCTCGGCAGAGCACTTCCGAC -CGTTTTTACAGCATTGTTGGAAGAAAGCTGGATACGTGGGTGCTGCGAAT -ACTTCATCAACACCATTTTTGACTCCAGCTCAATATTGCATTGATCATGG -TGACACAGTGATTTGCTATCACACTGGATGTAACCATCTCGGATTCATCC -GATGCGCAAGATGCAAGATGTTTGTTTGTTTTAATCATTTTGTTGTGTCA -AAACAACATCTTTGTTCATCTCCTTGAATAATTAATAAATTCATGATTGC -ATTACATTCAAGTTTCGCTATGAATAAAATTGTTTATATGAGGGGATCCA -TGGTTGTAGTGGTCCATGGTTAAGTTTAAATTTTAGGGGAAAAGATGTTG -AATGAATCATTATGGTGTTGGTCGACACATTGATCATGCTGATATCGATC -AGAAAAATTAAAATTTGGGCTTTTATATAGTTTCGAAAAAACACGTTTAA -ATTTTTGAAAAACTTTACGTTAGGGTGGAATTGAACCCCAGAGTCCCACC -ATGCTTGTCATCCACTCTATCCACTCGGCCATCTCGCTGTTGCAGGCAGT -ACTAATTGGGGATGGTGATAAGTAAAGCACGTCAAAACGAATAATTTCAG -ACGTAAAAATTTCAGATTTCCAGCCCGAACGGGCAAAAATTTCAGTCATA -TTCTTATAGTAGAGAATGTCAGCTTTCCGATACAATATTTTTTTTTTGAA -TATCGCTCCATTTATTCTGGTCATTCCCTAGTCAGGATCAGCCTCAGGCC -TAGGCTAAGCTTAGGATTAAGGGTAGGCTTTGGCTTAGGCTTATGCTCAC -GCTTAGGCTTCGGCTTGAGCTCAATCATACATCTTGCTTAAGCACGCAGC -TTAACAGCAAAGCTTAAGCACACAGATTGGGCTTAGGCTCAGGCTCAGGC -TTAGAAAAAGTCGAAAAGTTAACTAAGTCAAAAAATTTTATTGTTAAAAA -ATTGTTTAAAAAGTATTATGATTTTAATAGAAAATTGGAAAAAAACCGAA -AAAAAATGAACATAAATCAAAAAAAAAATTTTTTTTTAAAGAAAACTTCT -TTTTTTTGAAAAAAATGCAATTTTAAGGTTTTTCTGAAAAAAACTGGAAA -ATACTTTGATTTTACTGTAAAGAGAATTTTTTCTGTTTTTTTCCAAGATT -TCAACTTATTTCTGCGAGTTTTTTTTTTCAAATTTCCTCTTATTACAGTT -GGTGTCATTACCGAAAATTCTCGGTCGTCCACATTCTCTCATATATCGTA -CATCGTTGGGGTCTCGAAGCGAGAGATTTCATTCTTCGTGAGATTTTCGA -GCTCACTGGTAGTTTGTCCAACTTGATATCAGTGGCTCATAAGGATGGAG -AACAGTCCAAGGTTTGAGTTTTTTTTTCTGAGTTTGCAAACGCGCCCTAA -TTATAAAAATTTGGAAAATTCCACGTGGAAAATAGTTTGGCGAAAGTTTT -TATACAAATTTTTCGTGGAAATTAATTTTTTTTCGAAATTCTCTTTTAAA -AAATTTAAAAATGTTTTATTGGCGTATTATTTTTCTAAATTTCAGTTTTT -CGCAGATTTCACCAATAAAATATTTTTTTGAAAAATATCGCTTCGAGACC -CAAAAAAATAATTATGATTTCAATGAAAAATTGAAAAAAGCCAATGAAAT -CGAGAAATTATCGAAAATAATTCGAAAATTGGAACTTTTTAAAAATTTTA -AATTTTTTTCAAAACAAAAATAGTTTCTCAACTTTTTGCTAAACAAGAAA -TATATTTCGTGGCGAGACCCATTTCTACTAATTTTCTTTTTCAGAAATGC -ATAATGCGTTTGATTGATGATCTCGTGAAGCTCGCCATGATCGAAACCGT -ACACGGCCACCGTACCATGAACGAAGTGACACGTGGAAATATTCAAAAAC -TCGTGAAAACCGGAATCCAAGAGTCTCTGAAATCGGCGCACCGAAATTTC -TCAAGGAGTTCGACATTTTCGATTTCCGAAGAATGCGTGAGATATCTGAC -GAGATGGTTGTTGGCCGAACGAAGACTTGAACAGCCGTCTGCGGCTATGA -ATGAATCGTTTGAATTGACCGGTGATAGCAGTAGTAAGAAGAAGGACGAT -GCCACGTTTGATAGTGCGTAAATGGAATTCTACCAAAAGGAGATCTACAA -AAAGAAAATCTACGAAAATAGGATTTGGCACGGTGCCAGATCGATCTTTT -TTCGGCTCAAAATTGGAAAAACCTGCAATTTTTATACATTTTTGGCTTCG -AAAATCAGGGAACTCTGCAATTTTTGGCATTTTTCGCTAAAAAATTGGAA -AAATCTGCAATTTTTATACATTTTTGGCTCACAAACTGGAAAAACTTCCA -ATTTTCATCTCAAAAAATCGGGAATATCCGCAATTTTCCTCACATTTTTA -GCTTAAATAATTGAAAAAATCTGCAATATTTTACATTTTTGGCTCAAAAA -ATCGGGGAATTTTGCAATTTTTTACATTTTAAGTTTAAAAGTGGAAAATT -GCAAAAATCGGCATAATTTTGAACGTTTTCTTTTTTCCGGTTTTCCGTTT -TGTTACGATTTTCGTTTTGCATGGAAAATGCTTCGATTGATACCCTTCTT -TCGGAAACGAGTTTCTCCTGAAATAGGCGTAGTCTCAAACCATTTTATGG -GCGTGGTCTTTCTCTTATCTTGTTTTTATAAATGTTGTTCATTAAAACAT -TTTCAGGCCTTATCGATCTCTCCTTTGGCTCGACGATTTCCGGAAAACAT -AAATTGAACGCGTGGAATGGTGTAATGCAAATCCTGAATGAGCTCCTAAA -AAGTCGACGACTCGAACTTCAAGTCACTGAAAAAATCGTGACAATCCTCT -GGGAAAAGCGAAAATCCTACACAACGGAGCCACTCCGTACTGTGTTCTGC -TCCATTCTCTCCACAGTCGTCTGCCAGGCCGATGTTCGATTCGGTCATCG -GAAAGTGCCGACAATCGACTCGATTCTCAAATATTCGCTGTCTCTAATGC -CAAATGTCGCATCTCTTCCCAGTGCCGCTGCGTTGACCGAAACGATTGTC -AGATTCAGGACAGTATCACGAGAGGGTCTCCGTAACACGTGGGATACCGT -ATCCCGAACTAGCTCCGGCTCATTTGAAGTTGTTCGGCTGATTTCGGCGT -TGATCTCCGTTACGGAATTTGATGAGAATTCGAGATTCGCCAACGATGAG -AGAGTTCGGAGTTGGAGGTAAGTCACTATGCCACGTGGATGGATTTCCTT -TAAAAAGAGTTTTTGGAAAACAAATCAGATTTTGTATATCACTTCACCTT -TAAAGCGAAATTCTTGTTTTTTTGCAGTTTTCGAAAAGACATAATCGAAT -GGGTATTGCTGGATCCGAATGCACATAGTCACAAATTACTCTATCAGTTG -TGCCAGTATCATCCAACGTATTGTTATGAATCAGAAGCTTCTTCTAGTGG -TTAGTTTATTCCGTAGGGCTTCCATGGTAGGCAGGCGCGATTTCAGGGCC -TGACGCCTGCCTGAAACCTGCTGACCTTTCGCCTCTTTTCTCTCATTGCT -ATCAATTTGTTGAAAATCAAATTAAGAAATTAAAAAAAAAGTTCACGTAT -GTTTTGTCGTGGATTGAGGCGAGGGGCAGGTGGTGGTGGTCTTAAGGTCA -GGTAGGCAGGTGTTTTCACGCCTACATTGAAGCCATAGTACCCCATATGC -CGAAAACGCTGAAGTTTTCTCATTTTTCCAGACGACTCCCTGCTTCAAAC -TCTGAAACTATGTAAATTAGCTTGCTCTCCAGCTCCCCCATCGGCTCCAA -AAGCCCTCCGACCACTCGAAGCTTCAATTGAAGAGATTGTGAGATATGTG -CATGATAAGCTCAAGAGCATTCTCGGTGAGCATCGGCTGTCGTTTTTTTG -ATTTTTGAATTTTTAAAAACATTTTCAGCGACTGAAATCACTCTGCCTGC -ATTTGTGCTCTGCCACGAATTTGCTCTGAAGTATCCGGATAGATCTTATG -AGTTTAATGTTGGTTTTTTTTTCTAATTTTCGAAAAATTTAAGAAATTTT -AGGATATAAATAGAAATTGAAGAGAATTTGAATTTTTAAAAAATTTCGAA -TTTATGGAAATTCAGTAAAGTTTGTCGGAGTTTTTAAACGAATTTTCAGA -ATTTGTAATAAAAACTAAATTTTCTAATTTTTTTTCCACAATTTACAACA -TCTAAAAAACTTTTTAGAAATGAATTGTTAGAAGTTAGAATTCCTGGAAA -TTAAAAAAAAATTTGGATTTTTTTAGAATTCTTAAAAGTTTGATATTTTC -AAATGATATGAAGTTAACACATTTTTTAAAATATTCAAAATAAGAACATT -TTAATTTTTTTGAAGAAATGTTCAAAAAATTAACATTTTTTGGGACTTTC -AGAAGTTTCTTCTTTTTTTTTGCGTCTTTCAAGATTTTTTGCAATTTGCG -TAATTTTTATTAAGGGGACAGAAAATTCTGAGAATGCGGATTGCACAACA -TATTTGACGCGCAAAATATCTCGGAGCGAAAACTACAGTAATTCTTTAAA -TGACTACTGCTAAAATTGAGCATAAAAATAAAAATATATCGATGTATCTT -GGATCCCGTAAATCGACACTAGCGCGCTACAGTAGTCTTTTGAAGAATTA -CTGTAGTTTTCGCTACGAGATATTTTGCTCGTAAAGTGTGCACGAATTCT -TATAATATTTTGTTCTCACAAAAGTTGGTCAATTTATGGGATTCTCAAAT -TTTCGATGTTTTTTTTTTTGAAATTTAAGATTTTTAAAACATTTTTCAAA -AAACTGATTTTTCTCTTAAATTGAAAAGGTTTTTTTTTCAGAAAATGTAC -AAAAAGCTCTACCAAATCATGGAAGATCAAGAAGAAGACGAGTTTCTCCA -ATCAGCTCGCCATTTCTCAAAATGGCCTCAAAATCTGACACTACCAATAC -AAAAACAGACAATAAATTGCATGGCTGTCTTTTTCGAAGCGAATCTTGAC -AATCAGCTCGTCGATCTCTGTCAGTGGAGTGACCGACGAAAAGTGCTTGT -CGAGATGCTCGCCGAGCTGGCCGCCACAAGATCTGAAATTCGAGATAAAC -TTCAAAAATCGATGCCGTTCAACAAATTCGTCAAGGAGTGTATAATGGAG -AATCGCGGTGATTTGTATGAAATGACAAAGAGATTTGAGAAATATTCGTT -TTTGCTCTCGATTCGGAATTTAATTGTTACTAGGATGATTATAACGTGAG -TGTTTGTTTTGGGGATTGCCACGAAAAACTGGAAAAACGTTTCGAAAATT -CAAAAAATATTTCTTCAACATTAGAAAGAATTTCCATTTTTTATATAATT -TTGGAAAGTTTTTAGATTATTTTAGATAAAAAATCATTTCGAATTTACAA -AAAAAAATTATGAAATTTTAAAAACAAGTTTGAAAATGTATTTTTAAAAA -ATTTAAATATTAATAAAAAATCTTGTTTGAATTATTTAAATGTTTGCTAT -TGTGTTTTAAAAAAGCTTAAATTAAAAATTTTTTTCAACAAATGACTAAA -TTAACAATATATAACAAAAATTCAAAAAAAATTGTTTTCGAGAAAATTTT -TTGCTTTTTTTAAAAATAAAATTATAAAAAGAAACAGAATAAAAATCGAA -AAAAAAACAATTATTTTGAAATTTTCAAAAAAACTAGAAAAATGTAAAAA -TTTTGAGGAAAAAAATTCAAACATCCCAATTTTTGCAGAAACGAAGCCGC -CCGACTCCTAGGAGATGGTGAAACAATCAGTGAAACCGATATCTTCATAA -TCGAAAAGCGTACTCTTTCCACGTGTATTCGTAATGTGTCCGAAGGAAAA -GAGTTGAGCGGCTACACACTGGACCCCTATACGGTAGCTGCCAACGTGCA -CAATGTGCATTTCGATCACATAAACGTCGAAATCTATCTGGAATTGCTGA -AAAAGTCGCCATTTTTCGCTCAGAACATTGTACGCCACTTGTTACGGCAG -AATGGAAAAGAAGCAGAAGAAGAGACGTGGCACTTGCATGCCACTGTGCT -GAAAATTGTGATGAAAGATGAAAAGTTGCTGGCGGTAAGGAATTTTTTTG -GAAAAACTTGAAAAAAAAGAATTTCATCGTATTTTTAAATAATTTTTTGA -ATGAAAAATTCGGTACTTTTCCTTTTCTACCCCGCATTAAAAAAATATTC -AAACTATTGACTTATTCGAATTTAATTCTCACGTGAATGTTTGTATTAAT -ACTATTTTCATTTTTAGGCTTAGAAAACAACAGTACTAAGCCTTGAAATA -CAGAAAAAGAAAAAGAGTTCACGTTTTTATCAATGAAAATATTCCTGAAA -AAATGCGGGGTAAAAAAGGAAAAGTACCAAAAATCAAACTTTCAAAGTTA -ACAATACGCAAGTTTTCAAGTTAATTTTAATAATGGATTGTTTAAATCCG -GAATTAAAAAAGTGGTTCAAATTTTATTTTATTTGACTCTATTGTGGCGA -TTTTCATGACAATTGAAACGATTTTTGAAACTTGTATTTATTGAAAAAAA -AGTTGAAGCAGGTCGTAATTTTAATTTGAATATTTAAAAAAAACTTATAT -GGGTGCTTCAATTTTGCAAAACATTGCAATTAAAAAAAAAATTTTCAAAA -TGTGGTCGGCAAATCAGAGTGTTTGAAAAAAATCCTTCTAATTGTGTTTC -CGGAATTTTTGGGATTTTTTCTTCGAAAATAGGAATGGTTTAAATTGAGT -TAGAAATTTTTGCAAATAAAAATCGGTTTTTTAAAATCAATTTCTTGCAA -TCAAAAAATTGAAATTTTCAGCAAAATAATAAAGTTTTCTCTAATTTTTC -AATTTTCAGGTATGCGTGGCCACAATTCCAAATATGGTTCGATATCTCAA -AGTCTATCAGATTCATTTCAGTCCGAAATCCAACGCGGCGAAGTTCTTGT -AGGTTTTGTAACTGCGAATTTCAAAATTTTGCTCGTCTAATTTGACGCCT -GCTCTGTTTTTTTTTACGCGCAAATCTTAGAAATCGGTGACTTTTTCGTT -TAAAAACACCATTTTTCAGTAAAATCTGAGCAATTTTCGGTTTTTGCGCG -TCAAATATGACTAATTGAGTCAAACTTGACGCGCAAAATTTTCAAAAAAA -AAATTCAATATTTTTCCAGACACCTCGACATGGAATCGATTTCCCACTGC -CAATCATATTTGCGAAAACCAACAAAATCATCCAATCTGATCACGGCCGC -CAACTTTTTGACACTTTTCGGATGTGAAAAGCGCACGTGGAAGCGCCCGA -TTCTCAGATTTTGGAGCATTTTCAAGCAGCAACCGGCTATGTGTTGCGAG -AAATTGCTCATTTTTGTAAGCAATGATTTTTTGATAAGAAATTTCCCAAA -AATTTTGAATTTTTGAATTATTTTTGTTAACTTCTTATTTTTAACTCAGT -ATTTTTGCAAACTGAAAATTTCCAATTTTTGGGCTTAAAAAATCTCCATT -TTTCAGGCTGAAGAATGTGTCGAACTTGGCCTGAACCACCGAATCGCTTG -TCTTTTACGCGCACTGACAACCAGTGAATTCTGCCGAAAAGCTCTATGTG -ATGAATATCTGAAAATCGCGTTTCAGCTGACTTATCGATCGATTTTTCTG -ATTTTAAGCAAAAATGAGTGCAGGTTGGTGGAGAAGGATATGTGGAAAAA -CAATATTTGAAAAATAAAAAAAAAACTAATTGATTTGAATTTTCAAAAAT -TCCAAAAAAATAAAGAATTGTATTCCAATTTTCATGAAAATGGCAACAAA -AAACTCAAAGTTTCATTGGAAAATTTTTGAAATTACAAAAAAATTAATTT -TTGAGTTTCAATAAAGTTTCAAAAGTTTAGTTTGAGTAGTGTTGTCAACA -AAAATTGAATGCCTATTAGAAATAGTTGAAAAAATTGGAATTTACAAAAA -AAAACAATTTTTAAACTAATTTCTCGAATTTCAAAAAAAAAATCTTCTAA -TTTTTGAAATTGAACAATTTGGAAATTTTTTGAATTTTCAAGAAAAATTT -TCAATTTTTCGAATATTCAACAGTTCCAAAAAAAAATTTGTTGGATTTTT -TTCCAATTTTAAACAAAAAATTTTCAAATTTCCACAGATTTTTTTTTAAT -TTTTTAAATTTCAGAAAAAAATTAATTTTCATAAAAAATTGAAAATTTCC -ATTCTTCAAAAATAAGTTTTCACATTTTTCAGACCAGAAATTGTGGAGCT -CTGCGATGACATGAATCTTCGGTACGATCTTCTCCAGCACCAGATCAAAC -ATGTCGCGGCTCACCATTTGGAGCACTTTGAGCGTTTCGAAACGAAAATC -GCATTTTCTGTTGAGAAATTTCTGAAATCTGGAATTGATGGAATCGATTT -TGAAGATTTAGGATTAGTCGAGTTTTATAAGCAGTTGAACGAAAATTTGA -CAGAAGACGCGATCAGGAGCAATGAGGCGAGAAGTAAGGCCGTGGAATAT -AAATTGGTGGCCGAGTTTTTTGTAAACTATGCCACCAAACTTGGTTTCTC -CGTTCGTGGCCACAAAAATTTTGAATTTTTTGAGCTTCTCTTATAATGTT -TAAAAGTGATTTCCTGGCAAAAATTCATTTCTTTAATTAGAAAATTCCAA -AAAATTTGAAAAAAAAATGTAAACTCAATAAAAAGTCTAATTGTTTCAGA -TTTATTCTGGTTTTTATTGAATTTTCAGATTTTTTCTTCAATTTTCAGTT -TTTTTCGACTTTTCTAATTAAAAAAAACCAATTTTTGCCAGAACAAAAAC -CATTAAAAATCGACAGTAGTCATCCCATTGGAGTACAAAAATTTTAATGT -CCAAATTTTCATGACGAACGAAGAAACCTAGTTTGGTGGCCTAGTTTCCG -AAAAAACTCTGTCACCAATTTCTTTCAAAATTCAACAAAATTTTAGTAAA -TTCCAAAAAAACGAACATATTCGGCGAAAATTATTTCAAAAGCTTCCGAA -CAAAATCTAAAAACGTTCAGAAAGTTCTGGGTAATTTTTTAAATATTAAA -AAAATTCAACAAAAAAAGGGGGGCAGATAGCTCAGTCGGTAGTGGTGGCC -GCTAGCAGTCTGGAGGTCACGAGTTCAAGTCCGGCCTCACCCCCTAGGTT -CACCCAGCCTCTATTGGGAAGTGGAGCAATCCACGACTGGATTATCGGCC -ACAGTCCCCGGCTAGGACGTGGCTTAAATTACAGCCCAGAGGGATCACCA -CCAGGCAGTGTACCTGAATCCCAGATCCGCAGTGCATAGCACTTGAAGAA -CGGATCGTCCTTTAATTCTTTCAAAACTAATTTTTTACTAAAAAAAATTT -CCAGACATCTACATCGTCGACATTCTCTCAACAATTTGGCTCCAGCTCCC -CTCAATTCGTCCTCAAATTCTACCGATTCTCGCCCGCTTCAAGCACATTT -CCCCAGCGTGGACTAATTTCCCACAGCCGCCTCATATTTCGACAAACGAG -AAATCATTTCTTCAACATCTACGATTTCATCTTTATCTAAAAATGATGAA -TATCTCGAAATCCATGACGCAAGGCGAGTATGCCACGTGTATTATGATGC -TCCTGACGAGCTACGACTCGAGCCATTTCGTTGCGGATTTGATAGAGAAA -AAGCAGCTGGGAAAGCTGAAATTGCAGCAGAGAAGGAATGTTTTGTGCAT -TTTGAGCCGACTTTTGAAAGATCAAGCTGTGATGGGTGATGAAGATGAGA -CGATTATCGATCCGATTCTTTTTAAGGCAATCACCAAAGCTTCCGCCGTT -TTTGTACGTTTTTATACGACGGAAATCACTGAATTTCATGTTTCTATGCC -GAAAAATTATGAGCAATTAAATATACATCACAAGAAAGAAAATAGTTGCC -GGTTTTTGAATTTTTCTGTCATATCGGCAATTTTGGCAACTGCCACTTTT -TGAAGTTTTTAAAAATTTGGTAAATTTGGCAATTGCCAAAATTATCTCTG -TTTCGATTTTTTTCATCAGAATCATAATATTTTAAATTTCGCGCTAATTT -TTTTAGCAAATGATCTTCGAAAATTTAATGTCTCGCAGTTAAAAATACAT -CTTTGCAGGAAGACACCGCCGCGTGCATCGTACCATTTTTGTTCAAAATT -TGTGTGGATTTCAAGGGAAAATACGATAAATGTGTGATAAATTTGCTGGG -ATGTCTTAAGGGAGTTAATGCAGGTATGATTTTTCGTCAGAAATGACTGG -AACGAGTTTTTCGCATCAATTCAAATTTAATGTAATGGCATTTGGCATAT -GACATCGAATGTCGAATGCTGGGAATGCCGAATAATATATTTTGGTCGAG -TAGGAGAATAAACTAGACAAAGTTCAAATATATTCCCAACAGGGATGGCT -TCACCCGTGACCCGTTTCACCCGTTCACCCATTTTTACAAGGGAAGGTTC -TGAACTCGTTATCGGACTTCGTTACGCCACTATATACATTCGATAGAGAA -TGGTTACAGATGATCACTCCAAAAAATTTAGCTGCTTCAGAGCAGGTTCG -ACCAAGTTACGACACTTTGAAGATGCCGAAAAAAAAAATCATTGATGCAC -CCCCTTTGAAAAAAATTGAAAATTTTCACTGAAAATTTTTTTTTTCTGAA -AGTTGATAAAAATAGTTGTAATCGATTTAAATAGTAAAAAACATATATTA -TACAAGTTTTAGCCCATCACTCTCAAAAAAACCCTTAAATTAATGTACAT -ATCTTGAGAAAAATTCCAAAAAGTAGATGTTCATGTAGATCAATTTAAGG -GAGAATTATGAACTGAAACTTGTATGGTATGATTTTTCCATCATTTGCAA -CTATTTGAAAACATTTTATATCAACTTTTAGAAAAAAAATTTTTTTTTGA -ATTTTTTGGAATTTTTAAAAAGGGGTATTTTGGCACTTTCAAAATGTCGT -AACTTGGTCGAACCTGCTCTGAAGCAGCTAAATTTTTTGGAGTGATCATC -TGTAACTAATCTCTAACGAATGTATATAGTGGCGTAACGAAGTCCGATAA -CGAGTTCAGGGCCTTCCCTTGTTAGGCGTTTTTACGGGTGACGGGTGACC -CGCTCGCCCGTTTTTTTTTTCGTTTTAGTTGTTTTCACGGGTGACGGGTG -GCTCGCTCACCTGTTTTTCACCCGTTTTTGGAAGTTTTCACGGGTTATGG -GTGATCCTTGGTTCCCAAGAGGCAGCCAGTTTAGGTCAATAGGTCGTAAA -TATCGTTTTGGGCCACGTTTACAACTGGGCTGTGTGCAACTAGAGGTGCA -CTTGGGTCGAAAAGGGTCGACCCGCTCCAACTTTAGGTAGCATTTGTAGC -GACCCCGATAAATAAAATGTCGACCCCGAATGAAAATTTTAGCAAGGAGG -CCATGCTCGTTTAATTTCCATTTTCAAAATTATGATCGGACTATTGGTTG -AGCTACTGTGAAATAAGCGGGTCGACCCTGCTCGACCCATGAGCACCCCT -AGTGGCAACCATGATTTTCGGCAACTGGCAATTGCCAGAGTTGCCGAACC -CAATAAGTTTCGGCAACCGGCAATTGCCGAAGTTGCCGAACTCTAAAAAG -TGCAACCGGCAACTTTTGCGCAGCCCTGGTTTACAACTACCTAACGACTT -TTGGTAGACTAGAAATAACACATGTATTCGAATTCGACATATGCCGAATG -CCGAAAAAAGTATTGAACGACATTAGGCACAGGGATGGGCGGATACCTTT -TCGGATAACTTCACTAAATCAATTTATCAATAAGTATTGATTTAGTTATT -CTGGAGATACTATACTAGAATAAAGAGTACCTATTGAGCAACATTTTCAT -ATGACAAAAACTTTTAAAATTGTACGCATTTTCCTCGACAAGACCCTGAA -ACTCGTTATCCGATCAAAATCGGCTAACAGATAACGGACTTGCATACTTT -TTATACGGGAAACGTGTAGAATTTTAAAAAGTTTTGTGCCATGAAAATGT -TGCTCACCAGTTTCAATTTTGTTCTGATGCACTTTTTCCAGAATTACTAC -ATCAGCACGTATTGATAACTTGATTTAATGAAGTTACCCGAAAAAGTATC -CACACCCCATAATCAGCATATTTCATATGTCAAATATCAAATTTCCTGAA -TTCCGCACACCTCTGCTCTCCATACTCCAACTAATTTTAATTGCAGAAGA -CGAAATAGTAGTCCGCTGCCTTGCCGAATGCGTCGACTCCATTGGACTCA -ACGTGATTGCTCGTTACGAACGCCTGAACATTGAGACTCATTCGGAATTC -GGTGTGAAATGGTTCTTCAAATTATCCCGTCTCTTTCTGAAACATGGATT -TACTACGCATTCCTTCGCGATTGCGAATATATTATTTGACCGACTTTCGG -CGAGAAAACGAAATACAATGATGATAGATCGTACGAGTTTAGACCGAATT -GACAGATCACAGGAACTTATCAATCTTTTGGTGGAGATCTATGTGGCCGA -GGGTAACTCGGTAGCGTTGTCCTCTCTGCCACCTGCGGTACAAAATAGAC -CGGATGTTCGGCAGGTTATGAATAAGAGTTCAAAGGAATGGTTGAAATTG -CTGTCTTCGAATCAAATGGACTCGTGGGAGTTGACTATTGTGCAGTGGAT -GTGGTAATTGTTTATTTTGAAATTTTTCATTAGAATAGAAAGCAGTTTTC -TGGAAATTTTCAGGAAAACGCATTAATTTTTTACCTATTCTGCATTTCTA -GGTTCTTCAATTTTTTGAGAAAATATATATTCCTTCGAAAAAATCACTAA -CTTCTTTTCGGAAATTTAAAAAAGTTACAGTCGACGACTTTAAAAAATTC -AGTTAATAAAATTAGATTTCAAAAACAAATCGAATTTTTTAATTTGTACC -GAAATCTGGAAAATATTTTTAAATGACTCCAAATTTTTCCCTGATTCCAA -ATATCTATGAGATAAAATTCAAAAAATAATCCCTTTTTGATCTTGAAATC -GCCGAATTTCATTTGTGCACTCATGAGATTTCGAAGTTTCGCGCCAGAGA -CCCCATGTGTTGATTTACGAGATTTGTGTATATTTACGAACCCCTTAACC -TTTATCGGTTGCTGATTTCCGTTTTTCAACGAGTTTTCTTCAGTTTCGTC -GGTTTTTGTTAAAGTTTTTGTTTAAAACATTTTCAAAAAAACTTTGACAA -AAATGAAGGGAACTCGTTGAAAAACGGCAATCAGCATCCGATAAAGGTTA -AGGGGTTCGTAAATATACACAAATCTCGTAAATCGACACATGGAGTCTCT -GGCGCCAAAATTCGAAATCTCATGAGTGCACAAATGAAATTCGCGATTTT -AAGCTGAAATAAAGAACCAGGGAAAAACATTTTTTCACATAGATGTTCGG -AATCAGGGTCAAATTTAGAGTGAAAAACTTTTAAATTTTTAAATTTTTTC -AGTGGCATCCAATTCAATGCAATCACCGGCGATAAATACCTGAATTCAAT -TCTTCGTTGCAATTTCAACGAGTACACCAAAAAAATCGATTCCCCATTAA -AATTCGTCTATTTTCAACTATTCCATCTTTCGACGAGCACTCTGGAAATC -GAAGAAGCCATTTCTAGCATGCCGTTGGCTCCAACAATCGATCAAATGCG -GCTTATGATTATAGCCAACGCGACGGCAAGCTTCGAGCCACAATCCGTTG -AAGAGCACGTTGTTCGAGCTGTTCGAGAGCTCCGAGAGACGTCAAATCGG -CGAAAATCCGGTGGAAATGTGAAGGGAATTAATGAAAAAACAACGAGAAT -GGTGAAACTGGCCGAGATGCTCACCGAGAATAAAGCATACGATGTACGGA -GCAAAAAATAATGGAAAATTTGAATTTATTCAATTGTCAAAAAAAAGGAA -ATTTCCTTAATTTTTCGGTTTTTTTTTTCGGAAAAATCTGAATTTTTTCT -ATTTTGAGCAAAAAATTTAATTGAAAATCCGGAGAAAATCGTATACTTTT -TCTGCGAACCATTTTGTGGGCGGAGCCTAACTAGTAACACTTTTCAATTT -CCAAACAGAAAAGTGAGAAAAAATTCCTCTTTTTCTCAAAAATCTAAAAG -AAAAAAAAATCGGAAATTTTTGAATTTTTCGGTTTTTTCTGAATTTTTCA -ATTTTCATTCAAAGAAGGTCGAAAACTTTTCGATTTTCCGGTTTCCTTTT -TGAAAAAAAATATTTTAAAAATGTGTAGTTTGTAGTTTGTAGTTTTTGTA -GTTAATGTCTTCCACATTTTTAGGCGGCAATAAACCTGCTCGACACGTGG -GAGCACGAGTGTCTCCAATGGACATCTGTCGCTGCCGAATCAATCGATAT -CGATTTAATTCGAATCTGCAAACAACACGTGACGTGTCGGTCGGGAGATC -CAAGAATGGCGGACATAAATCTACGAACAATGCATCCACGTGTCCCGGTG -ATGAGTGACCTGGCGATTGCCGAATGGTCACTCGCGTTGAGCAAGATTAC -AATTGAATATCGGAATGATATGGAAGAGGGTATTCGGATTTTGGAATTTG -GATGCAAACATTTACAGAATAAGGATTCTGTAGAGACGAGGTTAAAGGTA -CATGCGGTCGGGTCTTGCAGCGAAATAATGCATTTTTAAAAATTCGAGAA -AAAAATTGTGAATTTTGCGCGTAAAACGTGATTCAATCTCGAATTGTTCT -ATAGATTTTTCCGACAATTCGGAAAAATGCCGGAATTGAAAATTTCCGGC -AAATCAGCAATTTGCCGTAATTCAAAATTTCCGGTAAATCGGCACATAGC -CAAAAATTAAAAATTTCGGCAAGTCGGCAAATTGCCGGAATTCAAAATTT -CCGGCAAATCGCCAAATTGTCGAAATTCAAAATTTCCCGAAAATCGGCTA -ATTGCCGGAAGTGAAAGTTTTATTGATAGAGATAAATTTAGAACTATCAC -TAGAATTTAAATGTAAAACAACTAGGAGTTATCATGTAAAACTTGTCATT -TGAATTTAACACTAGGAGTCCAATAGATTTTCAGATTTTAAAAAATTAAT -ATAAATTCAGGAAATTTTTTTTGAATTTATCCACATTAATATTCGGTATC -AGGAGCATAAATAGGATCTATTGAGATATTTTAACAAATTTCCGAACAAA -GTTTCAAATATTTTTTTCCAATTGATAGAATGTTCCATGAAACATTACAA -AAAAATTATTCATCAGGTTCTCCTAAAACTCCATTCCGTCTGTATTGGCC -AACTGTCGAAACTCGAAGAATATCGCGAAACGCGTACCTACCGTATGAAG -CAGCAGGCGGTCACCGCATTCGAACAACAAATTCAAAATTCGTGTCGAAC -CAGTCTGGCACGTGGCAATTCGGGTGACGAATGGACGAAAAAAACGGTGC -AACGGGTGAGAAAAGAGCATCAGTTTGAGAAGAATGATTTGGAAAAAGTG -GATAATTCGTTGAATTCGGCGGCCCGGAAAGCTGTATCGTCGGGTTTTGA -TGCACTTTGTGAGCAATTTTTGAAGTTTTTATTGAAAATTCAAAACTTGC -ACAAAAGGATTTTAAATTCGATTTTTCGCGATGTTTTAGCAATAAAATTT -TGAAAAATGACAAATTTTTGAAATAATTTCAGAAAGAGTGTAAAGTTTCA -GAAAAAAAAATTAAAATTAAAATTTATTTTAAAACTTAAAAAAACCGACT -TTTAGCGAATTTTTTTACGAAAAACAAAGTATTTAATTTCATAAATTAAT -TCAAAAAAAATATCTAAAATTTTTGTGAAAAACTGTTTTATACAGTTTCA -GAAAAATTTAAGAAAAAATTTTTTTTCAGAAAAAACCGGATTTTCTGTTA -ATTTGAAATTATGGAAAAAAAAACCCCAAAGGGTATTACGGAACTACAAA -ATTCTGAGAATGCGTACCGCGCAAAATTTCTCGTGGCGAAAACTACAGTA -ATTCTTTAAATGACTACTGTAGTGTTGGTGTCGATTTACGGGCTCGATTT -TAAAATTGAGCAAAAAATTATCACATAATACGAAGAAACGAAGGAAAATG -AAACTAAGTTATAAAAAAATTCGAAAATCGAGATCCCGTAAATCGACACG -AGCGCTACAGTAGTCAAAAATTAAATTAAAATTAAAGGATTACTGTAGTT -TTCGCTACGAAATATTTTGCGCGTCAAATGTGTTGCGCAATACGCAGAGA -TCTCAAAATTCTATGCTCCCGTAATAGATTTAGAAAAATTTTCCGAAAAT -TTACGTCTCGAAAAAGAAAAAAAAACTGGTGTAAAAAATTACACCAGTTT -TAATATTTACTGAAAAAAATTGGTAAAATCTAAAAATTAATCAGCTGAAA -TTGATATGTTTTGGGATAAAAAATTTTGGCGGGAAACTCAAGTTAAAAAA -AAAAATTTCAGTATGCATCAGCCAACTGGAAGACGACGACGAAGCGATCC -GCGCTTCATCTCTCATAATATTTCCATTAATCGATGTGATCTACAAATAC -GAAACGGACGTCGGAGTGATCGCCTTGCTCAAAGAGCACACCAAATCGAA -GCTCCCGTCGAAGCTGTGGATAAGTGCCACCTCACACATTGCCTCTAAGT -GCTTCTCCATCGAAAAATCGCAAATCACGAGACACTTATCACAGATTCTG -TGTCATCTCATCTATGACTACCCGTATCACGTTTTGCACACAATTTTGAT -GTATGATGACGAGAAGAACGCTTCCAAGGTGAAAGGCTTCTTGAAAACGA -TATTTGACGCGCGAGCTGACCAACGGGATTCGTCGAAGCTTAAGGAGATT -GTGATTACTATTCGTGAGGCTCACCAGGCTTATAGGTACATACGGCGGCT -AAATTTTTTTTGAAATTTCGAAAAAGACGAGAAATTCGATTTCTTATCAA -GTTTACAAAAATCTTCGCTTTTTTCTGACAATTTTAGTGTCGTGGTATCC -AATCAACGAAAAAAATTAGGTTCTTCTGGTTATTTTTGAGCATATTCAAT -AATTTAAGCAAATACTCTTTTACTTCTAAACTTTCATCGGCGATACGTGA -ACAATTTCCAAAATTATATATTATCTAACGCTACAGCATATAATTTTTAC -CAATTTTCATTCATTTTGATGGAAAAAAGCATCTAGAACATGTAATATGT -TCAATTGTTCGATTTCAATAAAAACCGACGGCATCCTTGGTTTGAATCGA -AAGTTTAGAACAGTTTTTTTCAGAGAAATTGCAATGCTTGACGTGAGAGG -AAACGTTCGGATACAACGTGTTGAAATAAACGGAAAAACGATGTACCGAT -GGCCACATGATTTGAAGATTTTCAAGTGCAAATTGCGTCAATTGCCGATT -CCCACCATTTCGCAAAAGGTTTGTTTTTATTTTATTAAAATAATTTAATG -AATATGTATTTGATCATACAAAAAAAAAATGTTTTCTTCTAAATTCCAGA -TTGGTTGCCCGGGTGACTACTCGACGACTGACCTAATCACGTGGAAACGA -TGGAAAGATGTATTCACAATTGCCGACGGAATTTCCACTCCAAAAATCTG -GGAAATTGAGGGTAGCGATGGAAAATGGTATAAAACTGTGTGGAAGAAGG -ACGACGTACGACAGGATGTGCTTGTTGAGCAAATGTTTGATGTTACGAAT -AATATGTTGGAGAAGGCGATGCTTCGGACGTATAATGTTGTCCCGTTAGA -CACTGAATGTGGAGTTATAGAGTTTTGTGGTGGAACTGTTAGCTTAAGTT -CGTTTTTTTTTCGTTTTTGAAAAAAACCAAAATAGTATTACGATAACACA -ATATGCTGAGAATGCGTATTGTACAACATATTTGACGAGCAAAATATCTC -ATAGCGAAAACTACAGTAATTTTTTAAATTACTACCGTAGCGCTTGTGTC -GATTTACGGGCTCGATTGTCGAATATTACGGGGCCATGAGATCATGAGTA -TGCCTATTTACTGGCGCGAAAATATTGGCAGGCCGCGGCAGCGAGAGAGC -GTGTGGCGAAGAGAGACGCAGGTCCCTTCGCTACGAGATATTTCCCGCCA -GAAAAGTAGCATTCTCATGATCTCATGGTCCCGTAATAGTGACAGCGATA -TTCCATTTATTTCACTTCAAAAATCGAGATGCCGTAAATCAACACAAGCG -CTACTGTCATTTAAAGAATTACTTTAGTTTTCGCTACGAGATATTTTTCC -CGTCAAATATGTTGTGCAATACGCATTCTCAGAAGAAAAAAGAGGGGGGC -AGATAGCTCAGTCGGTAGTGGTGGCCGCTAGCAGTCTGGAGGTCACGAGT -TCAAGTCCGGCCTCACCCCCTAGGTTCACCCAGCCTCTATTGGGAAGTGG -AGCAATCCACGACTGGATTATCGGCCACAGTCCCCGGCTAGGACGTGGCT -TAAATTACAGCCCAGAGGGATCACCACCAGGCAGTGTACCTGAATCCCAG -ATCCGCAGTGCATAGCACTTGAAGAACGGATCGTCCTTTAATCCTTTAAT -CCTTTAAAAATGTAAAAAAATTTCATTGCAAAAATATCAAACTATGAGAT -TTTTTCTATTATTTTTCAGAAGAAGTTATGTGTGGTGTGACACGAGAAGG -CGGTCTCCACCGGGAGTTCAATTCAGAAGAAGTTTCGGCGAGTAAAGTGT -CGTCAATGATGAGACAAGTACAGACAGAGTCCACAGAGACACGACGACAA -GTTTTTGTGGAGATTTGTCAGCAGTATTCTCCAGTTTTTAGGTAATTTTT -CTGAAAGTTGTCGAAGTTTTTTTTTTTGAAATTCAAAAAAATTCCCAAAC -AATTGGCCTTTTTTCAAATTTTTCCAAAAAATAAAATTACAGACACTTCT -TCTACACCAACTTTTCGACGGCGCAGATTTGGCGGCAAAAAATCATAAAT -TACAGGCAGAGCTTGGCCACGTGGAGTATTGGTAGGTTTCGAACTAAAAA -TGCTAAAAAATTTTCGAAGAATTCGAACATCTCAGATTTTTTCCGAAAAA -TAATAAAAACGTTATTTTCCAATTTTCTGAAAATAAGAATTTATTAGTTT -CTTGCGAAATGAAGAGTCTCAAAAAATCATATTTTTTTTAAAAATCAGAT -TTTTAAATTCTTTTTTTAAAAGTTTTATCGTGAAATTGAACGTTTATGAA -AAATGGCGAGAAAAACTTTTTTTTCGCTTTTTCAAATAATTCTCAAAATA -AAAATTCCAGTGTGCTACATCGTTGGCCTCGGCGATCGACACGCGTCGAA -TATTCTATTCGATCAGAAATTGTGCACATTTGTGCATATCGATTTGGGAA -TGATTTTGGAGTATAGTAAACGAACGTTGCCAGTTCCCGAACAAGTTCCA -TTCCGTATAACTCGAGATGTGCTCGACCCGATTCTGATTGAAGGAATCGA -GAATGGACAGTTGGCTGAGGAATGTACGCAGATTATGGAGAAATTGAAGG -AAAATGGAAAGGTACGGCGGTCTGGGGAAATTTATACGAAAAGAAAATTT -TGGACTGACAAAATTTTGGACTTGTAAAGCTATTTAAAAAATTCAAATTT -CCCGCCAAAAATATTTTTTCAAAGAATTTGAATTTTAGCTAAATTTTTAA -ACAAAATCTGAAGTTACCGCCAAAAGTTTTCCAAAAAAAATCGAATTTCC -CGCCTAAAATGTTTTTCAATAAATTCAAATTCCCGCCAATTTTTTTTACA -CAAAATTTGAATTTCGCGTCAAAAATTTTCCAAAAAATATTCAAAATTCC -CTGAATAGTTCAATTTCCCACCAAATATCAATTTTTCTGAATAAAATTTT -AGAATTTCTCGCCAAATTTCTTTTTCAATTTTTTCAATTTCCAAAATTTC -CAGGTAATCCTCGGTGTCGCCTCTGCTCTACTCCGCGAAACGATGACAAA -TTTCCGAGAAGCCGAACAGGCTGCCGGCCGCCCGTCCTACATTTCTGAAA -TGGCCATCGGACGGCTTCGAGAAAAGCTACGGGGCACCGATGACGGTGTG -ACGGCCCAATCGTCGAATCTTCAAATTCGGCGACTTTTACGAGAAGCTAC -GAGTGCTGACAATTTATCGCGAATGTTCTGCGGATGGATGCCGTTTTTGT -AGAGAAATCAGAGAAAATTTTTCTCGAAAATTAAAATTTTTACTGTATTA -TTGTTTTCTCGTATCAATTTTTCAGAATTTGCTTTGTTATTTTATTTTAC -GCGCAAAATAATCTTTCTAATTTAGAAATTTTAAAATTATGGAAACTTTC -TGAAATTTCTGCAAAATTCTAGAAAATCAAAAAATTTAGTTTTCCATCCT -AATTTTTTTTTTCGTTGATTTTCCCCAGAAAATTCAAACTTTTACTGTAT -TATTATTTTTTCATATCATGTAATGTTTTTTGTTCAACATTTACATGTTT -TTCCTACCTCTTCTATGATTTCCCCTTCCCCCAGGTCTCATTTTTCTTCA -CAATTTTTAAAATTGATTCACTGTTGAATGTGTTGTCTTTTTTCTATGCG -AATTTTATTAATTTTATGAAAAAAATTTGTAATATTTTTGTGTAAATTTT -GAGTCTTCTTACACTACAAAGTTAACCATTTCAGAGGAGTTTCAAAATAA -ATAGTGAATTTTTACAAAAATTAGATTTTCTGATTTCAGCGTACATGAAT -TGCCCGTTTTCAACAAAATAAGACAACTTTTTATTTTTGCCCAATTTTTT -TTCAGCCATCTAATGACTGTCCTTTTTTTTTGGGCAAAAATAATAAATTT -TCTAAAAGCGTTTAAAACTATTATATTTTGAAAAAAGACCATTTTTTAGG -GCTTGGCAATTTTAAGTTCTCTAGCTACAAATTGAACCAATTTAGAGGTT -TCAAAATTGTGAGTTTTTGCAAAAATTGCCAAATTTTGCCACTTTTTAAT -GGTTTTTGATGGGTTAAACCTAGATTTTCTGAATTCTGCATATATGAATT -ACCCGTTTTTAACAAAATTAGACAACTTTTTATTTTTGCCCAATTTTTTT -TCAATGACTGTCCTTTTTTTTTGGGCAAGAAAAATAATTTTTTGGAATTT -TTTTCTGAAAATGTTCGAAATTTTTGAAGTTTCTCTTGAAGCACTCCGAA -AAACCAAACGACCAGCACTACTTGCAAAGTCCGAAAATTTAAGTTTAGAA -AAATTTTGAAGTTTTAAAAGCTCCCAAACCAGAAACTCACGATATAGAAA -TTATTTCCAAACATTTCCGAAAATTCCAAAAAATGAAAAATCAGAACAAT -TTCGAAATTTTTTTCAAAACACTTCTGAAAAAAACCGAAACTGCAAAAAT -TTGAAAATGTGCTAAACTCCAAACTGTACGATTTTCCACATTTCAGAAAT -TCCAAAATTCGTAAATCTGCCAAATCCCTTCGGCGCAATAATCCCCCGGG -GTACCCCCCCCCCCCGCCCTAAAACCTTTTGCCTCTATTGTCTCTGGCGC -AGAAAATTGAAATTAAAAAATGAATCGATATTTTAAACTGTTATTCGTAG -CCATCTTCTCCGGATGTATAATCGCCTACACGAATCTATTCAATCGATCG -TTTTTCAACGGGTACTGTAGTAATAATGCTACGTGGCAACAGTCACAAGG -CGAAAGCGACAGTCACGTGGCAAATTCGTTGGATTTGTGTCGTGGCGATG -GTGTGAAGCAGTGTATTCCGCCGTTGATGAGGTTCAAACAGTTGTATCGG -GTGAGAAAGATTATCGATTTTTAACACCCGTCTCGCCAATTTTTTTCTCA -GAAATTGGAATTCCCGTCACAAAACTTTTACAGAATGTGAATTTTCGAAG -AAATTGGAATGACACCCAAAAATTTTCTCAGAAATCTAAATTCTCGGCAA -AAGTTTTCTCAGAAATTTGAATTCTCGTCAAAAATTTTCTCAGAAATTTG -AATTCCCGCCAAAATTTAAATCAGAAATTTGAGTTACCACCCTTCTCTTC -AAGTAACAGTATTCAACAATATACAATTAAATAGCTTTTCAAATTCCTAA -AAAGTTTGCTGGAGTTATCAATTTTTGATTCAAAACTCGCTAAACCACTT -GCCCATGTAGAATACATAATCAATTCTGAATAGAACGCTATTTTATCCTA -TTTTCAGACATCAAAACCGAATAGCCTAATCGCATGTGTCATTGAAAAAT -CATTTTCGACATTTCTTACTGCTATTATGTGCTTTTTACACGATCCACAA -ACATTTAAAGACAGCAATCGAACACTGGATTCTGATATTTTTGGAGACAG -GTTTGCGGCAAACGAACTCCGCTGCCGACTCTCGAATTATCAATTTTGCA -GGCTTTGTAAGGATAAAAACGAATTTACCGAGTTGAAGAAGATCGGAAGC -TGGCAGAAAATGTCGATTTTCACTGTGGTTCGGAATCCGATCGATCGGTT -TGTATCAGGCTTCACGGATAAATGTTTAAGAGAAAATGTCTGGAAAAAGT -TCAAAAATCGATGCGCCGGATGTAAGACTGTGCGTTTTATTTGCTAAAAT -CTTTTACTTAAACAATTTTTTTGGAATCTTTTATTTTCGGGAGTTTCGAA -AGTATATTGGAGTTTTTTAGAGAAAAAAATATCAATTGAAAAAGGTTTTT -TGAAAGGGGGTAACATTTTTCTAGGCCACTAGGCTTTGTAAGGTGGCCTA -GAAAATAATGTAAAAATCTAGGCCATAAGGGTTTATTGCGTGATGGCCTA -TGAAAAAGCTAGGTCGCCATAACTTTTATCAGGGTTTAGGAAAGTTAAAA -CTTCGGGCAGCAAGTTTCGCATAATGACCTAAAACTTTCTGGAGAACTAG -GCTATAAAAATGTTCATGATGGTTTCAAAAAGCGGAACATTCGGTGACCA -TAATCTTCTAGAATTTTTAGGAAAACTAGGCCATTAAGGTTTCTTCCGTG -GTCTAGAAATTCTGGAATACTAGGCTGCCAGGGTTTCTAGGCCACATAAG -AAAGGCCTAGATACAAAAATTTCAGAACGGTCTAGAAAAGTGGATAACTA -GGCCACCAATTTTCTCTTCGGAGTTTCAAAAATATATGATTCATGATTTA -CTTTTTTAAGAGTTTTTTTTTTCAAAAATTCTAAACTTTTGACACTAAAA -TGCTTCTGAATTTTTGAAAACTTTGAAAATTAAATGTTTAAAAATAATTT -TTTGAAAATCTCTCAATTTTTTTTCTTCGAAAAGCTCAAAAAAACGATAA -ATTTCCACATTTTGGCCAGAATTTAACATGTTTCGTCGATAAAATGTACG -ATCGGATGCATAGATTCGCGCGGAATCCGTATAAAGGAATCGATTTCGAC -GACAGTCACTTTTTCCCACAATCTTGGTATCGGTAAACGCGCTCTATAGA -TAAAGTCTCAATGGAGCGCATTTGCATTTTGAAATTTGATATATTTGTCG -TTTCAGGAGATGCGAGTTCTCGTCTCATCTTGTCAAATACCAAATTTTTC -AATTAGACGGTGCAAATTTCACAAATCAACTTCTTGGACTGCTGTCCGAG -CGGGGAGTTGATGAGAATGGAATTAACTTTATTAGTGAGTCTTAATCAAG -TTTGGGTCTCACCGCGAAAACCGTAATTGATTGGGGACAATGGGACCCAA -GAGAGCCCAATGGAGCGGAATTGCAACTCCTATGAATTTTCCAGACGGAA -GTCTCCATCACCGGACCCCACACAGCACAATGGATTCCGTGGAACGGGCG -GCCGTCGAGGAAACTGTTCTGAGCAGTCCGTATTTGTTGCGAAAAATAAT -TCAAATGTATTATTTTGACTTTTTGCTATTCGGGTATAAGCTTCCTGATA -TTCCAGTTGGAAATTAGGAAAGTTCTTTATATGTATTTAATTGTTGTTAA -ATAGTAAAAATCGATAAATTGCTTGAATTTTGATAAATTACGGCCACGTC -AATTTTTAGATAATTAACGGGCAAAAAAAATCTAAAATTCTTACAAATTG -AAAAAAAAAATTTCACAAAAAATAATAACATTTAGTCTAAATGTGTTATA -GCTTAGGCTGAGGTTTAGGCTTGGGCAGGTTATTTTTTAATTTTCAAGGT -TTCTCATTACATACTTTATTTCCGAAATACAAAAAAGAAGTCTCACAACG -AGTCATCAGTGCGTGTTGGTGGGTGGGGTGGGAGATTCTGGTGGCGACCT -ACAACTCACAAACAAAGATGACAACAGGGAAAATGTACACGTGGCAATAT -GGTGAAGCTATATGTATATATAATGAATAATGATATGTAAATTTGCATAA -TACAGGAACAGTACGTGATTGCTGGGGCGAGTAGAAATGTGGGTTATTAT -CTATCGATTACCATTACACATGAATTACGCTGGATTACGGTTAGAATTTT -GTGAAAAAAAATGAGTAAAACGCTGGGGCTATAAATCTATAATTGTCGAA -GATGCTCAACGAGCCAGGAACGAGGGGAACATTGCGTCAAACTGGGCGGT -CAATTCCATTAATGATGGTGCAGCTTGTGCATTGATTGCTGCAGCAGTAG -GGACTCCATGCCTCATCACCGAATCGATAATCTTCTTTCCAGATGAGAAA -CGCTCGAGACGGGAGGCGTGTTGGAGCACACGCTGCTTCATTTTCTCGTA -CCATCCAGAGTAGAGAAGCAGAATAGCTGGTGGAAGTTGACGTTCTCTGG -AAAAAAACAAGATTTTCTCTAGTTGCCTTAACACTTGGATTTACAGAATT -AGTGAATATTTAAATCAGGGTGGGCGGCAATTTTTTTTCCGGCAAATTCA -GCAAATTGCCGATTTGCCGGAAGTTTTTAAAAGGATTTTTAAAAGACGGA -AACACTTAAAACTGTGCCTTTTTGAAATTTTCTCCCGATTTCTTTACATA -TTTTCATAGATTTTACTGACTTTTCAAAATAAATGTAGGAACATTTATAG -GATGCGTACAATTTTGCCGATTAAAATTGAAACTGTGAAATTTTCAGAAA -AAATGTGCCGAATCACAATTTGCCGAAAATTTTAGTTCCGACAATTTGCC -GTTTGCCGGAAAAAACCGTTTTCCAAGCCACGTGGATCATTTTTTGAAGA -AAAAAATACGGCAAATTTACAGAAACTTTAGTACCATGTGGATTTTTTAA -GAACTATTGCCAAAGTACGTGGAATGTTCAGAAATTTTTTTGCCTTTGTG -AAATTTTGGATTTTTCTGGATTTTCGGAAAAAAATTCAAATTTTTCTATG -AAGACGAATTTCTGATTTTTTTAAAAATTTTTCACGAACTCAAATAATAC -TCAGACGCGAAATTTTACGTTTTCCGATCAAAACACGGTACCCGGGGTCT -CGAATCGACATGCAGTATTTTTCTCGCTTTGTCATAGTTTCTCGATAAAA -ATGGATTTTTTTGAATTCAAAATCCTTAAGTTTCTACCCAGGGGAGAAAA -AGAAGACTATAAAAATTTGAAGTTAAAGTACTCTTTAAAGGCGCCCTTTT -TTCGAACTTAACCAAAAATTGTCGTGTCGAGGCCTGGTACCGTATTGTGG -TGCGAAAATCATTTAAAAAATTGCGTCGATTTTTGGTTTTTTGTTATTTT -AAAAAATGTTCAATTTTTCAAAAATAGCTTTTAGATAAAAATAATAGGTT -TTTCCTTCTTTTTTTCCGGCTAAATAATTTTAAGAATCCATTTGCCACGT -TTCATCACAGAAAAAAAACTAACTCTGTGCCAATCAAAGCGGCGGTGCAA -ATCGAAATCATTTGCTGAACGACATAGTTGCCATACTGGTGGAACAGAAG -AATATCCAACGCATCACGATTCGACTCGACATCCTTCACATATCCACTGA -AAATCTCCTCCATCATCTCGTGAAGCAACGCGGGCGGTGCAAACAAGAAC -GCTCCCTCGATGACGTGCGACGCATACTTGTCCTGTGACATTGAGAGCAA -GTTACGGAGCAGGCATTTATCGATGATAGTGTCTCTGTACATTTCCATGA -TACCCGACGATTTGATGACGTATTGGATGACGTAGTTGGCGAACTCGTTG -GAAGACAGCCGGTAGCAATTACGGACGATACACGTCATCAGAGAATGCAA -CAATTGAATACGGAATTTGAAACACGGGAGCTTGGGATTCTCGGCGAGTC -TATCGATGACCTGTTGCACGAGACGACATCCATACTTGTCCTGGCACACG -GCCATCAGTGAATCTCCTGACGAGAGGAAATGCACGAAAAAGGTCCACAT -GTCGACTGGAAGTTGCTTGACGACACGTTGAATCACGTGGATCGAGATTT -GATCATCCAAGAGCTCAGCACATTGCCGCCAGGTCGAATGTGCTGAGCTC -TTGGATGAGCTGGAAGACGTTGGAATGGTCGAATTTCTGAAATTAACAAA -TTATTGATTTATTACACCTGGAAAGGCCTAAAAAGACCAAAAATAGCCCT -AAAAATTTCGAAGAAATGGATTAATTTTTAGCTAAAACGTAATTTTTTGC -CAACTTTTCTGTGTCGCGATTTTTTTAAACCAAAATCGAAAAATTTCGTT -TTTCGATATTTTGAACAAATTTCAATTTTTTCGGGAGAATATCTTAAAAC -TTAATTATTTTCCTCTAGGAGCCATTTTGTATGTTTTTTTCATCGACAAA -AAATTTTCGTTAATGTGTGCACCTTTAAGTAGTACTGTAACTTTAAACTT -TCATTGCTGCGGAATTTTTTAAAATTGATTTTCAATGTTTTTCTACAGTT -GTCGTCCAATTTCATGCAATTTAGAAAAAAACAGAAGGAAAAAGTGAAAC -ATCGATTTTAAAAAAATTCCGGAGCAATGAAAGTTCGGAGTTACAGTACT -CTTTGAAGGCGCACACCTTTTTTGTTTTAACAAAAATTTGTCGTGATGAG -ACTGGGGACAGTTTTTCGGCGGAAAAATCGCAAAATTTCGGCTAATATCG -AAGAAAAATCAATTTCCGACCGCTGCGACACTTTAGCAAAAAATTGTGAT -TTTAGCCAAAATTCAGTTATTTTTCGGAATTCCCGTGGCGAGACGTATTT -CTCCCACCTGCAGAGCCAACTGCACAACTCGACATGCGAATTTATCCTTG -CACATGGCCAAAAGCCCTCCGTCGATCATTTGACGAAGCAATTCCCGCTG -CTCGGCCGGTGTTGCGAGCTCGACGAGCTTCTGAACGATGAAATTGCCAC -TTCGACTGTGGCAGAGCCCCACGAAGAGCGTCGTGGATTCGGTGAGCTTC -TCGAAGACGGCTTTACGAATCTGATCTTCGGAATCCAGTGGGTAGTTGGC -CTCCAAGAACTTTACGCCCGATGGATCGATTGCGAAATCGATGAGCTGCC -CGTTGAACAGCACATCTTCGAGCGAAATGAAAATCGGAGCAACTGGTGGT -GGGGTCTCATCGTCGGAAGATCCCGATCCACTGTTGAAGATGTAGCTGTC -CGAGTCGGAGGAGGTGGTGTTGCTTCCGTGGCGGTAGGGAAGAAGCTTGA -CCGGCGGCTTTGGATTCTGGAAATTCGAATTTTAAATTTTTATTATATTT -TCTATTTAAATTAGAAGTTTTTATGCAATATTCTACCTTGTTCTTGTGAG -TTTTGTTCGACAAAAGCGAGAAATCCGGGTCGAAATCGAACGACGCGCCG -AGCATGTTGTACGAGTCTGTGCTTCTACGATTCGGGGTCATTTAGACAGA -AATGAATGAATACAGGTTAGTAGACGCTGAAAAATTTTGGGAATTAGGAT -TTTCAACGGAAAAAAGAGTGAAAATGAGAGGAAAACATGTAAATTTCAAC -GAAAATCGCGAAATTACCGCGCATCAAAATTCAAAATTGAATTTTTCGCG -GTGGCCCGGGTTACGGTGATTTTTAAAGGCGCATGGTTGTTTTGAGTAAG -GTCTTGACGCGAAATTTAAAATTATTGAACATTTTTATTTTATTTTTACA -TTTTTAAAGAAAAAAATGATTAAAATTCGATTTTTTAGGAGAAATTAAAC -ATTTTCACAAAAATTGCAAGAAATCGCTCGCCAAAATTCGAAAATGAAGA -GTTTGGCGGTGCTCATGGATTACGGTGGATTTAAAGGCACATGGCTTTTT -TGTATTAGGTTTCACCACGAAACTTGGAGTTTTGATAGTTTGCTTCCCAT -TTTGGGATTTATTTTTTTAATTTTCGCTCGATTTTCACACATTTTCACTC -ATTTGCACTCAATTTTTTTGCAGAAAAATGTCAATGGATATTGTTATGAA -GTCAGATGAGCAGCCGTTCATCTCTGCGCCTGTATGCTTTAAGTAAGCTC -CAATTTTTGTTATTCTGGCCTAAAATTATTTTTTTGATTTCCAGAACGTT -CGCATTTTTCGCCAAAGCATCCGCAGAGGAATGCAAACTTCTCTTCGGGC -TCCAACGCTCGAGAAAGTTTCCAGCAGGCCACGGGGCTCTCGGAGAAGAT -CACGGAAGACATTTACCGCCAAATTGAGTAGGTTTTTCGATTTTTTTACC -CTTAAAAACTACTATTTTTCTATTTTCCAGCGTCTCCCACATTTCGTCGA -TGGTCTTCAACAGAGAAATGGACGGTGGCATCGAGAGAAATCGGCTCGGC -TCGCAAGCGATTCTGCTCGACGAGAACTCCAGGCGCCGCAATCCACAGTT -CAAATCGATCGCGCTCCGCTCTCCGCTACGATCACATCGATCATAGAGCG -TTGGCAAGGAAATCGCCTCATCTGATGCCTCCGACTTTTATCAAAGAGGA -AATTATGGATGATGAGCTCGACGAGGTGAAGGAAGAAGTGGTTTCCGTTG -GAGAAGCCGCCTTGCCCACGCCAAAAGTCGAACTGAACATGGACCATCCG -GAAAAGGACCTGATCATCAGCATTTCCGTGTATCTCGGCTACACCCGTAC -CCTTCAATACCACGAGATTCGCCTCGGACGTTTGATGAAGATCACGGATC -GGCTCGAGCTCACCGGAGATCACACGCTTCGCGATCTGAAAAACGCGTTC -TCGTGCCCCATCGATTTCTCGTTTTCCGACGATTTTAGCGAGAAAAAGCC -GTCGTTCAAGGATATGGCGAAAAATAAGTGGCCGTCGACGATGTTCTTCA -TTCATGACACGTTTTATATATAACTGGAAATAATTTAATATTTTTCGAAC -AAATTTGAAAACTATAAAACCATCTTATTTTGATAAAACTCCGCCGCTGC -TCTCTGAAGCAATGAACTGCAATCAGACATCGAAGGGATCAGCCGATCAC -GGAACCAACCTGCCATTGAGCTTCTGAAAATTAATATATTTGATTCAATT -TATTGTACGAAATCGTTTTTACCCATATCTGTGAGCTAGCAAGCTAGCTA -ATCGTGATTAATTGTTGGGTATTCCTTCGCGTTCTTCAGCTTCTCCACAA -GCAAAATTCTTGTCTGCTCATCACAAATGATGTCATCAGCATCGCTCTGA -TCTTGAAAATCCTGAAATTATAACATTCTAGAGGGTTTCTGATGAGAATA -GTTACCTTACAACCAACACCAAATACGTTCTTCATTATGGCATCCGGCAG -CTTTCCATAATCGCAGAAGAAGTGCTCGGCATCACGATCGGATGCTCTAT -TTGGGAAACGACCGATGTAGACACGAACCATGTTGAGTGGCCGAGAGAGG -GATCATCTGAAACATTTAAATGTTAACTAAACAGGAGTTTAGAAACTTTA -AAACAACCTAACCTCCGTGATAACGTAGTTAGCTTCTCGAGTGAGCTTCT -TCTTCAAAATAAAACAGAATGAAACAAGAATCAAGTGGGTAAAATTGTAA -AATGAAGTATTTCAGACATTTTCGCTAATTTTGGCAGTAAAAACCTATAA -TTTTGGTAAAAATCGCTTGTATTCTGAAAAAAGAACTCAATATTTAATTT -TTTATAACTGATTTTAAAGAGAAACAAACGAAATATATGAAAAAATCGAA -AAAATCCCTGAAAAAGGCCTCCGCAATATTGATTGTTAAAGGGACACCGA -CTGTTCATCGAATGGGTCCCGCCGCGATTGTCCATTTCGAGCGCTTTTCG -CGATTTTTTACTACTGTAAAAAAGTGTAGGAAAATGTCGAAAAATGTCGA -AAAATGACGTCACAAATGTATTTAAATACATGTTTTTATTGTTACTTGAA -TAAGGCAAAATATGTATTTAAATACACTTTAATTTTCCGACATTACTTGA -ATAACCCCATAAAAAACCCCGAAAAAATTTTTTTTTTGTGAAAATAACCA -GAAAAATACATGTTAAAACAATTTTGTGAACAAAAAACTAAAAAATATTT -TTTTTGCAGAGATGAATCCCACGTGAACGTCGAATTTCCACGCCGCCTCG -TCGAACGGAATTTCAGAAGAATCGCATGTGACACGTGCAAGGAGGCGTCG -GCTCAGTGAGTACAGAAAAATCCATGGGGATTTTTTAGAAATTCGGAATT -GATTCGATTCAATAAAATCGATTTTTATATTAAAAAAAAGGATTTTATTG -GTTTTTAAAAAATTTAAGAAAAAATTACAAAAAATCTATAAAATCGATTT -TTTATTTAAAAAATTGAAACTCAATAAAAGTTCTTTCTAATTTTAGAAAA -ATCGATTAAAAAATAATGTTTTAAAAATCAGTAAGAATCGATTAAAAATT -CAATTTCATCGATTTTATTTATTTTAAAAAAACTTAATTTTTATGAAAAT -CGATCATATCGGAGTCCAAAAAATAATTGGGAAAAAACTAAATTTTCAAG -AAAATAATCGAAAAATTTTAATTTTGTTCAAATAATTGATAAAAACTCAT -TTTTTAGGTTTTTTTTCAAAAAAAATTTGAACAAAAAACACATATTTCTC -GAGCTTTTTTTCACAAATTGACCCGATTTAAATTAAAAATTCATAAGCTA -AAAACCTTCTTTTTTTAACCAAAAAAAAAACGAAATTCCCAAAAATCATC -AATTAAATCCAATTTTTTCAGCTGGATGATCGTCGACCACGACAATCTGC -TTCCCAACTCGCCAGGCTATCTGTGCTCTTCGTGCTACAAGGAATTCTGT -TTCGACGTGAACGGCAACAAAGTGTGCCAGTTTAAGGCCGTACCGTATTG -CGATCGAAAGGACATTGGCGACGGACGCCAATTCTTCACCGAGCTCGATC -TTTAGAGAGCGAAATTTAAAATTCTGTATCATTTTTTGTTGTTTTTTTTT -ATGTTTTTCGATTTGATTGTTTAATTATCAATTTTTGGCCTGTAACTGTG -TATTTGTTGAAATTCCAAATTTCGTTTTTTTTTTAAATAAAATTTCTGTG -TGCAAAAAAATTTATCCAATAAATAAACGGAATATATCGATGATATGGCA -AGTAGGGGGAAACGGACGGGAAAATGATTATTTACAGAAAGGGCGCGCAC -CAGAGGTTTCTCGGGGGAGCCCCGAGGCGGGTGGCGGAGCTTGGCTCAAA -ATCTGTCGGAAAAATGGGTGAAATGAGAGAAGAGGTAACCTAGAAAATGA -GATGAGAAATTCGGAAGTTTTGGGAAAAAAAAATCAACTTTTGAACAATT -CAATTGAAAAATCGATAATATTGATTTTTTTAAAATTCTCTAAGATCGAT -AAATCTGGTTTGGAAAAATCAATAAAATCGAATCTTAAATATCTTTTTAA -AAAACTATTTTCAAAAATCAATAATATCGATTTTTGAACAATTTGAAAAA -TCGATAATGTTGATTTTTAAAATTAAATTTTATTGATTTTTTGAAAATCG -ATTATATTGTTGATTATTGATTTAAAAATCACCAGAATCGATAAATCTGA -TTTGGAAAAACCAATAAAATTGATTTTTACAAAAATCAGCCAATAAAATA -GATTTTTTATAATCAAAAAAATCTATTTTTAAAACCGAAAAAATCGATAT -TTCAAAAATTGAAAAAAATCGATAAATCAATAAATCAATACATAGGTGAG -CTCGTCTCGTCGATTTGTGTTTTTGTGATTGGTCCCGGCTGCTTTTGAGA -TGGCCTAGGCGTTGTTCCGTATGACATTCTGGAATTTTTTTTTGTTGGGA -ATTTGGCACGCCCACAAAATGGACGGTGGCGGAAATTTAATTATTTTAAA -TACCTTTCTGGATAAAAAAAATCGATTTTTCCACTTTTTCGAGTGAATCG -AAAATTAAAAAAAACATTCAAAATTGTTTAGGGTCTCGCCACGAAAAACT -CACAAATGCACGTTATGCGGAGTGTCGTCGGATTCCGGTGTGTTGCTACG -GATCGTGTCGTCCATGCTCAGCTTCATCGTCGATTGACGTCGCCGTTTTG -TGGTGATCTGAGCGAGATTTATTGATTTTTAAAGGCGCATGGCCTAGAAA -ACACAACACTTCGGCCACGGACTTTGGCGGCCGAGTTTTCTAGGCCATGC -TGCGGCATTTAAAGGCACATACCATGATAATGAAGATCGCCAATCCGAAA -ATGATGACCAATGCGAAAGTGATAATTACAATCATCGATGATAAGGAATA -TGATGAAGTTTGCGTGGAAATCGAATCGATGTACGCTTGTGACGTCATTC -CTGGAAATTATTGATTTTTTTTTGGAAAAAAATTAATAATTACTTACCGT -CAACAGTAACACTCAACGAGTCAATTTTGTAATCCGAAATCATAGAGTTA -TTGCGTGAAAATGCGGCTTCCAACCTGAATGTTAAAAAAAAATCTATAAT -ATCGATTTTTTGAAAGTTTTTCGAAAAATTGATAAAATTGACGATTGATT -GTTTGCCCATAGAAACAGATAAAAATCGATATAACTTAATATCGATTTTT -TTTTGTGCACCTTTAAAGAGTACTGTAACTTCAAACTTTCATTGCTGCGG -AATTTTTTTATCGGTTTTTACAATTTTTTGTACAGTTTCCGTCCAATTTT -ACAGAATTGAACAACAACAGAAGGAAAAGTGAAAAATCGTAAAAAATGTC -CGCAGCAATGAAAGTTTGAAGTTACAGTACTCTTTAAAGGCGCACACCTT -TTTTGTTTTAACAAAAATTTGTCGTGGTAAGACTGGGGACCGTTTTTTCG -GCGGAGAAGTCGCAAAATTTCGGCTAATATCGAAGAAAAATCAATTTCCA -ACAGCAGCGACACATAAAAATTAGCAAAAAATTGTGATTTTAGCCAAAAT -TCAGTTATTTTTCGGAATTCCCGTGGCGAGACCCATTTCTCCCACCTGTA -GAGCCAACTGCACAACTCGACATGCGAGTTTATCCTTGCAGATGGCCAAA -AGCCCTCCGTCGATCATTTGACGAAGCAATTCCCGCTGCTCGGCCGGTGT -TGCGAGCTCGACGAGCTTCTGAACGATGAAATTGCCATTTCGACTGTGGC -AGAGCCCACGAAGAGCGTCGTGGATTCGGTGAGCTTCTCGAAGACGGCTT -TACGAATCTGATCTTCGGAATCCAGTGGGTAGTTGGCCTCCAAGAACTTT -ACGCCCGATGGATCGATTGCGAAATCGATGAGCTGCCCGTTGAGCAGCAC -ATCTTGGAGCGAGATGGTGATCGGAGCCACTGGTGGTGCAGTCTCATCGT -CGGAAGATCCAGATCCGAAGGTGTAGCTGTCAGAGTCGGAGGAGGTGGTG -TTGCTCCCGTGGCGGTAGGGAAGAAGCTTGACCGGCGGCTTTGGGTTCTG -GAAATTCTATATTTGAATTTGAAAATCAACAAAATTCAATATTTTACCCT -GCTCTTGTGAGTTTTGTTCGACAAAAGCGAAAAATCCGGGTCGAAATCGA -ATGAAACGCCGAACATGGGGGCCATTTGGACAGAAATGAATGAATACAGG -TTAGTAGACGCTGAAAAATTGGGAATTTCAATTAATTTAGGATTTTTTAA -CGGAAAAATAAGTGAAAATGAGAGGCAAACATGCAAATTAAAATCGCGAA -ATTACCGCGCTTTGAAAGGGACTCCACCGATCGGAGAGACGAGGGAAGTG -GAGAGACGCAAATCGAAGAGACGCCTTTTCAGACATTTTTTCGTGATAAT -TTTGCATGAATTGGCAAGTAGAGCTTACACGTGATGCGAATCATTGATAA -AAACATCAATTGTTGTTTTTAGTGTACTGAAATTCCGGCACAATAGCTCT -CGTAAATCGACACAAAAGTCACTCCGTGGAAAAGTGGAATTTGGATAATT -TTGTTCTTTTTTTTAAATATGATTAACGTTTTTGAAGGCTTTTGTCTCAT -AATTCATCAAATTCAAAACCGGAATTATCCAAATTCCACTTTTCCACGGA -GTGACTTTTGTGTCGATTTACGAGAGCTATTGTGCTGGAATTTCAGTACA -GTAGAAACAGAAAATGTTGTTTTTATCAACGATTCGCATCATGTGTAAGC -TCTACTTGCCAATTCATGCAAAATTATCACGAAAAATGTCTGAAAAGGCG -TCTCTCCGATTCGCGTCTCTCCACTTCCCTCGTCTCTCCGATCGGTGGAG -TCTCTTTTGAAATTCGAAAATAAAAAGTTTCGCAGTGCGCCCGGGTTACG -GTGAATTTTAAAAGCGCATCACGGTTTTGAGTGAGGTCTCGACGCGAAAT -TAGCCGTTTTTGAAGATTTGTCGTTTATTTTGGCATTTTTGAAGGAAACA -TAAGTGAAAATAAACAATTTTAATCTTAATTGAGAGAAACTTGAACATTT -TTACAAAAATTGCAAGAAATTGCGCGTTAAAATTCAAAAATTAGAAGTAT -CGCGGCGCTCAAGCCGTTGATAACAAGCCGTTATAAACTTATATAACTAT -ATAATGTAACTCGATGATTTGTTGATGTGATCTTTAAAAAGGTTGAAACT -GCCCCAGTCGATGTCCGCGCCAGAGGCGCTGTCAGCGGCTGGTTACTTAT -ATATAAAAAATATCGGGAAAAACGCACTTCCGTTCCATTTGTTTCTTTGT -TTTTGTGACGTCACTGAGAATTATGGGCGGGCCCGTCTGCCTTCGTGGTA -AGACCCATCGTGGCGAGACATATCGTGGTGATATCCTTCGTGGCGAGACC -CATCGTGGTGAGACCCATCGTGGCGAGACCCATCGTGGTGAGACCCATCG -TGGTAAGACCCATCGTGGCGAGACCTTTCGAAAATTTGGTGGGAATTCAA -ATTTTCTTAGAAACATTTTTTGGTGGGAATTCAAAATTTTCAAAGAAAAA -CTTTGGCGGGAATTCAATTTTTCAATAAATAATTTTGGCGGGAATTCAAA -TTTTCTAAGAATAATTTTGACGGGAAATTCAAATTTGTTGAGAAACTCGA -GTAAATGCTGGAATGTTCTAGAACCTTCCTGGAGATTGGGGAAAATTTTA -GTATGTTCTAGAACCATCGGCGAACTTAAGAAAATTCTGGAAAGTTCTAA -AACCTTCTAGAAAATTCGTGAAAATTCTGGATTGTTCTAGAAATTTCTAG -AAAATTCGAGAAAACTCTGGAACGTTCTATAGAACCTTCTAGAAAATTCG -GGAAAATTCTGGAATGTTCTAGAAAATCTTGTTTGCCAAAAGCTCTCGGA -AGGAACCGGAAAAGTTTCTTATGATTTGAAGAACGTCTAGAAACGTTCAA -GAAATTTAGAAGTAGTTCCAGGAAACCTGGTATTTTTAAGTTGTAACTCT -TGAAAACTTAGTTATATAATATTCATGTTGCGTTAAAAACTTCTGGAAAA -CTGAGAAAAACGTTCCAAGGCTTAGAAATTTTAGAATTTCATCTTAATTT -CGAGTACGCCAGTCGGAGCACGCGCATTGTGCGAACGGCTGGTATACAAA -CAATAGTCAGTCAATCCCATGGATCAAATTTTGAATTTTTCTAAGACTGA -ACTGTTCCTTTGATATGCAAAATTTTATAAAATTGTCTGTTATTGAAAGA -CATGAAACAAACTTGAATTACAGTAATTCTGTAAATTCTGAACTTACTAT -TAGAATCCTTAGTGAGCACACTTGAAAACGAATGAAATAAGGTATGTGAG -AATACCGTATCAATCAGATACGTCTGACACTTCCCCAAAAAAAACTATCA -GAATATGAGTACGATATGTTATTACTAGTGTGCATCTTTCCGCGCGACCA -TCATGGCTCAGCAGGTAAGACTTCGGCGACGCCTCGAGACGACGAGGTAG -TTGACGACTTTTTTCATTTTTTAGGCAGCGCCCAACTCTTGTCCGAGGTC -TACAGGCTACATGGTTTGGACGGACAGAGTATTTGCTTTATTAGTAGTAA -CAGAAATACACATAAAATCAATTAATAAGATCCATGAAATGCAATAAAAA -TCCAGTTTTCACCCATCTACTATGTCTCTCATTGAAGAACTTTTTCAGAT -AGCTTTTGGTATAGAATATATTAAAATTCATTCTTCGATTTTCTGTGGAA -TTTCTTATTTGAAAGCTTTTTCCATACCAGACAGTCACTTCTCCAAATCC -ATCCTTGAAATTTTCTTTGGGGATATTTAAAATATCATCGAGATACCAAC -AATCTACTGGTTTTTCACCTACAAGACGTGCTCTTGAATTGAAAATGTCT -GGGATATCCTCTGGAATATGTTTTTCTCCTTTGTCATGCTGATAGTATAA -GTTGAATGTGACACTTCCATTTCTCTGGCTGTTTTGTTCAGTCAATCGGA -TTAGCTTTGCTGTGACTCTGTCCATATTGTCCGGAGTAATGAGGAGATAC -GTTTTAGGAAGTAGAACAGTCATACTCTTGGCTGGGAAGTTTCGTTGAAC -ATTTGCAATCACATTGTCCATTGGTGAATAATAGTCGTTTTCCAGTTGTT -CGTTCATTTCGAGTAACATATCCTCAGAGTATTGTAAATCGATCTCCACT -TTTTCCAGAAGAACCCTCGAAACGGGTTGGGTGTTGAATGGTACATTGAA -TACGGCATTTGAAAAGTCTTTAGACGTTTCCAAAATGAAATCCATATTTG -AACTAAACATAGTATTAAAATGACCACTGTAAGCTTCGAACCGGAACTCC -AGTCTGAAATCCTTAACATTCCACTTTGAAATAAGCTGGTATAAAAAGTC -TCTTGGGATTGAAAGGAACTCTTTTCCCAGTATTAAAACGGTGAATGTGT -GGCATGTTACCAATGAATTGAGGAAATAATTTGCTCGAGCACCAACTACG -TACCGCCCTAGTTGCTTTTCGTATATGGTCCGATAAAACAACCTGTAAAA -TGTAATCTTTATAATGTTCCTGAGCATATCATGTCAAGAGTGTCTGAGTT -TTTCATCAACAAAAACAAAATTTGATTTTTTTGTTAATTTTCTAAACAAT -CCGATTTTTGGTTTTCCGGAAAATTGAAACATCGAAATTTTCCGTTTTTC -AATATCCAATTATTCGATTTTCCGATTTCCTCTCAGAAGAACGAAAAAAA -CGAGAATAAAGTTTCCATGACATTGATCGCAGTGGGCTGTTTGTTTTTGG -GATAACTTTAAGTGAAGGAATGGAGAGACTATCTAAGTATGAAAAACACG -AGAATTCACTCTTTTGAGAACCTGTTACAATACGTGTACTGTTATAATAG -AAAAACTAAAGCAGTGATTCAAACATCTGTTCGACGGTGTTCATTACAAA -TGTATCAATTTACACTCACCAGTCTTTCATTTCCAGCGCTTTGTAATGAC -GTGGAGATATCCTGATTTGATTTATGATTTCTATTATTTTTAATTCTCCA -AATAGCTCTTCTCCCAATATTCGCAACTCATCAATTCCAAAATTGCTCAA -TCGAAGATATGCGAATTTCCCGAATAGTTCGTTTAATCTGTCCATAAATC -GATCATGCTCATCAACTCCAAAATTTTCCAACATCAAATTCAAAAACTGC -TGCGGTATCGAATTTCCACCAAAATATTGAAGTTGAATACTATGAACTAT -ACAGTTTTTATTTCTATGAATGTCTCGACATATTTGACAACCACAGCAAA -AATCATTTTTATATTCTTCAACGAGTCCATCTAAAAATCATGAATGTCAA -ATCAGTAGTTCAAAAGCCATATATTTTACTCAGAATTCTGAAAAACAGGC -GCTCATGTCAAAAATTGACTTACAATCTACTCCAATCAAGCAATCGTGTA -TGAGATCATTGAGTATAATTCGAGCATCCACTCCGCACGAAATTTCGTTT -TTCTTAATCGGTTCGACATAAAGCTTGTAGACTTTCACATTTACCGTATT -TTTTAAAAATCTGAAAATAATGTTACAGCTGAGTACAAAACATTAAAAAT -TGGTTTAATTGATTGAAATTTTCACCACTTCTCATATTGTTTCCACGATC -ACAAAAAAGCATAAAAAACTTCAACAGACTCAGAAAACACTTTTTAAAGG -CAAGTTTTGAACCACCTATTTTGATGAAAAATTGTCTGAAACACTTCTCA -GATCGACTTTTCCCTAGCTCAAAGTGATCCTCTGCCGCTAGCTCTTTTTT -AGAGTGGTCATTCGAAAGTCCGGGTTTAAGTTGAAATATTTCCCTTACCG -GTCAAAATTCTATCAACATCAAAATAAAATTGAATTTTTTGGTAGTTAAC -AGAGGAAGCGGCGAGCAAAAAAACCAGGTTTTGAACAATTGATTTCAACT -TACACGAATAAGTGTTTCACCTTGTTTTTGTTTATCTCCAGTGCATTTAT -AAGAAACGAGCAAGTGCATCGACGAAGCTGTTTTAGCGGAAGTTCAGGAT -CTACTTGATTGTTAATGAATATTGATCTTTTTCTTCAATTTTTACAAGTT -TTGAAACTGTGAATTTGTATTTTTCGATGCTCATTTCGAATTTTGTGCAA -AACTTCTTCGCTGAACAATTTATTTATCAGCTGAAAAAAGAGCGAATTAA -AGTAAAATTGAACACAATTTTGATACCTGTCTATAATTAGGGATATCAGT -CCGCTGTATTGATTTTTTTGTTTGAAAAACTGAGTTTTTGTTTATTTGCA -GCGGCAAATTTTTATTAATTTTTTTTGATAAAAGTTCATCAATGCCATCA -GTGTTGTGGCACCACGGAGTGGCGGAAGACCGAACCCTTTAAGCCTCAAG -AGGAACCGAGCAACGAAGACTATGTCAGAGGTGCAGCATGGCATCGTCTA -TTTGTATATGTATTGGAAAGAACAGAACACAGTTTCAATAAATATGTTTA -TTACTCCAAAGGGGAGATAATCAACAGAGGGGGAGTGGGTCGTACACAAG -AGAGAGGGAATTGTCTGGTGTGAGAATATCACGTCCTGCCACGCGGGTCT -TTAGTCTGAAAAGGTCGAGTGTATGAATAGTCGGGGTCTTTGCAGACTCG -TAGAATAATGTCTTTGGTCAACTACACTTTCCAAATAAAGGGAGGGAAAG -GTAGGAAACGTCGGCAATTAGTCTGACTGGGAGCTGTCAATAACGGGGGG -GGGGGGGAAGAGACCAGCAAAACCGAACCAAGAGTGGGGAGGAGAGTTCC -TTTCCTGGTGCCACCGACGCTGCAGCTCGCTCCGTATCGTCGCTCATTGA -GTCGCCGCGCAGCCAATCGTTGCTACGGGGCGCGAGTGTAACTCTCGTTA -GAGAGCGTGTGGGAGCAAGAGACGCAGAAATACAGTAAACTTCTGCGACT -CCTAACTGTATGGTAAGCTTAAGAGCTGGTCTTAAAAGGTCGAATTGAAT -GTACCCCTCGCTCGGAGAACTGCTGAAGCAGTCGAGAGCGAGACATTGTG -AAATGGGCGATACAGCAGAGCCCAGTTCACAACTCTCCGGGGGGCGGGAC -TTGTAGGCTGGTTCACGTAGTGAACTTAAGGTTTGAAGCCTTCCTTTGCC -TTTCTTGGAAGAGATTGGCGGAGTGGAAGGTCGTCTGAGCTCCTGGCTTC -TTTTCGTGAGCGTTCAGCTTCTTTTGAAGATCTAGTATTAGGTGAGCTCG -GAGCTTCTTTTCTAAATCTTGCTTCGTCTGAGCTTAAAGCTTCTTTCCTG -GATTTAATAAATTTTAAAGATGGAAGCATAGGTAGTGAGGGTTCAGGAAA -GTCGGAGTCCGTCTCTTCGTCTTTTTGTGGAATTTTGTCTTTATTGTCTA -TGTCTTCCGCTGTAACCTCAAGAGGATACAGTTGATTTAGTGATCGTTCC -AACGTGGAGTTATTGAAACGAACTCGTGCCGATTCAATGTTTCCTTCTTT -ACTCGGAATGAGCTCCACAATTTTGCCCAGAGGCCATGTGTGTCTTGGCA -ACATTTCTTGTCCGACGAGAACAATGTCTCCTTGTTTAGGATCTCGAGGA -GCATCCCTTGTATTAGTCTTTTGTCTTTCTCTCAGAAACAGGAGATATGA -TGTCGACCAGATTTGCCACAACTTTGCAACTGTTGTTTCAACTCTGGCTA -AGTGTCTTCTCGTGATTTGCTCTGTTGATCGAGCTGTCTTTGGAGAATAT -TCCATCGGTTCGTCTAGATCAACTTCATTCGGTGCATCTAGCTGAACTTT -TGGTAGTAGAAAGTCGATTGGGCGGAGAGCCGTCAGATCATTGGGATCTG -TGTTGTCTGGTGTAAGTGGACGGTTGTTAATCATCCCTTGCACCTGTCTT -AACGTGCTGGACAGCTCGAAGAAGGTTAACTTTTTTTTGCCAATAGTCTT -GCGAAGTTGGTGCTTCGCAATTCCAACAATCCTCTCGTACACTCCACCTT -GCCAAGGGGCGAATGGAGTGATGTTGTGTACCTGAATTTCGTATTTGGCT -AAAAAGCAAATCATTGAGTTGCTTGGTGCGTAAAGTCTGATGTCTTGGTT -GACCATTTGGTGGCCGAGTGTAAATGTTGGTGCATTGTCACAGTAGATAT -GGGGCGGAACACCACATGCACTGGAGATTGCTCTGAGTGCGAGCAAGTAG -TTGGCTGTAGTAGCGTCTGGAATGAGTTCTAGAATGGTAGCTCTAGTCTT -CAGACAAGTGTAGATAAGAGCATAGGCTTTACCTAGCTTGTCATCGTCTG -TCTTGTATTGTATTGGACCCAAATAGTCGAGTCCTACATGGTCGAATGGT -GCAGAAGGTACAGTTCTGCAGTTTGGTAGTCGTGTGTCGTAATTGTATTT -AAAGGGTCGTGCTTTCACCTTTTTACAGTTCACGCACTGAGCAATTGTAG -TTCTTGCAATTTTGCGATCATTTCTGATCCAAAAGTGCAGTCTTACCGTA -GTTGCCAAATAGTGTAATGGTAAGTGGGTATTTCGTCTGTGGACATCTTC -CACAATTAGACACAATCAGATGTGGAACCGGATTGGGTCCCACTATCCAA -TGATGTTTGTTTCCGTCCTCGTCTACTGGGTTACGCAATGTGTCTTGCAA -AGTGATTAAGTAACCGTCTGTAACAACTGGAGAAGTTGTGTCAAAAAATG -TCTGAATCAGTATGATTTTGTCTCTGTCTTTGAATTCGAGAATTCGTATT -GTCTTGCATTGACTGAGCATAAGAACAGTTTCCTGTTATATGACTCGGTG -ACGAGCAAATCGTGCATCTACCATTGTTGATGCAGAAGCGTTTGACTTCA -ATCGCACCCATTGTGCACGTTTGAAGTGGATGGTCTTTTTTGCAGGGAGG -GCACGGATCTCCATCGAGAAATTCTTGCCAATTCTCCACGAGTCTGGAGG -TAGTATTACCCGTCTTTTGTTGAATATGCAGGTTCAGGAGGTTTTCCTTT -AGTTTTCTGTCCCGTTGGACATCAACCAAAGTACGTCGCCAATCTTCCGC -GCAGTTGTCTTCAAGATGTTTTTTGAGGCTTACGATTGGATCGTCAGCCC -GTCTGGGTCGTATAAAGTTACGCGGAGTCAGCTCGGTATAGTCAGCTTGA -TAGTCTTGCATATAGTCTTTGAGATCTTTAATTATCATGTCTTTGGATTT -AATCGTTGAAGGTTTCTGTTTAACAGTTTCCAACAAGTCTTTAATCGTCG -ATAGTCTATGTCTCAAGTCACCAGAAATAACAATCATTTTCTGTCTGGCC -AGATTAGTCGTGGATCGTATGATATCTGTTAAATTCAAAATTGGCGTACC -TGTATCCTTTGCCTTCTCGGCGACGTCCTTGAACATCTCCTCGATGATAT -CCGGCAATGAATTGGCTTCGACCAAGTATTGAGTCAGGTCTTTGTACCAT -TTGTGAAGATCCTTGATGTAGTCCATATGCTGCTGCTTGTCACAATCGAT -ATTGGCGTTAAGCCAGTCGGATGAAGACTTATCTTTGTGCTTCAAGTCTT -CAGTCTTAAGTGCGATACGCGTCAGCAACAATGCTATGGATGATGAAGTG -GAGAATGGGGTCCTGGATTCCCTTCCCAAGCTGCCACCACCGGAGTCGGG -ATCAAGACTTCCACCTCCAAGATGAAAAGTCATTCTTCTTTGAAAACCGA -GAAACTTGTTATCTAAAATCAATAATTGGTTAAGAAGAAAGACAAAATGT -TTTGAGATTAAGTAAAAGACTTAATAAGAGATTAGGAAAGAAAGATGGGG -ATGAAGACTCAATTTGAGTGATAAGAAAAAAAGGTATTTTAATATAAGAT -TCTACAATAGGGATTGGGAAAGGTGTGCCGTGGCCTAATATAGGTTTGGT -GGTACAATAAATAGGGGAAGTAATGACCCAATATGGGTGGGGGGATTATT -AAATGTTACCTAATATGGGTGAATTATTAATTATTCCTTTGGCAGAGGAA -TGTCGGTGAGGGCTAAGAGTTCCCTGTATTGTAGGTTGATTAGTCATGTA -GGGGACTGGTGTAGAGTAATTTGGTGTAGAGTAATTTGGTGTAGAGTAGG -TATTTGGTGTAGAGTAGGTTTTGGTGTAGAGTAGGTTTTGGTGTAGAGTA -ATTTGGTGTAGAGTAATTGGTGTAGAGTAGGGATGGAGGGAATTCAACAC -CGACTGGTCGTGAATCAGATCGGCCCTGAATTGGGGTAGGGGACAATAGA -AAGAAACTACCGTGTGGCCAACTGCCCCCAGCAGGGACCTAGTTGGGATT -GTTTTCACTTGAACACGAAAACAATGGGGGTTGGGAAAGTTAATAGGGAC -AAAGGAGCAAAACGAAACGTCCATTCCCGCATCGAATTGCCTCATAGGCA -CCGCACCCAAACTCTCCTGCCGCTGCAGCAGTCAGGGAATCCGACGCTCC -ACGCTCTCCATCGCGACTGGAGACCAAGTTCTTCTTTCTTCTTATAGTCT -TTTTTTTCTAGTGGCGCCGGTTAATTACTCCATTGCCAACTAGCTGTCGG -GAAGTCAGAAGTCAAATGTCCTTGCGGACGTGGAATATAACATGTTTGAA -ATTAGGGTGGTTTAAGTTTTTTGTGAGATCCCTATGGATAAATTTTGGTT -AATTTTTAAATTTGAAAGGTTTTAAAAGATGTACAAATAATTTTTAATGA -TGTATAATTTTTGGAGAAGGTACTAGTTGAAAGATATAAAGAATTTTTAA -ATTGAAAGTTAAATTAAAATTTTGAGGGGAATTGGTGTAGAAAATTAGTT -AAAATATATTTTTGGAATTTTTGAAATTTTATAATTTTTAAGGATTTTTT -AAATTTTTTAGGAAGTTATAAAAGGGGGTAAATAAACTAACTGTTCGATC -GCCGCGTCCTCCAACGAGCAAATCCTCCATCCATCCAGAGTTCTTGTCTA -CCCGTCTTGTCGTCTATTCCTCCTTTTCTTCTTGTCTCTAGCACACAGGA -GACTGTGCACTATTGTCTTTCCGTTGCAGTCAGCGAGCTGCCAGCAACTA -GTCGCATCGTTAATGGCACCTTTGCCACTGTATTGAATGCTGTGAGCTGT -TTTAAGTGCTATTACACTATAGTCTGTAGAAAACAAGAAATTTTGTAATC -GTCTTTCGTCTTTCGTCTTGAACCATATTAACAGCCGAGATTTATTAAAT -CAAGGAACAAATAACAGCTTCAACAATGTGGTATCAGATACCGGTGAGGA -GTGGTGAGGGGGGAATTTCAAAAAATTTAAAAGATAAAAATTTAGTGATC -GAATATCGAGATATTCGATGGGGATTGTCCTCGTGCCAATTTCTTGGCGA -TCCTTGGTTGGTATCGGCGTCTGACCGGCTGGTGTTGTTGCTGCTGTTGC -TGGAGTTGTGGTGGCGGTGGTCCAAATAGTTGTGGAGCAGGAACGCGAAG -TGGTGGTGGGAACTCCTGTGCGGCTGGTACGAGTTGTGGTGGAGGTTGCT -CTTCGGATGGTGGTGGCGTGTGAGCATTGAATCCTCCAGAGACTTCCATC -GCGAGGGAGATCCTGTTGATCGCTGCGTGCACCACATCTATCTTGTCGTA -CAGAACGACGTGATCCGCGGATTGGATCCACACTTCCTGGGAGCCAGAGC -CTTGTGGAGCCGTCGCAGTCGTCGGGCCATTTGGGTCGCGGCCGGTCTGG -GGGGCTGGGCCCGTACTTCCTGGGAAGTTGAGAAACCAGTCTTCGAAGAA -CTCGGATGGAGATGTGTCGTCGGTGAGCGTCGGGTCGAACGGTCTGAGAA -GATTTTAGAAAATTAATAATAGTATATGGAAAAATTGGATAAATTTTTAG -AATTTTGAAAGAATTGATTGAAAATGTGTATAAATTGAATTTTTTAGAGA -AAAATGATAAAATTTTTTAGAGAAAATAATAATTTTTAGATAATTTTTAA -ATAAAATCGAAACTTCCTTTAGTCTGGCGCTTCGTGGATGGGTAGGCTCC -ACTCAGCTGTCAACTTACGTACTACCAATGAAGAATTGCAGGATAATGTG -CATATTAGATGCAAAACGACGAGAAATAGCGAATAATAAGTCGGGGAAAG -TCGAAATTGTGCTCTGGGAGCATGAGTTTGCCAAACTCACGTCCCTCGGC -GTCTGTGGGCTCGCGAGCCGCCCTTGTGTACGATTTTAGGGGTTTTTTAA -TTTTGAATTTTTAGAATTTTAATTATTTTTAAAGAAAGTTTGGTAGAATA -AAGGGACGGGGGATGTTTAAATAGATGTGTACCTGTCGTCTATCAAGTCT -TCGACTATCGAAAACGTCGAGTCGTCGAAGTTCATATTGAATCGTCTCTT -CACGGCCCGGCGGGGGGTACATGGACGAGAATTCTCTACCGTATTCCAAT -TTGGCTGACTGCGTGCTCAACGTTGAATACTCAGTTTAAAGTTTCGTACA -CCGTTGCGTACTGCACAGCGCGCATTTTAATTGACGAAATTTCGCGAAAA -TTAACAGAAGATTTTTTTCGGAATTATAGAGCTGAAATTGAAAAAAAAAC -TATCAAATTTTCATCGAATTTGTGAAAAATCGTAAGTATGAAGATCTTTT -CTTCACTATATTCAAGGAAAATCGATATTTCGCTTTTCACAGACGAATGA -TGTCTCATTTTACTCGATGAAAGTTTCTGATGAGCTGTTTTTATCGATTT -TTGAGCGATAAAAATGCGATTTGTTGATAAAATGGATCAATTATATAAAG -AAACAACATATATTGCTCTGAGATTACTTTTTGAGAATCAATTCTTTATT -TTTCGGTCATTTTAAATTAAGCATTAAAATAAAAATATTAGAAATCATAA -TAAAAAAAACAGAAAATCGATATATTACTTTTTCTTCGGAATTTCACGAC -TTTTTTGGACGAATTTTATTCTGTAAACTTTCTTCTTCGAATTTGTGTCC -ACGTGGCTTTCAGTCGAAGAAGATTCTGCAGCACTCCTTCTTGCTTGCCC -ACAACTTACTCGAATTTTCTAAAATTTTTAACTTATTGAAATTGTCATTT -CACCTTTACACTCACTTCAGCTAAACTATTACTGCATTTCGGAAGTTGAT -AGGATACTGGTGGAGCAACAAGTGGATGGCTTCTAGTGATTGGCTGGCTT -GTCGAGCAAGTTTGTGTGATTGCCTGAAATAATTTTTGATTTCAATTTTG -AGTTGATTTAAAGCAGTGAACCTACCACCGGGTTCGGACGAGAAAGAGCA -TTACTCGGTAGACCACGGAATCCAATTTTCGTTGAATTGCCTCCAAATGC -AATAGAAGTTTGTACGTTTTGTGAGAAGTCGGGCTGAAAATTTTCAAAAT -TTGAAACTTTTCGAGAAAAATAAAAATCTCACCACAGCATTTCGAGATTT -TGTCGATTGTGGAAGCCTTTTCCTGGAGCGAAAATTGATTTTTTTTTTCG -CTAAATTTTTTCTTTTTTGGGCAGCCGTGACGTCCCGAATAACTGCTTTT -GGGTCCCGAAGATCATTTTGCGAAGAAATTGGCAGAACTGTTGCATCTTT -TGGTACGATGGAAAGACCGGGAATGGACGTGTTCTGAAATAGTTGTGTTT -TTAAGAATGCAGAAATGTTTTTCTGTACCAAAATTACCATAGTCATGTCA -TTCATGATGTTACGACACATGAGCTCTCTCAGAACATGGATGTAACGCCT -TTTCTTGTCCCGGTAATTGCAAAATCTCCTCTCAAGTGCATTGAAAATCG -CGTGGACAGATTCAACTCCTTGTTCTGTGATCCTTCCAATGTTTCTCACA -TCTTTTGCCATTTGTGGTGCATGGTAGACCAACAAGTGCAGCTTTAAAAT -AATTGTTTCTTCGGGAACCGCTACTTTCAAATCCTCCACAAATCCGCGAA -TCGAATTTTGAAGTATTAAGACGTCGGAATCATTTAAAAACTTGTTTCCC -GAAAGTGACATAATAGTTGAAAGCTTTCCCATTGCTGATTTCAATCCGAG -CAACATTGGGCATAAATTTGGGCCAAAAATGTTGAAAGTCTCCTCTACAA -CAGCCGGCGTTAGCAGCAATTTCAAATGGTTTCCGCAAAATGATTGGAAC -CAAGCCTGCTTGTCCGCTCCAAACTTAGCCCAACACTGTCCCATTTTTTC -AAGTGTTCCTTCGGGAGTACCATTCACAATTGTATCGAGCAACAATTTTT -CCGATTGAAGTGCTTTCAGTTCAGCATGCGACTCCAATTTCATCTTTCCG -GTGGCTCCTTGATACTTTTCTTCCGCACTTTTAATTAGGTTAACAGCGTT -TTTTAGAGTTGCTTTTCGTGTTTTCAGGATAGGAAAAGAAGTAGTGTTAT -CCAAAGTATCAGAATATTTCCAGAGGGGATTGAAGATATATTTGTCAAAA -ATACCCATGATAATGTGCAGAAGAGGAATCAAATAGAACATGATCGCAAC -GTGTGGCAGAAGTGGAGTACATCCTTTGCGAACACCCAAGTCGCCATTTT -CACAACAAGCTTTGTAAAGATCGATTGTTCGTGGGTGGAATGTTTCATCA -ACATTCATATCCTTGATTTTCATCCTCTCTTCAGCTCCCCGTGGATTCTG -TGCAAAACATTTGAAGCAGAAATTGTGGGATGAATGTCCTTGGTGTCCAA -GAATATCAGATTGAAACTTGCAATCTCCAGTTGCAATTTGCACAATTTTT -GCGGTTTTTTGAACTCCTTTGTCCAAATATCAAATTTTCGTTAGCTTGCC -AAGCTGCTCAAGAACGTCCGGAATGAATTTTTTCAGAGACGAATAATTGT -CGGATCCGTCATATACTGCAATTACCATAACGTGTCTCGAAGAATTCGGT -CGAGATACGTTTCCGATTACCAATGCCAACTTTGTGCTTCCACCTCCAGC -GTCACCAACGACTCCAATCTTGATTACTCCTTTCGTGTATCCGTCGTCCA -CAAATTGATTTGAATTGCATAGAAGCTCTATTCGATAGGCTAAAACTTCT -GCAATTTTCATGCACTGCACAATGGTAATCACTTTTCCTTTATTGTCGAA -CGAAGTGGAAACTTTGAAACTGGAGATCATTGATAACTGGATTGACAAAT -CTCTTGTGTTCTTTACCGATGGAAGCAAATCATAGCCAATGGCATTAGTC -AAATAGTTTTTGATTTTTTCCATCTGACTTAGAGATAATCCGCATTTTGA -TAAAAAGTCAACGGCCTCAAAGTTTGAAAGCTTGTTTTTGTAGCTTTGAT -TCTCTTCTGAATTCAGGAATTTTGTGAATTTTCGAATAAATTGTCCGACG -TCATCCTCGAGGCAGATTTCGTGTTGAAGCAAGTGAAGAGCTTTGCGAAA -TCGATTTTTGATACAACTTTTGCTTCTTAGATTCGAAATATTAACTTTAA -AAGCTGATTTTTTAAGGTTTTCAACTTCTTCGGCGTGTCTTTGTAGACTC -AGAACCATAGCTTTGCCACTTTTCTTCACATCTGCACAGCTTCTCACCAA -TCGACCTTCTATACCACTGACGATCGTTCGTATATTGCATACTTCCATTT -GCAGCGAAGAATTAGATGCTCTTATAGTGATATTTTCATGGCGGACTATT -TGCATTTCTTCCGAAAACACCGCAAACTCATCAATCCGCTTTTGTATTTC -TTCTGATATTTCATTTTTTTCATTTTTCAGTCGTTCGATCGTTAGTCGGA -GCATTTTGATCTGCGGAATTTGCTCAACATTGGAGATTATTCGAACCCTC -GGTGTACTGAACGAGTTTCGTAAAGGTGTCGGTGGAAATACGGGATTGGA -GAATCTCAGCAAAATCATATAATATTAGTTTTGAAATATTGAAAAAAATT -ACATTGTGAGAAAAAGTCGGAATTTCGTCACTAAAATCCATTTCCACGTC -TCTCGTCAGAATTCCTTCATCCATATTGAAACAATTTGACGACCTGCATG -TAGTTGCGGAGCTACTGGAAGCAATGTCGGGATGGTGGGAGTTTCGATCT -TCTGAACTGATTTCCTGATTAGCCTGTGGCGACGAGCTGCACGTCTGAAA -ATCACGTTTTTGAAGTTAGAACAAACTACTCCAACTTAATTAAAGTTGAC -AAAATTGAGCTGAACGAACCTCCACTTTCGAATTGTTCAGTTCTTCCTCT -TCAGTTTGATCTTTTGAAACTCCATTAGCACTGTTCCTTGCTCTCTGGGC -ATTTGCTAAAAGAAGGCCTGCACAAGATTTTTCTTTTCTTTTTTGTTTGA -AGTATACTTTTGTCATCTGGAAATATTGCATGAATATTATAAGGGAAACA -ATTTTTAAATATCGATTTTCACGAAATTTGAAAAAATCAATAATTTGGGC -GCATGATATTGAGCTGAATGTTTCGAATTTAGAATCAGCATGCTTTTATT -CATATTTTAGGATCTTTTTAAAAAATCTGGACCAACAGTTTTTGAAAAAA -AAATACTTTTCGTTCAGAAATGTACTGATTTTCCACTGATTTTCACGAAA -TTTGAAAAAATCAATAATTTAGGCGCATGATATTGAGCTGAATGTTTTGA -ATTTAGAATCAGCATGCTTTTATTCATATTTTAGGATCTTTTTAAAAAAT -CTGGACCAACAGTTTTCGAAAAAATTCAATTTTTGTTCAGAAATGTGAAT -ATTCACTAAATCGAAAAAAATAATTGCAAAATCCGTCGGCTGAACATTCA -AAACTTATCAATTTGAAATCAGCATATTTCAGTGTATAATTAAAAAAGGT -TTCAAAAATTCTGAGACCAATTTTTGTTGAGAAAAATAATTTTTCGTTCG -AATTATCGATTTTTCACGAAATGCCAAAAACAGTAAACTTGGGCCCATGC -TAAAAGCCTGAATCTTTCAAATTAAAAACCAGCATGATTTTTTCTATATT -CTAAGACGTTTAAAAAAAATCTGGACCAACAGTTCTTGAGGAAAGTAATT -TTTTATACAAAAATGTGCTGATTTTTCACTAAATTCAAAAAAATAATCAA -GTTGGGCCCATGCTATACACCTAAATCATTAAAATTCAGAACCGCCATGT -ATGTATTTTTTCATACCATAGGCTCTTTAAAAAAAATCTGGACCAACAGT -TTTTGAGATATGTCAAAAAAAACAACTCACTTTTTGACGTTTTTCGCCTT -TTCGCGGATGATGCGGTCGATTTTTGCGGCGATTTGTGGTCTTTCGCTGA -AAATATTATTTTTATTTCAATTTTTAACGAAGAAAACAAGAAAAAACGAC -GAGAAAACATCAAAAAACACGAAAAAAACGTCGAAAAACTCCCGCAACCT -CATGAAAAAAAATAAAGCACTGCAGCCGCGGGACTAGTTTTCGCAACTTT -CTAGGCCATGTCCCGTTCGCCGTGCCGTGTCTTGTCGTGGTGGTGTGAAG -TGTGTTGGTGTGAAGCGTGTGAGTACGGTAGGCTGCTGCAGATGTGGTGT -GAGCTGTAAAAAATCGAAATAATTCAAGAATTACGACGATTTTCGTATTT -TGAGAAGAAGAAAATTTTAAATCACGAAAATTCGAGAGAAAAAATGATCA -AATTCAGTCTCAGAAGCGAAAAATGAACTTCTTTGTCTGGAAAACAGCGG -TTGCTCGTGAGAAAAAATGTTTAAAATTGAAGAAGATCAACAAAAACAAA -AAAAGACACGTAAATGCAACTTGTTTTTAAAGGTCGTGGCCGCGTCGCGG -TCGCGCCGCGTGCGCACTTTTGTAGAAGACTCCGCCCCCTTTTTTCTTGG -CGCCGTGCCAATTTTTAGAAGGAAGAGCGTTTTTGGTTGAAATAATCGAT -TTTCGACGAGAAAATAGACTAAATCAAGTATGGTGAATCTGATTAAAGGC -ATATTAACTTTGTAAACTGCACAATTAACTAGAAATCGTACTATAACCGA -ATATAGTCAAAGGGTCGCTCAGTTCCCCCGGTCTAGAGTCCCAGGTTCAT -CTTTCGAGCTGTTTCCTGAGAAATTGTACAGGATTTGTCTGAGTCGTGAA -CTGAACACGCTTTTCAGGTAAACGTCGTCTGGATGTCCTGGAAATCAAAT -GTTAGTCTTTGTATCGATGGAAAACATGGTTTTCTCAAGGAAATAGTCGG -AAAGTCGGTCGATGCACCATGTTGTGGCACCACGGAGTGGCGGAAGACCG -AACCCTTTAAGCCTCAAGAGGAACCGAGCAACGAAGACTATGTCAGAGGT -GCAGCATGGCATCGTCTATTTGTATATGTATTGGAAAGAACAGAACACAG -TTTTAATAAATATGTTTATTACTCCAAAGGGGAGATAATCAACAGAGGGG -AGTGGGTCGTACACAAGAGAGAGGGAATTGTCTGGTGTGAGAATATCACG -TCCTGCCACGCGGGTCTTTAGTCTGAAAAGGTCGAGTGTATGAATAGTCG -GGGTCTTTGCAGACTCGTAGAATAATGTCTTTGGTCAACTACACTTTCCA -AATAAAGGGAGGGAAAGGTAGGAAACGTCGGCAATTAGTCTGACTGGGAG -CTGTCAATAACGGGGGGGGGGGGGGGGGGGGAAGAGACCAGCAAAACCGA -ACCAAGAGTGGGGAGGAGAGTTCCTTTCCTGGTGCCACCGACGCTGCAGC -TCGCTCCGTATCGTCGCTCATTGAGTCGCCGCGCAGCCAATCGTTGCTAC -GGGGCGCGAGTGTAACTCTCGTTAGAGAGCGTGTGGGAGCAAGAGACGCA -GAAATACAGTAAACTTCTCCTAACTGTATGGTAAGCTTAAGAGCTGGTCT -TAAAAGGTCGAATTGAATGTACCCCTCGCTCGGAGAACTGCTGAAGCAGT -CGAGAGCGAGACATTGTGAAATGGGCGATACAGCAGAGCCCAGTTCACAA -CAATCAGACTAACTGGCACTTACGTATAAATAATATTATGGGTTTCGTCG -CTCCCCCTCCAAATGTTTTAAAAACGATTTAAAACATAATTTATACTGTT -TTTTTTTACTACTGACCAATGAAAGTTCATGGTTGATAACATAAATCCCC -ACATTTTCAGAAAAATGGATAAGCAGAAAAAAAGTTATTAATGAACTCAT -AATTTTCATCGAAATTAGCCAGCTTTAGTTTCGGTGTATTACCAGAAAAC -AAATTTAAGTGATCTTACTCTCAACTCCAACAGAGTATCTAATTGATTAG -ACACATTTTTTACAATCTTGCTGACAATTGTGCGATTTTTGAAGATTTTG -TCAATAAGCACGTGATCCTGAAAATAAAAAAGTGAGTAATTTTACGCTCG -CGAAATTGTGAGCCAGTGGCTGCCTAGATTTTCAATTTGTTACATTATTT -TGCAGCCATACGTGGACCATAATTCTGGCGACCACTTTACGGCATTATAA -TTTTTTGAACTGCAAACAAAACATGTAAATATACATATATGTATACTAGG -AATTCGCACTAAAGTAAATTATTGAAATTCGTCAACTTTTATTTTCATTT -CTTATATTTTGTCTAATTTTCAACGAATTATTGAAAATGAAAATTTTTAA -TTCACGTCAAAATTAGTGAACGCGGTGAACGGCGACGGCGAAGGCGGGCC -GGCGTGAGGCCGGCGTGAGGCCCGCGTTTCGCGCCTCACTTAGCTGGAAA -CCCTAAGTTTCTCCAATTAAATTACAGGTGATATACATTTTTCCTCTTTA -GGATAAGAAAAGATCATTTCCTAAGCCTGACAATACAAAAATGTGGTTCA -CGTTTTTATTTTTCATAACTTAAAAAAATACTATTAAAATGAGGGCATGT -AATACACAAATACCGGCAAACGGTGTTTCAAATCAAATATTGAAGAAAAA -ACAAACAAAATATGATGAATTCTCTTTGTTCTTACCAAAATCGAAACCAT -CATTTAAAATTTAGCAATTTTTTACAGTTATATTTGGTAATTACGGCCCA -TTTTCTATAATATAAAGAAACAATTGAAACTGATCCACCCTGTCCGCCGA -CTATTGGGCATCGACAGATGGTGTTCTCAAAATACCAAAAATGGGTGGAA -CTCTCTCACGAGCGCTCTGCAGGTGTCGTTTTCCTTTGCAAAGGACTGCC -CTTCCATTCATTTGTGTCTCTATACAACATCTCATCTGTCATGCAAACCG -ACATTCCCAACATACTCGAAATCCCAATTGATGTAAGTTCTTGTTTCTTA -AACTAAAATTAGCCAACTATTTTCTAGAAATATCAATCTAGACCGAAATA -CCTTTTACTCTTGAATGATATCAAAAGTTTAAAAATGTTTTATCTGGTAA -ATATATTATTCAGTCAATAATAACAGAGCAATAATTTCCTATTTGTAAGA -CGGTTTGCCAGCCCTACTGATGTAAGCTAAAGGTCCTACAAAAAATCCCT -GAATTTTGGGTCTCCTTTGCTAACTACAAATGGTAGGCAAAAGAACATAT -TTGTGTACAAAAAAGTATGCAAGCAAAAGAGACAGCGTAGGCAGGCAAAA -GATTCATAAAAGAGAGATAGCCCCCGCGGTCAAATCATTCTACTAGTGGC -TTGAAGCCTCTGTTGATGTGATAAAAGTAACATTTTATATAGCATTGTGT -TCGATTTTTCTAACAAATAAAATGCATATCATTACTTATACAGTGCGTGC -ATGTTCTTTATGCCACCCCCAAAGTTTTTAATCATGGCAGTTTCTGTGTA -ATTTGGTGAGCAAAAAGTATTGAAAACCTATTCACAATGAAAAACCTAAA -CTCAAGAAATGTTGTGATTATATCTCGAAAATTGTGAAAAATAAGACAAT -AAATCAAAAATTGGCCGTGCAACTTCTATATGCCACCTCGGATTTTTTTA -TGATTTCTTATGATTTTAGACTATTAACTTATTATTCAAATAAAATTCGA -TTCAATTCGTATACATTTCAGTGCTAAATAACTATTCCTGTAACTTCTCC -CAAAGACGATACGATGATCAAAATATGGGGATATGTTCTAGATACTAATT -AAACATAGTATGTGAATATTGGTTCACATTGGTGGATTTTTAGCGTCGCC -AGAGGGACATATTTGGTGTCCCCAGCCGTTTTTGGTGAAAACACTATTTC -TCTTTTTTTTCTCGGTGCCAATCAAGTTGAGAAATTTCAGGCATGCTCTC -GAACCTTCAGGAAAGATCGAATACTGCAGAAAACCTGTAGACTAGGAAAA -CAACTTGGAAGTTTCTTAAAAGTTTGGAATTTTACTAGAATTTTCTGAAA -AATTTCAGAAAAAAAGAGACTTTCAAGAAACTTCTGAAAACTTCGAGAAA -GTTCTGGAATGTTCCAGATTTTTCTAAAAAGTAACAAATTCCGTTCAGAA -CAATGTTTTGAATATATGCCAGAATCTTACTCAAGTAAAATAATTTTTTT -TAAATTCTGATACTCCAAAAATATTATGAAATTTCAAAAAAAATTAAATT -TAATAGACGTTTGCAATACTATTGAAGACCTGAAAAAATGTTAGAAATTT -AGAAATTGTTCATTTTGAAGTATTCGAAATACTGTTCGATTATTCATGAG -ACTGATAATGTTATCAGTTTTTTTTATTTGAAAGCTTTCTAAGAATTTCA -TATGATTAGAACATCGAAATAGTTTTACTTTAAAGAAAAAATTGCTCCTG -GAAAATTTTAACTGCTGAAAACTTGGTTACAGAAATTTTATGATGCTCAA -ACACTTCCTGGAAACTGAAAAAAAAAAACGTTTCATCTGCAAAGAAAAAC -TTAGAACAAATTTCAATAATTTACTTTAGTGCAAATTCCTAGTATACATA -TATGTATATTTACATGTTTTGTTTGCAGTTCAAAAAATTATAATGCCGTA -AAATGGTCGCCAGAATTATGGTCCACGTATGGCTGCAAAATAATGTAAAA -AATTGAAAATCTAGGCAGCCACTGGCTCACAATTTCGCGAGCGTAAAATT -ACTCACTTTTTTATTTTCAGGATCACGTGCTTATTGACAAAATCTTCAAA -AATCGCACAATTGTCAGCAAGATTGTAAAAAATGTGTCTAATCAATTAAA -TACTCTGTTGGAGTTGAGAGTAAGATCACTTAAATTTGTTTTCTGGTAAT -ACACCGAAACTAAAGCTGGCTAATTTCGATGAAAATTATGAGTTCATTAA -TAACTTTTTTTCTGCTTATCCATTTTTCTGAAAATGTGGGGATTTATGTT -ATCAACCATGAACTTTCATTGGTCAGTAGTAAAAAAAACAGTATAAATTA -TGTTTTAAATCGTTTTTAAAACATTTGGAGGGGGAGCGACGAAACCCATA -ATATTATTTATACGTAAGTGCCAGTTAGTCTGATGGCATTGATGAACTTT -TATCAAAAAAAATTAATAAAAATTTGCCGCTGCAAATAAACAAAAACTTA -GTTTTTCAAACAAAAAAAATCAATACAGCGGACTGATATCCCTAATTATA -GACAGGTATCAAAATTGTGTTCAATTTTACTTTAATTCGCTCTTTTTTCA -GCTGATAAATAAATTGTTCAGCGAAGAAGTTTTGCACAAAATTCGAAATG -AGCATCGAAAAATACAAATTCACAGTTTCAAGACTTGTAAAAATTGAAGA -AAAAGATCAATATTCATTAACAATCAAGTAGATCCTGAACTTCCGCTAAA -ACAGCCTCGTCGATGCACTTGCTCGTTTCTTATAAATGCACTGGAGATAA -ACAAGAACAAGGTGAAACACTTATTCGTGTAAGTTGAAATCAATTGTTCA -AAACCTGGTTTTTTTGCTCGCCGCTTCCTCTGTTAACTACCAAAAAATTC -AATTTTATTTTGATGTTGATAGAATTTTGACCGGTAAGGGAAATATTTCA -ACTTAAACCCGGACTTTCGAATGACCACTCTAAAAAAGAGCTAGCGGCAG -AGGATCAATTTGAGCTAGGGAAAAGTCGATCTGAGAAGTGTTTCAGACAA -TTTTTCATCAAAATAGGTGGTTCAGAACTTGCCTTTAAAAAGTGTTTTCT -GAGTCTGTTGAAGTTTTTTATGCTTTTTTGTGATCGTGGAAACAATATGA -GAAGTGGTGAAAATTTCAATCAATTAAACCAATTTTTAATGTTTTGTACT -CAGCTGTAACATTATTTTCAGATTTTTAAAAAATACGGTAAATGTGAAAG -TCTACAAGCTTTATGTCGAACCGATTAAGAAAAACGAAATTTCGTGCGGA -GTGGATGCTCGAATTATACTCAATGATCTCATACACGATTGCTTGATTGG -AGTAGATTGTAAGTCAATTTTTGACATGAGCGCCTGTTTTTCAGAATTCT -GAGTAAAATATATGGCTTTTGAACTACTGATTTGACATTCATGATTTTTA -GATGGACTCGTTGAAGAATATAAAAATGATTTTTGCTGTGGTTGTCAAAT -ATGTCGAGACATTCATAGAAATAAAAACTGTATAGTTCATAGTATTCAAC -TTCAATATTTTGGTGGAAATTCGATACCGCAGCAGTTTTTGAATTTGATG -TTGGAAAATTTTGGAGTTGATGAGCATGATCGATTTATGGACAGATTAAA -CGAACTATTCGGGAAATTCGCATATCTTCGATTGAGCAATTTTGGAATTG -ATGAGTTGCGAATATCGGGAGAAGAGCTATTTGGAGAATTAAAAATAATA -GAAATCATAAATCAAATCAGGATATCTCCACATCATTACAAAGCGCTGGA -AATGAAAGACTGGTGAGTGTAAATTGATACATTTGTAATGAACACCGTCG -AACAGATGTTTGAATCACTGCTTTAGTTTTTCTATTATAACAGTACACGT -ATTGTAACAGGTTCTCAAAAGAGTGAATTCTCGTGTTTTTCATACTTAGA -TAGTCTCTCCATTCCTTCACTTAAAGTTATCCCAAAAACAAACAGCCCAC -TGCGATCAATGTCATGGAAACTTTATTCTCGTTTTTTTCGTTCTTCTGAG -AGGAAATCGGAAAATCGAATAATTGGATATTGAAAAACGGAAAATTTCGG -TGTTTCAATTTTCCGGAAAACCAAAAATCGGATTGTTTAGAAAATTAACA -AAAAAATCAAATTTTGTTTTTGTTGATGAAAAACTCAGACACTCTTGACA -TGATATGCTCAGGAACATTATAAAGATTACATTTTACAGGTTGTTTTATC -GGACCATATACGAAAAGCAACTAGGGCGGTACGTAGTTGGTGCTCGAGCA -AATTATTTCCTCAATTCATTGGTAACATGCCACACATTCACCGTTTTAAT -ACTGGGAAAAGAGTTCCTTTCAATCCCAAGAGACTTTTTATACCAGCTTA -TTTCAAAGTGGAATGTTAAGGATTTCAGACTGGAGTTCCGGTTCGAAGCT -TACAGTGGTCATTTTAATACTATGTTTAGTTCAAATATGGATTTCATTTT -GGAAACGTCTAAAGACTTTTCAAATGCCGTATTCAATGTACCATTCAACA -CCCAACCCGTTTCGAGGGTTCTTCTGGAAAAAGTGGAGATCGATTTACAA -TACTCTGAGGATATGTTACTCGAAATGAACGAACAACTGGAAAACGACTA -TTATTCACCAATGGACAATGTGATTGCAAATGTTCAACGAAACTTCCCAG -CCAAGAGTATGACTGTTCTACTTCCTAAAACGTATCTCCTCATTACTCCG -GACAATATGGACAGAGTCACAGCAAAGCTAATCCGATTGACTGAACAAAA -CAGCCAGAGAAATGGAAGTGTCACATTCAACTTATACTATCAGCATGACA -AAGGAGAAAAACATATTCCAGAGGATATCCCAGACATTTTCAATTCAAGA -GCACGTCTTGTAGGTGAAAAACCAGTAGATTGTTGGTATCTCGATGATAT -TTTAAATATCCCCAAAGAAAATTTCAAGGATGGATTTGGAGAAGTGACTG -TCTGGTATGGAAAAAGCTTTCAAATAAGAAATTCCACAGAAAATCGAAGA -ATGAATTTTAATATATTCTATACCAAAAGCTATCTGAAAAAGTTCTTCAA -TGAGAGACATAGTAGATGGGTGAAAACTGGATTTTTATTGCATTTCATGG -ATCTTATTAATTGATTTTATGTGTATTTCTGTTACTACTAATAAAGCAAA -TACTCTGTCCGTCCAAACCATGTAGCCTGTAGACCTCGGACAAGAGTTGG -GCGCTGCCTAAAAAATGAAAAAAGTCGTCAACTACCTCGTCGTCTCGAGG -CGTCGCCGAAGTCTTACCTGCTGAGCCATGATGGTCGCGCGGAAAGATGC -ACACTAGTAATAACATATCGTACTCATATTCTGATAGTTTTTTTTGGGGA -AGTGTCAGACGTATCTGATTGATACGGTATTCTCACATACCTTATTTCAT -TCGTTTTCAAGTGTGCTCACTAAGGATTCTAATAGTAAGTTCAGAATTTA -CAGAATTACTGTAATTCAAGTTTGTTTCATGTCTTTCAATAACAGACAAT -TTTATAAAATTTTGCATTTCAAAGGAACAGTTCAGTCTTAGAAAAATTCA -AAATTTGATCCATGGGATTGACTGACTATTGTTTGTATACCAGCCGTTCG -CACAATGCGAGTGCTCCGACTGGCGTACTCGAAATTAAGATGAAATTCTA -AAATTTCTAAGCCTTGGAACGTTTTTCTCAGTCTTCCAGAAGTTTTTAAA -GCAACATGAATATTATATAACTAAGTTTTCAAAAGTTACAGATGTTTTCG -GCCGAAATTAGACTATTTTGCAATATTTTGCGACTTTTTGCTGAAAAATG -GTACCCATCAGAGATGTGCGGCATGTGCCGAACGGCATGTGCCGATGTGC -CGAAAATTATTCCACTCGGCACATCGGCATGTGCCGACCTTTTTTGTCGG -CACATTTCGGCACATTTCGGCATATTCGGCACTGTCTGGAATATGTACCA -AAATTTATTTTTTAATTTTAAAAATGCAAAGAAACTTCAAAAAATTGATT -AAAATTTTCGGAATTTATCATTTCAACTTATAGTTTACTAACTTCAATAT -TAAGACAAATGCACTGCATTTTTTATGGGGTTATCCAACTGAATGTTCCC -GCTTTTTCCTCCTGTTTCCCCCCTCTAGTCGCGATCCAACTGGGAGGAAA -AATGCATTTTCCCCTCGTTTTCGCATTTTTTAGCTGCGAAATTTCAGAAC -TGAGCTTAGGGTGGGCATTTATAGACTTTTTTTAATTTTTTTTGACCAGA -AAAAGTTAAATTTTTATAGTTATTTTACCAATTGGACCTTAAATTTGAGC -TATGATATCTTTGTGGTAAGCCAGAGTCATGGTGAGTGATCAACTACAGA -GTTGTAGCAAATTTTCTGTTTAAAATTTTGTTAGTTGATCAATTCTTGGT -ATCATAGATTTTCACAGACTAACATAGCTGTGAAACTGGACAATTTCTTA -ATGTAAATTGCGTACACGAGATTTCTCTATTTTCCGCGTGGAGTACTAAT -ACCAAAAATTGATCAACTAACAAAATTTTAAACAGAAACCTTGCTACAAC -TCTGTAGTTGATCACTTACCATGACTGTGGCTCACCACAAAGATATCATA -GCTCAAAGTTAAGGTCCAATTCATTTTAAAAAAAACTATAAAAATTTAAC -TATTTCTGGTCAAAGAAAGCTGGAACCGCATTAAAAATTATGTTATTTTA -GTATTTCAACAAATGTCTAACTGTGAAAATTAAAAGTAAGTTTGAAAAAA -TTTCTTTAAAACATTTTTTGATAATTTTTTCATGTCCTGTGCAGATTTCA -AATTTTGAAACAATACTTTTAATTCTCATATATCTCCGTTGAAAAATTTT -TTATGACAAAGTGATCAATTACAAAGTTGTACTTTGGATTAAGAAAAAAA -AACTTTGTAGTTGATCACTTTGTCATATAAATTTTTTCCACGGAGATATA -CGCATCCGAAGTGAATGAGTTTTCACTATCAATTCTACTAAACCCTATGT -TTTTGTCTGAAATCGTGTTCAGAACATCCAAACTGAAAAAAACAACAAAC -ATTGCAAGTAATTTTTTGTTATTTATTTAAATTGATGAACTTTTTGTTTT -TTTTAAGAAGCTATATAGTATCTTTGCAAATGTGCCGAATGTGCCGATTT -TTTTAGGTTCGGCATGTACCGAGTGCCGAGAAAAAATTAATTCGGCACAT -CGGCATGTGCCGATGTGCCGAAATTTCAACAAGTGCCGCACATCTCTGGT -ACCCATCGTCTCGTCACGACAAATTTTTGTTAAATTCGAGTATGTGTGCG -CCTTTAAAGAGTACTGTAATTTGAAACTTTCGTTCCTATGGAATTTTCTT -TGACTTTTCACTTTTTCCTCTGGTTTTTATCCAATATTCATAGAAAAAAA -GAGAAAATTTTTCTAAAAATCGAAAGTTTGAAGTTACAGTACTCCTTAAA -GGCGCATAACGTTTCGGAATAAACAAAAATTTGTCGTGGCGAGACCTGAG -TATTATTACAGGAACGCAAAATTCGGAGAATGCGTTTTACACAACATATT -TGACGCGCAAAATATCTCGTAGCGAAAACTACAGTCATTTTTTAAATGAC -TACTGTAGCACTGGTGTCGATTTACGGGCTAGATTTTTATTAATTTCTGA -AAATTGAGCACCCGTAAATCGACACTACTGTAGTTATTTGAACAGGATTA -CTGTAGTTTTTCGCTACGAGATAATTTGCGCGTCAGATATTTTGTGCAAT -ACGCATTATAAGGGACAAGTTCTCCAGTGAATTCTTCCAATTACATTGAA -ATCCTTCTATTTTGAATACAAATTACTCAAAAGACAAAGTGTCGATTTAG -CCTAAACATTGCGCATGCGTAATTTCTGAATCTTGTTCGTTCTTTACATC -TGCACACTTGGGTAAGAAGTTGGGCAGCCTATGTTTTAGAGGGAAGTCAA -CAATGTTATTTTCGCACTTGTGGCAACAGAGTTGAAACTACGGTACTGTA -TATGGGTACACCTTTTAAAATTTTAAACAAAAATTTGTCTTGTTGAGACC -GGAGCACATAGATATTCTCAGTGTGTATTTGTCTAAAAACCTGCCAATAT -TTGAAAATCTTTCAAAACTTCAATATTTTGCTCCAAAAATTAAATTTTTC -AAATAATCTACAAAAAGAATCCAATTTGACTGAAAACCTGCTAATATTTA -AAAATCTTTCAAATGTATAATTTTTTTGCTCCAAAAACTGATTTTTTTCA -AATAATCACAATTTCAATTTTAATTTCGATAAAGATACACAAAAAAAAAG -AATAGCATTTAAGGATTTCCTTGTTAAGCTTCAACAGCGTAAGGGAAGGC -CTCGTTGGCAATCATCATGCGTGTAAGTTCGGCGGCGCTGAAAATAAATT -TTTGATGTTTAGCTTGCATGGTATGTATTACTGATCCCTCAACTCCGCCA -TGGTCCGACCCTGACGAAGTGGTATCTCTCCAGCATGGTGAACTCTGACG -TGATTCCAGTGCACAAGCCTTGTTGCAGTATACGACAGCCCACAGATACC -GCAGTAATACGGATAGGGAAGGGTATGCAGATGGTAGACGTGGCGAGCCC -TGAATGTTGAAACTGACTTTTTGAAATGACTGGAAAAATAATTACAAGTC -AACTTGCTGTCCGAAATTCATCATTACAAATGGAGCATTGGAATTGTTGA -GCATCAGGAGATTCCGAATTCCGATGGGTATCTTGAGGCTCTTCCATTTC -CTGAAAATTGTAATTTTAGACTTTTTAGATAATATTCACAAAATCTGTTT -AGGAAAAATTAACTACTAAAGTTACAGTAAGAATTTTGCTCTGAATTTGC -TCATAAAGGAAATTTTTTTAAGCTTGCACCCTGATTTGTTTAAATTCTTC -AATCTTTGGATTCCTCGCAAAAAATTCAATTCAGTCTCCTGGGCGTCGAA -TTGCGATGGAGCGCGCTTGCCGTGCGTTGGCGCAGCCACGGTGGTTCAGT -TGTAAGATGGGTGCAAACGCGCTCCACAGAGTTTTCGATCCCCAGGAGAC -TGTGTCCAAGTAAACTGAGTGGTAGCTTTTTTGTTCAAAAAATGTGCCCC -GCCCATTGGAAAAGCATGACCTTGTAATCGAAAATCCTTCAAATACGATT -TCTATTCAAATTTACGAAACTGAAAAAAAATTAATTTTACGAACACTTTG -ACGTCCATTCGGTGAGATTCTTTCAGGTGTGAATCGTTTTCTCTTGTTAC -GAGCATCATTTGGCTCCGGCACCGCCATCTGACCGGCCTAAAATAAGAAT -GTTTAAAAAAATATGCATTTAGGAAGTTTAATATTCAAAACAGAAGAGAC -ACATTCCATATGAAAACAACTTACATTCTGAACGTTTCCAACGTCCGCCG -ATTCCTTTACACCGTATCGATCGATTAAAAAATCGATCAGCTGACCGTTG -AGCAGTACATCCTGGAGCGAGATGGTGATCGGAGCCACCGGTGGTGCAGT -CTCATCGTCTGAAGATCCAGATCCGAAGGCATAGCTGTCCGAGTGGATGG -TGTTGGAGTGGTCGAATTTCTGAAAATTGACCAATTTTTGATTTTTTAGA -CTTGAAAAGGCCTAAAAAGGACAAAACGAGCCCCAAAAATTTGAACAAAA -GGGTTGAAATTTCATATTTTGTTAATTTTTCTGTGTCACAATTTTGATTT -TCAATCTATCGATATTTTGAATAAATTTCAATTTTTTCGGGAAAATATTG -CAAAATTTAGTCATTTTTCCTCAAAATAAACCAAAATTTGATTTTAAAAG -TTTGGAGAATGAATTGTTGAACTTGGAAACACCAAAATTAGCTCTAAAAT -TTCGAAAAAATGGGTAATTTCAACTTTCCGTATCTTTTCAGTTTGTCGGA -ATTTTTAAAAAATTTTATTACAGAAAACCACCAATAATTAAAATCTTGAC -TTTTTTTTTAACCCTAAAAGATTTTTTTCGAGAAAATATCTTAAAATTTA -GTCATTTTTCTTCTTTTTAGGAGCTATTTTTATGTTTTTTACTTTTTGTT -CCGTCAAAAACAATTTTAATTGTAAAGGTTTTTTTACGATTTTTCCAGAA -AAACCGGTAAATGACACTATTACGGGAACAAAAAATTTGGAAAATGCGTA -CTGCACAACATATCTGACGCACAAAATATCTTGTAGCGAAAACTACAGTA -ATCCTTTTCAAATGGCTACTGTAGTGTCGAATTACGGGGCTCGATGTTCA -GAAATTAATTTTTTAATCGAGCCCCGTAAATCGACACTACAGTAGCCATT -TGAAAAGTATTACTGTAGTTTTCGCTACGAGACCCTATTTTGCGCGTCGA -ATATGTTGTACAGTACGCATTTTCAGAATTTTGTGTTCCTGTAATAATAC -TAAGATCTCGCCACGACAAAGCGAAAAATTTTTATCGATTTTTCAGCAAT -TTTTCTCTTGTTTTCATAAAAATTGGGCAAAAACCGGAGGAAAAAAGTGA -CGAATTAATAAAAATTCCATGGCAACGAAAGTTTGAAGCTACAGTACTCT -TTAAAGAAGTGCACCTTTTTGGATTAACAAAATTTTGTCGTGACGAGACC -CTGGATACCATTTTTCCGGCGGAAAAGTCGCAAAATTAGCGATTTTGGGA -ATTTTTCGCGGCGAGACAACTGCACAACTCGACATGCGAGTTTATCCTTG -CAGATGGCCAAAAGCCCTCCGTCGATCATTTGACGAAGCAATTCCCTGGT -GTTGCGAGCTCGACGAGCTTCTGAACGATGAAATTGCCATTTCGACTGTG -GCAGAGCCCCACGAAGAGCGTCGTGGATTTGGTGAGCTTCTCGAACACGG -CTTTACGAATCTGATCTTCGGAATTTAGTGGATAGTTGGCCTCCAAGAAC -CTTACCCCCGATGGATAGATTGCGAAATCGATGAGCTGCCCGTTGAGCAG -CACATCTTCGAGCGAAATGAAAATCGGAGCCACTGGTGGTGGGGTCTCAT -CGTCGGATGATCCCGATCCACTGTTGAGGATAAAGCTGTCCGAGTCGGAG -GAGGTGGTGTTGCTTCCGTGGCGGTAGGGGAGAAGCTTGACCGGCGGCTT -TGGATTCTGGAAATTCGAATTTTAAACTTTTATTATATTTTTATTTAAAT -TAGAAATTTTTATGCAATATTTTACCTTGTTCTTGTGAGTTTTTTTCGAC -AAAAGCGAGAAATCCGGGTCGAAATCGAACGACGCGCCGAGCATGTTGTA -CGAATCCGTGCTTTTACGATTCGGAGTCATTTAGACAGAAAAATGAATGA -ATATAGGTTAGTAGACGCTGAAAAATTGGGAATTTTGGATTTTTTAACGG -AAAAACGAGTGAAAATGAGAGAAAAACATGTAAATTTCAACGAAAATCGC -GAAATTACCGCGCATCGAAATTCAAAATTGAATTTTTCGCGGTGGCCCGG -GTTACGGTGATTTTTAAAGGCGCATGGTTGTTTTGAGTGAGGTATTGACG -CGAAATTTAAAATTATTGAATATTTTTTTCTTATTTTTACATTTTTGAAG -AAAAAAATGATTAAAATTCGATTTTTTAGGGAAAATTAAACATTTTCACA -AAAATTGCAGGAAATCACTCGCCAAAATTCAAAAATGAAGAGTTTCGTGG -TGCGCCGGGTTACGGTGGATTTTAAAGGCGCATGGCTGTTTTGTATTAGG -TCTCACCACGAAACTTGGAGTTTTTGATAGTTTACTTCCTATTAGGGATT -TATTTTTTTAATTTTCGCTCGATTTTCACACATTTTCACTCATATTCACT -CAATTTTTTGCAGAAAAAATGTCAATGGACATTGTTATGAAGTCAGATGA -GCAGCCGTTCATCTCTGCGCCTGTATGCTTTAAGTAAGCTCCAATTTTTG -TTATTCTGGCCTAAAATTATTTTTTTGATTTCCAGAACGTTCGCATTTTT -CGCCAAAGCATCCGCAGAGGAATGCAAACTTCTAGCTTCGGGCTCCAACG -CTCGAGAAAGTTTCCAGCAGGCCACGGGGCTATCGGAGAAGATCACGGAA -GACATTTACCGCCAAATTGAGTAGGTTTTTCGATTTTTTTACCCTTAAAA -ACTACTATTTTTCTATTTTCCAGCGTCTCCCACATTTCATCGATGGTCTT -CAACAGAGAAATGGACGGTGGCATCGAGAGAAATCGGCTCGGCTCGCAAG -CGATTCTGCTCGACGAGAACTCCAGGCGCCGCAATCCACAGTTCAAATCG -ATCGCGCTCCGCTCTCTCCGCTACGATCACATCGATCATAGAGCGTTGGC -AAGGAAATCGCCTCATCTGATGCCTCCGACTTATATCAAAGAGGAAATTA -TGGATGATGAGCTCGACGAGGTGAAGGAAGAAGTGGTTTCCGTTGGAGAA -GCCGCCTTGCCCACGCCAAAAGTTGAACTGAACATGGACCATCCGGAAAA -GGACCTGATCATCAGCATTTCCGTGTATCTCGGCTACACCCGTACCCTTC -AATACCACGAGATTCGTCTCGGACGTTTGATGAAGGTCACGGATCGGCTC -GAGCTCACCGGAGATCACACGCTTCGCGATCTGAAAAACGCGTTCTCGTG -CCCCATCGATTTCTCGTTTTCCGACGATTTTAGCGAGAAAAAGCCGTCGT -TCAAGGATATGGCGAAAAATAAGTGGCCGTCGTCGATGTTCTTCATTCAT -GACACGTTTTATATCGACTCGAACACTGGCGACAAGTTTGTGGATCCGTC -GATGTGAGCAAGGGTGCCGGCTAAAAGTTTTTCAGTGTTTTTTGAGCGAA -AAGGAACAATTTTTTTCTGAAAATTATTGATTTTTCGTTAGTCTTCAGAA -AAAATGATTTTTTACGCCGCAAAATCGGGAAAAAACAAAAGAAAACTGAA -AATTAAGACATTTTCGTTGATAAAAACGAATTTTTTGGTTTTTTTTTTCA -GAAATATATTATTTTTTGCTTTATTTCAACAAAAAAAACCCAAATTTTCA -GCACAATCCGAAGTTGGGCCAAAAAGTTCGACTACATCGGTCCGATGCAC -GTGAAACAGATGTCGGAGACGAGGATCGGGGATCTCATTTGTCGGCTCGG -TCAGCCATACGTCTACATTCATCAAGGCGTCTGCGAGCACCTCATCGTCT -TCAATGACTTGTGCCTGAGGTACGGAAATTCTGGAAAAATCGAAAATTTT -GATTTAAAAAAACTCAAATATTTATGTGTTCTTTTTTTTACTAAAAATTT -TTTTCAAATTGTTTATGAAAAAAACACTAAAAAATAAGTTTTTATCAATT -ATTTAAACAAAATTTATATTTTCCGATTATCAAAATTGTTTTTTTTTTTC -AAATAAAATACCCCGAAAAATATATATTTTTTAATTTTTTTTTTCTATTT -TTTGCAGAGATGAATCCCACACAAACGTCGAATTTCCACGCCGCCTCGTC -GAACGGAATTTCAGAAGAATTGCATGTGACACGTGCAAGGAGGCGTCGGC -GCAGTGAGTAGTAGCATTTAGAAATTCGGAATTTTTTGTGAAACCCCCGA -AAAATATAGTTTTTATCGGAGTTCGAATTTTCGAAAAAAAAATCCAAAGA -GAATCGATTAAGGCAAAAATCATCAATTGAATCCAATTTTTTCAGCTGGA -TGATCGTCGACCACGACAATCTGCTTCCCAACTCGCCAGGCTATCTGTGC -TCTTCGTGCTACAAGGAGTTCTGTTTCGACGTGAACGGCAAAAAAGTGTG -CCAGTTTAAGGCCGTACCGTATTGCGATCGAAAGGACATTGGCGACGGAC -GCCAGTTCTTCACCGAGCTCGATCTTTAGAGAACGAGATTTAAAAGTCTG -TATCATTTTTTGTTGTTTTTTTTTAAATGTTTTTCGATTTGATTGTTTAA -TTACCGATTTTTGGCCTGTAACTATATTTGTTGAAATTTCAAATTTCTTT -TTTTTTAAATAAAATTTTTGTTTGCAAAAAAATTTATCCAATAAATAAAC -GGAATATATCGATGATATGGCAAGTAGGGGGAAACGGACGGGAAAATGAT -TATTTACAGAAAGGGCGCGCACCAGAGGTTTCTCGGGGGAGCCCCGAGGC -GGGTGGCGGAGCTTGGCTCAAAATCTGTCGGAAAAATGGGTTAAATGAGA -GAAGAGGTAACCTAGAAAATGAGATGAGAAATTCGGAAGAATTTTGAACA -ATTTGAAAAATCGATAATGTTGAATTTTAAAATTAAATTTTATTGATTTT -TTGAAAATCGATTATATTGTTGATTATTGATTAAAAATCACTAGAATCAA -TAAATCTGATTTGGAAAAATCAAAAAAATCGATTTTTTATAATCATAAAA -ATCAATTTTTAAAATCCAAAAAAATCGATATTTAAGAAATTGAAAAAAAA -TCGATAAATCAATACATAGGTGAGCTCGTCTCGTCGATTTGTGTTTTTGT -GATTGGTCCCGGCTGCTTTTGAGATGGTCTAGGCGTTGTTCCGTATGACA -TTCTGGAAATTTTTTTGTGAGGCAATGACACGCCCACAAAATGGACGGTG -GCAGAAATTTAATAATTTTAAATAATTTTCTGGATAAAAAAATCGATTTT -TCCACTTTTTCGAGTGAATCGAAAATTTAAAAAAAACATTCAAAATTGTT -CAGGGTCTCGCCACGAAAAACTCACAAATGCACGTTATGCGGAGCGTCGT -CGGATTCCGGTGTGTTGCTACGGATCGTGTCGTCCATGCTCAGCTTCATC -GTCGATTGACGTCGCCGTTTTGTGGTGATCTGAGCGAGATTTATTGATTT -TTAAAGACGCATGGCCTAGAAAACACAACACTTCGGCCACGGACTTTGGC -GGCCGAGTTTTCTAGGCCATGCTGCGGCATTTAAAGGCACATACCATGAT -AATGAAGATCGCCAATCCGAAAATGATGACCAATGCGAAAGTGATGATTA -CAATCATCAGCGATGATAAGGAATATGATGAAGTTTGCGTGGAAATAGAA -TCGATGTACGCTTGTGACGTCATTCCTGGAAATTATTGATTTTTTTGGAA -AAAATCAATAATTACTTACCGTCAACAGTAACACTCAACGAATCAATCTT -GTAATCCGAAATCATAGAGTTATTGCGTGAAAATGCGGCTTCGAACCTGA -AATGTTAAAAAAATCAATTATCGATTTTTTTGAAAGTTTTTGAAAGTTTT -TGAAAAATTGATACAATTAACTTGATATTCCCCCGGAAAACCTATAAATC -AATGAAAAAGTTAATATCTAAATTTTTTCCAAAAATTGAACTAAAGTCGA -TTATCGATTATCGATTTTACTAATCATTTTTCAAAAATCTATCATATAGA -CGATTCCTACGGAAACCCCGAACAAATCAAAAATCGATAAAATTGACTAT -CGATATTTTTTTCTAAATTTTACTTTTTTCGATAAAAGTCGATAGCGTTG -ATAATCGATTTTTTAGAGTTTTCCTCAAAAAATGGTAATAAAATATTTCT -AATCGGTAAGAACTCACAAATTAACAGCCATTTGAGCATCACCAAGTGAT -TTTTTGGTGAGCACGTCGGCTCCGACAACCACTGATCCTTTGGTCAGTGA -CTTGATTTCAACATTCACAAAATTGTCGTCTCCCGAAATGGAATTGATGA -ATTCTCCGATCTGGAAAAAAATCAATAATTGTTTAAAATTGATTTTTTTC -AGATCATTTTTAAAATAACTAGTCTAAATCTATATTGAAGTCTAACTCAA -AATTTTCCACAAAGGCTTACTATTAGGCTTAGGCTTAGGCTTAGGCTTAA -GCTCAGGCTTAGGCTTAGGCCACGCGAGATGAAAACAAAAGAGAAAATTT -AGTGAAAACAAGAAAAATTTCTTTTAAAAAAAAGAAAAAAAAAAAAAAAA -AAGAGCAACAGCCATGCAATTCTTAAATATAACAGGTTCAACTACTATCT -TCAAAAATCAGTTTAATATCGATTTTTCCCAAATGTCAATAATCCATTAT -CCATTTTTGACTCACCGCTGGCACCAAATCTTTCGCTAATCTCTTCGCAG -GGCCACTCTGAATATCGTTGAATTCCTCTACAAATTCCAGTGAAATAATA -CGAAAAACTATTGGTGTTCGAATGGATTTAGCCGGAAGGAATACTTTCGA -TGAGTTTTGAAGTGCCACCGGCACAGTTGAAATATCTTCAAAAGTCGTGG -ATTCCTCTGATGAGGTGGAGGTGGTCTCTTCGGAGGAGGTAGTGACGTCA -GTGGAGAGGGTTGATGGCTCGGTTTCGGCCATGGTTGTGTCCATTGTGGT -TTCCATAGTTTTTGTAGTTTCCATTGTTGAAGAGGATTTCATTCTGAAAA -TTTTGAAGTTTTGAATTTTTTCCTGCAATATATGAACACTTCCGAACCAG -CAAAACTCACTAGGTAGTGTTTTAACTATACGGTGCGATCGAGTAAAAGT -GTCATGCGATAGCTGGCATCTTAGGCTTTCAGAATCTGTAATTTGTTCCG -GCGGAAGACCTCTGTGAGTCTGGAAATTTTCATCTGAAAATTTAGTACTG -AAATCTGCATTTCCTATGGTTAACAGTGGATTTTTGTCTCTGGCGCCAAC -AGAAGTCTCACCACAATGGTGGAAGGGCGAAAACATCGCTTCGAAGCTGT -TAACCATAGGAAATGCACTGATTTCAGTACTAAATTTTCAGATGAAAATT -TCCAGACTCACAGAGGTCTTCCGCCGGAACAAATTACAGATTCTGAAAGC -CTAAGATGCCAGCTATCGCATGACACGTTTACTTTTACTCGATCGCACCG -TATAGTTAAAACACTCCCTAGTCAGATATGTGCTCTACACTTTTAAATTT -TGCAATCAAAATACTTGAATATAAAATTAAGAGATTTTTGAATTTACTAG -GCCACCTCGAAAATTTCTAGGCCACGGCAGGTTGGTAGGGTGAAGCTGCA -GACCCCATAAAGCTGTGAGAACGGTTTTTTTGCAAATTTTTTAAAACAAA -CATTTGTGAAGAATCTGAATATTATCAGAACAAAAAATAATTTCGACAAA -AAATAATAAATTTTTTTATCAATATTCAAAATTTTTAACTTCCGAAAAAA -CTCAAAAAAAAACTCACCCAGTCGTAGTGCTCTCGACCATCTGCTTCGTA -GTTTTCGGGATATTCGACAAAATCTTTGGCTCTTCCTCAGACATTTTCAG -AATTGGGAATGCGGGGCTCTGATCTGTGCTCAATGAGCTATCAATAACAC -TTCCATCCTGCTCAAAAAGTCCTTCCAGTGCACTTTGATCAAATGGTGTT -TCTCCGTCATCTCCAGCTTCTGATGGGTCACTTACTGCGACGGTGGATTG -GGTTGTGGTCACTGTAAAATTGGAAATTTGGAAGAGAAAAACCTCGGCCA -TTGGTGACGTCATACTTTTCGCCACTTCTTCGACCAGCTATAATGCCACG -CTTTTAGCAAGTTTTATTTTTGGTAAACCAAAGAGCAACCAATTTTAAAA -CTGTGTCTCCAGGTTTACCGCCAACTTAAGGGCGTGTCCGTACAGGGTTT -GCCCGTTTTATGGGCGTCGCTTAATAAATCATTTTTCAAGTTTTCAGTTT -CGTGGAAAATTAGCATCCGGGAAATTGAGTCATAAGTATGACGTCAGCAG -CCGCGCGGCTTCCCATGACGTCACTCCATGCGCTCCCCCGACGTCCCTCT -AAGACGTCACCACCTCTCACCTGGTTTAGTGGGTCGTGTCATCTCCTTCT -CTTTCAAAACTCGTCTATCAGCGACCTCGTCAACCTCAATCGGAAGGGAG -CTGAACGTAATCACCTCCAAGGGAGTGGTTGGCATCATTTCAGTCGTATT -TTCAGCGGCGAGAGTTGTTTTCTCAGTGGATTCATCCTGATCCTCCATAC -TATCATCTTCGATTGTTGCCTGGGAGAAGTTGAACATACCGCCGTCAAGC -GGAGTTATTGGGGAGAAGACGGACGTTTTCTGGATTGGGTTCACTTCTAG -GGAGGTGTCGTTCGGCGAGAGTTCGATCATTTCTGTACTTGTCTCGAAGG -TATCTGATCTGAAAGTTATGACATTTTTTTGGTGGTGGCCTGGGAGAAAA -CTAGGCCTCCTGGCCTAGAAATCTCAAACCTCGGCCTCCAGCTCTCACTA -GCTGACCTAGGTTTACTAAACATCGGCAAGACCTCTTTTCGACTACTCCC -TTACAAATTTTTAACAGTTTTTCATCACACAATTTTCCGATTCTTACCCC -TCATTCATCATTTCTTCTTTCGGAACAGCCATCATCGGCATATCATCATT -ATCAGGCATTACGGGTGTCGTTGTGTCTTTTGCCAGCGGTTTGTCGAACA -CATCTTCAGAATTTTCGTCTTGCGCGAAGGAAACTGAAAAAGTTAAATTA -CATTTTTTCTAGGCCACCAGGTTTTGCATTTTGGCCTAGAAAATGAAATG -AGAAGCTAGACCATGTGGGTTTATTGCGAGGAAAAGCTATCCCACGAAAA -CTTTTATAAGCGTCTAGAAAAGTAGAAACCTCGGCCACCAAGTTTTGCAC -TGTGACCTAAACAATTTTGGTAAAATAGGCCAGCAAAATTTCCATGATGG -CCTCAGGAAAACTAGGCCATTAAGGTTTCTTCCGTTACCTAGAAATTTTG -TAAACCTAGGTCACCAGGGTTTCTAGGCCACACAAGAAAAGCTAAAAACC -AACATTTCAGATCGGTCTGGAAAAGTGCAAAATTAAGCCACCAGGATTTG -CATGGTGGTAAAAAATTGGTAAACGTGAACTAGAAGTTTATCGGTCATCA -ACTTACGTGTCGTTGAAAATGCAATGAATAGAATAAAACCAAATGGTATG -CGCATCGCTGAAAAATTGCAAAAATTAATTTATGTTTTGGAAAATCAGAA -ATCGGAGTGTTCATTTTTTATGGGACAAGATAAAAAGAGATGGAGAAAAT -TTATATGATATATCAGGTCAAAATGACCTTCGGAAATTGGGAATGAAAAA -TCAAAATTAATTCGCGTGGAACTGGTTAAGATGATCGAAGATTGAAAAAT -TTGACAGAAATTGCAACAATACTAATGCAAAAAGTTGGTAAAATATTTTT -TTCAGTTTTCAGAAAAATCGATAGCAAAAGTCTTTTTTTTTAAATAAAAA -TTTCTGAAATATTTTCGCTGCGAGACCTAAGGTGACAAATTGGATTAAAA -ATTTTATGTGCCCATTAAGAGTTTTTCTGGAAACTGAAGAGAAAGTCGAA -AAATTAATATACCCTACTTAAATTTAAAGGCGCACGGATGAATTTCCAGA -AAACTAAAAAAAAACATCACAAAATTTGATACTCCAAGTTTAAAGATGCA -TGGGTAATCTTTGAATGAGAATTTTGTTTTAAATTTTTGAACTGCCATTT -CAGATATTATGAGAACACAAAATTCTAATAATGCGTATTGCGCAACATAT -TTTGCGCTCAAAATATCTCGTAGCGAAAACTACAGTAATTCTTTAAATAA -CTACTGTAACGCTTGTGTCGATTTACGCGCATCAAAATGAATTAAGATCA -TACATTTACCGACAAAATATTAAAATTAGGCAAAAAATAATACGAATAAT -GCATTTCGTAAATCGAGCACGTAAATCGACACAAGCGCTACAGTAGTCAT -CAAGAAAAATTACTGTACTTCTCGTTACGAGATATTTTGCGCATAAAATA -TGCTGCGCATTACGCATTCTCAGAATTTTGTGCGCCCGTAATAACCATTT -GTTAAATGCTTAAAAAATTCAGATTTTATTGAAAAAAATTTTTGAGCAAA -ATTTTTCGAAAAATAAATTTCGGCAATAAAATATTATTTTTCCATCGAAA -AAGTATCGTATGGTGTGCTTGACATAATCTTGGTAAAAAGTGGCATATTT -TGAAAACAAAAGGGGTTACCCCCTTCCTTCAGCCCGCCCGCCCGGGAAGC -CTGGGCATGCGCGCAAGTGATTGTTTTGTCTGTTGTTGCTTATGTATATG -CTTATTATTTACACATTTGTGTGTGTGTGAGTGACTACACTGCACACCTC -TTGAAACGGATTATCCGGCCGTGGTCGAGGAGGGCCGCCGAATTATGCAC -ATTCCTATGCTATGTATTGTGAATACTTCATTTCAATAACTTTATATATA -TACAGTTAGCACATACGATTTTTGAAAATTGGGGTTGTGGAAGAGTTTTC -ACACAAGTGGCCTAAAGTTTTTGAGTTTACTTTAATACTTCTAAATCACG -TGGTGTCAGGCGGTCTCAATACAATTTGATCTACAAAAAATGCCGGCATT -TTTTCCCAGAAAAATTGTGACGTCCGCACGCTCTCAACCATAAAAAATCA -GATGAGATCTGCGTCTCAACTCCCGCATTTTTTGAAGATCAAAGCGAAAT -GGGACTTTCTGACTCCACGTGCTAAATGAAATGTACGTTAAAAAATTATC -TCTGGAAATTTGGAATTGCTCGGTGGAGCGCGTTTGCCGCTTAGTAGCTG -AACCGTGATAGCTGCGCCGTGAAGAGAAGGGAAAAGTAAGGAAGTTATCA -AAACCAACGACGCACTAATGAAAAGGAACACAAGAAAAAGTGAAAGTGTT -TTTTTTTGGGTTTTTGTGATTTAGTTCGTGTGTGATAAAAGTTCAAATGG -TTCGGCAGGACAATAGGAAGGAAACTGGAATTTTATATTTCATCTCTTGT -TAAATTTACTTTTGTAGGTGTATGATTAGGTAGTGTTAATAGAAATCGGG -ACTCGTGGCCTATCATTTTTTTGTGGCCGAGTAAAAAAATCTTCCACATT -CGTCAACCATACGTGTGAATTTAAAGGTAATCTATAGGATATGATATTGG -TAAACTTTCACAGAAATCCTAAAGCTAGGTTTTGAACTATGGAGCTTTGA -AGTTTCTAGGCCCCTTTGGGAAACATAGGCCACCAACCTGAGAAAGGTAA -GGGGAGGGCAGGGTACATAAAATACAACTTTTTCTCTGAAGTTTTTTTTA -ATTAAGCGAAAAAGCCGACATAAATGTTTCAGTCATGGCCTAACTTGACA -TTGGTGGCCGATTTTTTCGAAAAACTCTTCCACGATTTAGAACATGAACT -TGGCAAAACTTCAAACAAATCCTAGAGATAGTTTTTGAATTATGAAGCTT -TGAAACTTCTAGACACGTTGAAAAAGTTAGACCTCTTCCACTGTCATAAA -CTTATAAATTCACAATTCAAAAATTATAGATTTCTTTCATATGTAGAATT -AGCCCAATTTTTAAATCCATTGCACGGCTAGATTTGAAATCATAGCAATT -TGAAAATTCTAGGCCACGCAAAAGAAAATTCTAGTTCATGGGAGTTGAAA -GAGAGTCTCGGAAGCTAATTTTAAAAGCACAAGATAGAGGAAAACCAAAA -ATTTATAAATTCATAAAAATCCAGTTTTTTAGCAGCTATGTGAAAAGGAT -TAGAATTTCAACACGGCCACCACCGCCGGAGATACAATCATTTTGGGAAT -ATATGTCGTTTTCGCGTATTTCTCACCAAAAAAAGATTCAAATCTTTTAA -TACGAAAAAAAGTTGGAAAAGAATTAGAAAAATGCTGAGAAATTTTTTTT -ATGAAAGCTTAGGCTTACAATTAGGCTTAGGCTTAGGCTTAGTTATTTTT -TCAGTGTTTTCCAAGTGCAGAAAGGAAGAAACCGACGCTTCCTGACTTTC -TATCACACACTGAGGGGAATTTCACCCAACCCCCCCCCCCCCCTCACTTC -CCGCTACTACTTTTACTGTACACTTTCACCGAAAAGTTATTGTGTCATCA -CGTCATTCGCCAAAAACGAATCGAACAAGGAGAAAAAATTGATGAGAAAA -CGCAAGTGTTTCTTCCTACACTACATAGTGTTCAACACCCCTTCATGATA -TGGCCGCGTGAAAACTCTTCCACGACCATAAAAGAAATTTACGGAACAAT -CTAGCAAATTTTCATAAAAATCGGTTGGAAACTATAAAAGTTACAGGGGT -TTGAATTTTCTAGGTCATGCGGAAAAAAACTCGGCCACGCAGGTTTTTAG -GGTTAGGGAGGCGGTGTCTTCAAAAAAAAAGAAACCTCGCACCTAATGAT -CCATGAATCTTCAAACAGAAAATGAGGTATAATCTTAGGTGGCCGAACTT -TTGTTTCTGAAGAAAACTCGGCCAAGACCACGAAAAACGTATTTTTTTGT -ATCGTTAATTGAAAAACTGAAAACAAGAAGTTTCTAGGCCATGTTGATAA -ACCTTCAGTAAAAATTTTTCCTAAGCCATTAAATTACTACTGAACTGAAA -ACCTAGGCCACGGCTTCAAAACATAGGCCACCAAAAACTGAAAGGGGGTC -GTAGGACCGGAACCTGCTATTATGAAGCAAAGTTTTGTGCAATAAAAGTT -TCAGAATTTCCAAGTTTTTAAACTATTTTTTGTCTGGAAATTATAAACCT -GAAATTTCGGGTGCGAGACAAGATGGTCAAAGAAAAATAACGAGAATTCG -GAGGGCAAAAAAATGAGAAGAATTTCCAGGAAAACAAGTGAAAGTGAGTA -TGACTTTGACCTATACGCGTATTGTCTTTTTTGTTTTCTTCTTCTCGAGA -AAAGAGAAACTGTCACAGCAGTAGTAGTTCTTCGATCACCTAATTACCTT -ATTGCCCCCTTCCAGGAAGTCACAGTTTTTTTTAGGAAATGTGTGAAAAA -TACACATTCCGCTAGGAAAAATTGAAATTGCGGTTATTGAGTTCCCTTGC -CACGACAACGTGGCCTAGGATACCGCCATGCTCTAGAAATCCCGCTTGTA -GCCTAGAATTTCCCATTGTGGCCTGGAGAAGTTTAGCGGGGCCTAAGACT -TTTAATTGTGATCTGAGAGTTTTTTCACATGGCCTAAAATGCTATACGTG -GTCTAAAATTCCTCATTGTTGAAATTTTTAGCGCGGCTTAGGATTTTCTA -TTATGGCACTGGATTCTCGCCGTGACCTAGAATTTCGTAATGTGGCCTGA -AAAGTTTAAGCGTGAAAAGTTTAAGTATTTTCAATCATAGCCTGGAGATT -TTTTACAAGAATTCCTCATTGTGGCCTTGAATTTTCTATTATGGCCTAGA -ATTTCGCATCGTGGCCTAGAAGAAATTTGCAGAGTGGTTTTGAAATTCGG -TTTGTGACCTAGGGTGCTATATTGTGGCCTAAATTCTTCCATCATAACGT -ATGATTTCACATTTTGACCTGAAAATTCTTTGCGTGGTCTAAGATTTCTC -ATTATATTCTCGAATTTAACTTCGACACGTGAGAACAATTTTGATGGCCT -AGAAATTGCTCCCGTGACCTAGGAAGTTTCAAATTTTTAAAGTTCAAATA -AATTTCACCAGAAATTCATCAAAATTTACAATTACGGAAAAAGAATCATA -TTAACCACTGCAACTTTTTTCGAACGAAGGACGAGGCAAAAAGGTTTCTA -GGCCATGGCCGAGTCCCCGACAAATTTCAGCGGCCATTTATTTTGCTTTG -TTTTTTGCGTGTTTTCTTTCGTTTTTCACCGATTTTTTCCGTTTTTTCTT -ATCAAAACTAATAAATAAATATTTTTTGCAGATGCTAAAACAATTTCCAA -GTGAAAAAATTGTGAATTCAGTCGGCAAGTAGCGGTAAAAGTGGTCAATG -TAATATGATGGATTACGGGAATAAAAAACCCAAACTTTTTCCCAAACATG -ATACATATGCTGTTTAGAAACACGGGAAAAATCGGTGAAAAACACAAGAA -AACAAAGCAAGTACAAAATGTCGTAAAATGCGGTGTATTGTGTGCAAACA -CCGATTTTTCGCATTTTTTCTCGGCCCTCGTTCGAAAAAAGTTGCAGTGT -TAACGGCGGTGGAAGAGCTTTACCTTTACAAAAGGTGGCCACAAAAAAAA -TAGAAGAAAGGATCCAAAAAGAGCAGGGAAGAGTTTTCTCAATTTGACGG -CCACGTGTTCTATAGAAAAAGATAAATACAATAAATACGTTTTTTGAACA -ATTAAAAAAACAAAAAATTTCAAGAAAAATTTAGAATATTTTTTCAGTTT -TTTTCCTGAAATTCAAATAGAATAAATGGAAGTTCAACAAAAAAAGGTGA -CCTAAATACTTATTAATTCACCTTCTTGACCTCTCGATTCTTCAGAAAAA -AGAATAGGCTTCTCCTCCTCCCACCTCCCAGACACTTATCTACACTTTAC -ATCATTCCTCCCGGCCCCCGGTTTTTTCACATTTTTCAACCTTGAAAATG -ACGAAATAAACAAGTGTTTTAGATAAATGTTTCTGTGTATGTTATCTGAA -ATCTTGGAAGGGTGTTGCAACAGAGCCCCGCGTGTAGCGTGGCCTAGAAA -TCCAAAAAGTCTTCTTTTAGATCTTCAGCTTTCTCAGCAAGTTAGGTCTT -AAGTCAAAAGGACTCTCCATGACCAAGTTATAACGATTTGTAGTTTCTAG -GCCATGGAGTACTCTCCGAAGGGGAGACATTGACCCCCTGACGCCGGATT -TGTAGGAATTTTCACGTGTTTATGCTACTGTAAGCGAGCTATATACGTTC -TTCAAAAATATCCGTCAAATTGTGACCACCGTTTCAGCACTTTAAAATTT -CTAGGCCACGCTGTCGCCATAATGGAATATTTTTCTCACGAGGAATAGAA -ATTAAAAAAAAAACTCTTCAACTGGTCGATATTTGGAAAACCAAACTAAA -ATGTTTCAGAATTATTAAAAGCTTAATTAAAACAAACAGCCACAAAAGTT -ACCTAAACTGATGAAATAAAGACATAGGCATACAGATTTATAAATCCTAT -AAGCATGGGTGTGTCACAGGTAAAGATTATGGAAAGTGAGGGAAAGTAGG -AAGATATTACTGGAAAGTTCTGGGGGAGAACGGCTGAAATCAAAATGGAT -TCGGTTGAACGCGTCGAATCACGGAGACTCGTTTGTAGGGCTTCCAGGTA -GATAAAAAATGTTCTGCCTGAATTGGGCCAAAACACATGAATCTTCAAAA -ACAAATTGACACAAGAAAATACATACTACTCCAAATTTTCAAAAATCAAA -AAATAGGCGATAGGTTTTTAGATACTAAAGTATATTGAGCAATTAAACAA -TTCACCCCCTACAACTGGCGGGCCCGCAGGGCCTGCTAGTCAGGCAAAAA -ATATATGGCCCACACTCCCAGCGACAAGAAAAATTAGGGGATATTAGAGA -CATTTACTCAAAAGGAGCATTACACAAATTTTAAAAATCTCAAAGCGGGA -AATTTTTTTAATGCGTACTGAATAAGAAATCGACGTTTAATGAAACTCAA -TTGCTACAACCCCGTAAACCTCCTTCACGTCCAATCAATAGTGACATGAA -TCCTTCCGACCAACGTCATAAAGATTGGAGATGACGAAATTTAAGATGTA -CCAAGTATGCTGGTACATACAATTTCTACGTCACAACATCTTGACAGTTT -TTTCCCTCAAAGAGAGGTGAGCCTGTAGAAGAGATACAAACGCTGCGTCC -TATCGTGGGTTCAGTTGTGGGGAAAAATTGTAAAAACTGTATGTACCAAC -TATGCTGATGTGCCAACTACCAACCAGCATAGTTGGTGCATCTTCAATTT -TGCCATCTCCAATCTTTATGACGTTGGTCGGAAGGACTTTTGTCACTATT -GATTGGAGGCTTACGGGGTTGAAACAATCGTTCATTAAAAGTCGTATTCT -TATTCAGTACGCATTTCAAAATGTTTCCCACTTTTTTTCGGCTTGATCTA -CGTAGATCTTTAAAAAATGCGGGAGAAGATATGCAGTGTTCTCAACTAAT -TTCGCATAGTTAAGAACGTGCTGACGTCACTTTTTTTTTGAGCAAAACAT -TCCGGCATTTTTTGTAGATCAATCCGTAATTGGACAGCCTGGCACCACGT -GTAAGAACACGATGCCTCTATTTTTGCCCGGGAGTGTGGGCCTTGAAAAG -TTGTGAGCTGTAGAAAAATGGACAACAAGCATGTTGTCAGTTAGCAGCAT -TTTATAAGTCAAGGACAAGTACAACCGAGATAAGTGAAAAGTTTGAAAAA -TGGAAAACTTTCAAAAAACAGCGAAGGTTCTTTGATCGATGCAAGGGCAG -AAAGTGAATAATGCATGTTTTTGAACTTAAAACAAATTGGCTAGACTTTG -ACTGAAACTACCTTTTATAAAAATGAAGAAAATGAACCATTACGAAAATG -TTAAATACACCTGAAAATTGGTGTGTTTTTATTGTCGTTCTGTAATTAAA -TTTTGAATGATCGCTCTTCTGCAAAGAACAACCACAAAAAATAATTCGAT -ATACTCAAGTATCGACACTTATGATTTGAATGCAAACATATAACAAATTA -AAATTAAAATACGGTCATTATATTTTAGGAAAATTATGGAAATTTTTTAG -GCTTATGATGTTTCAAAAACTTTCAGAACTCTAGTAAAAAACATTTTATA -TGTAATAAAACACTCAGCGACTTTAAACTTTGCAAGACAATTTGGGACAT -AATTTTGGGACATTGTAAGAACAGTTAATTGGAAAATAAAATAGTTATTC -GAATGATCGTTCTTCAAACAACCTTACAAACAACAACACACCTACTCTGC -TATAATAAGAAAATTTAAAATACTACTCAAGTTGTCACTTCAAGACCGCA -TAAGTTTATACCACTCGAACAAAAAACAGTCTTCGTTCTTTCTTTCTTGA -AAAGAGACATAATTGAAAATGAACTAATCAGCCGCTGCCCGGGATGGAAA -AAAGAAAAGAAATTCCTATCATCTTTTGACCTTGTTATTTTTGCAAATCA -TGTCTGAATAATACACTTTTTGATACATATAAATCAGGCGTGGGCGACAA -ACAATTTTTCCGGCAAATCGGCAAATTGCTGGAATTGAAATTTCCGGCAA -ATCGGCAAATCAAAAATGTTTGAAAATAGGAGAGTAAAAAGGTGGAAGTC -AAGTGATGGTAAGTACCTATTTTGTTTCAATCAAATTAAATTTTACACCA -TCTCTCTTTTTTTTCCTTATTTAACAGTCTTTGGTCTGTGTTCTGATGTT -GAAAGATAAGGGAACATGGACGAGTTGTTTTTGGGAAAAAACATTCTTTT -TGGATTATTTTAGTAAAAGAAAAATTTAAATTTATAAGCATATTCACTAA -ATATTTTTGTGGGAATTTGAAAAAAAAAGAAATTAAAGAAGAAACTGATA -AAAACTAGAAAATGTATAACTGGGAGAAAAAAGTTTCCAATTTTCAGAAC -TTTTGAAAAATTGTAGAAAATAGTTCATGCTTTCAAAGTTGTAGGAAAAA -ATAATATGTGGCCAATTTCCGAAAGAAAAAACTCTGCCACGACCAAAACT -CAGAACTAGACTGAAATTTCAGTTGTAGCTGACAAAACCATCCAAAAGAT -ATTGTAGGTTACAATATCTAGGCCGTGAAAATTAGAAAACTCGAATCAGA -TATCCTTGGCCGGAATGCGAAAAAACAAAAATTAGAGTTTTCTAGGCCAC -AAAAACTCGTCCACGTGTGCATGAACTGTCAAGTGGTCAACGTAAAAGGT -GTGAAACCCTTCAGAGAAAAACACTAGAAATGAGATAAAGTAGGTGAGAC -CTCCTGTCTCTGAGAAGCAACGTTCGAAATTCTTTTCCAATTCCATCTAT -TATTATTATTATTATTATTATTAGGACGGTATGGCGCCAGGAACTGGTTG -TTTATACTGACCACTGCCTCTTCCCGATTAGGATTCTGAATTTCGGATTT -CGGGAAATTGAGAATGGCAGATGGATGTAATTTCATTAATCATGTTCCTC -AATAAGTTAAGAAACAAAAGAAGGAAGATATAGTGAATCAGTGAGGAACA -AGAACATAGCATATATGGAATTGGCGGTGTAAGACTGGTTTACATGGTTA -CACGGAGGGAAAAAGATTTGAAAGTATTCGTCATCTTATCTAGGTAGTTG -AGACACTTGATTAGTCATAGTTGAAAGAACAAATGGAAGAAGTTCATATG -CTGAAAGCATCGCTAATAACATAATATTGGTTTTAAAGGTGGAGTACGGT -CTGTGGGTTTTTAACCTAAATGACAGAATACAGTCCCAATATACCGAATA -TAACTGTTAAAGATTTATAAAATTTATCTAAATTTTTTATGATTTTTAAA -AAAGTTTTTTTTTTTTTAATTTAAAAATTTATTCAAAATTCCAAAAAAAT -ATTTTATTCAAAACTAAAAACCCAAATTTTCTGAAACTTTACCATTTTAC -TTATTTATGTCTTAACAATAATATACACATATTAACGAAATACCCACCGT -TCAAAATTTGACTTAATCTCCAGTTTTAACTGCCAATGAGAATTTGTTCA -AAATTCCAATCTCACACCCAATGTTTTTCTTTGTTTTTCATTTTAAAACA -GTTCTATCCAGTTTAAAAATTTACCAAATAAAAATGTGTCTATTCCTCTC -ACCTCCAATCCCGTGCATGTGTTCATGTTTACCTATTGAAACGTGTGTAT -TACTATATAATACAGAACAAATATAAAATGGCCACTCTTGCACCTCCAGC -GGAAAGAAAGCTTTTGAGGTGTTACGAACACTGCAACACTTTCCTATTTT -ACTAGTTTTGAGCAATTTTCTGGTCCTTTTATTTATTTTTGTTTTGTCTG -GAACAGGAAGTTGTTTGTGTTCTGTTTGGAAAATTAATCAGTTCTACCGT -GAGATTTTTAAGTTATTTTTTGAATGGAATTTCAATTATTATTTCATTTC -ATTTGTTTTTTTTTCTCACCGAAATCCACTTTTTTTAGAAACAATTTTTT -TTTCTACATTTTTTTCCGATTTTTGTCATTCAATTTTTCAACTTCTCCAT -TTTTTCTACAAAACACCGAAAACTACAAAATACCTAAAAATTGCAAATTA -AAAAAATTTTTAAACATTTTTGCCCAAAAAATTGTTTTTTTTTTCAGAAC -ATCTAAAACTCACTAAAAAATATGCTCAAAAATTTTTTTGAGAACACTTA -ATTTTTCGAAAATCTTATTTTTGCAATATTAAATCCAGAGAAATTAGAAA -AAAAAAACGGTTTTCTACAGTACTCCTACCCTCCCTCTCCAGTACTCTTA -AAATATTCCTACAGTGTTCTTACAGTACTCTTACACCACTCCTACACTGT -TCTTACAGTGATCCGATACTACTTTTATAAGACTCCCACAGACTCCTACT -ATACCTATACCTTATCACTACAGTATCCCTGCCGTACCCCCCCCCCCCCC -CCAGTACCTATACTTGCCACTACAGTATCCTACAGTATTTCTACAGTGCT -CCTACACTACCTCTACAGTACTCCTACAGTACCATTACCAAAAATTTGAA -TAGAAAAGTGAAATTATGAACATTTTTTCCTGTATACCAATTTTTAAAGT -TTTAGTTTTGTAGTTGTTTTTGACAACGAAATCAATTTCAAAGTATTTTT -CTTTAAACAATCGTACTTTTTGCGTACTGTTCTTGCACTTTTTGGGATCT -TTTGGACTAAAAGTGCCCCCCGAAAAAAGCGCGGAATTAAAAGAACAAAA -ACCGGATAGACTGAGGAGGTGTCGAACGATGGAATGAAAAAAGAAACAGA -AATTAGATTTGGTTCAGTGAATTCTGTTTCTTTTATTTGGATTTTGGTTT -TTTGGAGTCTTGGAAAAATGTTTTATTTTTGTTCTTTCCAAGAGTCCAAA -CGTTTTTTTCCACCAAAACTCCAAAATTTTTAAAATTTGGAAATTTGATT -CACTGCCAAAACTTCCAGAGAAATTAAATGTTCAGTTTCCCGTAAATAAC -AGGGTTTCGTATCAAAAACTGTGAATTTTCCCGCCACCTATGTTTTTTAA -AAATGATTATACTCTAATTTCCCGTCAACATTTTTTTATTTTGCGAAAAA -TGATTATTTGAACATCCCAGAAAATTTTAAAAACGTCATGAGTTTTTTGA -AAATTCAATTTTTCGTGTTCCTGTAATAAAAACCATAGAAACTGTTGACC -TATAACCTGCCAGACGTTCTTCCTGTCTGTTTATACCCCCATCTGCTCTG -CACACCAGACACCCCTCCTCCTAACTACACTTTAAACTGTTACCCCCCCC -CCCCCCGTTTACCCCTCATTTGTTTTTTTTTCTAGTGCATCCCTTCCGTG -TAACCTGACACTTTTTCCAAGAAGCTCGCATTTCTTAGGAGGAGCAGCAA -TTTTTCGTTACTTAATTTTCCACACAGTAGGAAAGACAAAAAGAAAACGT -CATAGAAATTAAAAATTCTGCGTTTAATTTTTTGTTCAGTTTCTGAAACT -CAATTTTGTGGAACCGTTTTTTTCGATCTTTGTAAAATTGAATTTTTTTG -ATTTTTGGAAAATTTGGATTTTTGCTGGAAAGTCAATTTTTGTGAGAAAA -GGTTTGGCGGGAAATTTAAATTTATTGAGAAAAATTTTAGCGGGAAATTA -AATTTTTTGATAGTGAGAAAAATTCAATTGAATACCTTTTTTGTGCGAAT -TTTTCATAATATCTGAAACTCAAAAAATCTGAAAATTAACTCGAAAAAAT -TTTCAAATTTGATATTTTGGCAATTCAAAAATTGCTTAAAGAAAATAACG -GAACCTCGTTTTTTTTCTTTAAAAAAAGGTTTTAGTAACTTTTCCGGTAA -CCAAGGTTACTCTTTCCCCATCAATCTCCCAAAAGCATGCCAGAAAAAAA -AGAGAGAGAGAGAGAGATGCGTGTATGATTGTGTCATTTGACAGTGCGCA -ACAGACACACATAAAACAGCTGACATCTTCTCTTTTTATTTCAACTGATT -TTTAATTTCCCTCCTTGTGTTCTCTGAGTCTCTCTCATTTATTCAGTTTC -TCGATTTTCTTCCAAATTCATTAATATTTTAATCTATGCGTAAAGTGGAG -GAAGATTTCTTCTACGTTTTGATTTGCAATTTCTCGGGTTTTTCAAATTA -TGGATTTTGAAAAAAAAAATTTCTGAAATTTATTTTTGATTCATGTCAGA -AAATGAGTCTCCTGAATTTTTTTTGGAAAATATAAAACAAATTCTGAATT -TTTTTTACTTTTTGATGTGTAAAACAAAAAAATTGATTAGAAAAATCTTT -ATCTATTTTTTGAACTTTTCAATTTTAAAATCAAAATTAACTTCTAAGAA -ATAAGATTTTTTTCGGAATTTTGAAAAAAAATGTTGTTTTTTTGAGATTT -TAGTACATTCAATTTTCGTAAAATTCGAATTCATTTTTTTATTGTGCAAA -TGTTTTCTGACTGACTATGAGAAAAATTTCAACATTTTGAAGAACCCCCC -CCCCCCCCCCCCCCATTATTTGGACGGAGCCTGAATACGAAATGTGAGTT -CTCAGAGAAGGAGGTGAACAATTTGATTGATGTGCATATGGAGATGCTCA -TTGTGCATATCAGTTTGGAGCATCTATCTCAGAGTGAGCATGACATTTAC -TTTTACCCATTTGCGTAGGCTCCGCCATTTCACGATTTTTTTTTTCCAAT -TTTTGAACTAGTATAAAAATTTCTGAAATTTCTGTAATTTCTGCCATCTC -CTCATAAATTCCATTGTATTCTTTGCACTATTGTTCCACAAAAGTGCAAA -ATTTTCGAATTCGTAATGTGTCTTTCATATATATATCCATGCACTTTTGT -CCCTTTTCCTGAATACTAATTTGGTGTGCTCCAAGAGGAAATTTTTTTGT -TTTGTTGAAATTACTGCTCCTTTTCGGAATTTTTTAATTTCTGAGAAAAA -TTCAATTCCTAAATGTATAATACTAAAGTCAAAATACTAAAGTGTAATGG -TTTGTTTTTTGTTACAGTCTTTAGTTTGTAGCTTTTGTTTTGTGTAGTTT -TCCAACTTTTTTTTTGCCAAAATGAAGGCTGAGAAACCGAAAAAAAAAAT -TCAAAACATAGATTGGGCTGAAGCGGTATTATTGGTTTACTGTAGCATTA -CTGGGTTACTCTAGTTTGGCCCATGTTTGGTGTACGTTAGTAGTAACAAC -ATTTCGTTCATTTGTTTTTTGATTTGGTAACTTCTGGTGATTAAACTTTT -AATGTACCTAAATCTTCTGTTGCATTATTGATTTGTTGTTTTCTTCTTTT -TAAGTTAAACATGCTCAAATTAAATTCAAATTGAGTTGAAAATGCAAAAT -TATTATCAACTTGAATACCCAAAATTTTGGACGGTATTTCAAAAAAATTG -ATTTCCAGCCGCTTCGACCTTCGACACAACAAACGAATGCTAACTTTCCC -AGGATTACACAAAATAGGTCAAAATCCCCTTTTCTCAATTTTTTGCACAT -ACATCCTCATCATCATCATTGTAATGATCGTGACCATCCGGTCTTCTATT -ATTAAATGAGAGAAGGAAAGAGTATACATATGTGTCTTTTATATTAAACT -AATTATATTTCGACACATTCTGCGCATATCACTACTGCACTAGAATTACA -TTTTAAGAATAAAATGTAACCAAAAGACCAAAAAGTTGTTTGCATTTATT -GTTATAAACAGAATAGAATGAATGTTAGGAAACGTTATTAAAACTTGCAA -AGTGACACAATTCGGTATATCGATTTCTCTGAAATTACTTAACTTAGTAG -GCAGAGTTTTGATACTGATACGGATTTTACTAAATTTAATTTTTGTAAAT -CAGTATTGCTTTTATAACCTATTAAGATTTTTTTGTTCCAGCGTGCAATT -ATTTTTAATTCTATTTAGGATTTTAATAAATAGAAAAATACGTTTTGAAT -TATTTTTTACGTTATAATATTCAATAGTAAAGAAGCACACATCAATTCCC -CTATTCAGTTTCCATACTTTGCCTGATAAACATGAATAGTAAAATAGACA -CTTTCATTTATACAGACACCCCCCCCCCCTTGCTTCCGGATTAAATCCCA -ATAAAGGGTGTGGCAATAAGGCATTGTTGCAGTTTCATTGAATTTATTAA -TCATTTGACAGCATGAAATTACAAAACTGGAGAATTTCTAGTTTAAACTT -TTATACAATGAAGAAATCTTCCATAGAATCAATATTAAATTATCAATAAA -TGAGTATTTACGTTTTTCAGCAACGGTATTATTTTTATACTTACTAGTTA -TTAAGTTAGTAGTTAGTTACATTTTTAAATGCGATGCAGTCGAAATTTTT -TTATAGACTAGAAATTGTCTTAGTTTCCAGCCACTGACAAGTCGGCCAAA -TTTCAAACTTTCAGTAATTTTGCGTCATTTGTTGAGCCGCCATAACTCTT -TTTTTGAGACGTTTTCAAGAAGTTGAAATTTGGTATTTTCAGACATTTGT -ATCTTATTTAAAATATGAGTATTCACTCCTTTTACCTGCCAGTCGGCTGC -CTCCTTATCTCCTATTTTTCTCTAATGAGCACACACCACTATCATCATTA -TTATTACCACCTGTTCTTAATAATAAACATTTCCCGCACTTTATTTCCAT -TTCGATGCATTTTATAGAAAATGTTCCCCCTTTTCGAGCTTTCCAATTAG -ATTCACCCTTTGATTGCTCTTTCTTGGACGGAAGTGTTCCCCAATTCCCC -TTCATCTTATTACATTTTTATGCAGATTTTATTGCATTTTAGTGCGCTAG -ATTTTTCATGGGATTTTGCTAAATAATGCAATCACGCTCTAAATAAAATT -CTCAGTTTATATTTTAATGTTAAAACTGTGTGTAAAATTTACAAACATAG -TGAATACATTTTTCGAATAAAAGTATGAACATTTTTCGAGGGATCTATAG -AAAATTGCCGGCTGTTCCTAAATGCCCTTTCACTGGTCACCAAGTTCCTG -TTCATGCAATTCAAAAGAAATGTTCAGCCCCCCGCTCAATAGTCGCCCGC -ACCACAAAATTGAAAAGCGAACATTTTACTAGTCGAACTTTTGAATTGAA -CATTTTTGGAGTATTTTAAAGAAATGTTTTCAAGTCCACCAAAACATATG -CCAGGCCACAAAAATTTCAATTTTCCGCCAATTTTTTTCTCACAAAAGTT -GAATTTTCTCGAATTTCCGATAATTTTCGATTTATTTGAAAGTTATTGAA -ATTTATATTTTCTAAAACACTTCCACAATAACAAATTAATAGATATAATA -AAATTTGAAATTCCCATGCCACACCTCAAAAAGTGGCTCCCTTAACTCCT -GAGTGCTCGCGGAGCCCTACCAAACTTGGAACATTCTTTTCCCAACGGAG -TCATGAACATATGAGCATTAAATGAGTAGACGACATGTGTATACATAGGA -CCACCACAGCTGTTCCTTCCTTTTTATGAGAAGACATGTCATACACACAA -TGTCTCTTCTCCTTTCCGATTGGAAAATTAAAATTATAGGAGGGGGGGGG -GGGGGGGGCGATTCTTGACATTTCAATTACCCCCCCCCCCCCCCCACATC -CGTTATGTTGCATTTTGGTAGGCTTGGGGCCGAATAAGTCTCCCATGCAG -GCGTCAAAACGTCTGCGGACCTACGCCTGCCTCACGCCGCGCCTGCTGTA -CAGGAACCCGAAAAGTGTCGAACGCGGCTAAAGAACCACTTTTCGCACTA -TGCGGTGTAAACACAAGGTTTTGATTTGTAGTCATAGTGCATATATGATG -CGGGAGGCTGACAGGTAGGAGGCAAGCGTTCAACCGCGCATGCCCACCAT -GGAAGCCCTAGAGCCTAGTTTTAGATGAGTTTCAGCATTTTTGATCTACA -AGATTTTGAAAGTTTTACAAAAAAACCAAGATTTTTTGTAATTTATGAAG -TGATTTTTCTACATTTCATCTAGAAACCAGCAGAGTTATTTTTTGGGTAA -TTTATCAATAGAGCGCGTTCGCGTCATGAAAACAAAATGGCGGCCGAACT -TTGAAAATCGATGGCTGAATTTTTCGGAACAAAAGTCCGTAGCTATAAAG -CACAGGCCTACGTTTTTTTTGCTTTTAAATGACATAGTTTTCTAAAAAAA -AGTCTGTGGCCGAATTTTTAAATTTTGAATAGGGGCTTATTTCAAAAAAA -ATTTGAGGCCAACCTACTCTTCTCAATTATAACTTGCCATGGCAGAACTT -TTGAACAACTATTACAACGTTTTCAAAAAACAAGTTAAAGCATTTTTTCG -AATAAAGGTTAAATTGGTAGCCTAGTTTTCTCAAAACAAAATACTAAAAA -AAATATCGATGACCGAAGTTTATATTTGAAAAAATATGTGACCTAGAACT -TTTAACTACTCTTCCAATGTCTTCTAGCTTCTGAGAAAAAGTTCGTGGCC -TAAGTGTACCACGATGGTCTAGTTATCTCGGAAATAGCCATAGCCTAGTT -TTCTCAAAAAAATCGGTGGTCGAGTTTCCTGTATGTAGGCATGTAGGTAT -GTAATTTTTATCTTCCAGGTATCTATTTGTACTTCCCGGTAGCCAGGAGC -AATACTTTTGAATTCCTTTGCTCTCCCTATTCAGCTTCTCCCCTCACACT -CGTTTTTGGTATTCTATTGTTCTCCTCCTCTTCCCATTCTACCCCCATTT -CATTTTCCTCTTGGAGACCCCTGTCTCTCTCTCTTTGTATTGGCTCTTTT -ACGTCTTCTAGTAGGCTTTTCCTTAATGAACTTGTGTGTGTGTGCTTGAA -TCATCATCGCGTTCTCTCGTTCCATTTCCCTTTTGCAATTTTCTTTTCTT -GGAGAAATTTGGAAAGTTTTGCTCAAAATTCCTACGTACACATGCCTCAA -AATCTGGTTGTATATGGCCTAACATTCAATTTCTAGTGCACACAATAAAA -TTTTCCGGGAAATTCAAATTTTCTGATAATGAGGAAGGACTTTGGCGGAA -AATTCAAATTTTAAAAAAGTAGGCGGGAAATTCGAATTTCGAATTTTCTA -AACTTTTTGGCCGGAATTTCAAATGTTCTGAAAAATAATTTTGGAGCGAA -ATTCATATTTTCTCAGAAAAATCTCAGAAAATTTGAATCTCCCACTAATA -TTCTTCTCAAAAAACTGTTACGTGACCTATTTATATCTTATTTATTGGTC -CATTTATTACGTGGCCTAAAACATTTTTTCTTTTCCCCCGTTTACAGCGA -TCATTTGAGATGGCCTAGAAAACGCACGTTAGGCCATCAGGTTTACGGGG -TATAGTACAACCTCTTGCAGGGGACTGAGGTTCAGAAAACTACAAATTTA -GCTAATTCCCTACCTACTCTTGCAAATCCAATAACTAACCCAATTTCCCG -GGGAAATTTTTATTCTTAGAAAACAACTTGTATATCTCCGCAACTACATA -TCCCTCCTTCAAAATAATAATAATGGGAAGCTTCTGCTTCTCTACACCTT -CTTTTGACCAAAAACTTGTTGCCAGTGCCCTATTATGTACGGTCCGTTGA -GTTTTGTTGTTGTTCACAATAATATGTGTAATTCGCGCATCTGAAGAGGG -GAGGTGTAAATGTTGTGTCTAACCGTTATGTTGCTGTCACCTCCAAGTGG -TACAGGTGGCCTAGAAATTTGCGAAAACTCTTCCACGATTATATTTCTCA -AAAAATTACTTTTCTCAGAAAATTTGATTTTCTCACCAAAATATTTCTCA -GATAATTTGAATTCCCGCCAAAATTGTTTAAAAAAATAGAATATCTCGTC -AAAATTTTTATCAGAAAATTTGAATTCCCCACTAAAATTTTGCCAAAACA -TTTTATTTTCCCACTTAAAAAAGTTTTTTTTTTAATTTGAAAGTGGAAAA -GTTTTCTAGGTCACTTATACATTACCGGTGACCGAGGTCGAATTATTCCT -AGGCCACAAATCTCCCAAAGGGGTATTCCCACACCTAATTGACACCTCCC -CGGGCACCTTTGAGCACTAAGTAAGGACACCCACCCCTCTCAGCTTAATA -GCTTTTAAAGGAGCACACCAGCCATATGTTTTCTCTAATTCTCTCACTCT -CTCTCTCGGCTTCTAAATTCAATTTCCCCCCGTCACGCCTCTCGTTACGT -GAGGAGTGTTCAACATGTTCCCATTCCCTTATCCGATAAGTTTTTGGTAG -GCAGGAGCTTGTACTAGTAGAGGACATTTGTCGCTTCTTGGTCTTTCGCC -TCCATTTTCCGTAATTTATACGTGACTTAGAAAATTAGAAAAAAACGCAT -TCCACGAGTTTGTTGGACAACTTTTTTTACGTGGCCTAGAAAAAAATGAA -ACTCGGCCACCGACTTTTCTTTCACTTTTGTGAAGATATGATCTCATTCT -ATAATTCTGTCGAACCGATTAGGAGGGTGGCTGAGTTTGCACTTTTGCGT -GTTCTATACCATTTACAGAAGCTAGTCCCCCCGTCATTCTTTTTCCTGCA -AAATGTTTTTTTTTGCCCCCGGTGTCTCATCATACAGTACAGCAGCCAAT -ATTATTTGTTTTTTGTTTCGTCTTTTCGTCTTTTCGGAGAAAAAACGCTC -TATTCTATGACAAGGTGACGTCATTGGACTCGTGGCCTAGAAAGTTTGGC -AAACTCTTCCACCATTCGATTTTACAGGAGCCTCAAAGCCCCACATGGGG -CCTAGAAATCTTGACATTTCTAAAAAACATCCATTTTGAAATTTTTCGAA -ATTGGTGCAACCTAGCAACCTCTAGAACTTCACGTGACCTAGAAAAAACA -AAACCTCAAAATTTCATGTGGACTAGAAACTTTTAAAAACTCTTCCATCG -ATTTTGTTTTGTGGCGGGGACTTTTTCCAGTTTCTTTTTCACATAAAAAC -CAAAAAAAAACAAGACGTCAAGCTGTGAAAATGATTAGTCACAAAAAGAA -GAAAAACAGTAGTGTCGTTCCTGCCAATTTCAGAGATTCCTTCTTCGCTT -CTCACGACACGAGGGGGGGAGGGTCTAATTGGCACCCCCCCCCCCCCCTA -CTGAGGTGAGAAGCTTGAGTTGACTCACACGTCGCTCTTGTTTTATTCAT -TTTTGGCACAAAGTGAAGTGTGCGAAAATTGTAGTAGTCTGTGTGTGTGT -GTGTGTATGAGCATTTCGAATTTTAAAATACTTTTTTAATGTACCGCAGG -CCACGTGGTAAGTTTTTTTTCATAAATATAGGATTTGTTTTCTTGTAGAA -AAGTTTTTCGAATTTTGAAATGAAAAGGATAACTGGGAACGGAGAAAAAT -TAAGTTTTAATTTCTAGGCCACGTACCAATGAGGATGAGAAGTCGGTTTT -CTAGATCACAAGGTCATCTAAACTTTTAGGAAATTTAAAAAGTTTGGTGA -TTACGAGAATTTCTAGGCCACGTCGCAATACACCGGCGCGTTGGCGTTTT -TACACTTTCTAGACTACTAAGATTTTCCTAGGCCACGTCCCAATCAGGGC -TGTTGCAAAAAAAAATTTTCGACCAAAAAACAAAAAACAAAAAATTTTTT -GGTCTAACTATGGACCAAAAAACAAAAAACAAAAAAACAAAAAACAAAAA -AAAATTCAATGTTTGATATTGAACGGGACAAAACGGAATTTTTTCATGAA -ATATTCTGGTGATTTTTTATAAAATATTGAAAATTGAACGAACAGAAGGT -TTTTTGTTAGCTTTTTTGCTGAATCAGTGCTGTAATTTATTTTTTGGTTG -TTTTTGGTTTTTTTTTTGGTCTCAAAAAACCAAAAAAACCAAAAAATCAA -TTTTTCCCAAAAATACCAAAAAAAACCAAAAAAAAACAGCCCTGGTCCCA -ATGTACAGGTGTTGTGGTGCTTTTTGTGAGCTCTTAGGCCAGCTGGAGTT -TTCTAGGCCACTTGTAAATCAATGGTTTTTTTTCGGTGTTCTAGGCCACC -TGTCACGCCTAGACCATTGACCTAGAAGTTTAATGTTTTTGAATAATAAG -TACACGTACTCTCACATACCCGCAAATGCACATATCTATCTTCATTTCGT -GATTCTCTTCATCTCATCTTATTTTCCATTTCGGTTTACCCTTTTTTTCT -CTATGAATATATTTTCATGTACTTGCTCTTCTTCCCTGAAAAAGATTCTT -TTACACTTTTTTCATTTCCTTAGGCAGTTGTAAAGAACTTGTCATTAGAA -CTTTCAGAATGACATCAGAGTAGATGGCCGAACTTTTTCTAGGCCACGGC -TTGGGAGCCAAACATGGCTAAACATTCTAACTTCCTGGGTCATCTAGAAG -TTTCTAGGTCTTATGGGTGAAAATTGTCAAATGACAGAATTTTCTTAAGT -TATAGTTGAATTTCCCGCCAAACCGATTTTTTTTTGAAAAATTTAAATTT -CCCGCCAAAAATTTTTTGAAACGTTTAAATTTTATGCCAAACTTTTTCTG -AGAGAATTTGGTTTCGCTCCCAATTTTATTCTCTGAAAATTTTAAATTCG -CACCAAATTTTTCGAGAGCTTTTTGAAGTTCCCGGCAAAATTTGTTTTCG -AAAAATTAGATCCCCGTCAACTATGATAGAGAAGTTACGTCATCTGGCTA -CCCTGGCCGAATTTTCAATATATTTCTAGGCCACATATTGACCGCTAAAT -CATGTTGTGGAAGAGTAGTGACGTCACTTGGCGACCGCGACCATCGAGCA -GCGTGAGGGGCGAAGTATCCCCCTTCCCAACCCTAAAGACGTCGTTCATC -GCTCCTTTTTTGTTGTTGTAGGAGTTCCGTTTTTTTGTGTCTCGATTCGT -TTCCTCCTGTTTGTTGTCATTTCTGAACTCATCTCTACACTTCTCTCGTC -TTCTCTGCGTCTCTCCATCCTGCACACTATTTTTGTTTACCTCGATGATC -TTTCTTTTTGCGTGTGTGTCACTGACGAACGAACGGCTGACACAGACTAT -TGTTTTAGTTTTGTTGTTTAGAAGTAGTTGTAGTATTCCAATAGTTTTTC -ACACTTTGCATTATTTCAGATGGCTCAGGACGGAGACCGCCATCACATTT -TTGTCAGTGCTCCGCCGCCGCCGCCACCTTCCTCGTCGATTCCAGCTCCA -TCGCAGGTAAATTTAAGGTTGCAAGCGCGCTCTAATGACCTTTTTTGTGC -CTCCGGCTCCTCTTTGGGTTATTGCCAACGCGCTCCAATTCGAATTATTC -TTACTTTCAGCCAAATAGACTGGAAAAGGAGCCGCTCATCGATGAGGAAA -CTGACATGATTGACGAATCCCGAGCCACGTATTGGAAGGGATGTGAATTC -TTGAAAGCCTCTGGGTTGTACTCGAGTAAATGTGAGTTGGTCTAGAAAAT -TTGTAAAGCTCTTCCACGAAGTAATTAATAAGGGATACTATTGCCGACAC -CCAGGAACACGTATACCACGGAATTCAAATTTTAATTTTTTGAAAATATT -TTGGCGGGAATTTAAAATTTTAATTTTTTGAAAATATTTTGGCGGGAATT -TAAAATTTTAATTTTTTGAAAATATTTTGGCGGGAATTTAAAATTTTAAT -TTTTTGAAAATATTTTGGCGGGAATTCAAATTTTAATTTTTTGAAAATAT -TTTGGCGGGAATTTAAAATTTTAATTTTTTGAAAATATTTTGACGGGAAT -TTAAAATTTTAATTTTCTGAAAATATTTTGGCGGGAATTCAAATTTTAAT -TTTTTGAAAATATTTTGGCGGGAATTCAAATTTTAATTTTTTGAAAATAT -TTTGGCGGGAATTTAAAATTTTAATTTTTTGAAAATATTTTGGCGGGAAT -TTAAAATTTTAATTTTTTGAAAATATTTTGGCGGGAATTTAAAATTTTAA -TTTTTTGAAAATATTTTGGCGGGAATTTAAAATTTTAATTTTTTGAAAAT -ATTTTGGCGGGAATTTAAAATTTTAATTTTTTGAAAATATTTTGGCGGGA -ATTTAAAATTTTAATTTTTTGAAAATATTTTGGCGGGAATTCAAATTTTA -ATTTTTTGAAAATATTTTGGCGGGAATTTAAAATTTTAATTTTTTGAAAA -TATTTTGGCGGGAATTTAAAATTTTAATTTTTTGAAAATATTTTGGCGGG -AATTTAAAATTTTAATTTTTTGAAAATATTTTGGCGGGAATTTAAAATTT -TAATTTTTTGAAAATATTTTGGCGGGAATTCAAATTTTAATTTTTTGAAA -ATATTTTGGCGGGAATTTAAAATTTTAATTTTCTGAAAATATTTTGGCGG -GAATTCAAATTTTAATTTTTTGAAAATATTTTGGCGGGAATTTAAAATTT -TAATTTTTTGAAAATATTTTGGCTGGAATTTAAAATTTCTGAGAAAAAGA -ACCTTCGTGTCGAGACCCATCGTGGTGAGACCCTTCGTGGTGAGACCCAT -CGTGGTGACACCCATCGTGGTGAGACCCTTCGTAGTGAGACCCTTCGTGG -TGAGACCTTTCGTGGTGAGACCCATCGTGGTGAGACCCATCGTGGTGAGA -CTCATCGTGGTGAGACCCTTCGTGGTGATACCCATCGTGGTGAGACCTTT -CGTGGTGAGACCCACCGTGGTGAGACCCATCGTGGTGAGACTCATCGTGG -TGAGACCCTTCGTGGTGAGACCCATCGTGGTGAGACCTTTCGTGGTGAGA -CCTTTCGTGGTGAGACCCATCGTGGTGAGACCTTTCGTGGTGAGACCTTT -CGTGGTGAGACCTTTCGTGGTGAGACCCATCGTGGTGAGACCCTTCGTGG -TGAGACCCATCGTGGTGAGACCTTTCGTGGTGAGACCCATCGTGGTGAGA -CCCATCGTGGTGAGACCCATCGTGGTGAGACCCATCGTGGTGAGACCCTT -CATGGTTAGACCCATCGTGGTGAGACCCTTCGTGCTGAGACCATTCATGG -AGAGACCCATCGTGGTGAGACCCTTCGTGGTTAGACCCATCGTGGTGAGA -TCTTTCGTGGTGAGACCCATCGTGGTGAGACTCATCGTGGTGAGACCCTT -CGTGGGGAGACTCTTCGTGGTGAGACCCTTCGTGGTTAGACCCATCGTGG -TTAGACCCATCGTGGTGAGATCTTTCGTGGTGAGCCCCATCGTGGTGAGA -CCCATCGTGGTGAGACTTTTCGTGGTGAGACCCATCGTGGTGAGACTTTT -CGTGGTGAGACCCATCGTGGTGAGACCTTTCGTGGTGAGACCCTTCGTGG -GGAGACTCTTCGTGTTTGATATTATATTGGCGGGAGCTAAGGAGTTGGTG -TGGGATAATGTCAAGGTACTCTAGGGGTATTGTGGATTTGCTGTAGGGTT -ACTGTAGTTCAGAAAAATTGACTTTGTGCTTTTGAAGAGGTATTGGCTCG -AGAGTTAGAGAGGCGGAAGCTTCTGTGATATTTTTTACATTCCAGAATGT -TTGAAAAAGTAAAAGTTTCCACCTGTTTTCATGTGACATTGTTAAAAGAT -TATATGGTGTTTTATGTGTCGAACAATTTAAATTTCGCCAGTCGTTGGCC -GCGCCGTAGGCGCGGTCAGCGGCTGGTTTTTCCAGAAAAGGAATAAGAAA -TAAATTATTTGGAAGTTACTAGGACCCTGAATAGAATTCTAGGCCATATC -GAAAAAGGGGATGGGTGCACGTGGGAACCTTTTTTTGGATATTTTGGAAA -GAAGTAAGAAGTAAGAAGTAAGAAGTTGACTTAAGAAGTTGACTTTTCTA -GAGTAAGAAGTTGACTTTTCTAGAGATCATCTCCCCTCTATTATTCTCAG -CGTGACCTAGTTATCCGGAAAACTCTTCCACCAAAAAATGAGTGTCTCCA -ACTGAAAAATGCGTCATAAAACACACGGAAAAGGTACTTGTGTATTACAT -GCCCTCATTTTAATAGTAGTTTTTTAAGCCATGAAAAATAAAAACGTGAA -CCACAATTTGTATTTTTAGGCTTAGGAAATAACATTTTCTAAGCCTAAAG -AGGAAAATGTGTAATACACAAGTACCACGGAAAATTTTTTGAAACCTTCC -GAATTTGAAATAATTTAACTAAAAGTTTCTAGGCCACGATGAAAATAGAA -ACAATGATGTCCCGATTTTGCTGAAAATTTCTGTCCATAGTTATTTAGAG -TTCTGAAAAAAAAGATTTTCGAGAAATGATTTTCTAGGCCACCAGAAAAG -TTTCTAGGCCATTATCCCTTCTTGATCCTTTATCATTATGATTATGATAT -TTTTTAAACGATTTTTTAGGCCACCAGAGGGAATTCTAGTCCGTGTCAAA -AAAAAAAGAAAGGGGGTATTCTTTCCACATAAAAATCCCGTTGGCCTTTT -CAATCAAATTTCTTCAATTTTTCGCATAAAACTTACCTCCCGCTGTGACA -AGCCTCCTCCCGTCTCCCAGTATTCTCAATTCATTAATCATCACCCCCAA -TGCCCTCATCAACTACAGTATCCCTGCAATCCGCGTCTGCAAATATGTGC -CGAATATGTCATACTTCTACGTCAACGCGGTCAAATCCGCTCATCTCACC -GTGTCGATGCTCTGGAACACTGCTCTTTGTGCATAAGGCGTGTGTTGTGG -TGAGCTCTTTTTTTGTAAAATTCAAAATAATAATTAAAAAATTTAAAAAA -AAACCTTTTGTGGAATTTGCAATTTTTATAAAATCGTTAAAAACCAAATT -CAATTTATACAAATTTCCACATTTTCCAAAATAAAAAGAAATAGCCATGC -CCACAAAATGGGCGGCGCTTTCATAGCCACGTCCATTTTGTGGGCGGAGC -CTCGGATCAAAGTTTTTTCAAAAACTTACTATAAGTTGAACACGGATTTC -TGGCTTCCTTCATAAATCGAAATGGCAGAGTTTGCCGAACTAGGCCATTT -TGGGTCGGAGAGATTTTGTGTAGATTTACGGCGTGTTGCGTGTCGCGTCG -CGGCTCGTTTTTAGTTGTAAAACTGCTGTATTTGTCCGTGTGGAGTACAC -GATTTTTTCCACGCGCTGTCCGGCAGGCGATTGTCAATGAGGAGCGAAAA -TTCAATGCGAAAGGCCAGAAGCCCGTGGTTGAAGTGTGGTTTCAATATTA -CAGAAATTTTAAAGAGGAATAAACATGCCTGCCTACAAAATGGGCGGAGC -GTTGGAGGCGTGGTCTAAGAAGTCACGCCCTTTTTTTTAAATACTTGTTC -TGATGTACAATAGAGCGCATTTACATCAAATTAATAATTTGTTTTTCAAT -TTTTCCAGAGATGGCTGGAAATGTCGACTCGAAAAATGGTCCCATCACCA -CGTTGCGAACTATGCGGCTACGATTATCGACGTGGAAATATATTTCAAAT -GAAATCTTTACATGTTCCACACGTGGATCGATCATCTTGTCTGCTCAATG -TGCTCTTTTTGATTACCGTATTAATTATGATATTTTGTGGATATTTTACG -ATTCAATTCATTCAGGAGAATGCACTCTTAAAACGAAGGTGGGCGAAGTT -TTCTGGTGATGACCTAGGAAATTAGAAAACTAGGCCACCCCGCAAATGTG -GTGGCCTAGAATACCGAAATTTGACTAAGCTATGGCCTGCGGCCTAGAAA -AATAAAAGTAGACTGTATAAAATTCTCATCAAGCCTTTTGGAGATGAACT -GGAAACCCAAATTTTTTGGAAGAAAATATTGACCTCCTTTAAAACGGTGG -CCTACTTTTTCTGATGGCCTAGGATTTTAGACAAAGAAGCCACACAGCTA -CTATCCACATAGTTTCAGGAAAAAAAATAAGAAAAATAGGCTCCGCCCAC -ATATTCTTTTGAATTAGAATATACACGAGCCATTTATTTTGCTAAGTTTT -GAATGTTAGCTCCGCCCACATAATGATTTGAATTTCCCGCCCATTTTTCT -CTCAAAAATTTGAATTCCCTGCCAAATTTTTTTTTGCGAAAAACTCAATA -CTTTCAGGCTCTTCGCGCACAGTTCGACAAACACAGCGTACACGTGGAAA -CGGCGTGGCTATTTCAGCGGAAACGGGAATGGAGACGGGGACGGTAGTTC -GGATGGATATTTCTCGCGTACACCTGTCTCATCACTTTTTGACATAAAAG -TGGTCTTGTGTGCCAGCATGTTCTTGGTCTCGTTCATTTTGGCCCTTTTT -ACACAGTATAAGTGAGTTTTTTGACACGTGGCCTGGAAAATGAGAAAACT -CGGCCACCGATTTTTTCAGCCGAATTTTTTTAGTTTAGCGGTCACACGGG -CTTCTGGCCATTCTCTCTGCATTTTTCGCGCTCCATTGGCATTGGCTTGC -CGGACAACGCGTGGGAAAGTCGTGTACTCCACACGGATAAATTTGTTCAG -TTTTACATTGAAAACCGAGCCGTGACACGCCGTAAATCTACCCCGGCCGT -GGCCGAGTCAAAATGGCATAGTTCGGCAAATTCTTGAATTTCAAAATATG -ATGGAAGCCTGAAGCACGTGCGGTCATAAAAATCAATAAATTATCTTTTT -TTTCCAGAGCCGAGTCCACGATATTCCGATGTATTTTCCGATTTTTTGTG -ATCAATAAGAATTGGATGATCAAAAACTACGATATCAAGTGAGTGGGCGG -AGTGTAATTTCGGCGGGAAATTCAAAATTTTTCAAATTTTTCAGAAAAAT -TTCGCGCAAAGTTCAAAAACTCAAAACTTTCGGTAAATTTCGGCGCGAAA -TTCAAAATGTTAAAAATTTTGGGGAAATTTTGGAGGGAAAATCAATTTTA -AAAAACGTTTGTTTGAAATTTTTTTAATTTTCAGAAATGATCCCGAAATG -GCTCACCGCCGCGGTCTCCAGAAGTCTTCACCTGTTCCGTTAACCTTATC -AGCTTCTGATATGTGTATCCACGTGTCATCCTAGTCAACAATTCAACGAA -AAAAACCATTCCAGTTACAATTTCTCATTTCTTTTCACCACTTTCGGGTT -TTTTGCAAATTAAAAAAATTTCGATTTTTTTTTTGAAATTTTAATTTTCC -AATTTTTATTTTTATTCCACAACTCAGGTTGCTCAACAGTGCCTAAAATA -AATTTTATTTCTTTGATTTTTTATAAATTTACAAAAAAAATACAACAAAA -AAATAATATTACACATTCGTGAAAAACGGAAAAAAAATTCAGCCTATTTA -CATTAAAACACGTGGAATTTGAAATTTTAGCGATATATCGATTACCCTTT -CTCGGAAAACTCGTAATAAATGTGAAAAAGGCGAGGAAATTGGAAGAAAT -AAATGCGGGGGTTTCTAGAAAAAAAAATTGGGAGAAAGTTTAAAGAAAAA -TTCAAAATAATGCTCCGGTGTCATCGTGTTCCACAGTGGTTAGATTCTGG -TATTTTGTGCATGGTGTGCTCTGAAATTTAAAAAAAAAGTAAAAAATTGA -AAAAAAAATTTCTTAAAAATTAAAAAAAATGAACTTTTTTTTAAAATTTA -TATTCAAAAATAAAAATGTTTGGTATACCTAATTATTCATACTTTTATCA -ATTTTCGAGAAACTTCAATTTTTCAACTGCTAACGTATACAACTCGCGTT -ACTCGAAAAAGACCTGGGGACTAGTTTCCCACTTGGTGGCCTAGAAATCT -CCAGTAAAAACATCGACGACCGAGATATGAGTTTCTAGGCCTCCATATGA -AAAAAAAACTCGGTCGGGGACTAGGTTTCCACATGATGGCCTTGATAACT -TCAAATTTTTTGGTGACCTAGATTTTTCAAAACTTGGATTACTAGGCCAC -TAAAAGCTTTTCGGTGGCCTAGAAACCAAAATTGCGTGAATTTTTCATAA -TTCTATATCAAAATTGACTAAACCGAAAAGAATGCGATGCTTTTGCAATA -TTTCAGCAGTTGGTGTATCCCACGTGGCGACGGGATTTCGGGCGACCGTG -CCATTGATTAGAGCCAACGGAAGATATTTTGAGCATTCGGCGGTGCTCTG -CAAAAATTTTTTTTTTGCAAAAGTTAAAGACGCATGGTGGGTCTTGATCT -ATGAAATTTCGTGATTATTCGAAAATTTTTTGTCCTTATTGACAATTTTT -TTATCCACAAAAAAGGCGGATGTCCTAATTGCCAAAAATGTGGGTTTCTA -GGCCACGAAAAATAATTTTTTGCTTCAAACATCCTGCTTTTTTTCCAAAA -TTTAGCTTTAAAAAGTCGGTGGCCGAACTTTATTAAAAGTTCAATTTCTC -GGCCACAGAAACTTTGTTTAAGTTTTCACATTTGGATTTCTAGCCCACCA -ATAACGTTTTTATTTCATATTTTTATAAAAATCGAATTAAAAGTAGATGA -TGACCTAGTTTTTTTTCAATAATTTGGGTTTCTAGGCCACCAACTTTTTT -TAAAAATTTTCTTAATTTTCCATAACCAAAAAAAAAAAACAAAATCGATG -GCCTAACTTTTTGGCTTCCTAGGCCACCAATAACTCTTTTATTACTAATT -TTCCTCACTCTCTGATGTCGATAAACACTTTCTTGTCTCGAATATCGCTT -CCCACACCCATCACACTCAAATGCTCCATTCGTCTCATGAGTGAGCAAGT -GTTGATTGAGCCCATGCTTTTGCCGGAAAGTTTTCTCGCAGTCTCGACAT -TTATAAGGTCCATTGTTGGGCTGGGCCTCGTGAGCCGACGACGGGGCCGC -CCGTTTTTTCGCCCTTTTCCCCGATTTTTCCGGTGAAAAAGTGTCGAAAT -ACGCGTTATTGTCATCTAATTTTGGTACATTCGCCAACATTGCTAGATTC -TCCTGAGCCACCTGTTGTGACGTGTGAGGAATGTGATGGTGCTGATAGAG -GTCTGGTGGTGGCTGAAAATGGGGAATATTCCCGGCGCCGAACATTTTCA -GAAGTTCCAGGTCGAATCGTTGTTGAGCATCCGCGTCGACTACTTGATTG -AGGGAGACGGTGAAGTCAGTTGAGGAGGTGGATGGCAGTTTTATAGAGAA -ATCCTGCAAAAACTCAGGTTTTTGCTAAATTTTTCAATTTATCATTGTAA -TTTCCGAAAAATTATAGCTTAATTTTTAGATTTTTCGCTTGATTCTCAAG -TTTTTATGCGAAAATTTAGTTTTTTGTCAATTTTTTTTTGTTTTAAATGT -AAAACTACGGTATTTAAAGGGAGGAGCACTAATTTATGCCGATGGGTCTC -GCAGCGAAAACATTAAATGCCTTAATTTAGCCATGCGCCTGGAAGGTTAC -TGTAGTTTTTATTGATTGATTTTTCATTCAATTTGTGGTTTTTGAAGGTT -TTCAACTCATTTTGAAAGGCTTTTATAGATTTTTTTTTCTGAAAATCAAA -TTTAAATGTTAAAATAATTTTTTTTTTTTTTCACACAAAAATAACAGAAA -TTCCGAAAAATTGCAATTTAAACAGCTCTAAAATATGAAAATTAACGCGA -TTTTTATCATTTTTTGCTTCAAATCGCTGACTTCTGGCAAAAAAAAGGAA -AATTCAGCAAAAATCAATTTTTCAGAAAAATTTGATTGATTTTTGGAATT -TTTCTTACCAATCCGTCGTCTTGCCGTAAATCCTGTAGCTTCATCTCCTT -AGCCAGCAGATTTCTTACATCTAATTGCACGTGGCAATTGCAGTTCTGAA -AAAAAAATGTTTTTGAGATTTTTAGAAAACTTATTTTGTAAATGTTCTAG -GTGGGTTTTCAAATTTTTTTTTAAATTTAATTAAATCAAATTCTTCTCAC -CGTCAGTTTCTCTTTGACAAAATCGCTCAAATTCTTCTGATTTTCCTGAA -CTTTCTCCACTTTCACGGCCAAATCCTGCTGCTCACGCAAAAATTGTTTG -ACAAGACACGTTAGCTGGTTCACATTTGATAGATTGTCCGGGATTTTTAT -AATCTGAAATTTGAAATTAAGGATTTTAGCGGTTTTTTCGGCAAAACGTA -AACTTTTAACGCTGAAAACTCACATTTTTCGAACTCCGCTCCAATAATCG -TCTAGTGAATTCTTGAATAAATCCGGTTGCTTTCATAAAATTCTGAAATT -CCTCATTTCCAATGAATTCGCCCATTTTCCGATGGAAGAAAAACCAATGG -AAATACGGCAATATTTGCGCACAAAATCGATGCTGAAGTGTCGTCGGACG -CAGTGTTTCGTGTGCAGTACACGCCTACGACAAATTGCGGACTTTTTTGT -TATGGAGAGAGTAGAATAGAGAAGAAAAAAGAAGATAAAATGGATAAAAA -TTGCGCGTTTTTCTCGTTTTTTCTCTGAATCTCTCAATTTTTAGGTTTTC -GATCCATATACGTCCCGAGTGGAGATGAAGCCATAAATTTTTCTCTAAAA -ATTGTTTCTTGCCCCTCCAAATCGCTTATTCGTTTTTAAAATTATGAAAA -AAAAATGCTAAAAATGCTTACCAAACCGCAAATTTTTAATTGGAAAATAC -CCAATATTTTGCAATTTATAGTTTAAATTCAAGAAGGTGCCAAAATTTCT -GCAAAATTGCATATCTTCATATAAATTGTTACATTTTTTGTAAAAACTTG -AAAACCCTGCTTTTCACATAATAGTACTGGAATTTTTCAATTTTCAACAA -TTTCATAATTTTTGACCAATTTTTTATTGAAATTTTCAATAAAATATTTA -AAAGATGTGGCTTTCCAAGCAGATTTTCCAATTTTTCCGAGTTTGAGTAA -CTAAGTTTCAACCAAAATGATGTCACAAGTCAGAAAATTTCCCTAAATTT -CAAAACACAGGTGAATAACTATAGGATTAGAATCTGCAAAGATTGAGTCT -GGAGATAATTTCGGACATTTTTTCGGATAGTTTACGTTTCCTGTAGTTTC -AAATAGGCAATTTTACTTTAAAGGTTGCTAATAAAATTAAGAAAAATCCT -TATATAGTCTCCACCCACAGATTGGCTTTTTAGATATTTTCAAAATATCT -TGTAACGAAAACTACAGTAATCTTTAAAATTAAAATTATTACTGTATTGC -TTTTGTCCATTTACGGGCTCGATTTACGAAATTAAATTTAATAATCTTTA -ATCTATAGAATATTAAAATTAAGCAAAAAATGAGAAAATAATACGAAGAA -ATGAAGGAAAATGGAATATCGGTGTAACTATCCGAAAATAAATTCATTTA -GAAAATCGAGCCCGTAAATCGACGTTACGAAGAATTACTGTAGTTTTCGC -TACGAGATATTTTGCGCGTCAAATATGTTGAGCAATACGCATTTTAAGAA -TTTACTGTTATCGTAATAGTTCAAATTTTTCGAGATAATAGTCTTCCAAA -AAACTATTGTTTAAGGTTTTATTTTTTCCGTAATCTAAATTGATTATCAC -TAGACACTGTTCATTAATCATTCAGAACTTGTATAATCCATCTCGGTTAA -ATTGTTGGTGAGACAAAGTGTAATCTGTTCTAGTTGGGTCACACGATCCC -TTTTCCACTCAATCGCTTACCCACTCAACACTATAGACTAGACACTCACA -CAGGAAATAGTATTGTTTACCTGTTTTCTTTTGGACACTGTTTATAACTT -TTCCCTCTCCGTTTCTCTACGTTTAAATTTGTCAAAAATTAATAATTTTC -TTACTTCCACATTCAATACTCATTTAATGACCGGTATTTGAAAATATTTT -AATTTTTTAATCTTTAGTTATTACAGGAACAGTAAACTCTGGGAATTCGT -ATTGCACAACATATTTGACGCGCAAAATATCACGTTAGCTGGCATAATAT -TAGGCATATATTGTTTCTACAATCTTGTAATGTATAACTGACTAACATCT -TTGAAATAAGTTTGTAAAACTTGTGAGTTGGAAAACATTGTGCATGGATG -TCGTGTTTCGCGCACGCGCTAGAGTAGTCATAAAAAGATTACTGTAGTTT -TCGCTACGAGATATTTTGCGCGTCAAATATGTTGTGCAGTATGCATTCTC -AGAATTTTGTGTTCACGTAATAAATTAAATTGTTAAAAGATATAATAAAA -GTTAAAAGATATAACAGATTTTTTCTCACTTCCCTAATATGTTTAATAAT -CAATCATTTTAAATTGTGCCGAAAATTTTCCGTTTTCCAATTGTTCGGAA -TTTTTTCGGTTTTGCTCGAAAAAACCAAAAAGCAAATTTTTATAAATTTC -CCTGGTGTTCAAAATTTTCCCGCAATTTTTACCTATTTTATTTTCAAAAT -ATTTATTTATTTCAGTTCCCCCAAGTCAAACCGTTCGATGTTGTAGAAAT -GGAGATAATTCCGCTGCATTACGGAGCACAAGTTGGGATTTATGACGAGG -ATCATGAGGTTGGTAGATTTTAATTTGTTTTTTAAATCGTGGCCTAGCAC -ATTCTAGGCCACAGGTAGTGACGTCACTCTGAACATTTTCAATATATGTA -AATTTTAAATTCAAACTACTTAAAACTCGGAAATCACTTTTTCCGTCAGA -TACACAGAAATAAACTAGTTTTACCTTTTAAAAAACTAAAACCATTGAAC -TTTTCACAAATGTTCTTTGAAACTTGAGATAATCTGCAAATCCCAAACTA -TTAAAAACTGAAAAAGGTAGCCTAGAAAATGAAAATTTTCAATAGTTTTT -TCAAGTTCAAAGAAAAAAAATTGAATTTTTAAATTGTTTTTTTTCGCTAC -AAGTCAAAATTATATTATATTTATTAGTTTTTTTCAATTTAAGAACATTA -CTAAAATTAGTGCATATTTAAAAAAAATGTTTGTTTCGGAGAAAACAACT -ATTAGTAATTGCACTGCAATCATCAGATTAGTGAGGAATTTAGTTCTATT -TTTTTCTTTTTTTTCTGTTTCAAAGTCGTTTTTTCATGAAAAATAGACCT -TCGAGCTACTGGTTTTTTGAGAAATATTATTTCAATTTTCAATTTCATGA -TGAACAACATTTTTGGTAACACATTTAATTCTAGTAGAATATTATCCACT -TTTTCTCTAATTTTTCAAAATTTATTCCTAAGTTTTTCTGATCAATGAAG -AACTACCTTTTTACGACAATATTGCCTTCAATTTTTTCTCTCTGAAAATT -CGAAATTTATCTGAATCAATGGTGCCGGTTTTCTTATTTCTGAATAACGA -AATAGATTTTTTATTTATTTTTCAACAATTCCCGGAAATTTCTCTATTGT -TAAAAACAAATGAAGTGAAAATCGATTTTTTTACTTCGAAAGTTTAACAT -GAAATTCGATAAATTTAATCTATGATCTTTCAAGCTCCGCGAGTTTGAGG -CGGGATGTTGATAATTAGAGATATGCCGGGGGAGAACACTACTCTCCAAT -TATATTTCGGTTGCTCGAGAAATATTTTTAATGATAAATACTGGATACTA -GATTCTATAGAAAACTAATTTATTTCAATAAATTTATTATTATTCAGGAG -AATTATATTTTCTTGCTCGAAAGAAAATAAATAATCAAAAACCGACGCAT -TTTCCTGAATTTATAGTTATTCAGAAGAATATAGATTTTTATTTTCAAAT -TCTGAGAATTCAGAAAACATGGCTATTTGCCGGCCTAGAAAATAGAACAA -CTAGGCCACCGATCATTTTTGTTTTGCCGTTGTCAGGCTTCTGGCCTAAC -TTTCTCTATCTTAAAAGATTCCCAAATTCAAACTACTGGCTTTCCAAAAC -CTTCAAATTGTGGAATGAACTTGTGATTCCAAAGATCTGATGTCAAGAAT -TCAGTCCATAGTTCATATACTCCAACAACACTTTTGGAATTTTAAATCTT -CATGGTTTTCAAAAAGAATCCACCAAATTATTTAGCAACGGGGTTTTCCC -TTCTAAACAATTGTGTGACACAAATCATAATCTCCGTCACTTTGTACAAT -TTTTCTAGTTTTGGTGATTTCCCCTCATGAGCTCAACGCGGCGGAGTAGA -TCTTCCATGCAGGCGTTAAAACGCCTGCCTGCCTGACTTTAAGGCGGCCT -CCGCCTGCCTAACGCTTCAGTCCTAGTCTTGTGCTAAACCATACATGAAC -TATTTTTCTAATTCTTAATTTGGTTCTCATAAAATTGATAAAAATTAGGA -AAATTTGAAATCTGAAATTTCAAGTAAAAATGGGCGGCAAACTTTGTATA -AAAAAAAAAAGAAAGCTCGGCCACCAATTTTTCAAAGTTTCTTACCGCTC -TCTGTCTTGCCTCGGGCAAGCCCTAAAACTTTAGAAAACATCCCCGAACA -AAAAAGTAATAAATCCTTCAAATGTGGGAGATGCCCCGTGTATATGTCAC -CTGTCGACTCGTCGAAAACGTTTGTGCCACCCGGCTCTTTACCTCGTCTC -CTCTTACTCATCATTTTACTGCCCCCGTTGCTTTCCGGCTAATGAGGTTC -TTAGGGCGTAGGACGCCATTGATTTGTGCTCTTTTCAGGCAAAATTTTAG -ATTTTATTTCTCTGATTTCACTCAATTATCAGACAATCTAAGTTTTTTGA -CATGTTCAATGCTGGAAGCAATTTTCGATTTTTTTATCGACCATGGCCTA -AAATTACGGGTCAATTTCCTGAAACGGACGAACATTTTTGAAAGCAAAAC -AGTTTGTAGAGTTTCGCTAAAATTTCTGATTTTTATCGAAAAAATCGGGC -ACACCAAACAAAAGTTCGTTTGTGTCAGGACCTTGACGGTACGCAATTTT -CGGACAAACCACGTGTGGCTGATTCAAAAATGTCAACTAAATTGACATCT -TGAAAACATTTTTTTCACCTGAAAACCACTAACAGTGTCAGGTTAATCCG -ATTCAAGCGCTATTTTTATGAACTTTCCTGAAAGTTTAATTCCACACGTT -GTGAGGGAATTTGACACATTTTTAGAAAACCTGATCTCACGGTTAATTTT -TAAACACTTCGAGGGCCCAGAAATCCTAGTTTTTTTTCTGGTTATTCATA -GTTTTTCTAGAATTTAATTTCACATCTACATTTCTAAACAAAACTTTTGA -AGGTCCTTGTAATTCTTCTCTAGTTTTTTATTGTCAAATTAAGTTTTCTC -CAAATTAGGAAGAAGCGATAATTGCGGGTTTTGTGAGGGAAGTTTGTCGT -CGGTCCATTTGTTTTGAAATGAGAATCGGAACGATTTCCTGTCTCCCGTA -GAAACCAATTAAACGAAAACTTTTTTTTTTCATTTCGTTCATTTTGCATG -CTTGCTAGCCTCGTCTATTGGAATTCTTTTGTACTATGATTCTATTCTAG -TTGTGTCTGCATTAAAAAAATCGATTTTTTTGTTGAGTATATTTATTTTT -CAAACAAGCCGAAAAAATAGATCAAAACTGAAAATTTTATAAGAAAAATT -TCAGTTTAAATCTAGTTTTTTTTTCAATTGGCCAACTTATAATTTATATA -TACTCTCAAAATCAAAAAAAAATGCACATTCTATATTACCCACAAACATC -GAAAATCCGCTATTCCCTCAATTATAAAAAATGTGAGAAAATCCTCGATT -CTTGGTTGCTATGAGACAGATTTCAGATTTTTCACCGGATAAACAAGACG -TTATCATTACTTTTCAGTAATGCGCGTTTATTTTTCTATTCCATTTTTCG -AATTTTGAGATGTTGTATTATTTAGAGAGCACGAAATTCTAAGAATGCGT -ATTGCGCAACATATTTGAGGCACAAAATATCTCACAGCGAAAACTACAGT -AATCCTTTAAATGGCTACTGTAGCGCTTGTGTCGATTTATGTAAATCATA -TATTCGTCGATATAATATTGAGCGAAAATTAAGAAAATAATACGAAAAGC -GAAAAATTAATATCGAAAATCGAGATTCCGTAAATCGACACAAGCGCTAC -AGTAGTCATGTAAAGAATTACTGTAGTTTTTGCTACGAGATATTTTGCGC -GTCTAATATGTTGTGCAATACGCATTCTTAGAGTTTTGTGCCTCCCGTAA -TATTATGTACAATGCGTATTTCCTCTGCATGCAAGACTAATTTCCGATTG -GTCTGTAGAGGTGCAGTTGGCTGGCTGACTTTTAATACTTATGTTCCTTT -AAATTTTCAAGTACGATTAGGAACCCTTTCTCTCAGAATTTCACTAGTGT -ACCTTAATGTTTGTCTTTTGCTACCTGAGACGATCATCAAGTCTTTTCTT -TTGTTTGTATTAGATTTCGCAGTAAAATTGTGAAAAAAATTGCAAAAAAT -TGAGAGCAAGAGCAGAAATGTGCACTTCTCGTTGTACCACGATTTTTCGT -TTTCCCACTAAATACCTATACGTATAGGATTATCCAAAGATGATCCCGGG -GATCACCAGTTCTTAGTTTCCTTATCAATTTTATATTACTCGTATGCCTT -CCTCGTTTTTTTTTCTAAAGCCATGAAAATCATAGGTATCGCCTCAGCGG -GTCGTAGAAGGAGCACAATGTACTCGAGCTCGTCACGAAGACCGTTTCGA -CGGCTGGTTCCGCTTAAAATGGTTAGAGAACTGGGTCTTGATGCGATCCT -AACAAATTTTTTGAATCTCTAAATAGTCCCTATAGATCATGTAATAATAT -AGGTTGAACGTTTTACAGAATAAAGTTTTACAATAAACTTTATAGCATGG -GTGTGTGGCAAATTTGCCGGACTTGCCGTTTTCCGAGATCGGCAAATTTG -CCGAGTTTGCTGCACACATGAAAAATTTTTAATTAAGATTTTGTGCAAAA -ACTAATGTAGCCCCTGGTTTACACCTTTTTACGATATTCTGAGTACATTC -GAAAAGGATGTTTTAAATAGATTGAATATCAAATCAAAAAAGAAAGTTGC -ATGAGTATTATATCTAAAAACTTTTAAAGAACACATTTTCAGGCACAAGG -CCGAACGGCAACCGACTACGCGGGTCAGGACTACGATGAATGTTATGATA -GGTTAGTTTCTTTTTCTATTATTTCATTCAGAATATTACGAATTAATGCT -TAAAAAATTTTCAAATTAATTTTCAAATCAACCGCCTTAGCTCCACCCAG -CTCTCTAGATCGCAACCCGCAATAAAGCCCATAAATCAGTGGGCAGCTGC -TGCTGCTCCGTAGTGGATCAGTCTGTCGTCTCTCCGATCAGTGCGCTCTC -GATGATACTCTCACATTTGACCTTTCTCGCTTTTTGTAAACTATGTGCTG -GACACGTTGAAAGTAGTATCAATTGCACTTTTCTGGGTAGTTACCGATAA -AATTGCCCAGATGGAAGAGTTTTCCATAACAATTTCTCTTCCATTTTCAT -CTATCAGCTCTGTGGCCCCGCTCATTAGTGTTTCTCTAGCCGATGCTGTT -CCAGGTTCCCATGGCAATGTGTACATGTGTGCCTAAAGTGAGCCAAAATG -CTCTTTGAATTATTCATTCATCCTATGTTTTTTATTCGTCCTCACGTGAC -CTGCACCACACTGCGCATTAAATATTAATTGGCACTGAAGAGAGCCGCCG -CTCGGGCAAATGTTTAAATTTTAAATTTAATTGATTTATACATATTTGAA -AAATGAGACACTATGTTATTTTCGCCGAATTCGTTCTCTGAGCATTGCGT -TCATATCTTTGCACCTATATGAACAATTAAAATAATTTGTGTGTCCGGTA -ACGAAAAACCCGAAATAAGTCTTGCCTATACAGGAGTTTGTGGAAAGTTT -TCAAAATTTTTAATGCAAACAACGAAGGAAATTGGAGACGTAATACGATC -ACTAGCAATCTGAATTTCTACTTTCAAAACGTTTTTTTCATAAGAAACTC -CATTATCCAAAATCCGGCCACCTTGCTAATCCTGAGTCCATAATAGGCAT -TGCTAAGGCAAATCTAGGGCTTTTGGCCGATAAAAGACTTTTTGATAATA -ATTTCCAAGCTTAAACCTTATTCATATTACTTTTAGTAATCCTATAAGTT -TTGTTTGCAGTGGTTCAGAATTGCCGAACATTCCAAGTTTTTTGATAAAG -GTTTTACATATATGTTGAGCTTAAAAAATAAACTCAAAAAAATTAACAAT -TAGTTCATACGTTATTAATTTCAACGAGTTTTAGTGTAAATATATATGTG -GTCCTCTATATATTTTCCGTATTATTATTATTATTGATTCGCTCCAAAGC -TTTAATTTCAGTCTCAAGACTATACTGCTCAACTGTGTTTATAGTAGTAT -TTTCAAACGAACAAAAAGTGACAATACAGTATACTTTAAACTAAAAAAAA -CTTTGTCGATGAAAGTCTATCGATCAAACTAGCGAAATCCGCCCGTTTAA -TCCGTTTTCCCGCCACCATCACTTATTGTGTTTTCATAGAGCTTTATTTG -ACGGAATTTCCTTTCTTCTGATTTTTCATATTTAACCAAAACTTACTTGA -AAGAATCTTAAAAGGGATTTTTACAACTCTCTGGATCAGATTTTTCGAAT -TGTTTCATTCGCAAAAGAAGAGCGACTCACTGCTATAAATGCAACATTCA -CCACACTATCTCCACAATTTCATCTATTAATTCATACAATGACACTACAA -TAATCCCCACTTGCTCAGAATTTGTCTCTCCCGCGGGGGACAAATTGGAA -TCAATCATTCTGTCGGTCGACCATTGAACCACCACCACACAATATGGTTC -AGCGGGGGGAGGTCCAGTTTTATTGTTATTACGTATACTGCTAGGGGAAC -CCAATTTTCGGACCCCGCGCGGAATATTCAAATTGGAAAGAGTGTGTGTG -CAAAAACTTTGTCCATCTTGTGTCCAGCAGACCAGCCAGCAGCTTCTCAA -TTTCCGCTTCAACTTTCTCCACTTTCCCATGGGACAAACCTTTTGTCTTT -CTTCTGGCTTCTCCTCTTACTTCTTATTCTTCTTCGTTGCCCAAATTGTG -CTGGAAGAACTAGAGATGCTGAAAAGAAATAGGAAAAGAGCACGAAGACA -ATATTTATGTTTTGTTTTCCATGGTTCGCCTCGAGTATTTGATTAGGCTT -CTCCTTGTTGTCTTCACTCGACGTCGTGTTCTCTATTTTATGTCCACTCT -TGAATTCCTGGAGTTTTCAGTGCACGCATTTGTTGAGCTGTAAGAAAGCT -GCAGGAGTTTCCCAGAATTTGATCGATTTACGGAGCGGAGTGTCGTACTA -CTTATTTCCGGATTATAAAATTCTGAGAATGCGTATTGCACACCATATTT -GACGCGCAAATTATCTCATAGCGAAAACTACAGTAATTTTTACGTTTCGA -GAATCGAGCCCCCCTAAATCTACACAAGAGCTACAGTAGTAATTTAAAGA -ATTACATTTCCGAACCTTTCTCATTTTTCAACAATTTTTTAACTTGCCTA -GCGTAGCCGAAAATTAGCGGTAATCGCTTCAAGACCCAAAACAAGCCAAT -TTCATCAAATTTCAAGTAGAATTTTGTGAAAACAACCGTCACTACCATTC -TGATGACCCTTTACTTCGACCGCCCAGTTCGTTAAACATTTTTGAATTTT -GTTCACCTGTCTGCCACCACATATCTTTCTTCATCAAAATTCAACGTGCT -GCGATCATCATCTTCATCTCTGTCTCTTCATCTCGCCCAAATTCATTTCC -GTCACTGCGTCTCGTACTGATTTTTTTTCATTTGTCTCCAATCATTTAGA -GGCCAAAAGACCTCCTCTCAATTTTTTTCTGTCTGTCATTGACCCCTCAG -TTGCGAACCGATTCAGAGTTTACATAAACAAGCTCGCTTTGTATATAATG -TTGAGTGAGCGAGAGAGTGAAAGAGAGAAGACGCAGGAAGCTAAGCGTTT -CCTTTGTTTCAAGCTCTGTCAAATTGTCAATTTTCTAGCTAGAAGATTCT -TATGAAGTTTTGAACATTCTAGATTTAGTTTGTTACCTACAACAGGTGAA -TTTGTCTTTCTTGTCCAGAGATAAAACTTATCGTGGCCTTTTCCGAAATA -GTATCAGATTTCCTTTGTACAAGGGCTTTCGTGAGGCGGTAAATCGCCTG -CCTGACTTTAAGGTGACCTCCGCCTGCCTCTCGCCTCAATACGTTATGCT -AAAACAAACGTGAACTTTTAAAAAAATTTAATTTTCAACAAATTGATAAA -AATTTAAAAAATTTGAAATTTACCTGCCTACCATAGAAGCCCTACCTTGT -TCCACTATTGATGCGATTCATTCTATTACAAATCAATGTAACGAACTCCG -AAGTTTGATAGCCCGAGGCGTTTTCCTTGTTAATTTGATATCGATTATCA -GTTTGACCAACCAAACACCATCGATTTGGCTTGATTTTCAAGGAATTTAT -AGAATTTCGTAGAGTTTTGGACTATGTTTTGCATTTACGTTGAATGGAGA -GAATTATATTTGAATAATTGAATAACTTGTTAATGGTTCAAGGATTACCC -GTTCCGAAGTCTAGAAATGCCCTGGCGATGCTCCCGTCGAGAACTGTAAC -CGATAATCAATCAATATTGCGGGTATTAATTGGCTAATATTCATAATCCT -GAAAAGTTATTTGAATAACGGCAAACTCCCAAGAAACATACCATTTCCGA -GGTGTATGAGAATTTTAACAAGACCTTAGGGTACATAAGCCTATCAGTTT -GAAAAACAATGTCGGAATTTGTGCTTCCATGGTAGACAGGCGCGGTTTCA -GGGTCTGAAGCTTGCCTGAAGGCCAGGCAGACAGGCGTTTTAATTCCTAC -ATGGAAGCCCTAGAATACAGCATATACGGTACCTAAGCCAATTATCAAAT -TTTACTTTTAAAAATTCATTCCACAGGTGTTCCTGTTCTGCTGCATCATC -GTCACACAGACACTTACACGCGCCTTTTCACTTCTCATTTCCCACTTTTT -CTTCGTTTTTCTCGCTTTTTCTTCTTCTCGACACGAAGAAGTAGGATAGA -TCTAGAGACGTCGAAAGCCATAATTGTTTCCGTCGGCGTCTCCACGCGCA -CTCGTACTGTCTACAAGTGCCACACACACACTTGAAGAAAATAGAGAGAG -GTGCAGGAGGAAAAGGAGGGGACGACTTCTGAAAGTGTCGATAACTACCT -CCTATTTGAGTAAAGAGTGCAAGAAATATATGTGCGTGTGTGTCTAATGA -GAGGGTCTTGGAGCGATTTTTAAGCATGTACAGGCATGAATCAGGCGGCA -GGTTCCAGCCAGGCTCTGAAACCGCGCCTGCATACCAGGGAAACCCAACG -ATGGTTTTTCTTTGCCCGGTTGATCCCTTTCTTGGATAGTTTTAGTCTTC -GTCCGTTTTTCATTCATACTCTTTTTGTAACTGTTCAAAAGTCTAGTTTC -ATATAATCAGAAATTCGAGAAAAAGGATTTTTCGAGGCTCTGAAAAAAGA -TCCCAGAAGATTGTGTCTAATTCTAATTCTCTACAGAAAATGCCCAAATC -GAAAATTTTTCGACAGATCCTCGTATTTCGAAATTCTGGAACATTCGGCA -AAGCTGAAAATGTCACAACTTGCCAAAATGAACATTTTCGGCAAATCGGC -CAATAGCTGTATTTTTCAAACTTTCGGTAAACCGGCAGTTCGCCAAAAAA -AATTCGGCCATGGTCTAGACTCTAGAGTTGGGCGGCAGACAATTATTTCG -GGCAAACGCAAAAATTAAAAATGGAAATTGGTGTTCGGCAAATCGACAAT -TCGCCGGAATTGAGAGTTTCCTGCAAATTCGGCAAACCGGCAATTTGCCG -AAGGGCAACTTCTCCGAACTGACACCCCTTCCAAAAATCCGAAATTTTTT -TAGCTTCACCCCCTTCCCTCCCTTCTCGTTTTCTAAAAACCGGACACACC -TCTTACAATTATTACAAACACCACTACGTACGTATTAAACGTCTCTCGTA -ATAAGTGGGGCGCCAAAATATAATGGTTTTTGTTGTGTTTAGTTAGCCTC -CTCCTCTCTACTTCTCCACCATCATCAAATCTACCACCACAATAACATTA -ATTCGATCATCAACTGACTACTTTTGTCTTTCAATGTGGATTTGTAGTTG -TTGGTTATTTGAATTCTTAACTATATATCCATCCCTATGTTGAAAATTTG -AAATTTTTGGTAAATTTGAAAGATACCAAGTTTATGTATATTATAATATA -TTATAAAAATTTCCGGTAAATTGATATCCTGCAAACGGCAAACCGACAAT -TTGCCGGAATTGAAAATTTCCGGCAAACCGCAATTTGCCGATAATAAATT -TGCCTTTATTGATTCTAGGTTTCGAAAAATTACGTGTTCCGTTTTTTTTT -TGAATATTAAAATAGGAATATCAGAATTTTTTATTTTTTATTCTGCAACT -TTTCAAATTATGTTCAAATTTATTATAAAACTATCGTAAGTGTGAATTTG -CAATTAATTTTCTTATTGCTAGGTATCAGTTTTACTAGGGCTGTCATGTA -TGTACCAAAACGCCTACCGCGCCTTCTGTCTAGTGCGGTGCGGAACCCGA -AAAGTGTCGGAATCATCTTTCGCAGTATGTGGTGCTGAAACCAAGCCTTT -GAGTTCTCGCCATAGTGCGGCGAGAGGCCGGCATGAGGCGGGCAGGTAGG -AGGCAGGCTTCAGGAACTGTGTCGCGTCTGCCTCCCAATCCCAGAATACT -TTTTTTTTCAAAAAGTTGCAATGGAAATCAGATTTTCAAACGCAACCTGT -CTTCCTCTTGTACTCAACTTTTACTTGATGATAGTCGATAAAGGTGTGAA -CGCGGTGAGGTGTAACCGTGTGACAATACATCATTGTATTATTCTTTTTC -GCAAAAAAAAAACATTCTTTTGGGTATTATATTCTACCAATGTATCTTTC -ATTTTCTCGATTGATTTTTTCTCCGGCGAAAAGAAAACAAATTGAAAAAA -AACGTCAAAACATAAACATTTGGAAAATATAAAGGTGGATATAAAAACGG -TTTCTTTCTTCTGGAACATTCATTTTTAACCATTTTCCTACATATTTTCA -CGCTAAGCCGGAGCAAAACAGAGACAGTCGAGACTGTCAAAACATGTAAA -ATATACGTTTTTTGGTATACCTATTTATTAACAGGTGCTCCCTTTTCTCT -AAAAGTTTAAATTTGTCGCGAAAAAATGCAAGAAATGTTTTTTTTCTAAA -AACTAAAAACTCGATCAAAAATAATAATTGGGTATTTAAATATTCCGGAA -TCTCCATTTTCTTCCCGTTCCTGCCCTTCCATTTTTTTCTTCCTGCACTT -ACTCGAGTATTCATCCTCTTCTACTGCTGCCATAAAAGGTCTTCCGCTTC -ACTGAAGCCTTCTGCACAGCAGCGTATCCTCCCGCTTCATATCTCGTTGC -TGAACTCCATATAGCTTGTTATAGCTCAGTTTTAGACGGATTTAGGTTCG -AATTTCTGTAGGGTCTCTAGGAGTACTGTAATAAGTGATGTGTCAAAAAT -TTGGCCTAAACTGTCATTGCTATAGATTACGGTGATAGAAATTTGAATAT -GTATGAAATAGTGAAAAATCAGTAGACTGAGCCTTACTCAAATTCACATC -CGTTCGAGATATTTCTGAGTTCTGAATTTCTGTTGATTGCAATTGCCGTA -ACTTATAGCAAGGAAAGAACAATTTGAAGCCGAATTTACGGCACAAAATT -AGTTTTGGTGCTTCTAGAGCCTATTTTATAAAATATATACTTGACACGTG -GCTTTTCAATATCACCATCTCAAGAAATTACCACAATCGTTTCAGGTGCG -AACAAGAGTGTGGCGAGGAGGCGTGGCGAATCGCGTGCTGCTCACGAGTC -GGGAAGATCGCCATCCTTGTCATGTCAATCATTGTATTATATCTTATCAT -ATCAGGTTGGTTTAAATACATATTATTCAAATTTATCTGAGTTTACACAA -TGAATTTTCAGCATTAACGCCCTCCGAAAGCACACACAAGACGGACCTCA -ACGAGCCGCGGCCTGGTATTAATTTAACAAGGTGAGAATGTTGGGAACAT -ATTACTATTGTAGGAAATTGCTCGATAATTCCACACTTATTGAGTTCACA -ATTAATTTCTACTATATTAACTGTGTTTTTGGTAAAGAAGTATCACTTTT -TCCCCTCCCAACTCCGATAATTCGGCATTCCTAGAGTTTTAACACAATGT -TTTACGACATACTTATGAAGAGTTGATGCAAATCGCAAAAAAAAAACAGA -AAAATAACTATTTTATGAATAGTATCATTATCGTATGGTGTCGTCAAAAT -GTTTTGTTGTTTTAGTTTTTTTTTACTCGAAATTTTCTGAAAACACCGAA -TTTCATATTGAATCAAATTTCTTGATAATTTATTAGACATTTCGATTTTA -CAGAGCCAATCAAGTACTCACCGGATTATGTGATGCCTATGAGCGAGGAG -ACGTTTCCGGAGACTCTTGTAATCGACTTTGCTATGATCGAAACTGGCTT -GTCACTGACTTTTACGAAGGGCACAAGACTGTGGTCATAGTGAAAGATGG -CGGACAGATTGCTGTCTATAAAAGCACAAAACCGTTTATGGATCAATTCG -ACGAGCCGAAAGACCATCTGACGGATGCAGAGTTCTCGGATCGAGTAGTC -GATATGGTGAATGATGAGCTGAGACTCGGATGGCCGAAACACTATCGACG -GCATTTAATGGAGACTGTGTGGCCGACACTGTTACGGACCAAGGGAGAAG -CCATGTCGAAAGCGGATCGACGATCCTTGTGGGCTTTGTTAAAGCAGCCT -GAATTCATCCTGTTCCGAGTGTTACCGTTGACACGTGTCACGCCGAAGCT -CATTGGGACGTGTGGACATATGTATCAGACTGAGTCACTGGTGGCGTTCA -AGATGAAAGGGTATTATACGAATTTGAAGGTGGGGATTTTTTTTTAACTT -GATTTTAAAAAAAAAATTTTCTCAATCCAAATTTACAGGCAAAAATCTTG -GTGCATGTCATGGGAACCCTGAAGCTCTTATACGAATTTCTCGACGAACC -CCTTCAATGGTGTGATGTTCGATTTGATAATCTCGGGTTATCAGCAGATT -ATCCGAAAAGGTAGGTCTGCCTGTTTTTTTATTTGATTTTTTTTTCCGAA -AAAATCTACATTTTCAATTATTCGAAACGTAATTCGAATAAAAGTTATTA -ATGATTTTTTAAACAAAAAAATTGATGATAATCCAACCGGAAACTCAAAT -TTTGAAAACCCCTAAAAATCCAAATTTCTCAATTTTTCTGCAGATTCGCT -CTAATGGACGGTGACATGGTGTACACGAAATCGAAATTGGATTCTCTCCT -AAAAGGACGTCCGTGTGAAAGTGATAATGATTGTAAAATTGGAGACTGTG -AGGCGAGATGCACTTCTAATATGGTGTGCTCGTCGAGGAGTAACGGGAAT -TTGGAGGTAAGCTTGAAAGTTGAAAAAGTTTGGAAAAATTGTGAAAAATC -AATAAAATCGGCAAAAAACGAGCTTTTTTCCAGATGGCCGAATTTTTCAT -AGTTTGCAAAAGTTCGTCCACCTGTGAAAAATTGCTAAAAAAGCAACAGC -ATTGATGAATATTCATAAAAAACCAATAAATTCGACAAAAACCTTTTTGA -TTTTTCCAAAAATCGAAAATCACATTCTGATGTTCAAATTGAATTTTCAA -AAAAAATATAGAAATTTCCTAAAAGTTTTAATTCTCAAAAAACGAACGAC -TGACAAAAAATTTTTAAAAAAGTGAATTTTCCGAATTTTTTCTAAAGAAA -AACTGAAAATTTGAGAATTTTCAGTCAGAAATGTGATTTTTTTTTTGATT -GAAAGGAGTTTATTTTGTAGAATTTAACTTCCACTATCAGAAAAAAATTT -ACCTATTTACTTTGTAATAGGAAAAAAGTTGTGAAATTGTTAGGAAAATT -TTTTTCAACTTTACAATTTCCCGGACAGGCCTGTAGTTCCTTTTTTTCAA -AACGTAAAAGAAAAAATTAATTAAAAAGTTCAAACTCCTAGAATTTATAC -ATTTATTTTGCATTCTAAAAAACAAAGTTTTTCTTGATTTTTTTGTGTAA -AAATTGAAAAAAAATCCAAATTTTGTAGGTCTTCTGCGATAAACTGGTCA -ACAAACTGTTCGCAAATCAATGGTCCAAAAATAATAAATATTTGGTCGCA -TGCCGGGATACAGGACGAAATATCACAACTCGACTCAACGAATTACGGTT -AACATGGTCATGGAATCTGCCGGATGTTTAAAGGAATCTAGCTCAATTCT -TTCTTTTTTTTTCTTCTACTCCATGTGTCAAAAAATCCCCGTGTCTTATA -ATTTTCTGGTGCTTTTTTCCATATTTTCCTTTTTTTGTGTTCTGGCTCAT -TTTTCCATGGCTCACAGAGCCCGAAAGCTTAGGATTTTGAAATTTTATTC -GTTTTTTTCTCATAATTCTGTCATCATTTTTTGCTCTGCATCATCATCAT -CATCGTCAACATCATCGCGTTTTATTATGGGTTCATGTATTATTACACTT -TCCTCGAAAAAAAATTTTGACGAACGTGTAATATGTTTCACCTTGTCTCA -TTTGTACCTCGTTCATTGTTACGGGTTTGAAGTTTTAAAACTCTGAATTT -ATATGAAGAATTTTAATTTAAAAAAAAACTTTGTTTCCTTTTTTGAATTT -TTACAGACAAATTTTTGGCTTGAAAACTGAAAAACCCTGACTAAACTTAC -TATTTATGTGTTGGGTATCAACGTGTATTGACCCACGACGTGGCTAAGAA -GATCGTACAACGTGAACTCTATGAACTAACTTATTTATTCCTTAGTTTAG -TAATGTAATAAACTACTCGTCTTCTCCTCCTCGTCTCGCCTTCGAATACA -CAACATTATGAAAAGAGTTTTTCTTAAGATAAAAAATGTTCTAAAAAATC -GATGGCCGAGTTTCCTATTTACGCGGCCACAAGACCAGTAAAAAAGTGTT -AACACAAGTGCGAAAACTAGAACATTTATTTTCAAATTTCACCCGATTTC -TACAAAAAATCAACAAAAAAGTCACAAAATTTAAAATATGAACATAATAA -TCAATATCCCGCTGGCGCTGACTCCTCCCCTTTTCGGAAATCACTGTTCG -CATAGATTTGGCCGTCGGAAAGTCGTTCGGCGGCGGTGACAACTGTCAAA -TTGTTCACTGCCTTCATTACGTGACCACGATCGATCAGGGATTTCACGTA -GGCTTTCGGGAAGTTTGGCTCGTACCACGTGTAATTTGGCTAAAAAATAA -GGAAATTGGGAAAGGTTTTGATTTTATTGATTGAAAAATATTTCATGTGA -AAGTCGAAAATTGATTGAAAATTAAATTCAGAAGTTTTTTTTCTGAAAAT -TATTGATTTTTATTTTTAAAAAATCAACTTTTTGACAATTATCGATTTTT -CCAACAAAAAAAAAATCAAATTTCGCGTGTAATTCTCTACCTGTAACTGA -TTGTGCATCCTTGGAGCATCAACAGCTTGTTTAACATCTGCTTTCAGCCA -TAACGCATGCAGTGCAACTCCAGCAACACCCGAAATAATGGTGGATCCAC -CGGCTCCGCCGACCGCCATAAGCTCCGCCCCTTTTGTGTTAAAGATCACT -AATGGACTTTGACTACTCATGGGGCGTTTTCCAGGGCGAATGAAATTGGC -GGGAGACGGTGGGAAACCGAAGAAATTCGGATGACCGGGAGTGGAAAAGT -CGTCCATTTCGTTATTCCAGAGAATTCCCGTCGATTCGGAGGATACTAGG -GCACCCAGGCTGGAAGAATTTGAGATGGTGGAAGAGTTTTTTTGGCGGTG -GCCTAGAAAATGTCTTCATATCCGAAAAAGTCAAAGTGATGGCCTAGAAA -TTTAAGTTTGTGGCCTATAAACTTGAACTGATGGCCTAAAAATTGAACGT -CGTCCTAAAAATGTTTTTAACTGATGGCCTAGAATTGAAAGGTGATGGCC -TCCAAATTTCAGGTGGGCGTATATAAACTTTGGTTGATGGTCTAGAAATT -ATACACGTGGCCCAGATTATGAAATCACTTCGGTATAAAATCCAGGTGGT -AAACAATTTACTATTAAGACTGCCTAAAATCATCCCCTGGCCTAATTAGT -TTAAAATTTTTGGTGACGACCTCGAACTTGTTCATTTTTATCAACTGCAG -TTGCTTGTCGACTGAGGACTAACTTCTCACTTGCTGGCCGAGTTTTCGAA -GTTCGGCCACCAAAAATTTCCTTTAAAAAAGCCAAACTCACTATAAGTTA -ATGGTAGACGTAACCGAAACTGCATTGCCGTCTGCATCGATAATCGATAC -ATGAGTTGTTCCATGATCCTGCGGTGGTGCTTCAAACGATCCTCCATAGT -AATCATCAGGATGCGTCGTGTCTGTGATCTTCGACCTAACCCAATCCGCC -CACTCTTTTGACGTAATATTTTTGGCGATTTCCGTGGCGTTTGCCACGAA -TTGCGGGTCGCCAAGCCAGCTTCTAGCCGCATAACTAAATTTGCTAGATT -CCAGAAAATGATGGTATAACGTTGCGATTTCGTTGAACGACTTCATGTTA -TATTCGAAGCCATCCATCACGTTAAGTATTGCCTGAGCCACCGCTGAGCC -CGAGGGAGGCGGCGGGCCGCAGACTCCGCGCCCGTTTTTCAGCTTTGTGT -AGATCACATTTTTTGAGTCGTGGACTATTGATTTGTAATTTTTAAAGTCC -TGAAGCCGGATGATCCCACCGTTGGCTTCGAACTCTTTGGCGAGTTGCTC -GGCGAGCCGACCTGTATAAAAGTCGGCGATGGGATCTGTGGAGTTTGCGA -GTAGCCGGAATGTTTCTAGAAGGTTTTGGCGGGTTTTTATCTGCTCTCCT -GGTTGGAAGACACGCTGAGTTTCGGGGTTGATGAAGTTTTTCATGGTGGG -CTCCGCGCGGATTTGGTGCTCGTTTTGGTTGAGAGCTTTTGCAAGGGCAT -GGGACGTTGGGTAGCCTGGAATTTTTTAGGATGGCCTAGAAACATGAACC -GATAACATAGTTACTTATTTTGTGACCTCGAAATTTTCATGATGGCTTAG -AAATTTTTATGATGGCCTAGAATTTTTATGGTGACCTAGAAATTTTTTGA -TGGTCTAGAAATTTTTAGTAATGTAATAAACTACTCGTCTTCTCCTCCTG -AAAAAATTTGGGCCCGTCTCCCTTCGTGGTGAGACCCATCGTGGCGAGAC -CCATCGTGGCGAGACCCATCGTGACGAGACCCATCGTGACGAGGCCTATC -GTGGTGAGACCCATCGTGGCGAGACCCTCCGTTGAGAGACCCATCGTGAT -GAGACCCATCGTGGTGAGACACGCCGTGGTGAGACTTATTGTGATACCCA -TCTTAACGTACACAGTAATTGGAGAAACTTTTAAACTGATTTTTACAAAA -AGTTCAACATTTAACTTACCAAGAGCTCAATATTCCGTTGCCTCGCTTTT -TGTTGCCCTCAGGGATTATTGTTCTGTTGCCTCCATTTCCGTTACCCCTG -TTGTGTTGCCTTCGAGCAGCGTTGAATCCGTTGCCCCCCCCCTTTTTCGT -TGTCCCCGGGGAATATTAAATCCGTTGCCCCCGTTATCCGTTACCCCTAG -GGATTGTTGGCCGGTCTAAAAACGGCCACCAGAAAAGTTTTTGAGCATCA -AAAATGTTCTACGCCGTTAGGAGTTTTTTAGGCCAACAGAAATATTCTAG -GCTCGCAGAAAAAGTGCCCACCTTCAGCCAACAAATCAATAGTTGGTTTC -AACAACTGTCTCCACTCGACTTTTCCACTTCCGAATCTCTCGAATTCAGT -CCGGAGGCCGTGAAGCTCTCCGGGCACCGCAATCGCCTTCCATCCGATTC -TCGACTGATTCCATTTGTCACGGTACATTTCCTCTGTTGCGGCGAGCGGA -GCAATCTCCCGAGCATCGATTACCGTACACTCTTTTGTCGTTCTGGAAGA -ATTTTAGAGGTTTCTAAGTCATTGAAAATATTTTTAGGCCACGGCAGAAG -TTTAAAGGCCACACGCGCTTCTGGCTTTCCTCATATTTTGAAATGGAAGA -GTTTGCCGAGTTAGCCCGTTTGGACTAGGCCACGACCGGGGTAAATTTAC -GGAGCGTCGTGTAGACGATTGTCAATGGAGCGCGAGAAAAACGCTTTGAC -GAAGGCCAGAAACCAGTGAGGCCACAATGTGATGTTTGCAAAAATGTTTT -TAATGGCCTAGGAAAATCATTCTTTCTTCCAAAATTTTTCTTCTTTGTTT -TCCTTTTCGATTATTGATTTTTAGTTGAAAAATCAATATTAATAATTATC -TTTTTTTTTAATTATTGATGTTCCGCTCCAATTCGTGGCGAGACCAACAA -CTCACGCATTATAAATAGTCATAAAATGTCCGCCGCCAATTCCGGCCGAA -TGTGTATCCATTACACCGATACAGAAAAGTGCGGCGATTGCCGAATCCAC -CGCATTTCCGCCTTTCAGCAAAATATTCCGACCGATTTCTGAGCAAATTT -CGTTGTCGGCGGCGACGGCGGCTTTCGAATATTTTCCGAGTGGAGAAAGT -GATGGTCCAGGCCAACGGGGTAGGCGGGCATTGTTCTGGAAACCTTGCCG -AGTTTTATTTTTATCGGCCACGTAGCAAATCGGCCAGCCATGAACCGACT -GCGGACTAGTTTTCACCCTCGTGGCCTAGCTTTCTAACAAACCTGCATTA -GTAAATGAAAATACAATGAAGCGAATGCGACCGTTGAGATTAACAACGTG -AATACGAGAACCGTTAAGCCGACCGCCGCGACTAAAGTACGGATTTTCAT -GGGTTGCTCGGCCTCGATAAGCGGCTCAACTTCATCAAATGGTCCATATT -CTGGCGGTAAATTATCATCGTCCGGAAACGTGTTATAGTATTGAACAGGA -GGTGGGTTACTGCTGAAAAGTCGAGTTTTGCGCGTCAAATTTGATGTATT -GAGTGGCATGATCACTATTATTACAAGACCGCGAAATTTTGAGAATGCGT -ATTGCACAACATTTTTGACGCGCAGAATATCTCGTAGCGAAAACTACAGT -AACTCTTTAAATCACTACGGTAAAGCTTGTGTCGATTTACGGGGTTTCGG -TTTTTTCATTTTTTTTGTGTTTTTTAAAAAACAATTTATCGACTAATGAA -TGATTTCCGTAAATCGACACAAACACTACAGTAGTCATTTAAAGAATTAT -TGTAGTTTTTGCTACGAGATATTTTGCGCGTCGAATATGTTGCGCAATAC -GCATTCTCAGAATTTTGTGTTGCCGTAATAATTCTGATTTAAAAATGGAA -TTTTCAAAAATCAGAGGTTTCCCAAAAATTTGAATATTCCACAAAAAAGA -TGAATCTGAAGAGTATTTTCAATTTTTTGAGAAAATAATCGATTTTCTGG -ATTAAAAAATTTGAATTTATAGATTTCTAGATTCTAAAATTTGAATTTGT -GCAATTTCAAACAAAAATGTATCGATTTTTATCGACTTTTCATAAAATTT -AATTTAATTTTCGAAATTCCGAAAATATTGCCCGTTTTTCATATACCAAA -AAAGTTGTATCAATTTTTTCAAAAAATTAAATTTTCATCGATAGTTGTTT -TCAAAGCATCATGATTTTTTTGAAAGAATTTGCAAATGTGAGAACTACAG -TACTCCCTTAAAGGCGCACGCTTGTTTTTATTTTTAAAAAATTGGTCGTT -TCGAGACCTGGTACCGTATTTTCGCATTTGGGTAATATTTCCAGCATTAT -AAATTTAAAAACAATGCACTTTTTAAATCTTGAATCCATATATATATTTT -TTTCAGAAACTCATGCCGCCTCGTTTGGGTCTCGATTCGAATTTTTTTCA -CAAACGTATAATATTTTCTCGAAAAACCCGCGAATTTTTAACATTATCGA -TTTTTCTCTCACCTCGTCGATTGCCCTTCAGGAGTCATTATTCAGAATTG -AGTATGAATTAAAAAATCATAGAAAAAGTCAAAGCGCTGTCAATTGGAAA -TTTAGGACGAGAATGTCAAAATTGCAACTTTTCACGATAACGGAATTCTA -TCGCAAAACTAGATAAGAGCTACAGTTTGCTGCGTGTAAGCGCGCTCCAA -TGACAAACGAGAAGAGAAGAGAAGAGGGGGTAACCGCCAATAGCTCTCTT -TATCGAGGATAGTCTTCAAGTGACAGAAGAGATATTCTGTGGTGGGAGAG -AGTTGGGTGGAAGGGGGAACAATGAGGACTACGGAAGAATGACTTTTAGA -TTTGGAGTATAGGAGAAAGTGGAGGTTTTGGCTGAAATTATTTTCAAAAA -CTTTAACTGTAACAACTAACGAGTAGATTTGAAAATGAGGATAATATTCA -ACACAACAGAAAAAAAGTCGATAGGTAACTAATAAAAATTAGAGAAAATG -TGGCATCGGGGAGAAGTGGTGGAACAAAAGAAGAAACTGATGATGATGAT -AGGAGGATAGCCGCGAAACAAGCGATTAACAGTGAACAAGATTCATTTCG -GTGAAGATGGAGAAGATAACAGCAAAAAAAAAAACACAACAAAAGTCCTT -ATTATTGCCCATTGAGAGTTTGTTGAAGGACACTGGTAAGGTGCTCGTCG -ATTCCATCTTGCTGCGCGAATTGTGGGAACGATGCGTAGATTTGCTTCAG -GATTGTGACAATTCTTTGCTTGGTTTGGTTGCCGCTATCGTCGTCGTTGA -AAGCATCGTTGGCGATTGAGAGCAAGCCTGAAAAATACAAATAAAAATAA -AATAAGTTACGGATTTTTTTAGATTAGAACTTACAAACAAGGAAGATTCT -CGGAAGATTCTGATTTTCTGGTCCAAAAAGTGCGGCGTCTTGTTTATCAA -ACAATTCGGCGAGACACGTGTAAATGTAGGGGCTTTCCTCGGTGTCTGAA -TATGTTGGCAACCAGCTCAGGAACATCTCGACGACCTGGAAATAATATGG -AACTTTTTTCTTGAAAAACTGAATTCTAAAACCAACCTTTCCGTAGGCTT -CAGCAGGAAGTGGCACATTGCCGATGATTTTGGCAAATGCAGAAATCGCG -TTTTCCGTGGCAACAGTGCTCTCCTCGGTGGCTCGGGCGTCCTCTCGTTG -AATCATGGCGGCCAGTGGCTCCAAACAGCTCAAAATCTCGTTTCGGTAGT -CGCTGATCTGGTGGTAGTTGATGGCCATAACTCCGAAACCGTAGCTCGCT -GCTTGTCTCACTTCAGGATACTCATCTCCCAACAACTTGTACATTATTGG -AATAAGCTTCGGGAAGCGAGTTGGCATATGTCCGACACCGAACTCGATGG -CGTCATCGAGAAGGCACATTCCCCATTGTCTCTCGAAGTATTGTTTGGAT -CCCTCGATGAGTTGAATGGCACAGTTGAACACGTTGATCATTCCCTCGAA -GATAGTTCCCTTGAACTCCTTCATAAGAGAGTGAGTCAAATCAGAGATGG -CTCCAAGGCATGAGGCCTCCAATTCCATGAAATAATCGAGCTCCTCCTTA -GCTTCAGCATCATCGTCATCTTCATCTTCAACTGGACGATCGCTCATTCT -CTTTCCGTAGTTTTCAAGTTGCTTGAGAAGCACCGAAATGATGAGTTGAA -CCTCTTCCTCGGCGATTCCCTCGGTTTTCATAACCTCAATGCACGATCCG -ATGGTCGTCATGAACGAGGCGAGAATCTCGACATCGTCCTCCTCCTCCAT -AGAGGTCGTCAATGCCTTCAAGAACTCGCACCACAAACGACGCTTGTCAG -CCAATCCTTGCTTCTCAACACAGGTCAACAAGCATGGCATGATTTCAGCG -GAAGCCGTACGAACTCCGTCGTGAAGTCCGAAATCGAGATTCTTGATGGC -GAGCTCGTAGACGTCGACGACGTATGGCATGAAAGCCTCCTTCATCTCCT -TGGCGAACGCGACAAGCATATCGCAAGCAGTTGCCTTCTCCTCAAGACCG -CTGGTGCGGATTCCGACAGTCTTTTCTCCTCCGATTCCGTGGTATTCAAC -TCCTTCCTCGTTTTCGTGAACATCTTCGTCTGAAATTTATATATTTTTTT -AACACGTAAAACTAAAAAACACTCACTGTTGAAGATATTGAAGTCTGGGC -GGTAACGAGCGGCACGAAGAACTGGATCCATGACAACTGGGAGGAATGGT -GCGAAATCGGCTCCAAGAATAGAGCAGAAACGAGTCCATGAGCTGATCAT -GTAGCTGTATTGTGGATCATCGATAGCCAAATCCTTCATTCCGTCTCCGA -GAAGGTTCAGGATCTCGATTGCAGTAGCGTGGAATTGTTCCTTTCCGACA -GCATATCCGATGAGAGAGATGCATTCGATGGTCTTTCCTCTCAACTCCTT -GAGCTCTCCGACGTTTTGAAGAATGTGAACGAGGTTCGGGATGAGGCGAG -CATGATGTTCCTTGAAGAGCTCCTCGGCGGCTTCAGCGACGGAGGCGATG -GCGGTGACGATGTTCTCAACGACAACCTGGTATCTCTTGTCTCCGAGACG -ATTGAACACAGCGGAAAGCACATTTTCGAGTTTCTGAAGAATGAATGGAA -GATATTGTCCAATGATGCTCTTTGGGCACTCCTCGGCAAAGTTGACAAGA -GCCGAAGCGGCATGAGCACAGACACGTGGAACATCGGTTCTGTCAAGAGA -CTCGAGAAGAGCTGGTATGACGGCGGCGTGGCACTTCTTCTGAAGAGTTG -GAGCGAAGTCAGAAGACATTTGTCCGATGGCGTTGCAAGCCGCGTATTGA -ACTCTTGGATGAGCATCATTGACGTAATTGGTGATATGAGCCATAATTTG -CTCTATGTGTGGTTCCATAGATCTTTGGCACCCTTCACCGACGGCGGAGA -ACGCGCGAAGAGCCGCGTGCTTCATCTTCCAGTCTTCGCTGGTCAAAAGC -TTCTCGACAAGTGGAAGGAACACTGGGAGCATCACTTTTCCGTTGATGCA -GCAAGCAACACGGTCGATGGCGCTTTCGGCGATGATTGGGATACTGAAAA -ATAATTTAATTGAAGAAAAACTAAAAATTTATCCTTACTCTTCATAGTCT -TCTTCCTCTTCGATCTCGTTGAGCCACTCATTGAGCACATCGTCATCCAT -TTCGGTCATGCATGAAAGAAGAGTCTCGAGAATTGGTCCAAGAGCTCCTG -GTGCGTATTTCTTGAGTCCTTTTGGTGCGGATTCCATGTACGAGCAAATA -ACTTCGATGGCGTTCTGACGGACCATCTCGTTCTTTTCCTTGTTTCCAGC -AATCTGAAATTTGAAAAAATGAAATTTTTAAATTGGGCCATTTAAATTAC -TTACAGCAAGAGTGACTTGAAGAACCTGAGACATATGAGTGTTAAGGCAT -TTTGGCAGAGAAGAGGCGAGCTCGGCGAACTCTCCGAGTGGTCCATCTGA -ATCATCCTCGTCGCTGGTTTCATTGCAAACTTGAAGAACATTTGGAACAA -GAGAGGTCATAAGCCTGACAACATCCTTCTCCTCATCATTATCAACAGCG -AAAGCGATAACAGCACGGACGGCGGTGGCCTTGATTTGCAAATCCGGTGT -AGCCATGCACTTTTCCAAGACAACTTTGAGGGTTGGAAGGAAGTGGGCCA -GCCTGTTTCCAAAAATTATTGGGCATCCGCGAAGAATAAGCAGGGCTATG -TAGTTTCCGGTAAGATCCTCGCTCTTCAAACAATGATCCATCAGCTCGAG -GACTCCTCCCCATGTCATATCTCCAGAATCGTCGATGAGGTTTGAAGCGA -TTTCAGAGATCAAATCAGCAATCTTCTTCTTAATCGAGAGTTCGGTCTCG -TGAACTATCATCTCGAGAACTTTGGCGAGAATGCGCTGTTTGTTCTCCTC -GTTCAGCGTTTCCCAAATCGCATCCCAGTCTCTGGCGAGAACTCGTCGCA -GAAACACCAAAACTGTGGATCTGGCCTGAAAATCGAAAATTCATGGAATA -TATAGGAATTTGAGTGAACTAACATCAGAATTATTCGTGTGGTGTGTGTA -GGCCTCGAAAAGTGCAGCTACTTTGGTTGGTCCTTCAATCTTTTCATAGA -CTTCTTCAGCTTGTTTTCGGATATCATTGTCTGCTGACTGCAGTTTTGTG -ATGAGCTCAGTGAATTGATTGACGTCCATTGTAGGGAACCCTGAAAATCA -GAATATGTGCTAAAAATTTCAAAATTGAGAAGGAAAAAGATGAAAGCGAG -TCGGTTTTGCAGATAAACGCCTGGGGAATACGCGGAATCGCTGAGGAAAA -TAGATTTTTAGTATAAAAATTGGCATTTTCAACAAAAAACCTATCGGAAA -ATGTGAAAAATAGGCCAACAAATATTGAATTTTGGGACAAAAACGCCTCG -AGTGCACGATTCTCAACGGAGCGCACTTGCTGCGTCACACGCACTTTAAA -CTGTACACGGCGGGAAGTTCAAATTTTAAAAGGATTCACGTGATTTTCAC -GACATTTACTGGTTTTTTCAGCGAGTTTTCGCAACTTTTCGGCGACAACC -GATGATGATTTATGTTTGGAATATGATGATGGTAGCGTGTTGCGAAATAA -AAAATCGATGGAATGAGTCAGCGAGAAACTAATATTTGCATAGAGAACTG -TTTGCAATTTTGGCATTACATTGGCCAGTGCACTGACAAAAAAAGAAAAA -AATAAACGGCAAAATCTCTAATACCTATTCCAGGCAACCAGTGTCTGGCG -ACGATGGAGAGTAATTCTGAAAGAGACGCAGTTGAAAAGAGTGTGTTTTT -CGCTTTTTTTTTCAGACAGAAGAGTAAAAAGAGTAAATACGTATCAGTAG -TAAAAACAATGTGCGAGCTGGGAAATCAGTAATAATTAACTACTTGTGAT -ACAAATTCCTCAAGGAATGAAGGAGAAAGTGTACTTTTTTTGAGACCCGA -AGAACTCGGGGGATGTCCAATTGGGGGGATTACCAACTCGGGGGATTGGC -CCCGCCCACAGAACCGTGGCTTGCAATACGCCCATTTCTGCAACTGCCGC -ACGGTTTTAAAACTGTATTTTTCTCAATAGAGCGAGAATTAACAAGAAAA -AATAATTTTAAAACCGTGCGGCAGTTGCAGAAATGGGCGTATTGCAAGCC -ACGGTTCTGTGGGCGGGGCCAAACTCCCGAGTTGGTAATCCCCCCAATTG -GACATCCCCCGAGTTCTTCGGGTCTCCTTTTTTTTAATTTTGAATTGAAA -AATTGTCCGAAAAGTGCAAACGTAGAACATCAAAACCAGTGGAGGGGCGA -AATTTGATAGATCGCATGTTGCAAGAATGAGCATTCTACGAGTTTCGCGC -CATTTCTGCGTAGCGCGCACAATATTGTGCAATAAATCTCGGTATTTGCG -TACATGCATCATATCTTACGCGCAAATCATATTGGAAATTTCCCCGAAAC -ACGGGGAGGCAAAGCTAACGTGGCTGAAGAAATTTCTACAGTAGTCCCAT -TTGGCTGACTGAATATTCAACGCGAATAAGTTTTGTACACTATTGCGTAC -TTTGCGTACGCGCATTTTATTTGACGACAATTCGTCAATATCAGCTCTGG -CTAAAAGCGCTTTTCTCATTATTTAAGCGAATAAAAGTCGAAAAAAAATG -TTTTGTGATAGAGAATAGTAATTTAAAAAATAAAAAAGTGCATATTTTAT -GTTTCTCATTATGTTTCCACTGATTTTCTGAGAAAAACCGAAAATTTCCT -CTTTTTTCGATGAATTTCAGCTGAATAGTTTGTTTTTATCTAGTTTTTCT -TCCGATTGACTGAATAACACATTTAATAACATCAATATAACGTTTAAAAC -ATTCATTGTCTCGAAAACCAATATAAAACTCGTCAGAGAGGGATACTTAG -TAGATATGCTGAACAAGGAAAAGAGAGAGAAGAACATTAACCGAATGGGG -AGGGGGGAATAAGAAATCTGAACAGGAACGAAATATAAAGAACATTATTA -GAAAGAACAAGCATGGCTTGATCTTCTTGGCAGTCGTCTCCTTATCCTAT -CACTTCTTCTCGGCGTCCTTCTGATCATGCTACCGAGCAACGTGGCACGA -TCGAAGAGTTTCACAACGGTTTGATACTTTCGCTCCACGAGGGGGCTCCC -AATTCAGCGAGGGTCCTCTCACGAAGTTTAATTTTTTAAAATTAAAAAAT -AAGTAACACCTCAAGAATTCCATCGAAGTTGTGCTCCTTTGCAATAAGAC -GAAATTTTTTTTTACGGAATTGAACAGGATCATTGAGGTACGGCATGAAA -ACGGCTTCCTCGTTGAACGATGTTGAAGCTCCTTCACCATTGCACCTGAA -AATCAACTTCTAAATTTTCCAATTTAAAGAAAATCCACATACTTATCCTC -GGAAACGAATCCAATATTCTGGTTGCTGAGTGGAATTGCTTCAAAGATTT -TGATCAGATTTTTTTTTGAAATTTTCGATCACACATCTTGTATCCACCAA -ATCGCCGAGTGCTTCATGAACTTCAGACTCGTGCTTTCCAACCTCTTCCA -TGAGCTTCACTTCTTCTGCTTGGAACTTTTGATTGCCTTCGGACCGATCT -GACTTGTAGTTTCTTCTTAAATAGTGGCTGATTGAGCAGTCGACCTTGCA -GTCCTACCTTCTTTGGCTTCTTCTGCGGCACTTGAGCCCTTGTAAGAGCA -CTTATTGCTGCTTAACCTTCCTTATTAATACTTCGAACAGCTTCTTCTTG -TTCGCATCTATTTCGAATTTTGTCTTGAAATCTTCCAATGCAGCGACAAC -GTAATATCTGGAAATTATAAAAACATTAAGAGAAAATATTTTGAAAAAAA -ATCGAAAATTGCACTGAATTCCTAAATTTTTTATTAAAATCGAAAAAAAA -AAATGAAATACGTGAGATTGAGTTTCGAGACTTTTTTATTCAGAATCAGC -ATATATTTCTCCATATTTGAGTAGGTTTTCAGAAATATTGTACCATAATT -TTTGGAAAAATGTAATTTTTAATTCGAAATTGCACTGAATTTCTCGAATT -TTTCACTAAAATCGAGAAAATAAATATGAAATACGCGAGATTGAGGTTCA -AGACTTTTTAATTCGGAATCAGCATATATTTTTCCATATTTGAGTAGATT -TTCAGAAATATTGTACCATAATTTTTCGAGATATTTTGAATAATAACTTA -CTTTTCGACGTTTTTTGCCTTTGTCCGGTTTAATCCATCGAATTTCGAAG -CGGTTTGCGTAGATTAGCTGAAAACATTATGCTTATTCCACGTAGTAACA -AGAAAAAACAAGAAAAAATAAGAAAAAACGAAGAAAAATAAGCATATAAG -TCAAATTAAAAATGTTTATTCGATCAAAATTCTTAACCATAGGAGGCGGT -GGCTAGCCGGCGCACTCTCGCGGCCACGTTAGCTTTGCCTCCCCGTGGAA -AGGAGCCATGATATTACGGAAACACTATTTGAATTCTGAGAACGCGAAAT -ATCTCGTAGCGAAAACTACAGTAACCCTTTAAATGACTACTGTAGCGCTG -GTGTCGATTTACGGGTTCGATTTTTAAAATTATTTTTTTTGTTTTTTGTG -TGCGTCATCGATTACTAAATTATAAATTATTTCCGTAAATCGACATACAA -TCGCTACAGTATTCATTTAAAGAATTACTGTAGTTTTCGCTACGAGATAT -TTTGCGCGTCACTCCTTCAGGCACCACATCTTACACTCAAAATCGAGGTG -AATTTCTGTGTATTTGACAGCAAAAATGTCGTGAAAAACAATTAAATAAG -GCAATTTGAAGAGGAAAAAACTGGGGCAGATGTGAGATAAGAAGAAGAAG -AAGCGGGGCTTCGACAACCGTAAACTAATCAGAGATGGAAAGTGAGAAAT -TTGAAATTTAAGACAAAAAAGTTAACAACGGGGGATTTTTTTTAGAGAGA -AAGAGCGAGTAATCGGGCAGCAGCAGAGAAAAAAAAAGATAATAAACAAT -TGAAAAAATATAAATATCGGGGAAATTATTGCTGAATAGACTGCAAATAG -GTGACAATCTCGGGCGGTACAGAACGAAGTGTCTCTGGACAATTTCCGGG -TCCACGGACAAGAACGGCCTGCGCAAAGTAGGCCTTGTGGTTGGCGATGT -TGGCGGCGACGGGCGGTTGCTTGGGAGCGTAACTCAGACGACAGAATGGG -TTCACAAATTCTCCCTCGGCGTTGTACATTGAAGCTTGCTCTTCTTCTGG -TGATAGGACGGCTCGATCGGAGGCTGAAGCAGCTTCCAGCAGCATTGCCA -CCTCGTATGACAGAATTCCGTATTGACCACTGCAAAAAAAATTTATATGA -GAAATTGAATTTAAAATGATTTTATTTGTAATTTTGTTTTTGTTAATTGT -CGTTAATTGTTTTTTTTTTGAGAAAAAACCGAAAAAAAAATTAAAATCTT -CATTTTTGATTTAATTTTTTTGTTGAAAAATCGGCAGTTTTCGATTTTGT -TTTTTTGAAAAAATAGGGAAAAGTCGGTAATTGTCGATTTTTCAAAAAAC -TGAAAATTCCAGATTTTGTCAGGAAAAAAAACGAAGAAATCGACAAAATT -TCAATTTTATTTTTTTAAATTTGTGTTTTTCAAATTTTTTTTTGATATGT -GATTTTTAACTTTTCTCTGGAAAAAAACCGAAAATTTGCAATTTTTCAAT -TTTTTCCAAAAAAATCTTTAAAAAATAGAAAATTTTCGTTTTTTTTTCTG -AAATATTTAAAAATTGTAACTTTCTATTTTTTTTAAACCCGTATTAAAGT -TTAAAAAAAAAATCGGAGAAAAAAAAACTGAATCGAAAATATGTGATTTT -CAATTTCCTTTGAAAAAAATATAAAAAATCGAAAATTTTCGTTTTTCGAT -ATTTTTTCTGGAAAAAAGCCTAAATTTTCATTACTAACACAAGCTGCTGC -GTGACATCGGCTAGCAAATTGCCCATTCCAATGGCAATAATCCGTTTCTC -AGGCCCCGTTGTCGTTTGTTTCAGACCTGGCAAATCAATGCATACGACCT -TCTCGATGAGCATTCCGAACATGCCAGTCTGAATATTCTCACACGATTGA -ACAAGATCCTGTGCACTCCGGGCGATCGTAAATCGACACAAGAACACGAT -GAATAGCTTCATAAACTTGGGTGTCTTCGACGATTGAACTCTTCGAAACA -TTGTATTGAGCACAAATGTCATCGCGGAACCCTCGAAGTGCTCAATCGAC -GGAAGAATCGTCGCCGCCAACTGGAAACCGTATTGATCCAAGGTTTTCGA -GCCCAAAAGCCGCGCCAAATGGCTCAAGATCAACCCAGAATTCTCCGAGA -CGACTCGCTGAGCATTCACGGAAAGGATCACTTCGAGAACCGAAAGTGCC -GCTGGAACATTCGCTGATCTCGCCCAAAGACGTTCGGATAGCAGAAACGG -AAGGAACGGTGAGAATTGATCGATCGATGAGTTTCTAGCGATACATGAGG -AGACGAGAACTCCCGTGATTTGGAGAGCATATGGGATGAGATCTTCCAAA -TCCTCGCGGAAGATCACTTCGATCAGTGGAAGGAGTTGAGCATCCAGTGA -GGCGCCGATTGTTCGGGTCTGGAACAGGAAATTCGTTAAAAAATATAAAA -TGTTCTTAAAATTGCTATCACTTTTTTTTTGAATAAGAAAAAAAATCACA -AAAAGGAAAACACGAAAAAGCAGACAAATGTTTCGATTTTGCAATTTTTA -ATTTTTTTTTTTCAGAAAAAAATTATCGATTTCTTCTTTAAAAAAAGAAG -ATTCTTTTCGATTTTTTCGGAAAAAAACATCGAAAAATTGAAAAACAAAA -AGTTTTGATTTTTTTTTCAGTGAAAATCGTTCAATTTTTCGGGGTTTGTT -TCGACAAAAATAATTAAAAACTAAAATTTTTCAGTTTTTAGGTTTCTTAT -CAGAAAAATTGAATTTTTTCGATTTTCCGAAAAATTAAAAAAAGGTATAT -TTTTTGAAAACACGAAAACGGAAAAGTGTTGGTTTTTTGTAAATTTTTGC -GTTTTCCAGCAAAATTGCCAATTTTTCCGAAAATTTTCAGATCGAAAGTT -AAATTATCGATGTCTATTCCAATTTCCGAGTTTCAGCGAATTTTTTTTTG -CAGAAAAATTTCAGAAAATTTGACAAGTTATGTTCCAATTTATGAAAAAA -AATTTGAGACCAAAGTGCGGCACGGAAAAATGGGCGGAGTTTAGAGTGGT -ATTTTTCTCTCAAACTACTCCTTACCTTGGTGATCAACACACAAATCGTC -TCAAACAAAAAGTGCGTGTGCACCGAATCCGCCGGATTTTTCGTCGCCGA -CTCGACCAACTGTGCGAGCTTGACCGCAATCGCGTCCGCATGCCGAATCG -TGTCGTCATCGAGAATCACAATGATCCTCAAAATCGCCTTGATCAGATAC -GGCGAGTTTTGCGCTTTGGCATCCTTGTCGAACGCGGTGACAAGGTTCTG -AAGGATCGAGGAGACTGGAAGATTTTGAGCCGAGAAGATTTTGTTGGAAT -CAGCGAGAAGGATCTTTTCAATAGCGTAAGCTGCGTACTTGTGCAGAATC -GGAGTATTCGAGCTGAGAAGAGCGTCCGCCGACTTGATCGCAGTCATAAG -GTGCTCTGGAGCCAGCTGTTTCCTGAAAGTGACCGCAAACTTCAGTGCAT -CAGCTTTAAGGATCGGAGTTTGATTGACATCGGCGTTGAGATGTGTGGCC -ACTTGTGTGATGAAGAAGTCGTTGATGTCCACCAGCGGGTTCGTCGCCGT -TACTCCACTCTTAGCAGTCTCCGTCTTCACCGCGATCGCCGTGATCAGCG -AGTAGACAATGTCGATCTTGATCCAATCACCACTTCCCAGCAGGTTCTGC -ACGATCTCCCCCAGACATGGAAGCATTTGCGCCTCGAATCTTCGGCAGAG -ACCTCGCGCAAGATCGATGGCTCCACGGCGTCGAGTTCCTACATCGGTAC -CCTCGATGTCTCGCTTCATATAATCCAGTGGCTCATCCTCGAACAGTTCC -ATATCCTGTTGACGAAGCAGAAGGTTCTGAACGCACACGTTCTCGGCGAG -AGTCTTCAGAACGCCTTCACCAGTGAAGTGTCCCTCGTAGTACTGTCGCT -GGCTGACCATCGACAGAAATTCCAGCGCGGCGCACACCATCGTATCGTAT -CGAGTGTCGGGGCCGGTAGACTTGAGCAGATTCCAGACGGCAAGGATGAT -GTCGGGCACGAACTCGGAGATCTCCTCCTCGTAGCGTTGCGAGTAGAGCG -TGAAGATCTCACAGATCTCGTGCTTAAGCTCGTCCAGAGTTGTAGGTTCT -CCCGAGTTGGAGGTCTGCGTCGGCGCGTCGATTTGCACGAGATGCAAGAA -GTGTGGCATCCAGTCCTTGAGATGATCCTCGAAGTATTCCGGAATCTCCT -GTGAGCACAGAGAATGGTAGACTTTTGCAATGAGAAGTAAGACTCGGAGC -CATTGGGCGATCTCGTCGGCTCCGAGTTGATCCTTCCGCTGTCCCACCTC -CATCATGTTCCGTAGCAACAGAGTTAGAGGCTCTTGGGTCTGAAAAATCG -GTTCTTTTTATTTGTAACTGAAAAATCTGGGGAGAAAACAGTTTTTCGGT -CCAAATTCGAGACTGACATTCAGATTTCTTCAATTTTTTGGCTCAAAAAT -TTTGAAAATTTGTCCATTTTTATAGGAAAATTATCAATTTTCGCCAAAAA -TTCCTCATTTTTGCTTTAGTTAAAATTTTTGACTAAAAAATCATAAAATG -TTGAATTTTTCACGATTTTTCGGAAAACAAGGCCAGCTTTAGCTAGCTTA -AATGTCTAATTTTGGTCATTTTTTAGGGTCAAAGCGGACAAAAATTCAAC -TTCCGACGGCTGCGACGTAAAAAAGTGGCCAAAATTGGGGATTTTAGCTG -AAATTAGCCAAATTTTGAGCCAAAACGCAACTCACGCTCAGTAGACACTT -CTTCAGCTCTTTCCAAAGCTCTGCTGACTTGGATTCGAATCGGAATTTGC -GGAAAATCTGCTCCATCGACGCCAGCGAGGCCACCAGGTGATTGAGATCC -GCTCCGTTCAGGAATTTCGACAAATATGGAACCAAATCTGGCCATTTTTC -GGGAAAATCTCTCTGAGCGATGAGATACAGAGCATTGGACAGGATTTCCT -GAACATTTGATTTTGTATTGAACATCGCTTCGAGAAGCATGCTTCTGAAC -TGCTCCTCGTCTTCCTGGCCCATTTCTACCTCTGGTGCCGGGCCCTGAAA -CAATTTAAATATAAAATTCACGCATTTATTCAAATTTTCCAACCCAATTT -CTCTTCACAAAATTTTTCAAAGCGACAGCCGCGGCGATTCGGATCTGCGG -AGCAATTTGTTGCTGTTCGTTGACCACCAGTTGAAGAATTTGAATGATAT -AGCCTGGATTTGATTGCAGCGAGCGGAGCGCTTCTTCTCCACGCTTGCGA -ATCGCAGCATCCGGCTCCAGAGTCTGCTGGAGAGCTGCTCCGATTTGCTC -CATCTGAAAATAGGGAAAAATAGCTGTTTTGGGGGTGAAATAGGGAAGAA -TTAGGTGAAAGGACAAAGATAGTTTAGCTTAAAACTTGAAATCTAAAATT -TCCGGTCAAAATATTAAAGTTTTACGCAATTTTTCGCAGGCCCGCGGGGA -ATAAACTCGCAAAAATTCGCAAAAATAAAAAAAAAATTTCAAAAGTGTGA -AGTGTTTGCGTACAGCGCACCCGACCCGACGCGCAAATTTTTTTCATTAT -GTTCTCTGTTTTCACTGATTTTTACTGATTTTTCCTAGTTTTCCCTTGAT -TTTCTTCAAATTTTCCACTTTTTCAGCAAAACGTGCATAAAAAAATAAAT -TAAAACATTTCAATTTTCAAAACTTTGCAAAATAAAGGCGTCGTTGCGTA -CAATGCGCACGACTTGACGCGCAAACTTCCCAATTTTTATTCTTAAATTT -TCCTGGATACCCCTGGTTTTTTCTCTGTTTCCCCCCTAATTTTTCGCATT -TTCAGCAAACATGGGTGTTGATAAAAAGCAAAAGCAACGAAAAACCAATC -CATTCGAGCTAAAATTCAACAAATCCAAGCATGACGTGAGTTTTTCAGAG -TTTTGAAGAAAAAATCGATTTTCTCGCAGATTCTCGGCCGGAAAAAGGGC -GCACAAGTTGGAGCACCGACTGCGTCACGAAAACGAGCTCACGAGCAACG -TGAACAGACGCTAGGCGTAGAATATGACCGGAAAAATAAGATTAGCAAAA -TTGTCGACAAACGGCTCGGCGAAAAGGACGGAAAAAGCGAGGAGGAGAAG -GGCGCGATGAGATTCACAGAGGAAAGAGTCAAAAATTATAAAAGAGCATC -GAAATTCAACTTGACAGATGATGGAGATGAGGAGGAAGAAGGTTTATTCC -GAAATAAATTGAGAAAAATTTTAATAAAGTAAATTTCAGTACTTACTCAC -AAGGGAAAAGCGCTCTCGGACATTGAAAAATACGACAAATCGATGATTTC -CGACTCGGATGACGATGAAGAGCCGGGAAATTTGGGCTCAAATATGGTAA -AAGTGGCTCATTTCGGTGGTGGAGAGAAGACCGCCGAGGAGCACGTCCGC -GAAAAAATCAGCCGAGAGGATATGATTTCGAATTTGATTGCGAAAACGAA -GCTGGCGCGTCACGAGAAGCAACAGCAGAAGGATGAGCTCGAGCTGATGA -CAGAGTCGTTGGATTCCAAGTATCAGGCTTTGATGGGCAAAATGAAGGCT -TCATTTAGGCCGACCGGGCGCCAGCCGCTGGAAAAAGATGATTACGACAA -ATTGGTACGGGAAACATCCCGGTTTTCTCCAAATTTTTAAGATAAAAGAT -AATTATAAATTTAGAGTGAAAATCGATTTTTTTCACAATTTTTTAGTGGA -AAACCTAAAACCCAAAAAACTTGATCTGAAAATGCTAATTTTTAACCATT -TTTGCTATGGAAATTGGAAATTTTCATTAATTTTGCTGTAAAAGTTGAAG -AAATCCAAGTTTTAGCTTTGTAATCAGAGAAAACACTGTAAAATTATTTC -GGAATTTGTGCAATTTGAAGTGAAAAATAAAACATTTAACTTCTTATCGC -GAAAGAAATTGAGCTGAACTGAGAATTTTTTTGACGAAAAATCATTAAAA -AGTCAATTTTTTTGACAAAAATTCGAGAAAAGTCGGTTTTTCTTTTGACA -AAAATGACGAAAAAGGCAATTTTTAATTTAAAAAAATAAATTTTTCGCCG -AAAAATAACTTTAAAAAAGTCGTTTTTTTACAAAATAAAACAATTTAAAA -TAACTATTTTTCGACAAAAAAATTAAGAAAAAGCCAATTTTTTTGTTTAA -AAAATGATAGAAAAAGGCTTTTTTTTTGTTTCTTCGCCTAAAAAATCAAG -AAAAATAGGTTTTATTCCATTTTTTATCCAAAAATTATTATTTTTCCAGA -CAATCACCTTGAAAACCGAAGCCGACGCTCGTGCCACCCCAGCAGATCGT -AAGCTATCCGAAGAAGAAGAAGCTCTGAAAGAAAAAGAACGTCTGGAAAC -TCTCGAGGCCGCCCGTATCTCGAAAAATAATGCATTTTTCAACGCAAAAT -CTCATTTATCAGCCGATGCCGACGTTGATATCGATGCTGGATCGAAGGCC -GACGCCAGAAAAGTTCAGGCGAAAAATTCGAGATTTGAGGTCAAATTTGA -CGATGAAGGTGGCCTGATCGATGAGGATACGGTGGAAAAATCCAGGATTT -TAAAGAAAAATCTGGATGGTTCTGATGAATCTGACGATGACGAGGATCTA -GAAGATGAGGAAGAGGATCTGGATGATCTACTGGAAGATGAGGATGAGCT -GGAAGAAGATTCCGATGATGAGGAAGCTCAGGAAGCCCAAAAAGTCGTCA -AAAAAGCGAAAAAATCTGCTCCAGAACCCGCTGAAACTCTGCCATTCGTA -TTCGAAATGCCGAAAAACTATAAAAAATTCTGTGCTCTTCTGGAAAAACA -CTCGGAATCGATGGATTTAGTGCTGGAACGACTCGTGAAATGTCATCATC -CGAGCCTTAAAGAAGGAAATAAGAAGCGTCTGAATAAGCTTTTCCTCTTG -TGTTTAAGATGGTTTGATGATATGTCGAAGGAGGAATTGACAGCGGAAAG -TGTGAAGGAAATGAATTTAGCGCAGGAAACTATGCATGCGTTGATGAAGG -TAGCGATTGGATGGAAAAGCTGAAAAATTACCGCACTTTTTAATCTGAAA -ATTGAAAAAATTCGAGAATTTTTGACCTAAAATTTTGAAAAATTCCCGAT -TTTTATACCCCAAAAATTGCAAAAAAGTCCCGATTTTTTACCAAAAAATG -TTTTAAAATCCCCGAATTTTTTACCTAAAAATTGCAAAAAAGTTTCGATA -TTTAGACCCAAAAATTGCAAAAAAGTCCCGATATTTTTACCAAAAAATGT -TTTATAATCCCCGAATTTTTGACCTAAAAATTGCAAAAAAGTCTCGATTT -TTAGACCCAAAAATTGCAAAAAAGTCCCGAATTTTTTACCAAAAAATGTT -TTAAAATCCCCGAATTTTTGACCTAAAAATTGCAAAAAAGCCGGTTTTTT -TACAAAAAAATGTTTTAAAATCCCCGAATTTTTGACCGAAAAATTGCAAA -AAAGTCTCGATTTTTAGACCCAAAAATTGCAAAAAAGTCCCGAATTTTTT -ACCAAAAAATGTTTTAAAATCCCCGAATTTTTTGACCTAAAAATTGCAAT -AAATTCCAAAAACTTTGGCCAAAAAATTAAAAAAAATACCCGAATGTTTG -ACCCAAAAATTGCAAAAAAGCCCCGATTTTTTGAGAAAAATCATGTGAAA -TTAAAACCTTTTTTTTTTGAAAATCAGTCTCGAAAAAAAAAAGAAAAACC -AGGAAAATCATGAAAATTTAAGAAAAAAATCATTAAAAATAGGAAACGAT -CATGGAAATATTTTTAAAGAAACATTATATAAAAAATCATTAAAATTTCA -GAAAAAAAATATGGAAAATCCTGAAAATAAAGAAAATAATATTAAAAATT -CAGATTAAAAAACGCAAAAAATTCAACAATTGAAAAAAATTTCAAATTGT -TTTTTGCAGTTCGACATTCAATACGGAGTCCGATGTGTGCGTGCTCTAAT -CCGTCAACACTGGAAAGGCCGCCAGGATAAACAGAAGAGTAGCCCAGTGT -CATTTGGATTAATCTCTGCAATTCGTCTTGTTTCCGGCCTCTTCCCAGTT -GCCGATTCCTGGCATCCTGTAGTGGTTCCGGCTCTTTTTTTGGCAACTGA -AGCACTTTGCTCGGCGAAATGTGCCAATTTGAATGCGTTGGCTAAACAAA -TTCAATTGGCTAATGCTATTGTTGAATATGTGTCTGAATCCAAGAGGTAA -TACTTGGAAACGAACATTTAAATAGGCAAATTTTGAAAAAAATACTGAAA -GCTTTGATATAAAATAGGAAAAGTAACGAAAAAAAAAGCCAAAACCACCA -AAAATATTATTTTCAAAAGCTAACTCAAAAAATTTAAAATTCAGAATTGT -CGCTTAAAAAAATCTATTTTTTTCGATATCGAAAAAAGATTACTATAAAA -ATTCAAAAAAGCAATTTTTTAAAATATAACTTGATTTTTTTTTCTGAAGT -TCATTTTTTAACAAATAATTGCATTAATTTTCCATTTTAATGTTAAAAAA -AAGCGAATTTTTCAAAAATTGATATAAATTTTGTTTTGGCAATTTTTAGA -TCAGAAAACATTGAAAAAATACAAAAATCCCGTTTTTTTTTAAATTAATT -TTTTAGAAAAAATTGCAATTTTTCAAAAATCTTCCGGTCATTTCTCTATT -TTTAAAAAATCTCTCGTCTCTTTTAAAAAAATTTAAAAAACCGAATTATC -GAAGCGTATCAAAATTTTGAAATTAAAAAAAAAACCGAACTCCATTTTTA -CGAAAAATCCGAAAGTTGAAAATTGTTTTCAATAAAATAAATTTCAGATA -CGTCCCCGAGCTGGTCGCATTTGCTCGAAGTGCTCTTCTGCTTGCAGTTA -CAGAGAAAAGTGAGAAATTCGCGACAAATGGATTCCCGATTTCCAAGCCA -CACACGGAAATGTTATGCTTTGAGGAGAAGGTAAATTTATAAAATTTGTT -TTTTTGAGCAAAAAATTGGTTTTTTTTTTTGGTTTTCTCTTTAAAAAAAT -TTGCTTAAAAACGCTCAATATTTAAAAAAAAAACTGGCAAAATCGAATTT -TATAATATAAATTAAAAATTTTGTTCAAATAAAAATGATTTTTTTTTGAA -AATTTAGTTTTGAAAAATTTAAAATTAAATTTTAAATTTTCACAAAATTG -CCAATGATAAAATGTTCACTTTTTCTTGTATAAAACTGCTTGAAATTTTT -TAAAAGCAATTTTCCGAAAAATAATTTTTTAATAGATTTCTGAAAAACCG -AAAAACCACCGATTGAAAAACGAAAATCAAGTTTTTTTCCGAATTTTCTA -TTTTTAACAAATTAAATATCAATTTTGCACATACAAAACGGTTAAAAAAA -AACAAAAAAAATTGCCGAGAGCCAAAAAAATTTAAGTTTCAGCGATTTTG -AAATTTTTTTTTTAGGAAACACGGTCTCCTCGGGTGGAAACGAAGGGGGA -GGGAGATTGCTTGCGCGTTTCACCGATGCGCCTTTCGCGTGCTGGCGCAC -TTCTGAATATTGAATTATTTTTGCGGAAAAAATTCATTTCTTCTATGAAA -TTTTCTTGAGAAAGCAAAGGAAAGATGATGAAATGAATTTTTAAAATAGT -TTTCTCAGTTAAAAAGAGAATACCTTGCTGCAAAAGGTTAAATTTATTGA -AAAATTGAGAAAATAAGAAGTTTATCTTTGTTTTCACTACATAAAGTGGG -GAAATCTCAAAAAAATTTGAAGACAATTAAGAAATATAATTAAATATATA -GCCTGAAAGTCAAATAAGAAATGAAGGTTTGGTCACAAACAATTTTATTT -TTGAATTGAAGTTTTGAGAAATGATCATGTGCCAGAATCACTAAATCTGA -GACATTCAGCCCAATTTCTTTAATTTTCTGTGATTTTATCATGGAAGTGT -GGCTTTTTCTGTGATCTTGCCAGTTTTAACAAGTTGAAATTGGAAAATCG -TGAAGTGGGAAACTAGCAGTGAAGCTTCCAAAAATTTCAAGCCTTACTGA -AAGGAAAGTATTGGAAACTAAAAACGAAAGCTTAAGAAGATACCGTTTTT -ATATATTTGAGTTTTGAAAAGCCTTAATAGGTTTTAAATACAGTTTTCTC -AAGAATTCAAACTTGTAACGATTAAGTTGAGGCACAGAATAAGATGGTAA -TACTAAGTTATGTTGAAAAAAGCCAAGAAAGACTGAAAACATTGCTTTCA -ATCTGATTTTTTGTAAGTAATGTAATGTTGAAACATTATTCTTCATAGTT -CAGCACTTTGTATGGCTTATTTGAGCCCAAACGTACAGTAGTATGTGGCA -AGAAATAAAATATTGTGCCAACAAAATTGGAGCCGAAAAACCCATGATAA -AATGTTTAATACGTGTATTGCTCTAATAAAATACCAAATATTAATTAGAT -TCACTGTCTCGACTCTTTTTAATTCAGATTAATAACTTTTAGCTCCTCTT -TTTAACGAAAAATTATAACTGGATTTCACAAAAAGAGTTCGATCTGAGTT -CTTTCAACAGGTACATAGACGAATTATATCTTAAAATGACGAGAAAAGTT -TGCTCTATAAACGTTATCATTGCAGGTTATGAGAAAAACAAATAAAAATT -TAATTTTAAAAAATCCGAAAATTCAGTTGTTATTTTCAAACAGTTCGTTA -TGCATTTCCACCGAACGGTTTCCGATAATTTTTGTTTCTCCACTTTCGGT -TCAGTCTACTTTATAATTGTTATCATTTTGAAATAGAAAAATCGACGAAA -AACTAATAAAAATCGAGGGAAATCACTCTTCAACGGTGAAATCTCGGTGG -ACGCAATGAAGCTGCAGCATTTCAAAAAAATTTTAGAAGCAATTTTGGTC -ATTTCAGCTTCAAAAAGCTTTAAAACTTAAAAAAATTAAAATTCATTTCA -AAAAATTTGAAATTAGTCATTTAAAATATAAAAATTAGAAAAATTCTAAT -TTTCAGCGAATTTTCAAATTTATTTTTATTTCAGAAAAATTCAAATTTTG -GCTTTCAAAAAAGCTTACAAAATATTAATTTTTAAAAAATCTAACTTTCC -CAATTTTTCAGTACACTGGCCCCGCACTCCAGCCAATCTCCCTGACCACA -ATCTTCAACAATTCCCCATCCGATCCATCTCTAAAGCTTCACGTTCTTCG -TGCTCTGCTCTCCCTCATCCAACATCTCCGTGTAATCTACTCCAACCAAA -ATGAGACCTATTCTATCGTTTTCAAGCCATTCCTCCGGATTTTGGAATCA -ATTCAAGCCAAAAATCTTCCAGCCGAGGTCCAGGAAGAGCTGGAGACTCT -GTGCGCCTCAATGAAGGCTGAAATTGGAGCCAAGTGCCGTCTGGTGCACC -TGTCGCTGGTGAAAACCGAAAAGAGCATGCTGAAAATGCTGGAACCCCGT -TTCGAGTGGGATTTCGATCCGGAACGCCCACATCACGGACCCAAAGACGA -GAAGAAGAAGCTGACGAAGAATCTGAGGAACGAAAGACGCGGAGCCATCA -AGGAGCTCAGAAAGGATACGGCATTCTTGGCCAGGAAGCAATTGTCGAGT -GTCAAGACGAAGGATCGTGCGAGAATTGCGGCCACGAAACGTGTCATGGG -CGGTCTTATGCAGCAGCAGGGTGAATGGAATAAGGAGAAGCGTACGGCGG -ATGTTGAGAAGAAGAAGGACAAGAAATAATTTAAATTTTCCTATTTTTTG -TTTGTTGAAAATGACTTTATTTGGCAAAAAAAACCCCTAAATTTCAGTTT -TTCTCGATTTGTTGAAAAATAGTCAAAAAACTGATTTCTATGTTATTTTT -GGTCAAAATTTGCCTTTTTCAAACATTTTTTTTGCCATTTTTCCTCCATT -TTTTGTTATTTTTTTTTTTCGTTTTGTTATGAGATATGTTTCTGTTTTGT -TGACATTTTTTATTATTGAAAATTAAACGAGTTTTCTGAATTTTTTTGTT -CAATTTTTTTGAAATTTTCCGTTTCACATACGTTTGTCAATATCTCGATT -AATTTTTGAAGTTTTCCAATTGACTCGCGCATTTTCTAAAAAGTTTTTAA -ACTTTACATTGAAAATACCCCTCTAACTCGAATATCTGATTTTATTGGAA -TTTTGAGTTTTTTTAGGTTAAAAAATTCTTGTGCTAAAATCATCCATTAT -AGTTCGTAAGTCAGCAAATTTTGGCTCAAACTTAGAGCGATTTCCAATTT -ATGGAGTTTTTTGTTCAGAATTCTCGAAATTTTCTCATTTCTGGAAATTT -TGAGTCTACGAGTCACACAGTTGTTCCGTAATTAGCTTCACTTACATCTC -CTCAACTCTGCAAACTCTCAAACTTTCGGGAAAGGGTCTCGCCACGAAAT -CACGGGTGGGCGGCAATTGCAGTTCGGCAAATTGCCGGTTTGCCGGAAAT -TTTCAATCCCGGCAAAATTCCGTTTGCCGGAAGTTTTTAAACGGGATCTT -TTATAAGACGGAAACACTTAAAACTGCCATTTTTAATTTTTTGCCCGTTT -TCTCTAAATATTTTCATAGAATTTACTGACTTTTTAGGATAGATGTTTTC -ATGGGATGTGCACATGTTGTTCCGGCAAATCGGTAATTGCCGAAAATTTG -AAAAACGACAATTTGCCAAAAAAATCGTTTGCCGTTCACCCCTGTATTGT -ACCATTTTTGGCGAAAATGCGCGTAAATTAATATGCTTGCGTGTGTAATA -TTTCGTTCATATATTCTAAATATACGCACCTTTTGAAATATTCATAATAT -ATGCATTTACGTACGTTCGAGAATATTTTGGGAATACACATTTATCATCA -TTCCCACCCGTTGCCATAGTATCCTCATCCCCGCCCCGCCCCGCCCCTTT -CTCTCATTTCCTCTTCCAAATCCTTAATGGCTCATCCGGTCATTGGAGAG -ATATGGCAGATGTGGCGGTTTTGACGAATGTTCTGGAGAACTCGAATTTT -ATATAACTATTAGACAATTTCGATATTAAAAACATTTATATGTAAAATTT -TCAATTTTTTGAATTTGCTCGCCGAATTTTGACTTTCTGACAATTGTGTG -TCGATTTACGAGGGTTATGTATATTTACGATATGTTTTTAATCATTATCG -AATGCTGATTTCCGTTTTTCTACGAGTTGTCTTCATTTTCGTTGGTTTTT -TTTTGTTTTTTTTTTTTGAAAGTGTATTTTTTAAGGTCAAAAAACTAGAA -AAATATTCAGTTTTCAGTCAGGAAAACCATTTATTTGGTTTTTTCAATAT -TAAAAAAATTATTGGGAAAAATGAATGAAACTCGTCGAAAAACGAAAATC -ATCATTCGATAAAGATTAAATATTTCGTAAATCGACACACATGTCTCCGC -CGCGAAAAATCGAAATTTCATAGAGGCATAAAAATTCACAATATTTTAGT -TTTTTTATTTTTTATTTTAATCCAAATCCCTATTCATGCTTAGATTTTTA -GGTGTTTTTCTGTAAAAAATCAAAAAATTGTATATTACTCATAAATTTTT -CCAATTTTCTCAAACCTTGGATCTCGCCACGACATTATTAAAAAATTCCC -GTTTTCTGCAGAAATGACGACAACGGAAGAAGCTCCCAAATCGCCGCTTT -TCGAGGCAATCGACAAAAATGACACTGAAGCAGCGCTGGCACTGCTGAAA -ACGAAGGAACAAGCCGCTCAACGGGATCCCAGTGGAATGAGTGTGCTGGC -AGCTGCCGCGTATAGGTATGCACCTTTAAAGCGGCGACGGTTACTGTATC -CTCGCAGATTGTTTAAAGGTACATACCGTAATCCGTTGAATTTCAGAGGA -AATCTTACGTTGGTCGAGAAAGCGATTGAGCTGAAATGTGATGTGAATGA -TAAAACCGATGGAACTCTGTACACTCCACTCATGTTTGCCGCCTTATCAG -GTAGGGCAAAAATTTTTTAAAAAAATTTTTTGCGTCAAATTTGATGCAAA -TTCTGGTTTTTTACCGTTGAAAAGTAAAAAAAAATTCCGAAAAAATCGAT -TTTTATGCTAACAACAAACTTTTAAGTGAAAAATCGTGGAAAATTAGACC -CAAATCACGTATTTTTGATCTGAAATTCAATTTAGCGAAAAGTCATCGAA -ATTTTATGGTTTTCGCGGTGAGACCCAATATTCGCAATTTTTTTTTGCAC -CAAATACAACACATTTGACGCGCAAATTCAAATTTTTGAAACTTTTTTCC -GTTTTTACAATATTTTTAGGCTGAACCCCAATATTTGAAAAAAAAAAAAC -CAATACACTATATTTTACGCGCAAATGTTAAATTTTTATTTAAAATCCTC -GTAAAGTTCTATTTTCTTTTTTTGATCGTTTTCAAGCTCAAAAATTCAAA -TTTCAATTCGAAATATTACCGGAACACAAAATTCTGAAAATGCGTACTGG -TCAACATATTTGACGCGCAAAATATCTCGTAGCGAAAACTACAGTAATTC -ATTAAATGACTACGGTAACGCTTGTGTCGATTTACGGGCTCGTTATTAAA -AATCATTAATTTCAAAAAAATCGAGCCCGTAAATCACCACAAGCGCTACC -GTAGTCATTTAATGAATTACTGTAGTTTTCGCTACGAGATATTTTGCGCG -TCAAATATGCTCAATACACATTCTCAGAATTTTGCGTTAACGTATTACTA -CTTTCTTAGTTTTTCCAAAAAAAAAATTCGAATACACCATATTTGACGCG -CAAACTTTTTTTTTCAAAGCAAAATTGTCAAACGTTTGCAGGAAAACAGG -ACGTATGCCGCCTGCTAATGGACTCCGGAGCCCGTATGTATTTGGTGAAT -GGAATCGGAAAAACCGCCTCTGAACTGGCGGCATTTGTGGGTCATCACGA -GTGTGTGGCAATTATCAATAATCATATAACAATTGATGTGATCGAAGATC -TTTTGCGGCCAAAAGTGAATGGAAAATATGAAGGAGCTGAGGAATATCCG -GATGAGCTGGCTGTATTTATTCATTCATTGTGTGGATCACATGAGATTCA -TCCTGTTAAGATTATTTTTCGATTCAGTAAATATCCCGATTCGTTGAAGT -ATAAGAAAAAGGTACATAGCTGTGTAGTTTGGAAAAAAAACGAAAAATCT -GAAAATTTGAGAAATTTCCTTAAGCTTTTTCAAGATGCGCATTTTTGTTC -ATTCTTATTTTCAAAAAAATCCAAAAAGTTTTTTAAAAAATTTAATAAAG -CATTCTTTTTAATTTCAAAACAAAAAAGTTATACCAAATAAAAACTTTTA -GTAATCAAAATTTTTCACTTTTTCTCGGTTTTTCTCATCGTTTTTCAAAT -TTGAGATCTCTTCCTGAATTTTGCCTAAAAATTGATTTTTTCAAAATATT -TTCAGAAATGATTCTTTCTGTGAAAAAATGTTTGAAAATGCGAAAATATT -CGAAACTAAAAAAACTTTTATTAAAATAAATTTTTGAAATTTTTCAGAAT -TTAAAAATTGAATCGAATTAGGTATCAGTAGTTTTCAGATCGATTTTTTC -GAATTTCTGAATTTGTTAAAAACTAGAAATTAAAAAAAAAACTTTTGATG -TTAAATGTTTTTCGAGATTAAAATAAACCGAAAACCCAAAAAAAATGTAA -AAATTGTGTTCTTTTTGTTATAATAAACCAGAATTTTCTCGAAATTTTCA -GAAGGTTCTAGAATATTTCAGAATTTTCTCGAAATTTCCAAAAGGTTCTA -GAACATTTCAGAATTTTCTCGAAATTTTCAGAAGGTTCTAGAACATTCCA -GAATTTTCTCGAAATTTTCAGAAGGTTCTAGAATAGTTCAGAATTTTCTC -GAAATTTCCAAAAGGTTCTAGAACATTACATAATTTTCTCGAAATTTCCA -GAAGGTTCTAGAACATTCCAGAATTTTCTCGAAATTTTCAGAAGGTTCTA -GAATATTTCAGAATTTTCTCGAAATTTCCAAAAGGTTCTAGAACATTTCA -GAATTTTCTCGAAATTTTCAGAAGGTTCTAGAATATTTCAGAATTTTCTC -GAAATTTCCAAAAGGTTCTAGAACATTACAGAATTTTCTCGAAATTTCCA -AAAGGTTCTAGAACATTACAGAATTTTCTCGAAATTTTCAGAAGGTTCTA -GAATATTTCAGAATTTTCTCGAAATTTCCAAAAGGTTCTAGAACAATCCA -GAATAATGTTTTCAAAAAATTCAAATTTGAATTCCCGCCAAAATGTTTTC -AAAAAATTAAAATTCGAATTTCCCGCCAAAATATGTACAGTACTCCTACA -GTACCTCTACAGTACTACTACAGTACCCCGACCATATCCCACTACTAACC -CCAAACCTATATCTCTTCAAAAGACTAAAACACAATTTTTCCTAAACTAC -AGTAATCCTACCGTACTCCTACAGTACTACTACAGTACCCCCACCATATC -CCACTACTAACCCCAAACCTATATCTCTTCAAAAGACTAAAACACAATTT -TTCCTAAACTACAGTAATCCTACCGTACTCCTACAGTACTCCTACAGTAC -TACTACAGTACCCCGACCATATCCCACTACTAAGCCCAAACTAATATCCC -TCCATCAGCCGAAAACGCCTTGCCTTTGTAAACTATGACGTCACTACTTA -ACAAACGGACACTATTTTTTTATATTTTTTTTTCAAAGCAAAAACCACCC -ATTTTCCAGATCCTCTACGTCATCGATCGTGTCTTCGAGAAACAGCTTCG -ATGTAAGGAAAGCAATGAAATAATGTCGCTCAAGCTTTGGCTAATTCTAT -TTTCAATGCGTGAAACCTCGAAATTCGTGGAGTCGAACAAGGAAAAGTCG -CCAGAAGAAGCGTCTCTACAGTACGCAAAACTGATTTCCACGTGGCAAGA -GGGCGATGAAACTAGGCGAGCACTTGACGTGATGCTGAGAAATGCGGTTG -CTTCGTTCCCGTATAAACATTCATTACTTCATGATACTCTACAAAAAGCA -CTGCAAAAAAGTCAAATTGGTGAACGACCAAGTGCCTATGAATACATTGT -TCAGGCACTTTTCGGACAACGAATCGCTGCGGTCTGCCAGTTTTGCTCGG -TTTGCGGACATCCTGGAGCCAAGAAACGGTGCACACAGTGCAAAGTATGG -AGTTTTTAGGGTTAAAAATAATTATTTAATAATTTAATAAAGCTCGAATT -TGGGAAATAATCAATTCCAAATTTTAAAAATATGGAAAAAATTTTATTCC -GTTACATTTTATGAATTTTCCCACAAACTCGGCATTTGGCTCTAGCTTCT -TGCCCAAGTTTAGCCCAAAAAATATTAACTTGAAGCTGTCTAAACTTGGG -CAAAAGTTAGACAAAACTTTGGCAAAACTTGGATTCAAGCTTTACCAAGG -TCTAACCCAAGTTTCACCCAACTCTTGCCAAACTTTGGCCCAAACTTTTC -TTATTTCGTTTCAAATTTGGGCCAAAGTTTGGCAAGAGTTGGGTGAAACT -TGGGTTAGACTTTGGTAAAGCTTGAATCCAAGTTTTGCCAAAGTCTTGCC -TAACTTTTGCCCAAGTTTAGACAGCTTCTGATCCAAGTTAACATTTTTTG -GGCTAAACTTGGGCAAGAAGCAAGAGCCAAATGCCGAGAAACTCGAATAA -AAATTGAAAGTTTTCAAAATTTCAGTTCGTTTTTAATTTACAAAATTTGG -CAGCTCTAACAATTCTTTAAAGATTCTTTAAATTAAAAAAAAGAATTATT -AAAACTTTTTAAAAAAATTCATTCTGTAGAAAATTCCCGTAAAATACTCT -TTGAAAATCCGGGAAAAAACTTCAAAAAACAAAAATAAATTCTAGACATT -CTGTAAATATCGAAAAAAGAACATTTTGTCTGTAAATGTATTAGTCAAAA -TTAATTTCTGATACTTTTTCCAATTTTTCAAAATTTTAAGTGTCGAGGTT -CAATTTTTTTGAATTTCCTGTTTTTCCTTTATTAAAAAAAGTTTTCTATA -ATATGCTGTATTTGAAAATTAAAAACTATATCTGAAAATATCGAGGCACA -ACGTTTTCAAGATCTGGTGAAATTCCGGATCTACGTTTTCCGGATCTACC -ATTTCCGGATCTACGTTTTCCGGATCTGGCACCGTGCCAACGCACAAAAC -GCTTTTTTGTTCACTCGACGCACGTTGTTTTTTGAAAATTTCTTCTAGAA -GAAACGCTTAACAACACGCGACGCGTAACAACGGAGCATCGTTATCACGT -TTTTCTCCGAGAAAAATAGCGTTTTAAGAGTTGGCACGGTGCCAGATCCG -GAAATGGTAGATCCGGAAAACGGAGATCCGGAATTCCGCCAGATCTTGAA -AATGTGGTGCCTCAAAATATCGATTAAAGAATTTTTTCTGAAAAATATCC -AATTTTTCAACAACAGAATAGCTAAAAAGTGAAAAAAAACTCAATTCTCA -TTATAAATTGCAAACAATTTCCAAATTTTGATAAAATGGAAAAGAGTTTA -AAAATTTCAGGCAACACATTTTTTAACTCTAGTAAACGTTTTTTAAATTC -CAACAATTTTTACAGCTCGCCTACTGTTCCCAAGAATGCCAAAAATTCGA -CTGGCCAATTCACAAAAAAGTGTGCTCATTTCTGAAAACGCGACAAGAAG -TGTCGCCCACCGACGAGACCGCCATGTCGCTGGACGATATTCAGGCTCAA -ATCGCCAAAATCGACGTGTAGAAGTGCCGATATTTCGATCTCAATATACT -TTTTTTCTGGAATTTATTTATTTTTAATGTATATTTCGGCTTCATCTCAT -TGCACGAACTTTTAATTTCATTTTCATAAATTCATTTTTGAAGTCATTCC -TTGAACAAAAATTCACTAAAACATGCATTAAGAAATATGGAATCCAAAAA -TTAATCTAAAAACCTTTTCAAAAAACCACTTCGTCAAAAACTGATGATGG -AAAACTCGTTGAAAAACGGAAAGAGTATCCAATAAAGATTAAAAATTTCG -ACATTTCGTAAATCGACACAAATCTCGTAAATCGACAAAAATGAAAAAAT -CAGGAACCCAAGAAATTCAATATTCTCATTTGTAAAGACAACTGGTAAAA -CATTTTCAAATCAAAAAATTATTTTTTTTGCCCTCAAAATTGATCTCCGA -ATACTATAAAAAAGAAAACTATAAAAAGTGGCGAAAATTCGAAATTTTTT -AACCCCTCTAAAATGGTTCATTTTAGTTGTCTAATGATACAACAAAGTAG -ACATAGTTCTACAATATCTGATAAATACTTGAAAAGTCTAAAAACAAAAG -TTTTTTCGTTTTTTTAACGGATTTTTAAAATCCAGAAGAACGAAAAAAAA -TTTTTTTAAGAGAATAGAGTAAACTAATCATGTTCGAGCAAAAAAATCCG -ACTTAGAATATGAACGGACCCAAGTGTATCATAATTATTTTAATTTCTGT -GTATCAGAATTATTTTAGTTTCCTTAGTGTGATTCCCAAACTGCTTAAAT -TCTAGGAAATATTTCTTTACTGGAACACTCTTAGCCACTGTACGCTGCCG -AACGAATAATAAGAGAATACAGAACACCAATTATGCCCGAGAAAAAGATC -CTACTCAGAATATAAACATAGTCAAATTTATCGGATGTATAAAGATTCCC -GAAGACACTTTCCAATTACCCAAATTGTTCATATTCTAAATCAAATTCTC -TTACTAGAACGCTCTTGGCCAATGTACGCAGCCGAACGTATCATAAGTGA -ATACAGAACACCAATTATGCCCGAGAAAAAGATCCTACTCAGAATATAAA -CATAGTCAAATTTATCGGATGTATAAAGATTCCCGAAGACACTTTCCAAT -TACCCAAATTGTTCATATTCTAAATGAAATTCTTTTACTAGAACACTCTT -GGCCAATGTACGCAGCCGAACGTATCATAAGTGAATACAGAACACCAATT -ATGCCCGAGAAAAAGATCCTACTCAGAATATAAACATAGTTAAATTTATT -GGATGTATAAAGATTCCCGAAGACACTTTCCAATTACCCAAATTGTTCAT -ATTCTAAATGAAATTCTCTTACTAGAACACTCTTGGCCAATGTACGCAGC -CGAACGTATCATAAGTGAATACAGAACACCAATTATGCCCGAGAAAAAGA -TCCTACTCAGAATATAAACATAGTCGAATTTATCGGATGTATAAAGATTC -CCGAAGACACTTTCCAATTACCCAAATTGTTCATATTCTAAATGAAATTC -TCTTACTAGAACACTCTTGGCCAATGTACGCAGCCGAACGTATCATAAGT -GAATACAGAACACCAATTATGCCCGAGAAAAAGATCCTACTCAGAATATA -AACATAGTTAAATTTATTGGATGTATAAAGATTCCCGAAGACACTTTCCA -ATTACCCAAATTGTTCATATTCTAAATGAAATTCTCTTACTAGAACACTC -TTGGCCAATGTACGCAGCCGAACGTATCATAAGTGAATACAGAACACCAA -TTATGCCCGAGAAAAAGATCCTACTCAGAATATAAACATAGTCGAATTTA -TCGGATGTATAAAGATTCCCGAAGACACTTTCCAATTACCCAAATTGTTC -ATATTCTAAATGAAATTCTCTTACTAGAACACTCTTGGCCAATGTACGCA -GCCGAACGTATCATAAGTGAATACAGAACACCAATTATGCCCGAGAAAAA -GATCCTACTCAGAATATAAACATATTCGAATTTAACGGATGTATAAAGAT -TCCCGAAGACACTTTCCAATTACCCAAATTGTTCATATTCTAAATGAAAT -TCTCTTACTAGAACACTCTTGGCCAATGTACGCAGCCGAACGTATCATAA -GTGAATACAGAACACCAATTATGCCCGGGAAAAAGATCCTACTCAGAATA -TAAACATATTCGAATTTATCGGATGTATAAAGATTCCCGAAGACACTTTC -CAATTACCCAAATTGTTCATATTCTAAATGAAATTCTCTTACTAGAACAC -TCTTGGCCAATGTACGCAGCCGAACGTATCATAAGTGAATACAGAACACC -AATTATGCCCGAGAAAAAGATCCTACTCAGAATATAAACATAGTCAAATT -TATCGGATGTATAAAGATTCCCGAAGACACTTTCCAATTACCCAAATTGT -TCATATTCTAAATGAAATTCTCTTACTAGAACACTCTTGGCCAATGTACG -CAGCCTAACGTATCATAAGTGAATACAGAACACCAATTATGCCCGAGAAA -AAGATCCAACTCAGAATAAAAACATATTCGAATTTACCGGATGTATAAAG -ATTCCCGAAGACACTTTCCAATTACCCAAATTGTTCATATTCTGAATGAA -ATTCTCTTACTAGAACACTCTTGGCCAATGTACGCAGCCGAACGTATCAT -AAGTGAATACAGAACACCAATTATGCCCGAGAAAAAGATCCTACTCAGAA -TATAAACATAGTCGAATTTATCGAATGTATAAAGATTCCCGAAGACACTT -TCCAATTACCCAAATTGTTCATATTCTAAATGAAATTCTCTTACTAGAAC -ACTCTTGGCCAATGTACGCAGCCGAACGTATCATAAGTGAATACAGAACA -CCAATTATGCCCGAGAAAAAGATCCTACTCAGAATATAAACATATTCGAA -TTTAACGGATGTATAAAGATTCCCGAAGACACTTTCCAATTACCCAAATT -GTTCATATTCTAAATGAAATTCTCTTACTAGAACACTCTTGGCCAATGTA -CGCAGCCGAACGTATCATAAGTGAATACAGAACACCAATTATGCCCGGGA -AAAAGATCCTACTCAGAATATAAACATATTCGAATTTATCGGATGTATAA -AGATTCCCGAAGACACTTTCCAATTACCCAAATTGTTCATATTCTAAATG -AAATTCTCTTACTAGAACACTCTTGGCCAATGTACGCAGCCGAACGTATC -ATAAGTGAATACAGAACACCAATTATGCCCGAGAAAAAGATCCAACTCAG -AATATAAACATATTCGAATTTATCGGATGTATAAAGATTCCCGAAGACAC -TTTCCAATTACCCAAATTGTTCATATTCTAAATGAAATTCTCTTACTAGA -ACACTCTTGGCCAATGTACGCAGCCGAACGTATCATAAGTGAATACAGAA -CACCAATCATGATCGAGCAAAAAGATCCGATTCAGAATATAAACATATTC -GAATTTATCGGATGTATAAAGATTCCCTATTGGGAAGTGGAGCAATCCAC -GACTGGTTTATCGGCCACAGTCCCCGGCTAGGACATGGCTTATATTATTG -GGCCAAGGGGAGCACCACCAGGCAGTGTACCTGACTCCCAGATCAGCAGT -ACATAGCACTTGAAGAATGGATCGTCCTTTAATCTTTTAATCTTTTAAAA -AGAATCGAAGGAACTCTCATCGGGTCATGTGGTTGTGGGGACAAAGAGGG -AGGCTTACATCAATACCAAATACCTGTGGTAGATCACAATACCTGTGGTA -GATCACACCCTATCCACAAAGAAAATCTGTGGACGTCCTCAAAGGAGGCC -GCCCGCGCCCTTGAGCTGGCCAACAAACCCTTCGAGCTGGGTGGAGGAAT -ACTCCAGCCGAGCGACTGAAAACGGCGGTAACGCCACGTTGTCGCACAAT -AACAACAAAAAAGCCCGCGGGCCCCAAGAAGCTCAAGAAGCCCACGGCTT -AATTTTCAAATCAATTACCTTACTATGAATCTCCTTTTTGCTCTACGAGT -CGTCGTTGATGTCATCCTTCCGTCCAACCTCCGTCAAACAGTCCATCTGA -CCATCCGTCCAACCAACATGTGGTGGAGTGTCCAACGCATCTGAAATTGA -AAAATATTTATATCTGATTTTTTAAATGGAACCATTTACAAAAAACATAA -ACGGAAAACGCTTAGCAAAAAAACAAACAATTAGTATTTAGAAAAACGGA -GACAAATGCTCTCGCGATCTTATTTATATTAATTTTCCAGTCGATTGCAA -GGCATCTGCTCCCACGGGTTTATATAAAATTGTGTAACTAATTTTAAACT -TCTCTTGAAACCTTTCAACCAGTACTTTTCAAGAGTTTTTGGTAATTTTT -CGATTTTTCAGAAATTTCAAAAAAACGGCGAAATTCCACTCAGAACCCTC -ATTAATATTTCACTAGTCCAGCACACTAACCCAAAAAATTATTTTTTTTT -TGAACTACAGTAATCCTACAAAATTGCTACAGTACTATTACGGGACCATA -ACAAAATTTTGATAATGCGTATTGCGCAACATATATGACGCGCAGAATAT -CTTGTAACGAAAACTACAGTAATAATTTGAATGACTACTGTAGCGTTTGT -GTCGATTTACGGGCTCAATTTTCGTAATGTTACACGACACATTTTTTTGA -CAAATGCAAAAAAGTGTGCGCCTTCAAATTAAAAAAAAATTTGATTTTTG -TTGCCGGCTTTTAACACATCGAAAAAATAAAAGAAACGAAAGTTTGTAAT -TACAGTACTCCTCTTAAACGCGAACACCTTTTCGCTTTTCAGAAAAACTT -GCGCCGTTTCGAAACCGGGTACTATACTTTTATATTAAAATCGATTAAAA -ATCGCGAAATTTTGCGGTGGAGCATATGTCAAATTGCAACTCGAAAAGAA -AAAATCTGAAAATGCATGCTGTGAAAAAAAAAGCAGCAGTACTCCAAGTC -ACCCATTGGAAAGAATGACTGAAAATTGAAAACAATTCTTCACTTTGAGC -GAAAAAATGCCGCGTTGAATGAGAGAGGGACGAATCGAAATTTAAAAGGA -GAAGATCAAAAAAAAATGTTTGTGGTAGGTCTGGAATCTTGCAAATTATC -GTTTTAAAATCAATTTTTAACACTTTTATATCATAAAAATAGTTTTTCAT -CAATCAATCGATTAAAATACCAACTCTCGAAAATTAACAGCTTTAACAGC -GCCGTCTACTGATTTGAAATTGCAGTCGCTGCCGCTCAATTAAATGTTTT -GCGCGTCAATTAAAATGCCTTGTACGCAGATGCGCGTCTCCTAAAAAATA -AAAAGTTGTCCAATTTTATTGAAAACGGGTATTTAATTCATGTAAATATG -CTGAATTTAGAAAATCTAGGTTTAACCTATCAAAAACTATAAAAAAGTGG -CAAAAATGGGCAATTTATGGCAAAAATTCACAATTTTGAAACTCCTCTAA -AATGGTTCATTTTATTGGTAGAAGAGGACTAAAAATTGATATCCGAACCC -TAAAAAAATTGTCCTTTTTCAATATTCAGAAGAAAATTATGAAGTTATTT -ACTTCCATTTTTCGATTGTACGGTAAATCAAAACTAAAGGTGGGCACGGT -ATCTGATAAAGTTACGATCGTTCCAGGATCACGAAAATCGAATAATTACA -CAGCCAGAGTTACATGAAACAGTGTTTGGGAAATTTAAAAATCAGTACAA -GAAAACCTCAAAAAAAAAACAAAATTACAGGAAAAAACGGAAATTTTCAG -TAAAAAATTATAGGGTATGTAAAATCGATAAAATATTTAAAATTCAATCG -TATTCTCCGTTTTCGGCGTTCGGATCGTTCACTGGAAGTACGGGATGTCG -AAGTTTGAAATTGAAGAATTCGCACCAACCGGCTGGAAGTAGATCGTGGG -AGCTGCAAAAAATGTTCGTGGCCGCGAAAAAAATCGGTGGCCGATTTTTG -TTTTTTCGCGGCCACGTTGTGACTAGACGGCGAAATAAAAATTTGTTTTT -TGGTTTTTAGTGTTCAAAACTGTTGTTCTTGTTGAAAAACAATTTTTTCG -AATTTTTTTTGTTTTTTCAACTAATTTTTTTTTCTGAAAATGCTTTTAGA -ACAGTTCATTTTGTTTTTTTTTCAATTTTTTTCAGACACCCCTTACTCCA -TATCATAAAGCTCGGAAAATTCGGAATCCCATCCCTGAAACTCGATGAGC -ACCGTTCTACCGTGTACTTCTTCGACGGAGGCCGGTGATATCCAGTAGGT -CTCGTTTTGGCCGACGGCTTCAAGGACACGACCGAACTGAAAAATATTGT -TTTTTTTTTCAAAACCATTTTTTTTAGGAAAAAATTTTTATTGAAACGTT -TTTTTTTTAATTTTAAAATTCCAAAAAAACGCAAAAGTGCAAAAAAACTT -GAAAAAAATGTTCTCAATATTTTTTCCGACTCACAATCAAAGAAAATTTG -AATCGAAAAAAATTAATTGTTTTCTTTTAAAATTTAAGGAAATTATTTTT -CTAATTATTTCTTCCAAAAAAAAGTTTAAAAATAATAATTTTTCAAGTGT -TTTTCAAGAGAAAATTAAAAAATTTCAAATTTCAAATTTTAATATACTTT -TTATTTTAAAAACTTGTATAAATCTCCGAATTATATGGATTTTTTTGAAA -AATAAAAAATTTTTTTATTGGAAAAAGAAATCTGATTTTTATAGTTTTTT -TTTTTAATTTGAAAAATACGAATTCTATCACGGCAACTCAAAATTCTGAG -AATGCGTACTGCCCAATATATTTGACGCGCAAAATATCTCGTAGCGAAAC -TACAGTAATTCTTTAGATGACTACTGTAGCGCTTGTGTCGATTTACGGGT -TCAGTTATTTAAATGACTTTATTTTTCGTATTATTTTCTTCATTTCAATT -AATTTTAAAAATTGAGCCCATAAATCGACGGTACCGTAGTCATTTCAGGA -ATTACTGTAGTTTTCGCTACGAGATACTTTGCGCGTCAAATATGTTGTGT -AGTACGCATTTTCAGAATTTTGAGCTGCCGTGATAGAATTCGTATTTTTC -AAATTAAAAAAAAACTATAAAAATCAGATTTATTTTTCCAATAAAATTCG -TCTAATTTATAAAAAAAAATAAAAATAAAAATTGAACAACGCTGAAAAAT -CCCAGATTTTTTTTTCTTATTTTTTGAAAAAAAAAACTTTTTTTGGAATT -TTAAATTACATAATTTTTTTGGTTCAATCAATTTTTTGGTTAAAAAGCGT -TTTTTTTTCCTTCAAAAAAGCACCTCAAACATGTGCCTTCTCTCCTTGCT -CGGCAACGGCCTAAGCATCTCATCAGGAATTTTTTCCGCCTGCTTCTCCT -TCAAATACCCTTCCCACTTGAATTTCCCGGGCTCAGTGCCTGCAAGCCGA -TCCAGCTTGATTCCGAACTTCTCAGCATAGCCGACAGGATGCATAAAATG -ATTATCAATATGAATTGGGAAGGATTCATCGTCCGATTCTGTCTCATCAG -GTGAAATAATTAAAAATCCAGGCGTTTTGCATATTTTTCGAATTGTTGCG -ACGCAAAATGACTGGCGTAGGTCGCTGAGTGGATCCAAAAGTTCAAATTT -TTGGCCGACTTTTAATAAATTTAATTTTTCAGCTGAAATGTCAGGTTTCC -CAGCAAAAAGTTGCTCGAAAGTGACGTCATCTTTATGATAACTTCCAGAA -CCTTCTGCGATCCGTCTGGAATGTTCCAAATAACCTTCCGTAGCCTTAGT -CCGTAATCCATTAATCATTGCAAATCCGACTGGAAACAGGAAGAAGCTCG -ACTCATCCACCCAAAACTCGACGTTTTCATGCTGAACCTGCCGATCTTTG -GCCTCTACGGAAGGAAGATCTTCGGGATAATCCTGAGCGGTGACCATGAC -CATCAGACGGCGGCCAAGGATCCTGAGGATCCGTGCGACACGGATTTCTG -TTGGCTCCAAGTAGTTGAGTAGCTCGACGCGTTGATTCAGCCGGAAACGA -GATGGGCGGTGGGCAAGGTGGCGGAGTTGGTCGAAGATTTTTGGCTCAGA -GATTCGATTTTCGTGCAGCTCGGCTTGAAATTCCTGCAGGAAAATTTTTT -TAGGAAATGGGAAAATCAGAAGGGTTTTTTGGAGTTTTTTTTCAGTATTA -TTTTTTTTGTTGTTTTTTTGAGGCTTTGTTAAAGTTTTTAGGTGAATTTT -TTTTGTTGATATTTTTGGTTTGTTTAAGAATAAATCATTTTTTGAAAAAA -ATTCGTTTTTATATTTTCGGTTTTTTGCTGGTTTAGTTAAAAGTTTTTTT -TTCGGATTTTCAGGTTTTTTGACAAAAATTGATTTTTTTTTTGGTGTATT -TCTTAGGTTTTCGGGTTTTTTTTTTGGTTTTTGACGAAAAATTTATTTTA -AAAAAAACGGACTTTTTTGCAAAAAATATGGGGTTTCTTAAAAAAAAAAA -TTTCAATTTTTTTTGTTGGATAAAATTAAAGTTTCTTTTATGGTTGATTT -TTCGCCTTTTTTCACATTCTCCACCAGAAAAAACATGAAAAAAACCAGAA -ATGAGTAGTTTTGAGCAATTTTCAGGCAGTTTTTCCGCTCAGAAAATAAT -TTTGGCCGGATTTTCATGGTTTCTCACATCCAGAATCTCCTCTGTTGGCC -GTGGTACGGGCGGTGCAGGCGTAGATCCACGTCGCCAAAATTTCGGGCAT -TGCATCGGTTTCAGCAAGCTCAGTGGCCTGTATTGAAGCCATTTCATCGC -TGGATCCTGCTTGAGACCGCTGAAATTTCGCGTTTTTTTTTGGAAATTTT -GTTGAAAAATAACCTTCCAATATCGAAAATATCCTCTGAAAGCATATGAA -ACCAGCAGGGTCTTCTATTAAGTTCCCCCACAAATTTAATTGCCACGTAG -AAGCCGCAGACAGCAGTCACCTCGCCGAACCAGCGGATTTCTGGAGATTT -AGTGGTTATAGAAGGATCCAGAGACGGTCGGACGACTACTTCTAGCTGAA -AACATTAAGATTATGGCTTTAAAGTTTTTTAAAAGAAAAACCAACTCGAA -ATCCAGGTTTTAGGTGCTGATTTAGCTTTTCCAGCGGCAAACAACCCTCC -AGCGCCTCGACAGGTAAAAATTGAGTATTTCCATCATAATTACATCGGAG -TTCATCTGACCATGTGAATGTTCCTTCAATTTGTGGCTTTGGAATCCGCT -GGGCGATTTTCTCAACTGGATTTCTTCGACGATAGAATAGCCGTTCTTCG -GTGAAATATCGGTATTCTGCTTCTTCAAGTTTGTAATTATATTGACGCTG -AAAGTAATAAATTATGTTTTTCGATAAAAATGCTTTTAAAATTACCTTTT -TATTCGAAAAATTCATTGATTTTAATTAAAAATCTATTTAAATTGTTTAA -ATTAAAAAGTTCCAAGCTTCTGTAGTTATCGCGTCGAGACCCAACACACT -AATTACCACATGCGCCTTTATATAAATTTTAAGAAAATCAACATTTTAAA -AGATTTTTACAGTTTTTTTGTCGTTAAATTTTTCGAAAAAATGATTTAAA -CTCACAGTAAACTTGTTTGAAACTTGAATATTAAAATTTCACAGTCAATG -GGTTAAATTTCAAGACTTTCCCACTGATGATACGGTAGGCGCGAAGTACG -GTAGTTTGTTTTGTTTTTTTTTATTTTGCCGCCGAGTGATTCAAATTTGA -ATTTATATCATCCGATTTTTTGATTTTTTCCTCAATATTTCTCGATTTTT -CAGCTTTCAGTGTGATTTTCCAAGAGCCGTAGCTCGACCAGACGACGGAG -AGCCTGAGGCTGGTCGCCAGAAGCACTATGAAGTGTGGGTTTTTTTTAAA -GCATAATTTGCATTAATCTTCTAATATTTTAGCCACCCCACACCGTCCAC -GAACAAACTCCGAATCGAAGCTCGGGGCTCGCGAGCAGCTTCTCCGGGAC -TCTATACGAGTGGGTTTAAGTTCTTAATTTCAAATTTCACTCATTTAAAA -ATTTTATTTTTTAGCTTCAAGTAGCTTCGGAGCCGTACGTCCACATGACA -AAGGAATCCACGTGGGACGAGGCGAAAAAACTGGCGATCAGTCTTGAAAA -GAAGCCGGACATTGTCCGTAAAGCGATATACAATCGTCGTCGCTTCGTCA -ATGAAAAGATAAAAAGTGCGCTGGTCAAGCGCGAAATCATCGACCCAAGA -AGCCCGGCAATCCATGAAATAGCAGTGGCGGCGGAGGTATTTTAAAAGAA -AATCAGACAAATTTAATATCTAATTATTCCCCATTTTCTTGCAGACAATC -GCCATAAACGTTGTGCACTTCTTGGAGACTCATCACGCAAAAATACTCGC -TGAAATCAAAGCGGCCGCCGCTGGAGCCGGCGCCCAGCTCCGAACTGCAT -GAATTAATTCAAATTAATATTTTTAAACTCATTTTTCACACAAATAATCA -TTCATGTGTCCATTTTTCACTCTCGAAACCCATATACCCTCACTCTAAAT -ATCAATATAATGCACATTTCTCATAGTTTTAATCTGCCCTTACCAATTAA -ATCTTACCAATTTTCCGCCATGATCCCTTTTTCCATTTTGAATAAAATTC -GACGACGATTTTTCCATTAAAACAAGAAATATATAAATAGATTCAAAAGT -GGCGCTTGTGTCGCTCAGCGGTCTCCTCCACTTGCACACTATCTCACCGC -GGCCTTCCAATTACTCGTCCATTTTCCAGCTGTAAAAAGTTTATAAAAAC -TGAAATAAATGCAATTTTCAGCAGAAAATCGCTGAAAATGCGGCAAATCG -TCGAGCTAAAGTCACTTTTGACTTCGGAGCCAATTAAAGCCATCGAGCTC -TTCGATAGGCTCGTTGGACAAGGTTTGAGCCGAAAATCTAAACTTTTAAG -CTGAGATTTCTTTTAAAAATCCCTTCCAGATGCCGACACAATCACCCAAG -AAGCCTGTGGAACCCTCGCCAACTATATCCGGCATTCCAGTGTTTTTAAG -CGACGGCTTCTGTTCACGGAGCTCCAAAAATGCTCGTTTTTTGCGAAATT -GTGCATTTCGTTTCAATTTCACAGCTTTGAAGACACAGTTTTTCCGCGAA -AATTGATTTTCGAACGATTCAGCGTGTTTTGCGGTGAACTGGAAAAGGAC -AAGCCACGTGGGTTTTCATTTATTGAAAATTGAAAAGATTTTTGCAAAAA -ATCATAAAATTTAATGTAAAACTGAACAAAACTCGATTTTTAACCGAACC -TTTTTGTTTTTTCCGTGAAAAAATCGGTTTTCCAAGTTTTTCGAACATTT -TCCGAAAAAAAATTACGCAAAAAAAACGATTTTCAAGTAACAAATCCGGA -AAAATCAAACTTAAATATTTTCGGAAAATTTCATAATTTTCTTCAAATCT -CTGTAAAAAGTAGATTCGATTTCTGGGAAATTTGAATTTATGTCATTTCT -TTAAAAGCGCATGCTCTTTTGTAGGGTCTCGCAACGAATTATTCAATTTA -AACTTTGAAATTCGCGCCGAAATTTGGGTCTCGGCGCGATTTTTCGAAAA -ATAAATGAAAAATATGTACTATTAATTTTTTCTTGAAAATTATTGATTTT -TCAGATCACCGGCACCACGTCACCGCTGTCGGATCGAATCGTTTCTTCAA -TTTGGGACTACTTTCCGATGGAAGCCCCGTCTCAGAACCCCGACTGGTCC -CCGTGCCACGTGTAATTCAAATCGAGATGACAAATACACACACAATATTT -TTGACTGCTGAAAATCAGATTTACGGCTGCGGAAAAGCTTCATCTTTTTT -GCCGGATAAAACGGAGGAGACGGACGGTGGTTATGTGGCACTGCCCACTT -TGGTAGAAATTCCAAAAGTTACTGGATACGTGGCAGCTGTGAAGGTGTTC -GATGGAGGATCACAGTTTTTGATTGGCGGCAAAGTACGGTTCTAGAAAAT -TGGTGGCCGAGTATTTTTTCGCGGCCACATGGCGATTTTCTACACGAAAA -GTTGTGTAAAAGACAAAAAGGTGTGCGCCTTCAGGGATTACTGTAGCTGA -AGTTTTTCATAGATTTTTTTTTTGGCTTTAAAAAAATCCTTAAAGGTGCA -TTTTCGTGTCGAGACCTTGTTGTATTATTTTGCTAATTTTGCTTAAAAAG -TACAGTACCAGGTCTCGACACGAATAGTTTTGATAAATGCAAAAATGTGT -GCGCCTTTAAGGATTACTGTAGTAAAAAATAAGAATCCCTTTTGGAAAAT -TTGATAATTTTGTGAAGAAAAATAGATAATTCTTTGAAAATGAATAATTT -TTTGGAAAAATCTTTTTTTCTTATTTTTCTAGACGTACACCTTTATTTCA -TTAAAAAATTGTCGCGCCGAGACCTGATACCGTATTTTTGAGCGCAAAAT -CGTGCCGAGACCCAAATTCGTGAATTCAAATTTTCAGTGGTATTGTGTTG -GAAAATGTTCGATTTCCGGAGAAACGCGACGAATTTCGTCGAATTGTTTT -GTTCTGGTAGAGGAGGAAAACGAGGAGAAATTGGAGAAAATGACGAAAAA -TATCGATTTTTACGTGGCAAATGTGCCGATTGAGGAAAGGATTGTGAAGG -TGGATTTTTTTTTTCAAAAATTTGAAAACAAAAAAACTAAAAAAAAAAAT -TTTAATCTTAGTTTCTAGAATTCAAGCCAGTTATAATAATTTTTAAACTA -AAAATTGCATCTTCCGAATTTTCAAGATTTTTTTTTCTGAAAATCGTTTA -AAAAAATATCTTGAAAAATCAAAATTTCAAAAAAAACAAAACTTGAAAAA -AAAAACGTCTTTAGCGGTATTTTTTCTATAATTTTTCAATTTTTTTCAGC -TTAAAAATCATAGAAAATCGTAATTTTTTGACATTTCTTCCAGGTATATC -TAAAAATGGACCAAAACGAGATTCTGTGGGATAGAACGAGCGATTTCTCA -GCGGAAAAGCCGATTTCCTTCATAATCAATGGATTTCCACAAATGGCAAT -TTTCGAATCATTTCAACTTTTAAATGATGGAACTATTTATGCTGCGAGAA -ATTCACTTTTCAAAGGAAAATTGGAGCTATGGAAGAACAAAGATGACGGG -TTTAAAGTGAAAAGCGGGACTGTTTTGGAGCATTTTGACACGAAATATAC -ACTTATTGCACTGATGGAAGAGGTTCCCGGTACTATTGGAACAGAGTTTT -TCAAAGTTTCACCAGATGGGCAGAATTTGATTATGAAGGTTCATTTTGTT -TGGAATTTGAAGGAATTCGACCTTAAAAATATAAAAAATTGCACTGATGA -TGTTATGGATTTTTTTTTCAGAAAAAAAAAAACGAAAAATTGAATGCTAA -ATGACAGAAAATATGCCCCTGTAACATTTTTTTTTTGAATTTTCTAAATT -TTAAATTATTTTTTTCAGTTTTGCGCAAATCAAAGAAACGGCCGAATTAA -ATTTGAATTCCCGCGCAAAAGAGTGACGTCATTTTTTTTTTCCCGTTTTC -CGGATGTATTATTAGGTTTTTATTTTAAACACAGTTTGTCAATTTTTCAG -ACATTTTTTTTTAAACTTGATAACCCGAAAAAAGTGGCCTAGAAATCGGC -TTTACAATTTTTTTTTTAAATCGACAAACTGTGTTTCAAATTATGAAACA -AGGAAAAAACGAAGAAAAACTTATAGCCGGAAAACGCGAAAATGTCGAAA -ATGACGTCACTAAATTGCGCGGGAAAAAATATAGAATTTTTTTTTAATTA -ACAGCTATATTGAATCATTAGGGCTTGTTCTCCGTCAAAAAATTTCTCGA -AAAAATTGATTTTTCGTTTTTTTTTGGAAAATCGAAAAATTTTGTTTCTC -AAAAAAAACAAAATTGGAATTTTTATTAAAAAATTATTTTAATCCAACAA -AAAAAACTAAAATTTTTTGCAAAATTTAAAAATTCATAAAACATTTAAAA -AAATTTTTTAAAAGTTATATTGGGACTGTATTCTAATACTTGGACTAAAA -AAACCCACATTTGACAAAAAATTCAATTTAAAATGAATATTTTCAGATGG -GCTACCAAAACGAACAGAAAACCGAGAAATTCGAATTCGAGTCTCCCAAA -ATTCACAAAATCATCAAAAATCGTGAAGTACAATGTGATCCAGTTGATAT -TCCGTTAGACTCGACTATTCATTTTCATCAAAATTATAATCAAGAAGTAT -TGAAATTTCAATCGAATCGATTATTATTTCAATGGATTTATCCGAATTAT -TTGTTTCAAAACGATGGAGATGTACATTTTTCAATTGAACAATTGGAGAC -TGTATTTGCTGTGGATTTGGAGAATTTGGAATTGTGAGGGTTTCTTTTAT -TAATTAAAATTTTTTTAAGTGGAAAAATTTTGGTTTTCTTTTCAGAAATT -ATTGTAATGTTGTAACTAAATATTACGGGAACACGAAATTCTAAGAATGC -GTATTGCACAACACATTTGACGCGCAAAATATCTCGTAGCGAAAACTACA -GTACTTCCTTTAATGACTACTGTAGCGCTCGTGTCGTTTTACAAGCTCAA -TTTTTTAATACTTTAAATTAAAACTTTTACTTTAAATTTTAAAAAAATTC -GTCTTATTTTTTAATTTTTGCTTTATTCCAATATTCTGTCGATAAATAAA -TCATTTTAATAAATTTAGAAAATTGAGCCCGTAAATCGACATGCGCTACA -GTATCCATTTAAAGAATTACTGTAGTTTTCGCTACGAGATACTTTGCGCG -TCAAATATGTTGCGCCGTACGCATTCTCAGAGTTTTGTGTTCCCGTAATA -TAGAAAATTAGAAGTATGTTAAAATTTTTAAAAAGTATTTTTTTTGGACT -TTTACCCAAAGATTTTTTTTTGCAAATTTTTAGTGAAAATTATTATTTTT -TTCAATTCACGCTAAAATTTATTAAAAATTTAAATAATTTTAGACTGTAT -TCTATACAATCAAAAAACAACAAACATCAATAAAATTTTCAATGAGTTTA -AAATTTTTTTGAATTTTTTAAAACTTTTCTTCGTTGACAAAACGTTCACA -AAACTTGAAAAAATATATTTCAAATTAATACTTAAAAATTCAAACAAAAA -ATTTTTAAAATTTTTCAGCCCGAAATACCAACCTATATCACCAGAAGAAT -TCGTTCCCACCGACACTTCTCCCTCCGATATCTGGTATTTAAAATCCAGT -GAAAAATTGAAAATCCCTTGTCACAAGTACCTTCTCCTACTACATTCACG -TCAAATTGGCGCGATGCAGAGATTTCATTCAAATTATGGGAATTTCGGCG -ATTTTAAGGATGGTAAATCTGAAAATGAAGTGGAAATTGAAGCGAATGCT -AGTGTTGAAACTGTGAAAAATGCGCTGAGAGGGATGATCAATATTCGAAC -TCTTTTCAAAATTAAGACTATTGAGGTAATTGGATTTTTGGTGAAATTTG -AAATGAAAAAATATTTATAAAAATTGAATTTTTTTTCAAATTTTTTTTTC -AGTCACCATAAGTCAATTTTCCATTAGATAAAAATCGATACTTTTTCTAA -ATGCGATAAAAATTGGAAATTCTATAAATTCCGGAAAAATCGATTGATTT -CAAAAAATCGATAATTTCCGGAAAATTGATAAATTCCAGAAAATCGGTAA -TTTCCGGAAAAATCGATAATTACCGGGAAAACCAATTAATTTCCAGAAAA -ATCGGTAATTTCCGGAAAAATCGATTGATTAAAAAAGTCAATAATTTCCG -GAAAATTGATAATATCTAGAAAAATCATTAAATTCAGGAAAAATCGATAA -ATTCCAAAAAAAAATCGATAATATCCTGAAAAGTGAATAAATTCCTAAAA -ATCGATGAATTTCATCAATTCCGGGAATATTTTTTAAATTTAAACTTTAA -AAAATATTTTTTTAAATCTTTAATCCTTATCTATTTTATTCAAAAAAAAA -CTGATCAAAAAAATTTTTTTTTTTCAAAAATTCAATATTTTTGCAGTTAA -TCGAATGCATCAACTTCTACGATTATCATTTAATGGATGAAATGTTCAAT -GATTCAATGCATATTCTAATGGAAACAATCACTGAATTCACACTTCCATT -TCTCTACGAATTATTCTATTCGTTTGAGGAAAAAGTGTTGGAGGGACTTT -TGCAGAGGAAATATTTGATTTCTAACTCAATTTCCAGTGTTTTACCGCCA -AAGGAGCTTCTTGTACGGTAAGTGAGTTAAGAAATGGAAAAAAACACATT -TTTGCTACTGTTGGAATTTTTTTTATTTCACAAATATATTTTTTTTCATT -TTAAAGTTAAGTAGGAGTTTATCAACTTTTCTGGATTTCATCAATTTTTC -CGAAATATTTTGATTTTCCCGGAATTTCTGTGTTTTTCAGGAAAAAAACC -CCAGAAAACTAACAAAAAGAATTAGCAAAAATGACCTAAAAACCGTAAAA -CTATGTATCCCAACTTGTCCACGTGTAGTACAAAAAACCGATGTGCACCA -ACAAGAATTTTTGCAAAAGCTATTTTTCCATTCAAAACTGCGCCCCAAAC -AGTTGAAATTTTATAGAAAATTTTCGAAATTCGCTTCTCCGAAAATAAAA -ATCTCAGATCCGCCCATTTCTTGGCTCTTCCAGATTCGCTGAAAAACTGG -ACACCGATTGCCGCCGACACCACACATTAAAAGTTCCGTCGAAATTCAAA -AATCTAGAAAATCTGAGCACCTATGAGCCCGAGTACATTGTCAAATATTT -TCTGAATCTCGACCAAGATTCGGAGGATGTGACGTGGCGATCGATACGTC -ACGAATTCCACGACACACTTGACACGTGGCACGCGGAAGCTGTGAAGAAG -AGAGATGAGAGACGTATGCACGGAGCAACACGGAGCAGAACGAGTAGTAT -TCGGAAGGAGAGCTTTACGAAAATTCAAAATGTTTCGATGACGTCATCGC -CGGTAGGAATATCGATTTTTATGTATCGAATTTACTGGAAAACTATCAAA -AGTTTAGGAAAAATATCGATTTTCCTGAAATTTATCGATTTTCCTGAAAT -TTATCGATTTTCCTGAAATTTATCGATTTTCCTGAAATTTATCGATTTTT -CTGGAATTTATCGATTTTTCTGGAATTTATCGATTTTCCTGAAATTTATC -AATTTTTCTGGAATTTATCGATTTTTCTGGAATTTATCGATTTTTCTGGA -ATTTATCGATTTTTCTGGAATTTATCGATTTTTCTGGAATTTATCGATTT -TTCTGGAATATATCGATTTTTCTGGAATTTATCGATTTTTCTGGAATTTA -TCGATTTTTCTGGAATTTATCGATTTTTCTGGAATATATCGATTTTCCTG -AAATTTATCGATTTTTCTGGAATTTATCGATTTTCCTGAAATTTATCAAT -TTTTCTGGAATTTATCGATTTTTCTGGAATTTATCGATTTTTCTGGAATT -TATCGATTTTTCTGGAATTTATCGATTTTTCTGGAATATATCGATTTTTC -TGGAATTCATCGATTTTTCTGGAATTCATCGAGTTTTCCGAGATTTATCG -ATTTTTCTGGAAATTTTACTCCCCAAAAATTTAACAATATATCGTGCCGA -GACACGAAAAACTCTAAAAATTACAGATTCCAATCGGAGGCGGCCGCTCG -AAACCCGAAAGTTTCTCAAAATCAATCAATAGTCCTGTCATTCAATCGCC -ACTCTCTCCCTCACCAATCAAAGGAATGCCAAAGGTAATCGTGTCGAGAC -CCACCACGCCACCTGCGCCTTTAAATTCCACGTTTTGTAGTCCCGCCACG -ATAGTATTTCCAATTCACTGGACGATTTTCCTGAAATGAGCATTTCACCG -TCCCCCTCGACACCGAAATCCTCTTCCGGTGGCGGTCGCTTCGCACCAAA -AGGAACTCGATTTAAAAAGGATTTCGAAATTCTCGTGAAACCTTCCCAGT -CACCACAGAATCCGTGGAAAATGGGCGGAGCTTCCGCGTCGATTCGCGAA -GAAATTGATCCGCAGGAGATCCGATTCGACGAAGTTGTGAAGAAGGAACA -GAAATTGCAGACTAATATACGTGCGTCACTTGAAATTTTGGAAAAATCGA -TAATTTTCAAAAAAATCGACCTTTTTTTGGAAATTATCGATTATTCTTGA -AAATTATCGATTATTTTAAAAAATTATCGAATTTTCTGAAAAGGATCGAT -TTTTTCGGAAAAAGTTTCGATTTTCTCGAAAAATAACGACTTTTTTTTTG -AAAATTATCGATTTTTAAAGAAATTATCTATTTTTTTGGAATTTATCGAT -TTTTTTTAGGAAATTATCGATTTTTTTAAGGAAATTATCGATTTTTTTAA -GGAAATTATCGATTTTTTTGGAATTTATCGATTTTTTTTAGGAAAAAGTT -TCGATTTTTCTCGAAAAATAACGACTTTTTAAAAAAAATTATCGATTTTT -AAAGAAATTATCTATTTTTTTGGAAATTATCGATTTTTTTTGAAAATCAT -CGATTTTTAAGGAAATTATCGATTTTTTTGGAATTTATCGATTTTTTTAG -GAAATTATCGATTTTTTTGAAATTTATCGATTTTTTTAGGAAATTATAGA -TTTTTTCTGAAAAATTATCGATTTCTCAAAGGAAAAGTATCGATTTTTGG -AAATTATCGATTTTTAAGGAAATTATCGATTTTTCAAAAGAAGAGTATGG -ATTTTTTGAAACTATCCATTTTTCTTTTAATTATTGATTTTTTTCCTGAA -AAATTATCGATTTCTCGATGGAAAAATATCGATTTTTCTGAAAATTATCG -ATATTCTTTTGGAAATTATCGATTATTCTAAAAAAAATTATCGATTTTGC -AGGAAATTCTCGATTTTTAAAATAAAAACAGCGATTTTTTTTTTGAAAAT -CATCGATTTTTAGGGAAATTATCGATTTTTCTGAAAATTATCGATTATTT -CTTCAAAATTATCGATTTTTCGAAGAAAAGTATGGATTTTTGGAAACAAT -CTATTTTTCTTCAAATTATTGATTTTTTTACCTGAAAAATTATCGATTTT -TCTGAAAAAATATATAATACCACACATTAATTTCAGGAACCGGATTCAAA -AAAGTGCAGCTTCTACCACACGTGGAGACGGAAGAGCTCGCCGGAGCTCA -AATTTTGGAGGTTTTTCGACGAGAACTTCACGATGAGGCGCTCATATGTG -TAGGAATTTGTGATGGTTTTTTTCTCAAAAATTTGAAATTTTTCAGGTGG -AACTGGTGATGAGCGACGATTTGGAGGTGGAAAACGAGCAGATCATCTGG -GGAAACATGCCGGGACTTGTTCGGCGTTAAATTTTAAATTTTTGATTTTT -TTTTTTCTTGTAACTTGCATTTTTTGTTTAATTTAGTGTTTTCGGTGTTT -TTTGTTGAAATTTTCGGGTTTTTAATATTCAAAAATTAATTAAATTATTA -TAAAATAAATGCATTTAGAAATGCGGTATAAATTGAAAATTTTCAAAAAC -CATCTCCCCGAATCCAGTGGTTTAGGATGAAAATCGTGGAAATCGAGCCG -AACGAGAGAATTCCGAGTTGCCACGTGGGTCTGAAAATTGAGTGTATTTA -ATTTTGGAAAATTTTGGAGATCTCTTACATTTTCTCAAAAATCCATAGCT -TTTTCCCATTTTTTTGTTGCTGGATCATTTTCAGCTCTTCGGTTATATCG -CAGACTTTGAAGCAAGGGTCTTCCGGGAGAATTTCCTGAACATTTGAAGT -TTTTGGGTGAAAAAAAAGCTTTTTTAAAAGATTTTTTGGTATTTTCAAAT -AATATCGGAAATTTGCGTTTAAATTTTTTTTTTCAAAAAAGTGAATTTTT -TCAAATTTTTCGAAAAATCGAAAAAAAAATTTTCGGGTTTCTGGAAATTT -TAATTAAATGTGTTTATGATGATGAGAAAATATAGTTGACAAAATAATTT -TTTCCGATTTGTCAATTTTTCAAAAAATTTGAAAACAATTTTTTCCATTT -TTATTCCTGAACATAAAAAATTCGAAAAATTTTCGTTTTTAATAATATTT -CGGAAAAATTTTGAATTTACCGTAGTTGTGTCATTTTTAAAGAAACTCAC -AATATTTCTAATCGAAGTATGCATATTTTTTAAATGAATTTTTGGAAAAA -TTTCAAACTTGTTTTTTGTTGAATTTTTCGATTTTCTTTCGTTTTTTTAA -ACAGAACAAATTTTTCATCATCTTTTCTACAAACAAAACAAAAAAAACAA -TTTTTGTTTTTAGAAAAGCGAGAAAAATTTCGAAAAATTATTTTAAAAGT -TAGAAAAATATCAATTTTGAACGGAATTTTTTCAAAATTCGATTTTTTTG -TTTATTTTTCTAATATGTTCAGTTTTTGGCCATTTTTTTTTTTAAAAAGT -TTGCTTTCAAAAAATTTTAAATGAGAATTTAGATTTTTTAACGAGAAATG -TTGAAATTGAGAAGAAAAAAAAAATCAATTTTAAATAGAAAAATTTTCTT -TTTCTAACATTTTCAGTTTTCTCAAAATTCCAAAAACTCGTACATCCTCC -TGACAAGTACAGTAATCCATTGGATCCAGATTCTCCTCTCCAACACTCGT -TTCCCGAATTTTTTCGAACCAATTGTTCATTTTCATAAGAACCGAGCTCA -TCGCAATCAATTTCCCGATATTTCCATCGTATTCCTCCGAAAATTGCTGA -AGCCGATTCAAATTTCCAATATCATGCTGGTGGAGAGAATACGGAGTGTT -CAATAGATCCGTAATTGATTTAACTTTAAAATTTGGTTTTTTCATTGTAA -TAATCATGCTAATCGTCTTGACATGATCTGTTAAATTCTCTCGTTTCGGC -GGAGAATATAATCGATATTCCAGTGGCACGAGGTTGTCGAGAAATCTATT -GAAATTCTGATAAATATCGTTCCAATCACTTCGAAGCTCGTCAGTTTCGG -CTCCAGCTCCGCTTTTGAAGCCAGTCGTTTTTAGATTGTGCTCCAGCGTG -TCTATTGAGCTCTGAAAATTTGATTTCAAAAATTTTGAGTAACTCAGACA -ACCCCATTTTTCATCTAATTCGAAATTAGCCACATCTTATAAGAAATTAA -CCACATCTAATTAGAAAAAACTTTTCTAATTAGAAAGGATGCATATCTAA -TTAGAAAAGCTGCACACCACATCTAATTAGAAGGGATGCTCGTCGAATTA -GAAATGAGGCACATCGAATTAGAAAGGGGGCGCGTTGAATTAGAAGTTAT -GCGCATCTAATTAGAAAGGAGGCACATATAATTAGAAACACATTGCGCAC -CACATCTAATTAGAAGGGATGCTCGTCGAATAGTACTACCTTTTAATGTA -TGTACTACCTTTTAATGTATGTACTACCTTTTAATGTATGTACTACCTTT -TAATGTAAGTACTACCTTTTAATGTATGTACTACCTTTTAATGTATGTAC -TACCTTTTAATGTATGTACTACCTTTTAATGTATGTACTACCTTTTAATG -TATTACCTTTTGGCTCTTAATGTTGAAAATAAATCGAATCAAATTAGAAA -CAATGCGCGTCGAATTAGAAAAAAAGCATGCCGAACTGGTGCGCGTTAGT -TGACCCTATTTTTCTAATTAGATGAGAGGAATAGGGTTGTCTGAGTAAGA -CTGCAAATTATCAAAATTTTTTGGTTCAATTTGTTTTTGGAGAAAAAAGT -GAAATTTCCTGGCAATTTTCAGTATTACGTAGACGTCGAAATATGAGATT -TTTCACCATTTCTTATGGGTCTCGCCACGCCGACAATCAATTATTGTAGT -TCATGTCGATTTACGGCGCCACTGTTGCATTAATATTCCAAATGACAAAT -TTGCCGCCGAGTTTAAAAAATTCAATAAAAGCCCGTAAATCGACATGAAC -TACAGTAGTTGGTTGTCGGCGTGACGAGACCCAATTCTCATCTTTCGACG -TCCACGTAATATAGAAATTTTTTTTTTGAAAAAATCAAACGATTTTGCCT -CAAAAAATTCAAAACTGTAAATTCAAAAAATACCACAAAAAAAAAGCGAA -AAAAATCGCGGAAGACAGTGGCGCCAGGCTGTCTCAATACAGTTTGATCT -ACAAAAAATGCGGGAATTTTTTCACAGAAAAATTGTGACGTCAGCACGTT -CTTAATCATACGAAATCAGATGAGATTTCTGCGTCTGCCATCCCGCATTT -TTCCAAGATCAAAGTGGAACTGGGACTTTCTGAATAGGACTTTCTGATTC -CACGTGGGAAGGATGACAAATCCAAAATTGCGATATTTCACTAATTTCAC -TGCTTGAATTTCCTTGGAACCAATCAGCGTCTTCAAACTCCGCCCACTCC -ATCTGATTGGTTGAAAAATGGGCGGAGCAAATCGCTGATTGGTCGCAGTT -CTCATTTTTAGCCAAAGTTAAAAATCTCGATTTTTCAAGGTTTTTTGACC -ACCTCCAATTCCAAGCTTCTTCCTTACCTTCAAATCGTAGAATATTGCCA -ATTCTCTGATTGCATCGAGTCCTTCCTTCAAAACCACAACATCTTGCAAC -TCGAACCCCGAAAGCTGATATTTCTCGTTTAACTTGAATTCTCCTAGAAT -ATCCTTCGCACGTAGCAACTCTCCAACGATTCCTTCAGTTGGTAGAAACT -CTTGTAGAGTGTACACTGCCTCCCAGATCTTCTCAAGATCCCCGTAATTC -CAGACATCTTCCGAGCTAGCCACAAGAAATTGCATATGTTGGTGTTTTTC -GTTTCGAGCAACACATTCCAATGAGGATACGAAGTTAGACTCGTTGATTT -TTGTTAAAACGTTTATCATGCTGGCGTAGATTTCCTCGAATTTGGTTTTT -CTTTCTTGAAATTTTTTGTATAGTTTTGAGGGTACCATACAAAAATTCTC -GGGAAACTTTTCGATATCATCTATCATCATCGTCAGGTTATCGAAATCTA -TATACTACAGTGTTTTTTGAAGAGTTTCCACGATATTTTGATCGGTTTGA -TGTTTGAATGCTTCGAGAATACGCTCGTCTCCGCAACGTCTTAACGTAAT -GCAAGGCTGTGCGGTGTGTACAAGTGTCTTGTTTAGCTCTTCAAAACCGG -AGCGATACATAGAAATGGTTTCATGCGCAGCGTCCAGCTGCTCAGGGCTC -TTGAAAGTTTTCAAACATTCCGAGAAGCTCTCAACAATGCTGTTGAGGTT -ATCCTTTGGCAGATTTTCCCGAATTTGATTAACTTCTGATAGATATTTAT -CGATATATTCGATATTTTTATGATATTTTTCCGTGTTGTTTAGGATTTTT -TGCATCGCAAATTCGAATTCCACATAGTATTCCAAAAACTTATTCAATGG -ATGCAGGAATTGAATTGATCCTTTGCCAGAAACGCTTTTTATCCAATAAT -TGCTCTGCTCTTTTATGGACTCTCGAATACTTTCTTCTCGTTTAGGGAGA -CCTAAAGCTCCACGATCAATTCGTTTTTTGAAAGAAATAATTCAAAAATA -CCCAAAAGAAAATTGCCTGATGGCCTGGAAGAATGCGTATCCGAGGATTG -AATACTACGAATAACGTCCCTGACCTTTCGCACCCAATTTGAAAGCCCCA -GTGTCGTATTGGTGTCGCGAATCATTTCTAAATCACTCAACGCCGCTTCG -AAATTGTTCAGTCTTCCCACTGACAAGAAGTCTCGAACACTTTTACTTTC -ATTTTTCATTATAGTCGTAGCGAGTTTGAAGAGATAAAATGGATCTTGAT -GGAGCAATGCGAATTCTTTCTTGGCTCGTTCCGGAAAGAAATTTCTGTAG -TAGGCGCCAACCTCTTCGACCGTTTCATAGTTCCGTTCTGTACGATCTTA -AAAGGTGGAGTACCGAAATCTGGGGAATATTTCTAAATAACTCCAAATTT -GCTCCTGATTTCAATTATCCATGTGAAAAAATTCAAAAAATCCCTGATTT -TGTATTTCGGCTTGAAATTGCCGAATTCCATTTGTGCACACATGCAAATT -TTTCAAACGCGCGCCCAAAGAAATTATCATTGGAGCGCGTTTGCCTCATT -TGATTCTCTCCGGAGCACGGTAGCACAGAAACTAGATGGATTGGTTCATG -ATACTCAGTCTGGAAACCTATATTGGCTACTATCTCGAAAACCATCATAA -AATCGATTTTGCGATGCAAATAAGAAATGACCGCAATGAAATTATCTATC -TCCATTCGTGATGAATTTTCGATTTTGTACTTCCTGGCCAAGTTATGCAC -GTTTGTTCGGTGGAGCGCGTTTTCACCCATCTAGCAACTGACACGGTGGT -TCAGTAGCCAATATAGGTTTCCAGACTGAGTATCATGAACCAATCCATCT -AGTTTCTGTGCTACCGTGCTGAACCACCGTGCTCCATCTACCGTATTTCT -TCCATTAATATGGCTGCAATACTATTTTTCGATGGTCTTCCCGCTTGCAA -TACTAATAGGGAGTGCAATACTAATTTTCAGAATATTTTTCTGCCTTTGA -GCTTACTAGTTTTTTTCTGAAAAAGCTCGAATTTTATGTAAAAATTCAGA -AAATTGGTTTTAATTGTAACCTATAAGTTTCAAAAATTCAATCTCGTAGA -AATTTTTTTGAAAAATTGTTGCAAAATAGGCAAAAAATATTGTAGAAGTC -CTGAAATTAGCGAGACGGGATTGCAATAAAAAAAAGTAAACGCAAGACTA -TTAGGGAGTGCAAGACTAATAGGGAGTGCCATACTAATTTTCGGAAGGTC -TCCGAGGGGCAATACTAATAGGGAGTGCAAATCTAATAGGGAGGCCATAC -TAATAGAAGAAATACGGTATTTTTAGTTCCTTTATTTTTTCAACGAGAAA -ATCAAATGAGGCAAACGCGCTGCAATGAAAATTTAAATTTATTTGTGCGC -GCATTTGAAAAAACTCATTCGGACGCAAATAATATTCACGAATTTAAGCT -GAAATATAATATCAGGGAAATTTTTTTGTTTTTTTTTCATACAGATATTC -TGAATCAGAGGAATTTTTTTTAGTTATTTGAAAATATTTCCTAGATTTCG -GAAATCAAAACAGCAGCTTTTGTACAACAGCTTTTTTTTAAATGTAAAAC -TTGTTTAAAAGTCAAACCACGTCCATTTTAAAAATTAATTTTTTAACTTA -TAAAATAAAAACATGTGGAATGCTTTTGCATGTACATTTATACAAGTTTT -TTGAGAAAAATACATTTAAATTTGAAAAATGTGTTTACTAAAATTCTGAT -CAATTTTTTTGTTATTATATATTAATAGCTGAACTTTACTTTAAGACAAA -AATTCCTCTAATTAAAATCTACCTTCAAACCATTTTTTCAGTTTTTGCAA -ATTCTCCTCGGAAATCGCAGTAGGACTGGGAGCTAGATCATTGAGTGGCG -AGAGAAAATCACGGAAATTTTTCAGGCGATTTTTCAGGCCCCATGTTGCC -TCCCATCCGTATTTTGGTTTCATGAGAGATTGGAGATCATGAAATAAATG -CAAAAAAGCATCCAGCGAGGTGGTGATCTTTTTCAGTGATTCTCGCTGTA -GTTGAAGATGTGGGAGCTTCTTAAGTAAATTTACAGCTTCTTCTCTATCC -TTATAAACTTTAGTGTTCTTCCTTTTCCCGACAATCTCCTCGAAAGCTCT -CTGCTCATCCCATCCGCCAATAGATTTTGTTTTGTAGAAACTTGAAATCC -TATCAAAATCGATATCCCGATCTAATAGCTGATTCGTCAGATCCGTAGAA -GCGATTTCGCCGCTGAGAAGCCCATCGACGATAAGATAGCAGTTAAGGAG -CGGTGGTAGTGAGCTCATCCAGTGAATCCACAGGTTTATGGAGTCCTTTC -CGTAGACTGAAATTATTTTTAATATTAAAGTAGAAAAAAATTATTATATA -AACTAACTATACGCAGGAAAACTCGCATTAAGTTCCAGATTTCGATCGAA -GAATTGTGGATGTCCAGCTGGAAATTTTTATTTAAATTTAGTAAATTTAG -TGAAGAAATTTAATTTAAAAATACCTGTCAAGCGCTGACCCTTAATCTGC -TCCAACATTTGAATACCTTGCCGCTCCCTTTCCGAAATTTCGAGATCTCC -GCAGTGTTTACCCGGTAGAAAAACAAGAAGAAAGGGAATTATCGTTATAA -TCATCGTTATCTGGAAAAAAATTAATTTTCATGGAATATATTTCAAATTT -TCGACAACCAAACGCTGAAAATTCACATTTTTTTCAGGAAATTTGGTTGA -AAAATCTGTTTTTCATAATATTTTGAGAAAAAAACAAGCGTAAAGGTATT -CAAGGCGCATGCAATTCACTTAAGCCAGGGTCTCGAAGCGAACAGAAAAC -ATACGGTATTTGAAAATATTCTTGTTTTCCGCGGAAAGTCGCAGAATTTA -ATTTGATTTTTTTAACTTAAAAAAACAGAAAATTAACCGTTATACCTTTT -GAGCAAAAAATTCTACAAGATAATAATTTAAAACAATTAAAAATTGAATA -AACATTGAAAATTAAATGCTTAAATTTCAAGGCGCGTGCATCAAACTTTT -GTTTGGGTCTCACACCGAATGTAACAAGTACGGTAAGAGTGCGCGCTTAT -TTTCATTTTTCGAATTTGTGCGACCAGTTCTCATGTTTTTTAAACGATTT -TTGCGGTAATTTTGGCCATTTTTTCTAGTTCCCACCGACAAATTGCATTA -TTTCCGTATTTTCAACGAAAATTTTGTTAAAAAACCAACAAAAATTTAGA -AAATTGCATCATTTTGCAGGGATGAATGGTCAAGCGGATCGCTGCGACCG -AACCGCCTACGTTTCGGGTCTTCAGCCGACAATCTCCGACATAGAACTGT -TCGAGGTGTTCAATCGTGTCGCTCACGTCGAGAAGGTCATCGTTCGCAAT -GGAGCCGCCCGTCACGCGCTCATTGTTTTCAAGTTGGCATTTTTTTTCCA -TTTTTCCTCATCTAAATCTCTAATTTTCCTATTTTCAGAACTGTTCAAGG -CCTGTATCAGGTGCTCGTAAACTTTCAAGGAACAACTCTTCACGGCCGTC -AGCTGCACATTCGTCCACTGCGAGAAAGTTCGCACGCGAACAGCGAGGCC -ATCTCAACGATGTTCGAGAAGGTCAAACATCAGGGAAATTCCGGGAATTC -TTCGTATCGTCAAGAGCACTCGTTCCCCGAGTACCGAAACCAGAACCCAC -AGGCTTCATCATACCTTCCACCGAATCCACGTGGTCATCGAAACTCGACG -GGCTGTTTCAATGGTGGCGGCGGGGGCTATGGACGCCGACGTTCCGCCGG -TGGATACAATCAGTACAATCAGAACAAGTATCCGAACGAAACGTACCCGG -GAATGACTCTGTTCGATAATCATCCAGTGCAGCAGTATTCGGGCTTCAAT -CCCATCGATTTTCGCTTTGATGACTATGTGGAAGGAGCCAAAAGGTGCAA -AATTCGCCAAATTTCGCTAAAAAATCTGAAATTTCGCCGACTTTTCCCGT -AGCGCAGCAGTTTTTTCTTGATTTAGGCACATTTCAGGCAATTATTTTCG -GCAAATCAATATTTTTCCACCATATATGTTCTAGAATGTTTTAGATGTAC -TAGATTTTATTTTCAGACGAATCAAGTGATTTTCTATATTTTTACACTAT -TTTTTGTTGAAATATGACCAGAATATGCAACAAAGTGTTCCAGCTGCTGC -GAAAAGGAAAAATCGGCGAAATTTCGAATTTCAGTCTATTTTAATCTGTT -TAAGCAAAAAGAAAACTAATTTTTAAAATTCAGATTCGACAACCTTGCCA -ACCTGATTCGCTCGAGCACCCCCACGGATCCGTTCGCTAATTATCAAAAG -TATTTTTGAATTATTTTGAAAATCAATAAATTGGTTTTTTTTTCAGACCT -TGTGAATCCACAAGCACATCTCGTTCTCGTACGAATTCAGCAAAAGATCA -AAAGCATGGCCCGCCAACGTGGAAAATGGAGCTGCAGATTAAGAAAGATG -ACCACCACCACGCCGGCGGCGGAGCAGCAACCACAGGACAGAAGCTGTCC -CCACAACAGTTTTTGGCTCAGATAGCTCAGAGACAACAATCGGAGCAAAA -CGCGGATGAGGTGGCCAAGAAGAAGCGTCCGAACCTTTCGGTTATCAATC -CATCGCTTTTCTATGAGCAATACCCGAGAACATCGTCGCCAGTTGTTTAT -GCTTCAAAATCTAGTAATATTTTTTGGAGATTTTGGGAAAAAAACAAATT -TTCTCGAAAATACGCCCGAAATAGTGTTTCACGCGAAAATTGGCGATATT -TCAATTTTTCTGAAAAATTGCTATAATTTTTTCGATTTTCACGTGAAATT -GCAAGTTTTTGGATATTTTTCTCGAAAAACGTCAATTCATCGATTTACGC -AGCTAGTATACTCAGCAATTGACCATTTTTTTGCAGACAATTTGGTATTT -TTTACTTAAAATTCTTGATTTTCGACTTCTCGTGTGCTAATCACTTTTTC -AAATGCGCGCCCGAAGAATTTCTCATTGGAGCGTGCTTGCTTCGTGTAGA -TTTACGAGAGCTTTCCATTTATTTAACTTCTTTCGTGCTTTTTCAGTTTT -CCAGCGAGTTTCTGGCTCGACCCCTCGGTGTATTTTGTGCAAACACCGTC -ACGCGCAAATGCATGCACTTTTTCAACGCGCTGCGTGAAAATTCCTCTTG -CGATTTCAAATATTTTTTCCCGCCATTTTCCAAAATTTTCGAGAGGGGGG -GGGTCGAGCCAGAACACCTTGGTTTTCCAGCGAGCTTCCTTCATTTACGT -CGATTTTTTTTTTAATCTTCGTTAAAGTTCTAAAAAAAAACGACTTAAAT -CATTTTAAATTTTCCAAAATTCGGTTTTCCTTCTGCAAAAAAAATCAATT -TCCAGAACCATCCGGCCACTACGACGACAAAATCGCATCTCCACACGATC -CGGCAGTTCTCGCTTACAGTCGCCTTCGTGTACCTCAATCGGCCTTCGAC -AGTCTCTCACCAATCGACACCGACAATTGCTCATTCATCACAAAACACTT -GGGACCAACAACCGGTGTGAAGCGTGATTTGACGAACGACGAGTTGTCGG -ATATGATTGTATCAACTGGAAATCTCCGAATCAATCCAACCAACATCGAT -CATCATGACGAACCGGCACCATGGTCTCCGCTGAAACGTCTTCGCGCCGA -AAGTGGATCCCTATCAACTGCACAAGTCGCGTCGCCCGAGTTCTCACCGA -TCAAACCAAAGACAATGGAGTTCCACGAGACTGAGGATGATGTTTTTGAA -ACTGGACCACCACCAACCTACTTATCCGAAGGAAACGAAAACGCGGAGAA -GAAATGTGTTGAGCAGCCGAAAATCAACTACGACGACATTAATAATAGTC -GTCTTCCGTCGAATTCTCATTCGGCAGCACCGAATTCCGAGAAGAAGCAT -TTCGTTTTTCCGGTACGGGGGCTTTTTTTTGAATTACCGAAAAAATTCCC -AACTTTTTAAAGTTCAAAAAAGTCAAAATTTTTGTCCATTTTCTGGGCGT -GACTGCTTATGCCCCGCCCCCCTTTTTCGAAGTTTCTGCTTCTCGGAAAA -TGTATTCCCAAAGTGCCAGTTTTGAGGCCCCACGAAAAGGGAGCAGAACG -AAAGAGGCACCACGGATTCAAGATCTGGTGCGATTCCGGATCTGGCACCG -TGCCAACAACTTGAAAACGTGGTGCCTCTGAAAATTTGCTGCCAAGGTTG -AAATATCGAATGCATTACCCGTAAATCGACACGAGCTACAGTAACCTGTT -ATCCGCGTGGCGAGACCCATGCGCGTCAGATGTGGCGAAAATTATACTAA -AACCTGTTTAACTTGCAGAAAAACTTAATTTTTTTTGTTGAAAAAATTGA -GCCAAAAGACTCAAAAATTTCATAAAGCGAAACTTTAAAAAAATATATAA -TTTGTTAAAAATTTCACGAAATATTTATGAATTAATTAATTTTTCCAGGA -ATACCCAATGTGCCGTCACTCGTCAGTTCCATCGATTGCTCACTTGGTCG -GTGATCTGTCGGACTTTTGCCCACACGCTACAGCCGACGAGAAGATGCTG -CTCGACGAGGCGTCTTCAATCATCGAAAATACAACTCCAGCAGTGTCTAC -TGCTCCGGCTGCTGCTCCAGGAGCTACAATGCTCCAAATATAGGAGAAGA -TCACATATACAATAATATAATCTTATTGCATTTTCGCAATTCTCGTTCTC -TCCACACACATACACACATCATCCCAAGTATTCCTGTGCTGAATCTCAGT -TTGAATGATGTTTCATACCGTTTTTATCCCACTATTGCCTTATCGTTTCC -TGTTTTATTATATTTTTCATTTTTTATATTGCCACCACCACCACCAACAC -CACCCTCTCTATCTTTTTTTGTTCTTTTGCCTCCAGCAACATCATCACCT -AGTTTTCTGTGAATTTTGAATTTTGTGTTCCCCCGAGTCCCCTCTGATAG -GAATGATAGGAAAAACAATGAAAATGCGAGTTTTTTCAAAAAAAAAAATA -CAAACTAGGAAACTATAGAAACAAAAAAAAAACATTTGAGGCGCAGTACC -GAAATCTCTCCAAATTTGGCCCGAAAAATTCAAAAGAAAATATTTATTTT -TCTAAATTATTATTTTTCCGCCACTCCAGCCTCATTCTCATTGGAGCGCG -CAAAGTCATGTCGATTTACGAGATTAAGATTTTCAACGAGTTTCATCATT -GTTATCGATTTTCGTGTAAAGTTAACTAATTTTTTTGAAAATTTTCGCAA -AAAATTTTGGATAATAAAATGTTCAATTGGCACGAAAATGCAGATCTTCA -GCAAAAAAACCGACAGAAATGTGTAAAACTGAATCTCGTAAATCCACATG -GCATAACGCGCTCCAATGAGAATGTTTTTAGCGAAAAGTTTGAACAAAGG -AATATCAAATCAGGGCCAAATTTGGAGCAATTTCTAAAATATTTTCTCAA -TTCTTTCGGTATTCCACATTCAAACAATTATTCGGCCGTTCCCATGAGCC -TCTGAATCTCGATGGGATCCCTTGGCACTGCAGCAGTCAACAGCTCAATC -CCTCCAGCTTCACTAGTCGCCACGTCATCCTCGATACGGTATCCAATGCC -ACGAAACTCTTTGACAGGCCAATCCATCGGAACATACACTCCCGGCTCAA -TGGTAAATGGCACATTCGGTGGTAGATCAATGTCTCGGGATACTGTCGGA -CAATCGTGAACATCCATTCCGAGATAATGACTGACGTGGTGGGGACACAG -CTTCTCCGCCTGATGAATCATCTCCTTGTGATCCGTAGATCGAATCAGGC -CGAGTTCGGTGAAACTTGCCGCGAGAAGTTCGTTCATTCGGCGGAACAGG -GCGCTTAGGCGGACTTTTTCCATTGAGTGGGCGTAGGTGAGCAGTTCTTC -GTGAACGTAGAGAAGCGCTTCGTAGAGGGATAGTTGGGCGTCTGACCAGC -TGCAAAAACGAATTTTTTTTTGGGAAGGTTTTTTGAAACGATTTTTCAAA -TTTCGTTCGAATTATATTAAACTTTATATAAAACGATTATCCACGGATTT -CTGGCTTCCCTCATAAATTGGAATGGAAGAGTTTACCGAACTAGGCCATT -TTGGCTCGGCCATATCTGGTGCCGCGTCGCGGCTCGATTTTAGTTGTAAA -ACTAAATGCATTTGTACGTGTGGAGTACACGACTTTCCCACGCGTTGTCC -GGCGGGCGATTGTCAATGGAGCGCAAAAAATTCACTGAGGAAGGGGAGAA -CTCCGTGATTAGCACCGCCTATTTCTCTCACGAATCTATTTCTTCGAAAT -CTTCTATTTTTTAAAAATCAATTCCTGAATTCTGAAATTCATTATAGCGT -AATTTTTTGGGAATTTCACCCTGAATTCCATTTCTACGGAACAACATTTT -TTTCTCGAATTTGTGGTGACTCAAATTAGAATTTTCAAAATCTCCAGAAA -AAAAATCATTTTTCCTGAATTTTCTGGAGATTTTTAAAGGAATAAAGTGC -AAAAAAGACTCTTTTTGAGGCACCACCGAAAGGAGAAAGGAGAACACAAA -CCACGCCCATTTTTCCGTGCCGCGCGCAAGTTTTTCTGCAAATTTTTATT -TTCAAACGAGACAGCGAAACTCCGAAATAACGCATATCGTGTTCTTTATC -ATCAACGTGTTATTTCGGAGCTTCGTTGTCTCGTTTGAAAATAAAAATTT -GCAGAAAAACTTGCGCGCGGCACGGAAAAAATGGGCGTGGTTTCTGTTCT -CCTTTTTCACCTGTTCTCCTTTCGGTGGTGCCTCTTCTTTTTTTTTTCTA -TGTTTAGCGTAATTTTTTAGCCATCTTGGAATAGCCCCGCCCATTTCTCC -CACAAATCCATATCTACGAAATCTCGCATTCCAGAATGATTTGTGGTGTC -TCAAACGGGAATATTCAAAATTTCTAGAAAAACCCCATTTTTCTTGAATT -TTGGCCGAACTTCTGTAATTTCTGAAATTCTGAGAAAAATTTTCATTTGA -GTCACCACAAATACTGGAATGCAAGATTTCGTAGAAATAGACTTGTGGGC -GAAATCAGCAAAAAATGGGAAAACATTCAATTTTTTTTAATTTTTTGGGG -TTTTATCACTAATTTTTAGCACTTACAATCCAGAAATCGGAAAGCAACGT -GTCACATCTGACACATAACCATTCAAATCACACCCAGCATCCACGAGAAC -ACATTCCCGGGGATTTAGGTCATTATTTGCGTCCAAATAGTGAATAGTGT -TGGCACGAACACCACCGGCAATCACTGGTGGATATGCTTGCATTTCTGAT -CCACGACGACGTCCTTCAAACTCCAAGAGCCCGCAAATCGCGTTCTCGTT -GTGTAGATCACGTGATCCCGATATCATTGAGCTCATTGTCTGGGCTCCCA -CGTTGCACACGTCACGCATTGAGCTCATTTCGGATGGAGATTTTATTACT -CGGCGACGTTCGATCTGCAAGGAAAACTTGAAAATTGGCAAAAAAATAAT -TTTTTTTTTGAAATTTTAAAACGATTTTTCGGGTGTTCAGAAAAATTTTT -TTTAGGAAAAAATTGGAATTTTCCAAAAGTTTCAAAAAAATAATTTCTAG -AACTTTTTCCTAAAAAAAAAATGAATATTGAAAGCTTCGAAAACAGTAAA -AATTGGGAAAATTTTTTTACCGTTAAAAAATTTTTTTTTTTCGAAAAAAA -AATTTTCAGTTTAAAATTTGGAGCGTTTTCAATTTTATTGATAATTGGTG -AAACAAAATAAAAAGTAAATAAAAAATTTTTTTTTTGAAAAATTTGAAAA -ATTAGATTAAAAATGTTTATTCTGGGATGAAAAAAACCTCCTAAAACCAT -TTTCTGGAAAATTTAAACTTCCTATTTTGTTCAGACAATTCTTTTTTTTC -AAGAAAAAATCAAATTTTCCACTAGAAAATCGAAAAAAATTGACCTCGTT -TAAAAATTGGACAAAATTTGAATTTTTACTTTGAAATCCTCGAAAATCGG -ATTTTTTTTTCAAAGCTTGAACAATTTTCTGCAAATTCTATATATCTCTA -AACTCACAAAATGATTAATTTCCCGAACAGAATTAGCTTTAGCCTGTACA -AACTTATAGAGTAAATCATCAGAAGTCGAATCAAAAAACACTGCAGTTCC -CTTATCGCAAACTTTTTCCAAAGTCTGTAGAATCCGGCTAGTCGGCACAC -ATTCCGTGAATTTTGCAGTCTTTTCCCATTCGGATTCAGTTGGTAGGGCG -CCTTCCCATAGCTCATCATAGGCACTACGACGGTCAGCAAAAAGAATATT -TGTTTCTTTTGAAGATTCGGATATTCCTGATTGCATTATGTAATAACAAT -CTGGTGTGGTGATTCCGTTTAGGTATCTGCAAAAAAAAAAAATTTTTCAA -ATTTTTTTCTGTTAAAAATTTAATTTATTTTTTTTATCAAACAATTTTGA -ATTTTTCCCAAAAAAAATCCGAAAATTGTGAACAAATCTATTATTTTCGT -TGAACAAAAAAAAAACAAATTCAATTTTTAAATAATTTAATTTTCGTTCA -GAAAAAGAAATTTGTCGATTTTCGGCGGCAATGATTTTTTTTAACGAAAT -TTTCCTGAAAAATTCAATATTTCAATAATTCCTGATTTTCTAGTTTTTTT -TTTAAAGAAGAACATGTTAAATTTCTACTAATTTTATAACAAAAAATTTC -GGGAAAATCTAGAATTAAAAAAAAATGTTTTCAGAAAAATTCTACTAATA -TATTAATTTTAGCTTAAATTTCGATAATTTTAGGTTATTTTTCAATTTTT -TTAGGGCGAAATTTTGATTTTCAAAACAAAAATATTTTCTGACAAAAAAA -TTAATTTTCATTCTTTTTTAGATTTTTTGAAAAATTTTCAATTTTTTTCT -GAAGAATTTGGTACTTGTGTATTACATGCCCTCATTTTTAAATTAAATTA -AATGTTCATTAATTTCTCCATTTAAATTAAACGTGATATACATTTTCTCT -TTTTAGGCTTAGAAATTGCTATTTTGCTACTTAAAAAATTACTATTAAAA -TGAGGGCATGTAATACACAAGTACCAAGAATTTCAATCAATTCTTGTTTT -TGAAATTTTTTTTGGGAAAAATTCCAATTTTCGATTGTTTCTTCGATTTT -TTCAGAAAAAAAATTTTCTAAAATTTATTTATTTGTTTGAAAATTGGATC -TAAAAAAATTTCTCTAGTTTTTATTTTTTTTCTGGAAAAAGCTTTTTTTA -ACTTAAAAAGTTAATCTGTGGCCGAGTTTTCTCTCATCATTTTCACGGCC -ACGGCCATCAAAACCGAACCTGAAATGGCTTTTCTGTCGGAACGCGTGTG -GAACATCCGGTGCAATATATGATTTCCGTGCTCCTTTCATCACAACGACC -ACTTGCTTTTCTGAAACTTTGAGAGGTCATGGCCTAACTTTTAAATGGTT -TTCTAGGCCACCATGGTGATTTTATTACGGTACCGGGTCTCGACACGATG -AATTTTGTAGAATAAATTTTTCTGAAAAATTTCGTTTTTTTTTTTAGAAA -AATCAAATTTTCAAGAAAAATGGGAAAACATTTTTCAGGAAAAATTTAAT -TTTATAGAGAAAAATAGAATTTTTCCTTTAAAAAAATCTGAAAATTCGGA -TTTTTGAGAATTCTCTTTATTTGGATTTTAAAATCCAAATTTTCAAAAAA -AAATTTAAAAATCGGAAAATTCCAAATTTTTGAGAGTAAACTCGCCTTAA -TTTTTTTTTTCAATTAAAAAAATTAATTTTTTAAAAGAAAATTGGAATTT -TTACCCAAAAATTGGCAATTATTCGAGTTTTCAACGGAAAAATCTGAAAA -ATCCGAATTTTTGAAAAAAAAATCTTTAAAAATCCCAATATTCAATTAAA -AACCGCGAAATTTCGGATTTTTGAGAAAATTTTAATTTAAAAAAGTCCTA -TTTGTACTGCAAATCCTCATTTCCAAATGATGGCCTAACTTTTTCAGAAT -TCTAGGCCACCAGGCCATTTCTCTGCCTCTTACCCCCAGTTTTGACCTCT -TTTTTGAGTAAATTCATCAAATTCGTCCTTCTCATCGCATATTCCTCATT -TGGAATTCGCGATGGCCACATTGGTAGGCTCCGCCCACTTCTGAGCATTT -TTTTTTTGGATCTGATCTGTGTGGGAGGGAAATTCGAATTTTTTTAGAAA -TGAATAAAACTGAAAAAAATAGATTTTTTGGGAAACAGGGAACCTGAATT -TTCGAGAGAAAAAAGGAGGTAAAACAAAAAATTCGATTTTATATTGAGCA -AAAATTAATAGAAAAAATAAACTTAACAATTATGAACAGAAAAACCTACT -AAAAAAGTCTAAAAAATGAATGAAAAATTGCAAAAAAAATCTACAATCGA -TACGAGACTCCTCCTCCAACAATGCAGTTCTCGCCGGTGATGTACCTGAA -AAAAAGTGATTTTTTTTTGAATTTTTAGAAAACAAAATTATGAAAAAAAC -CAAAAAATTTCCGAATAATCGAAATTTTTCGGAAGTTTTAGGTTAAAAAA -ATTTTTTTTTGATGAAAAGTTTTTTTTCAACAATTCTGAAAACTAAAAGT -ACCAAAAAATTTTAGTTTTTTCGATTGTTTCAATATGATAATTTTTTTTA -AATGTTTAAAATTGTATTTTTTCAAAAAATATTATCAATTTTCCAATTTT -ATGGTAATTTTGGATGTGAGATTTTTTTCTTCAAATTTTCGAAACGTTTC -TCGATAAAAAAATTTTTCAACTGAAAAACTACAAAAAATCCTCTTATTTT -GAAGAAAAATCGATATTTTCTCAAATTGTTCAGATTTTTTCTGTTTTTAC -CAAAAGTGACCAAATTTTGAGACTTTTCGATCCAATGTTTAAAATTTTTT -TCCCGTTTTTTCGATATTTGCGGTTTAAATTTTTTTTAAATTTTTTGATT -CAATTTTAATAAGTTTGAGTGTTTTTCGATTTTTTGTCCAAATTTTTTCA -AATTTTTTTCCAGAAAATTGGTAGAAGCCAAAAAGTGCGATTTTTTTCCT -TAAAAAAGATAATTATTCAGTTTTTCGACTGTTTTCTTCTTGCTTCCAGA -TTTTTTCTCGAATTTTTTTTATATTTGAATTGTATTTTTAAATATTATAC -TCCTAATCGATAAAAATTAGTTTTTTTTTCAATTTAAATTGGAAAAGAAC -GTTCTTTTTCGTAAATTTTAGTGATTTTTGATTCCAAATTTTTGGATTTT -TTCAAAAAATTTCCCAGAAAATTTTACCTGGCTTTGGTAGAAGCCAGAAA -TTCGATTAAATAAGCTTTTTTGGGTTTTTCGACAATTTGTCAAGTTAGGA -ATTAAACTTTTAAAATTTTTTTCAAAAATTTTAAAAAACTAAAAGTATTT -CTGAGAATTTTTCTGAAATTAATTATTCAGTTTTTCGACTGATTTCTGCT -TGCTTCCAGATTTTTTCTCGAAGTTTTTATATTTGATTTTTTTAAAAAAT -ACTCTTAATCGAAAAAAATTCATTTTTTGAATTTTTTCGGGACTTTTTTT -TTCGAAATTTTCGTAAGTGTTAGTGTTTTTCGATTTTTGATTCTAAATTA -TTGGATTTCTTCAAAAAATTTTTTCAGAAAATTCTACCTGGCTCTGGTAG -AAGCCAGAAATTCGATTGAAGAAGCTTTTTTTTCGGTTTTTTGGACAATT -TTCCAAGTTTTAGTTAGGAGTTAAACTTTTTCAAATTTTTTTTGAATTTT -TTTCAAAAACTTTAAAAACTAAAAGTATTTCTGAGAATTTTTGAGAAAAG -CATTTTTTTTCTCGAATATTTGAACTTTTTAAATTTTTAAAGCTTTTTAT -TTTTAAATATCAATTCGAATATTTTACTCTTAATCAATGAAAAATCGATT -TTTTTGATAATTTTTTTCAAAAAAAAATTCGAATTTGAAATTTTTTTCAT -TCAGAAAAGGGAATTTGACTATTTGAAAACAATTTTTTGTTGAATTTTTC -GTAAATTTGAGTGATTTTCGATTTTTGATTCCAAATTTTTGGATTTTTTT -TTGACAATTTTCCAAGTTTTGGTTAGGAGTTAGATTTCTTGGAATTTTTT -TTTGAATTTTTTTCAAAAATTTTAAAAACTAAAAGAATTTCTGAGATTTT -TTCCTTAAAAAAGAGGAATTTTTTAGTTTTTCGACAGATTTCTGCTTGCT -TCCAGATTTTTTCTCCAAGTTTTTATATTTAAATCTTTAAAATTTATATT -TTTAAATAATATTTCAGATATTATACTCCTAATCGATAAAAATTCGTTTT -TTTTTCAAATTTTAATTGAAAAAAATCGATTTTTTCGATAATTTTTTAAT -TTTTTTAAAATTCGAATTTGAAACTTTTTCATTCAGAAAAGAGAATTTGA -TTATTTGAAAACAATTTTTAATTTAATTTTTTAATCCTTTAAATTTTCGT -AAATTTGAGTGTTTTTTGATTTTTGATTCCAAATTTTTGGATTTTTTTCC -AAATTCTCCAAATTCTTATTTTTGCAGAAAATTCTACCTGGCTTTGGTAG -AAGCCAAAAATTCGATTTAAGAAGCTTTTTTTTGGTTTTTTTTGACAATT -TTCCAAGTTTTAGTTAGGAGTTAAACTTTTTTCAATTTTTTTTTTTGACT -TTAAAAAAAAATTTAAAAACTAAAAGTATTTCTTAGTTTTTTCCTTAAAA -AAGAGGAATTTTTTAGTTTTTCGACTGACTTCGTTTTTGAATTTTTAAAA -ATTCAAAAATTGTATTTTTTAAAATTCTAATCGATAAAAATTCGTATTTC -GATTTTTGATTTCAAATTTTTGGATTTTTTTCAAACATTTTTCCAGAAAT -TTTTACCTGGCTCTGCTAGAAGCCGAAAAGTGAGATTTTTTTCCAAAAAA -AGATAATTATTTAGTTTTTTTTCTCGAACGTTTTATTATTTGAACTTTAA -AATTGTATTTTTAAATAATATTAAAAATTTAAATAATAATATAGAATTTT -TTTGAAAATTCCTGAATTTTCTGATTAAAAAAACATTTTCTGATGCATTT -TAGAAACTGAAATTTTTTGAAATCTTTTTGGAATTTTGGAAAATTTCGAA -TTTGTTGATTATACTCTTAATCGATAAAAATTCGTTTTTTTCCAATTTTA -TTTGAAAAAAATGATTTTTTCGATAATTTTTTTGATTTATTTTCGGGAAT -TGACTATTTGAAAACAAAAACTTTAAAAAAAAATCAAACTTTTTTTTTGA -AATTTTCGTATTTAAATTTGAGTGTTTTTCGATTTTTGATTCTAAATTTT -TGGATTTTTTCCAAATTCTCCAAATTCTTATTTTCAGAAAATTCTACCTA -GCTCTGGTAGAAGCCAAACATTCGATTTAAGAATCTTTTTTTTTTTTTGG -ATTTTTTTTTGACAATTTTCCAAGTTTTGGTTAGGAGTTAGATTTCTTGG -AATTTTTTTTTGAATTTTTTTCAAAAATTTTAAAAACTAAAAGAATTTCT -GAGATTTTTTCCTTAAAAAAGAGGAATTTTTTAGTTTTTCGACAGATTTC -TGCTTGCTTCCAGATTTTTTCTCCAAGTTTTTATATTTAAATCTTTAAAA -TTTATATTTTTAAATAATATTTCAGATATTATACTCCTAATCGATAAAAA -TTCGTTTTTTTTTTCAAATTTTAATTGAAAAAAATCGATTTTTTCGATAA -TTTTTGAATTTTTTTTTTACAAATTCGAATTTGAAATTTTTTTCATTCAG -AAAAGAGAATTTGATTATTTGAAAACAATTTTTAATTTAATTTTTTAATC -CTTTAAATTTTCGTAAATTTGAGTGTTTTTTGATTTTTGATTCCAAATTT -TTGGATTTTTTTCCAAATTCTCCAAATTCTTATTTTGCAGAAAATTCTAC -CTGGCTTTGGTAGAAGCCAAAAATTCGACATAAGAAGCAACATCAGACGG -TCTTCCAAGTCTTCCCAACGGAATCATCGATTCCAAGTGTTGTTTAATCT -GACGAGCTTCTTCTCCAGAAGCATGATCCCATACAGCACCAGTTCCGTCT -CCTTCAATCATTCCAGACACCACACTATTCACGCGGACTCCTTGTTTCGC -GGCACTCTGAGCTACGGATTTTGTAAGTGATAGGACACTGCTAGATGCAA -CTGAGTAGAGACCCATATCGATTGATGGAGTGAAGCCGAAACATGACGTT -AGGTAGATGATACTGCCGTTTCTGGAAAAAATCGATTTTTTTTGGACGGG -AAATTTTGCCTGCCTACGTGCCTACCTGCCGGCCTATTTTAGCCTATTTT -TCATTTTTTTTTTGTTGTTCTATTTTTTTGCCGTTTTTTGGGAATTTCAT -GATTTCTAGGGTAGGCACGACTTCATGCCTACGTGCCTATCTACCGGCCT -AACATTTGATATTTTTTTAGAATTCCATGATTTCTAGGTAGGCAGGTAGG -CACGAATACATGCCTGCCTACCGCCTGTTTTTTTGAAATTTTTTTGTGTG -AAAAATTAAAATTCATGGGAATGCTTTTTTTTTCAAAATTCAATGATTTT -TAATGCAGACCGCGCCTATCTGCCTACCGCCTATTTTTGGCATTTTTTGT -GTGCAAAACAAAATCAAATTAGCTTTTTTCTTTTCGTTTTTCTACGATTT -TTTCCAAATTTCAAGATTTTTCGGATAGGCACGACTTCCCACCTACTGTG -CCTACCTACCTACCGCCTATTTTCGGCATTTTTTGTGAGCAAAAAGAGAT -CAAATTAGCTTTTTCTCCTGTTTTCTACGATTTTTTTGGGTAGGCACGAC -TCCATGCCTACCGTACCTACCTACCTACCTCCTATTTTCGGCATTTTTTC -TCGTGCAAAAAATCATATTTATGAAAACACTATTATTTTTGTTTTCTGAA -TTTTTTTTCCAAATTTTGTGATTTCTAGGGTAGGCACCGACTTCATGCCT -ACGTGCCTACCTACCTACCGCCTATTCTCGGCATTTTTGTGAGCAAAAAA -TTAACATTCTTGAAAATCCTTTTTTTGTTTTACTACAATTTTTTCAAGTT -GCATGATCTCTAGGGTAGGCACGATTTCATGCCTACTTGCCTATCTACCT -ATTTTTCCCTTTTTTCGTGGTTTAGGTAGGCAGGCATGAGTCAGGCACGA -AAATCTAGAAACATAATTTTGATTCTATCGGTAAAATAGGCTTTCAAGAC -AGTTTGAATTTTTCGAATTTCTACCAGCAAAAAATAATATCTGAAATTTT -CGCGGCGAGACCCAAAAACTGACTGAGATTTGGCGAGCGTCGACATAGCG -GCTTGCGAAAGACGGAACGGTGTTGTCAGATTGTTGGCGAAAAGCTGAAA -TTGGTTTTTCGAGGTCAATTTTCCACGTGGAATTCAAATTTCAGCACTCT -CGAACCTTATCAAAATCCTCGCCGGATGTCTCAATAATCTCGCCGAGCAC -CTCATTCTGTGGTGGAACTATAATTAAAGTGTCCAGACCGCCGAGCTTCT -CAGCCACTTTCGTGATCAGCTCCTTCCTGTGCTCGGCATTTGCCACGTCT -AATGAGAAAGCTGTGACGTCACCTCCAACCTGAATTTATTCCCGAATTTC -TCTTTGTCAAGTTCTGAAAATCTGCCTAAACCTTTATATTGTCCTCTGCA -ACCTTTCCCACACTATTCGGACAGTCTGCGGCGGCGGCGACCTTGTAGCC -GGTGAACGCGAGTCTTCTCACGACGGCTTTACCCAGTGTGGACGTTGCCC -CGATTACAAGTGCACATGACATTACGCTGAAAGCCCGATGAGGAGGCATA -TTTATAGATACACCTAGACATCAGGTACATTTATTTGGAAATCCGTAGAA -AATAAAGAACATGTGAAAATAAAACAGATCATTTTATTATTTAGAGGGGA -GAGGGAGGGGGAGCAAAGTCGCTGACTGAGAACTTTCGAAAACCGGTTAG -TTACTCCAGTTGTACGGCTTATTCATGCCATATTTTCCAAGATTTCCACC -ATTGTGTTGGTATTGAGAATGTTGATTCTGCTGAGCTGCCGGCTTCGATC -CAGACATCTTGTCGTAACTCTTGCGCTCGTCATCCTGTCCGTAGAGTTGA -CGACCTCCAGCGCTGCTTCCAACATTGGGCATCATGTTCATGAATGGAGT -AAACTGGTGTGGAGCAGGTGAGTACTGCTGCATGAACAACGACGACAAGT -TTGGCTGCTGCATGTAGTTCGTCGCCTGGAACCCTGGTGGTGGTCCAACA -TTCGACGCCTGCTGTGGCTGCTGATCCCGAGAGCTTTGAGATCCGAACTT -ATTGAAGTCCATAAGTCCATGAGTCTCTCGTTGTTGACCAGATTGCACTT -GTTGCGCAGAAGCAGCCTGTGACAGAGGAGCAGTTGGAAGCAAGCTTGTA -AGATCAACTCCCATTCCGTATTGCATAAGAGCAGCAGTATATTGCTCATC -TCGAACTCCTGGCATTGGATTGTACATGTTCATGTAGTTGTTCATGTATG -GTGCATATGGGAGTTGTTGAGTGAACATCATATGTGGATGCTGTTGTGGA -TGTCCAGTCGGTTGTGATTGAGCTGGTGGAGTTTGTTGCTGCTGCTGCAC -TGGCTGTTGTGGGGCTTGTTGCTGCTGCTGCTGTGGCTGGTGCTGCTGAG -CAGATTGCTGTGTTGGAAGTGGTCCAGAATTGTTGAACTTGTTCGGCGCC -ATCCTGTCCGTTGGTTGATATGAAGCGGACGAAGTGTCATAGGACAATCC -TCTGTTAGATTGACCATATGACAATGGAGGTGAAGTCGATTTTAAGTTGT -AATCGCCGTTAGGAATTGACGTCCTTTCTGGCTGAAAAATAATCGAGAAT -TAGAATAAATCGTCTTTGCAACAAATTTAACTCACCTCAACTTGTTTCGG -CATAATACGAGAAGAGTTAAATATATTTTCACTGGCATTTGAGATCGAGG -CAGCGGAGGATTCAGTAGAAGGAAGCTGTGGGCTTGGAGCAGCCTCAACA -AATCCAAATGAGTAGTCATGAATGTTCGTTGGTGCAGTTGTGCCAACAAA -TTCCACTCCAGGATCAGGAATAATCTGGACTGGTGCTGCACTTGGAATTG -GAGATAATCCTAGTCCTGGTGCTTCACTCAATCCTATTCCAAGATCCGTC -TTCAGTTGAGTGGTCCATGCTTGATTTGGTTCTGGGGTGCTTTGTACATT -TTCATCGTGATGAGTCGACACATTAGGCGTCTGCTCCTCAGCCAAAACTG -ATGATTCACTGAAAATTAAATTTTTAATAATCTAAATACAGGGACAGAAC -AACTTACTTTTGGAAGAAACCATCTTCTTTCTCCGGCTGATGCGAAGTTT -CTGGCTCGAAAAATACTGGCGCTGCTGCTGGCTCTTCTTTAACTGGTGCA -ACTGACGGAAGTGGAGGTTGTGGGGAGAGACTCCTCCTTGGCGGAGCTGC -TGGTTGAGGATTCTGTGCCTGGTGCTTTCGGAGTGCTTCTTTGCGATGGG -CAGCTGCTGCTACTGCAGCAAATGAGATCGGTGCCGGCGCAGAAGATGTG -GGAACAGTGGCGGTGACGGATTCCTCTACTGGTGGTTGAACTTCGGTGAC -TGTGGTATCCACTTTAGTCTGATTCTGAAAAAAAAACACGTTTCGTCATT -TTCCTTCTTCAAAAAATTCTTACCTCATCAAGATCAGCAGTGAACGCATC -TGGCTCAAGTGCTGATGATGGAGCAACAGCTCGAGAATATCCACCTCTGG -CGCCACCTCTTCCACCTCGTCCAACATACGGTTTTTCAAATCCTCCTCGA -GTCGAGCGTGGTGCTGCTCCTTCCTTATTATCACGGTTATCCCGATTATT -ATCTCGGCTTTCTCTTGGAGCTCCATTGGATCGCCCGCGGCCTCCTCGAT -CGACGAAACCGGTGCCTCCACCTGAAAAAAACATATCAATATTTGATCTA -TTTCAATCAAGCACGAACCTCTGCCTCTTGCTACAAATCCTCTGTTGTTA -TAACTGCCCTCTTCCGGCTTCTTCTTTTCCTTTTTGGCTCCTTTCTGTTC -AGTCCACGAGTCAAGTTTATCTCCAGCATCCAGAATGTGATCGATTGCGC -CGTAAAGATTGTTGTCAGTATCCAATAGCGCTATCTCAGCTTGTGCTTGT -GTACATCCGGTGGTTTCGATAATCTGAAAATGAAAAAGACATGAGCAGTG -AAAAAACCCCTCTTGGGAATGCGCGAACACTTTAATTAGCCCAAATGAGT -AGGACATCTGGGTACTCTTACTCTCGCTGCACCATCTCAAGCGCGGACAC -CTGCTTTTGTCCTTTTATTTGCCATCTGGCCCCGTCTTATCGATTCGAAA -TTCCTATTGACACTGAAAGCGGACACTAGAGAAGTTCAAAACAACAAAGT -CACGTGCGTCATCATGTCGGTGTGTGGCGAGCGTTCGCGTGATGCAAAGA -TCACTATTTTCAGGAAAGCGTCATTTCCAGCTTGGAGACTTACCGTCTTG -ATCATAAACTGTATGTCCTCCTCATTTCCGGAATTTCCTTCCAGTGTGAG -TCGTGCAAGTCGCGCTTGATCGCTGGTAGCTTTTTTGTCGCCTTTAATAC -CCATTCTGAAAACAAATTATAAATAAAAAGGGTCAGTCATGTGAACGCAA -GAATGGAATGAGAATCACGAGAATACAACTATCAAAGGAAGGTTGAATGA -AAGGAAGGTCAAATAGATGACAAAAGTAGGAAAAGAACGAAATATGGAAC -CTTCCAGATCAAAAAAACATTATCAAAAGAAAAGCCTCGCACAGAAGACT -CTAACGAACATGTTAGGATGAAGAAATATTTCAGCAATACATCACGTTGA -ACTTTGGAGGATATTCTAGAGAAGAAAACCCCTACATTTTACAATAATTT -TGAAATGGAATTCGAATGAACTGCTATACAATGGAGAATCCTATTTAGCG -ATGATAAAGTGTAGGCTTGTTACTAGATTGAATAAAAATTTCGAAATGTA -ACAATACATTGACTGAAAATTTGGGTATTTCAGAGTGTGATATCACAAAA -ATCAATATTTCCACTAAACTCAAAAGTTCTTACGCTGAAAAATCATTAAA -AAATTGAAAAATCACCGCAAGCTAGACTAGAATCGCGTTCAAATCTCGCA -AATTCCCGCAGTTGAAAATGCGGGCGACCGCGACGCGAGCCGCAACGCAC -CCCTCCAAACATGCGGCATGGGTCTCGCCACGACCGAAAGTACGGTCACT -CTTGGCAGTATAAAAGGCGACCATTTTCCGCTATTTTCCGGTAAATTTTC -AAATGAAACTGTGTTGCGGAGGGGGTTTTCCGCTAATTTTGCGGAAATTT -AGCTATTTAATGTGAAAATGTGAATAAAACAAAAGAAAGTGGGGAGGAAT -AGCAAGGAAACACACTGTTGAACCCTGGGAATTATCGATTTTGTATGAAC -TCTTCTTTTATGGCGTCGAAATTATCGACACGAAAACTCAAAACCTTGTC -ACATTTCTGAGAGAGAAATATCATTTTCAGCACACATGAGTCTTCCCAGA -TTTCGACTCGTTCAGGGAAAGGCGATCGGCGAGCGATCAACGCCAGGAGT -CAGCACACCAGAGCCGGTAATTGTTTTTTTTTATTTCAAAATTTCTACAA -CAACAAAAAGAACTAACAATAATTTATTCCTTTGATTCCAGGCCCCTCCG -CAAATAAAGCAGGAAGTCGACTACCAAGATGCTCATCAAATGGCTCCGGA -ACCCGTGGAAGCACCCCGTAAATATTTAAAAATTTAAAAAAGTTAGAAAA -AAAATTTGAATCCCAATTTTCAGAGGCTCAAAACCATCAAATGCAGCCGC -CTCGTCAACCTATACAACAGCAGATGCAGCATTTTCAGTCACCATCGCCA -ATGGCTCCACAAGGGCCGCCCGGGACTCCACAAAACTCTGCAGCGGCGGC -CGCCGCTGCTTCAGATGACAAAAACGTGACAAAATGCGTCCGCTTTCTGA -AAACTTTAATTAATCTGTCGAATAACGATGATCCAGAAATGCCGGACAAG -GCCGCCCGTGTCAAAGAGCTAATTCGAGTGAGGAATTGAGCGAAAAACGC -GATAAAAACCGGACAAATTCGGATATTTCAGGGCGTAATTTATCTGGAAA -CGACGGCTGAAGAGTTTACACGAAATCTGCAACAAGTGCTCAAATCTCAG -GCTCAACCGCATCTTTTACCATTCCTTCAGAATACTCTTCCGGCATTGAG -GAATGCTGTTCGAAATGGTTCGGTTTTATGTGCAAAAAAATTAAAATCGA -CAAAAAAAAAATCATCGAAAAACAGGAAAATTTGAGTTGAAAAGCAGCGA -AAAACTTGAATTTAACATAAAAAATTGCAAAAAATCCGTTGAATTACATT -TTTCAAGAAATTGTGTAGAAATTCCATGAAAAAAATTCAAAATTTCCAAA -TTTTTTGGCTATTTCTAGTCAATTTCTTTAAAATTCCATTTTTGATAGCG -AAAATTATCAAGTTTCTAACAATTTCAAGCTGTTTTTGGTGATTTTTTCA -ATTTTTCGGCTTTGAAATTCCATTTTCCGGAGTATATTGTCATAATATAT -CCGAGTTCCACAAAATTGAGCAAAAAAAATTAAAAATTTCCCTTTATTTA -AAAATATTTTCAGCTGTCAGTAATATATGGATTTTCCGCAATTTTTCTCA -CAATTTTGAGCAAATTCCTGATTTTCAGCCAATTTATAAGGATTTTCACC -CATTTTCATAATTTAGGGCTATTTTCAGCTGAAAAATTGTAATTTAAAGT -TTTTAAAATTTTTATAGATTTTCTCAAATTTCAGCTCAAAAATTCGATTT -TCAAGCGCATTTCCAGGCAATTTATTAAGATTTTCACCAATTTTTTTAGC -TTAAAATTTAAAATTTCCACATTTTTTGTCTATTTCCAGTAAATTTCTTT -AAAATTCTATTTTTGAAAGCAAAAATTATCAAGTTTATCGCACTTTTTCA -ATTTTTCCGGAGTATATTTTGGTAATTTATCCGAGTTCCACGAAATTGAG -CAAAACAATTATTTAAAAACTTCCCTTTATTTAGAGCTATTTCCGCAAAT -TTTCTCGCAATTTTCACGCAATTTTCATAATTCAGGGCTATTTTCAGCTG -AAAAATTGCAATTTAAAGTTTTTAAAATGTTTATAGATTTTCTCAACATT -CAGCTCAAAAATTCGATTTTGAGGCGCATTTCCAGGCAATTTATGAGGAT -TTTTACCTATTTTCTAGATTAAAAATCTTTTTTTTTCCTCAATTTTGGAC -TATTTTCCCTAATTTTCAAATTTCCAGGCACTGCATCAGTTGAAGGCGTA -AATCCACCGCCTGGCTACGTTTTCAACAATGGAAGAACCCCAGGACCCCC -TCAGCCACCTCCACCTCAACAACAATCCCAGCAGCAGCCACCACTAGAAA -TGCGTCAAATTCCGAATCCGAATCAAATACCCCCACAAATGGTTCAAGGG -GGTCCCCATATGGTATCTGTAGGCGCCCGGCCAATGATCAGGCCTATGGG -CCCCGGCGGCCCAAGCCCAATGGGCCTACAAGGCCCCGTACGAGGGCCGA -TGGGACATCAGATGGTCCAGATGCATCCTCCTCCCCCACCACAGCAGATT -CAACAGCAGCACCCGGCTCCCCCTGTAGAAATGGAGGTGGAAGAGAATTT -ACAGCCTACCGCGGCGGCCACGGCCACGAGGCAATATCCTGAAGGATCGC -TGAAATCGTCGATTCTGAAGCCGGATGAGGTGCTGAATAGGATCACGAAA -CGAATGATGTCATCGTGTTCGGTGGAAGAGGAGGCGCTTGTCGCGATTTC -AGATGCTGTTGAGTCGCATTTAAGGGAACTTATTACACTGATGGCCGGAG -TTGCAGAACATCGGGTGGAGAGTTTGAGGTATTGAGGAGAATTGATTTTG -CTTCAAAATACGGCAGCGAAAAAAAAATTAAGCAAAAATAAGGAAATTAT -TGAAGAAAAATCGTCTTAAAAACAATTTTACATTAAAAAAAAAGATTTTT -AAATTTCAAAGGTTCCGAACTATTTATTAAAAAAACATCTAGATTTTGTT -TTAAAATCCAAACAAAAAACATTGCTGAAACGCGGTAATTTTTTTTCAAA -AAAATATAAAAATCTGAGAAATATTTTCAAAAATATCTCCAATTTTCCCC -TGATTCCGAATATCTATTCGAAAAAATTCAAAAAAAAAATTTCCCTTTAT -ATTTCAGCTTGAAATCGCTTTGTGCATGCACACCATGAGATTTTTCAAAT -GCGCGCCCAGATAAATTCTCATTGGGGCGCACTTGCTTCGTGTCGATTTA -CGGGAGCTCTTCATTTTTAAATTTCTTTTAAGCTTTTTTTTTCAGTTTTT -CAACGAGTTTCCTTGATCTTCGTCGATTTTTTGTCATTTTTTTTCCTGAA -ATTTTGTTTTGTGTCAATTTGAAAATTTTTTAGGTCAAAACTCCTGTGTT -CGTCGAGATCTGACGTAAAAATATAAAATTCCGGGAGTTTTGAGATATAA -AAAAAATATTTTAAAAATTTCAGAAAAAAAACTGACAAAAAAGCGACAAA -ATAAAAGAAACGCGCAAAAAAAAAAAAAAAAAACTTAAAAAAGCACGAAT -AAATTTTTTTAAAAAATGGAGAGCTGCCGTAAATCGACACGAAGCAAGCA -TAAAAAAATGGCTTTTTTCCTAACAATTTTTTGTGAAAAATCCGAATTTT -CCATCCTAAACACTACAAAAGATTCCAGAATTCCGGAGAACTACGTGGCA -ATTGATGACGTCAAACGGCAACTTCGATTCCTTGAAGATTTGGATCGTCA -AGAGGAAGAATTAAGGGAAAGTCGAGAAAAAGAGTCGCTAATTCGAATGA -GCAAGAATAAGAATAGTGGAAAAGAGACGATTGAAAAAGCGAAAGAAATG -CAACGACAAGATGCTGAAGCGAAAAGGAATCGAGATGCGAATGCGGCTGC -AATTGCAGCACTTTCCAGTAATAAAACTGTCAAGAATAAGTTCGTTTTTA -GCGTGAAATTTGCAGAAAAATTATTTTTAAAAAATAGATTTAAAAAAAAC -AATTTCCTGACCAAGGGTGTCATTTTTCGATTTTTCGGTTTTCAAAAATT -CGAAAAATGAAAGTTTCGTTTTTCGATTAAAAAACTGAAAAACCGACACC -TTTGTTTCTGAGATTTGGATTTAGAAATAAGCAAAAAAAAATTATTCAGA -AAAAATTGTTTTACAATGCTGCAAAATCGATGAAAAAATAAAATAAATCA -ATAACTAATTTCTAAAAAATGGAAAAAAATTTCGTTTTTTTCGAATTTGT -ATTTCACAAAAAAAAATTTTTAGAATAAAAATTTTCAATTAAAAAATTAC -TATTTAAAATCACTGAAAAAAAATGAAAAAAATAGAAAATTCAGAAAAAT -AGCGAAAAAAAAGTTTTTTTCCAGAAATTTCGTTAAAACGATCAAGATTT -TAACCCTAAAATTTAGATAAAATCAATTTCTTGTGGTTCTTAATTTAAAA -AAAAAAACAGTACTTTCCAGTAATAAAACTTTCAAGAATAAATTCGTTTT -TAGTGCGAAATTCGCAAAAAAAATTACGAAAAAGTGAAAATAGAAGCTGA -AAGGAAAAATGTTTAAAAAATAAGAATATTTTCGACATTAATTGGTTTTT -ATATATATTTTTTTGTAGAAGTTTAAAAAAATTACTAAAATCACTGAAAA -AATTGAAAAAAATTTTAAAATCTGGAAAAAAAGCAACAAAAAATTAATTT -TTCCAGAAATTTCGTTGAACTATTCGGTATTTTAAGCCTAAAATCAAGAT -ACAATCAATTTGAACAAAATTTGCTTTAAAAATACTAAAAATTCGAAAGA -AATAGAAAAAAAAAGAAATTTTCGAAATTTGGATTTATTGTTAGAGAAAA -GCTGAACACTTACAAAAAATTAATTTTTTACGTTTTGAGAAAAATTTTTG -AAAAAAAAAATCGATTTTTAAATAATTTTTAGAATTTTTTAGAACTATAA -TTTTTGAATTTCAGTGACTTATAATCACAGAAAAAAATGAACGAAAAACA -AATGAACATCTTTTCGGCAAAAAAACGTATTTTAAAAAAAAATTTAAATT -TCTAGTGACTTTGAAAAAAAAACCACATTTTCCAATAATTTCCAGGAATA -AACTAAATTTCTTTGGAGAAATTTGAAATTTATTTCACATTTCGAAAAAA -TTTATATAGAAATAAAAATTTATATGAAAATAAAAAATTTGCAGCTCCTT -CCAGTAATGAAACTGTCATTTGTTGAAAATTAGTTTTTTTTTAATTTAGA -AATTCTCTTTTCGAAAAAAAAGGTTTTTTTAAAACTTGATTAAAAATTAA -TTCATTTTTTTCCAAAATTAGGGAAAAAATAATTTCTAAAAAATTAGACA -AATACACTTTTTTGTTGAAAAAAACAACATTTTCCAATAATTTTCTTTTT -TTTTAAATTGCTTCCACTAAATTCACTTTTTGAAGAAATTTTTTGAAATT -TTTACTGAAAATTGTTGGAAAATTATTAAATGTGCATTTTTTTGCAATTT -CCAGTTGATAAACTAATTTCGGTTCAATTTAAAATAAATTTCGAAAACCA -ATTTCAAAAAATTCATTTTTTACAATTTGTTTTTGTTGATAAAACGAGCT -AGTTTCTACCAAAATACCGCTTTTTTACATTGAAAATTTAAATTTCAGAT -GGGAAAACACGGGCGCCGCAACGACAGCACCTCGTCCACGAACAGTACGT -GTAACAACTCGTGATCTACATCTTTTAGTCAATCAGGATAGCCGATTCAC -AGGGTAGCGATTTTTTTTGTTTAAAAAATTTTTTTAAAAAACACCGTATT -AAACATTGATTTTTATTGGAAAAAACTGATTTAAAAATTTTTCAAAAAAC -TTTCAAACGAATGGTAGTTTTTAATATTTTAATTTTAAAAAATTCCAATA -AAAATCAATTTTTATACGATTTAAAAAAATTTTGAAAAGTTATCCAATTT -TCTCCTAAAAAAACTCATTTTTTTTCCAGAACATTCATCCGTGAAAAGAT -GTCATACGGTGGTCCGGCAGTCGATACAACTATCTGAACTAAAGAAATCT -CATGGAAAAAGGAGCGAAAATTCTGCTTTTCTCGTTTTCTTTTTTTAAAT -TTAATTTTATTTTTCCACAAATTAAAACAATCACTTTTTTCCAGTCAAAT -AATAATTATTTCTCATTTTTAAACGAAATGCTAGACATAAAAAAAAGCTT -CTTTTTCAGCTTTTCAGCCAAAAATTTCAGATTTTTCAGAAAAAATTCAA -CAACAAAAAATTGGCAAAGTGCAAAAAAACCAGAATTAGATATTAAAAAT -ACAGGAAAAATCGAGAAAAATGAGTTACAATTCAGAAAATTAGGCAATTT -TTTTTTCAAAATTTCTCAAAAACACTGAAATTTCGGTATTTTTTTCTCTA -CTTGAGCACAACCTCGTGTTGCACCAATCGAACATAGTCTTTGAGCGTCG -GTGGAAGTGGAAGCTCATCGATTATTCGCTGATAGACACCGTCGGCACCG -GCGATTTCCAGATTTCTACGTTGGCGAAGGTGGATGGCGCGCTGGAAAAA -TTTCTAATTTCGAGCTGAAAACTCTTTTATGAAAGCAAAATTTCATAGTT -TCAATTCAAAGTTCGAATTCCTCGCAAAATTTCAGTCGGAAAACCGAAAA -CTAGAAGTTTCTTGCTCGAATTTGAAATTTCGAGGGGTACGGTATCCTCG -AAAGTACGCAAACACCGAATTTTGTTTTTTTGAAGTTTTGGCGCCAAAAA -TACAATACCCGGGGTCTCGACACGACAAATTTTTAAAATTTTTTTGAGTA -CTGTAATTTCAAACAAAAAGTTTTTTTTCGAATAAACTCGAATAATACGA -TAAAAAACATATTTTAATAAAAACCGTGGCAACGAAAGTTTGAAAGTACA -GTACTCTCTTCAAAGGCGCACACCTTTTACGCATTTAACTTTCGTGGCGA -GACCCCGGGGATACCGTAATTTTTGACTCAAAATTTAAACAATAAATCCG -TTAAAATATTAAAAAATTTTTAGATATTTTTCAAAAAGACTGTCGAAAAA -TTGTTTTTTTATAATTTTTAGAATATTAACAAACAGTTTAAAAATTCCAA -CAAATTTTGTTTTTCATACCGAAAAGAAGAAAAATGGACAAAATAGTAAG -CTATTTTTGTGTGTCAAAGTGTCTTATTTCGGCTTGATCTACGTAGATCT -ACAAAAAATGCGGGAGAAGAGACTCAGAGTTCTCAACTGATTTCGCATGG -TTAAGAACGTGCTGACGTCACATTATTTTAAGGCGAAAAAATCCCGCCTT -TTTTTGTAGACCAAACCGTAATGGGACAGCTTGGCACCACGTGACACCCC -CCGATTCTCACCTGTTCGTGATTTTGGCGAACTGCCATTTCTTTCAAATA -ATCGTCTAGCGGGGGACTCGATGCTGAAAAAAAAGTTTGATTCGTTAGAG -GAGCACAAAATTCTGAAAATGCGTATTGCACAACATATTTGACGCGCAAA -ATATCTCGCAGCGAAAACTACAGTAATTCTTTTTAAATGACTACTGTAGC -GCTTGTGTCGATTTACGGGCATCGATAGAATATTTTTAAAAAAGAAGAAA -AAAGAGGGAATAATACGAAGAAAAAAAGGAAAAAAATAAATTCATTTCAG -AAATCGAGTTCGTAAATCGACACAAGCGCTACTGTAGTCATTTAAAGAGA -TACTGTAGTTTTCGCTACGAGATATTTTGCGCGTCAAATATGTTGTGCAA -TACGCATTTTAAGAATTTCCAGTTTTTTCAAACCTTTAAACTTACATTTT -CGCGGTTTTTTGGCGCTCTCGGATTTCGGGGAACGTATACGTCGGCGACG -TGACGTGGTTGAAGCAGGGTCCGTCGAACAACATGGCTCTTCGTCTTCCG -ATACTTGGGATTCTGTTGATGTTGACGGTGATTCCTGAGGTTCCTCTAGA -GCATCTGAAAGCTCTTGCTCATCTTCTGATAAATCTCCATTGGGACGTTC -AACCAGGCCGGTGGTGGAAGGATCATTGATGTTCGGAATCATTACAATCT -CCATTCTCGGAGTATTTGGAGTTTCTGGTCGAGCTATCGAGGAAAGTATG -CGATGATGGCGGGGTCTATCATGATTAATCGTCCATTCGAGCACATATGC -TGGTGCTGGAAGGATTGAAAATTGTAAAAACTAAGATTTTTTGGCCAAAA -AAATAATATTTTCTCAAAAATTTTGAAATTCTCGACAAATATTTTTTACT -ACTGCCGGTACAGAGAATGTAGATAGTTGAAGAGACACAGACATCCCGGG -ACCCAAGGGACGGGGCGCGGGATGTCTGTGTCTCTTCAACTACCTGCACT -CTGTGCTGGTAATATACTTTTTCCAAAAAAAAAACCTACATTTCGGAAGT -AAAAATGGAAAATTTCGGAGTCTACACAATTGGAAATTTTAATTTTTAAA -AAATTAAAAATTGTTTTAATTCGGAGTTTTAGACGGAAAAAATTATTAAA -CTCTAAAATTTTTAAAAATCGAAAAAAAACAAGTCTGAGAGTGAAAAAAA -TTAATAAATTTTGAACTGAACATTAGATATTTCGATTTTTTTTTGAAAAT -CATAAATGTTTTCTCGCAAAATTCGGATTTTTTTTACCTGCTCGATTTTC -AGTAGCCGGAGCTGTATTTCTGAGATTGGCACCATCCAAATGTGCTCGGG -GCGCTGCAAATTTGATATGAAATTTCACTAAAAAATTAGGAACTTATACA -AATTTTCTAAAAGAAATACTAATGTTAAGATAATCGAAAGTTTGGAGTGA -CAGAAAAAATTGTTTCAGCTTCTAGAAATATTTTAATTTAGAAAAAAACT -TCCAGAAAATTAAAATTTTTTTTTAGAACTTTTGAACATTTTTCCTGATT -TTTCTTTTTTTTCCATTTTTTGGAATTGCTGGGAATTTCTCTTTTTTCCT -TCATCCCACAGCTTCGCTTCAGCCTAGGCCTAAGCCTGAGCCTGAGCCTA -TGCATAAATCTAAGCCTAAGCCTGAGCCTAACCCTATGCCTAAAACAAAG -CCTGGACCTAGGCCCAAGTCTAAGTCTAAGCCCACGCTCAAATTTAAATC -GACTCAAGTAACTACTTTAAAGTTGGCAGAAATATTTGAATTCAAAAAAA -TTTTTAACCAAAAAAAAAATAATTTAAAAGAAATTGTTTTTTTTAAATAA -AATCAACAATTCACCTGTAAAACCTTGCATTTCTCTCCAATTCAACATTT -CTTGAAGAACGTCAGTTCTTGTTTCATTCCATCGACGAACATGATCTGCT -ATAGTATTTCGAATATTTTGTTCATTGTTTTCTTGTTCTCTGGGATTATT -ATTACGACCCAAATATTGATCCATGACGTCATCCAAGTGATTACGGGTTC -TTTGATCTGCTGGGAATATTTATAAGCACTTTTTTAATTTAAAACATATT -TTTTAGTGATTTTTTTTCGAACTTTTGAATTTTGAATTAAAAAAAAAAAA -ATTAAAAAGTTAAATCCTGAGGGGAGCCAAGAAGTGGGCGTGTTTTAGGA -CATACTCTTCACTTACGCTTTGGTCTACAAAAAATGCGGAAAACTTTTGC -CCAAAAAATGTGACGTCAGCACGTTTTTAATCATGCAAAATCATTTGAGA -GTTCTGCGTCTCTTCTCCCGCATTTCTTGTAGATCTACGTAGATCAAGCC -TAAATGAGACACTCTGACACCACGTGGAAAATAAAAATCGAACATTTTCA -AAAAAATTACTCAATTGATTGTCTGCTGGAGTTAGTTGGTCGATTCTGAA -AAATATTAAAGTACTAAAAATTTTCCTTAGCAACATAGCGCGTTTGCATC -AAGAAAGGCGGGATTTTTCTAAGCCCGCCCTTTAATGGATCATCAATTTC -TAGGAAAAATCGATATTTTACACTAAAAGTGATCCAAGAAAATCAATAAA -TCGGAAAATTTTCCGATTTTCCGTGCTTTTTTGCGAAGATTTATCGAAAA -TGATTTCCATTAGAGCACGCTTGCAATTTTTTTCACCAATAGCTTTCAAA -TTTCTTACGGTCTTGGATCAAAAAGTTGTCGACGCCGATTCAACTCTTCG -AATTGTTCAGCTTGATGCCTTTGAACATGATCCATATACGTATTTCCACC -TTTCATCACCATTATTGATCCGCAAATCTGACGATTGACACGTGGATTGT -AGGCGTGTCGGCGAATGTCGCGGCGGAGTGCCTGACGCGCCAAGTAGGTC -AACGTGCGGGGACCACTAAAAAATCCGGGTTATTGTGATTTCGTGGTGAG -ACCCGAAAATAGTAGAATTTCCTCGTACATCCTGTGCCTAAGCAGGTTTT -CAGTTTTTGATGGGTTGTTACCTTCATACACCTACCTGCCTTTGTGACTG -CCTCCCTGCCTGCCTAAATGTGTGTATGCCTACCTACAGTCTGTTTATCT -GCCTCAACGCCTTCATACCTACTTGCCTACCTTGCTTACATACCTGCCTA -CGCGACTACCTATCGGCCTACCGGTTGGCAAGTAGGAAGGCTAACAGGTA -GGTAAGCTGGCAGGCCTGAAATTTGCAATTTTTGCGAAAAACCGAATTAC -CTTTCGAAAGGCGTAGGCGTTGAGATCCGTTCCTCCTTCGGAAGCCTGAT -CATTGGAGAAAATGTCATTCTTCCAGGGACGTCATACACAGTACGATGCT -TGGAAACTCTTCTGTATCGGCAAACCTGAAAACCTTTAAATGTGGAGGAG -CCAAGAACTAGACGGAGCCTGTGTAAGGAATATTGTTTCCGGAAACACGG -ATTTTCAAATTTTAGGCTCCACCCACTCACCACGCAAAATTTCATTTTTG -GCCCAAAAAGTAAATGTGCAGAAATTGTATTTCAAATTGTAGAAAAACCA -AGAAATGGGTGGAGCCTGCCTGCCTGCCGGGCTCCGCCCACTTCTTGCCA -AACCATACCCCCTGTATACGTGGCATGACGAGTTGTCCTCCAACATTCAA -CATTCCAAGCATTCGTTTCAACAACTGAGAATCATCGGCAACGAATCCGA -CAAAAATTCGATCATATCGATTTTGATGAGCTTCAAGAAATTTGACATCG -GTGATGTCGCACACTTTGAGCTCCGGCCGAGCCCAGCCGACAGAGCTCGC -TTCGGGTGTAGTTATCCATTGATCAATGCATGTTTCCGAGTAGGTGACGA -GATTCTCGTAGAGTTCGATCCCATGATTTATACCAGTTTCACCTTAAAAA -TAGGGTTGTCAGGCCACGCCCATTTTTAAAAAATGAATTAAAATTTTCTG -AGAAAAAATTTCAAACTTTGGTGGGGCATTAAATTTTTTCACATAAATTT -TTTCGGCGGTAAATTCAAATTTTTTAAAAAATTTCTTTTTTTTTTGGCGG -GAAATGTGCCGCAAATCAGAAAAACTGAAATTTCTACAAAAAAAGTTGGT -GGCCGAGTTTTCTCATTTTGTGGTCAGAAAACTCGGCCACCGATTTCTTT -TGCGGCCCTGTGATTACTTAAAAAAATCGGTGGCCGAGGATTTTTATTTT -CGCGGCCACAAGTAATGAAGATTGCACAAAATTGATAATAGGGAAAACGC -GGCCACGAAGTCTAACATGTGCCACGTGGCCGTTAAAAAAAAGCCGGTGG -CCGAGTTTTATTATTTTTCTAGGCCACGTAACCAGAACTCACCCAATAAA -ATGCCAGCAATCGTACTTAAATACCCTGAACCAGTTCCAATATGAAGAAA -CGAGTGTCCTTTACGCAAATCCAAATAATCGAATAATTTCGCATAAATAT -CAATTGCTCCAACACGAAGTGCTCCCGGATAGAATGGACCGCCCGGTTCT -GTGGAGGTCAACGACGGAAGACGTGTAAATTTCCGTTCACTAATCGGAAG -AAAATCGGATCGATCGACAAGTCGAAAGGCTCGTTCGATGTTTCGACGAC -GGATTGTGTCGTTTTTTACGAGAAAATCGATAAGATCGTCGTTTTGGCTT -TCACTATTGCCCATTTCTGGAAAATCGATTTTTTAAAATTTTAGATTTAT -TTATTGATTTTAAATAAATAATTAGAGAGCAGTCATGTGTTTTTCCTTGT -ATATTTACGAGAGAAATCTCAAAAAATTATTCAAATAGGAAATTTTACGC -CAACAATAAAATGTAGAGTGGTGTGCGCCTTTAAAAAGTACTGTAATTTC -AAACTTTTTGGCGCAAAATTTTAGAGTAGTTTTCTTTAAATTAAAAATTC -AAAAAAAAAACAAATCAAGATAAATACAAAAGTTTGAAATTACAGTACTC -TTTAAAGGATCACACCATTTTGCATTTAAAAAAATTTGTCATGTCGAGAC -CGTAATTTTAACGCAAAAAACGTGAATTTTCGCGTCTGTGTAAAAGAAGT -TAGTTAAGGAGAAAAAACAATTGAAAAATCAACAAAAATTGAACTTTCAA -CGGAAAATCAAAAATCGTTGCGAGTCAATAATTTTTTAGCTTTGAGGAAA -ATAACCCTTAAACTCAAAAAACAATTAATCGACTCAACATCAAAATTTCG -TTACAAGACCCAAATTAAAATTTTTTATTTTGGGATAATTGCTCCTAAAA -TTAATAAATTCCAGAGAAACGAGTAAATCGTGGCGAGACCCACTAGCGTG -TACCTTTAATTTCGAAATTATTTTGGGCTGTTCATCACGAACACACGTGT -TGCCTAGCTACCAAATTCAAAAAACGAAAAACAAAAAAAACAGGTTTCTT -TGAAATGAAAAATCGATAATCAGCAACGTGGCAAGATGTCTCAAATTATT -GGAAAAAAAAAACGTTGAAATTCTCAGAAAACGGACCGTTCTGTGGCAGA -ATTGTGAACGGCGTGCAAGGCCACGACCCGTGGAGAGCGCGTGAGAGTGC -AGAAAAAAGGAGGCGAGAGAAAACGGCTGACCCGTGGATAGACTTTGTGG -ATTCAGGAGACGCAGAGCGACCGTGAGAGACCCAGAAATATATGCAGAAA -GTTAAGGCGTGCAATAGTGTTGGAAATTATAATAAATGGGTACGGTAGGT -ATGACCTTTCGGGATCTTTGTGGGTCTCGCCGCGACGAGTTTTCAAGGTG -CATAAGGTTTTTGCGATGGGTCTCGTCACATAATTGTAGATTAAAATTGT -TGATTCGAGATAAATGGAAATTCGAAGCGTCTAAAACAGTTAGAACTTTT -AGTTTACATTAGGTTGAGCTCAACTGTCCAACCCCGTCAAACTTTTTCCA -CTTTTTTTTTACTTTTGCCTTTATGTCCTTTTCGGCCGTTTTCCTGGGGG -TTTTTACCAGACTACGAAATATCCTAACTTGGTAAGCCTCAGCCTAAGCC -GAAGCCTAAACCTTGGCTTTCAACTATACATACACATTTCCTCCTTTTTA -AACGATATTAATTAATTTACAAAACACCAAAAAAATATACAAAAAATGAT -TTGAATTTATGAGTTTCCCGCTAAATACCTACCGAGACCCAACTTTTGGC -CGTGGAGCGCGCTTGCACTTAAACTTCAATTTTTCACATCCCCATAATAA -CTTCCTTGTTTTAAATTGTTTTTCCCTATATTATTATTATCCTTATCACG -AGATGCCCTTGCAAAACACATTGTAAAAATAGTATTCTCAACTGATAATA -ATATTTTGTGTACCCCACGATAGTCCTTCTGGACCATAAAAATATTGATA -ATTACTGATAAGCTTTCTCTGTGGTTTCTGTAGTTTTGGTGATATTTTGG -GCAACAAATTTATATTATGGAAACACGGAATTCTGAAAATGCGTATTGCG -CAACATATTTGACGCGCAAAATATCTCGTGGCGAAAACTACAGTAATTCT -TTAAATGACTACTGTATCGCTTGTGTCGATTTACGGGCTTGATGTTGGAA -ATTAATTTATTTTCGAATTGTGACAGCGATATTCAGTTTTCCTTTGTTTT -TTTTTTTCGTATTATTTTGTTATTTTTATGCTTTCTTTTAATATTTTATC -AATTAATGAATGATTTCCGTAAATCGACACAAGCACTACAGTAGTCATTT -AAACAATTACTGTAGTTTTCGCTTCGAGATATTTTGCGCGTCAAATATGT -TGTGTAATACGTAAAGAAAGTTTGAAATAATTGTTTTTAAATAATTTCTT -ATTCATTCACTGTCAATTCTCACCGAAAAAAAAAATCCAAGTTCCTCCCG -CCAACTTGGCACGATGCCAAAAGGTTCTCAGGCCCATTCATGTCATTCAA -TCCATTCAAATGAACGACTTTTCGTTCAGTTTAGGCTTCTTCTTTTTCCG -GTTTAGTACTTTTTCAAACCGAAAAAAAAAATCCCAAATTGAATGCAAAT -GTGCTCTATTTGGAATAGACTTCACCCTATTTCGGAATTTTTTCCGATTT -TCTGAAAATCTTTAACACTTTTCTAACTGTTGCATTAATGACATTTTTCT -AGAAATTCTACTGCAAACGCGCTCAGTTGCGAAAGTTTTTGGGTCTCACA -ACGATTTCGGAAGAAAAACGTTTTATTCGTTGCGAGACCCGGAAGAGCCC -GGTGGAGCGCGTTTGCAATTTTTTTGGTTTGAAAATTTTGCGCAACGATG -CTCCAAAATAACACCTCGCGAATTTTATCGTTTTTTTAAATTATGACTTT -TCCGGTCCCAGAACGAATTACAAAAGCAATTTTTATGAAAAATCGTTACA -AGACCACAAAAAAAAGCGCAATAGAGCGCGTTTGCACCTTTTTTTCTTGG -AAAAGTCTCGTTTTTTTCTCGGTAAATTCACTGTGACATTGACCTTTCTC -GAAAAACGAAAAGTGTAATGGAAAGTGAACAAAAGTGACAATAATCTGGT -GAATTGCGTTTTGTTGTAATATTTTTGTATCTTCTTTTCTTTTTTTAATC -TGCGAAAAATAGAAAAGTTTTGGAGAGAAAGTGATTTTCGACGAAATTTT -CCTGATTTTGCTAAAATTGAACAAAAATTGTCATCATTTTCTGTGGGGTT -TCTCAAATGTTTTCTTAAAATTTATGCGCCTTTAAATTTGGGGGATTACT -GTAATGTTTGTATTTTTCAATTTTGTTTCGGGAACACAAAATTCTGAGAA -TGCGTACTGCACAATATATTTGACGCGTAAAATATCTCGTAGCGAAAACT -ACAATGGATTAAAATTTAATGAAATATCGTTATCACTATTCGAAAAGAAT -TTCATTATGAAGCCCGTAAATCGACACAAACTCTACTGTAGTCATTTAAA -GAATTACTGTAGTTTTCGTTACGAGATATTTTGCGCGTTGTCCCCGTAAT -AGTTTAACTTTTACCACGTGGCCGCCAGAAGAAAAACTTCTGCTACCGGA -TTTCATTTCCTCGGCCACAAACCCTTTTGACCCCCGAAAAAGTACATAAA -AACAATTCCGGGGACTGGGTCTCCAATCTCTCGCCCCCACTCACTAACAA -GGGGGACACCCTCAGAAACGAATGCCGTCTAACCGTCTGCACCCTCTCTC -TCGTCGCTCCAAATTCTTGGATCAATGCCAACTAACACGCAGTGTCCCCC -CTCCTCCTTCATCCACCCAAATGTTTCATCACTTCCCGGCCACCGCAGGC -TTCTCTCTCTTTCTCTAAATCTCTCATAAACTACTGTCTCTCTCTCTCTG -CTTCTTTTGCTCAATTGTTCTTCTTCATCACTACTATTTGCTCAATTTTC -GTAAATATTTTATTTTAAAATATCCCTTTTTCCTCCCCCCGCCTCTCTGC -TTCTCGCTTGACGCGCCACATACACTAAAAAAACCGGTTTTTTCTATCTC -TCTCCGCCCGATCATTGAATAGATAGTGTGTGCTGTACATCAAATTTCCA -TGGAAAAATCGCGCCGAAATTCCAGAAAATTCCACTTTTTCTAGAATTTT -CAGCGATTTTTTTCGGTTTTTGAATTTAATACAAAGCGAAATTCCGTGAA -AAATTAATTTTTCCTCAATTTTTGACGAATAAAAAATATTAGTATTGTTT -TTTTTTCAAGAAAGTGTGATTTTTTCACAATTTTCTATGGTTTTTACGGA -GAAAATCTTGAAATTCCACAGAAAAACTTGACAAGTCTTTGAAAATTAAT -AAAATTTCACCGTATCTGCCGATCGTTGCAAGACACACTCCACAAAAGAA -GTCGTGCGCCTTTAAACTGTGTACGGTAACTATATTGATTTAATTTTTTT -TTTCGATTTTGCGTCTATTTTTCCAATTTTTCTCTGATTTCGAACGATTT -TTTGCATTTTACCTCAAAAAAATTAATTTATTTAGATGATAAAGTGGAAA -TTGCTGATTTTTTACAAAAAAACACTTAAAAAACGAGTTTTCTCATCAAT -TTCAGTTGTTTCTGGCATGGCTCATTGTTTATCGACACCTGCTTGTTTTT -CTCCTCCTCTCCCATCAATTTTATGAGTTTTTCTTCGAAATTTCTCCATT -TTTCCCGTTCAAAAACCGCCAAAATTCGCTTTTTTTTTTCCAGAATTCGC -CTACTATAGCACTACTAGATGTGTTAATTTGGAATTATTTTTCAAAAAGA -AATGTATCCGGACGGGCTAACTGAAAATGAGAAGCTCAAAGTGAAGGAGC -TGTGCACTATGGTCAATATATCCGATGAGGATGCGATTAAATTGTTAAAA -GGTGGATAATTAAGCTGAAAAGTGGAAAAAAAAATGCATTTTTTACCTAA -AATTTACCTAAAAATTGGACCAAAACGTCATAAAAATACTGAAAAGTCAG -AAAATTGTCTAAAAAAACTAATTTTCGCTAAATAATTCCAGAAAACGACT -GGGACATTGCAATTTCATCGCGAAGAGTGTCGAAACAAGAGGATAAAACA -TTGGTTCCGGGCACTTCGAGAGGTAAATTTTTGAAAATTTTCAGAATCAA -ACTGAAAAATAGATATATTGTGTGAAAAAATCCATTTTCGCCGTAAGAAA -AGTGAATTTTGAGCGGTTTTTCAAATTTTAAACTGAAAAAAAAAATCAAT -TTATCTGAAATTTTGCTCTTTTCGGCGGGTTTTTTCTCAAAATTTGATGA -AAAAGTTCTAGAAAAACGACAAAAAAGCCTTTAAATGTACTTTTTTCTGC -GATTTTTTATCTTAAATTTAAAATTTTGCGCGTCAAATCTGGTGTTTTGA -CTCCGCCCACTAAATTTAAACTTTTCGTGAAAAAAAAATGTTTTTCTCCG -ATTTTTAATTGTTAATTTAGGCAAAAAAATACAAAATTTGCCCAATTCAC -CTATTTTTTCCAAAAAATCACAAACTTTGCGCGTAAAATCGGGTGTTTAT -GCTCCGCCCACAAAAATTTCTTAGAATTCGATTTTCGGCGGATTTTTTCT -CAAAATTTGATGAAAAATCTGAGAAAAACTACAAAAAATCTTTGAGCTTT -ACTTTTTCTCTGCGATTTTTATCTAAAATTTGAAGTTTTGCGCGTCAAAT -CTGGTGCCTTGGCTCCGCCCACAAAATTTGAAGTTTTCGTTTAAAAAAAT -GTTTTCACCACTTTTTCGCCGCTTTTTCGCCTGAAAAATCCCAATTTTTT -TGCAGAAGAAATCGATTTGGATCGATTATCGAGTCGTCTACGTGTTCACG -GATTAGCCTTCTATCTTCCAGATTTTGGAGGTTTTCCTAATGAATTTCGA -ACGTTTTTGGAGAAGGATTTGATAGAGACGCAGACACAGAAGAGACTGGA -GGCGTCCAGTAAGTTGTTTTCTGGAAAAATTGAAAAAAAAATTGAATAAA -AAAAATGATTTTTTTAATCGAAAAAAAAAGTTTTCAAAAATAAAATTGGA -AAAGGTGAAAAAAATTGAACAATTAAAAAAGAGCGACAAATGAATAAAAA -AAAACTTTTTTTTTTTCGAAAAAAAAGAAAACAAATGTTTTTTAATCGAA -AAAATAAAAAACGAAAAAAAAAGGAAATTTTTTTTACAATTAGAAAAAAA -AAATTAAAAATGTATTAAAAATTTTTTTTTTTGACATTTTCTTTCGCTTT -TTAATAAGTTTTGACTAGCGGGCCCTGCGGGCCCGCCAGTTGCAGGGGGT -GTAGGGCGAGTCCCCCAGTCGGGCGTAGGTTCTCGGCTTCGCCTCGAACC -TGTCAGAGGATTCGCGACAATTGCAGTGAGTCAATGGGAGGAGGGGAGAC -CCACTCATATTTTATAAAATCGAACATTTCTATTTGAATCCCGAGCACTC -ACAAAAAAACGAAAAAGTTTGTCAGTTGGGGGAATCGAGCAAAAGAGCAA -ATTATTCACAGCCATACGCACTAACCACTCGGCCATGCGGGAGAGACCTG -TCACAGAAATGTAGGGAAGGAAAATTTCTGGGGGGGGGGGGGGGGGGGGG -AGTTGTCTTTCGATTCCGTTTTATTCAATAATGACAATTTGGGGAAAGAC -GTTTGAAAACCGTTTATCACTGATAAGTCAGCAGGAAAACAATTTTTTGA -AATTTTTTTATAGCATTGTACTCATTATTTAATTCCCGAAAGAGAGCCGA -AAAGTTGAAGGTGTTATCTTGTAAATTGGTTTATTTGAAGAAAAAACAAG -TTTTGGCCTGAAAATTTTGAAAAAATAATATCTCTTGGCAGAGCATTGCT -AATGCGACGAAACTCCAGCTTCCATTAGATAAAATCAAAAACTATGAATC -AGAAATACATTCCGCAAAACTTTAGTGGAAAAAATGTTCAGGAGACCCAG -GAAACCACTCCCCCCAGTACTAAATTTTTGAATTATTTTTTCTTGAAAAA -TTTTCCCACTGAACTTTTTACAAATTTTATATGTCTCGATGCGTCTTGAT -GAGACCTACACGTCAATTTTTGGAAAACTAAGAAAACTTGAAAACTGACC -GAGTTATGATTGAAAAAGTAGATTAGCAAAGATGGGAAAGTGTGCAAAAT -TTGGCACTTATTCGTCTTGCTCGGCCGACTCATAGTACTTTTTCCAATTC -TGAGTTAAAAATCGTGTTCAGCGTACTTTTGTACGTGGGATAAAGAAAAA -AAATATCAAAAAAGATGAAGTAGAACTTGAGATAAAGACGAAAAACTACT -TTTTCGGAAAAAATTTTTTTTTGGCAAAATGGCATTTTTTGGCCTTTTGT -TTTATCACAACTTTTTGCCTTTTGCACTTATGAACTCAAACTTTCTTTCA -AAAAATCCACCTCTCTGAGTAGTATCTTGCACATAAATTTGGAACAAAAC -CGAGCAAAACCCGAATTTTAATTCAATTAAAACATGGTTTTTTGGGGGTA -AAAAAAGCAACAAAAAATTTTTTCAAACTGGGGAAAGCCGCCCTGAGCTC -AGTTTTGCTCCAAACTTTGTGCAGTTTTTTGCTCCCCCGTGGGGTGAAAT -ATTTCTAGTAAGCTGTCAAATATTACAAAATTCAGTCAAACGGCTCTGGA -GTTATTAATGAAAACGCAGTGTGACATTTTTTCGCAAGCCAAAAAAAACG -CGAAAAAACGCGAAAAAGGGGCGGAGTCTGTACACTCGGCATTTATTAGA -GGCTGCTTGGCAGATTTTGAAATATCGGAAAAACTTTAAAAGTTCTTTTT -TTTCCAGGACACCTAAACTGGTGGCATCAATTCGGCCAAAAACTCTACCC -GCTATCAACTACTGGAGACGGAAATTGCCTTCTTCACGCCGCATCGTTAG -GTAAATGGTTTTTCAGAGCGAAAAATCGGAAAATCGCTAAAAACTTACTA -TTTCCACTGAAAAAATTGTAGAGATCGCTCAAAATTTCACTATTTTCTGA -ACATTTTGATAAAAAACGACAAAACTATTTCAAAACGAGCCCCGAAAATT -GTTTTTTTACTAAATTTTTTTTGGAGAAGTGCAAAAATTTAAATTTTTGA -ATTAAATCTTTAAATCTTCAACAAAATTTAATCGTAAATTTTCAGGTATG -TGGGGAGTACATGATCGTCAGCTATCACTTCGTGAAACTCTCTACGAACT -TCTTACAAATGGCGCCAGAAAAGAAGCAATCCGACGGCGATGGAAATGGG -TTGAGAATCATATGAATCAGGTAATTGGCGAGAGAAGAATCTGTGAAAAA -TTTCTTAAAATTCGGTGAAAAATGATCAAAAATGAGCTGAAAACCGGTCA -CGTAGTTGAAATCCGCGGAATATGAAATTCCCAGAGGAAACAATTTTCGT -GGATTTCAACTTCGCGAATTTTTCTCAAAAAGCTTGAGTAAAAACTCACG -GAGTTGAAATCCGCAGAATTCGAAATTCCCAGAGGAAACAATTTTCGTGG -ATTTCAACTTCGCGAATTTTTCTCAAAAAGCTTGAGTAAAAACTCACGGA -GTTGAAATCCGCGGAATTCGAAATTCCCAGAGAAAACAATTTTCGTAGAT -TTCAACTTCGCGAATTTTTCTCAAAAAGCTTGAGTAAAAACTCACGGAGT -TGAAATTCGCGGAATTCGAAATTCCCAGAGAAAACAATTTTCGTAGATTT -CAACTTTTCTAGATTTTTTGCCAATTTTTTATTACATGTTACAAAAAAAC -GGCTGTAAATACTCACGGAGTTGAAATCCGCGGAATTCGATTTTTGTAGA -TTTCATCTTTTCCAGAATTTTCCAACAAAAAAAACCGGAAAAAATTATCC -GACACTCCATGGAATCTAGTTTTCGGAGATTTCAACATCGAGAACTTTTT -TCGCACATTTTTTTGCATTTTTAAAAAATTTCACCAATTTTCCAATTAAA -ATTTTTTAAATTTCCAGAGTAACGGTCTCGCATTGACCCTCTCGGAAAAT -GAATGCTTGAGTAAAAACTCACGGAGTTGAAATCCGCGGAATTTGAAATT -CCCAGAGAAAACAATTTTCGTAGATTTCAACTTCGCGGAGTTTTCTGTCA -ATTTTTTGAGATTTTTTCTCAAAAAGCTTGAGTAAATACTCACGTAGTTG -AAATCCGCGGAATTCGAGATTCCAGGAAATTCGATTTTCGTAAATTTCAT -CTTTCCCAGAATTTTCCAATTAAAAAAAAACGGAAAAAATTATCCGACAC -TCCATGGAATTTAGTTTTCGGAGATTTCAACATCGAGAACTTTTCTCGTA -GATTTTTTTGCATTTTTTAAAAATTTCACCAATTTTTCAATTAAAATTTT -TTTAAAAAATTTTCAGAGTAACGGTCTCGCATTGACCCTGTCGGAAAATG -AATGGGAACTCGAATGGGATGTTGTACTCGGATTATCATCTCCATTACCC -CGTAAACAAGAGGATAATGGCTCAAATTCCACAGATCAAATCTACGAGAG -TCTTGAGGCAATCCACGTGTTCGCGTTGGCTCATGTGCTCAAAAGACCAG -TTGTGGTTGTATCGGATACGGTAGGGAATTTTAAAATTTTTTAATTCTTC -AAAAATTTATTGAAGAGAACAGTAACAAAAAATTTGGTTACTTGTGAATT -TTACAGAAATATAGAAAATTTTAATTTAAAAAAATTTCGAGATTGGTGAG -AATCAAGGGTGTCAAGTCCCGTGTCCCGTTTGTCCCGTTGTCCCGTTTTT -TGAGTGTTTTTACGGGAACGGGACGTCTTTTGTCCCGTTTTTGAGCGTTT -TCACGGGAACGGGATGTCCCGTTGTCCCGTTTTTTGGGTGTTTTCGCGGG -AACGGGACGTCCCGTTGTCCCGTTTTTAAAATTTTCACGGGAACGGGACA -TCCCGTTGTCCCGTTTTTGTCATTTTTACGGAACATTGACACCCTTGGTG -AGAATAAAAAATCAATAATACACATAATTTTTGGAAGAAAAATCGATTTT -AAAAATGAAGCTTAACATTTTTTTTCGAAAGAAAAAAAGTGTAAGAAGTT -TATCAAAAAAAAAAACATTGAAAAAAATATCTTCAAAAATGTTCAATTTT -GTTTTAAGGTGCAACTATTACAAGAGCACACAATTCTTAGAATACGTATT -GCGCAACCTATTTGACGCGCGAAAACTACAGTAATACTTTAATTGTCTAC -TGTAGTGCTTGTGTCTCGATTTACGAGCTCGATTGATAGAATATTCAAAT -AATTTATTTATCGATTTAATATTCAAATTAGGCAAAAAATGAGAAAAAAT -ATACATGTGAAAAAATTAATTTTAAAAATAGAGCCCGTAAATCGACACAG -TAGTCATTTAAAGGATTACTGTAGTTTTCGCTGCGAGATATTTTGCGCGT -CAAATTTGTTGCTTAATACGCATTCTTAGAATTTTGTGTTCACATAATAC -GGTTTTTCAAAAATTTTAAATCTTCATAAAATTCATCAATAATAACTAAA -ACTTAATCAAAAAAAAATTTAATTTTAGTGTAGTCATCAGAAAAAGTCCA -TCAAAAAAAGTCCATCAAAAAACCATCAAAAAAAGAAAATTGAAAAATTT -GAATTAAAACATTTTTTTCGAATTTTTGAAAATAAAAGTGTTTGAATATT -AAACGTAATTAAAAAAAAAGATTTTCCTTTTTTAGAAAAATCTATTCATA -TTAGAACAGTCGATTTTATAAAAGTATCGATTTTTTTATTAATTGGATTT -TTTGTAAAATAATAATCGATTTTGAAAATAAATTGCTTAAAATATTGTAT -TTTTTGACAGAAAAAATGTAAAAAATTTATCAAAAATAAATAAAATTGCA -AATAATTTTACCTACAAATTAATTGTTTATTAAATAAAGTTTAAATAAAT -TAGAACAGGAGTAAAACGAGTTTTCAAAATTATTCTTTAAAATCTCGGGT -TCTTTTAATTCAAAAATTCTTTTAAAAAAAACTCAATAATTACGGATTTT -TCAAAAATTCGAAAAATTCAGAAATTCAGAATTTGGATAACATAATTCTA -GTTGACTTCCAAAAAAATGATATGTGACTTACTTAAGGTACAACTAACAT -TAATTTTCCAAAATTCTTATGGCTGCTTTAAAACACGCCAATGGGGTCAT -AATGACCGAATATTATGTTTAAAAAAATCAAAAAAAATTTTCTGATTTTA -TATGATTTTTTGAAAATTGGAAAAATCACAGTTTTAACCTAATTATTTTT -GAATTTCTGCCAATTGGATTTGTTCGGTGCAGCGCGCTTGCATTATTTTT -ATTTATTTATTTTATTTATTCTCGTTATTTCACTGATTTTCTTCATTTTC -TATGTTTTTTTTTCTCGGAAAATGAAAGAAATAAACAAGACAAATGCGAA -ATGTTTGTTAAAAAGTAATTGAAAATGCGTAAAACTGTGATATTCTGAGT -TCCGACGACGAAGAGCCTGAAATTAGTATATTTTTCAGTTTCACTCATTT -TCAATTACTTTTAAACAAACATTTCGCATTTTTCTTGTTTATTTCTTCCA -TTTTCTGAAGAAAAAACATAGAAAATGAAGAAAATCAGTGAAATAACGAG -AAAAATATATATAATTCATTAAATAAAAATAATGCAAGCGCGCTCCACCG -AACAAATCCAATTGGCAGAAATTCAAAAATAATTAGGTGAAAACTGTGAT -TTTTCCAATTTTCAAAAAATCATATAAAATCTAGAAAATTTTTTTGAATT -TTTTTATCATAATATTCGGTTATTGTGGCCCCATGGGCGTGTTTTAAAAC -AATTTCCCCACTGAGCGTAGTCCACCTTTGAAATGTTCTCAAAAAATGAA -AAAAAAACGAGTTATAAAAATTATTTTTTAAAAATCCAATATTTTAAATT -AATTTTTTTTTGCAGATTCTGCGAAACGCGAAAGGCGAAGAACTGTCTCC -AGTGGCTTTTGGTGGAATATATCTTCCATTAGAATGCCCACCATCACAAT -GTCATCGTTCACCACTTGTTTTATGCTATGATTCTGCTCATTTCTCACCA -CTTGTACTCATGAGAACAGAGACTAACAATAAACGTAAGCAATTTTTTTT -TTGAGAAAAAATATTTTCAAAATCATTTTTTAACTGAATTTTCAAATTTC -CCCCCCCCGTCCCCCCCATTTTTTTCGAAAAGTGAATTGGAATTTTCCTG -AAATTTGCACAAATTTTTTTTTGAAAATTCAAATGTTCGTCAAATAATTA -TTTTATTCGAAAAATCGACATTTTTCCAAATTGTAATATTTTTATTCTAA -AAATCCAAAATTTGATTTGGTAAAATTTCTGTCAACAATCAATTAAAAAT -CCAAAATTTTCAAAAAAATTGTGATTTTATTCGGGAAATTCGAAATTTCC -TATTTAAAATTGGATAAATCTAAAAGTTTTCGATTTTATAATTTTTAGGA -AAACAAGTTTTCAAATTTTTTTAATTATTAAAGTTTTTTTTTGCAATTTC -ACTAAATGAGCCAAATTTTAAAAGTGGAGCACCGAAATTTGAGACTTTGC -TTTTTTAGACTCAAATTGGTCCAAAACTACCGAATTTTGTAATGATACAT -TCTGAAAATTTCTCAAAAAAAAGTTATGGCTGTTTAAAGTTCGGCAAAAT -AAGGCCCATTTTCAGCTAAAATCAAAATTTTTTCCAACTTCTAGGTGTCG -CAACGTCTGGACCCTAATTTTTATTTATTCATCACTTTTTAATAAATATT -GTGGCCTTTGATTGGGCGTTTAATCGTTGTTTTAAGTACATTTATGATCT -TTGGAGTACAAATAAACGTTACATTTTGTACCCCAAAGACCATAAATGTA -TTTAAATCAACGATTAAACGCCCAATCAAAGACCACAATATTTATTAAAA -AGTGTTGAATAAATAAAAATTAGGTTCCAGACGTTGCGACACCTAGAAGT -TGGAAAAAATTTTGATTTTAGCTGAAAATGGGCCTTATTTTGCCGAACTT -TGAACAGCCATAACTTTTTTTTGAAAAATTTTCAGAACGTTTCATTACGA -AATTCGGTAGTTTTGGGCCAGTTGGGTCTAAAACAGCAAAGTCTCAAATT -TCGGTACTCCACCTTTAAAGAATTCATATAATTTTCTAAAACAACATATT -CTGATTTACAGAAATACATTTAATATCAATATGAATTATTTGAAAAATCA -AAAAATTTATATTTATTTTCAGAAATAATTCCGATAATCGATGTGAACCG -TAACCTGCTGCCTGTCCATTTTGCAGTTGATCCAGGAGAGTCATTCGATT -GGTCCAAATTAGAAACAAATAGTAATACACAGACAACTACTGATATGTCA -CAAATTGATAAGCTTGCGTTGATTAGTCAATATATGGATATTATTAGGTA -AGAAAATGAGAAAAAGGATTTTTTCAATTTTTTTTTCTAAAAAAAATATT -CAAAATATCGTTAAAAAGCCAAAAATGTGTACGTTTTAATTTAAAAAATA -TTAAAATTTTTTTGTCCCAAAATTAAAATATCGAAATCAAAATGTTTCCG -ACATTTATATAGAAATTCTGGAAATTTTTTTAAAATCGAAATCATATTTT -GAATGAAACTACAGAAAACAGCGCCAAAAAAGAAAAAAAATCGTTTTTTT -TTTTCGAATCTTTCATTACAAATATTTGAAAAAACGATACAATTATGTTT -CGCGAAAATTTTTTAAAAAAACTTTAAAAAATTATTAAAATCAGCTATTT -AATCACAAATGAGAAATATATCGGAAATCTGGAAAAAATTAAAAAAATTT -TTTGCGTATTTGTCTGAATTTATTTTACAAATACCAAAAAAAAATCAATT -ATTGTTGGAAAAAATTGAAATACAACGGAAATCGAATTATTTTTATTTAA -AAAGAACGAAAAAAAATCCAGAAACCATCACAAAATTATTGGAAAACGAG -AAAGCTGATTTTTCGCTAAAGTTCAAAAAAATTTACAAAAAAAGAAAAGT -ATTAAAATCGGTAATTTTCCCAGCTTGAAAAACTGAAAAATTCGAGTTTT -CTAAAAAAAATTAAAAAAAAAAATCAAAATATTCCTCAATTTTGGAAAAT -TACGGAAAAAGTAGTTTTCTTTAGCTTTCGGCCAAAATTTTATCATAAAA -ATTTCCGGAATGCATAGTTTTAGAGAATAATTTTAAATTGAAACACTAAA -TTTTTTAAAAAACTTTTTTTTTTGAAAATCCCGGATTTAAAAAAAAATAA -AATTTGAATTTCATATAAATATTTTGTTAGGAAAAATAGTTTCTAAACAA -AAATTTGAAAAAAAAAATATTTTTTTTTTCATATTCTTTGAATAAAAAAA -ATCTGAATTTCGAAACATTTCAGATTAGACGTTCGTCGTGGCTCAATCCG -TAGCTCGCGGAGAGTTCGAAGTGCTCACGCGCAACTTCTCACCGAATCTC -GTGGTGAAAATGGGCAAAATTTGCCCCAAAAATCAATTAAACCAAGAGAT -TTAAGTGCACATTCTAGTGATGAACAACCATCAAATAATGCAAAAGGAAT -GACATTAGCATCAAGTGGAATTGGTTCTGGAAGACATGAGAAATGGAGAT -TAATCAATGAAATTCGGTAAGCATTTTTTTTTTGGATTTTTGGCCTGGAA -AAAATTTTTCCAACAAAAACTTGAACAGAATTTTTGAAAAAAATGTTGGA -AAATTAAAAAAAAATTTTTTAAAGTAATCAATTTTAATTTTAAAAATTAG -AAACTTTTCAAATAAAACATTTTTATTTTTTCAAAAATTTTGAATTTCAT -TTTCAGAATAATCATTAATGAAAATTCAAAAAATTCAAACTACAATACTA -CGATAACAAAAAAAAATCAGAATGCGTACTACGCAACATATTTGACGCGC -AAAATATCTCGTAGCGAAAACTACAGTAATCCTTTAAATGACTACTGTGT -CGATTTACGGGCCTTGTTCTATTTTTGAAATTAATTCATTTTCGAATAGT -GACAGCCATATTACATTTTTCTTCGCTTTTTTGTATTATTTTCTCTTTTT -TTTTGCCTAATTTGAACATTCTATCAATCGAGCCCGTAAATCGACACAAG -CGCTATAGTAGTCATTTAATGAATTACTGTAGTTTTCGCTACGAGATATT -TTGCGCGTCAAGTATGTTGCGTAGTACGCATTCTCAAAATTTTGTGTTCC -CGTAATATGGTAGTTTGAATTTTTTTAATTTTCATTAATGATTATTCTGA -AAATGAAATTCTAAAGTTTTGAATAAATAAAAATGTTAAAAAATTTTTAT -TTGAAAAGTTCCTCATTTTTTCAAATTAAAATGGATTACTTTTAATTTCC -AAAATTTGTTTACAAAAAATTCGTTTAAAAAAAAATTAAACTGTTAAATG -TTAAACTTTTCAAAAAAAAAGTTCAAAATTTTTCTGTAAATTTTTAAAAT -GATACATGTAATTTAGATTATAATTTAAAAAAAAGACAAACATTTTTTGA -CGAAAAATATTAAAATTTTGTTAAAAAATGAAAGTTTTTAAAGCCTAAGC -CTTAGCCTCAGCCTAAGCCCAAGCCAAAGCCCAAGCCTAAGCCTAAGTTT -GGTACTGCAGTATTTAAAAAAAAAGTTTTTCCCCAAATTTCTTCTGTTTT -CTTAAAATTCAAAACTGTTATTTGCAAAAAAAAATGTTTTTGCAAAATTT -GAAATTTATTGAACTGAAAAAAATGTGAATTTTTTAATTGCCTTTGTCGC -AGCGGCTGGAAACAATTTTTTTTTTGAAATCAATTTTAAGAATAAAAATT -GATTATCTTGCGTTTTAAACTTGATTAGGGTATTTAAAAATCGATGGACG -GCGAGTTTTGGTTCAAAAAAATTAAAAATCTCGCCGTCCATCGATTTTTA -AATACCCTAATCAAGTTTAAAACGCAAAGTAATTAACTTGTATACTCGAA -ATTTGACGATGATTTCAAAAAAAAATTGTTTCCAGCCGCTGCGACATTGA -TAAGTTGGTCAAATTTCCGATTTTAACTAATTTTAGGCCATTTTTTGAGC -CGTCATAACTTTTTTCTGAAAAGTTTTCAAGAAGTTTCATTATAAAATTC -GGTGTTTTCAGACAATTTTGAGTCTAAGAAGCCAATAAAAAATTCGACTA -CACCACCTTTAAAGCTCAAAATAACGTCCAAAAATTCAATTTCCAGAACC -CACGTGCTTCGAACTTTTCGTATTTCCTCATCAACACGTGGCAAAGAGAA -ACTAATCGATACGGACGATTGTATTGCAAGAATGAATTCGACGTGCGTTC -TCGCATCGGAATTATTGCCAACTCATCACCAATACATGGACAAAATAATC -AATGAATACATGAAAAGTGCGAAACAACGATTCCAACAGAATCAGCGAAC -ACAATCGGATAGTCGGAAACGGATTAGTCGAAGTTTCAGTGCAAGCTCAC -TTATGCTCACGTGTATCGGTTGTGATTCGGTACGAGACCCACTTTTTGAT -GGAATTTCGAGAAAAAAGTTGAAAAAACGGAGAATTTGGCACAAGTAGCC -TCAATATTTGAAAAAAAAAACCGAAAAAATGGATGAGGGGAAGCCAAAAT -ACCAGAATTTACACCCAATTTTCAAAGTTTTATTGATTTTTTACAAAAAT -TTTCTCAGTTTTTCAGTAAATTTGCCAGATCTGACCATTTTTTAGGAAAA -CTGAAAATTTTCGGTGTTTTGCCAGAATAGCAACTTCCTGAAAATTTAGA -ACTAATTAATTTTTAATTTTTTGGGGGAATCATTTATTTCCTAACAGAAT -TTGATTTGAATTTCGAAAAAAACCGATTCTAAGCTTAAAAATTGACAAAA -ATAGCAATGAATGTCAAAAAAATTGCTAATACATAAAAATTGTTTGAAAA -AATACAAAAATAACAATTTTTATTTAAACTTTAAAAATTTTTCAAATTTT -AAAAATTGAAAAAATTAAAAAATTTTTAAATTAAAATTAAAACATTTTTT -GTTAAAATTTGAAAAAAATTCAAAAAAAAAATTTACATTAAATTTTTTTT -TTCAGGAATTCAAGCCGGCATCTCAAGTGACAAATATCATGTGTGATCAA -TGTTTTGCTTGGCAAAAAATGAGTGTTCTCACGTCGAATTGCGACCAATT -TATGGGAAATTCTGGGCCACCGTGCAAAAGTTCAACACTTCCGTCATTTG -GTAGTAATGATAGTAATCAGAATGATAAGGAAAATATTGTGGAGGTACTT -AATGTGGTGCCTAAAGATGGAGCCAAGACACTTACCAGGTATGGTTGAAA -TTTTGAAAAAATTAGAATTTTCAACGAAAACAGAAATTATTTTAAAAATT -TATTTTTAATTGAAAAATAAAAATTTCTCCCAAAAAATTTTCCCAAAAAA -AGTGTTTATGTTATTTTTGAAAATTATAATTGAATTGATTTTAAAAATTA -CGAGAACACAAAATTTGGAGAATGCGTATTGCGCTACATATTTGACGCGC -AAAATATCTCGTAGCGAAAACTACAGAAATTCTTTAAATGGCTACTGTAG -CGCGCTAGTGTCGATTTACGGGCTCTATTAACGAAATGAATTAAAATCAT -TTAGTTATCGAATAATACAAAAATCATTTCATTTCGAAAATCAAGCTCGT -AAATCGACACAAAAGCTACAGTAGTCCTTTAAAGGATTACTGTAGTTTTC -GATCCGAGATATTTTGCGCGTAAAATATGTTGCGCAATACGCATTCTTTG -AATTTTGGCTTCTCGTAATATACGAAGGTTGAAAATTTCAGATTTTTAAC -ACAAAAACTTATGAAAATAAAATTTATGAAAAGTATAAAAAGTTGAGAAA -ACAGAAATTTTAATTTTTGCGAAATCTAGATGTCAATTTCTTCACAAAAT -TTTTCAAAAATCGATTTTTCTTTCGAAAATTTTTTTTTGTAATTATTTTA -AATCAAAATTTGGCGATTTTCAAAATGTTTATTTTATATTTAATTTCTAA -AATTAATTATTTTGATTAAAAAATATATAAATTCAATTTTCAGATTGTAA -AATGAATTTTTTTGAGTTTGCCGTTGAAAAATAGAAAACAAATTATTTTT -AATAACTGAAATAACTGAAAATGTTGTTTGAAAAATTACATTTTTCCAAA -AAATCGAACATTTTTGACGCGCAAAAAAATTTGTAAAAAAAAATTTTCAA -CAGAAAAAACTGTAAAATAGGAAAAAAATTTACCTAAAAAGCGTATGTGC -CTTTAAAATGTACAGTAACCCCAAAAAAATCGATTTTTTGCAGTATGCGA -GCTGTGGAGGACGAAAACGGTGTGGTTCACTATTATATGGACGATGAAGT -AGCGGATTCGTGATTCTATTATACTCATTTCTTTTTTTGAAAATATATTT -ACTAGAGACCAGTTTTCATTTGATTTTTATCGATTTTTTTTGGATTCCAA -ATTTTTGTTTTTTTTTTGTTGCTTTTTGTGTGTTTTTTGCCGTCTATCCT -TCTTTCCTGCCAACGGGATTTTCTCTTCTTTTTTTTTTTTGAAAAACTCA -ATTTTCCCGCCTAGTATTGCTTTTTTCGAGATTTTTTCTTCCATTTTTCA -TATCCGCGCCAGCTTTTTCTCTCCCCTCCTTTTTTCACCCATATTTTCGA -GCTTTTTTCTGTGATTTTTTTTTCACCCCCAAAATTTTTTGTACCAAAAA -ATTGATGCTTCTTTTTTTTCTCTTTATTTCCAACAAAATGCTTGGCCAAA -GAAATAAACTCTTTTATAATTTATCATTCAAAAAATTTGAGACCAAATTG -AAATCCACATCCAGCAACTGCAAAGTGTCATTTGACAATGCACAAATCGC -ATGGCACGCCCCGTTTTCGTCGATCACCCGGGAACGCGTATTCTGGGACC -AAATGAGGAGGCGGTGGCGATCGGAGAAAATGAAGTATGGACCACATCTG -GAAGACACACCTGATTTTACGCGCAAAAATTTAGAAATGTATCGATTTTT -CGGTCAAAAATCAATATTTATCGATTTTCGGAGGGCACATGGGCTTCTGG -CCTTCCTCATTGAATATTCGCGCTCCATTTACACTCGCCTGCCGGACAAC -GCGTGGAAAAGTGTGGTGTACTCCACACGGACAAATACATCAGTTTTACA -ACTAAAATCGAGCCGTGACGCGACACGCAACGCGCCGTAAATCTACACAA -AATCTCTCCGACCCAAAATGGCCTAGTTCGGCAAACTCTGCCATTTCGAT -TTATGAGGGAAGCCAGAAATCCGTGAGGGCAAAGATTGAACAATCTGAGT -TAAATCGTTTCCATACAAAATTTTTTGAAAATTTTATTCTGAAACTGTCT -AAAACTCGAAAAGTTATCAATTTTCTGGTTAATTTCTGAGGAAATTCAAA -AATTGATATTTTCGAAAAAAAAAATCGGAGCCAATACACATCATTTGACG -CGCAAATGTTGAATTTTCAAATTTACGAGAACCCACGGGATTCTGGCTTC -CCTCATAAATCGAAATGGCAGAGTTTGCCGAACTAGGCCATTTTGTGTCG -GAGAGATTTTGTGTAGATTTACGGCGCGTTGTGTGTCACGTCGCGGCTCG -TTTTCAGTTGTAAAATTGATGTATTTGCCCGTGTGGAGTACACGGCACTT -TTCCACGCGTTGTCCGGCATTTGTCAATGGAGCGCGAAAATTCAATGAGA -AAGGCCAGAACCCCGTGAGAATCCTAAAATTCTGAGAATGCGTATTGTGC -ATCATATCTGACGCGCAAAATATCTCAAAGCGAAAACTAGAGTAATTCAA -TAAATCACTACTGTAGTGCTTGTGTCGATTTACGGGCTTTCGAAGAAGTT -ACTTTTTTAGTTTCTTCGTATTATTTTTTTTCATTTTTTGTCTAATTTTA -ATATTCTATCGATAAATGAATGGGTTTTTATTTATTTTTATTATCGAGCC -CGTAAATCGACACCAGTGCTACAGTAGTTTTCACTACGAGATATTTTGCG -CAATATATTTATAAAAGTTGACTAGCGGGCCCTGCGGGCCCGCCAGTTGT -AGGGGTGTAAGGCGAGTCCCCTTGCCGGGCGTAGGTTCTCGACTTCGCCT -CGAACCTGTTAGAGGGTTTGTGAAAATTTCAGTAGGTCAATGGGAGTCTT -CTTGTTTTTTGAGTTCGGTTTGACCAAAAACAGATGCACCCGATGAATCA -GTTAAAGCTGAGTTTTGATTGATTGAAGTTTGAGGAGGCTTTATATTAGG -GGAGACGTACCCATATTTTGTATAAAATTGAGTATTTCTATTCGAATCCC -GATTACTCACAAAAAAACAAAAAAAATTGACACTTGGTAGAATTGAACCA -ACTACCAAAATTTCTGCAGTCATACGCACTAACCACACGGCCATGCGGGA -GACACCTCAAACTGGGATGTAGGGAAGAAAATTTTCTGGAGGAAGTCGTC -TTTCGATTCCGCTTTCTTCAATTATTACTATTTGGGGAAGACGTTCGAAA -ACCGTTTATCACTGATAAGTCAGCGGAAAACCTAATTTTTGAAAATTTTA -TCACAGGATTGTACTCATTATTGAATTCCCGAAAAGGAGACGTACAGTTG -AGGGTTATATCTTGTACACAGACAGATGTATAGAATAAAACAAGTTTTGG -CCTGAAAATTAAAAAAAATAATATCTCTTGGCAGAGCATTGCTAACGCGA -CGAAACTTCATCTTCCATTAAATAAAATCAAAAACTATGAATTAAAAATA -CATTCCGCGAAACTTTAGTGGAAAAAATGTTCAGGGGACCCAGGAAACCA -CTCCCCCCAGTAAAAAATTTTTGAATTATTTTTTTCTTGAAAAATTTTCC -CACTGAACTTTTTACAAATTTTATATGTCTCGATGCGTCTTGATGAGACC -TACACGTCATTTTTTAGAAAACTAAGAAAACTTGAAAACTGACCGAGTTA -TGATTGAAAAAGTAGATTAGCAAAGATGGGAAAGTGTGCAAAATTTGGCA -CTTATTCGTCTTGCTCGGCCGACTCATAGTACTTTTTCCAATTCTGAGTT -AAAAATCGTGTTCAGCGTACTTTTGTACGTGGGATAAAGAAAAAAAATAT -CAAAAAAGATGAAGTAGAACTTGAGATAAAGACGAAAAACTACTTTTTCG -GAAAAAAAAATTTTTTGGCAAAATGTCATTTTTTGGCCTTTTGTTTTATC -ACAACTTTTTTCCATTTGCACTTATGAACTCAAACTTTTTTTCAAAAAAT -CAGTCTCTCTGAGTAGTATCTTGCACATGAGTTTGAAACAAAACAGAGCA -AAACCCAAATTTTAATTCAATTAAAACATGCTTTTTTGGGGGTAAAAAGA -GCAACAAAAAATTTTTTCAAACTGGGGAAAGCCGTCCTGGGCTCAATTTT -GCTCCGAACTTAGTGCCGTTTTCTGCTCCACTGTGGGGCAAAATATTTCT -AGTAGGATTTCAAATATTAGAGCATGAAGTCACACGGTTCAGGAGTTGTG -AATGAAAACGAAGTGGGACATTTTTTCGCAAGCCAAAAAAAACGCGAAAA -AACGCGAAAAAGGGGCGGAGTCTGTACACTCGGCATTTATTAGAGGCTGC -TTGGCAGAAAATTATCAATTATGTATATGTATAAGAATTATATTCGAATT -TCACGCGTAAGTTCCAAATTTAGCAGCATAGCCGCCTGAAGTTCGAAATT -TAAAATAAAAAAACCGAAAAGTACCTGACAGCCAACGTGGCAACAAATGG -AATCTCATCGACAAGTCCTTCAGAATTGAATACTGCAGCATTTGACGTAT -GATAAATGACTGCCACGAATTGATTTTCAAATAATATTTTATTGATTGAC -GTGGCAGTTTGGTGGCTGAGCGGTTTGTAGTCCAATGTTGGTAGAGTTAA -TAGGTAAAGACCACCCGTCTCGGTTGCCACACACGCTTCTTCGCCGCTTC -TGGAAAATTTGGTTTTGAATTTCTAGGCCATTGGGTTAGGCTTCGTTTTT -GAAATGGGTTAGAAATGTAGAAAATGGAAATTCTAGGCCATCAATTTTCC -TTTTGCATGTGTGTAGGAAATTGGCTAACATTCTAGAAAATCGATAATTT -TATAGAAAGTGAAATTTTCGCAAAATCAATAATTCGATAAAAATCGATAA -ACTTTGATAGAATTTTGTTCATCAAAAACCGATAATGTCCGAAAAATTTC -AGAAAATTAGATTTTTTTAACAGTCCGTTCATTTCGTGGCCTAGAAACTT -ATTTCTAGGCCATGGAAGAGTTTTTCCAAGATTCACGGCCACACGTACAC -TTGCATGCTAACAATTGCGACAGGCTTATTAGAAGTCGAAGATCTTCGAA -TTTTTCGCGACAGATCCGACACTGTGAGCTTTGTCCCGCCGAGTTTTTCG -AGTCCTGATGTTCCGATTTGCCATAAAATTATATTACCATCGTCGGAGCC -TGATAAGAGCCCGTGACGACACATTTCTAGGCAAGTTACTGCTCCGTCGG -TTATCTGGAATAGAGAACATTTGGAACTTGTCGATTTTCAGAAACATTTT -ACTGTACTTTTTTATGGGCAAAACATTGTTTTTTTTAATTAAACAAAACT -ACTGATAATTGTAAAAAGATCAATTTTTTAGTGTTTGAAGATCATTTTTG -AGTTCTCTAGCTACAAAATAAACAATTTTAGAGGAGTTGCAAAATTGTGA -ATTTTAAAAATAAATTGCACAATTTTGCCACTTTTTAATGGTTTTTGATG -GATTAAACCTAGATTTTCTGAATTCAGCATACATGAATTACCGCTTTTTG -ACAAAATTAGACAACTTTTTATTTTTGTCCAATTTTTTTCAGCCATCTAA -TGACTGTCCTTTTTTTTGGGCAAAAAAATAAATTTCCTAAAAGCGTTCGA -AACTACTATATTTTGAAATATTTTGAAATAGGACATTTTTTTAGGGCTCG -GAGATCAATTTTAAGTTCTCTAGCTACAAAATGCGGAAAAAAATGTAAAA -AAGTTTGGTACTTGTGTATTATACCCCCGCCATTTTAAAAATTAATAAAA -TTTCCATCAATTTATTTATTTAAATTAAACGTGATACCATTTTTCCTTGT -TAGGCTTAGGAATGGTTTTTTCCTAAGCCTGAAATTCCACACGTTTTTAT -TTAATGAGTTAAAAAATTAACTTTTAAAATGGCGGGGGTGTAATACACAA -GTACCAAAAGTTTCTAGGCCCCATTTGCTGGGCCACAATTTATAGGCTAC -AGTTTCTAGGACACATTTTCCTGGGAACATTTTCTAGGCCACATTTTTTA -GGCCACATTTTCTTAGCCAAAAATGTACTCACAAACTTAGCAACGTGGCA -ACAATTTCAAAAAAAACCTCATACCTTCTTCTCGAAAATTATTTTATCTT -TCGAACACATTGAGATATTTCCAGAAACGTCGCCGAGAATAAATTGGGTC -GATGAGTAGAAAACTGCAGAAATTGCACAAACCGGTAGAGGAATCGAGAA -GCTCTGAAATTATTCTTCATTAATTTTTTCATGCAATTTTAATCTCGGAC -CAATCAGCGTTTTGCCACGTCTTTTTTTTTTCGAACCAATCAGAGGAGTG -GGCGTGGCTAGATGCTGATTGGTCAGTTTCAAATTTTTTACAAAATATGA -CCTACCGTAGAAGAAGAGCACAAAAGTGCTCTCGCCTGATGGGAACAGAA -AGTTTCATGAGAGATACCGCCGAACAGAATTAACGTTTTTCGTGAAGAGC -TTGAAATCATTAGAATGATATTTTCATTTCGGGTCTGAAATAATTCAATT -TTAAAGGTACACGCCACCACCGTATCCTACTTCCACATGGTACTTCTGCA -CAGTTTCCAGCGCAACTTTATCGAATTTGTGAAATTCCAAAAGCCTGTCG -TAGTTCACCTTAGAATCGTCACGCACGAAATCGTAAAGGAGGTTCAGAAC -CTAAAAGTTTGAAAAATATGTCCTAGGAAATCAAACTGTGAATTTCTAGG -CCACATGATGGAAATTCGTATGAAAATTGCGACGAGCCCTAACATGTGGC -CTATTAATTGTGGCCTAGAATCTGCTGCCTACAAGTTGTGGCCTAGAAAA -AATGTTTCCTAGAAATTGTGACCATGGCCTAGAAATTTTGGCCTAAAACA -TCCGACATAGAAATTGTATGGCCTAGAAAGTGTGGGGGCAAAAGTTTTTA -ATTTTCAATTCGGTTTTTTTTTTCACAAAATGGAGAATTTTTTGATTTTT -ATGTCTGAAATTGAATGGGAAACGTGGAAATATTGCTAATAACCAACCTC -TTTGCTAATTGTAATATCCTTTTTCACATTCTCGCCGACACCATTATCCA -CAGAATCCGTCTGAACTTCTTTATTTTCTTGAAAATTTGCCACGCATTCC -ACGTCTTTTTTATTTGTCTCTATCGTCTGCGTCTCCGACGTCTTATACAC -TATTTCTCCCTGAAGGCGGATAGGTTTTCTCCACGTGAACTGGAATAGTG -TGACGTCTTCCATTATTAGCTGAAAATTTGAGTTAAAACTGCTCTATCAC -ACTAAACACGACGACACTCGTGGCCGCGGAAATTAGAAAACTCGGCCACG -TAACTTGGTTAAATTAATGAAAATATTATAAAAAACTTTCGAAAATTTGA -AACATTTTAACTTTTTTTAAAAAAAAACACATGCAAATGTTCCTAAACTG -GCTAAATAAACAACGCACATCCCCGGCGGAGCTCTGGTTTTCCATGGCAA -CCGAGAATGCGTGCGGGCCAACGGGGAGAATGTGGAGTACGTAGAGACGC -AGACAGTTGTATAAAAGGGGCGGCAACTTGAAAAAATAAATTTCTAGAGA -TTAATCCGTGCAAAGTTGTTTTTAATTACCGATGACCGAGTATGTGATTT -TTCTAGGCCACGGAACCAAATTACGGCGGAGTTCCGTTGAAAATATCGCT -TAATTGTTTTGTTTTTTCTACCAAATTAACTGACTGAAAATCCAGTTTTT -TTTTTCTGAAATTAGGTTCTTTCAAAAATCACCTGAGTGTTCCTTGATTT -GTTTTCGTAACTTTTTTCTCTCCAACTATTACACTACGGGTGTTTTGACA -ACACAATGGAAAACATGTCTGTTCAGTTTAAAGACTGACAAGAGTCTCGT -AGTCTCTCGCGGACTAGCTTACGGCCCTTGTGGTCTAGAATATTGAAAAA -CTTAGTTTCAGTATTGTGGCCGCGAAATTTGAAAACTCGGCCATCGATTT -TTTTTCCCACACCATGGGGCAATATTCACTAGACCATTCATTGTAACAAA -TATTTCAAAACTAAGAATTAAAAAAACTCCTACGCAATTTCCCCAGTCAC -TTGGCGGCTCTCACGCTCCCTATTTCAGATGTTAACCTCATTTGAATAAA -TTGCTTCTCCCATGTGTTTTTGGATGGGATACTCCATCTTTTTCAACCAA -TTTTTTCTCCTTACTTTTGTTTTTAACGGCTTTTTTTCATATTTCTGATT -GAGAATAGGTCAAGTGATGACGTAATAGAGCGCGTGGAAGAGGAGTGACG -TCACACGTGGCCTAGGAATCTCTGCGACCACCACATGAAAAACGTTTTAT -TTTCTAGGCATCCCTACCTACCCGTGTTTTGTCTCTATTTTGACAATTTT -TTGCAAGTAAATTCCCGGCTGAAACAAGGTCACCGCAACACAAAATAGGT -GAAGGGATGATCTCTTTTTTTCCAGAGTCAGTCAACATACATAAATTATG -TGTGTCTCTTCCATTTTCCTGTCGTCAATTTGTTCACTATTCGCTTCACT -AATTCCTGCTTTGCATTTTAATGTCCGTGCCCTCTCACTGGAACTGACAT -TTCACACAATGTTTTTTTCGGTGGAAAAAAGTTTTCTAGATTTTGATATT -TGCTGGAAATTTGGAAAATTTAGCGACTTGACCGTGCAAAAATTTTGGTG -GCCGAGTTTTCTCTTTGCGCGGCCACGTTGTAATAGTTGCCAGGTGTCGC -AAGTTTTTAAAATGACCGAGTTTTCTCTATTCACGACCAGATCTCTCATT -ATAGCCGACTTCCGACTTGCGTAAAAGTGCGACGTGGCCGAGAAAAATTT -CAGTGGCCGAGTTTTCACGCGAAATCACATTTTTTTAGTTTTTTGGTACG -TGGCCTAGTTTTTTAAAACCATTGTTTATCTCCACCCAATCTAAAAAAAT -TTCTGCGGATTTTTAAACCATGGCCGTAAAAAAAAGCCACTCTCATATAT -TTTTTCGACACCTTTCGGTTTTAGAAATATATTTTTAAAAATAAAATAAA -TGGCTTTGAAATCCAAATAGAAATAATTTTCCAAAAAAAGTGGAAAATTT -TCTAGGCCACTTGAAATTTTTTCCGAGATCTTTTTTGGGAAAGGAATTTG -TGGCCTAAAAAACAAAAACTCGGCCACTATTTTTTGACCATTTTTTCCAT -GTGACGTCACTTGTGACTTACAATTCCTTTTCTCAATTTCTTATGAGAAA -TCGCTTTTTTTAAGACTTTTTGTGATTTTGTTGCATTTTCTCCCAGTCGG -AGATTACGCCACGTGGAAATAGTAAACTCGGCCACACTCTTATAATTTTT -TGGCGTCTTTTGGGAAAAGTAACAAGTTCAAACAATGTAAATTACATAGC -CTAGACTTAGCTGACCAAGGCTTGTTTGAAATATTTTTGTGGCCTAGAAA -AATAAATATTCGGCCATTACTTTTTCTTCTCATTTTTGTCAGAAGACGTC -ACTGAAAACCTAGAAATCTCTCTTCCAGGGCTGCAAATGAGTATATCCTC -CATACCTTCGTCACCGTCAATATCGGGATCTTCCACGTCATCGACCGCGC -CGAACATTTCATTTTGCTATACATGGACCACTAAGGTAAGCGGCCTAGAA -AAATAGAAAGTTCGGCCAGCTCTTAAAAAATCGATTAATGATAATTTTCA -GTTAAAAACGCGAAAAACTGCGGACGGCGAGGCGACGATTTTATCGATTT -CTCCGAAATTCGCGACAGTCCACCAACTTATTTCGTTTCAATGGAATATT -CGAATTCATGCCACTTCTGAAATGGTAAGGCTTGTTTTTTTTTGAGGTAG -GCAGGCACGAAAGCGTCTGCTTGCTTTTCGAAAACACGTGGCCGCGGACT -GAAAAACTCGGCCACCAAAAATCTGAAACTGTGAGTCGCCCTGACAGAAT -TTTTTATTTTCTCGGCCAAACAGCAAAAGCCGACAAGTGAAGTTAAAAAG -GGAGGAGCATTTTTTTAAATAAAAAACTAGACTCCTAATGACCTCAAAAA -TATCATATTTTTAAATGTAAGAGTCGGCCACGTCCGCGGTCGATTTACAC -AGTGTCGCGGCTCGGTTTTCATTAATTGAGCACTGAGAAGTTTCACTTCT -CCAATTTCAATTTTCAGAACGAAGAAGACGAAGAAGTGGACTACGTGGCA -GTTGACCTTTACCTGGTAGATGGTCCTGTAAATGAGGTGAACGTTATGGC -CGAGGTGGGGGCTCTAGAGAAAACATCCACAGCAACGTTGGGAAGCCTTC -CCGCAGGTCAGAAAGAAGCAAAGACTATAAAAATGCAAAAGGGCTCTGGT -TGTGAGATAACGGATGCAGATCGAGAATGTGTGTCGAAGTATTTGAAAGA -GAACGTGGAGAATATCATCAAAATCTCCATAATTATAAATATGGAGACAC -GACTTTTCGAACCATCAACCTATTTGGATGCAATATCTCCAACTCCTCGA -GCATCATTTCTAACGGCAAATTACAATGCGAGAGTTAACAGTAAGGTATG -GAAAAGGCGATCACGGAAAAGGAATGGAAGAATCGAGCGAAGAGTGTTAA -GTGATAAAGAGAAGACGAAGTATGAGAGTAAAGTACAAATGATATTGGAT -GAGGAACGGGAGAAGCTGTGTGATAAACGAGAGATGTTGAAGGAGGATGA -TGGTGGATCGAGAAGAGCTTCGTTGATTTCTCAGTTCAGGGAGAATCAAC -ATGAATCTGTGTTGGATGATCATATGTTCAAGAGGGTAAGGTTTTTATTT -TTAATGCCTAAAACTTTGAGATTGAGGCAGTTCAATAGGCTATATACATA -TAAGTGTGGACCCAACAAGTTTGTTACATGAAGTATTTTTTCCAGATCCT -CGTTAGCTGCTGTGAATCTTGCGAGCAACGTCGTCTATCGTTCATGTGTG -ACAGTCGAACCGAGGATGATTCTGAAGGGGAAGATTGTGAAGACAATGAA -GAAGATGATGGAGAAGGTGGCTCCGATGATGAGGAAGACGATGGAGAGGA -GCCTCATTTTGAATGTGATAAGAGTGATAAGGAGCATGTCCACGATGTAG -GTCTCCTTTAAAATATCGTCCATAAAAGCTTAATTTTTTAGATGCTAGCA -AATCTATACTTCAACAAAGTAGTCCTTCCCGAAATGGAATATGTCGAGGA -TTTTGTGGATTTCCTGATTGATGCGGAGCTCAATGACTTGCCAGTTCTCA -AAAGAGCTTGTGAGAGGTATTTGTGCAGTGAGCTGAATTCGGTAGGCTTC -TGTTCAAAAAAATATAAAAATCTAATCGAAATATTTTCTAGAAAAAAGAC -ATTGGAACTTGTCTCCTGTTGGATTTGCTTTTCAACTCGATTGTATTCAA -CTTGCCTGTTATGAAGTCGATGACCTTGACGGAGTTGGCGAATCGAACGC -ACGAGTTTGTGGATGCTGACACACTTTTGGATCAGGAAGAGTTTAAGTGA -GTAGGGTGTGCGGCAAATTTGCCGAATTTGCCGAGCACGGCAAATTTCAA -AAAAGTAGATTTGCCGAATTAGCCGAGCTCGGCAAATTTCGAAAAACTTA -TTCATAAACCAGCAGTGTGTAAAGAATTCAGTAGTTTTGGTGCTCCAAAA -ACATTAAAAAATATCAAATTTTTTCGAGTTTGTCAAGCACGGCAAATTTG -CCGAATTTGTCGTGTTCGGCAAATATTGGAAAAATAGATTTGCCGAATTT -GCCGAGTTCGGCAAATTTTGAGATTTGCCGCACACCCCTGGTGTGCACCG -TTAAAAATTCTTTTTTTCCAAAAATCTAAAACTTGAGGTTAATAATGTGA -CCGAAAAACTGAAAAAAAAAAGAATTTGCCGCTGCAAAACCATAATCCGC -CAAAAGTTTTCTTTGTTTTTTTTTCGAATTGCAGGGTTTCCGAATCTGTC -AAAATTGGAAACACGACAGTTTGCCGAAAAAATTTAATTTTTGAGTGAAC -TGTTGATGCGAAATTCATTAAATACGATTTCAAAAAGCTCGGTCACGTAT -TTGTAATTTTAGAGTGGGATTAGCTATTTAAAAATTACATTTGTAATTTC -CAGAAACCTGGATAAAAGAATGCGAACGCTTGCCGATCGGAATCTCGTGG -AGCTCATCGAGCAATGTGTTACGTTTCGTGACCAAAAAGCAAGAGTTCGC -GTTTTGCCGACCGCCGAATCATTTGATATTTCGTTCGACTTAACTAATCA -ATAATATTATCGTGTTACTTTTTTCCTCTGTTTTCTTTCTCATTTTTAAA -AATGAATGCTTTTTTCTTTTTTTTTACCCGATTTTCCACACGACTAACTC -CAAAATCAGCCGCGCCTTTTTGTCTTTTATCCCTGCTTTTCCACACATTT -ATCAAATAAAGAGTGCAACGAAGTGCAAAATGGGAAGTAGTAGTGCTGCA -ATCTCATTTAGAGTACACTTTTGGAGCTCTTTTCTCCAGATATATTATAT -GCTGTAGATGGAAACTTTTCCAGTTTATATATAATATTTTTCATTTTCCA -TATTGCCCTTCACTGCTCATCATCCAATGGGGTGCATCTAATTACGGCAA -AGCTTCGCGGATGGGGCGAGTAATGAGCAAAAGAGCACAAGGATGGGGCT -CTTTTGTTCCTCATTTTCATTGCTTTTTGATTTCATTTCCTTTTCAACAT -GTTTCCATTTTCGAAATTAATCGGCTTTTCTGACCCAGGACTCACGGGAG -ATGAAAATTAATCTTTAAGAATTGTGCTTTGAAAAACAATATCATACACT -TTTCAAACTTCATTTCTCCGTTGTTCCCAGTAAATTCCAAGCTGTCATCC -ATCAACTCTCTGATAAAAAATAATCATTTGGTCCGTCCGTCGCGAAAATG -AAGTGAAAAAAGTTAATCCCGGCATGTTGAAATACACATTTCGTCGCGTG -GAGTATAGTTATGCTTCGATTTCTCAAGAGGATTCTTCTTTCCCCCTTTT -CATATTTTTTCGGGCAAAGAAGAAATCTCTGTCACCCCCCGACTAAAAAA -CGCTAAAAATTCAGCGTTCATTGTTCGGTTTTCCGTTTCAAAAAGAAAAA -AGTGTGTCAAAAACTCAAAAAGTCACCGCCTAAAGTTAGTTAGCACCTTT -TTCCATTGTGAAGATTTTCTTTCCTTCAATACAACTACTACAGTTTGTTT -CCTGTGTGTCGTCCTATTGTTGTGGGTGTAATTGTTCGATAGAGCGCGCT -TTACAAAATCTCTCGAATTAATTGAAAGTAGTGTGTTGTAGAGACCTTGA -CTCCTTTGTCAACACTGTAATTAGGAAGGAGTACACCGCCGGGCGGGTGA -GAACAGTTATTATAACGATAGTGGTTTGTTATTGTTTGTTATTAATAGGT -TAGTTGTCTACTTTAAACGTTTTTTGTTTGAAAAATTTCTGTTAATTAAA -AAATACATAATTTATAAAAATGATGAGTTTTTTTTTCAAATTTCTCAAAA -ACCGAACCCATGGGGTTTTTTGAGAAAAAATAAGAAAATTTTTCTAGTTA -TTCAAAAAATCTATACATTTTAATATCTGTAAATTGTAAATTTGGAAGAC -AAAATTTTGACAATGCGTATTGAATTTGAGTTTATTTAACTTAAAGAAGA -GAAATAGACAAATAAATAATTATATATATTGCGCAACATATTTGAATAAT -ACATTTATTTTTCGTAATATTTATTTTGAAAAATGATTGAAAATAAAACT -CGAAGAAAACTATATTTAAAAATGTCGGTGCTTTTTTTACATTTTTTAAA -CGAAAAAAAATGCGAAAAAAACCAATTTTCCGAGTTTTTTCTTCAAAATA -TTCGTCCCTGTTCATGAAAAATGTTCTCACTTATGTAAGTAGTTGTCACG -CAATGCAGTTGTTGACCAAAAATTATTTTCCGAGTAAACCCTATAATTTC -CAAATTCTCTTCTTCTGAAATTTTGAACTTTCCATCGGGAAAATGTCATT -TCAACTCGAATTCACACTAATTATACATCTGTATAATTATTTAGATTCGT -ACTTTTTCCTCCTTTTGAAAAAGTGCACAGACACCGCCGTTATCTTTACA -ACCGTCTGGCAGGACCGGTGTTGTAGGCTTTAAATAAATATTTTTCCATA -AATTTCTTAATTTTTAGCTGAAACGATTTTCCAACAAAAAAAAACGCACA -TTTAAAATGGTTACCGTATTTCTTCTATCAATATGGCTGCAATACTATTT -TTCGATGGTCTTCCCGCTTGCAATACTAATAGGGAGTGCAAGACTATTAG -GGAGTGCAATACTAATTTTCAGAACATTTTTCTGACTGTGAGCTTACTAT -TTTTTTTTCTGAAAAAACTCGAACCTTGTGTGAAAATTCAGAAAATTTGA -TTGTAATTGCAACAAAAAGGTGTAATTACTTCAATTTCATAGAAATTTTT -CCAAAAATTGTTGCACAGTAGGCAAAAAATGTTGTTAAAATCTCAAAATT -AGTGAGGTGATTTTGTACCAAAAAAAAAGTAGACGCAAGACTATTAGGGA -GTGCAACACTAATTGGGAGTGCAATACTAATTTTCGGAGGGTGTTCAAGG -AGCAATACTAATAGGGAGTGCAAGTCTAATAGGGAGGTCATATTAATAGA -AGAAATACGGTAAATTTTATATTTTTCGGTGCATTTTCATTTTAAAAACA -ATTTGTTTGAAAATAATTATTTTTAAAAATCGTTTTCTTCAAATTTTTTG -TAATTATAAGAAACCAAAAAACCTTTATTTAATTTTCAACAAGTGTATTT -TCTAATTAAAACAATTATGAAAATTCACAATAAAAGTTCAGGACTGAATC -CAAAAAAACTTTTATTTCAAAAACGAAACACCTTGTTTGCCAAAAACCTG -GAAAAGCCTGGAAACCTGGAAAATCGAATAACATCAAATTTTGCAAATTT -TAAGCGTTTTCTCGAAAAAGTTGACCTGAAAAAATAGGATTTTTCAGTTT -ATTTTATAAAAAAGCGAAAAAAAGCAAATTTTTTGAGAAAAAAATTGCCT -AAATTTTCGAAAAATCATTTTCAAAACTATTCACGATTAAAATTCGTTTA -TCCATTTCTCCTTCAATTCTTCCAGATTCGAATGAAAACTTGCTCAGAAA -AAATGCTAAATTTGCTCTTTTTCGTATCCACTACTACTGCTACTACTAGT -AGAAGTTCTTCATTCGGTGGCCGGACTACTTTGAATCAAATCACATTTGT -CGGGAAGAAGGAGGTCGTGCCTTTGCACTTCTGGTCACTCCAGAAATTGA -AGAAATTGAGCAGCTCGAGTTTTGGAGTATTCCAGGCAACTCGGTCGTTT -TTGAAAACCTATTCTATGAAAACTGCAAACTATGTGGCTTCATCTGGTCT -GGCTGGAATTTTTTGTTTCAAATTTTGACCCAGTACCTTGAGAATCAACC -AGTTTTCCACGTATGCTAAAATCCGAAAAAGTGACTCACACGAGAAAGTT -TCAATTTCCGTGATGACGTTCGCCTGGCTCTTCAGCTCATTCTTTTGTCT -CCAGAGCTCTGGGGAGCTGCAAATGAGTTGAGAGCAAGCACATTGCGTGA -GCAAGATAGCTCCAAAAGATATGAAGAGAGCAGGCGGGAGATGAAATTGG -ACGATGAAAAGTCGCCAGAAGCATAATTTTGGTGCGGCGACACCCGAATA -ATGAGACATTTACGACTTTTTGGAACATCTTCTACGGCCAGAATGTTTCG -TAACATTTTGGTAATTTGAGTTGTAGTTTTGAGGGGCTTTTTTCGATTTT -TAAATTTGTATTGACTCTTATTCGCAAAAAAAGAGAACTGCTATAGCACG -TGTAGTCAAAATGTCTTTTTGATCTTCAAAAAATGCGGGAGTTAAGACGC -AGACATCTCATCTGATTCGCATGGCTAAGAGCGTGCTGACGTCACAATTT -TCTGGAAAAATATTCCCGCATTTTTTGTAGATCAGGCTATGATGTGTGTG -TTCAATGAGACAGCCTGACACGACGTGATGTAGTTCACATTTTTCGGCAG -TTTTTTTCCTGAAAAATGTGGATTTTCGTTTTTTCTTAAGTTGTCAAATT -ATCGAAAGCTACTAAGCTTGAGTAACTTAGGAAAAGTAGGATTTTAAATT -GTTTTCACGGGCCTCGCAACGAAAGATCTCACTACTATCACCAGAAATCC -AAAAAAACGAAAATATTTGTCGTGCCGAGCCCAGGCTCCGTATTTTTGAA -GCGAAATTCCTAAACTCCCTAACCGCTGAAAATTTCTGAGTTGATTTTCC -ATCACCTTCTATATACAGTCTTTCGACCCGAAAACGATTTGAATTCGGCT -TTCTCCTCAAATCCTCTGTATTGCATCCTCTTTCTTAGTTGATTTATTTG -TAGCGGATTCTTCCCCTTCCCATCCGTGGCGTTATTGTTCGGTTACGATA -CGCTTCTTGTGAAGGTTATATGCAAACGACTACTTGCCATTCGATTCTTT -CTCCAAAAACGGGTTATTCCATTTCCTTCAACTAAGGAGCTGTTTTTTTC -TTGGTTTTTTGTAGAAAACCTACATTCAAAGTCGAAGTAGTGAAAGTCAA -AAATTACCAAATTTCGCAATTTAATTTTTAATAAAATGTCGCCCGAATTA -ACGATAAGTTAATAAGAACAAAATTCAGTTAGTCCGAGAGTCGTGATTTG -CCGATTTAGAACAGCATTTAGCTGAAAAAAACGATTTTTTTCCAAAGTTT -GAACTGCCACTACATTTTTCTCAAGTATTGAGAGTTTTGAATTTCCATCA -TTTAGTTGTAACCACACTTTTCTTCCGATTCCCATAGCAAGCGAAAGTTG -TCTTGTTTCCGAATATCTGACCTAACTTGGTTTTTTTACGACTGATGCCG -AATTTTGAAAAGTTTATTAGAAACTTTCCACGCTCTCCCCTTTCCAACCT -CGCAAACCCTTTTGTCTGTAGTTGGGATCTGTTGCTTTTTTGGGCAATTT -TTTGCCAGCTTGATCTACATATCATTGCTTGATCTACATATCTTGAGCAA -AATTCCAAAAAGTACGTTTTCTTGTAGATTAATTTGTGGGTTTTTTTTGA -GAGTTTTGAGCTAAAACTTGCATGGCATATTTTTTTCACTGTTTTAAATC -ATTTACAAATTATTTTTTCCTCTTTTTAGAAAAAAAAAATGTTTGTTAAA -ATTTTGGAAAAATTTCAAAAAGGTGTTTTATCCACTTCCAAAACGTCATA -ACTTTGCTGAAACTGGACCGGGGCAGCTAAATTTTTCGGAGTGATCATTA -TTTTCACTCTTTTATCGAAAAATTACTATGGCATGCCAAGCCCGGGGACC -CATTTTTTCACTTCCCTTGTAAGCCGAAGCCTTAGTCTAAGTCTAAGCCT -ACGACTGAGCATAAGCCTCAGCCTAAGCCTAAGCGTAAGCCTCAGCCTAA -GCCGAAGCCTAAGAATAACGGGAAACTTTTTTTGTTGCTTTTTTTTGTTT -TTTTTCAAATGCCGAAAAATAATTGCGGCATTTGAATTATGACTTTGTTG -TTCCTAGAGATTCTGGTTTTCAAAATAGGCAAAAATGCCATGAACCTTAA -CGATGTTCTTTCTCCCCGCCCTTTGAACACTCTGAAGTTTCCCGCCATGT -CAACCTTTTTTGATCGTTCGGCACGATAACGTTCTGAGTGCCGCGGTGCC -CGTTAATTTCCATCGAATCGTTAGGTTTTCTCCTTCGATTCCTAACGATC -AAGCCATAATTTATCCGCAAAATGGGATTTTCTCCCTTTTGTGATGATGA -TGATGATGGCCTCCCTCTTCTCTGCGATGACAGTCGAGTGATGAATGTCT -TCCTTCACACTTGTCCGTTTATCATTTATCACTCTGTGCTGAAAACCGGT -CTCTCTCTTCCCCTGACCTCTTCGGCTTTGTGAAACAGTGAAAGAGAAAC -GGAAAACAGGCGGTGTCAGATGGTTGACACGTTGATGTCGTAATCCATTT -AGTATTAATGCTACTATGTACGCCATTTGCTATATATGCCCATATTTTCA -ATGGCTTTGAGCACAAGCTTTCAGAATTGGCAATCAATTTCTAAAATTTT -AAAATTTTGAAAACCAATATATGGGTGGAGCCTATTTCTTAACTGTTCCG -TAGTTACCGAAAAAGTCGGAAAGCGCCGATTATCTAATACTTTCGAATTC -GGCAAAACTGAAATTTCTTCAGATTTTTATGATTTTGAGAGAAAAAATTA -TATTTCTTTGCCAAAAAACATGTATTACTTAAAATTTGTTTGTTTTATTA -TTTGAGCTCAATAACTATCAAATTGACAAACAATTCATTGGCAAAAATGC -CGAATATCGTAAATTTGAAAAAATCGGCAATTCCCGAATTGCTGCACACA -TCTTGGTTTTTTGAGCTAATTAATTGAATTTTTAAGAACTTTTATTTTGG -TAATCTAAATTTTAGTTACTGAATTCATTGCGAAAAAAATTTCTTCAGAA -TAGGGCTTCCATGTAGGCGTCAAAAAGCTTGCCAAACCTTAAGACGACCT -CCGCCTGCCTACCTCAATCTATGTGCTGAAACATATGCGAACTTTTTTTG -CAATTCTTGATTTGGTTTTCATCAAATTGATAGAAATGAGAAAATTTAAA -ATTGAAAATTTACGCACAAGTACAAAAAAGGATTCAGGCAGGCGTCAGGC -CGTGAAACCCCGCCTGCTTACCATGGAAGCCCTACTGCAGAAAATGAGAA -ATCTGATGTTCAAAAAAAAAAAGAAACCAGCCGTGTTTTTCCTTGAAATT -CGAAAAGTTCCCCGATTTTCCCCTCATTTCCGGACCGTTTGTTCCCATGG -TGGACCGGTATTTTCACCACTCCGTCAAAGGCGATTATCGGGTCTGTCTG -TCGTCGACGACCCATCACACCAAATCGGTTGAATTGTCGCACCCCTTTTT -TAATCGGCAATATATTTACTTTTTATTTGTAACTAAGTAGTAAACAGTAA -TAGTTTTTGCAAGAATATGCATAACACCTTATTTCACTTGGTAAAGTAAT -TGAACTGTTGTAATTGAGCTGAACATGATTCACCTACGAAAAAATGCCTG -TGACCTAGGGCTTGCATGTATGCGTTAAAATGGCTGCCTGCCTGACCTGA -AGGCAGCCTCCGCCTGCCTTTTGCCGGTTTATGCTAAAAACACGGTTTAT -GCTACGTGAAATTATTTTTTCATTTTTAATTTGATTTTCAACTTTTGAAA -TTTGAAAATTCACGTCAAAATGCAGAAAAGAAGGTGAGGCAGGCAGGTTT -CAGGCAGGCGTCAGGCCCTGAATCGGCGCCTGCCTATCATGAAAACCCTA -CTCTGAACTCGATTTCGCCCTCCAAACATCAATTTCCGTCATTCTCCTTC -CGTCCTTTTTACCCACTTTTTTAATGAATTTGAAATGAGTAGTCGAGGGA -AATTTAGTGAACCTACTAGAAGTCGCCACGGTTTTCAGCAGCAAATTTTT -TAATTTCGTAGAAATATGTGCTTCTGTGTTAAAATTAATAATAGCTAAAC -TATTGGATAATGTACTTTAAGACGTGCAATGTCACTCCATATTTTATAAA -ATGTTGAAAATTTTGGAAGGGATCGAGGAAGTTTTGATACTTTTTAGAAA -TCGAAAATTTTCAATTTCCGATTCCCTTCAACATTATATACCTCAACAGT -TTAATAAGATACAAAAAATCTTCAGAGAGTCATCTGTTCGCACACAGTTT -TACCCCTATCAAATTACAGATGTGTTGCCTTGCACATCTGTGAGAACTTC -ACACTATTCTGCTACAACAGATTTTCGGAACAGAAGGTGTGATGTTTCTA -CCTGACTATGAAGATTCACGTGGGCGGCAATCCAAATTTTTTGAAATTTG -GAGATTTTCGAGTTATCCATAAAAGATTCCGTTAAAGAGAGATCACAATT -TTTTTTGTAGATTGACAAGAAAATTACCCCAACAATACTCAAAACAATTG -TAATTACAATTGAATTATTACTTTTCAATTCTTAATTTTTTAAGTGCTGA -AACTTTTCTATTGACGTTAACCCCTGCAAAAATGCAAAATTGATCAACAT -CTAGTAAATCTACTAACAAGGGAAGTCTTTGAGGGGGTCCGTAGATTTGG -GGTTTTCATGCTAAAATTCCTACAGAAGAGTGTTAGTTATGATCTCTCCA -AACATTTTTGCGCATTTTTAAAGTGATTTTATTCTTATTCGGGAACCTAG -AATCATTGTCCGCACTTTTTGGAAATTTTTATTTTTTTCATTTTTGCTCA -AAATTTCTTGATCAACTCCAAGCAAAAAAATCAAAGTTTTTCAACAAACA -TTTTGTTAGTTGATCATTTTTCAAAATAATTTATCTCAACGAAGTTATGC -AACTTCAAAGTTGGTTAAATATTTTGCACAAAGTTCGTGAGATGTAGATC -ATTTCGACGGTTTACTTGCGAATAGAGAGTTAAAACTTGTGTAATGTACG -TTTCATACATTTCTGAACAATAAAATAGCAATTTCATACATTTTTACAAA -AATAAAAAATTTCCTATTTTTGCTTGGAGTTGATCAAGAAATTTTGAGAA -AAAAATGAAAAAAATAAAAATTTCCAAAAAGTGCGGACAATGATTCTAGG -TTCCCGAATAAGAATAAAATCACTTTAAAAATGCGCAAAAATGTTTGAAT -GAGTTGTTTAAAACTTTATTCAACTTACAAAAATATTTCAAAAATAGAAG -GAATCGAACCAAACCTTAAATATTATCAGACGCGCGCACTCCCAACTCGG -CCACCGAGGACAATTTTCAACTCAATGTGGTGGGTGTCACATTTTCGGTG -GTCACGCAAGCTGAGATTTGCGTGGACTGCATGGTAAGACAGTGGATTTC -AATGGTGTTTTTAACTTTCAAAACGTCATAACTTTGCTGAAACTTGACCG -GGGCAGCTAAATTTTTTGGAGAGATCATAACTAACACTCTTCTGTAGGAA -TTTTAGCATGAGAACCCCAAATTTACGGACCCCCTCAAAGACTTCCCTTG -TAAGTCAAACAAAAATTCTGTATTTTTCAGAGTACTATACATAGTATATA -TTTCTGAAATTCTCTCAACAAAATCCTTTCCCCTTCCTCATTTTCCCACG -TAAAGTAAAGTCAAAATACATTTTAATTACCATTAATACCTAAATGAACC -AAACAGGTCGGTCTTGCCCTCAATTCTACCATTTAGTCTCACGGCTTTTG -TACTTGTTCACCCACTTCCCCCATTCTATAATCCAACCACACAACTTTTG -GCAACAAAGTGTTCAATCGAAATGGGACACTATTTGCTATTCCTATAATT -GACAGGCTGGTGGAAGGAGGAAAGCAGCACACGACGAAAGGCATAAAACA -ACTTGGCGTTGTGTTAATCCCACCCGTATTGCATTCTATATTAGGTCGAC -AAACAGTTCATTCATGTCGATTTTCGATCATTTCTCAGAGTTTTGCTTCG -AATTGTAGGTTCATGGAGTTAGCCATTCTGTCTATTTTTTCCGCTGAATT -TTAAGATGTTTAATACTTATTTGCCACCTTTTCGACGGAATGACATGTAC -CGGTCAAATCTTGGAATCGATCTAAGAGATGACAATTTTGAATGTATATA -CTCAAAATGGGCTCAAATGAACGAATTTCGTAATGAATTTTTTAAAAACT -TTTTTCAAAATTTTTTATGGTGGTTCAAAGTTTCGAAAAAATTGACCGGT -ACATGTCATTCCGTAAAAAAAAACGCGCTTCTATCTGAAACAACAATTTT -TTTGATAAAAACTTTCAACTACAAACTTGTTCTTTACAAAAAGATCAACA -ATTTATTAGTTGAGCACTTTTCTGTACAAAAAATTATCCGCGCAGATATG -ATCTACCAAAGTGAATTTGGAAAATTGGCCCGTCAATGCTTCGTTGCAGT -GCTATTTTAGGATCTTTGAGAGCTCGCCGTGAGCTTGGCTCTGGAGATTC -GCAGCTAAAAAGGAGTAACCGTTTCTTTAGGAGTAACCGTTTCAAGACAT -GGGCTATCGAATGGCATAGGTCTCATATGCAAGTCCGATGGGCACCTTCT -GACGGTTCCCTAGTCAGATAGAAGCCAAAATTTGGGCGAGGTATGCCCAT -TGTCATTCTAACTGTCGAAAAAGTGGCCTCCGCCAAGACGTGATAACTAT -TTCTCTCAATTACTCTGCACTCCCAATAAATCCTACACACCGTTTGAATT -GAGTCATTCAAGTGTCAGTTGTTCAGTTTCTAGCAGTTGATACGTGTGTG -TGTGTGGTGGTGGTCAACCAACTGTCGCCCTTTTGAACACACACACACAC -ACATACTTTTCCTGCCATATTCCTCCCCAAGAAAGAGAGAAAAATAAGTT -GCATCTTTTCTTTTCTATATCTCTATCCACTAACACACCCTGTTATTCGC -ATGTTCTCTCCATTCTCCAAACAACGCAATCAGTGTCCGCCTAAATCTAC -ATAATCGATTCAGGGGGAATTAACTGTGTAGTTTTGTAATACTTTTCCTT -AAGGTTCTTGAAATTTTATATTTATAACCGACCGATTATGCCTAATTATA -ATTATAATTTAGAGAATTTTTCAATTTAACAACTATTGCGATGTTTTGAA -TTTTTGATAAAACCGGAGTATTTTTTCAAGAAATTCTGTTTAAATTAGCT -GAAAAATTTTGATTTACTAGTTTTTGGTTTGCCTCAAAAAAAATCGGTAA -AAATTTTTTGGGGCTTTTTTCTCAAAAAAAAAAAAAGAACGATTCAGGAG -ATTTTTCATAACTTCGAAACTTAGTGCAAAATCTTTTACGGGGTGTCGAT -TTTTTGATATTCGAAAAATCGGGTTATTGCTCTATTAAGAAAAATTATTT -CCTGGACATATTTTCTGAAGAATTCCTCGTCTTTTCCCATTTTTCTACAA -TTTTTCCTGATTTTTCATAAAATTGAAACTTTCGCTGTTCAGTTTTCCCT -TCAAAATGAATTTTTTCGACGACGAATGTTCAGAAAGTTAACAAATAATT -TTAAGATTTTGTCAAATTTTCACACACGTACTTTTCCACCAAAATTGACA -AAAAACCCTAAAATTTAATTTCTAAAATTTTCAAAAAATCGTGATCCATT -CTTCCTTATCATGTTATGTCTTGCAAGCGTTGCCTCAAAGTCATCAATCA -GCTAGTTGTCATCAATTCAGCGATACTTAGAGATTGAAAGAATGAGTAAT -TCATCCTTGTTTCTTCTTCATCTCCTCACTTCACTTCCAATTTTCCATCT -GTTACCAATCAATTTGGCCTGGCGATTAGTCATCTATTTGTTCGTCAAAT -TTGGTGCAAATTGGCTCGTGTCACTGATAAGTGGTTATTTTTTCTTTTTG -GTTGATAAGGTTACCTGATAAGGTCATTTCCTTTTTGCGCCTTTTTTCCA -GTAGTAATTCCTCTAATGTTCGTTTTGAAGTTACTAATCGAAGTTGTTAA -AGTATTAGATTTTTTTAAAATCAATAGGAATGTTTTTTTAATACAGTGTT -AACAAAATTTTATGTTTTAAAAAGTTAAAATAAATTTTAAAAAATCTCTG -AGTTGAATTGTTAATTTTTAAAACTATAAACAGCATTGGCATTCATAAAA -AACAAATTTCGACAAAAAATTCGTAAAAATTGCTGAAATCGCACTAAAAA -TACTCAAAACACTGAATTTTTTGCTCATAAAATCTGGAAAATCAAGTCGT -TTTACTTGATATTGCCATAGGAAATTACAAAAAAAAAGTGATTTTATTAA -AGGCTGGTCAAAATTTCATATTTGAACAACGTTTTATAAAACCGCTGTCA -GAGTAGAACAATATAGGTGTAAAATGTAGTTAAAAACTATTCTTCGATTT -TCCTACATTTTTTTTTCTGTAAATTGAAGTTTTCTCGTAGAACAAGAAAA -TTTAAATTTAAACCAAGTTTTTAAATTTTCAATTAAAAAAAACTACAATT -TTCGATTTTTAATAAAACATTTTAAATCCCAATTTTTCTTTCAAACATAT -TTTCCAATGCTGATTCTGAATCCATGAAGTCTTAACACTTCAATTTCAAC -ATTCTGTTGCAACAAGTCGTCCCATCTGACCAATAACAAGGGCTCATCAA -TCACTGACGAGGGCCCCCGGGCGCCGCCATCATTTTCCTCTCTTTCTCTC -TCTCTCTCTCTCTCTCTCTCTCTCTTTGTTTCTAAAAAGAAGGAAAATGA -GCTGCAATTTATCAAATCCACGGTCTTTTTCCCTCAAATTCTCTGCCTCT -CTAGTCTTCTCCCTCATGGTCATTGTCGCCACATTTGTGACTCACAAAAT -GGGCCGTATTATACAAAAATAATTAAAGTTCAATGCGTATGCGTGTGTGT -ATTTGTTGCTGGGTGAGGGCAAATGCACATTAGCCACCCACAACAAACTT -ACGTTTTTTTTTTTGTATTTTGCCTTTTTCTTCTTGAAGAATGGTGTCAC -ATCACATTACGACCTTTTCTTTGTTACGGAGAAAAGAAGATTGGAGCGGA -ACTGACTGAGGTGTGAATACTTTGTTGGTTTTTTTGGCTATACCTATTAG -TTACCTTATTTTTGAGAAAAAAAAATTTGAAGCATGTTATTTTTCGAGTT -GTTGGTAGGATGTTGATAATTACTGTTATCGTGATTTTCTTATTAGAAAT -TAATTTTTATTTATTTAGTAGAATTGGGGATTTTTATTCAAATGATCCAA -AATAATCTTTCGACACTGAAATCACGACCATTTTTGAGCCAATCAACGTT -TTCAAACTCCGCCTACTCTGTCTGATTGGTAGGAAAAGTGGGCGGAGCAA -ATTGCTGATTGGTTTCGAAGTTCTCGACTTAGAAATACCAGAGTTCATCA -AAACTGAAATATTGCGTTTTTAAAGGATATATTATTATTATTATTATTTT -CTCTCGATTTTTTTATTCTGTGGTTGCTCTGAATTTCAGATTATTCGAGA -TAGTTTTCGATAAAGCGACAGATTGTTCAGTTTCTGAATTTTCCATAATT -TATCCTCTAAAAGTGAAAGTCAAGGTTTCGTTCTTTGCAAAAAACTCATT -TTTTTGAGAGTTTTCGGAATTTTGGCTCGCATCACGCTCCAATAAATTAA -TTCAAAATTTCGGAAATTATTAACTTCTTCCATTTTATCAATACTGTGTT -AATCTCACTTTTCTAATTTGAAACAAAAATTGAATTTTCATCGATTTCCA -AAATACTTTACATGCTTGGCAATTGAAAATTAGTTTTGTTTTTCAAATTC -TCAGTTTCCAGCCACTGAAAACATTGCGAGCCTCCATTGGGTCCGCTCCT -TCCTTCCGAAACACATTTCCCAGTACTCTTTCCAATCTGGTCAACATTTG -AAAGGCTGTTGGGGGGTCGAAAGGCAATAAACAACCGAAAAATAGTTTAT -TCCAATGTCATCGAATCCTCCCTGGCTTCTCATATTGTTGCCAAAAATGA -TGATGGAAATTGTTTTTCGTTTGTATACACACACATCATCCTGTGCCACA -CCTTTTCCCCACTCTTTTTCCCGACGAGCTTTTTCATTCGGAAGGCGACA -CAGATAGCAATTACCGACATATGGAACCAATCGTACTCTCTCCGCTGACT -GCGACTACCTAATTAACCTTTTATTGAAAAAATGAGAGAGAGAGAGAGAG -AGGATATGAACGGAAGAAGAAAAAGAGGCAAAGCAATTGTTTACTTGTTT -TTCGAAACAATTCAAAATTTTGTTTGGGCTGTGCGCCTTTAAAGATGGAA -AAAAAACGGAAATTTTCCAGCAATTCGTTAATTTTTTTGTCGGCAAATTT -GGCAAATCGGCGAATTACCGGTTCGCCGATTTGCCAGAAATTTTCATTTT -CGGCAACTTGCCGGTTCGCCGATTTGCCAGAATTTTTCATTTTCGGCAAT -TTGCCGGTTTGCCGTTGCCGGAAGTGTTTAGAGGAATTGTTTATGAGACG -GAAGCACTGTGCCTGTTTGCCAATTAAAATTGAAATTCTGAAATTTCCAA -AAAAATGTGCACAAGCACCATTTGCCAAAAACTTTTTCAGTTGCCGGTTT -GCCGATTCGCCGGAAAATTTAAAATCCGGCAATTTGCTAATTTGCCGGAA -AAAATCGTCTACCGCCCACCCCTCCACCGAATTCGGAAATTTTGTAAAAA -ATAACTTTATTTTTGGGCCAATACGATACTACTTTTCCTAAAAAGAAGCT -GTTACAGTAATCAATGTATCATCTTTTCCATCTCGAATGGTACCTGTGTT -TACCTTAACTGTCACATAACTGTGAAGAGTACTTGAGATGACAAGTAGTC -TTATCAGAAAACCTCCCCGCTTACTGCTTCTCGGGTGTCGGGTTACCGTG -TTTGCTGAACGGTTTTTCGTAGGGATTACTGTAGAGAATTGGATGAGTAG -TTGGGATTAGGCGATTAGGGGGAAATTGGAAAACATGTCTGTGCACTCCA -TATGTTTCTAATAAGAATCCTTGGAAATTTGCATATAACTCAAGAATGGT -ACTGGTCCAGTTTCGTTTTGTTATCTTGATTCTTCGAAATGGTGCTCACT -CAACTTGATTCCATCCCCAGGACGCTAGTTATTTTCGTAATCTCCGCGTT -CGATCTCGAGCTCCTCCTCTATGGAAATGTTAATTTGTGAGGGCTATCGC -GTCCACAGATTTATAGCGTCCGTCGTGCGGTTTCGCTGGGTTCTCGCAGC -CACCCCCCCCCCCCCCCACTCATCAATCGCGTAAACTTTTTGTGAGCACG -CAGCACACAATGTGCTCAGGAGGCTTCTGTCTCTTCGGAGATCCAACATG -TGGCACCTCCTCAAAGTGTTCACTGGCCTCCTCGGCTCGGCAGTCAAATT -TATTCATCTCTTTGGAGATTGGCTCACAATTTTTTTGATTTGAATTCAGT -GACTATTTATCGATTTCTAGGGCTTCTATGTAGGTTGCCTGTGTGCCTGT -CGTCTGACGTTAAGGCGGCCTCCGCCTGCCTCTCGCCTCAATCCGTGCCT -TGTGCCAAAACATACGAATTAATTCGATTTTTATCAAATTGATAAAAATG -AGAAAATTAAAAATTTGTAAATTCAGACAGGCCTGAGGCAGGCAGATTTC -AGGCAGGCATCAGGCTCAGAAACCGCGCCTGTCTACCATGGAAGCCCTAC -TGCTATGTAACGTTTGAGATATTCGGTTCAGATAAAATAAGTTGAAGTTA -CGCGAAGAAATTCTGAATTTTGAATATTTTCCAATAGTTTCTAATAGTAT -TTAGATGTTGTATTTAGATACTGTTGCTACAAAATTTTTAGAAAATTCCG -TGGTAAAGTTCAAAAGACTACTCTTTCTCTGAATATTGGTTAATAATATG -AATCCGTTCTGCTTTTTTTCCGTATTCCAATTCTTGACGACTTGATATGA -AGCCAGCTCAAATAATAGGCCTCCCACGTAGTGTCAGGCTGTCCCAATAC -GGTTTGATCGACAAAAAATGCTGGAGTGTTATGCCCTTCAAAATGTGACG -TAAGCGCGCTCTTAACCATGCAAAATCAGTTGAGAACTCTGCGTCTCAAC -TCCCGCATTTTTTGTAGATCTACGTAGATCAAGCCGAAAGGATACACTCT -GTCACCACGTGGCCTCCTAAGGACTATTTTGCAAGGACCTAATTTTCTGA -ACCTTCACAAATTGATCTGCACCGTTTGAGATCGATTGAAAAGTTCTAAA -ATTTTCTGTCCTGTATACTTTTTTCTGTACATAAGTCCTACCGAAAGGGT -CCCCCGCGGTAATAATTACCCGTCAAAACAATGTGTACTACTAGCCGAGA -TATGAGTTGTTATTGTTGTCATAATACAACAAGATTTGGATCACCGCCCA -ATTTTCTTGTCAAAAAGTTCCGCTTATCTCGTTTTCTGCTAATTAGAGAA -TACTCTATGGGAATTGGTTGATCCACTCCATTAGTGAATGTTCCCCCAAT -AACCATGGAGCTGTTAGAACAAAGACGAAAACCCGCCAGAAGACACACCT -TCTTGAGAGCAGGTATTAGAAAAATGAATGAAAGGAATTGGGAGGGGAAC -CCGCGGTGGCCGAGACTTCCCACTTGACCCGATTTGTGCACATACGCAAT -ATCGATGAGGAGTGGTGGTCCATTCGATACAGTCTTGCACCATGTTTGTC -GAAATGCTATTTGGTTGGCTGGCAGATGTTTTTGGTCCAATTTTCTTGTC -AAATTTTGTCTTGATCTGACAGATTTTAGGATTCTTGGAATTCGACTCTT -CACCGAAAAAATATAATTTTTCGGAGTTTGTTCAATTTTTCAGTATCCTG -ATTGGAACATTTTAATGTTTTACAAAATTCGATTCTAAATTTTAAAGCAC -ATTTTGACCTAGTAGGACTTTCGGAATTTTGTAGCCTTTATAAAAAATCG -GTGGCCAAGTTTTCTATAATTTTTTTACGTTTTGAAATTGCCTTTTTATG -AATTTTAAAATGTGGAACATTTTTTGAATGACTTAGTTTTTCAAATTCCA -CGTAGTGTCAGAGTGTCCCATACCAGTTTAATCGACGTTGATCTACAAAA -ATCGCGGGAACTCTGACGCAGAGCTCGCAACTGATTTTGCAGGGTTAAGA -CTTGCTGACGGCACATTTTTTGGGAAAATTTTCCGCATTTTTTTGTAGAT -CAAACAAATTTCATATTGCCTCGATTTGTTCGCTATAGTTGTCTAGTTTT -GAAATCGTTGGAATTTCTTGAAATTCGAGTTCTTGAAACATTTAGGTTTT -CACCTAGTTTTCTCTGCGTGTTTTTTGTGTTGAAAAAACGGTTCTCAGAA -ATTTGACTGCTTTGAAAATTTCGAATTTCATCTCCAAAAAAAAGTGAACA -ATTCGTATTTTTCTAGAATTTTTGGAAATCTCTTTAAAATGAGTTTTTCT -GAAACATTTTAATCTTGAAATAGTCAGAGTTACGTCAAATTCTATTTTTT -GAGGAATTTATTTTTTGTGAGAAGAAAACAACAAATCCGCAATTTTTTTC -CGAATAATTAACCAATCCAAGATCCCCCCTCAAACCGGATGGCATTTATT -CGGATCCCGGCAGGTGTTCGAATGAGATATGTATCCATTAACACATTGTG -CATACACATAGACACATTGTCAACGTATGCCGTACACAACAAAACAACTG -CGCTCGTTCGCACCTCAATCCTTTGATGTTCTCCGCCGGGGGCTCCTGTA -AGGTCAGGAGTTTTCTAAAAATGTTGCCTTCTTCTCCGTCTTCTTCCTCT -TCATCATCGAATATTCCAGAGGGGGGCCGACACGCTTCACTTGATTTTCG -ATGGCAATTTGTTTGAAGAATTCAAGAATTCGAAGAATTTATTTGGAAAC -TCACTACTCTCTTTTTTACGTTTACATCCAACTTTTGGCACTTAGGCGCC -TCCAACTGCAACCATATGGTGCTCAATGAGCCGAGAGGGATCATCTGTGA -ATTTGGTGTTTTTTTCTCAATTGGTTGCCTATTTGATTGGAGAGAGATTA -ATTTGCATACAATTACCTCTATTTGGCTCAGGGGTGGACGGATATTGCCG -TTCGGCATTTTTTGCCGACAAGTACGGCAAATCGGCAATTCGCCGATTTG -CCGGATTGCCGGAAATCTTGATTTTCGGCAAACCGGCAAACATCAGCGTA -CTATTTTACTATTCAAAATAAATGTAGGAACATTCATAGGATGCGTACAA -TTTTGCCGATAAAATTTAAATTCTGAAGCTTCAAAAAAAATGTGCAAAAC -CACAATTTGCCGAAAATTCTAGCCGATTTCAATTCCGGCAATTTTTTGCC -GAAAAAAATTGCCGCCCACCCCTGATTTATATTCAGTCTGTTACCGATTC -TAGTGAGGGGTTTCCAGCCTTTGCATGAATAGGTGTCTGCTACATTAATT -GCGCAATCCACATTGATACAGAGCAACCTCAATTGTTGTTTTTTCTGTGG -CCCGTTCTGCTCGTTACACCTATAAAAAGGTGGTCAAACAAGTCGTAAAA -TTTGGGTCATGAGATGGTCCCTGGGTTAATTGGAGAAGTGCCGTCATTGA -GAGAGAGAGAGCCAATTACGTATGAGGTCTGCTCTGCTCTCGGGAAGACT -CTATAACCCTTCGTTTTTGGCGGGAGATATGAGATATTTTGCTGTAATTA -TCGCACTTGTTTTGGGTATTCTCTTTTTGTATGATTTACCTAAAATTTTT -GAGCAGTTGTGATTATCCTATTTTGTTTCGAGAACCTAGAAATGTTTCCT -ATCATAGTAACCGTTTAACTCTGTGAGTATAGTTTTACTTTAAGTTGCTC -CGTTTTTTATTTGACTAGCACAGCTTTTTTACATTGCTCCGGTTTTGGCC -AAAGGTTTTCTGTTTTTTTTTTGCAGTTCTGACTTATTCTGGCCTGCTTT -ACCCAGCTAAGCCTAGGCCCGGTTACAGTCCATAAGACAACATTTTTGAA -CTCAATAATTGCCGAATTGCCAAAATGCCAAATTTTCGATTGCTGCCCGT -CTGAGTAAGTCTGAAACAGTTTGTGTGAAATTGAGCCGGAAACTACTCGG -AGTGATGTGGCCACTTCCCTATTTAGTTTCTCGGTTGATTTTCACACTTC -CCGCCGAGAGCCCGAAGCATCTGCCAGCTGAACGGTTTCCGTCGTTTTTC -ATGTCTATCGCTAAAATGTGCGCGTTACACACACATAAACATCACTTCTC -TCATAAAGTGATGGATAATTCGAGTGGATTGCATCTGACACCACACTTCC -GATAATCGCTTCGTCGTCTTGTCATCATCGTCGTTTTCTTCGTCTTGTTG -TCGTCCGGTCCCCACACACACATCAAAACGGCTACTTCCGACGTGTCGGT -GGTTTGTGTGTGTGTCAAACGGCACCACCACAAGTGGTTGCCCTCGCCCG -TGTGCTAATTCGCATTTTGTCTTGTTAATCACGCAATAGTGATAACAATC -GCTTCCGGACCATTGCTAATATAATATATTGGCTACCGCGGGCATGTCTT -GGCAATAACCTTGATGTCAAGTTTTATCGTTAAAATGTGAAGCTGTATGA -TTGCGAAAAATTTGAAGTTTTCCCATTCAAATTGTAGGCATATTTGAAAA -ATTTCTGAAGATTTATATCTGTCGTAAGTGGAACGGTTTATTTGGTTTCT -TGGGTCTCGTCGCGAAAAGCTTTCACTATGGTTTGAAGCACGACTGGGCG -ACAATCGAAGTCGAAGTTCGGCAATTCGATAATTCGGCAATTATCGAGTT -CAAGATTTTCGAAAGAAAAACTCAAAAAATAATTTTGAAATCTATTTATT -AGTTCTGGACACGCGGAGTCAGAAAGTCCCATTTCGCTTTGATCTACGAA -AAATGCGGGAGTTGAGACGCAGACATCTCAACTGATTTCGCATGGTTAAG -AGTGTGCTGACGTCACAATTGTTCTGGAAAAAAATTCCCGCATTTTTTGT -AGATCAAACCGTAATGGGATAGCCTGGACGTAGAACTCGCCAAATCGTAG -ATATATGCATAATGAAAACTCTAGAGTTAACTCTGCCACCCTCATAAAGT -GAGTTAGAAACATTTCTGCTCTGAGGAACTATAGAACCCCCTTTCAAGTC -GATCGTCAGCAAATTCTAGAAAGATCTGACAGTGGCCGATTTTTTAATGT -TTCTAGGCCACGTAAAAAAGCTGATGTCTTGTTACTTTTCAATTCGAAAA -TCCCTTTTTTTAATTTTTCGGCAGCACCCGGTCCGAGCCAACATCTTCCT -AAACACTTCAAAACCCCGCCCCCTTCTGCCCTCCCGGGTGTCTCCGTGTT -GTTCAGGGTGTTGTCCACCCCCTAGACACCCAACTGACCATTCACCCGTC -TCCTCCTCCCCCTCTACAACAACCACCACCACCTGATCCATTCCATTATA -ATGATATTCCGCATACTTGTCATACAGAGAATACCCGGTTTGCTGCTGCC -AAACGGTTTTCATTTATTCCATTTCTCACTCCTTGATTGTTGTCAATTCT -TCGATTCGATGCGGCAAAACTAGCGCCAGTGGGGAAATTGCTTTAATAGT -AAACAATTTTTTTTTAAATTTCCTATATTTTTTGTATAAGATTTTCTTTT -TTAATTGCAAATCCCATGGGAAAGTCTCAAATTGCATAAAATTCCAATTT -GAATTCCCTCCAAGATTTCAATGTTCGATGGAGCGCACTTGAATTATTAT -AATTTTTATCAATGAATTTTTTTATCATCTCTGACTGATTTTTCACGATT -TTTTGTGTAGTTTTAGAGGAAATTTACTGAAAAATCCAAGTTAAATGTAA -ATTTCCGATTTTTATACAATTTTTGGACTACTTTCCCCGCCGCCACCGCT -AAAAATCCCAATTTCCTGCAAGTTTTCACCTGCTCTGACTCATTTCCGCG -AGCGCGCGCGCTCGTACTTTTTATCTTTTACTATTTATTTATCTCCTCCA -AAAAAAAATCCCGTTAATTTTTTTTCCCTTACAATTTCTCATAATTTACT -CATTTAGTTTGGCTTAAAAAATGCTAAATTAAATTTTTTTTTCATTTCCA -GATCACATGACACAACGAAAATGAGGAGAAAAATGAAGTTATTCCTATTT -TTATTATTAGTAATTAATATATGTCGGTCGGCCGCTGCTAACGGTGACGA -ATGCCCGAAATTGTGAGTTTTTCGCTTAAAAATCAGATTTTTTTCGAATT -TACTGTGAAAAAGCGGGGGTTTTGCCTGAATTTTCACTTAAAACTGCTTT -TTTTTGCTAAAATCCCGAATTTTTCAGAGAAAAATAATTCAAACTCCATT -TTTCAGCTGTAAATGTGCTCCGGATCCGGTGCAGCCGACGTCTAAACTCC -TATTATGCGACTATTCTTCGAAAAACACGACAATTACACCTATTGCGTCG -TCGAATTATGATCAGGTTGCTAATATTCGGTGAGGTTTTTTGATTTTTGA -ATGAAAAATTTGAGAAATTTTTAAAAATGGGAAAAAATGTGATTTTTAAA -TCAAGATATCGGAAAATACGAAAAAATTTCCAAGAAAATGGTGGTTTTTA -TCGAAAAAATGTTAAAAATGCATAGAAAATTTGGATTTTCGAGTTCGAAA -TTTTCTGAAAACAAAAAAAAAAGTTTTTTTTTACACTAAAACATTAAAAT -TGGATTTTTTTTTCCGAAAAACATAATTTTTCAATTTCTAACAGTAAAAA -GCTCACAAAATTCCTTGAAAATTGACAAATTTAGTATTTTTTACACGAAA -AATGCATTAAAATTGAATTTTTAAAACAATTTAAACTTAAAATAAAATTT -TCATTTATTCTACACGGTAAATGTATTAAAATAATTAAAACTTCGAAATT -TTAAATTAGAAAAAATCAAATTTCCTCCTTATTCTCAATTTTTTTTTACA -GCAAAATTTCAGTTGAATTTTCCCATAATTTTGAATTAAAAATGTGTTTT -ATTCCAAAAAAAAACTATTTTACAACAAAAAACTAGATTTTTTCCCAATT -TTCTATGAAAAATTTAATTTACCAATAACTTATTTTCTTTTTCCAGATCA -CTATTCATATCTTGTGATAATAATAATTTCCAATTTCCGGATGCCTACTT -CAAGTCGTTAACCGCGTTGCATCATCTGCGGATAGTGGTGAGTTTATTAT -ATTATCAGCTGTTCTCTACAGAACATCTGCTTTTTGCGTGTAAATTTAGA -GGTCAATTTTCGGAAAAATTGGAAAAATTGGCCTAAATCTCAATTTGAAG -TAGATTTTCACGTGTTCAAAAATGTTCAAAAAATTCAATCAAAAATTCGA -TTTTTGGAATACTTCAAAAAAATTTAATTTTCTTCGAGAAAACCGGTAAA -TTACAAAAAAAATTCGTTGGCGATTTTTTTCTGTAGTTTTCCAGAAAAAC -AAACGAAAATTTTAATTTTTAATTTTTAAATTTTCCAAAAAAAATTTTTA -AAAATTCATAAATATGTCCATTTTAATTTTAAAAATATCGGAAAATATTC -AAAAAATGAACTTTTCTATCGAAAATTTAACAAGAAAAAATTACGAAAAG -TTCATTCAAAAAATTAAAATTCTTCTATATCTGAGGAAGGCTAACAGTAA -TTTTTTCCCATTTTTTGACTCTTTGAGCAAATAACCGTATCACTAATTAC -CTTAACCATCAAAAAAGAAAGGTGTGCCTGTCTTCTATTCATCCTCCTCT -CGACACCAAATTCTTAAGAAGAGCCCCCCACTCGGATGTCTCTAATTAGG -CACAAATGTTACGTCATTTTGTCATTTGTACGGCCACAGATGACCTCCGG -TGTGCTTGGAGGACTGCGAGAGAGGAGGATTAAGGGGATTTTTATGTCCT -ACAATTGATTTTTTTAGGTCAAAAGTAGGGATTTTAAGGCCAAAAATAGA -GATTTTTTAGGTCAAAAGTAGGGATTTTAAAGCAAAAAAAAAAAATTTTC -GGCCAAAACAGTGGTTTTTAAGGCCAAAAAATTTAATTTTTCCGTTTATG -ACACCTAAAATTGGGGTGAAATTTTTTTTTCGGATAGAAATCTAAAATTG -CAATTGTTAATTATTCCAACATTTTTTTTTGCATTAAACGTTATTGTAAA -AACATTGAAAATCACTTGATTTATCCGAAAATTTCATTTATTTCAGATAA -ATATTGTTTAATAAAAAATGTGTTAAAAAACATGGTGCATAGATATATAG -ATAATTTTGTAGAATAATTGAAAATTGCAATTTTTAACTTCCTACCCGAG -TAAACAGAATTTAAATCCAATTTTAGGTGTCATAAACGGAAAAATCCCAA -TTTTTGGCCTTAAAAAATCCCAATTTTTCGGCCTAAAACTCCCTAATTTT -GGCCTAAATCACCCTATTTTTAGCCTAAAAAAGTCCCCTGTTTTTCCATT -TTCCCCAGGAACTCGTAGAAGAACATGTGTTAGGCGTGAAGAGGTTAAGC -CGATTAGCCATGTAATATTCAATACTTGAGTATAGAAGGGCCAGAAGCAG -CAGCAGCAGGGGGTGCTCCAAGAGCACCACCTCAACAGATGTATAAAGTG -GTTTTCGAGTAGATTTGTGGTTTTGCACACGGTGGAAGAAATCTGAAATT -TGAATTTTTTAAAGCCATTTTTGTGCTGAAAAATGTACAGAATAACCGAA -ATTTCACCACCCTTTAAGGTACGGGAAATCTCCGGGAAAAAGGCTCAAAA -ATTGCATAAAAATGGAGATTTTAAAGCTAAAAATAGCTATTTTAACAAGT -TTTTTTGCAGGGATGCGAGACCACACATTTCTCTGTGAAATTGTTCGAAG -ATTTGGCCGCTTTGAGAAGATTGGAACTCGATCAGGTACATTTTTCTTGG -AAAATCTAGAAAATTTTGCTGAAATTGGCTCAGAAATGTCCTAAATAGTA -GAATTTTTCATTAAAAAGCCTCTCAAAACGGCTTAAAATTAAGTAAAAAT -CGACATTTTTTCACAGATCTCCACCGCCTCAACCTCTTTCGAAATGACCG -AAGACGTCCTAATGCCGTTGGCTCGTCTCGAAAAGTTTTCCCTCACGAGA -TCACGGAATATCGAGCTTCCACAGCGACTTTTGTGCTCTCTGCCGCATTT -ACAGGTATATTTTTGGGTAATTGATAATTCGCCAAAAAGAACAGCAGCCG -AAAACTCAAATTTTTCACGAAATTTGCCGAAAAACTAGATTTGTAAAATA -AAAAGAATGCAAGAATTTTTAGCTTAAAAATCTCAATTTTGAACGATTTT -TAAAGCAATTTCAGTATGAAAAATCCAGATATTTTTTGGGTAAAAATTTG -GTGAAAACGCGTTAAAATCTGCATTTTTGAACGAAATTCGCCAAAAATCA -AGACTTTTGTAGTGCATTTTACTGTAAAAATGTATACCTATTTTCTATTT -TTATGCGTACTGCGCAATATATTTGACGCGCAAAATACCTCGCAGCGAAA -ACTACTCTTCAAATGACTACTGTAGCGCTTGTGTCGATTTACGGGATCGA -TTGATAGAATATCAAAATTAGAAATAAATGGGAAACTACTGCGAAAACAA -AAATTTATTTCAAAAATTGAGTCCGTAAATCGACACTACAGTAGCCATCT -AAAGAATTACTGTAGTTTTCGCTACGAGATATTTTGCGCGTCAAATGTGT -TGCGCAGTATGCATTCCCATCTTGTTCTCTACATTCAATTACCACCACAT -CTCACAGAGAAGGAATTAGTTGTTTATTAGTACGTGGGGGGGGGGGGGCT -TTAAAGCTTACTACTTCTTCTTTCTTTCCACTTTCTGACGTTCAACCATC -TGGTATTCCTGGCGGCGGGGCAATTGAAAATGAGAACAAAAGGACATCGA -TGGAGGGAGGAGGATTGAGAGTTTGGAAATTGTGAAGAATGCGCGCGGAA -GGAGGAGGTCAAATATCACAAGCGCCGGAAGTTGTTGTCAGCCAGAAGCA -ATAAAGGCCTAATTATGATGATGATGAAGAACCTCCCTGAAAGAGAATAG -CGAAAATGTGAAGTTTCCATCTCAAGGGAGCGATTTTTTAGTGATCATGG -AGTCTTGAAGTGTGCACATAGTCTACGTGCCCCACAAGAGCCTATGCCTG -CCTTATGCCTACTCACATGCTCACAGCCAAACTCTTTCGAAATCAGAATT -CTACATTGTAGAATCTACAACACTGAAGTTTCTGCCATAACGTTGAAAAT -AGGCACCTACGCCTGAATACGTGCCTGATCAACATGGATGCCATATAGTC -CAGGCTGTATAGTCGTAAAACAGGGATTTTTTAGGCTCATGGGTTTTTGT -CGGAAAAAATCGAACATTGAGAAAACCAGAAATTTTTCAAATTTTCGTAT -ACTATTCCACGAATCGTTTCTCCCGTTTATCGAATCTCCACGTCGCACTG -TAATTTTTCAAGTATCGTTAGTCCATTCGCCCGAGAAACTCCACAGTTAC -AAATGCTTTGCAAGCATTTTCAAGAAACCATGGTTCCTGGCATGTTTTGG -CGCATTCAATAATGCCGCTAATAATAATAATAATGCCTCCTATTATGATG -TCGCGTTGTCATCGTTTGCTGCTGCTCCGTCAGATACTTTATGGGGTTGT -TGTTTTCTCCCTCCGCATCAAACGACGTTCCTCTCTTCAAAATGATGATG -GATATACATATATCTATGTTTATAGAAGAATTGAACCCCACACTTTACAT -ATGAATAGATGGGGACCTTGTTACCTTGACTATCGGGAAGAGATTGAAGG -TTCCAAAGACGGCTGGCTGTGGCTCATTAGGCTAAATGATGCGTGATATT -ATTCGCTCTACGGCACCTCTATGATCCAGGAATAGCAGTCACTGTCAACA -AGAGTCACCTCACGGCAACAATACTCCGCTAATTACGGTTTGCGGCAAAT -CCCAGAATTTATTTGAAATTCTAACTGGGTGTTGCAGATGGGTCGAGGAA -ATATGATAGCAATAATTATTGTTACGTGGCAATTGTAATCCGTCAGATAT -CGTTTCGAGACCTGCTGACTCAAGAATGTGAAAATGGACAAATTTGGAAA -ATAGGTAGCGGAAAATTTTCGCAAGTTTTGAAAATTTCGGTCATGATACG -ATACGAACTCCTTGATTTTCACAGCCCGACAAGCCGTACGCGTACGCAAT -TTGTCTACCGTATACCTGAACGTTCAGGCTCGTCTATCTCGAAAACAGTT -GGTCCAGCCTTTTTGTGGGGCATATAAAAAAGGTCAGAACATAAATTCTA -AAATTTTTTGGACCATAGCTTGTTTCGTTATCACGCGCCCAAACCTGATC -TACACTCAAATTATCAGTAGAGCGCATTTGCATGGATGTACCACTTGCCG -GGCCGTGATTTTGAATGGAATATTAAATTCCACGTCACTCTAGTGAATCT -CCGCTTCTCAATATGCTTCATAATTCATCAAATTCAATTCATTTTCGGAT -AAGCCAGTTGTAAACAGTTGTGTGTGTGTGAGTGAGCTCATCCTTCATAA -AATGAATAGAGATAGAACACTGACACTCTCTCAAAGACAAGAGGAATTAA -TAAATATGAGAGCTCATTAGCTGCTCTTCTCGTGACTACTAATTAGGAGG -GTGGTACATGAAACAGTGTATGTGTAAAGGGATCCCCGCCGCCGCCGCCG -CCAATGTCTTTCGGTGTATGGCAATATCCGAGTGGTGTTCTCATTTTGAA -GAGAGTATTAGGATGTAACGTATCAACTGGAGAGAGATAGTTCAAAGATT -GGGGATTTGAGATATTTTAGGTGTCGAAATGGATGAAATATAAGCATAGG -GAGGAAATAAATAGAAAACGATATACTTAAATAGCAATAGTTATTTGAGT -TCTTACTGTAGTTTTCGCTAAGAGATATCGCGCGTCAAATAAAATGCTCT -ACGTACGCATTCTCATGATTTATTGTTCCCGTAATATAAACATAGCAAAC -ATTTTTAATGTTTAAATATTCCTCAATGCTATTGAAATTCAAATTAGTAC -AAAGAAAGCAATTTTTCGATTTTTTTAACGAGAAAACTAAGTTTTCATCA -AAAAATATGTAGATTTTGATGAAAATAATATGACAATTTATTTAAACCTA -TATATTTTTTTGTCCAAAACAACTTTACGAAAAAAATTTTTTTTTAAATA -AAATTATTGGATTTTTCGTCAACTTTACGATAAATTCCGAAAAATTAACA -ATAAATATAGGAGAAAAAAATCCGAAATTAACGAAATCCCCTGTTCCAGG -TTCTGAATATCTCGTCAAATGAGCTTCCATCACTGCGAAGAGAGGAATCG -TGTGTCGCTCAGCAGCTTCTGATCGTCGATTTGTCTAGAAATCGGCTCAC -CAACATCGAGTAAGGGATTTTCCGGATATTTTATAATTTTGATCTTTAAA -AATTTCAAAGTTTGTGAAAATGTGAAAATCTAAAAATGTGGAACAAATAT -TGGTTTTATCTATTTAATACCCCAAAACTTTGAGATTTTTCCGTTGAAAA -ATCGAAAATTCGAAAATTATCTCAAAAATTTCAGGCAATTCCTACGTGGC -ATCCCGGCAATCCGGCAAATTTCGGTGGCTTACAACTCGATCGCCGAGCT -CGATTTATCGCTGGCAACTCCATTTCTACAACAACTCGATGCTGAAGCCA -ATCGAATCGTCGACTTGACGTCACTTCCAGGCACTGTTGTACACGTGAAT -TTGGCTGGAAACGCGCTGAAAAGGGTGCCGGATGCGGTAGCCGAGTTGGC -GAGTCTTGTGGCGTTAAATGTGTCGAGAAATGAGATTGAAGCCGGAAATT -CGTCGGTTTTTTGTGGGTTTTCGGATTTTTTTTTGGAAATTTGAAATTCG -GAAAAAATTCAATTTTTACATACAATTTTGCGTATTTTGATCATATTTGT -TTTAAAAATCGAGAAATTTAAAAAAAATCAAATTTCGCTTATTTTCATTG -GAGAATACATGAGAAAAATATTTTTGTTTCGAAAAAGAAAAATAGCCAAA -ATTTAATGCTATTTTTTCGAAAAATTTCGATTTTAATTTTTGAAAAAGTA -TTGAATAATTTCATCAAATTTGTTTTATTTTGATGAGAAAATACGTGAAA -AATGGAAAAAAAATATGAAAATCTTTAAAACAAAAAAATAATCAGATAAT -TATGCAATTTGGCCTGAATTTTCAAAAAAAAAACTTGGATTTTCGAAAAT -TTCATCAAATTTTGTGTATTTTCATGCAAAAAAAGATAGGAATTTCCAAT -TTTTGACCTTAATTGCAAAGAAAAATTCCTAAAAAATTGTAACGTTTCAA -AATCTCGATTTTCTTCTGAAATTCTCAAAATCTTCATATTTTTCCAGCTT -CCCCAGAACTCGAAATGCTCGACGCCTCTTACAACAAATTGGACAGTCTG -CCCGTCGAATGGCTTCAAAAATGCGAAAAACGCATTGCTCACCTCCATTT -GGAGCACAATTCGATTGAGCAGTTGACTGGTGGAGTGCTGGCGAATGCGA -CTAATTTACAGACGGTTCGTAGACTTGTTTTTTTTTTTTTTTGAAAAAAA -ACACGCTGAAAAAATCTAATAAAACCCAAAAATTTGCATTTTTGTTTAAA -AAATATGAAAAATTGTTCAAATTCCTAGTTTTCAATATTTTCAACAAAAA -AAAATTCTAGAGCTTCCATGGTAGGCAGGCGCGGTTTCAGGGCCTGACGC -CGACCTTTCGCCTCTTTTTTGCATTTTTACGGGAATTTTCAAATTTCTAA -TTTTCCCCATTTCTATCAAATTATTGAAAATCAAATTAAAAACGCGAATC -GCGTATTGAGGCGAGAGGCACGCAGAGGTTGCCTTAAGGTCAGACAGGCA -AGCTTTTTAACGCCTAACGTAATTTTAAAACCTGAAACATTAGAAACTTC -CACACGTTTGTAATTTCACTGAATTTTACTGCACCTCTTCATAAATTCAA -TGTATTTAGATAGTGTAATTTTTAAAGGTGGAGTGCCGAAATTAAAGACT -TTGCTTTTTTAGACCAAAATTGGTCCTAAATAACCGAATTTCGTAATGAG -ACTTTCTGAAAATTTCTCAAAAAAAAGTTATGGCGGTTCAAAGTTCGGGA -AAATAAGGTCAATTTTCAGCTAAAATCAAAATTTTTAAAATTTTTTATTT -ATCACTTTTTGATAAATATTGTGGTCTTTGATTAGGCGGGGCACCAATAA -AAGTTACATTTTGTGCCCCACTGACCATGAATGTATTTAAATCAACGAAT -AAACGCCTAATCAAAGTATTTATTAAAAAGTGATAAATATAAAATTTAAA -AATTTTGATTTTAGCAGAAAATGGGCTTTTTTTTCTCAAACTTTGAACCG -CCATAACTTTTTTTTTGAGAAATGTTCATTACGAAATTCGGTAGTTTTGG -ACCAATTTTGGTCTAAAAAAGCAAAGTCTCAAACTTCGGTACTCCACCTT -TAAAGAACAGTGTAATTTTTTTCTATTTTCCAATCAGTGCAACTCTAATA -GCAACTCTAAACTTATTTCAATAAACTCTAGGCACAGTATTTTGAATAGG -CGATCGCGTGACAGTTTTAACCAAACATAGTCATGATGACCTTTTGTCCT -TACAGAATCTTCTCAAGTTCATGCACACACAGGTGTCATTTACTCTGTCA -AGTATTGTATAAGTGTGATCCCGAGAGTATTATAAATGGTAGTTAGACCA -CCCTTATGGTTAAGTTGTTCGTATAATTGTAGGGGTGGGGATCTTACCAC -ATTTATACGGCCCCCCTCCTATTGTATTGTATTGTTGCCACCAGTCGTCT -TGAGAATCTCTTTCAATCCGGGGTGACAGAAGGTGTCATATTGTCGGAAT -GTGTAATAGGTGGGTCTCGAATGGATATCACTAACAGCTGTGAAGGGATC -CGAGAAGGGTTTTCGGTCTTTCTAGGGGTTTAACTTTCCGCTGTCAATAT -TATTAATCTTACAAGGAAAGGGTTTTAGTTTACCGTCAGACTTTAAAACG -AGACATGTGTCATTTGAAAGTGTTCCATAAGTGTATGTCACTCCAAAATT -TCAAGCGGCAAAGCTCCAGTCTCAAACCCTCTAGCATCGATCTGAAAACG -TTTCAGTGCATTTTTCACTACTTTGAGGCAAGTAGAATTTCTCCAAAATG -TTTTTTTTGCAAATCTTCAATGTTTTTCAGAACGTTTAAAAGAAGGAAAA -CAATCTGGAAAATTTTTGGAAAATTTTAAATTTTTTGAAAAAAATCTGAA -ATTTCTTGGACCTGGTGGCGTGAAGAAATGTTCAGATTTTTTTCAAAAAG -CTTAAAAATTTTCCAAAAATCTCCCAGATTGTTTTCCTACTTTTAAATGT -TCTGAAAAACATTGAAATTTTGCATGTTAGTACGATTTGATAATCGTGTT -ATAATTACATTACACATACATAATAATCAATTGAAATATACAATTCTTAA -TTATAACCTGAAATTGAGATTAGATACCTTAGACAATACAACAAATAAGA -ATGTGATCGATTCAGCAGACCCCTATTTGTGAAAAATGCCTTCTAAATTT -TATTTTACACTTCTCCTAGTAGATGAACAGCACCTGCCAATAATTTCATT -GACAGCCGGATGGTTTTTGGCTCCTCTAAGACAGTATAATCCCGTCTCCC -CCGGGGGGAAGTGGTGTCAAATTGCTTTGCGGAGCAGGTGCTTTTTTCTG -AATCGAATTGGCTTATTGGTGACGGAAAAACCCCTAATAGAATTGATACA -ATTTGGTTTTCAAGAGGATTTGGGGAAGGGTTTAGAGGGTAATTGAAACT -GAGTAGATCTTCGTCTGTCGTGGAGATCAGAAGATTGAGGGAAGTACTGG -GTTTAAGGGGGTCAAGGAGTACTGTAGCGCATTTCGAATACTACTTTAGA -TAGTTTAGGTATTATATCAATAGGATAATATATTATCAAGTTGCACCAAA -ATTGGAGATTCTAGTAGTGCATTTTCTTTATATGCTAGGTATGTATAAGT -TTCTAATAAGTGTATATACCTACCATGTACCTAGGGGGAGTAGAGTTTGT -GGGTATTTTGCTTAAATAGACTAAAACGTGTCCAAAACCACCGAATTTCA -AAATGAGACTTCACAAAAAATTTCCAAAATTTTTTTTATGGAAAAAAGAG -CAAAATTTAACTAAAATCCGAAATTTCGCACAGTTTTCTTTGTCACAGCC -GCTGGATTTGAATTTTTCTGAAATTATCACCCTTTAATCCTTATTTTAAT -AATTTATCTCGCGGAAATTCGTTGATTGAGACAACTTTTAGGCCGATAGG -CATCCCATCTTGATCATTTTTGGATGCCTATCGGCCTAAAAGTTTTTTAA -TTTCAGAAAAACTAAAATCCAGCTGCTGTGACAAAGAAAAGTGTGCGAAA -TTCCAGATTTTAGCAAAATTTGACTCTTTTTTTTCTCGAAATTTTGACTC -GCCATAAAAATTTTTGGAAATTTTTTGTGAAGTCTCATTATTAAATTCGG -TGGTTTTGTACCAGTTTTAGTCTATTTAAGCAAAATACCCACAAACTATT -ACACTTTACTTTAACAAGACACACAATAATTCACAAATGGTGTAGTATCA -TGCCGGAATTTATATAGGATTGATTCTTGAAGAACGAAATTTTAAATAGA -TTATTGCAGACTATGTAACACTATTTGTATAAACAATTAACATAGTGTAT -TGAATAATGACTTTATTGAAATTAATACAGTTTTTGATATACCCATCTTC -TATTAGTATATCATGCAATACTAATAGGTAATATGCAATATCACTTTAAT -TGTTATTTCCCATGCGTCGTGTTTATACAAATGCTTTATATACTCGAATA -GTCTATAATAATCCAATTAAACTCGAGAATCCCAATACAGAATATAGTGT -TTACCAAAAACACTTGTGTTATTATTCTAATATACATGCACACACACACC -CACACACAGGTTTGACACCAGTTCTACTAATATTTGCATAATACCATTGA -GATACCTGAAGTACCCTATAGATATGCACGGGATTCGTTTCGGGCACTGC -CACGGAAAATATTGAAAAAGTGTGGTAAATTTACGAAAAACAACAAAAAA -AATGCGATTTTCCAGAGAAATACGAAAAAAAAGAAAAAAATATTTAGAAA -ATTAACAACAAAAAAAAAAATTTTTTTTTATTAAATAATAAAATGTGTTC -ATTCTGTTTTTCCCCTTTCAGTTAAACTAGGGCTTCCATGGTAGGCAGGC -GCGATTTCAGGGCCTGCCTGAAACCTGCCTGCTTCACGCCGGCCTCAGGT -CGCCTTAAGACGGCTGCTAAAAATTTGAAAAAAAAATTTCAAAATTTGAA -TTTCCGCGCTTTTTTCGAATTCCTAGAACGCTTTTTTTTAATTAAAAAAA -AATTTCAGTTGGACCTTTCATCGAATCAACTTCGAGTTTTTCGAGACGAA -GTACTTCCGGAGAATTCGAAAATTGGAAATTTGAGACTTTCCAACAACTC -TTTGGAGCTCCTCGAGCCGTCGAGCCTGAGCGGCTTGAAATTGGGTAATC -TAAATTTATATGAATTTTGCAAATTCTAAAAATCCTAATTTTTTCTAGAA -TCCCTTGATCTGAGTCATAATAAGCTGACAGAAGTGCCCGCCGCAATTGG -AAAAGTCGAGCAGCTGAAAAAAGTGGATTTGAGCCATAATAGAATTGCGA -AGGTTTATCAATATGTGCTCAATAAGATTAAGCAATTGCATACTGTTGAT -TTGTCGAATAATCAGTTGCAAAGTGTGAGTTTTTTGTTGATAAAAATTTA -AAATTTGAATTTTTTCTTTTTTTTTAATTATTAATTCTGAAAAATTCAAC -GAAATTTCCGAAAATTACTTGAAATTTAAATTTTTATCCAGAATTTAGTC -TATAAAAACGAAAAAATACGAATTTTCGATTAAAAAAATTAATTTATTTA -AAAACACACTTTCGAAAAAAATTTTGAATTAAAAAAAATTTAAAGTTCCT -TAAAAAACTATTTCCTCAATTTTTTTTCTGAAATTTCACTCTTTCATTTT -TTAATTCATTTTTTAAGTCTATAAATACGAAAAAACACGAATTTTCGATA -AAAACACATTTTTCAAGTTTTTAAAAATAATTTTAAATTGGAATTTTTCT -TTAAAAAATTGTTTTTTATAAAAAAACACATTAATGCATTTTTTAAAAAA -TAATTTCTTGAAATCTTCCAAAATCGGTTGTAATTTTAGCGAAAATAACT -ATTTTTTCCAGTTTTTATTTAAAAAATCCCTCGAAATTTGAATTTATCCA -GAATTTAGTCAATAAATGCGAAAAAATACGAATTTTCGATTAAAAAAATT -AATTTATTTAAAAAACACTTTCGAAAAAAAAATTTTCAATAAAGAAACTA -GTTCTTAAAATTTTTTTTCTGAAATTTCACTTTTTCATTTTTTAATTCAA -AAAATTTGAATTTATCTACAATTTACTCTATAAATACGAAAAAAATACAA -ATTTTCGATGAAAAAACACAATTTTCAAATTAATAAAAATATAATAAAAA -ACATATTACTAAATTTTTAAAAAATAATTTCTTGCAATTTTCCAAAACCG -GTTTTAATTTTAGCGAAAATAACGATTTTTCCAGTTTTTATTTTAAAAAT -TCCCTTGAAATTTGAATTTCTCCAAATTTTTTCTTGAAGTTTTTAAAAGT -TCCATCATTTTCTACTGGAACTTTCAAAAAATGTTCCTTAAAAAATCTCT -AATTTCCGCTAATTTCTACGTAAAATTTCAGCAAAAAAACAACGACATTT -CATGTTTTTTTGTTAAAAAAATAATTTTCTTGAAAATTTCTTTGGAATTC -GATTTTTTTTGAGTTTTAACCCAATAAAATGTATAATTTAAAAATATAAA -AATTCCAGATCGGCCCCTACATCTTCTCCGACAGTTCTGAACTTCATTCC -CTGGACGTGTCGAATAATGAGATTTCACTGCTGTTCAAGGACGCTTTTGC -GAGATGCCCAAAGCTGAGGAAAATTTCGATGAAAATGAATAAAATTAGTG -AGTTGAAGCACGAAAAACTGCCCAAAAATTAAAATTTTGAAATTTTTGTG -TTTAAAAACCTAGAAAATCGAGATAAAGTAGGCTTAAAGTTGCTCAAAAT -CCGCAGATTTTTTGAAATCGATTTTGAAAAGTGCACATGGAGCTAAATCA -GACTTCAAAATTCTCAAATTAATTGCATTTTCACTCGAAAACCTCTGAAA -ACTGCCTTCTTCCTATATTAAATCAAATTTTCTTTCAGAATCCCTCGACG -AAGGTCTCACAGAAGCTTCCGGCCTCCGACGTCTCGACGTATCTCATAAC -GAGATCCTCGTGCTGAAATGGTCGGCTTTACCTGAAAACTTGGAGATTCT -CAACGCTGATAACAATGATATCAATCTCCTGACCGCCGCCTCAATGTCCC -CAAGCACCGCAAACTTGAAGTCCGTTTCGCTTTCCAACAACGGCATCACC -ATAATGAATGCGGACCAGATTCCGAATTCGCTCGAGTCGCTGGACGTGTC -GAATAATCGACTTGCAAAGCTCGGGAAGACAGCGTTGGCCGCGAAATCTC -AGTTGAGAAGGCTCAACTTGAAGGGCAATCTGCTTACCGTAGTGGCCACC -GAGTCGATGAAAGTCGTAGAGGCTGTGCATCCGTTGAAAGTGGAAATCTC -GGAGAATCCTCTGATCTGTGATTGTCAGATGGGATGGATGATTGGTGGAG -CGAAGCCAAAGGTTCTCATTCAGGACTCTGAAACCGCAAGCTGTTCCCAT -GCCGTTGATGGGCATCAGATCCAGATTCAAAGTCTCAGCAAGAAGGATCT -ACTGTGCCCATACAAAAGTGTATGTGAGCCGGAATGTATCTGCTGTCAAT -ACGGAAATTGCGATTGCAAATCCGTATGCCCCGCCAATTGCCGATGCTTC -AGAGATGATCAGTTTAATATCAACATTGTCAGATGCCACGGGAACTCATC -AATGGTGCCCAAAAGAGAATTCGTGGTCTCCGAGCTCCCGGTCTCTGCGA -CAGAGATCATTCTGAGCGGAGTCACCCTTCCACAGCTCCGAACTCACAGC -TTCATCGGAAGACTTCGTCTCCAGAGGCTTCATATCAATGGAACCGGGCT -CCGATCCATCCAACCGAAGGCTTTCCATACTCTTCCAGCACTGAAGACGC -TGGATTTGTCGGATAACTCGTTGATCTCGCTGAGCGGGGAGGAATTTCTA -AAGTGTGGAGAAGTCTCGCAGCTTTTCCTCAATGGAAATCGATTTTCCAC -GCTATCCCGTGGAATCTTCGAGAAGCTTCCGAACTTGAAATATCTGACAC -TTCATAACAACTCCCTCGAAGACATCCCTCAGGTTCTTCACTCGACGGCG -CTCTCCAAGATCTCCCTGTCATCGAACCCCTTGAGATGCGACTGCTCGGG -AGGATCCCAACAGCACCTTCACCATCGTCGTGACCCAAAAGCTCATCCAT -TCTGGGAGCATAATGCGGCCGAGTGGTTCTCGTTGCATCGGCATCTTGTC -GTTGATTTCCCCAAGGTTGAATGCTGGGAGAACGTGACGAAGGCCTTCCT -GACGAACGATACGACAGTGCTGAGCGCCTATCCACCTAATATGGGAAATG -ACGTCTTTGTGATGCCTATTGAAGGTTGGTTTAAAATTTTTAAAAAAACG -CGCGTCAAATATTTTAAAGTCTTTTGTTCGAAAAATAACCATTTTACAAT -ATGTAGGATATATCTATAACAGCTACTGTAAAAACTCCAGATGTTTGAAT -TTTTTTAAAAATGCGACGTGGTAAATATTATATTGATTACATATTATTAT -TACAGTGTATTTTTTTCCACTTCTACGACTTTAAAGGGGGGCGCATTTAC -GCGCGATGGTCCCAGCATTGGTCTCGCCACGCACCCCAAAAATCAATGGG -TGGCGCGTGTCGAGACCATCGCGCGTAAATGCGCCCCCCTTTAAAGTCGT -AGAAGTGGAAAAAAATTCACTGTATAATTATTAGTCAAATGATACTTATT -ATGATATTAGAAATTAAAAAATTAGGTTTGAACATTTTTTTTCCTCGATT -TTTTTACGGTATTTCACCATGTATGCGTTATAAATACAAATATGATCCCT -ACCTTTTTATAACTTTAAAATAACTTTTAAAAAGGAATATAATACATGCA -CAAGCACCATAAAATTTCAACGTTTGCTTTTTCTGGTCCGAAGAATTTTT -TCAATACGTTTACTTTATATATCACATATACAAACAATATACTGAGAATG -CGTATTGCGCATTATATTTGACGCGCAAAATATCTCGGAGCAAAAACTAC -AGTAGTCCTATAAATTCCTACTGTACTGCTTGTGTCGATAGAATATTAAA -ATTGCAAAAAAAATTTAAAAAAACGAAAAAAAAACAAAGTATAAGGGAAT -ATATAGCTATTCCAAAATAAATCAATTTCAAAAATCGAGCCCGTAAAAGA -GAAGGACTTACTGTAGTTTTCCCTACGAGATATTTTGCGCGTCAAATATG -TTGTGAAATACGCATTCTGAAGATGTAGTGTACTCGTAATATATATTTTT -TAACAATTCAAACATTTCCAGAATTCCTGCGCGACTACAACTCAACAATC -TGTGTTCCATTCTCATCTGGATTCTTTGGACAAGACCCTCAGAATAGTAT -ACTCTTTGTAATAATAACTATATCGATTGCTGTTCTCCTCTGTGTCCTCG -TTATTCTCGCAATTTCATTTATTCGAAAATCTCACGACGCAATCAATCAA -CGAAGATACAAAGCATCATCTCTAAATTGTTCAACATCAGCCGGCTCGTC -GCCTCTTCCGGTTCCGCTGTTGAGTTATCACGCATTTGTGAGCTATTCGA -AGAAGGACGAGAAAATGGTGATTGATCAATTGTGTCGACCGCTGGAAGAT -GAAGATTATCAGTTGTGCCTGTTGCATCGGGATGGGCCGACTTATTGCTC -GAATTTGCACGCGATATCTGATGAACTCATAGCTCAGATGGACTCGTCGC -AATGCTTGATTCTTGTGTTGACTAAACACTTTTTGGAGAACGAGTGGAAA -ACGCTGCAGATTAAGGTAACAAATTCAAACTTTCAGTTTAAAATTGATAT -ATTCGTAAAAATAAGATGTTCTTAAAAATTCTGAGAATGCGTGTTGCGCA -AAATATCTCGTAGCAAAAGCTACTGTAATTATTTTATATGACTATTGTAC -CGTTCAAAATTACTATCCAAATATTTGATTTTTTGTTTTAAAAAATTATT -TGGAATTTACTCAAATATTGAAAACAATATTATCGAAATTCCAGAAAATT -TGGTGGAAATTCCGAAAATTTCAATTTTTTCGCTAATTTTCGAGAAAAAA -AAAATTAAAATTTGGATTATATGAAATAAATTTCCAAACATTAAATTAAA -AATTTTTTTTTTTTGGATTTTCCAATCTCGAACCTTCAAAAATTGAATTT -TTTTGAAATTTTTTTTCGGAAAAAGTAAAAAATGCTCGAAATATCGACAA -AAAGTTGAAGTATTTTTTTTTGTAAAATTGGAGATTTTTGAGATAAAAAA -TCTGAATTTTCATTCAAATCTTGAACATCAAAATCAGCAAAAAAAATTGC -TATAAATTTATTTAAATAAGATTTAAAAAGAGTAATTCGCTATGATTTCA -AATTTTCAAAAAAAAAAATTTTTTTTTCAAGTTTTAATTTTTGAACACTA -TCAAAAAATTTATTTTTAAACCAAAAAAATTCCGAATTTTCTGTAAAATC -TCAAAAAAAAAACATTCCTAGAAATTTAATCGAATATGATTTAATAATAC -TATTTTTAAATCATATTCAATTACATTTCTAGGAATTATTTTTGCTAGAT -TTCAAAAAGTGTATGAAAAATTAAAACTTTTTGAAAAAAAAACTGTTCTA -AATATAATTTATAACACCAGAAATTCACTAATAACACTCCACATTTTTCC -AGACCTCCCACCAACTATTCGCCAAAAACCGTGCAAAACGAGTGATCGCC -GTGCTCGGCGACGGTGTGGACGCGAATCTGCTGGACGATGAGCTCGGACA -GATTCTACGGAAGCACACGAGAATCGAGATGCGGAGCCATTTATTCTGGA -CACTTTTGCACTCATCACTTCCATCACGACTTCCATTACCATCGAATAGT -GGCGATGATTCGTCTCAACTATATTCGGATATCTATGGAATTGTGCCTTC -CGATGTTGTTTAGCTTACAGTTTTCCCGTTTAGGTCACAGTTTTTAGTAT -TTTTTTTCCTCTTCCAAATGTACGAGTTTCCATTATTCACGAGGTTTCTT -TTTCACCCCCAATTCTTCTGTGCACAATTTGCCATTTTTTGAATTTTTAC -AACAATACCGGTACTATATTTTTCGATTTTCTTTCTTTTTCTATGAATCT -TGCCATCATTCTCTAATAATTGACCAGCGATTATATTTTTGATTTAATAA -TTGAATATTCTCGTTTTTCAGTTCAAATTATTGCTTTTTTCTGTCACCAC -AAATTCAAATTCTCGTCCTACCCTGTGTGATCTTCTGTAATATATATATA -TTAATAATCGTCGTTTCTTCTTGTTGTCATTTGCGGATGCTTATGAAGCT -TGTATTTTAATTTTTTGTTTTGTTTTTTTTCCTGTTTCAGCTGCAAAAAA -TTCGGTAGAAATTCTTGAAAACACGCAAAAAATGAATAAAAAAAATAGTA -TATTAGCTTGTTCGAGAGGAGTTCACAAGCGGGTGGCCTAACATCTCCGC -GGCCGCCCAGTGGTGTACTCCTCTCGGGTGAAAGAATTCCCATTTTATCA -TCAGTTTTTCGGCCTATTTTTTCAGTTTTTCTCAACTAAATAGTCAATTA -TCTCTTAAATAATGTCGAAATTAATTTAATTTACACATTTTTCCAATAAA -ATTCCAATTTTCGGTCATTAAATTACCCCTTTCGAATTTTGCTCTCAAAA -ATTAAATTTTCATCGATTTTTAATTCTCAAAATTCTTGAATTTTCAGCGA -AGATGGGCAAATTCAGCAATCAGAAGAAAAATCGTGTCAAGAACAAGGTG -GCGGTGACAGTAAAAAAAGCGCAACGCATGAAGGCAGACGCTAAAAATGC -CAAAAAAGACGGTGAAGTGGATGTTGAGATGAAGGAGGAGGTGGTGAGAG -TCAGAGGACTCGCCGTATCGTCGCTGGTGAGAAAAAAAAGGAAAAACTCG -GCGAAATTCTTGATTTTGATTTTTTTTTTCAGAAAAAATTGGCCTCCGGT -GAGCTGCAAAACGTGCCAAAAGTGAACGAGAAGAAGATTATCCGCAAGAC -AGAGCTTCCAGTTCGAGAGAAGTAGGATTTTCTCGATCTCTCCAAACAAA -AAAATTGTTTTTTTCAATTTCAGCAAAAAGATCCTGGACGCTCCGACTGG -AAAACGTGGCACCACTGCTCAATACATCACAAAAAAGAAGGCAAAGAAGA -TGTACAAGAAGATGACACACGACGCACGCGACAAATATCGAAAAATTCAG -GCGGAACTGGCCGGAGACGGTGAAGATGACGAGGAGGGTGAAGCCGAGGT -GATGGAGCAGTGATTTTGGATTTTTCCGCGGCATTTTTAAAATTGTTTTT -TTTTGTTGATTTTGTTACTGTTTTTCATTTTCCACATAAAATAATCGAAA -ATTTATTTATCACAAAAACTTTTGCACAATTTGCTCAGCTGAGTGAGCCA -ACTGTTTGCCACGTGTCACGATTCGATGCATCCATCCATTGGGCTCCTCG -AGCTCCGCTTTCGGAGCCTGTAGCTGCTTTAGAATTATTGTCCAGAGCTC -AGAAATGTTCATCGAGTACTGCGCGGAAACTTCGACGAAATTGCACTTGT -GTACTTTGGCCAGGCAGGCTCCTTCTGGAAAAATCAATTTAAAAATCGAT -AATTTGAAGTTCCACGTGGAGCCGCGACGCGGCACGCGTTGCATCGTTTT -TTTTGGTTGAAAAACATGGTGCATCGAAGAATTTTCCTTTGACGATTTTA -TACGCAATGCATCACATTTGACGAACAAAAATTCAAAATACTTTACTTTG -CAAACGCGCTCCATTGATAAACTTATGAAAAATCGATAATGCTCAAATTT -CACAAAATTTTCCTCCATTTGAAATTATATAATTGTTAAACAAAATTAAT -AAAACCAAACATTACGCGCAGTTTCCGATAAATTTCGATTTTTTCAAAAT -GCAAGCGCGCTCCATTGCTAAACCTTGAAAAACCCACCCATTTTCGACAC -CACCGTATTCCGTTTCAAATCGATTTTATTGCCAATCAGTATAATATTGG -CTCCGCGAGCAATTTTTCGATTCAAAAGCCGACTGAGCAGGTCTGTGGCA -CACACGAATGATTCTCGATTGTCAACGTTGTACACTATTGCGTACATTGT -CAGTGATGACGCGAATGGAGAATTCTGGAAAAAAACAAGAGTTTAAAGGC -GCAGGTGGGTCTCGCCACGATCCATGTTTTTTTGCGGGAATAGTGGAAAT -TTGGAGTTAGTAAAAAAATCAAATTTGTGTAATTTTTAATAAAATCGGTT -CGCAAATGCGCTAGTACATCAGATTTCACGAGCAAATTTCATTTTGTGAG -ATTTGCACCAAAGATATGGGCATTTGAACTGATTTTTTAATGGTAAACAC -GCGAAAAAAAATACATATCCAAAAATTGAAAAAATTTTAGGTTTCACAGT -CTCCTCGGCATCGAAAGCGCAGTAGTAGGGGTGGCGATAGGGCGCCCTGC -TAAATTTTCTATTTTTATGGTCTTTCTTTTCGTTTTGTGCTAATGAACAA -AAGTTAAGTTCGAAATCTGCGAAAAAAATCGTTTCAACGCTAAGAAACGA -AGAATTGTATTTCTCAACGGTAAAAAGATTCACTCCTGCGCCAAGGTGAC -AGCAAGTGCGCCCCAGCCCAATTCGACGCTGAAGAGACTGTGGGTTTAAA -AATTTAGAGAAGTCGCAAATTTTTTGTTCAAGATATCAGCCTAAGCTACG -GTTTAAAGGCGCACAAGCACGTGGTGTCAAAGTGTCCCGTTTCGGTGTGA -TCTACCAAAAATGCGGGAATTTAGACGCAGACTTCTCAGCAGATTTCGTA -TGGTTAAGAGTGTGCTGACGTCACATTTTTTTCTGCAACAAATTCCCGCA -TTTTTTGTAGATCACACCAAAATGGGACTGTTTGACAGCACGTGCACAAG -CAGATCACAAGTGGGTCTTCGAGTTATCCTCCCCAAATCCTGTCCAGTAG -AGCGCACTTACCTCCAACGTGGCTTCCAGCAACATTTCCAACTCGATTTG -CTCGTTATTCAACAGGAAATTCATCGTTTTCGATGAAGTGTCATCTCCCT -CATTTGACTCATTATTGTATTGGGTGACGAGCCGCGTGGCAAATTGGTTA -ATTGCTGACAGCAATGTTTTCTTCCCGCTATTCCTTGATCCATAGACACG -TAGAACCACATGTTGCATTGGAACATTCGACGTTTCTTGGAATAGCCAGA -CTTCTGGACACGTGGCTCGGCGATCTTCTGAAAATTTTTAAATTTTCAAA -AATTTGGTTAAAAATTTCAAAGGAAAATCAATAACAAAGCTACTCCAAAA -TTTTCAGCCTGATTGGTTGGAAAATGAGCAAGTTACAGCGCTTCAAGAAT -TCTAGGCCACGGTCACCAGGGAGTGGTGGCGGTGACCCTCTATTTCATTT -TTAGATTTTTTAAATGGGAAACTCGAATTTAAATGTGAAACATCTGGAAC -ATTCCAAGAAAAATTCAAAAAAACTCTCTAAGGAGTCGATAACCCTCCCC -CAATTCCTGAGATGTGACGTCATCAGGGGGAGCCCGTGACCTCATAGCTT -CAAATTTGAATTTTTCAACGAAAAGTGTGAAATTAGATGTAAAATTACTA -GGAAATTAGAAGAAAGATTAGAAAAGAAATTTCGGGGGTGTCGCTCACCA -CCCCCCCCCCCCATTTTTATAGTGTGACGTCATAGAAAGTGGGTCCCCGC -TACCTTCCATTTTCAAAGTTTTTTTATTTTTCCGATGATTGTATTACTGT -ACTCACTGTAATTATGTGCAACAACTGGTTGTCCAGTGGAGCACGTTTGC -TTATACCCATTGTCCGTCACAAATCCATTCTTAATTCCAAAACTTCGAAG -ACTTCCCTCCGGTCGTTTTTCGACGTCTTCGATGTTGTTTTGGTGCATTT -GTAGAGAGTATTGGTATCTGGAATATTAAGGGGAAAATGGTGAAAAAATT -CAGAAATGTACAGGTAATCGAGAAAAAAAGTTAAAACTTTTTTTGAACTA -AATTTTTTTTTCAAAATTTCAAAAAAAAAATTTTATTTGAAGAACTTTTT -TATAATGTTAATTTTTCTGAAATTACTTAACTTTTTCTCTCAAAACTTGC -TCACTGAGTTTTTAAATAGATTTCTGAAATTGTCCACGTGAAGTACACTC -CCAATATATCAAAGGAGCGCATTTGCGAACTAATTTTATTAAAAATTTCA -CAAATTTATTTTTTTTAATAACCTAAAATTTCCGCTATTTTATCGTATTT -TCTAAAATAAATAAAAAATTGTCCAGGAGGAGTACATGGCCAATTTATCA -ATAGAGCTCATATGCACACTTGTTAAAAAACAAAAAAAAAACTTATTCAC -CTTGGCGGTGGGTACCGCTTTTTCACACGACGAGGCGAGTTTTCCGAGCT -GAAAAATGATACTTTTGGCTGGGAAGTTTTAGAATTTTGGGGAAAATAAG -CATTTCCGGTGAAAAAAATTGTTTTTTATTGGAATAGTTTTTAATATTCT -AGGCCATGTCGTAAAGAATTGAGTCAAAATTTAAATTTTTGAGGTACGAG -CTTCCAGTTCCCCCCACAATTCCCCCTATGGCCTAGAATTTCAGAAAACT -CTACCATCGATTCAAACTCTGTTACTTTTGAGGATAAGGGGTTCCGGACG -CCCCAAACTTCCGCCCGTGGCCTAGAACTCCCAACTTCTTCCACCGACCT -GGACGTGGTGCTCGTACTGGCAAAATGCTCATCAACATCTGGCAGTAAAT -TGTTCAACCGTCTTGGGGACACGGTACGCGGGGTCGACGGTAGACTTCGG -CGACTGATCGGCGATGTAGGAAGACTTCTGAAAAAAAATCAATCAATAAA -ACAACGACACTCTGCTCGTGAGGATCCGCCCATTCCGCTTGTTGTTTACC -AATTTCTTTTAAAAAAATTCTACAATGCGCAAAATTAATAGAACTACCTT -CTTATAATTTTTTTTTAACTCAAAATTTTCAAAAAAACAACGACACTCCG -CTTGTAGACTCCGCCCACTTTCCAAAAAGGACAATTCGGAGTGTCGTTTG -AAAAATATCCTAAAATTTGAAAAATTCATTTTTAGTCTCAAATTTTAATG -AAAATTACGTGAAAATCTATAACAACTACGACACTTTTGGCTCCGCCCAA -AAACGTCTTTTGGCTCCGCCCGAAAACGGGGCGGAGCCTGGCACTAATAT -TACAGTTTTTATTTCCATAAGTGATTAAAAAATCAACAAAAAAATTATTT -AGAAAGTATCTCAATTATTGAATGAAATTTTATAAAATCTACGACACTCC -GCTTGGAACCCCCTCCCCCTGCCAAGAATGGGGCGGAGCCTAGAACAAAC -GGAGTTTTTGCAAGAAAAATATTGCTTGAAATTTTAAAGACATTAATAAA -AATCCGAGTTTTTAGAAAAAATTGGGCCAAATCGAATAATAAAAAATACG -TTACTCCGCTAATAAAACCAGCTCATTACCAAGAAAGGGGCGGAGCGTAT -ACAAACGGAGCGTCGTTTGAAAAAATATTTTTTGGAAAACTAAAATGTTC -CAGCGGGAGGAAGCTTCTGCAAAGGCAATCTAATTTTTTTCCGGAAATTC -AATTTCCTCAGGGTTCTCTCTGCAAATTTGTTCACGAAAAAACTCGTGGT -GCTGTGCAAATGCGCTCTATTGATAATTTCATCTAGAGAGCGCAATTACA -TCAAATTAGCAATGGAGCGTTGTTGCATACCTTCTCGTTGCAGCGGGAGA -CGCTGGTGACGGAGGTGATAGCCGTGATGAAAATTGTTGGGGTATCGCCA -GCGCAACTGGAAGGGAAACACGACGATTCGACATTTTTCTGTAAAAAAAT -CCATGATAAAACTAAAATTTAAAGAAAAAATAATGTAAATAAAAGTGGGG -AAGTGGCTAAGCGGGGACACAAATACGCGGGAAATCCGCTTATTTTTGCT -GGATTTGACGTAAAAATCCGAATCAACTGGCACTCGACGCGTTTTCCAAC -AAGAAAAAACTAAAATTTCATATATTGGTGGCCTAGAAAATTCGAAAACT -GTTCAAGCTTACGTAAAGTGTGTATTTTCCATATTAGAGAATAAGATTGG -AAGAAAAATAAAATATTGTAATTTCTAGGCCACCGCAAAACTTCTAAGTC -ACCTATGAAATTTCTAGGCTACCGTGAAAATTCTAGGCCATCATAAAAAT -AAAATTTATATATTTTTGTCCTGAAACTAAGTCCACTTCCGCCAGAAATA -ATAAAAGCAACAAAAAAGACAACACAAAAAATTGAGAACTCTTAAGAACA -AAAGAAATCCGACCCGAAATCGAATACCCCACGAAAATTTTCGGAATTTA -GAAAGAAAAACTATTTTTAGACACTTTTTTTCCTTCAAAAGGAGGAACTT -TGTTGCGCGGCCTAAAAAATAGAAAACTCGGCCACCGATTTGTTTGCGGC -CACGGGACACTCCGCAGTTGCAAAGGCTACAGATGCAAATACTGGAAAAC -TAGGTCACCAAGTGGAAACCTTGGTCATCGCGTGGAAAAAAACTTTGACA -AAAAATTTTTGAAAATTTTATAAATTTATTCTAGGCCACCACCTGTAAAC -CTAGGTCACCATGTGGAAGGCTAGATCACCAAGTGGAGCCTAGACCAGCA -CATAGGCCTCTAGGCCACCACGTAGGAAATTAGGTCACCAACTGGAAAGC -TAGGCCTCCACATGATAAATAATATTTTTTGGAATTTCGTTTTGACCAAA -GAAACTTGTTTTTACCAAAATATTTGAAAATCGTTTTCAAGGCCGTCCGG -TGAAAACTGTGTAAACCTAGGCCACCAAATAGAAAGTCAGGCTGCGACAT -CTAAACTTAGGCCACCAAGTAGAAAGCTAGGCCATCAAGTAAAAACCTAG -ACCACTATGCCAAAATAGATGCCTTCTAAAAGTTTCAGGGAAAAAATGTT -TTTCAACAAAAATTTTTAAAATCGTGGCCGAGTGGACTTTAATAAAATTT -ACTTTTTCAGCCACGTGGCAGAGGGATATCGGAGCATCGTTTGAATTTTC -TAATTTCTGAAAGAAAACCGGAACACATTGCAAAAATACGAAAAATATAA -CTGAAGCTGACATATGAAATGAGTTCTATGCTCCCCGCCGCCTATTCTTC -TCATTTTTCTGCTTATTTTTGTCGTTGGGGGGATGCTGGTATCATATTCT -TCGTCCCCTCTTCTTTCATTGCCAGTCTATTCAGTATTATAATTAGCGTG -TATTCCCTATTGGATTCTGCTCCCCGTCGTTTTTTTTTCTATGCGAAAAA -AATAGAAAATACGAGGTGAACGGGAATTTTTATGAAAACGAACGAAGAAT -TTGAGTTTTCTAGGCCACCAAATTGAAACATAGGCCAGCAAACGGATCTC -TAGTAAAAACCTAAACCACAATACGAAAAACTAGGCCACCAACGAAAAAT -GGGAGATTCCGCTTGTGTGTTCAAGCATTTTGTAAAATTCTAGATTGTTT -TAAAAACTTAATTTTTCCAGTACAAAAATCGATTTAAAAACAATAAATAT -GTCAAACTCGTGACGTTTGTCAATAGAGCGCGTTTGCATGTCAAACAAAA -CATATTCGGTGTAGATTTACGGGGACACTTTACAAAACAAAAAACCTTCA -CAAGGCTCCAAATAAGAGCTAGAAAATGGAACAAATTTCCGTTTTTTTTT -TGTTGGTGAGTGTCTTGTGAGGAGGGGACCGCCCGTGTCTCTTCCAAAAA -CATTATTAAATTAGTGTGACGTCATCACATTGAAAAACAACAAATATAGT -TCGAGTTTTGAAGAAAAATTTCGGAATTTTTCTGGTGAAAAAATTTCAAA -AATTTCAATTTTTTTTTAAATCTTAAAAAATTTTTTTATATATTTTTAAA -TTCAATGTTTGATCTGAAAACCAAATTTTCACACAAAAAATCTGGTTTTT -GACGTCTAAATTTGCTTTTTTTCACCCAATTACGAGGTTCTCCGTGGGAA -GGTGTGTCTAGACACTTGAACTTTTGCTTTTTTATTTTTTTTCTAATTGA -AAATGATTAAGCTAGATATATTTTCTCTCTTTTCTTAATCAGAATTGTTT -TTGAAGATTTTAAATTTTTACACTCCCGTGCAGCAAATGCGCTCCGATGA -GAAGTATGGAAAATTACAACTGGAGATTTTCAAAATGTTCAATTAAATTT -TGCGTTTTTCTTTTAAAGGTTCAAGAGTCTAGAAAACTACGAAAAGGTGC -TGTGACCTTATCGATGACGTCATCACAATTCTTGAAAAACTGGGAAAATG -AGACGATGTGGAAAGAGGGGATTATTTATGCTTAAATAAACTTTTTGCAC -TAATTAATTCATATAGTTGTAGTGCTTCTTTATATTTTAAGAGAAATTGC -AAATTTTGCACCCAAAAAAGTAGACGGCCGAGTTATGGGAAAACTCTTCC -ACGGACACAAGACGTGGAAAACTAAAAGTTTCCGTTGTTTTTTATACGCC -CGCATGGCACATCCCCGCCCCAACAAAATTTTCAGGTTTTCAGGGTGAAA -ACATTTTTTCAGCTGCTGGGCGGCTTCTCGTGCAGCTGGAAATGTATTTC -CAGACGGGTTGGAACCGGGATTTGTCATTCAATTGTTGCAATTACGCTCT -ACCGCTAAACCTCGTTTGGACTCCACGTGGACAACACGGTGCCTTATTGT -AAATTTCTCTTCCATCTCCATAATTTCAGAACAAACCGTCGCTTTTATTC -TCCATAATATTATAATTTTATTTAAAAAAATCTGGAAACATTTATCGATT -TTTGTGAAAATCTATGTGAGATTATTGACAGAAATACAAGAAAATCGATG -CAAACATGCTCTATTGCTAAATAGTTCGTGTACTCTACGTCGACGACACG -ATTTCAAGAGTTTTTCGTTTTTTGAACAAATCATCTGTTATTATTGCAAA -ATTCGGTACATTACTCAAAAAAAAACAATAATTGATAAACATGTAGAAAC -ATACATGCAAACACGCTCCGATGCAAATTATTGATTCTCCAACTTTTATT -GTTAAGTTATCTTGAAAAAAAAACTGATAAAACGAGAAGTCCTTGGTGGT -ATCGGTCGCCTAGAAACAGATGAAAGAATGGAAAAACAAGTATTACGGGC -GGCTCCGTTTCGTATTATGGGGGGTGGGCCGCAGATGATCCTTTAGAATA -AGAAAAATGTCTAGTATTTTGTGATACTTGTGAAATATAACCCTAAACTT -AAAAAATAAATTAGGGCTCAAAAATGGTATTTTTCTAATGTAAGCCTACA -AGCACAAAGGTATTCAATTTTTTTTCAATAGCTAAAAAATTAATTTTTAA -ATTGTGATATCATAATACTTACACAAGTACCAATTTTGTTTTAAACGATA -GAATATTCCATAACTTTTGGGTAGGATTTTCTGCACTCGAAAAAAACGGG -ATTTTCAACAAAAATAGTGGACTTTTTAAAAACAACGAAAAAGTTTTGCT -TGGGACCAAGTCTAGCAGATTACAAAAACTGATTCTTCCAGTCAAAGATT -TTATATATCACTTAACAATTGTTTTGCCTACCTAGCAAATTCCGAAGTCA -GAAAAGTTGAATTTCCCTCCAACAATTTTTTTTCATAGTCAGCCAATTTG -CATTTCCCGCGAAAAAATTTACGGATTCACCACAATGGGTCTCCCACCAA -TAAAATTAATTATTCATTTATCTTCTTAAAAGGTCACACGAGATGCCAGC -GACACAGGGCAAGTGCGACCACTATCCCGAAAAAGACACCGACAGAACCT -AACGAAGGCTTCCAAAAATAGCATAGAAATACAAGAGACACAGAATATCC -CATGATGTTCTGTCACTTTCAACATCATTCTGCCTTTTTTGTTCCCTTGT -GTATGGTGACTATAATTTGATTGTTCTGAATAATCTGATGTCTACTTGTG -TTGTGGACCACTATTGATTTTTGCTGCTTTGGTTAATTTGAGGTAATACT -TTAACAAATTTGTTTTAAATATCATAGTCATTTTACAAATTTCAACAGTT -TTCCTATTAATCCGCTAAACCGCAACTAAAAATGAAAAATTAAAACTTTT -CTCAAAACTGTATGGGAAAGTTCAGTGACGGTTATGATAATTACAACATC -GTTAATGCAAATTTAACAGGTTTCGCAAAATTATATTCAAAAAATTTTTT -AAATCGTTTATTACGGTAACAAGAAATGTTGAGAATGCGTATTACACAAC -ATATTTGACGGGCAAAATATCTCAGAGCGAAAACTACAGTAACTCTTTGA -ATGAATTCTGTAGCGTTTGTATCGATTTACGGGCTCGATTTTCGAAATTA -ATTTATATTTGTAAAGTGAAAGCTATATTCAATTTTTCTTCGATTATTTG -TTGTTTTGTTTTATTGTGTTTTTGTTTTATTTTAATATATTTGTCACTTT -TCAAATAGAAATTAATATCGAAAATCGAGCCCGTAAATGGACACAAACGC -TACAGTAGTCATTCAAAGAGTTACTGTAGTTTTCGCTCTGAGATATTTTG -CCCGTCAAATATGTTGTGCAATACGCATTCTCAACATTTCTTGTTACCGT -GATAAACGATTTAAAATTTTTTTTAAAACTATTTTTTTAAGTAGAACAAA -ATTCAGAAAACAACTCGATAAAAATGTCCTAGTCATCCGATTAAAATAAT -TTTTTGAAATAAATAATATGAAAATTAAATTTTAAATATTAAAAATGTTA -TTGTTGCTTTAAAAAACGTTATTGGACTTTTCAAGGCGGCAAAAAAATGA -AAATAAAAATCGATTATTTTTTGAATTGTTGACTTTTCGGTTTTTAAATG -TTGTTGAAAAGAAACGAATTGTATATACGAATTTCAATTAAAAAGTTTAA -AATGTTTTTTAAAATGTTTTATTTTTTTCAGATAGATCAACTGAACTTCA -TAACTTTAAAAAGCCAGTCTGGGATGTATCTATACCACTCTATCAGACTA -CTCTTAGCACTAATCACAATGTACGACCCCGTGAGAGATTGTTGTCTGTA -CTGGATACTACACGAGTGGTAGAATATAAAGAAGTGTGGTGACAAGTTTG -GGATCTGAGTCCAGTAGAAAAAAATCATTCTACCGAAACTCGAAACTATG -AGCGACTGGTCAAAACTATGCATTTGACGACGTCTACCTGTTTTAAGTTA -TTGGTGGTGAGTGTGCCTTTGAAGAAGTCGCTCGAGCCTCGACCTTCTCC -GACTGGCTTGAACTGAAAGATCCTCGGGAATCATTTTTAGAATTTAGAGG -TGGAGTACCGTCTGTGGATTTTTTTTTGCTCGAAACGATAGAATACAGCC -CCAATATTCCGAACAGGGGTGCGCGGCAATTGCCGTGTGGCAATAGAATT -TTCGGCAATTTCGGCAATTGCGGCAACTTAGGCAATTGCCAAAATTGCCG -AAAATTCACAAAACCGGCAATTGCCGAAATTGCCGATTGCCGGAAATCCG -AATTGGAAATATAAATTTGATTTTTTTTTGTAGTTTTAAGAGCTTGAACA -TGCATTTTACTAAACAATTTTCTCTTTTTAAGCTCAAAATGGTTTAATCC -TTTGAAGATTGACCGTTTTCTTTTAGAAAATTACTGACAGAATATTAAAA -AACAATGTGACATTTTTCAATTTTCGATATACATTTAGGTTTGAAAATTG -CCGAAAATGCCCTGCAATCGGAATTTCGGCGATTTCGGCAATTGCCGAAA -TTGCCGATTGCCGGAAATTTTGAAAACCGGCAATTGCCGAAATTGCCGCG -CACCCCTGATACCGAATATAACTGTAAAAAATGTATTAATTTTTTTGTTG -ATTTTTTGAAAATTTTCATAAAAGTAAAGAAAGGGCCAAATTATGTTTGA -ACTACTAGTAGTCTGTGACTTCATTTTTGGCATTTTTCCGTTTTTCAGCA -ATAATGATTGGTTTTCTTTGTTCTCTAATTTTAAACATATTTCTTCACAA -ATGTCTCAAAAATTAACAACTTCAGTTTAAAGTAATAAAACAAAAAAAAA -AGAAAAATAAAGAAAAACCAGTCAGTTTTTTCAAAAATAATTCAAAAATA -ATTCGGTCCTTATTTTTTTTTTTTTGCAAAAAAAAACAAAACAAACTCCC -CTATAAAAATTTTCCAAAAAAAAATTGGAAGGTTTTTTTTATTTCAGCCT -ATTTTTGGAAGTTGTCGAACTCGATCAAAACATTTTTTCATTGGTTTAAG -TTTTATTATGCTTGAAATATTCAAATTCCAACATACCAGGCATTGAAAAA -TCAGTTTTCGTCGCTTTTTGACTCGAAATAAAAAAAACCAAAAATTTTTG -AAAAGTTTTATTATGATAGAGTCATTCAATTATATTCCCAGTACTTTTAA -ATAATCAAACAATTTTTTAGAATGGCTAGTTTCAAAATCGGCGGCTTTGT -CGTTACATATGAAAACATGCACAACAATATGAAAAATAGGTATGTCTTCA -AAAATATTAAAAACAATATTTTTTTAATTTTACAGATGTTAGCAGTTCGA -CGAAGCAATGCAGGAACTACAGTTATACAATCAAATTCACGCTTTTTATA -TATTAATTTTTAAAATCATAAAAATTACAATTTTCATCAACGTTGATCAG -CTAGACGAATGCATTAAGAAAAGGGAAAACATAGGGCTTCCCAAAACGTC -TGCCTCGCCCGCCTTGTGGCGACCTGCGCCTGCCTCGTGCAGGCCGCGTC -TCCAGTCAGTGCAGTGCAGAAATTTTTATTTCAAAATTGTACAAAAACAT -GGAAAAATAGAGAAGGATAATTTTTTAGGCCTCGGAAATCAATTTTAAGT -CCTCTAGCTACAAAATGAACCATTTTAGAGGAGTTTCAAAATTGTGAATT -TTTACAAAAATTACCCAATTTTGCCACTTTTTAATGGTTTTTGATGGGTT -AAACCTAGATCTTCTGGATAATTCCGCATATATGAATTACCGTATTTCCT -ATATTAGTTTTGCATGCAAGACTAATTTTCAATTGGTCTGTAGGGGTGCA -AGACTAATAGAGACTGCAAGACTATTAGAGGCTGCAAGACTAATTTTCGA -ATGCTATAAAACTCCGAAACGTGACCAATTTTTGATTGTAAACTCAACTT -GATATCGTTTAAACAACAAAAAATACATCCTTTTCCAATATTTAATCAAT -TATTTGAACGCTTTTAATCAAAAACTCGAGTTCAATTTGCCCAGAAATGG -GCCAATTTATTAACGTTGCAGCATCTATGCAAGATATTGCTGGACTGGAA -AAAAGTCGGGTGCAAGACTTTTAGAGACTGCAATACTAATAGAGGCTGCA -AGACTAATTTTCGATTTGCCCGTAGGGGTGCAAGGCTAATAGGGATGCAA -GACTATTAGAGGAAATACGGTACCTGTTTTTGACAAAATTAGACAACTTT -TTATTTTTGCTCAATTTTTTTTCAGCCATCTAATTACTGTCCTTTTTTTT -TGGACAATAAAAATAAATTTTCTAAAAGCGTTTGAAACCACTATATTTTG -CAAAAGGACAATTTTTTAGGGATTGGAGATCAATTTTATGTCCTCTAGCT -ACAAAATAAACAATTTTAGAGGAGTGTCAAAATTGTGAATTTTTACAAAA -ATTGCCCAATTTCGCCACTTTTTATTTTGGTGGGTTATACCTAGATTTTT -TAAATTCAGCATATATGAATTACCCGTTTTCAACAAAATTAGACAACTTT -TGATTTTTGCCCAATTTTTTTTTCAGCCATCTAATGACTGTTCTTTTTTT -GGGCAAAAAAAATAAATTTTTCTGCAAACGTACAAAACCATTAGAAATTG -AAAAAAGGCAATTTTTTAGGGTTCCGATATCAATTTTGAGTCCTCTAACT -TCAAAAATGACTATTTTAGAAGAGTTTCAAAATTGTGATTTTTCTGCCAT -AAATTGCCCATTTTTGCCACTTTTAATGGTTTTTGGTGGGGTATACCTAG -ATTTTCTGAATTCTGCATATATGAATTACCGTTTTCGACAAATTTAGACA -ACTTTTTATTTAAAAAATTAAAAAGGATTAAAGGACGATCCGTTCTTCAA -GTGCTATGCACTGCGGATCTGGGATTCAGGTACACTGCCTGGTGGTGATC -CCTCTGGGCTGTAATTTAAGCCACGTCCTAGCCGAGGACTGTGGCCGATA -ATCCAGTCGTGGATTGCTCCACTTCCCAATAGAGGCAGGGTGAACCTAGG -GGGTGAGGCCGGACTTTTATCTCGTGACCTCCAGACTGCTAGCGGCCACC -ACTACCGACTGAGCTATCTGCCCCCCTTGGGGAAAAAAATAATTTTTTTT -TTTTTTGGGCAAAAAAATAATTTTTTGGAAATTGTACAAACCAAATATTA -TATATTAAAAAATATTATCCAAATATTCCAAATATTCCAAATATTCCAAA -TATTCCAAATTCCAAATATTCCAAATATTCCAAATTTATTCCAAATATTA -TGAAAAAGGCCATTTTGTTAGGGCTGGGAAGTTTGAATTTTTACAAATAT -TGCCCAATTTTGCCGCTTTTTAATGGTTTTTGATGGGTTAAACCTAGATT -TTCTGAATTCTGCATGTATAACTTACTTGTTTTCAACTAATTCAGACAAC -TTTTTATTGTTTTTTTTTCAAATTTTTTCAGCCAATTAATGACTGTCCTT -TTTTGGGCAATTTTTTTTTTGAAACAAAAAAAAATTAAATTAAATTGCCC -AATTTTGCCACTTTTTAATAGTTTTTGATGGGTCCCGGAAACCTAGGAAA -CCTAGTCCCGGAAAATCGAAAAATCGAAAAAAAATTTTTTGAAAATTTAC -CAATGAAAAAAAAAAGACTCAATTTTCTTCCAAAATAAAAAAGTGGGCAA -AATTTTAAATATTTTTCGAAAAAAAAACATAACTTTTCAAAAAATTTTTC -GATTTTCCAACAAAAAAGTGAAATAAGAAGACATGCAGGTTACTGTAGCT -GATAAAGCTTCAAGCGTACCAGGACCCGAAAACCGCCGCCCGCGTAAATC -GACATATTTAATGTACCATCAATTTGATCCTCCTCTTCCTCCTTCTTTCA -ATGACACCACACAACTTCCTGTTATGAAGGTCTCAATTCCCCTTCATAAC -ATTCTTTGTAATTAATGCACCCTAAACAAACTGTGCAAACACACTTAGAC -ACCCCCCTCCTACACGGTCTTTGGAGTTCCCCCGCTCAACTCTAATGGAC -CTGGTAATCCCTTGCGCGGTGGGATTTTTCGGGTCTCGCCGCGATTTTTA -TCCGAATTCCGGAATACCGGAAATGGCGTGGAAATCGATATTGCAACAAA -GAAAACTGTTTTATTTTCAAAAATCCGCTCACTTTTTTTAAAAGTGATCT -TTCAATCATTTTTAAAGTTTTTTTTTTTGAAAGCACGCGTTTCTGGCTTC -CCACATATTTTGGAATGTAAGAGATTGCCGAGTTAGGCCATTTGGACTCG -GCCACGGCCGGGGTCGATTCACGTAGCGGCTCGGTTTCTGTAGAAAACTA -AATGTATTTGTCCGTATGGAGTACACAAGCTTTTCCAGGCGTTATCCGGC -AGGCGATAGAAGCCGCGACGCAACACGCAACGCGCCGTAAGTCTACCCCG -GCCGTGGCTGAGTTATGATGGCCTAACTCGGCAAACTCTTGCATTTGAAA -ATATGAGCGAAGCCAGAAGCAGGTGAACATGGATTTCTGGCTTCCCTCAT -AAATTGAAAAGGGAGAGTTTACCGAACTAGGCCATTTTGGCTCGGCCATA -TCTGGGGCAGATTTACGGCGCGTTGCGTGTCGCGTCGCGGCTCGTTTTTA -GTTGTAAAACTGAATGTATTTGTCCGTGTGGAGCACACGACTTCCCCACG -CGTTGTCCGCTAGGCAATTGTTAATGGAGCGCGAAAAATTCAATGAGGAA -GGCCAGAACCCCGTGTGTGATTTTTGCAACTACAGCCCAAAATTTGAACG -GGATTAATACAAATTTAATTTGAAATTTGGATTTCGCAATTCAAAATTTG -CGAAATTAAAATTTCGAAAACCCGAATCTCATCGAAATTAAATTCCAAAG -TTTTCATTCAAATTTCAATGAGGTCTCTATTGAGCCGAATTCCCGCGCAC -GGGAGGTAGTGGACCCCTTTTGTATGTTTAGGGGTACAAAGACCCCCTAC -CACCCCTTGTATATGCACAATAGAGAACACTCAAGACCCGCCCACCCTAG -GCCCCTCATCCAAAACATATCCGAATATACCCTCTACTGTACTTTATTTA -CTTGCTCCGTTTACCCGGGTACCAGGGTACTCCCTAAACTAACTGAATTT -CCAAGGTGGTGGCCTAGAAAAAGCTCTTCCACTGGTTTTTTTGTGGAAAG -AAATGATGAAGGTTCTTGTTGTTTTATTGCTTATGGTAGGTTTTTTTTGC -CACGTGTCCGGAATTTTTAAAACTATTTTTCTATTTTTTAAAGGCCCAAA -ACTTTGTTTTTTTTAATGTTATCGTTTTTTCGTGAAAAAAATTATTTCAG -AAAACGGGGGTTTTAGGTTTAGGCTAAAGCGTAGGCTTAGGTTTAGGCCT -AGGCTTAGGCTTAGGCTAAGGCTTAGGCTTAGGCGTAGGCTTAGGCATAG -GCGTAGGCTTTAGGTTTAGGCTAAAGCGTAGGCTTAGGTTTAGGCCTAGG -CTTAGGCTTAGGCTAAGGCTTAGGCTTAGGCGTAGGCTTAGGCGTAGGCG -TAGGCTTAGGCCTAGGTGTAGACTTCGGCTCAAACATAAGCTCAGGGGCA -AAAAAAGGAGAAACTCCCACAAATTCCTAAAAATCCTGAAAATTTTTTTA -AATCTTAAAATAGTCAATTTTCAGTGGAAATCACAGTGAGCATTTTGAAA -ATCCAATAATTTTCAGGTAAATTCGACATTTTCGTTCGGATTGGACAATG -AAATAATCGGTGAACCAAAGTTACAATGCAATCCGGAAAGTATTACATTC -TCCTTCAACACACGGAATCCGTTTATGTTAGTCTTGGGGTCTCGACACGA -ATTTTTCCCGCAAAATTAGTTTTCCACGCGTGAGTACACCGCAAGTAGAG -CGCTTATCAATAAATTATAAATTATCAATAGAGCGCACTTGCCCCCGGTG -AATTTCAAAATTTTCAGAGGAAACGTATATATTCGTGGCTTCTACCGAAC -ACCCGGCTGTCGTCGGCAATTCCTCGCACCGAATCAGGCTGGCGGCTCAT -TTACGGTACGGCTCGGCGATTGCGGGATGCGGCGGTCCCGACAAATCAGT -GGACATTCGCCACGTGGCGTCAATCAGCACATCACTTTTGTTGCGAACTT -TCATCCGAATCTCGCGACGAAAGAGGAACGATCATTCAATATTCGATGCT -TTTATGCGCACAGTGAATCTGTTGTCAAAGCTGATCTGGATGTCAGGTAG -GGATGCAAATCGATAAATTCCCCGAAAATCGATACATTTTCCAAAAATCA -ATAAATACCCAAAAAATCAAACAATTCCCAGGAAACTGGAAGAAAATTCT -CAGAAAATCAATAAATGTATTTGTTTTGCAGCTCAATGCCGGAGGAATCG -TTCGAACAGGGTGTGACAATCGTGCCCCAATGCACATATTCCCTTCGTGA -AGGGACATTTGAGGGCCCAAAAGTGTCGAATACACGTGTCGGAATGACAA -TTGTTCATCGATGGGACTGTGATACATCGGGGAACTATGGAATACTGCTA -CGTGGATGCACCATACTCGATTCACGTGGTGTTGAATCTTTTCCATTGCT -TGATGAGAATGGGTAAGAGTAGGGAAGTGTCGGCCGCTAGAAAAGAAAAA -TATATCACTAGAGCACGTTTTCTAAGCATTTTTCTCAATAGAGCGCGCTT -GCTCAATTCCCTAAAATAAATTATGGTGCATCGAAACGTGTTTACGTACT -GATAGAGCTGTAGTACTCGAGGAAGCTGAAAAAAATAATGAAGAAAGTGA -AAAAAATCAAAAGTGTGAACACAGCAGCCTTGTCAGATAAATTTCAAAAA -TCTGTGCATTTGGTCGTAAGTTATGGCGCATCAAAAGTTTTTTGAAATTC -TCAATAGAGCACATTTCAAAAAAGAGCGATTTTCGCAAAGCCCCTTTCTT -CGTTGTTTGATTTAAAAACAATGCAATTTCGTTTATTTCGCAAATTTTTG -AAAAATGAGTTAAATTTGCAACAGAGCGCGATTGCACACACACACACACA -CACATCAAACGTCAGAGACCCCACTGATTTTGGAGATTAAATTACGGTAG -ATAGAGAATCACAAGGAAAACATCACGAACTTTGTTCCGTCAATTCCCGT -GGTGCTTGTTATCATCAGAATGCAAAATTTGAAAGTCTGAAATTAAGCCG -TTTCCGCTAAAACGTAGCGAATCTCATTCCACCGAGTCTATTTTCGTGAG -GTCTCCAATTTTTCAAGTCTCTGCTCGTTATGGTGCATCGAAGGGTAATT -CAAAATTTCAAATAATTTTTAGACACTTTTCGACCAGTTTCAAATTTTTT -TTATGGTGCATCGAAAGAATTTTGCGTAATTTTCAATAGAGCGCGATTAC -TACTCACCTCTAAATTTCTGCAAATTCTTTTTCCAGATGCTCAGTGTCCC -GTGACTTCCCACAAGTGGTATATCTCCCATCACTGACGTCAGCCTACATG -GCAATCGAAGCCATCTCATTTCCTGACCAACCATCGATTTCTTTCTCGTG -TCAAATTAAGTTGTGTGATAAGGGAAGTGATGAGTGTCGGGGTATGAGTC -CCCCCGCGTGTACCCCATTGACACAGGTCCCCATCACGGGACAAGTACCA -ATGCCATTTGATAATACAATTGGAAATACGTTTGGTGAGTTATTTACGGC -CGAGAAAACCTGCAAAAATAAAAGTTCAGCCACCGAACTTTTTGACATTT -TTGCGCAACTGTATGCCGCACAAAACTTTACGTCAGAAGTGGGCGTGTCC -GCCTGCAGGCCCCGATGTTTTAGATGTAAAAAATTAGATGTTTTAGATGT -AAAAAATTGAAATTTGAATACAAAAAAAAATTCGGCCACCGATTTTTTTT -GCTTTCACGTTTTGTCAATGCATTTCCAATTTTTTTCGTGAAACGTTTTT -GTCAGAATTGGGCGTGTCTTGTAAAGTCCCGCCCAATTTATGGGCGTGGC -TTGTTTCGACCAAAAATACTGTTTTTTTAACTCACAAAAACAGAGCTATA -AACTTTTTGAAAAAAACATCCCTGTCCTCTCCTTTCTCCATTCTAAAATT -TGAATTAGATGGCCGTGAAAAACCCCGGCCGCGGTCTTCAATTACAGTGA -AGAATTTGGCGGCAGAGCGCGTTTTCACAGTCTTTTTTTGTCGTCACTGA -GCAAACTTCAACTGCTTCCAGCCAGAAATTTACAAGCAAATTCAAATTTT -CAGACGGAATCCCACTGGAGCCGTGGATGAAAGAGCCCTCTCCTCCCACT -GATGACGTGGCAAACATCACCTCAGAAGGCGAGCCAATGCCTCGGCTCAT -CACCGAAGAGGAACAATATCAAATCGAGTCGAACCATGTTGAGGCGCGAG -AAAAACGATTTGCTCATCGATTATTCAATATCACATCGGAAGATCTCTAT -GTTGAGCCAACCGTCGAGCCAATGGAAGTAGAGATGCCTGGAGCACCGAG -AGAAACTGCTCGGAGGGTGTCTGAGCCATGTGTCTCGGTTGAAACTTTCT -ATATTTCGGCGCTTGCTGTACTTTTCGTTTTTGTCGTTTCGATTGGGATG -GTCTGTTTCTTCGGAAGTCATATGCTTAAAAAGTTGGTTTTTTATTGATT -TTCCTCCCACAGGGTTCTGACCTTCCTCATTGATTTTTTTGCGCTCCATT -GACAATCGCTTGTCGGAAAACGCATGGGAAAGTCGTGTACACGGACAAAT -ACATTTGGTTTTACAACTAAAATCGAGCCGCGCCGCAACACGCAACGCGC -CGTAAACCTACCCCAGCTATGGCCGAGTCAAAATGGCCTAGTTCGGCAAG -CTCTTTCATTTCAAAATATGAGGGAAGCCAGAAATCCATTTCCCCAAATT -GCAAGATATTTGTGGCGTGGCCGAAGTTTTCTAGTTTCTCGGCCACGTTG -TCAAAATTATTTTAAAAAATCGCTGGAAACACTAAATTTAGATATCTCCT -GTAGATTGTGATTCGCGGAAAAATTCCATGAATCTCGTTCTCCCAGTTTT -TTTTTTGTAAATTCAACAAATCAAATGAGCGCCAAAACCTCACAAATCTC -ATACTCCCAAAATTTGCGTTCCTCTTTTTCTTGAGGCCTCCTCTTTTCAC -TGTAAAATTTAAAAAACTCGTAACTTTTTCTTCAGAGCGCGATTGTACGC -ACAGAAAGTCTTTAAAGTCTGAAAATATTTTAAAGTTCCCCAAAATCCCA -CAAGTCTCATTCCACCGAGAGGTCATTTTCCGTGAGGTCTCTTTCTTGGG -TCTCGACGCGAAAATACTGTAATTTTATTAATTTTTTCAGAACTCAAGAC -TGTGAAATGCCGATTCCAGTCCCAGAAGGATATTATCTAAGCAAACACTG -AAACTCTTGTTTAAAAGTATTCGTTTCCCATCCACGTGCCATAATTCTTG -CATTTTCTTTTTTTTTCCCTATTTTTATTCAATTTATTTACAATTTGTTC -AATAAATAATCAATAAATAATAATTAAAAATAACATTAAAAGTCACATTT -TCCGAAGGAACCACGCGTGGAATGTAACGGTGCCGTTGTCGAATGGTTCC -GGCTGAAAATTGATTAGTTATCATTGGAGCGCAATTGCATTTTTCTCGAA -AAATCGATGTTTTCGTGTGATGCAGAATTATCGATTTTTTTTAACTTGGT -GGCCGAGAAAATGGAAAACTCAGTCATCGACTTTTATTTACCTGGAACGA -AAAAATTTAAAGTATGATCACGCGCTAAAGCCTCAATTATGCAAAATGCT -TTAAAAACGGGTTTTGGAATTTTCTAGACCACTGGTGACGTCACTCCTTT -TCCATTTATTATTCTAACTGTTTTCTAGGCCACTGATGTCGATATTTTTC -CACTGCTGGGTTTCTAGATCGCCTGCGACGTCATTTCTCTTCCATACCCT -GCTCTAGCGGGTTTCTAGGCCACTGGAGAAATTATTTTTCTTCCAAAAAA -AAATCTAGGCCATTAATGACGTCATCATTTTTTCTTTTCTTTAGGATTAC -CTCAGGTTCCTCATATTTCAGATCCATCCTCGCCAATCGTTCATTCTCAT -GAACTTTTTCCACTTTTTCACTGCTCGTACTCTTCTCATCTACTGTATCC -GCCACCACAACGTCCGGAGCAACAACTTGCTCATCAATATGCTGATATTC -GGGCTCCTGGCGGTCCCAACGTGGTGTCTCTGGTGCAGTTTCATATTGAT -TTTGCTGCTTCTCCAGGAGGTTCTGTATTGAACTGATCGCTGAGGAGGAT -CCAACGATCGGAGGCATCGGAGGCGGCAGAGGAGCCATAGATGGAGTCTG -AGAAGCCATCATTTGGAGTTGGGGGTAATTCCTTTGTTGGGACATCTGTG -GGGACATTTGTGGGGACATTTGAGGGGACGGGGACATTTGGAATACCATC -GGAGGCATTGGAGGTGGTGGGGGTGCCGGAGCCATTCGTATCATTGGAGC -CATCACGTAAGATGGTGGAGATGGTGGGAGACTGGAATTTTTTTTTTGAA -TTTTTTTTCATAACACGGGCTTCTGGCCTTCCTCATTGCACTTTTCGCGC -TCCGATGATAATCGCCTGCCGGACGACGCGTGGAAAAGTGGTGTACTCCC -CACGGACAAATACATTTAGTTTTCAACTGAAAACCGAGCCGCGACGCGAC -ACGCTACGCTCCGTAAATGGCCTAATTTCTTTTTTTTAATCTTGAGTTAA -AGTTTAATTTTAATTATTTCTACAGAATTGAATGGCTGGGAATGTGCCAC -GTGGCCGAGAATTCTCCTGCGTGGCCTAGAAAATTCAAAAAAATATTTTT -TGGTGGTTTTGATTACAAAATAAAGGATTTATACGGATAAAAACCTATTT -TAAAAGCCGTGAAAAAAATCATATCAACCACTGCCTAAAAGATTGAAATT -TTTATGATGGCCGAGAATTCTCAAGTGTGGCCTAGGAAAAATCAAGGCTT -TTGAAAATTTGCTCATTTCGAAAATTAAAAAAAACAACTCAATTGATAGT -AAATTTTAAAATTAAAAATTATTTTTCTGGTTTTTTTTTCTCAATTTTTG -CAAAATCAAAATTATAATCAATTTTTAATCCAGAATTCGTCAAGTGGCCT -AGAATTCTACTGCGTGGCCTAGAAAATTCCACCAAAATTTAAATTTTCCA -AATTGTAAAAATGCTCCAAAAAGTTGAATGGTGGCCGAGGTTTTTCGTTT -TTCACTTTTCACAGCTACGGAAAAAAACTCGGCCACCAATAGTTTTTCCT -AGGCCATGTTTCAAATGCCCTATTTCTATGTTAATTACAGTATTTTCTAG -ACAAGATTTTAAAAAAACTCACGAATAGCACATGGAGCTCTGACACTTGC -TCCCACCAATACAAAATTCCGAATTTTTTACAAAAAACTGCAAAACTATA -AGAATTTGTGGTAGAAATTGGGGCATTTACGTAATAATAATAATAGAAAA -ATGTCCGCAAATTTTTTTTCATAAATTTCATAGGGAGGAGGTAAGCTTCA -GCTAGAAGCCATTCAATTTTATTGGGGCGCCGAAAATCTTCGGAACACTT -TTACAATTTATACAGTAGTGTACAACTTTTACAACTTAATAATATCTTCA -ATACTTCCAGAATATTCTTCTTTTTCCTCCTCAATTGCCACGTCATCATC -TTGTAATCTGGTCCATTTTGCTGGCGAGGCGTCGGCAAACAGGCAGAATA -TAGTATTTACGAAGAGAAGTAAGCCCGCATGCGCCAGGAAACAATTACGC -CAGTCTGTGAATCTGAAAAAAATAATCTTGTCTTTTAGGGGACCTACGCC -TGCCTGCCTACGTCTGCCTTGCAGGGGACCTTTGCCTACCTACTTGACTA -CCTTCAAGTGAGACCTATGCTGGTTTGCCTGCATTTTTGTCAGTGCCTTC -TAGGCCTATGCCTACCTTACAAACTATGTAGGTCAACTGCCTGCTTTCAA -GGTGGCCTAGGTCAGCCTACATGCTATCTACGTCTACCCCAATGTACCCT -GTGCCTATCTACCTGCTTTTAATGCTATCTGCCTTTTCGATAGTCTTTTA -GGGAATCTACGCCGGTCCAGCTCACATAGGTTATCTATGCCTATGCCTTC -CTGCCTGCCTCCAAAGTGACCTACGCTTACCGTGTTTTTTTTTCTAGACC -GTATATACCTACATGCCTGCCTTTAAGTTTACCTATGCCTGCCTGCATTC -CTCATGCCTGCGTGCCTACATGAATACCCTAAAAACTCACGTATCATCAG -TAACAATCATATTGACGAAAAACGGTTCGATGAATATCGTGCAAGCCCAG -ATGTTCATGATCTGGAAGAGAAATCGTTGGCCTAAAAATTTTCTCGGCCA -CCCCCTTACCTGCTGCATTGCGAAATAGGCGTACTGCTGGGAGTGCAACG -TGGCACACTTGTTGAATCCCGCCGTATTGCACCCCATCACACTTTCGGCG -CAAATCTGGAATGATGGAAGAGAATAGGAAAACTAGGCCATGGATGTATG -TGCGCTATGTTGATAATCGGTTATTTTCAACGTGGATTATCAATTGAGCG -CACTTGTCCCACTGGAAGAGTTTTCCTATCTAGGCCACCACCACCACCCA -CTCACCATTATAATAATAGCCAGCAAGTGTTTTTCCTGTGGAATAAATGC -TAGAACGATGAAAAAAACGGCGGCCACGGCCAGAGCGATTGTGTTGAAAA -TTTTAGTTTTCAGAGTTTCTGAGATGAATCTGGAATATTGATTTTTGGTG -GCCGTAGAGAGGAAAAACTCGGCCACTGATTTTTTTCACAATTATAAAAT -TATTTTTCCAGGAAAAACCCCCGAAAAACTCACTTAATATAATCACTAAT -AATTCCCGACGATAATTTCGTAAAAAATTGAAAAATAATGGGTAAGGCGG -CCAAAAAACCGGACGAAAGTACGTCATAGTTCAAATAATTTTTCATATAT -TGCGGATTGAATTGGGATACCAATTGAACTGTTATCAAATCTCCAAACGA -TGCGATCCAACAAGCCCACAGGCTTAAACTTGTCAGAATATGACGGAATG -GAAGATTTTTTGGCCGGGATACCTGCAAAACGAAAAAGTAACGGGCTTCG -AATTTCCCCCCCCATGTTTTCAAATGGAAGAGGTGGCCGTGAATAAAGCT -AACCTCGACCGGGGGTCGCGACTCGCGACAAACGGGAAAACTCAAAGAAA -TTTCGTACTGTCGCTACTTTTTTTGAGTTTTCCTGTTTGTCGCAGGTCGC -GACCCCCGGTCGAGGTTCGCTTTTTTCACGGCCACCTCTTCCATTTGAAA -ACATGGGGGAAATTCGAAGCCCGTGAAAAGTTAGGCCATGCAATGCGATG -TGGTGGCCGAGGTTTTGAAAACTCGGTTACTCTCATGTAAAAAATCTTGA -AGTTGAAGCAAATTTGCGTACATGAAACCCATTTACCTTGCTAGCAGTTT -TAGAAAAATTTGGGATTTTCTCATACTAATGAGGGAACGTCTTAATTGTC -GACAAATTGCGTACCCCGAGGAACCCACTAATTCAGTCCTAGGTTTAGGC -ATAGGCTAAGGCATAGGCTTAGGCGTAGGCCTAGGCTTAGGCTTAGGCTT -ACACGTGGTGTCAGAGTGCCTCATTTCGGCTTGATCTACGTAGATCTACA -AAAAATGCGGGGGAAGAGCCGCAGAGTTTTCTACTGATTTCGCATGGTTA -AGAGTGTGCTGACGTCACATTTTTTGGGGCAAAAATTCCCGCATTTTTGG -TAGATCAAACCGTAATAGCACAGCCAGGCACCACGTGCGCTTAGGCTTGG -GCTTTCCGTAGTCCTTCGGGCGCGTTTTTCTCAAAAATGATACGTGGTAC -AATTTCAGGTTTTTTTCCGCTCCAAAATCTAGTTATAATTTGTGTCCGGT -AGAGCGCGTTTGCACTCACTTTCTTTCCCGATTTCCCTTCTCGAATCCTC -TCCAATTCCTTCTCGCCAACCCAACTGTGCTCACTCGGCGAGCACTTGAA -AAATAGGAAAAACAGCGAAAAAGTGACCAACGATACACCGGCGTGCACAT -AGTAAACCGACGTCCATCCACCAGACGAAGAGCATAACCATCCCGAAACT -GGCATTGTAAATATATTTGAAAGTTGTGTATTTCCGGTTAATAGGCCAAT -GAATACTCCGTGCTCGTATGGGGTCGCCCAATTTGCTGTAATTGAGCCAG -CGAGGGGAAATGTGGCTGAAAATGCCATTCCTTGACAAATACGGGCGGCC -ACAAACCATCCGTAGCCAATGGTACTTGCCAACGGGATAAGGGCTGTTGA -AACTGGAAAAATTGAGTGCAATACATCATATTTGACGCGCAATTTTAAAA -TTTAAAAAATGGAAACGCGCTCTAATGATGCTTGGTGTACTCCTCTCGGA -CAATAAATGTCAATAATTTTTGAAAAATCGATAATTTTTTTTTAATTTCA -GAAAAATTCGTGAAATCTGTTTTATTTTGCGCGTAAAATATGATTCTTAA -ATACTTAATTCAGTATTTTACGCACGTGGTATCAGAGTGTCTCATTTAGG -CTTGATCTACGTAGATCTACAAAAAATGCGGGAGAAGAGACGCAGAGTTC -TCAACTGATTTCGTATGGTTAAGAACGTGCTGACGTCACATATTTTCGGG -CAAATAATTCCCGCATTTTTTGTAGATCAAACCGTGATGGGACAGCCTGA -CACCACGTGCTTACGCGGAATTTTTCACAATTTTTTGTGCTTCATGCACC -ATGTTTTTGTTTCGAAAAATCAGATTATTGTTTTGCGCGTCAAATTCAAC -GCCCACTGTGCAATACACCATATTTGACGATCAATTTCAAAAATTTTGTA -TGCTTTCGATGCATGCTTTTTGGGGTACTGTAGCTTTGAAAATACGCATG -CACTGGATCTGACGACAAAATGCACAGTTTTTATAAAATTAGTCTATAGA -AATTAGTCAGTTTTCTCGAAACAAATAAAAACTACAGAAAACTCGGCCAC -CGATATTTTTTTTTTTCGCGGCCACGATTGACGTCATACCTCCCGAAATA -ATTCCGGCGACAATGAAGACAGGTTTATGCGGCAAATGTTGAAAAGAAAT -GGAAAATGGAATCGAGGCGGCAAGACTTCCAATAGCCACACACGATTGAA -GAAAATTCGACTCTGATTTGGTATAGTTCACTGAAAAAATCAACTATTTT -GGCGGCCGCCAATGGAAAAACTCGGCCACCGAATTAAAAAAAAAACCTTT -TGAAGTTGAAGTACTATTATCATCTTGCATACAAATTTTTGTAAAATTAT -AAGTATTCATATTTGAAAGAATCGAGGTCAAACACAGTGTGGCACATATT -AAAATCTGCAAAAAAATCGTGAAAATTCAATTTTCCGGGGGTTTTGAGTT -CAAAAAGTACCAGAAATCGGACAGGAACCGGCGAGTTGACCATGGTGCAT -CAGAAACCGGAATTTTAAATAAGTAAAAAAATTTATGATGCTCGTGGTGA -TAACGAAAAGTGCAGTGATCAATTTAAGGGAAATACTGCTGGGGGATTAA -ACGTTGACACTGTCAACTTGATAGTGTTAATTTGATCAATGCTTTGTACT -TGTTTTTTGCAGGAAAAATTCTTTGAAAATTGCAAGACTATAGTATAGTC -TGAAAATTTGATGAAATCTAAAACTTTAATAAATACCGTTAATTATCATT -ATTTTTATGAAATTTTAATATAATCTACTTAAAATTTAATTTTCTAGGCA -TCTGTGAGCTTAAATTTTCGATTATCCCTCGCCAAATTAAAGATTTGCAG -ACTTTTAAGCTTATAAGCTTATTTCAGTGAGAGAGAGCATTGTGAGAAGA -GAAACGCAGACGAGGCTGGCGCGTTTCTCGTGCTCTGACGCGAGTCTCGA -TTTGCTTGCGCATTTCTCGTGCGCGCGACGTTCATTTTATTTTTCCGATT -TTTTTTCAGTTTTTCTGAACTTTTCTTCTTGAATTTGTGATTTTTTATTT -ATTTTTCACGTCTTGTTGCAAAATAACTGATTTTTCACACAAAATATTCG -AATTTTCAGGTCGGCAACATGGGATTCTTGTGGAAAACTGCAAAACTCGG -AATTAAAGTTGGACTCGTCGCCGGCGCCGTCAAACTGTCAATCGATAACG -ATATTTGGTCGACTAACAATGTTAAAGTATTAGTTTTCCCCCGTTTTTCC -ACGAAAATTTTCATTTTCAGGGCAGCGAACTGTATCAAAAGCTTAAAAAG -TACATTCTTCCCGGCACCGTCGTCTTTCCAGAGCAGGTTTTATCGATTTT -TTCTCTGAAAATGCAATTTTTTTCTTATTTTCAGCTCCCAACAGTCGAAG -ATGTGCAGCTGAAGGCCGGTGGAAAGTGGAACAGTGCTGTTGACTCGGTA -GGCTGCATTTTTGAGAGGAAACACGGAAAAATTGCTGCGAAAGTTGGAAA -AAAGTCCTGGAAAATGGAGATTTGGCGCCGAACGTTCAAGAAATTCCATA -ATTTCAAAAATCTATCTGAAAAATTGAAAAATATAAATTTTCAGTCATTT -TTAGTCAAATTTCAGAGCTAAACGTCGAAAAAAGTGCCTAAAACTAGGAA -AAATATGACAAAAAGACACAAATTTTGGAGAAAATTGCTGAAAATAATGC -AAAACACTTTTTTTCACAAAAAGCGAAATTCAAAAAAAATTCCACGTCAA -AAATTAACCAAATGCAAGTACGCTCCATCGCACTTTTTTCCAATTTCTGA -CTCGAAAAGTCTTAAACTTCTGGTTTTGTAGGAAAGATAATGCAAAACGC -AATTTTTAGTCCAAAATTCAGAGAAAATTCTGAAATTGTTTTTAAAAAAA -ATGCAAGCACACTCCATGGCACTTTTTTTTCAAAATTTCGCGTAGAAAAT -TACAGACATTAGCAAAATTCCGACGATTTCGCTGCGAGACCAGAAATATT -GTAGGAAATTCAAACATTATCCGAAAATAATGCAAACGCGCTCTATCGCA -CTTTTCTCCAAGTTCCCACTCAAAAAGCATAGAAAATACCTGAAATTGCC -GTTTTTTTTCACCGGAATTTCAAATTTACGCGATTTCGCTGCGAGACCCA -AGCTAGTGCAGTGGAGCGCATTTCCAACAATTTCAAACTCAATTTTTTTC -AGGTATTCACCACAATCGAGAACGTCCCATCAAGCGTGAACACAGTGGCC -AATCGACTCATCAATAATAAATAAATTCCCCATAAAAATTATCGATTTAT -CGATTTTCCCCCCGAATCCTCGTGTATTCCTTCGTTAGAATGTACTTTTT -CCCTCCTCATTTTCTAGAAGTATTTGTGTGTGTGCTCTATGAAAAAATTT -GCAATTTTTGACTTTAAACGGACGGTGCATTATATTATTTTATCAGTTCC -CATCGTTGATCAATTTTCTCCACTGATTATCAATTCACTGATAAGCTCAC -ACTGCCTGCCCAACTCAATTCATCGCAACTTCTTCTCCCTGCTTTTTTTT -GCCATGAATTCGACGGTGGCTTCCCGTTTCTCATGGGGACTCATTCTGGC -GTCGATCGATTTTTTGGCGTGCCTACTGTTCGCCTGCCTGCATGATGGAA -CTTTCAAATTCGCGAATTTTACTTCGCAATTTGGCGATTTTTCGTTTTTT -ACGAGGTTCGATTGATTGGTGGCCGAGTTAATTTTAGGCCACGAAAAATG -AAAATTGAAGCCGAGTGTCATTTTCGCTGGAATTCTAATTTTCAGTGTGT -AAAAATATAGAAAACTGCAAAAAATTTTGAATTCCCGCCAAAAACTAACG -TTACGAGACCCAAGTACAGTGGAGCGCAGTTGCAAAAAAAAATTTTTAAT -GATTTTTTGCAACTACGCTCCACAGTCCTTGGGTCTCACAACGTTGAAAC -TAAAATTTTGGAATTTCTCCCATAACTTCTTATAATAACGATATTCGGTG -GTCTCGACACGACATATTTTCATTAAATAAAACGGGTGTGCGCCTTTAAA -GAGTACTGCAGTTTCAAACTTTAGTTGCTAAGCGTATTTTCAACAAAGCA -ACGAAAATTTGAACTTACAGTACTCTTTAAAGGCGCACGCCCGTTTTTAT -TAAAACAAAAACTTGTCGTGTCGAGACCGGGCACCGTAGTTTTGACGCTA -AAAATAAGATTTATGAAAAAGCGGGTTTCCAGAAAATTTCACTTTTCAAA -CTTTGATGAAAATTTGAAGTTTCCAGCCAAAATCGCTGCGAGACAGTGGA -ACGAGTGCAGTAGAGCGAAATTGCTGTAAAATTTTGAAAAAAAAGTGAGA -AATTTAAAAACACGGATTTCTGGCCTCCCCCGTAAATTGAAATGGAAGAG -TTTGCCGAACTAGGCCACTTTGGCTCGCCCATATCTGGGGTAGATTTACG -GCGCGTTGCGTGTCGCGACGCGATTTTAGTTGGAAAACTAAATGTTTTTG -CCCGTGTGGAGTACACGACTTTCCCACGTGTTGTCCTCTAGGTGATTGTC -AATGGAGCGCAAAAAATCCAATGAGGAAGGCCAGAACCCCGTGAAAAAGT -ACGCGTTTTTGAAGCAATTCATCGAAAGAAGACAGTAAAAAAAAAGTCAA -AAATTCAAATTTCCAATAGAAAAACCACCAAACCCAACAATTTTTCCAGC -ACAATCGACCTATTCTTGCTGCAATTTTTCCGTTTTGCACTATGGATGGT -GCCGGCGGCAATCCACGTGGCCAACAAGGCGGACACGTTGACAATGTGGA -AAGAGGTCGGTGGCCGCGTGGCCTAGAAATCCCGAAAATTTCAAATTTTC -AGCCAATTTTCTGCTCGGCACTGCTCATCTGCGCGGCGAGCCCCACAAAA -TTGCTCCTCCTCACAGAAAAGCTGAAGCCCGATGAGTTCCTCACTTTCGG -CGACACTGCCTTCCTTGTCTGGAATTTCATTTCCGCGATCATTTTGAACT -CCTCGTGGACAAGATACTTCTCGCGAACTCCGTCTTCATATATAATTCTG -GAGGATGAGGATGTAAGTGCGCTCCGCTGAGAAAATGTTTTGATCACCCC -CACGATTTTCAGCTCGAGGTGGCTCCAAAACAAACGTTTGAGCTTATTTT -CCGCCTGCTCCAATACTGCAAACGTGAATGGCTCTGGCATATTTCCGGAT -TCTCGTGGCTCTTTATTTATTCGATCAGTAAGAGAATATCCATCGGGGGT -TTTTTGTTTCGAATTTAAAAAAAAACACAAGTGGAAGAGTTTTTAAGATT -TCTAGGCCACGCACCCACTCCAAAACCCCAATTTTCAGCCCGTATCTTCG -TTCCCTATTACACGGGACAAGTCATCGCTACCGTGGTCGCCACAAAATCG -TACCCAGCCCTCTCCAACGCTGTCTACATCATGACAATCATCTCGTTGGT -GAGCGCTGTCGCCGCCGGATTCCGTGGAGGATCCTTCGAGTACGCCTACG -CAAGGATCCAGAGGGCAATCCGCTACGATTTGTTCCACGGACTCGTGAAA -CAGGATGTCGCTTTCTATGATGCTCACAAGACCGGAGAGGTGACTTCTCG -TCTGGCTGCTGATTGTCAGACTATGTCGGATACAGTTGCGTTGAATGTTA -ACGTTTTCCTCAGGTAGGTGTGGGTCCGTGACCGAAGTTCCCAGATCACA -TGACCTAATTTTCCCAAATTCTTCCAGAAACTGCGTTATGCTCCTTGGAT -CGATGATCTTCATGATGAAGCTTTCGTGGCGCCTCTCCCTCGTCACATTC -ATCCTCGTCCCAATTATCTTCGTCGCCTCCAAAATCTTCGGAACATATTA -TGATGTAAGTGCGCTCCAGCGAAAACGTTTTTCTAAAGTTTTGACCCCAA -AATTCTGTCAAAGTGCCCCATTTTGGTTTGATCTTCGGAAAATGCGGGAG -AAGAGGCGCAGGCTTTGCAACTGATATCACATGGTTAAGATTGTGCTGAC -GGCACATGGAAAAATTCCCACATTTTTTTGTAGATCAAACCGCACCTGAC -ACCACGTGAAATTTTTGACAAGTCAAGAAAAATTTCGGCAATTGTGAAAT -AATCGAATTACCGCCGCACGTGGTGCCAGGCTGTCCCATTACGGCTTGAT -CTACAAAAAGTGCGGGATGTTTTTGCCCAACAAATTTGACGTCAGCACGT -TCTTAGTCATGCGAAATTAGTTGAGAACTCTGCGTCTCTTCTCCCTCATT -TCTTGTTGTTCTACGTAGATCAAGTCGAAATGACCCACTCTGACATCACG -TGCCGCCTCCCACCCCTGCTCCGACCAGGAATCAGCGGATCTACTTAGTC -TCAACTTGTTTTATTTCAGCTCCTCTCCGAAAGAACACAGGACACAATTG -CCGAGTCCAATGACGTTGCCGAGGAAGTTCTCTCCACAATGCGTACAGTC -CGATCCTTTTCCTGCGAGAACGTCGAAGCCGATCGCTTCTACGGGAAGCT -CACCCACACACTTGATGTCACCAGAACCAAGGCGATCGCCTATATCGGAT -TCCTCTGGGTCTCCGAACTTTTCCAGTCGTTCATCATTGTGTCAGTCCTC -TGGTATGGAGGCCATCTAGTGCTCACCCAGAAAATGAAGGGAGATCTTCT -AGTGTCATTTTTGTTGTATCAAATGCAACTCGGAGATAATCTTCGTCAAA -TGGGAGAAGTCTGGACAGGATTGATGCAATCTGTTGGAGCAAGTCGTAAA -GTGTTCGAGTACATTGATCGAGAGCCCCAGATTCAGCACAACGGGGAGTA -TATGCCGGAGAATGTTGTTGGAAAGATCGAGTTCAGAAATGTTCACTTCA -GTTATCCAACTCGTTCCGATCAGCCAATCCTTAAGGATCTCTCGTTTACC -GTTGAACCAGGAGAGACTGTCGCATTGGTTGGACCATCTGGCTCTGGAAA -GTCTTCGTGCATTTCTTTGCTTGAGAACTTCTACGTCCCGAATGCTGGAC -AGGTTTTGGTGGATGGAGTTCCGTTGGAAGAATTCGAGCATCATTATATT -CATAAGAAGGTACGTTGGCGTCAATTTCGGTTCGACAAATCGTTTGCCGG -TTTGCCGGCAATTTTAATTTTTGGCAAATTGCCGATTTGCCGGAAGTGTT -TAGAGTGCTTTTTTATAAGACGGAAACACTTGAAACTGTGTCCGTTTTTA -AATTTTTGTGCCGGTTGGCGATTTGCATGATATTTTCAATTCCGGCAATT -TGCCGATTTGCCGGAAATTTTCCATTATGGCAAGTTGCCGATATGCCGGA -AATTTTGATTTCGAAAAATTGCCGATATGCCGGAAGTTTCAATTCCGGCA -ACTCGCCGATTTGCCGGAAATTTCAATTCCGGTAATTTGCCGATTGGCAG -GAACAAATCGTTTGCTCGCAGTCTATTCGGATAAAAATTGCGCCAACTGT -TCATCCGTTTGCACAGAAAAAGCATTTCCGCGCTTCGCTATTGGCCAATT -TCAAAATAGTGGGCGTGACCAACCAATCACGGGTGTTTCTTGCTTTCCAT -TGCTGAAACTGTGATTGGTTGGTCACGCCCAATTTTTTGAAATTGACCAA -TTGCGAAGCGATGACTTTGGACGCAAGAAACTTCCGTTTTCTCCTTTAGC -TGTCGATCGAGATTCTCTCCTTTAAAAACACATTGCCGATCTTTTCAAAG -CCCCTGTTTCAAACGACACAGCTAGTAACAACAAAAAACCTCGAAAACTT -CCAATTTTTCAGATCGCCCTTGTCGGCCAGGAGCCCGTCCTGTTCGCTCG -TTCTGTGATGGAAAATGTCAGATACGGTGTCGAAGTGGCGGATACGGTAA -GCACGATTAAATGCACCATGAGCCAAACAAAAAAACTTGTTCAGGAAATC -ATTCGCTCTTGTGAAATGGCGAATGCTCACGGATTCATTATGCAAACCAC -GTTGAAATACGAAACAAACGTCGGAGAGAAGGGAACACAAATGTCCGGTG -GTCAGAAGCAACGTATCGCAATTGCTCGTGCTCTTGTTCGTGAGCCAGCG -ATTCTCTTGTTGGATGAAGCCACGTCGGCGTTGGACACCGAGTCCGAACA -TCTTGTTCAGGAAGCGATTTATAAGAATTTGGATGGAAAGAGTGTCATTT -TGATTGCACATCGATTATCGACTGTTGAGAAGGCTGATAAGATTGTGGTT -ATTAATAAGGTGAGTTGCAATTGCGCTCGACCGAGATTTGGTCGCAAACC -TGACACGGGGTTCTGGCCTTCCTCATTGAAATTTCCGCGCTCTATTGACA -ATCGCCTGCCGGACAACGCGTGGGAAAGTCGTGTACTCCACACGGACAAA -TACATTTAGTTTTACAACTAAAATCGAACCGCGACGCGACACGCAACGCG -CCGTAAATCTACCCCAGATATGACAGAGCCAAAATGGCCTAGTTCAGCAA -AAACTCTTCCATTTCAATTTATGAGGGAATCCAGAAATCCGTGCGCCCGT -GGTGTATTACTCGTGGATAACTGCTCATATTTCAGAATTGAGAATTTCGC -TAAAAACTGTAGAATCGCGTTAAAAATGAGACCTCACCAAAACAGGATTC -ACGAAACAAGAATTCACAGAAATAGTATTCAGTGGGCGCAGTGTGCGCAG -TGTGCGCGGGGGTTGCGAAAGCACACTTTTCGGTCCCGCCCCCTAAATCG -TGTTTTTCGTGAATACTGAATCTGGGAAATTTGAAAACTCGGCGAGTTTT -TCTGTGCGGCACACCCACGTGGTGTCAGGCTGTCTCATGGCCCGACAAAG -GGTACATCAGTGTAAATGCGCTCTACCGAACAGAACGCATAACCCACGTG -GTGCCAGGCTGTCCCATTACGGCTTGATCTACAAAAAGTGCGGGATGTTT -TTGCCCAACAAATTTGACGTCAGCACGTTCTTAGTCATGCGAAATCAGTT -GAGAACTCTATGTCTCTTCTCCCGCATTTTTTGTTGATCTACGTAGATCA -AGCCAAAATGAGACACTCTGACATCACGTGATAACCTGGTTGATACTACG -CGTACGGCTTGCCGGGCCGTGTTTCTCATTGCGGTTTGATCTACAAAAAT -GCGGGAATTTTTCCCCCAGGAAAGTGTGACGTCAGCACACTCAGTCTGCG -TCTCTTCTCCCGCATTTTTCGAAGATCAAACCAAAATGAGACATTTTGAC -ACCAACACACACACACACACACACACACACACACACACACACACACACAC -ACACACACACACACACACACACACACACACACACACACACACATCATATT -TGACGAGCAAAATCGGCCCCATAATTACAGGGAAGAGTCGAACAAATCGG -AAATCACGAAACCCTACTGAAGGACACCAACGGAACCTACGCGAAGCTCG -TTCAACGCCAAATGATGGGAGATCAGAAGCCACGTAAACGGCCGGCGGTC -GCCAGATCGGGACCTCAGCCAGCCGCGTCAATCAACGTGGCAGGACCATC -GCAGGGTAATGCAATGTCCCTGTTGTCGACGTCTTTCAGCCAATCTGCCA -GTAGTGTTACTTCTCATTAATTGTTTTTTCTTCTTGTTAATTGGCAAAAT -ATTATGATGAACTTGTTGGGTTGATTAATTTGTAAGAATAAAGTATACAA -TTATTCATTCATTATTAAAATTTGGGCACATAGAAAAAATTGTGGAAAAA -CTGTAAAAAATCTGCAAAAACGTGGAAATTATTCAAATCAACTCCAGGTA -GTCGTTGTCGACATCGTCTCGCTGCCGCATCGTGTTCTGAAAATCCATTT -TTCACTTTTTTTAAAGCAGATTCCCAGCTAACCGTCGACCGGATCGTGTT -GTTCCATCCGCGGATTTGAGAGTAGGAGCTTACGGTGCCACGTGTCTCGT -TGGCAGCTTGCCAATTATTCACAGACAGCCTGTACGAGTCGCTCAACAGT -GGACCGGCGTTTAGAGTCTGAAAATATATAACGGGAACACTAAAATTTTA -GAATGCGTATTGTGCAACACATTTGACGCGCAAAATATCCAGTAGCGAAA -ACTACAGTAATCCTTTAAGTGACTGCTGCACGTGGTGCCCAGCAGGGCTG -GGAATTTTTTGGTTTTTTGGTTTTTTTGGTTTTTTGGGACCAAAAATCCA -AAAAATCAAAAAAAAAAACAAGTTACCGTGTCTAGTCTCGACTCGAGACT -ATTCTGTATTAAAATACATCGAAACATGTATTTTAACACAGTTGTGACGT -CATAATGTAATACATTTGGCAACATTACTTGAATAACCCCATTAAAAATC -ACCTAAAGCATAAAACATTTTTTGGTTTTTTTTTGGTTTTTTTGGTTTTT -CCAAAATTTCAATTTTTTTGTTTTTTGGTTTTTTTGGTTTTTCAAAAACT -TCAAATTTTTGTTTTTTGGTTTTTTGGTCCAAAATTTTTTTTTGGTCCCA -GCCCTGGTGCCCAGCTGTCCCATTACGGTTTGATCTACAAAAAATGCGGA -AATTTTTTGCCCGAAAACATGTGACGTCAGCACGTTTTTAACCATGCAAA -ATCCATGCTTCTCCCGTATTGTTTGTAGATCAACGTAGATCAAGCCGAAA -TGAGACACACTGTGACCGCGTGCTACTGTAGTGCTCGTGTCGATTTACGG -GATCAATTTTCGAAATGATTATACATATAATTATCGATAGAATAATAAAA -TTAAGCAAAAAAAAATCGGAAAATAATACGAAAAAACAAAGGAAAATTGA -AAATCGCTGTCAAAATTCGAAAAAAATTAATTTCGAAAATTGAGTTCCCG -TAAATCGACACAAGCGCTACAGTAGTCATTTAAAAAGGATTACTGTAGTT -TTCGCTACGAGATATTTTGCGCGTCAAATATGTTGCGCAATACGCATTCT -CAAAATTTTGAACTCTCCGCCTCTCACAGCTGGGTCTCGTTAGGTATGGG -GGCGGATCCTTTTCAATTGGCGGTGGAGCGCGATTGAAAAAATTTTCGAT -TTTTTTTCGATTTTTCAGAAAAAATATCGATTTTTTCCGATTTTTCAGAA -AAAAAATTCGATTTTTTTTTGATTTTTCACAAAAATTATCGATTTTTTAG -ATTTTTCAGAAAAAATATCGATTTTTTTTTCAGATTTTCAGAAATTATTT -TGATTTTTTTTTAATGTTTTGTCCCTTTTTCTGAAATTCTACCTCATAAT -GATTGCTTCTTCCACTTCCGCCTCGCTGCCCGTAGTTCAGTGTCGAGTAA -TTCGCATTCGATACTGTGTAAATCGACAGTGGAATAACCGGGTAGATCAT -AATGTAGTACAATGTGGCAAAGTGGATCACTAACTGAAAATTATTGGATT -TTTCTAATAATAAGGTGGGGAAATCCGAAATATGTGAAAAATATTTTTAA -TAAACAAATTTTCCCCTGATTCCGAATATCTATATGAAAAAATTCAAAAA -AAAATTTTCCAGATTTTATATTTAAGCTTGAAATCGCTTGAGCCCGCATC -ACTATTTTCAAATGCTTGCCCAAAGAAATTTGCATTAGAGCGCGCTTGCA -TAGTTTGATTTTCTTCATTCAAATATTGTATTTATTACCGCCAAATTCAA -TTTTTTAACCGGTTTCATTCATTTTTGTCGAAAAAATATATTTTTCAGAA -AAAAACCGGTGAAAAAAAACCAAAATCGACAAAAACTAATGAAGCTGGCT -GATAAAAATTGAATTCGGCGAAAATAAATAAAATATTTAAATGAAGAAAA -TTCTTAGGCGCAAACGAAATTCGCCATTTCAAGCTTAAATATAAAATCAG -GGATTTTTTATTTATTTTTTTTTCACATTGATTTTCGAAATCAGGGAAAA -ATTTGGGGTTAATTATAAATATTTCCCAGATTTCGGTAAGAAAAATATGA -TTATTTTTTTACTAAAAAATAACCCCCACCAGTAAAGCGTAGAAAATTGA -GATGATAAATGCGAAAATGATGAACGCGGAAGAAAAAAAGTCGGGATTCT -TTTGGGCAGTGCTGGAGTAGTTGAAGATCGAGATGATTGTAGAATAGTAG -GACAGGAATGAAACAATCATCTGTAATTTATTTTTTTAAAGCTTCCAGGT -CAATACACGTGGTGTCAGAGTGTCTCATTTCGGTTTGATCTACTGTGTAG -ATCTACAAAAAATGCGGGAGAAGAGACGCAGAGTTCTCAACTGATTTCGC -ATGGTTAAGAACGTGCTGACGTCACATTTTACTGGGAGAAAAATTTCCGC -ATTTTTTGTAGATCAAGCTGTGATGGGACAGCCTGGCACCATGTGGGTGC -CGAGGGTATTGCTTTTTGGTATTTTTTGGAATTTCGAAAAAAACTTTCCG -ATTTTTTTGAAAATAGCTCTTTTTATAGAAGAAAATAGTTTTTTCTCATC -AACACAAATTTTAGAACAATTTTTTCGATTATCCGGAAAATTGAAAACTT -TCGTTTTTCTATGTTCCATTTTCGATTTTATAAATTTGGGAAAACCTAAA -ATTTCGATTTTTTTTGAAAAAAAAACGAGTATTCAATAATTTATATATTA -TAGGCATTCTTTTTCTCTAATTTCTTCTGAAAAACATTAAAAAAAAATTT -TTTTTTTTTTAAACCAATTTTCAGTAATTTTTTTCTGTAAAAAATACGAT -TTTTTTCCAATAAATTTCTAGTTTTTTCTCTCTTTTCGTACATTTGGACT -GTTTCTAATTTTTGCTTGCTTTTTTCTATATTTTTTCTGCGATTTCCTAT -GAAAAGTACCAAAAAATCGGAAATTGTTTTTTTTTTTCGATTTTTTAGGA -AAAAAAACGATATTTCCTATAAATGTTTTTTTCATAAGTAAATACTTTTC -TCCTTTTCCTTTTGATCTACAATATTTCGAATTTATTTTGAAAAAAATTT -TTTAAACGTTTTTTTCTGAAACAAAGACCCAAATTTTCAATAATTCAATA -ATTTTTCTGGATTGTTCAACCGAAATATACACATTTTTCAATAAATTTAT -AGTGTTCTCCTCTATTTTTGTTGATTTTTACTACTATAATTTTTTCAAAA -TTTTCGAAAAAAAAAATTTTTTTTTTGGAAAATTTTAATTTCAATTCGAT -TTAAAAAATATAAATGTTCATATTTTTTCATCGAAATATATATTTTTTGA -TTTTTCAACCTTTAAATTGTTTCATTTTCTCTGAAAAAATCGGAAAAATC -AACAGAAAAATCGAATTTTTTAAAAATATTTTCCGATTCCGACCGTAATT -TTTATGAAAAAAAATCGGTTTTCTCGTTATTTTCTACAACAAAACCTCAA -AAAACATGCTGGGCAACGTCAAAATCGCTCGATATCGAATCTTCAGCTCA -GTCTCATGTTTCACCAAATACACCGCATACAGAAACATCGTGCAGCTGAT -GAAGAAGAAAATGAGCAGATATGCACACTTTTCCACGAAAAATTCGCCCG -AAATCATGAAACGTGGCAAATTGAGCACAATTCGATGGAGCCAATAGCAG -GTCGATGAGCTGCAGCGGAAGCTTTCATTGGGATCTGTGCAGTACGTTGG -AACCGATAAATGTTCCTGCATTGATCGGATACAGTAGACGAGCAGGCAAA -TGTATTTTACAAGTGAGATATTCTGAAAATTTTTGAATTTTTTTTCCGAA -TTTAAAATTTTAGTTTCTCGATTGTTTTGAAGTAAAAAAATTGATTTTTT -AGAAAATTATATGTTTTGTTTAATTTATTTAAAAATCTTTAAAGGTGGAG -TAGCGCTAGTGGGGAAATTGCTTTAAAACATGCCTATGATACCACAATGA -CCGAATATCATGATAAAAAAATTCAAAAAAATTTTCTAAATTTTATAGGT -TTTTTTTTGAAAATTGAAAAATCTCAGTTTTTGCCTAATTCCAATTTGAA -TTACCGCTAATTGGATTTGTTCGGTGGAGCGCGCTTGCACGTTTTTAAAT -TTTTTTATTTTATTTTATGTTATTTTCCACCGATTTTTAATGTTTTCGGT -GTATTTTTGCTCGAATTTTAGAGAAAAAGTCAAGATAAATGCAAATTTTC -AATTAAAAAGCACGCTTACAGGCGTAAAAATGACAAAGTACCGATTTTAA -ACGATTTCCAACCTGAATTAATTAATTTCACTGATTTACGCCTGTAATCG -TCTTTTTTAATTGAAAATTTGCATTTATCTTGGCTTTTTCTCTAAAATTC -GAGCAAAAATACACCGAAAACATTAAAAATCGGTGGAAAATAACAAAAAA -TAAAATAAATAAATTTAAAAACGTGCAAGCGCGCTCCATCGAACAAATCC -AATTGGCGGTAATTCAAATAGTAATTAACAAAAACTGAGATTTTTTTCAA -TTTTCAAAAAAATCGTATAAAATTTAGAAAATTTTTAAAAAATTTTTTTA -TCATGATATTCGGTCATTGTGGTACCGTGTTTTAAAGCAATTTCCCCACT -AGCGCTACTCCACCTTTAAAGTGCTAATGTAAACTTTTTGTACACGTGGT -GTCAGAAAGTCCCATTTCGGTTTGATCTACAAAAAATGCGGGAGAAGAGA -CGCAGATTTCTCAACTGATTTCGCATGGTTAAGAACGTGCTGACGTCACA -TTTTTTTGGGAGAAAAATTCCCGCATTTTTTGTAGATCAAACCGTAATGG -GACAGCCTGGCACCACGTGTTTGTACAATTACACATTATCCTGGAACTTT -CCAGAAAATTTGAATTTCCCGCCAAAACTTATGGGTCTCATCACGATGAG -TCACTAACCTCAAACCGATATATTTTCTAAAAACAAAAACTCAAATTTTC -TCAAACTACAGTAATCCTACAGTAATCCTACAGTACCCCTACAGTACTAC -TACAGTACCTTGGCATTGTCCCCCACCAATATACAACCCAATATACCTTC -AAAAAACAAACACGTAATTTTTCCCAAACTACAGTAATCCTACAGTACTC -CCACAGTACCCCTGCAGTACTACTACAGTACCTTTTTAGAACATTTTTCT -GTTTTTCGATTTTTTCGCAAAAAAAATTCAGTTTTTTCAGCAAAAAAATT -GATTTAAAAATATTTCAAGTTACTTTTTAAAAGCTTTTCAAAAGTTTTTC -AATCCGTAAAAATAAAATTTTACGAATTCTTGTATTTTTTAAATTATCTG -AAATTTTTTTTTCTCAAAAAAAAAACTTTTTTTTTCAAGTTTTCAATTAA -TTTCGGCAAATTTCAAAAATTTTAGGTTTAAAAAAATTCAATTTTTATGC -TTAACATTTTATCGACATAAAAATCATTAACAACTACGAACAATTTGTGG -AAAACGTTTTTGGCAGTGGAGCGCACTTGCGCCTCGTATTCAAAAAGCCA -CACAAAATGGTGAAATATTCCCAAAAATCAAATAATTGTTTCGCTACGAG -ACCCAAAATACCGCAAAATAGTAATTTTTACCATAGTAATTTTCAAAAGT -GGCACGTAGACCTGATGAAACGTGTCGTTCACCTCCTCCGAGCTTCTGCC -ACGTGAGCTGGTGCTCCGGCATGGCTGATACATTTGTGAAGTTCGCTAAA -ACAGAAAAATATTATAAATAAGCGGAAAATTTCGTGGTCTCGACACGACA -AAAAATAATAAAAATTATTCGTGGTGAGACCCGAGTTGTTTTGGAGCAAA -ATTCTCAAAATTGGGGTATCACGTGGTGTCAGAGAGTCCCATTTCGGTTT -GATCTACAAAAAATGCGGGAGAAGAGATGCAGAGTTTGCTGACGTCACAT -TAAAAAAAAATTCCCGCATTTTTTGTAGATCAAACCATAATAGGACAGCC -TGGCACCACGTGCGGGGATTAAAACCCGCGCCGCACAGAAAAAAGGCGGA -GTGTTATTTCGCAACACCGCGGCACGGTTTTTTGTTGATCTTTTTCAATA -GTCTTGATATTACTTGCGATTTTTGCAAATTCAAAAAATCAACAATAAAC -CGACCGTGCCGCAGGGTTGCAAACTCCGCCTCTTTTTCTGTGCGATGCTG -ATTTTTTGCGAAATTCACGAATCAAAAAGCACACGTGGTGTCAGTGTCTC -TCATTTCGGCTTGATCTACGTAGATCTACAAAAAATGCGGGAGAAGAGAC -GCAGAGGTCTCAACTGATTTCGCATGGCGCCACACATTTTTGGACAAAAA -ATTCCCGCATTTTTTGTAGATCAAACCATAATGGGACAGCCTGGCGGGGA -TTAGAAACCGCGCCGCACAGAAAAAAGGCGGACCGTAGTTTCGCAACACC -GCGGAACGGTTTTTGATATTACTTGCGATTTTTGCAAATTCAAAAAATCA -ACAAAAAACCGTGCCGCAGGGTTGCGAATTTACGCTCCGCCTCTTTTTCT -GTGCGATGCTGCTTTTTTTGCGAAATTCACGAAAAAAAAAAAGAAAATAA -AAGTACATTTACCGATAAAAGTGACGATAGACCGCCGATATACATGGAGA -GAATAGAGAGAGAAATGTGAAGTTTATTAGAAAACAATTTTGTAAAATTA -TGATGATGATGAAGATTTGCGGAATCTGGTAATCGGTTTTAATTGCCTTT -TCTATTATATTATATTAATCACTTGATGATGTACGGCTTTGCGCTTCCTC -GTCCACGGTCTCCAGATGACGGAATCCACGTGGCGATACTGATCGATTGT -GTTTTGGAGTGGTGGTGCTGCTGGTGCTGGTGGAGGGAATTGAGGTGGTT -GCAGTGGATATTACGCTGAAAAATTGAAAGGATTGGTGGAGGAAATGAGA -GAAATTTGAGAGCATAAATTTTTAAAAATCGAAAAAAAATTTTTTTTTGC -TATTTTTGGGCAGAAAATGGCGAAAACGGTGTTTTTTTGGGTAAAAAATA -ATAAAAATTTACAATTTTTTTTGACAGAAAAATGCGGAAAAGCTGTTTTT -AGGGTTGAAAAATCAAAAAAAAAATTTTTTTTTGCTATTTTTGGGCAGAA -AATGGCGAAAAACGGTTTTTTCAAGTTTAAAACATCAAAACAATTTTTTT -GCAATTTTTTTACAGAAAAATGAGGATAAGCGGTTTTAAAGGTTTAAAAA -ATTTTTTAAAATTTTTTTTGCGAATGGAAATTTTCTGAAAAATCGTGCAA -ATGCCTAATTTGTGCAAAAATCTTATCTGGTCAATGATTTTTAAGAGAAA -ACACCGGTTTTAGAAGGGAAAAAGGCAAAAAACTGGATTTCCAGTGAATT -TTATACTAAAAATGGAAAAAATTCAGAAATTTTTTAAGGAAAAATCAGAA -TTTTCGCAATTTCTACACGAAATATATAGAAATTGAGGAGAACCTCGGAT -TTTTTGCGGAGTTTAAACAATAATTTTTCGGCTAAAATTAACGATTTTCA -GAGAAAAAACTTAAAAAAAACAGAATTTCAGTGAATTTTACACGAAAAAC -GTAGCAAAAAGAGGTTTTTAGGGAATTTCCAAGTCAAATTTCCGAAATTC -TTGCGATTTCAACCCTGAAAAATAGCGAAATTGAGGAAAATCTCGGATTT -TTGCAGATAAATAATATTTTTTCCAATGATTTCCGTCTCCAAAACACAGA -ATAATTTACCAATTCGACGATGGTGAGGAGGGAGAGCCCAGCTCGTTGGT -GACAGCCGTGAGATCCGAGAACAAATTGACGCTGGCTGAAAAAATGGAAT -AAACGCTAAATTGATGATTTCCGCTATTAAAGTGCATATAGAAATACGAA -AAAGCAAAAAAAAAAATTTTTTTTAACCTTTTCCCTGGAATCGAAGAGCA -GTTTGCTTGCGGATTGGACGTCGAAAAGGGCCTAAAATTCTCATTTTTCG -GCCTGAAATTCCTCGAAAAACCCACTATTATTGGTAGTCGGAGATGGCTG -ATCGCCTCGTCGCTGGTAATATAGCACGCCTAGCCAGAATCCGTAGAGAA -AATAAATATAGACTGCCCACACTAGGATGATGGGAAGAAACGACAATCGG -CAGGCGTCTGGAGTGAAGAAATCAAGATTTTTCAGATTAAAAATTAAAAA -TCTTTAAAGGTGGACTACACCCTTGTTGGGAAATGGCTTTCAAACATGCC -TATGGTACCACAATGACCAAATATCATGATTAAAAAATTCAAAAAATTTT -TCTAGATTTTATATGATTTTTTGAAAATCGAAAAAATCTCAGTTTTTGCC -TAATTCCTATTTGAATTACCGCCAATTGGATTTGTTCGATGGAGCGCGCT -TGCACGTTTTTAAATTTATTTATTTTATTTATTGTTATTTTCCACCGATT -TTCAATGTTTTCGGTGTATTTTTGCTTGAATTTTAGAGAAAAAGTTAAAA -TAAATGCAAATTTCCGATTAAAAAATCACTGAAAATGCGTAAAACTGAAA -AATATGCTAGTTTCAGGTTTGTTGTCGTCGGAACTCATTATTTTACAGTT -TTACGTATTTTTCACATTTTTAAACACTTTTTAGCAAACATTCTGCATTA -ATCTTGCTTTTTTACTTCTCTTTCCGATAAAAATACACAACTAATGAAGA -AAATCAGTGACATAATAATAATAATAATAATAATAATAATAATAATAATT -TATTACGCTCGCTGGGAGACGTGAAGGAATACAGAATACAAAAGTTATCA -TTGTTCGCTTGAACTAGAATTGGTGCAGTCGGGCAATCGTTTCCATTCCA -TTAAAATGTTGTCCTTGTCCTTGCGTTGTCCTTGCGTAGACTCCCCCATA -GTGGGCGAGCGATTCCCGAGTGAAAATAATCACGGAATGAAAAAATAGAA -GAAAAATAGAATAAATTAATAAAAAAAATAATGCAAGCGCGCTCCAACGA -ACGAGTTCAATTGGCGGTAATTCAAATAGGAATTAGGCAAAAACTTTTTC -AGATTTTTTCAATTTTCAAAAAATCATATAAAATTTATAAATTTTTTTTG -AAGTTTTTTAACGTGATATTTGGTCATTGTGGTACCATAGGCGTGTTTTA -AAGCAATTTCCCCACAGGGTGTAGTCCACATTTAAAAATTAAAAATTAAA -AATTCTACCTAACAAAATCGAAAATTTCAGATTCTCCTTGATTAAAAGCT -TTATTATTGAGTAAAGAGTCCGCAGCGTCCACACGGAGAGCGGGTACAAG -ATGGAAATCTGAAAATATTTAGGATTTTCAAGGGAAAATATCGATTTTTT -TTAGCAAAATACCACAGAAATTGCGGATGGAATGAGTAGAAGAGCCGGGT -TGACTTTCCGGGGAAAGTTTCGACGTGTGATGCTCGTCTCGGAGAGCCTC -ATTCCCAAGAATCCGGTTGCGATGCTGAAGAAAATCGATGGAAAAAGTCT -AAAATATCCCCTGAAACCCTACCTAAAAATCAGAAAATACGAGAAAATAT -TGATTAAATTCCGAGCCGGCACATAATTCGGGCGGATCAGCACTCCATTG -AAGTTTCGAAACGTTTCGCCGTTCCACTGAAGTCCATCGAAGCCGGGAAC -GGATGGCGGCTCGAAATGCTCGTCGACACTCATTTGACTGGCCCTGTAGA -GCCCGATGATGGCAATGGCGAGCATTCCCACTTCCACATGGAATATCAGG -CTCTGAAAATTAAAATTTAGCTTTTAGACGGAAAAAATCGATTACTTTGA -CATGAACTTGATCGAAAAGCCAGCGATACGGGTATTTTCGGTGCAGGCGG -CCTGATTCCGGACGTGCTCCTCGAGATATATTGGAATTTGTCGAGCGGAT -ACTAATATCTGCCATTTTTTCGCTGAAAAATCAGAAAAAATAAGTTTTAA -AACAGAATTTTAATGGAAAAATAAACGGAAAAATTCGAAACTTTTTTTTC -CGCCATTGAACACCAATGTGCCTTTAAGGTACGGTAGCTCTTCGTGGTGA -GACCACTGCGCCGCGCATCTGATTTCTCGTGGGAAATTTGTTTCGAATCC -TACGTTTTTTACAGATTTTTCTTTTTTTTCGTTTCGCTCATCATTTTTTT -GTTGCAAAAAATCCAATTTTCAGACAAAAATGTCAGAACGCCAATCCAAA -TATTTTGACTATCAAGGTATCGTCATTTCCTCCACTGGACAAGATAACCA -AGATTCGGAGACGGACCTCGTTTATCTCATTCAAGCTCATGTACGTGAAT -TCCCTCCGTTTTCATATTTAAAATAATAAGCTCGTTTTCAGGGAAAAGCG -GCCCCGAAGAACATCATGTACGGTGTCTCCAAGTGCGCATTTGTTCCAAC -AAACTTGGAGAGGAATTTCGATAATATCGAAGAGGCAAAAAATCTTGAGT -CAGTATTTATTTGATTTGAGCCCATTTTTAATCTGTTAACACTTGAATTT -TTAGACGTCGATCCAAAATCCCGCTAAAGTTCGGTGAAGTCATCCTATGG -AACGAATCGGACTGTGATCACGATAAGAGGATAATCCTTCATATCAAACG -AGAAAAACCAATTTATGAAGCGTCTTCCAGCAGAAATGGACTTATTTTGA -AAGTCGGTGGCGTCATCCAGCCCACCTCAACGACCTCGTTCTGGACGCCA -TTATGCACCGTCACCATGCGTATGTTTCTTCTTGATTTTCGTCTCTCTAA -CCATATATTTATTTCAGCAGAGACAGAGGCGACCCGTGCGGAGCCAGACG -TTTGGCTATACGCCTGGATTCGATTCGAAACTACCATGAAGAGTGGTCTA -GATCCTTTCAATATGACTGCAACATTCGAATCGTTTGACAGTTGCGATCC -ATCCGACCAAGCACGCGTCTGTGAAGCGGTATTTGCTTTTTAAAAATTTT -TTACGGGATTTTGAACAAATAACTTTCAGCCATGGAACGCAGGCTCTCCT -GACTCTAAATTCGGTGTTTGGCGCCCGGATCCAAAGCCTGCTGATAGCGA -CGACGAAATTGATATCGAGCCGAGAGAAGGCTGGCACTTGCCAGAAGACA -AATGGGCCGAGGTTAAGGTTGCTTTGTGGATTCTCGTTGACAATTTGATT -TTGCAGGTCATCAAGATGCAGCTTGGCCTGTATGTCGGCGAACGCCTACT -GATTTGCAAAGAACTCTCGCAGTTCGACTTTATTATCCCACTGCAGAAGC -CATTTTCCCGAGGAACGGACAAGACTTTGATCTACCCAGCCGTCGGAGAA -TACTTTCATTTCAGTGCTATTTGGTCGATGCAGCACAACGGTTTTCTGAT -CTATGAGCTTCAGCCAGTTCCACTTCTCAGACAGCATGTAACCTCTGTCA -ACGGAAATGTAAGTTATAATATTGATTTTTTTGTCCAGAACATAATTTTT -ATTTCAGCTCCTTACCCGCGTCGTTCCTGCCAGTATCAGAGGTCTCTTCG -TTGACAAGGAGGGCACTCTTGGATTGATTGATGACCCACACCATCTTCTT -TCATTCTTCGAGTTTCATCCAGCTGGTTATGAATTCTTGAAGGCTATGGT -AATCATGAGTGGGTCTTATTTTGAAACAAACGCTTTCAATTTTCAGGCCG -AAGTTCGTGCTGTTCGAACTTCAGAAAACAAATCTGTCCGTTACCGCATT -GTTCGTACATCGGGAATGTCCATTTTTGAAAACTGGCTTCGTGATACTCA -GGTCTCTAAAGTTAAATTAAACTCGTCCTTTTCACCCCTGAATTTTTCAG -TTCGTTGTTGGTCCAGTCAAAGGAATTCGAATCAATGAAGACACTGTCAT -TTGTGCCAAACATCCGAATGTCTACTTCAAAATCCCCAATAACTTGAAGG -AAGGAATCCCCATTGGCGGAGGAGTTCAATTCGTTGGAAAGCGACAAGCT -GGAGTCGACAGTGAAATTATGATCACCGAATGTTCTCCATGTCCAGCGTT -CACTTGTAAAAATTACTCGGTCTCTGGTGATACGGTTAGTCTTCAATTAT -TTAATAGTTTTTATTCTATGAGGAAAATATTCAGCGCTTGTTCCAAGTGT -ACTTGAAGCCAAATTGCGATCATGAGCAGTTGGCGGAGAGTGATTCGATG -GGATTTGTGGATTTCAGAGAGTTGGAGACTCCATGTAGAGGAAAGTGAGT -GTGTCAGGATTTGTAAAAATAATTGTAACTGAATTTTAAGGTTCCTGGCA -TGGGTCCGTGAATCCATTACTGTCAATGATTGTCGCCGTGCTGCTACCAT -CATGGAAGTATGCTCGACAGCCATCTGTCCTCCGTTGATTGCAATGAGCG -CGAATTCGAGCAGAGCAACATCGGCCAGAACTACGCCAGCTGGAAGTTCC -ATTGGATCCAGATCATCAATTCAATCAAGAGCATCTGCAGCTACTTCAGT -GAGCTCAAACGTAAGTTTATTTTTAAGGTTGGAAGATGATAAAAACAAGT -TTTTCAGCGATTCGTTGGCCCTTCAAGCCGCAGAACTCCATCTGGTACTC -CACAAAGCTCAACATCTTCCAGGGTCTAATTAAATATATACGCATCCCGT -TTTCCCCCGTATTTGTGTTTCAAATGTTCTGCTCATTTTTAATCTACCCG -TTATCCAACCAAACATTTATTTATTTAAACTTCAAGTTCCACCACCATCC -CATTCCGCACAACTTGTCTCTCGTAATTTTCTCGTGCTCTAATGAAGTTG -TGGTAGGTTATTCTAGTGAATACACCCATGTTAAGCAGCGAATACATCCA -GAAAAGTCCCAACAAGCCGGCAGCGAGATACTCCCCCCAAAATGATGGTT -GATCGGTACATCCAAGATAGGGTAGCATCGCGATAGACGTGAGCAAGTTC -GTTATGCACTTGAAAAACTGAAATTTCAGAAAAGATTAGGTGTATCAGAA -GGTTAAAAACAAACAAATGACATATAGATGAACGAAGCCAGTGATGGAAT -CGGATTCCGAATACGAGAAGCCATTCCCGGAGATACTGTGATAAGAATCT -GTGTGATCGAGAACACAATGAGCACACCCACCGGGAACATGAATTCCATG -GAAACACGGAGGCAAAGGTCACAGTACTGCAAAAAATGCGAAATTTTGGC -GATTTTTGCTCTAAAAAATGCACTGGCCGGGTCTCACCACGACAAATTTT -TGTTGTCAGTTGAATGCCAATAGAGTGTGCGCCTTTAAGGAGTACTGTAG -TTTCAAACTTTTGTTGCAATCGATTTTACAGTTTTCCCGAGAAACAAAAG -TTTGAAACTACAGTACTCCTTAAAGGCGCACACACTCTTTCCGCATTCAA -CTTAACAAAAGGTTGTCGTGTCGAGACCCGGCCACTGCATTTTTGTAGCA -AAAAAAATTTGAAATTTTCAAGTCTGGATAATAATATATAATATTTTTAC -CTCAACTATGGGAATTTGCATTTCCAAACTATCCAAACAATCGCTGAACC -CGAAAGCATCACAAATAATCGATCGATATTGTCGCGGAATGTCACGTATC -GATTGGTAGATCATGAATATGTTGCCAAGTAACGCGAAAATCTTGAAAAA -TGGAGGATTTTGCTTTTAAAAAATCCAAAAAAAAAAACTTAAATTCGACA -ATTTCCTGTTTGAATTCCCTCCAAAATGAGAACTGCAGGACCCATCAGCG -ATTTGAGTGGGCGGAGTCCGAGGGCGCTGATTGGTCGTGCAGTTCTAATT -TTGGAGGGAATTCAGCCAAATTTGAAAAATCTCGTTTTTTTTGCAATTCT -TTTGTGGTATTTTCGACATGGGGTTCTTTCTGGCTTTCCTCATCAAGGGT -GTCAATGTCCCGTAAAAATTTCGAAAACGGGACAACGGGACGTCCCGTTT -TTTTGAAAACACTCAAAAAACGGGACAAACTGGGCGGTTAAAAAAAAGAG -TGCATAGTTGGCGTAAATTTTAGTGTATTCGAGGCAAATTATAAAAAAAA -CTGCATGTAAGTCATTAATCTGCATGAATTTAAGTCTTGAAACAAAACTC -AAAAACAGAACTTTAAAATGTGCAACAAAATCATGAGAGAAATTGTCCCG -TTCCCGTGATAATTTTGAAAACGGGACAGCGGGACGTCCCGTTCCCGTGA -AAACACTCAAAAAACGGGACAACGGGACAAACGGGACACGGGACTTGACA -CCCTTGTTCCTCATTAAAATTTTCGCGCTCCATTGATAATCGCCCTGGGA -AAGTCGTGTACTCCACACGGACAAATCACATTTAGTTTTACAACTAAAAT -CGAGAAAATTGGGAGAGTTTTTGCCGCGAACCTGGCCTAGTTCGCGGCAA -AAACTCTTCCATTTCAAAATATGGGCGAAGCCAGAAATCCGTGATATTTT -CAGCATATTTTTTTGATTCGAAGCAAATCTCAGTTTCTCACCACAACGAA -CAACTTCACATTCGGATGCCGCCCGTCTTCGAAACGTGGAATTCCAACTG -AATTCACCGATTCGACACTTGAACCGGGTGACATCATCATATTTTCAACC -AGCTCATACTCGAACTCCGGAATATCCGGCACCACATCAATCGGTGCTGG -TTCTGGCGGTGGCGGCTCAACTGACACTTTTCCTTGATCTAAAATTTGTT -TTTTTCTGAAAATTTGTCACTGTACCAAATCAAAAAAAAAACCTTACCAG -AACTCATAATTTTTGGATTTTAATTTGTAAATTGCAAAACAGAAAATGAA -TTGGAATTTTTTCACTTTTTATTTATGGGAGGGGGAAATTCTTTGTTGTT -GCAATAAAGTAAAACAATCACAGTAAATGCCAGTACAATAGTTTTTCACG -TGTAATATATTAACCAATTACTATATTCAATAACTCTGTCGTCTAAATAC -ATAGGGTAGGGGGGAAGGTGAGGGAAAATGGAAATAATAAAGTGAAATGT -TTTGTGTACTTGCGATAAAACAATCAATAAATGGGAACAAGCCGATGATA -AACTGATAAACCGAACGTGAATATCGAGAGAGGGAGGAAGAAAGCGTATA -CCCGTTAATGAAATCAAGTTAATGGAATTATTTGGATTGAAACAAAACAA -CGAAAATATCAATGTTTGAGCATAAGGAATGAGGGAATGGCACTGGTGGT -GGTGGATAAATGAATCGGGGGGAACGGAATCTATGGAAGTTTCGAATACA -TCGCATCGAGTTGCTTCGAGTAGTGAGCCTTCAGCTTCGGACGCTTGCTC -TTCAACGTTGGCGTGAGAAGATCATTCTCGACGCTGAATTGCTCGGCGGA -GAGACTGATATCGCGCACTTGCTCGAACGAGAAGAGCCCGGCTTTCTTGC -CAACAGCGACCATGTCATCGAGGATCGCCTTTTTGACGGCGTCGTTGTTG -CACAGCTCTTCGAATGTTCCCTTGATTCCTTGGTCGGCCATCGCTGGGAC -GAGAACCTAGAAAAATTGAAAATTACATATATATATATATATATACACGC -TCTCCTCAAAGCCGAATAATTATTAGAGCGCGCTTACTGCGCTTCGCGTT -TCTGCATCCGCGGCATTTTGACTTTACACTGAAAAAAGCAGATATTTCAG -ATTTATCGAATTTTTAGCTTTTAAAATTTTTTTCTGCATTTTTCGAACAA -ACCTTTTGTTAAACAGTGAAAATTGAATTTAAAATGACTAAAATGAACTT -TTTTCGTTCACTGGTTGTGAAATGGTTTGAATTTGAAGAAATCAAAGGGA -TTTTTCTGAATTTTTTAATAATTTTCTATTAAAAATCGGTTTTAAACCAT -TTTTTGACCCTAATGTTAAGTCACAAATGTATTGAAACCGGTTTTTAATA -GAAAATATTTAGAAAATAAGAAAAATCCCGTTGATTTCTTCAAATTCAAA -CCATTTCACAACCAGTGGACGAAAAAAGTTCATTTTAGTCATTTTAAATT -CGATTTTCACAGTTTAACAAAACGTTTGTTCGAAAAATGCAGAAAAAAAA -TTTTAAAAGCTAAAAAATCGATAAATCTGAAATATCTGCTTTTTTCAGTG -GAAAGTCAAAATACCGAGGATGCAGAAATGCGAAGCGCAGCAAGCGCGCT -CTAATAATTATTCGGCTTTGAGGAGAGCGTGATATATATATATTTTTTTT -AATTTTGAAAATATTTAAAACCAAAAAACCAACCTCAGCATCAGGTACAA -CAATAGCAATGAGACACGTCTTCAGTGATTCTCCATGAACAAATGATTGA -GCGACATATTTCGAGCGGACATAGATGTTCTCAATCTTCTCCGGTGCCAC -GTATTCTCCCTGCGAGAGCTTGAAAATGTGCTTCTTGCGATCCACAATTT -TCAGCGTTCCCTCAGGAGTCCATCGTCCAATGTCTCCAGTGTGCAACCAT -CCATCCTCATCGATCGTCTCCTTCGTTTGTTGCTCATTCTTATAGTATCC -CTTGAAGATGATGTGTCCCTTGACACACACCTCGCCGGCTTGATCCTTCG -CGTAATAGTTCAACTCGGGCACGTCGACCAACTTGATCTGACACGATGGG -ATCACCATTCCGACGTGTCCGGCTAGCGAATCTCCTTCCATCGAGACAGT -GCAAGCGGCGACACATTCCGTTTGACCGTAACCCTCGACGACGACACATC -CCATAGCGGCACGAACGAAGGTGAGCACATTCGTCGAAAGTGGAGCCGAT -CCGGTGATCATCAGACGCACACGCCCTCCGAATCCTTCGCGAATCTTTTT -GAATACCAAATTGTCGAAGAATCCGTCATTTCTGATATTGAAGCTGGAAA -AAAAAAGAAGATATTAAATACTATCAAATCATTCAGACCACTCACTTTGC -CATATCTCTGGCCTTGTATGAGATAGCGAAATCAAACAACATCTTCTTCA -AAGTCGACTTGTTCACTTCAGACATCACTTTATCGTAAAGCCGATTCAAG -ACACGTGGCACCACTGGCACCACAGTCGGCTTCAACTCTTTGATATCCTC -GGCCAACACACGTATGTCACCACGATAGAATCCGACTTTCGCGCCGACAC -AGAAGCACACACTCTCGATGACTCTCTCGAGCATGTGAGCCAACGGAAGG -AAGCTGATCATCGAATCGGTCGCCGCGATGCCACTGTGCTTGAAGAAGTC -CATACAGACACCGTCGGCGATCACGTTCGCGTGAGTGAGCATCACACCTT -TCGGTGTTCCAGTCGTTCCTGACGTGTAGCATATGGTCGCAAGATCCTCT -GGTGTTGGTGGAATGTGTGCTGGACGAGTCTTGGCGTTCTTTCCAATCTT -CTCGAGATCCTCGAACGTGAGCACCTCGACTCCGAGCGATGACGCAGTCG -TTTTGAGCTCATCGGTGACTGGTTCCATCACAACAAGTGTGCTCAAACTT -GGGCATTGCTCCTTGAACTTTAAGAGACCTGAAATCAAATTTCCTTTTGT -TTTTAATAATATTCCTTATCAAACTCACCAGTGGCCTTTGAAATATCATC -ACAGACAACAATCTTGATCTCTGCCTGATTCAAAATGAATATCGACGCTT -CTGATCCAAGGGTCTCGTAGATCGGCACAATCACATTCGAATAGTTGTAG -GTGGCGAATTCGGTGATGATCCATTCGGCGCGATTCTTCGAGTAGATCCC -AATGTTCTCCGCGTTGCCAGTCGGAACGCCGAGCTCACGGAACGCGACGG -ACACGTTGTCGGCTCGCTCGAGAATCGTATTGTACGACTCCCACACGTAC -GGGATTGAACCATCCGACTGTTTGACTCGACGTCCGAGCATCGGCCCGTT -GTTCGAGAGACGGGCTCCACGGCGAACACCCTGGTAGAGGGTGCGCGCGT -CTTCGAACAGGAAAGCCTGGAGTTCGTCGTCCTTCAGGTAGGCGCTGATG -CGGGAACCATCCTGGAAATTAACATTTTAGTCGGGGGGTTTTTTTGGAAT -TTTTTTTTCGCTCGTTTTCTATTGTAAACCGAGCCACGACGCGACACGCC -GTAAATCGACAAGCCCAAATGGCCTAATTCGGCAAAATCTTACATTTAAA -AATATGAGGGAAGACAGAACTCCGTGATTGGAGAAAATTAAAGGAGGACT -AACGGTTCGGACGATTTTGAACGTATAGACCCAAAATGAGCTCAAATGAA -TGAATTTCGTAATGAAACTGCTCAAAAATTTTTATGGCGGTTCAAAATGT -TGAAAAAATTACACTGATTTTGGCTAAAATCACGAATTTTCCCATTTTTC -CGTGTCACATCTGTTCGAAGTTGGATTTTTTGGAATTATCGTTTTTTATT -ACATATATTGGTAGTTTATCTCATTTAATTTCGTCGATTAAAGTACATTT -AAAGCCGATAGGTAACCAATTTCGATAATTTTTGGTCACCTATCGGCTTT -AAATGTACTTTAATCGACGAAATTAAATGAGATTAATTACCAATATATGT -AATAAAGGACGATAATTTCAAAAAATCCAATTTCGAACAGATGTGACACG -GAAAAATGAGAAAAATTCGTGATTTTCGCCAAAAACAGTGTAATTTTTTC -AAAATTTTGAACCGCCATAAAAAATTTTTGAAAATTTTTTGAGCAGCTTC -ATTACGAAATTCGTTCATTTGAGCTCATTTTTGGTCTATACGTTCAAAAT -CGTCCGAACCGTTAGTCCTCCTTTAAGTTTAAAAAAAAAACGGCATATTT -TGCCCAGTTTCTCTCCAAAACTCACCGGCAAAATGCGACTCTGATTCATC -GGATCCACCAGTGGCTTGACATTTCCCGAATAGGTGACCCCACTGAACGA -GTAGGATCCCGACGTCGATGACGAGCTCTTCGACAAGTAGTATCCGAGGC -CCATGGTGACTGCGGCGGCGGCTCCGATTTGAACGTACGGTGGAAGGGAA -GAGTTCGAGTTTGGTGCCGAAATGAAATCGACAATACTTCTGTAACAATT -GAAATTATATATAGAGAGGACGGGTGATGATGATGAGTCATCCAGGTTGT -TGTTGTCGCGCGCGCGCGCCCGCACTGTTCCCCACAAAACAAACAACTTA -TTTGAAATTATGAAATCGAAGTTTCTTTGTTATTTTATTTTATTTCACAA -GATGGTTTTCATGTTTTATATACCATTCGCAAAAACAATACCTAGTTTTT -GCTCGTTTGGACTCAGAAATTTTGAGACTTTTCTGAAAAGTTTAATGGCA -GATCAAAATTTCGGAAAAAGGTGAATTTTAGCGAAAATTCGCCGTGGTTT -TTCGAAATTTTGATCTGCCATTAAAGGTGGTGTAGTCGAATTTTTTTATT -GCTTTATTAGACTCAAAATTGTCTGAAAACACCGAATTTCATAATAAAAC -TTAAATGGCCTAAAATTAGCTAAAATTTGAAATTTGACCGACTTGTCAAG -CGGCTGGAAACGTTTTTTTTTTGAAATAACCGTCAAATTTTGAATATACA -GTGCAATTATCTTGCGTTTTCAACTTTATTTAGGTACTTTAAAGTCGATG -AACGGCGAGATTTGTTTTTAATTTTTCACGAAATCTCGCCGTCCATCGAC -TGTAAAATACCTAAATGAAGTTGAAAACGCAAGATAATTGCACAGTATAC -TCAAAATTCGACGGTGTTTTCAAAAAAAAAAAAACTGTTTCCAGCTGCGA -CGTCGGTCAAATTTCAAATTTTAACTAATTTTAGGCCATTTTTTGAGCCG -TCATAACTTTTTTTGAGGAGTTTTCAAGAAGTTTTATTATGAAATTCGGT -GTTTTCAGACAATTTTGAGTCTAATAAAGCAATAAAAAAATTCGACTACA -CCACCTGTAATGGCAGATCAAAATTTCGAAAAACCACGGCGAATTTTCGC -TAAAATTCACTTTTTTTCCGAAATTTTGATCTGCCATTAAACTTTTCGGA -AAAGTCTCAAACATTTTGAGTATAAACGAGCAAAAACTAGTCATTGTTTT -TGCCAATGGTATATAAAACATGAAAACCATCCTGTGAAAAAAAAACAACA -AAAACACTTGAAATTCGTAATTTCAAAGTTCTCCAAAAAAAACATACACA -CACCTCGATTGAGACTGTACCCACGCAGCCGTGTCTGTGATAACCATTCT -GTGTGTTTCTGTGTTTAAGTGGCCTATTTATAGTCTTCTGCCAAAAGACG -AAACCGCTTCTAAAATGAGATTAAATTGAGGTGGAAACGACGACGACGAA -GAGGTGGAAGAAGTGAGGGTGAAAATCGAAAAAACAAAGAAGAGATCAAA -GTTATTCCATCTTTAGAACTTTCTCCACTGCCAGCAATTGATAATAATAA -TAAGATTTTTATGTTGATAACTCTTTCGGTATCAATACAAAAAGGGGTGA -AAACCCGCCTCGACAAGCCTTTCGATCAGGCCATATATTTCTTTATCACA -CTCTCCGCACATTTCGGAACAACTTTGACCTCCCCGGCAAGGGGGCAAAA -GTTTCGAGAAGTTGTGTTGCGCGCGAAGGAGATGGAGAAGATGGAGAAGA -TAGGCAAACACGTACACCTCCTCAAACAGTAGTAGTAGTGATAATTGATT -TGATTAGTGATTCGGGTGGGCAAAACGAGAGAGATAGAAAGAGAAAAAGC -GAAGAGGACAACGAACACGTGTAATCAACCGTGTGCCAAAGTTCTCGCCC -TTTGGACTAATTGCAGTTTTTTTGGAGGAAATTCAATTAACACTGAAAAC -TAGTTCGTTTAAGTGTTTACGCTGAATGGGCCAGGTTTTGAGGGAAAACG -ATTTTCGAAGAACTTTAAATGTGGGGTACCGAAATCTGAAAAATATTTTA -AATTGACTCCAAATTTTCCCCTGACTCCGAATATCGATGCGAAAAAATTC -AAAAAAAATTTTCCTGATTTTATATTTAAGCTTGAAATCGCCGAATTTCA -TTTAGAAATTCGCATTGGAGCGCGCTTGCATCGTTCGATTTTTTTTTCGT -TTATTTTATTTATTTTCGCCGAATTCAATGTTTTTAAAGCCAGTTTCATT -CATTTTTGTCGAGTTCTCATCGAAAATTTTTTTGACAAAAATTAATGAAA -CTGATTAAAAAATTAAATTCGGCGAAAATAAGTAAAATAAACGAAGAAAA -TCAAACGATGCAAGCGCGCTCCAATGCGAATTTCTTTGGGCGCGAAGTTG -AAAAAATGGCCCGGGGCACAAATGAAATTCGGCGATTTCAAGCTTATATA -TAAAATCAGGGAAATTTTTTTGAATTCTTTCGCATCGATATTCGGAACCA -GGGAAAAATTTGGAGTCAATTAAAAATATTTTTCAGGTTTCGGTACCCCG -CCTTTAACGGATTTTTTGGCTTAAAATTGGAAACTCTTGGTATAAAACTT -GTAGAAACACCGAGTAAACTGTACACGTTTTAGACGATAATTCAAAAGTA -TCGAGGGAAGTATCCAGAAGTTGAAAAATTGCGAAAAACAGGTAAAATAA -GGAATTCAACGCGTGAATTTTGCATTTTTAGACTGAAAATAGTGTGGTAT -TTCTTCAAATATAGACGAAAATATCGACTCGCACTGGTTTTCGATCGATA -TTTATAGGTCGAGTTCATTGCTATGCACAACATTCCGGGAAAACACGAGA -TTTGAGGAATTTCTGAGCAACTTCTGAGTAAAGCCAACAAAACATTTTGT -ACAATTTTCTTGTTGGTCTTGCTCAGAAAATTTTCAATCAAAAACCAATT -GGAAATCGATATTTTCTGCTAGTTTTGAAAAAACACATGATTTTTAATCA -AAAATTGTTAAATTCATGCAATTTTCCAAAGTTTTACACGATTTTTTCTC -TGGAATTCACATGCTTTTTAAAGCAAACGGCCGTTTCTCGTTGTTGGCTT -CCACGCGATTCCATAGAAACACTGGGGCACCAGAGAAACCGGGGTCGAAG -CAAATGACCAACAAACAACAAACGGATGTGTGCTTTTTCTTCGTTTTCGT -CTTCACGAGGAACCACCACGCAAAATGGAACTACAACTACGATTGATAAC -GAAAAAAAAAAAGAAGAGATGATGATAGTTTTTGCAGCAATAAAAAGAGT -GATAACAAGATACACTCTATCTCACCCACACCTTTCCGTTCAAAGATAAG -GAAATAAGATTCGGGGGGTTCAAAGTGTTGGAGCCAAAAACGGAAAACGG -AGGGAGCAATTGTTCGTTGAACGAACAATAAAAAACCATCATCTGCGTCT -CAAAAATACACGTGTAAGTGAGCGAGTGAGTGAGTGAGTGCCGGGGAATA -AAACGAGTTATATGACCAACACAACGAGCGACGTTGCTGCTGCGTTTCCT -CACTCTCTCCTAGTGAGCGTGTGTGCGCACCACACTCACATGAGCGCATG -CAAGGGTGTATGCGCAAGTGGTACATCGACTCGGTATGAGAAGGACAGAG -CAGTAGTAAGGAGCACACGTTATGTTGCTCCACTACTCACTGTTGCGTAC -CGTGTAGCCTCTGCGGGCCACCGCGGTGCAAAGTACAGTGGAAGGAGGAG -AGTTGAAAAATTGGTGTTTATTTTACTTTTAAACTCGTTTTCCTCCGGAT -TTTGAAGAGAATTGGTTGACTTTTTGAATTTTAGGCGAAAAGCGCGGGAA -AAATCGAAAAAAGATGTGAAAACGAGTGAATTTTAGGGCAAAAGTGAACC -GACAATTGTTATGAGCAATCGGGCTTCTCGGTCGGAAAACAGATCACAGA -AAAATCGGAAAATCCAGCAAAATACTCGAAAATTATGCAATTTTCTAGAA -TTCCAAGCGAAATTTTCTAGAATTTGAGGCAAAATGATACGGAAACCAAC -GAGAAATCCAGAAAAAAAAACTATTTTCATCGAATTCTAGGTGAAAAGCT -CTGAATTATTCGATTCTCCGTCGGGGTAGACTCAAAAATTATGCAATTTT -ATAGAATTCTAGGCCAAACATCGCAGGATCGCCTACACAATTTCCGGAGA -ACGATGAAAATCGGCAAATCTGAAGCAAATAGGAGTGAAGGAAGAGGCTT -CGGATCAGTTTTTCTGAAGAAAATACAAAACTTTCGCTTTCGCAAAACTT -TCGGGAAAATTCTCAGAAAAGGCGTCAAAAGCTCAAAAAATCGACGTTGC -ACGATTTTCGACGGAAAAATAGAGTAAAATATCCGAATTTCTGCTTTAAA -ACTCGAAAAATTGCCCAAAAATCCGTTTGTTTTCGCCAAATTTCTCCTAT -TTGGGGGTCACAAGGCGAGCGGGAGCCGCCGACGACGAGATGAAGAGCTC -CACAGAGCCCCTGAGCCAACAACACAACACTCACCCAAAAATATTGGAAT -TCTCCGGAAGGAAATCGTCGTACGACGACGGCGGCGGCGACGGTGCCATT -TTTCATGGGGAAAATTAGAACCTTGTTCGAATTTGTGATTTATTATCGAT -TTTCTATGTGCCACGTGTGCCCTATTGCGTGACCCACCTGATTAGTTGCG -CGAGTATTTTGTCAGTGCGGTCGACGATCACCCGAAGAATGGAGAAATTG -TCTGAAAAATGCGAAAATTGGCTATAAAACGACGGAAAAAGAAATAAAAA -CAAGTGAAATGAGGCCGAGAGGCAGGTGAATTGTTTATGCAATTTTAGAA -ATGTGATATTTTGGCGGTGTAGATCGAAAAAAATGCGAAAAACACGAAAA -CAGGTCGAGAAATTCGCAAATTTTCGACGACTAAAATTCAAATGCACAAC -GTTCGCGCGCGCGCCGAAGTACGGTAGGTCCCGCATTTTTGCGCGCGCGA -AATTCAAATTTTAATTTTAATATTTTTTCTTTCTTCTTTTCTTTGATTTT -TTAAGAATATTGTGCAAAAAATTCGTTCATTTTTCGAATAAAATTGTTAA -AAAAGACGAAAAAAAAAAGAAAAAATAAGACAATTTCTCGGTGGCATACA -AATAAATACAAGTTATTGTTCGGGAAAAAAATCACAATTTTACATTAAAT -CCAGGTTTGTAATAAAATCAATTATTATTTTATTTTCTTCCAAATCCGGC -ACATGGATTTGGGCATCCGCTGGTCATGCAGCAGCCACCTCCACTCCCTC -CGAGACACGCCAACGACTCGCCGGTTGAGATGGCGAGAAGCACGAAGCAA -ACGACCATGACCTGGAAGAAAATGTGTGAATGTTAAGGTCTCTTAATATT -CCAATAAAATTATTTGGTTTTTTTTTACCGGTGTTCTTGCCAGAAAAGTG -CAAAAATTAATTAAAACTCTAATCGTGGCGAGACCCATCTTAGAAACGAG -AGTATGCGCCTTTAAAATTGGGCTACCGTAATAATCGAATTTTTGCAATC -TTGCAATTGTTGATTTCCGAAGAGCGTTAACAAGAAAACATTTGATAGAA -ATGACACATGAATTAGGTAAAATTTGGTTTTTTTTTAGATTCTTATAATT -CAGATTTCTATTTTGGACACGGAGTTCTGGCCTTCCTCATTGAATTTTTC -GCGCTCCATTGACAATCGCCTGCCGGACAACGAGTGGGAAAGTTGTGTAC -TCCACACGGACAAATACATTTAGTTTAACAACAAAAATCGAGACGCGACG -CGACACGCAACGCGCCGTAAATCTACCACAGATATGGCCGAGCCATAATG -GCCTAGTTCGGCAAACTCTTCCATTTCAATTTATCGATGTCAGAGTGTCC -CATTTCAGCTTGATCTACCTAGATCTACAAAAAATGCGGGAATAATACGT -AGAGTTCTCAACTGATTTCGCATGGTTAAGTACGTGCTGACGTCACATTT -TTTGGGCTAAAAATTCCCGATTTTTTTGTAGATCAAAAAACTGTGATGGG -ACAACCTGACACCACGTGATTTATGAGGAAAGCCAGAAATCCGTGATTTG -GAGAGCACAACAAAAAAAGAAATTCGGCCACTGATTCGCGGCCACGAGCC -ACTGTGCCTTCTCAAGATATTAGTTAATAATTGACGCTGTGAGACCCACA -GTTAAAGGCGCATGCTCAGCATGACTGGCCAATCTAATAGCATCTACAAT -GATAATTGAAAAAAAAACTCACAGTTTGGCAAAGTTTAGCGACGAGTGAC -ATAATTCTCCGAAAGCTTCAGCTGAACAATTTCAGGGATTACTTGCTGTT -TCCCATCGCTTCACCGTCTTATATAGTGCCATCGCCGATTGGCAGAATGG -GATACACCTGCCCCCAACTGCGCAGTTGAATACGATCCGTGTCTCTCTGC -GTCTAGCGGTTCTCCACGATGTTTCTTTGGCGGCGGTGAAGCCGTGTGTG -TGTGTGTGGCTCCTCCATTCTGATTGAATGTGTAACACTGCGGGCAACCG -ATTGGTTTTGGCGGCGGCGGGAAAACGAATCCGGATATACTACATACACA -AACACACACTCACACACACCGAAGGAACTTTTCAGAGAAACCTGAACTGG -CTTTTTATGATTTAAGTGCTTCTGCTGCCAGCATGATGTGGTGGTTGTGT -GTTGTCAATAGGATTTATGCTAATTCCTGACACATTCAAGAGATGAAACA -TCAAACCGGGTAGGAACTTAGTCCACCCAACACTGTGAGAGATTAATAGA -ACCTTTAAAAGTGGCACTTCTAGGCAGAATTCAATAGAATGGTGGGCGCC -TTGGAGCCTAGTCGACCTGCGATGTGAGTGGCAAGGTTGGCAGAGCTAGG -ATAAGCTTCTGGAACTGTAGGACTGTAACAAGCAAGGATCCCGCTCTGGT -ACTGTAGTGAACTTTGAGATCAAATTAGGTTTTTCAATATTTAACTAGCA -CTGTTTCCGGCCCTGATCTTAGAAAGAAAAGAAAAAAAGGATGTGAACCA -GGCGTGGGCGGCAAACGATTTTTTTCCGGCAAATCGGCAAATCACTAAGT -TGCCGGAATTTAAAATTTCCGGGAAATCGGCAAACTGACACTTTGCCAAT -TTGCCGAACGGCAATTGCCGCCCACACCTGATGTATACATATATATGCTT -TCACTCATGTGGTGCCAGAATGTCTCACTGCGGTTTGATCTACGAAAAAT -GCGGGAATATTTTTCCAGAAAAATTGCGGCGTCAGCACGCTCCTAACCAT -GCAAAATCAGATGAGATGTATGCGTCTCTTCTCCCGCATTTTTCGAAGAT -CACAGCAAAATAGAACTTTCTAACTCCACGTGTCTACTGAGAAAAGAGCC -GAAAGCTTATTTTCCACGTATCAGGGATCGGAATCCCACCTAGCTAGTTC -ATCCTATTGCATCATTGAAGCATCTTCCGGATTCTCCACTTTGTTTGCTT -TTCGAAATCGTTTCAAACTGAAAGCCGCGCTTTCAAGGCCGTCTTCTTCC -GATTTTCCGATCTACCTTTTGTTGATCATCACGTGCCTGGCGATCACAAC -ACTGTTCAACCGGAATATCTGAAGATGTTCCACCAAATGGATCGTTTTTC -TCAGGACGGAAGAATACTAATTTGCAAAAAGTCTGTTCTGTTCTAAAAGT -TCTGAATCTTCTGAAAAAATTTCAGACTTAGATCCTGTCATTACATGGGC -AAGCAGTGGAGTCGGAGATTTTTTATCAAAATATATGGATAGGTAATCAG -GGAGAGACTGGCTCCTTTGTTACAATATATTAGGTTTTGTTCTTTAAAAT -GTTCAAATGAAGCTGAAGAGTTCCGGCTAAAAGTATATGATTTTTCAATG -ATTTTTCAAAAATTTCAAGGTATAACTCTGAAACTAAAATTTAAAAAAGA -AACTAAATTGGATTTTAATGTTAGTTAGTTTATTAACAGAAAGAGCAGTA -TTTTTTGATAATTGTAACCTGAAAACTCTATTTTTCTAGTTTCGTGAAGT -AAAAATGTTTTATTATGTGACATTTATTGAAATTTAATTATAATACACTG -TTAGAAATATTTTATTATCTAAAAAAGTAAATTGGATTATAATGTTAATT -ATTTTACTATCAAAAAGATCAGTATTTTGTGATAGTTTTAACCTAAAAAC -ATTTCTGAAGATCGTTTTTTGTGAGAAAAAATTATTTTAATATGTGTCAT -TTAAAGCAACTTTTAAAAAATTGCGGTTTAGAAATGTTCAGCTATCAAAA -AAAAGTACATTGGATTTTGGTGCCAGTCAATTTATCAACAGAAAAAGTGG -TCCTAAAATAATTTCCAAACTTATTAATGGTGGTAGCATTAAAAAACACT -TTTTTTTGGATTTTTTGAAATGAATAGTGTATTTACAGAGACAATGGTAG -ATCAACCTAAAAGAACAAAAAATTTGCAATTTTTCCAGGTAGGACACTTT -TTTGCTACTCGAATATAACTAACCTAAAATAATTTCCAAAAGTTTCAATG -GTGGTAGCACAAAAAAAAACAATTTTTTTGATTTTTGAAATGAATAGTGT -AGTTACAAAGACGGTGGTACATTGACCTAAAAAAACGAAAAATTTACTAC -TTTTTCAGGTAGGACACTTTTTTGCTACTCGAATATAACTAACCTAAAAT -AATTTCCAAACGTTTTAATGGTGGTAGAATGTAAAATAACTTGTTTTTTT -TTGGTTTTTTGAAATGAATAGTGTAGTTACAGAGACAATGGTACATTGGC -CTGAAAGAACAAAAAATTTGCTATTTTTCCATTTTGACCAAAACTATTGG -TTTTGTCCCCAAAAAATTAGTAAAATGACCCACAATCCAGTTATTTTGCT -GTTTAAGCAGACACACTACACGGAATTATTTTCAGAAACCAGATGTATGT -TAAGATTTTAGTAGTTTCGGTGCTGCAAAAACCATCAAAAAATACCAAAT -TTTTCGGCGTTTGTGAAGCACGGCAATTTTTGAGATTTGCCGCACACCCC -AGGTACAGAGACAATTTTATATCGACGTGAACGAACAAAAAATTTGCTAT -TTTCTCAGGTAGGCCACTTTTTTGCTGCTCTAATTTCACACACCTAAAAT -AATTTTCAAATGTTCATCCTACCCTTATATGTAGTAAGAAGATTTCAAAT -TCAAATTTTCATGCATCAACTCGTCCCCACCGTTTTTGTTTCCCTGGCTG -ACTCATCTGACCTTGTCACCCCACGTGTGTTTGTCTTTGTGCCCCCTCTC -GTGCTCACCTTGTTCCAAATTCTGTGAAAACTCATCTCGAAGGCCATTTT -CTTCGTTTATGAGTTTTGAAAAAAAAACGTTCAGACAACTGCAAATGACC -TCCCCGGCGTCGAGAATCGGTGATAACCTTGTACTTCTTAGATGAGACCA -GATACAAAGTGCACCAAAAAATTCAAATTCGCTTGAGAAGCGCTGGCGAG -AGATTCGAAGCGAAAACGAGTTGATTGACAATCGGAACATATACACACAC -CAGAAGACAAAGTGGGGGAAGAAAGGAAACAAAAAAGATAGAGAGGAAGG -AGATTTTGAAAAACGACAATCTCTCTGTGTGTGTGGGTGACAGGTGAAAA -AGTGAGAGTGAGAAAAACGTGGTGGGTACTGTATTGATGAACGATCAGAC -CAAGTTGCATTCAAATTTCTTTGATTGGATTGTTTCCTGATCGGTTTGGT -AGAAGGTGAAGTTGGATTTTGTTCACTGAAGTTATTGGATTTCGAGACAT -GAGCAAGCTAGGTTCAGGATGACTGTAGTGGCCGGCTAACTTTCCGTACA -CCTTTGGCCGACTAGTGAGTGCAACCAGGGCTAGTAAGGAGGTACATCCT -GGTTACCGTAAGCTTATTAAAATTCTGAAAACACCCTACAAAAACTGATA -TTTGTAAAGTTCTCCAAAACAGGTGCTAAAACTTCTGAGGCAAGAGTAGG -CACTTGGAGTCAGAATGTCTTATTTCGATTTGATCTACAAAAAACGCGGG -AGTTGAGACGCAGAAATCTCATCTGATTTCGCATGTTTAAGAGCGTGCTG -ACGTCACAATTTTTCTGGAAAAATATTCCCGCATTGTTTGTAGATCAAAC -TGTAATGAGACAGCCTGGCACCACGTGGGTAGGTGTCGGGATGCACGTGG -TGTCAGAGTGTCTCATTTCAGCTTGATCTACGTAGATCAACAAAAAAAAA -TGCGGGAGAAGAGACGCAGAGTTCTCAACTGATTTTGCATAGTTAAGCTC -GCGCTGACGTCACATTTTTTTTGCAAAAAATTCCCGCATTTTTTGTAGAT -CAAACCGTAATGGGACACCCTGGCACCACGTGGGGATGCATTAGTATGAT -TACTGTAGATAAACCTTGAACAATATATATACATTAATTTCGTAATGCTT -GAAACTTGGACCCAAAAACTATCTGTAACTAGAAAATCTGCAAAAATGAG -TTTGCGACTTAAAGCTGGAAGTATACAAGTTGCGCAAAGACCTTTCCAGT -GGCTTCAGCTAGCAACAAAAAAATTTGTAAATTTGCCGGTCCCCACACCA -CATCAAACGTGCAAGACGGGCAACTTGGTACATCCAGTTCACCTGCACTC -CAACTACTTCCCAGAACGCCACATAGTTGAATTATTACCCAACTTGGTAC -ATTATTTTGTCGACTCGACACACCATCACCCCACCATAAACCCCTGCAAA -TAAGGAAGCCGATCGCTATCTACTCATCTTTAGGGACCTTTTTTGCCGCT -TTTTATTGATTTGAACAAAATCTCAGCAGAGCAGTCAAAAATTGCCAATA -TTCCAATTTTTCAGTTGCCAAAGATTTTAGAGTTTCAATACCTACTAAAT -CCTCCCGTTCCAGCCATCCGTTCTTGATATTCTCTCCATAAATTTTCGCT -TATCTCCTCTCTTGTAAAACTAACGTTCACTTATCCACATAATAAATACA -ATAAATGTATTATATACATATATATTATATATATATATATATATATATAT -ATATATATATATATATATATATATATATATGTATATATATATCTCAAAAA -ATCAAACAGGATCTCTCTTTTCCTCCAGGAGAAAAAGAAGATGCCGTTTT -GCAGCCAACAATACTCTCACTCTCAATACACGACGCGACGACGTGGCATC -CCTCCCCCCATCCTGCCTTTCTTCCCCGTTTCTCCTGTGTCATCGAAATT -TCTAGGGCAGCAGCACACCGGATTGGTTGGCATGTGAAGCCGACGTGGAT -CGTGATGGTGATGATGTGGCGGATTGTGATAGATCGTGTTTTTTATCCGG -CGATTACTGCGAGAATTGTCTGAAAGAGTGGCAGGGCCTGGCGCCTGTCT -TTCGGCTCTTTTCAGCATTTTGACGTGAATTTCCAAATTTCTAATTTTCT -CATTTCTATAAATTTGCTGAAAATCAATCAAAGAAATAAAAAAAAAGTTC -ACTCATGTTTTAGCATACGGCGCGAGAGGCAGGCGGAAATCGCCTTAAGG -TCAGGCAGGCAGGCAGGCGTTTAACGCCTACATGGAAGCCCTATAGCACA -CATCTATCTGAAACTGGGAATGTTGTTCCGAAGTGCATTGGAGTGCCTGA -AATTATACAATGTTTGTTCTAATTTATCATTTACTGTATATAAAGCGCTT -ATTCCGTGTGTCCATAGTTGGTAGTCTATGTAGTCTGAAGTTTTGGCTTC -TGGAAGGATAGTGAGTTGGGGTTAGTGTAGGGATATGGTCGGGGAACTGT -AGTGGTACAATAGCGGTACGGTAGCAGTACTGTAAGATTATGGTACTTTC -AGAAAAAAAAGTTTTCAGCCCCAGAAGTCGGGGTCCGTGCCGGAGGAGCG -GACAACGGCTGGTTATCAATAAAGAATACCAACATTTTATCACAGATCCG -GTTACCGCTAGACAAGAAGGTAAAAATTCGCATTCTGAGAAGGACTACTG -TAGCAGGTGTTTAGCGTGTGTCCGAGTAGATGTGGCGACTCTTAATTTAA -GTTGTAGTTTCCTGGTGTCCCCTAATCGCGAACTTCACGATAATTGTAAA -TATTTTAGTGTGGCCTATGTTTACAGGTTTTACGGACAGCCTAGCCCGAG -AAAAACTCTGGAAAAAAATCCCAAAGCTCTTATCCAAAACTACCAAAGTA -TTCTATGCAATTCCCTTTTTGCATTTCCTCACCCCGCCTAATAAGGCATG -TTGTTTACCGCCGACTTTCCGCAATAATCTATTCTCGCAATCATGTGATT -TACCTGACGAATCGAAAGTATACGGTAACCTTCACATTTGGAAGAGGAGA -AAGGAATTCGTTGGAGCCTTGACCCATTCTCCCCACAGGCATAATTCAAA -AAAATATTCACATCAAGAATGCGGATTTGCCACAACCCAACGGGTTCTCC -CATCCAGCATCTCTACCTTTGCCGAGGCAGAAACTGAGGACCGATCTCGA -TCTGCCGCCGCGTTCCGACAAATGTAATAGCAGCCCCCCGCGCGATAGCT -TTTCACTTTTTCTTCTCTTTCTGGCTACTGCTGCTGCCTCCTCCTGCGCA -AGGATGATGCTGCTAGGATGATACCCTACGAGATTACGGAACTATCCGAT -AAATTAGCTTGATGGAGACTAGAGAGATAGTCCCGAAGCTCTGAAGGAAC -CTGATCTTGTTACAGTCTTGGAACCGAACAGCTGATTGCGTCGTCGTATT -ATCGTTATTCATTTCGTAAATAGATTTTCTCTAGGATTGATTCCCGGTTG -AGCCACGTCACTGTCCGAGAACATTCCGGAATGTTATGCATATGTTCTTG -TAAATAACCTTTCTCCTTCCTCCGGCCGGCCAACTACTTTCATTTCTTGA -TGCGTCGAGATACGATATCCAAGGCCATCTTTCAAAATCGCAAGTTATCC -ATCTTTTTTCGCTGATGACTCTCTCTCTCTCTACTCCTTCGCCCATCTCG -TCTTCAGAATCACCTACCGCAAAACAATTGAATAAGTGAGTGTGGAAGTC -ACGTCATGAGCGCGACGAAAAGAGAGAAAGAGAGAGAGAGAGAGAGAAGT -GCCGAAGACGTCGGAAGAGAAAAGCTGGAGGAACCAGCGGCTGGATCGTC -GTTTGTTGATGATGCCTCCTGCCTGCCATTGTTATTCGATATTCCGATAT -TCGATTCTTTTTTGCCGCCGCCGCCCAAGAGGAGAGGAGAATCAGAGAAG -CTTGCGCGCTCCCTATCAAAAAAAAAAGATTATCAAATTTGAAGCAGCAG -AAGCTGGGAAATGGAAATAATAGCGGATAAACAAAGAGAGCGAAATGTTT -TGGGCAATAAATTTGTAGTTTGATGATAAGAGTGGCATTTTGATATGAGG -AAGCTTGCAGAATCTAGTGGTGAACAGGAAGCTTTCGCTATGGAGCAAAA -TGGATTCCGTCATTTTTCTTAAAGAATCGGAGTCGAGATGAAACACCCAG -CCGGAGCTGAAAAATTATTCTGCTGAAAAATCGAGGTGCTTGAAGTACCA -GGGCGTTATACAAAAGATCCAGGGATCCTAGTTCTGCAAAAAAAATTTCT -GCATAATGAAATGGAGAACAGGGCGGTGCGGCAACCAAGATTTTCGGCAA -CCGGCATTTGCCGAAGTTGCGGAACCCAAAACATTTTGGTAACCGGCAAT -TGCCGAAGTTGCCGAATTCAAAAAATTTCGGCAACCGGCATTTGCCGAAG -TTTCCGAATTCAAAAAATTTCGGTAACCGGTTGCCGCACAGCTCTGATGG -AGAACCCGGTGGTCAGCTCAGAGTTTGGATCACCACAACCCAGAAATACC -ATCTTTCAGTGCCTCATACGTAGAAACACTCTAGCTCAAAGTGCCCCTGA -GGCCCTGGGATCTATCCTTACCTGGAAAACTGTGTAAAATTTCGAATATT -CACAGATCCTAGGTTCGTAGTTTCACAAAATGTTCCCACTCTGCCTTCGG -ATCCCCAGGACGCATTGCTACAATATTTTGCACTTGGTACAGTACTCAGC -TTTCCCTTTTTGCACCAAAAAACATTATTGATCCTTACGATTAGCGTCCT -AGATAGGCTACAAGGCCATCGAGATCTCAAATATGCAAATTCTTAGGAAA -GAAAGTGATGTTTCATCATCTTCTTGGATTAAAAATTTCCGAGGAAAAAC -ATGGCAAAAATCAGGTTGATCGTGAAACTCGTCGGGGGCTCCTCTCACTT -CTTCCCCATCTTCATCTCTCCTTCTCTTTCCCGATCCGATCTTTTTTCCT -TTCTTCCATTTTTTCTCGTTTTTCCTTTCCATTTTTTCTTCTCCTTCTTG -TGTTTGATTATCCATCCTCCTTGCCCTTTCTCCTTGTTTCATTTTTCTTT -ATTCATTCGGATGGAATAGAGATATGGTTCCGTAAATTCATTCCAATACT -AGAAGAATTAGTAAGACATTCGTAGGGGGGAAAATTCCGCGCAGAAAGCG -ACAGGAGGTTCGGGATTGGGTAATCGTCGGAAAAATGAAAAATCGCGCGC -GCCCGCCCGCGCAGATGGGATATATACTAAATCACATGGGCAGCGACATG -ATATACGATGGATTGCGTGATCGATAGGCTTTTCAAGGAGGTACATTAGC -ACTGGTGGGCGTCGGGATCCTTGAAGGAACAACGATCTTTGAAGGAGATG -ACGAGGATGTTGTGAAATTTAATTGTGATATCATTCTATTATGTAATCCC -TGGCCTAGAATATACATCATCTTTTAGAATTCTGGTCGGCTAGATGTTTT -CGGGAAGTGCTTCTAAAGGATCGGCGCTGCCATGTATGTAGGAAGTGCTT -ATGCCAACCCCAATCATCTTCTCAATCTACTCCTCAGAAGTTCAGTTCTG -CCAATCCGCACGCTCCACCTTCGTCGCCTATCCGTTTCTCATGCGAGTCT -CGGGTCAAGGCAAGTGTGCGTGTCCTTCAGTCGTGAAGTCCTATTCATTT -ATTTTTGCTGCCAAAGTCCGAACAGTTTTTTCTAGCCGTGTCGGCAAAAG -GGTTCTTATTGCGAATTCACCTCCTCCCCACTCGAGAAATCGCCCCCCCG -CCGTCCTTGGTAAAACTGACCTAGAAAAATAAAAACAACACAAAGCGCCT -CCCGCATCATCACGCGTATATATGTATATATATAAGATGGTAGGCGGGAA -GAGGAATCGACGCAATATCGACTGAAGGTTGCGCAATCGAGATGGCTCTT -CCCGGCACGGATACCTCCTCCTCGCGTACCAGGCACCCGCATATAGCTAA -AGTTCTCCGCCCATTTCGTTACTTTTTTGTGCTTCCCATATCATCGCAGC -AGCGCTTATGCCATTGCGCCCGACCCGATCCAACTTCTTATTCTTGTTCC -TTAGCCTTCTCCCCCTCCCATGTCCTCCCGATATCCAAAAAGTGGGAGGA -GCATGCCATAGTGAGAGGGCGGGGCCGGGACACACACAAGGCTGGCCCCG -AGAAAACGAACAACACTTATGCCGAGGACAGTCTCGACAGTTGGTGGTCA -CCCCACCTGCGCCTTGATTACCCCGCCCGTCCGCGCCCGCCGGGCTAAAG -TATTTTGTTTGCCATTCATGTTCCTCATTCGACGTTCATCATGCTTCTGT -TATGCTTCTTGGTGTTGGTCCGGTTCCTTTCTCTCTCTCTCTCTTTCTTC -CTTGTGGATCAGATGCCATTCCGCCTTTTTGCTAGATAAGCGCATATTCA -TCTCACTCTTCTTTGTTTTCAATTCAGCATTCTTTATATATCCAATATCC -TACATCCTATATCCTCGTTCTCTCCTCATTTTCATTCATATGCCGATCCA -TTTGGTACTGGTGGTGTCGTTCTTCTTAGTTTCGCTTTCCAATTCTTTTC -TAGACAATTCCTTCTATTTCCAGAAACTTTTTTCTACACAATGCTCCCAG -ACAGCCCATCCCCACGCGCTGCCCTTGCTCTCTCCGATCTTCAGCCACAA -ACCGGCGCCTCAACGTTCTCAATTGGCAGTGGATCAGGCAACTGGTAAGT -CGAGTTCTTATGTAACTAGTAGGATGGTAGACATCGAGATTAACGATGTC -TGGCATTCGTTACGTAACGAACGGGTTCTCCCGCCGACCATCGAAGCGCT -TAAGCGCCGAGATTCTCGGCTTCATCGCACCCCGGTCTAGCAAGTTTTCC -AATCCATCCCAAATTACAGGTCGACAAGAGGTGTTGGTGGAGTTAATGGT -GATTACATGGACAAATCCGGCGGAGGAATGTTCGGAAACAGCAGAAACAA -CGTGAGTTATAAAAATATCTGGGGGGGGGGGGGGGGGGGGAAGTGTTGTT -CTAGGCCAGGGACATTGAGAACCGCGTGATGAAGAGTACTTTTATCCGAA -TTAAATCATAGGCAACGAAAACAAGAATCAGGTTCTTGTGCTTTGCACAC -CATGTCGGAATATCCGTCTCAATCAAAACGAAAAAAGCCTAAGCTGGACC -AAGTGTTAAATGCTTAAATGCCAAAAATGAACAATCTTTCAAATCACTTT -CATCTTCCTGTAAATCAGAGAATCCTGAAGCGCTGGCGCGCACACTTACG -AAAAGTGAAAGCCGATATATCAAGTTTATCACCTAGCGGGACTTCCATTG -TCTCATTGTCTCTTGGCTATCCGCCCCACTTTCCCCCCGGATCATCCGCC -CCCTTTAATCCAAGACTCTCGAACAGTTTCGCTTCATTCCAGGACCGATT -CGCATTCGGCAACAACAGCTCGTCGTCCTCATCAGCAGGCTGCTTTTCAT -CGAACAATTCGTCAGGCGGACTTTTTTCCAGTAAATAAGTTAATATGTGA -GTTTTTTTTGTGTACATTTTCTTCTTTTCAAGATCCATTAACATTTCAGA -ATGCGATCGGCAGCCGGTATTCTTATTCTAATCTCAATAATTATTCCCAG -TGTATATAGTGAACCGAAGTTGCCCGATTGCGAGCAAATACCAAAAGTCT -TGTGCTGTACCCAACGTGTCTTAGATAAATGTATGTCTGGTTGTATCGAT -TATGTCACTGAGAAATGCCCCCACAAATTGGAAAAATACGAGACGATCGA -TGAAGAGCCATCGACGAGAGCTCCAAAGAAGCAGGTGAAGCCAGCTAAGG -CAACTAGCAACAGAGTTGTCGGAGCAGTTGAAGTAGACCATGAAGCCAAG -GAGCAGTTCATCGACTCCAAGGATATCAGAAGAGCACCACGAGTCGGTGA -TGCCAAGCTTCTCAGCCAGGAGTACCCGATCACCGAGGTCACCGACGCCG -ATCTCTCCTCCGAGTGCGGAACCGAGAAGTCTCAGCCACCATTCTCACCA -TGCTTGTCCCGCAAGTCGGCCGACGACGTCTTCCTCTCCTGCTGTCGCCA -ACAGGTTCCATCCAACTGTCACAGCCTCTGCACCTACGAGCATCGTGAGC -ATGTCGCCGCTGAAACTCTGATCCAGGCGATCCAGCAAGAGCACTGCGAT -ATGAAGGTAAGAATAGTTCAATCTTCCTATTGAGTTTTTTTTTTGAGTTT -TTCCAAAATTCATTCTTTCAGTACTTCTCCAAACTGCTCTACTGTGCCAA -CCAAAACCGCGACAACCGCGCGTGCTGCTCCAACCTCGGCATGTCAAACG -CGGAACTCGGCGTCGGCGATCGTTGCCTACGTATGTGCAACATCTCCCCG -TCGGGAGACCGTGTAAGCTCTATGGAGAAGGAGGATCTCGTCTGCCTGTC -CAACTGGAACGTCATCATGTACTGTGCCAGAGGTGGTCTTCGTACCATCA -ACTAGACCATCATCCCCGTTCTCTTCTCCCGTAATAAGCTGGCTCAGGTT -GTTAATAATAATTCGCCGCTCGTCTTAATAATTTTCCATTTTCCAATCTC -GTCCCCCCTTTTCAACACTACCACATTTCTCAGTGATATTCATCTGAACC -GCCCGACATACATCAGTTCCTCATAGTACCTAACAGGGTTCAACAAACCC -ATCCACACACCGTCCCCCCACGTAACACCCCCCCCCCCCCCACTTAAGGA -CCAAGTCCTAGTTACTGAATGTGCAACATTATGGCCAGAATGCAATACTT -GTCCCATCTGAATCCATGTTATTTGATAATCTATGACAGTATTATACAAC -CCTTTTTTTTCAAAACACAAGCCCCCTTGAAAACGAACTCATTGTATGTC -AAACGGTATCCCTTATTACACGATTAATTGTGGAGTTTGAAGCGAATAAA -TCAATCAATTTCTCGTTGGGTCCCACAGCGAAATGACTATTACCGGTACA -GAGAGTGTGGATAGTTAGAGAGTGACAGACATCCGGGACCCAATGGGGCG -GGGCGCGCGGAAGAGACGATTTGTGTCGATTTACGAAATGATGACAACGA -GGAAAATTTCGTAAATCGACACAAATCGTCTCTTCCGCGCGCCCCGCCCC -ATCGGGTCCCGGATGTCTGTCGCTCTCTAACTATCTACACTCTCTGTACC -GGTAATACTATTGCAGTAATCGCAGGTTATTTCATAGCGATTTTTCATAG -CTTCACGGATTTCTGGATTCCCTCATAAATTGAAATGGAAGAGTTTTTGC -TGAACTAGGCCATTTTGGCTCTGTCATATCTGGGGTAGATTTACGGCGCG -TTGCGGTTCGATTTTAGTTGTAAAACTAAATGTATTTGTCCGTGTGGAGT -ACACGACTTTCTCACGCGTGGTCCGGCAGGCGATTATCAATAGAGCGCGA -AAAATTCAATGAGGAAGGCCAGAACTCCGTGCAGCTTTACTCGCGAATTC -AGGTGTGTGTTTTAATTGTCTTTATTCAGTTTTCTGATAATGAATATACT -TTTTTACAGAAAAACTGGAAAACTGATAAAAAAGTCCCCAGAAACTAGAT -ATTGAAATTACAGTACACTTTAAAGGCGCACACATTTTCACAGTAAACAA -AAAATTTGTCGTGCCGAGATATTTCATCCAGATTATCAGTTGTTAAAATT -TGACAACACTCATTTTGAATATTTAATGAATTCGAATGGAAAATAGAAGA -AAGCTGCCAAAAAGTGAAATTAAATTCTCAAAAACTTGATTTCCAGACTT -TTTTGGCGATTTTCGACCAATTTCAGCAGAATTTTTAGCAGAATTTTACA -AATTTTTTTATTTTAAAGCTTATTTTAATAATTTTTCTCTGAAATATATG -AATATCTTTGCTTTCGATGGATCTTCCTCAAAAGTAGACACACATTTTTA -TTTTTCTACAAAACTGTGCAAAGTTACGTCGTGGTGTTTGCGTACCTCGG -CGGGAATTTAAAGAGAAATGGCATTTTTCACTTTTCTCGCAGTTTTTCTG -ATTTTTTTTTCGTTTTTTCGTAGTTTCCTAATAAAAAATCGTTCCAATTG -TTTCCAGGTAATGGCTGGATTTGAAATTCAAAGAGTCGAGTCCAAATTCT -TCGACTTGGACGACATAATCGCCAAGTCAGACTCCACGTCTTGCACATTT -GAGATTGGAGATTTGAATCCAGGTCTGAAATCGCATCGAAAACCTAAAAA -TTCTAGTGATTTTTGTTCAGATTTCTTCCAGGAAATGCTGGGAGTTTCGA -AGCCAACTCAAAATGCAGACGGATACGGCGTTGATGCTCCATACTGGCTG -CTGGAATCCGTTAGAAGTTCATTTTCCGTGAGAATTTAGTTAGATTTGCC -CCGAATTTTAATTGAGAATTCCAGATTCAACTGCCAAAAGCTTATAGTGT -GAACATGCAAAATGTGCTGAACGCTGACAGCAAGAAATTGAATCTCTCCG -GCTTGCAGCAACACTTTTACGGCAACGGGATGCAGTTATGCCGTCTGATG -AAGGGCGAAAATCCGGACGGCGCGCTGAGCCTCGCACGATGCCTTGTCTC -CACACTTACACAGCGATTAGGAGGTATTAATTAATATAATAAAGCACTTA -TAAAATACAATTTCTGGTTTTTTTTTGTTGCAGAAATTGTGTCAACTGCA -ACCCATCTGCAAAGCAAAGGCGAGAAATTTGACAGCCTCGAGACAAAAGT -GTTCCTGGAGGGTAAACGGTGCAAAGAAGACATTGATACTTGGCTGAGAC -AAGACAATAAGTGCTCGAGCAAGAAGCGTAAGAGACTTTCGTTATAAACT -TCAAATTTCTTATGCTTGAATCTAATTTTATTTTTTTTAATTCGTCTGTA -AATATAATTCAAACCCACCATTCTGTAATAATATTTTATTTTCTATTTTT -TCACACTCATTTTTGTGTTTTATTGGTGTAATAAACCTGGTTTCATGACT -TTTTTGCAAGGAATTTTGTTGAAAAGGCTGCTGCAAAAACTTTGCCAGCA -AAAAATTTTGTGCAAGCACGCTCCATCGCACAGTTTGAACGTCGCGGGTC -GAAGTTAGATGTGCAGGTCATATAGCAAAAAGAGAAACACCCCTTTTTTT -CTCGAGAAGTTTCACCAATTTTGCGCGATTTTTCAACTATTTTTTTGCTT -TTTTGGCTTAATTTTGGCTCAGATTTTCCTCAAAAACATGAAAATCCAAT -CTAGAATAAGTAGTAATGGGTATATTCTAAGATTGTGCAAAAGTTAGCTT -GAATTTCCTCGATTAAAGCTTTCCTACCAAGAAAAATGTGTGGATATTTT -GAATTTACAAGTTTTTCATCTTTTTTTTGTAATATTCTCTTTGAAACTCC -TGTTTCTCTCAAATTTGTAAACTTTCATAAACGTTTTTTTCAGGGTTACC -ACATTAAACAATGACCGGAAGCACCGAAACTCGCCAGAAGGAAGTCAAGG -AGGTTGGTTGTTCAAAGTGACGTCTAAAATATTTAAATTTCTATATTTCA -GCCACAAGTTGACGTTTCGGATGATTCCGACAACGAGGCCGTCGAGCAAG -AGCTCACCGAGGAGCAAAGACGTGTGGCCGAGGCTGCTGGACTTGGAGAT -CACATCGACAAGCAGGCCAAGCAAAGCCGCTCCGAGAAGAAGGCCCGCAA -GCTCTTCTCCAAGCTCGGACTCAAGCAAGTGACTGGTGTCTCCCGTGTCT -GCATTCGCAAGTCGAAGAACATCCTCTTCGTCATAAACAAGCCAGACGTG -TTCAAGAGCCCAGGATCTGACACCTACATCATCTTCGGAGAAGCCAAGAT -CGAGGATCTCACCCAACACGCCCAGATGTCTGCTATTGAGAACTTGAAGC -CAACTCGTGAGGCCCCACAACTCAAGACTGTCGAAGAGGACGAGAATGAG -GATGTTGAGGTAATTCAGTAACTTAATCGGATTTATTACATTAATTGTAC -GGTTTAAGGAGGATTCCACCGGCATTGAGGAGAAGGACATCGAGCTTGTC -ATTTCCCAAGCCAACACCACCCGCAACAAGGCCATCAGGGCGCTTAAGGA -AGCTGACAATGACATCGTCAATGCCATCATGAGCCTTACCATGTAGCTTG -TTTCCTGATGACCTTGCAGATACTCTTGTTATCGTTGTATCTCTTGCTTA -TCCCGTTTTCCGTTCCAAGTAAACGTTTATCAGTCTTTTTTAACTTTTTT -GTTATGTTTAAAAAACAATTGCATCTTCGAATTGACCTACCTTTTACAGA -AAAGAACAATTAAATCACTGTTTGTGTAAAACACCCCTCTATTGATCGAG -AACTTTCACTTCTTCCAATTCTTTACTCGTATGACTGTGATTCATTTCAC -CTGCTATCACTTTATCATGACATTCCAGTTTATATCAACAGCAAATACCA -ATTGTGTGTATGTGAAAAATGCTATTGAATAGCAAGCGCGCCCCAACAAA -CACGTTTGAATGCGCGGGCGAAACGGCGTTAGATGTGCAGGTCATATGAC -AAAACGCATCGACCAGCAGCCAATGGCAAGTTACTGCGAGCTGTTATAGA -TTTTTTCACATGGTTTCCAGTGTTATCAGTTGGAAATCGATCGATAATAC -TGACTAGTAGTACTTAACATCTTCATTCCCACCGTTTCGCTGTCATTTGT -GATACGTGGATTTATTTTTCCTTTCTCGCCGACTTTTCATTTCTAAATCT -TTTCTGGAATTGCGAAATTTTCAGCCAGTTTCATGATCGAATGGCTCGTA -ATGAACCATCATCTCAGCAGCCGAGTAGTTCCGGGAGTAATGGAACTCCA -GCACAACAAAACGGGTCGGCAAAACCATCAAAAGTCACAGTAAAAGGTAA -CAATTCGTAGATTTTTTGCATCTGTTCTAATAATATTTCCCCCTCTTAAT -CATAGTCGTCAACGCGTCGTTCACCAAGGCAGCCGACTGCTATGTCGAAA -TCACGAGTGACACGTCATCGGCGGCGCCAAAAAAGACGACTGTAAAGAAG -AAGACGATGGCGCCCGAGTGGAATGAACATCTCAACGTTCATGCAAATGA -ATCTTCGACAATTTCGTTTCGTCTATTGCAAAAAGCCAAGCTATTCGATG -ACACGTGTCTAGGGATGGCGAAGCTGAAGCTTTCGAGTCTCACAAGAAAT -GAGAATGGAGAGTGTAAGTGGTTTTATTGAAATTTTCTCAAAAAATCTAT -TATTTCAGTCAAAAACGACATCAACAATATATCTTTGCTGGCCAAAGACT -CCTCGAAAATCGGAACTCTCAACATAATTTTCTCCGGATATCCAGAGCGG -AAACGAAGAAGCGCAGGAGTACGAGCTGAAACCGCCGCGTCTGCAAGTTC -AGAGGCATCCACGTCAAATGGCGTTGCCACGTCATCCTCGGCGCGGAGAC -CGGCGACAGCGAAGCGTGACACTTTGGCGGCTCCAACGGTAATCGTGACG -AGACCCATTTTGAATTATTTAATTATTCATGAAACGCTCTACTGGAGTGT -TCATAATTATTAGAGCGCGCTCGCGCGGCACCTCACGAACTCCAGAATTC -GCGAGGACAGCAGTTTTTGGCTATTTTGGCTTCTATGGAAATTATTTTTA -ATTTTTTGATTTAAAATATTGTTGAGAAGCATCATCCAAATTGAAAATGT -GTAAAATTATGAAATTTGACCGAAAACTGAAGGTTTTACAGAGAGGAGTC -ACCACGGCTTTCTTTAAAAAGTATCAGTACCGTCAGTATTTCGATTTCAG -AGTCGTAAAATATGTCATTTTGTAGAGAAACGTCTGTTTCACAAAAATCC -ATGTTTGATATTTTAATTGTTTAATTTCTAATATAAAAATATTCAAAAAA -TCAACAAGTTTACGTTAAAATCGAATTTTTCAATCGTTCAGTTTTTAATA -AGAACAATTTCATAATTTCAAACATGGATTTTTTTGAAACAGACTTTTCT -CTACAAAATGACATATTTTACGACTCTGAAATCGAAAAAACTGACGGTAC -TGATACATTTTAAAGAAAGTCGTGGTGACTCCTCTCTGTAAACCTTCAGT -TTTCGTTAAAAATAATTTCCATAGAAGCCAAAAATAGCCAAAAACTGCTG -TCCCCGCGAAACGAAATCCCGCGAATTCTGGAGTTCGTGAGGTGCCGCGC -GAGCGCGCTCTAATAATTATGAACACTAGAGGAGAGCGTGAATGAGCGTT -TTTTATTCTTTTCTCTGCATTTTTAATGCTACAGAATCATACACAAAATG -TTGTCAAATACATGCATTACTCTACTACTCTTAATGTTTACTTTTCATTT -GCAGAGTACCGCAGCGGCGGCAGCAGCAGCAACAGCAGGCGGCACCCCGG -CCGCCGGAGCAGAAGAACAGCTTCCCGATGGATGGGAGATGCGTTTCGAT -CAATACGGACGCAAGTACTACGTGGATCACACCACCAAGAGCACCACGTG -GGAACGCCCGTCTACTCAGCCATTGCCACAGGGATGGGAAATGCGAAGAG -ATCCGAGAGGAAGAGTGAGTTTTCCGGCGGAAAAAGCAGATTTAGCACGA -GAAAAGCGTTTCTGATTATATTTTTGATGCGAAAATCATCAAAATTAAAA -ATATCTACCGTAGCCGCGGATACCTGGACCAAAATGCCGAAAAAAGTGAC -CTGATAAATTATTTTAAGGCTAAAATCTTGATTTTTACATAATTAGTGTC -TTATTTTTGTTGATTTCTTGTCAAATTTTTGTAATTGCATCGAAATAGGC -CAAAAATAAAGTAAAAATCAACTTCCAACACAGAAAAACTGACAAAATTG -AAGATTTTTGCTGAATTCAGGCAATTTTTCGTAATTTTGATCCTCCATAA -TTTTTTTTTTCGAGAAAATTTTGAAATTTTTTCTTTAAATACGGCCTGAA -AATTAGGAAATTATAACGACGGATAAAAAATTCTGATTTTCTTTATTTTA -ACCAAGGTCTCCAATTATTTGATAATCGAAAAAAAAAAAACTTTCCAGTG -ATTTTTACTTGAAAAATGTCTAAAAATTCACGCCAGGTGCACAATCCATT -TTCAGGTGTATTACGTGGATCACAACACGCGCACGACCACCTGGCAACGA -CCGACAGCCGATATGCTTGAAGCACACGAACAATGGCAATCGGGAAGAGA -TCAGGCGATGCTTCAATGGGAACAACGTTTCCTTCTCCAGCAGAACAACT -TTAGCGCCGACGATCCACTCGGACCATTGCCCGAAGGATGGGAGAAGCGT -CAGGATCCGAATACGTCGAGAATGTACTTTGTGAATCATGTAAATAGAAC -GACACAATGGGAAGATCCGAGAACACAGGGGTATGTGAAAATTTTCAATT -TTCCAATAATATTTCTATCAAAAATCACAGTTTTAATGTTTTAAAAGTTT -CAGAGGCTCCGACCAACCTCTTCCGGATGGTTGGGAAATGCGATTCACCG -AGCAAGGCGTTCCATTCTTCATCGATCACCAGTCTAAAACCACCACCTAT -AATGATCCAAGAACCGGAAAACCCGTCGGCCCGCTCGGCGTCGTCGGTGT -TCAAATGGCCATGGAGAAGAGTTTCCGGTGGAAAATTGCACAATTCAGAT -ATTTATGCTTGGTAAGGGAGGGCGAGAAATTCTTTGATTTTAGCTATAAA -TTGATGTAAATTTCAGTCAAACAGTGTGCCTAATCATGTCAAAATCACAG -TATCCCGTAATAACGTGTTCGAAGACTCATTCCAAGAAATTATGCGTAAA -AATGCAGTCGATCTACGCCGGCGGCTGTACATTCAATTCCGAGGCGAAGA -GGGTCTCGACTATGGAGGTGTCGCCAGAGAATGGTTCTTCCTGCTGTCGC -ACGAAGTGTTGAATCCAATGTATTGCCTATTCATGTATGCTGGTAATAAC -AATTATAGTCTTCAAATCAATCCAGCTTCATTTGTTAACCCGGATCATCT -TAAGTATTTCGAGTATATTGGACGATTCATTGCCATGGTGAGTGTTTTTT -TTTAATTGAAAATCAGTTGAAAATTGGATGAAAAATTGCGAAATCGAGAG -AAAATCGAGTTTTCCGCTTTTTACAATTGAATTTTAAAATTTTAAACGTT -AAATTTTGCAGAAAATTCCAAAAAAAAGCACTTGGATCTAAAATTTTTGT -TTTTTGATGAAGGAAATCCTTAAATATCGATTTTTTTTATTTTCAGCTCA -AAAAACCTGGAAATTTCGATGATCTCAAATTTTCAGATCAATATATTTCA -TTTTCTCCTAAAAATGTTATTTTTATTTAAACAAATAGTTTTTCTTAGAA -AATTCCTTTATTTTCAAATTTCCAGGCGCTATTCCACGGGAAATTCATCT -ACAGCGGTTTCACGATGCCATTCTACAAAAAGATGCTCAACAAGAAGATT -GTTTTAAAGGACATTGAACAAGTCGATTCGGAAATTTATAATTCATTGAT -GTGGATCAAGGATAACAATATCGATGAATGCGATATGGAGCTCTATTTTG -TTGCCGATTACGAGCTGCTCGGCGAGCTCAAGACTTATGAGCTTAAGGAG -GGCGGTACAGAGATTGCTGTTACCGAGGAGAATAAGGTGAGATTTTGGAT -TAGCTAGAGCTTATAAAAATAATTTTTAAATAAAATAATTTAATTTAAAA -AATCCCAATTTTCCAGCTTGAATACATCGAACTGCTCGTTGAGTGGCGCT -TCAATCGCGGTGTCGAACAACAGACAAAAGCCTTCTTCACCGGCTTCAAC -TCGGTCTTCCCGTTGGAATGGATGCAGTATTTCGATGAAAGAGAGCTCGA -GCTGTTGCTCTGCGGAATGCAGGACGTTGATGTGGACGATTGGCAGAGAA -ATACTGTCTACAGACATTATGCTCCACAGAGCAAGCAGGTAGGGGAGAAC -ATTTGATTAAAACTTCTTTTTTTTTAATTAAAAAATACATTTATAGGTAA -CCTGGTTCTGGCAATGGGTTCGAAGTCTGGACCAAGAAAAACGTGCCCGG -CTCCTACAATTCGTCACAGGAACGTGCCGTGTGCCAGTCGGTGGATTTTC -CGAGCTGATGGGCTCGACGGGACCACAACTATTCTGTATCGAGCGTGTCG -GCAAGGAGAACTGGCTCCCACGGTCGCATACGTGCTTCAATCGACTCGAC -TTGCCGCCATACAGAAGCTACGATCAGCTCGTCGAGAAGTTGAGCATGGC -GATCGAGATGACGGAAGGATTTGGAAACGAGTAGTCTCCCGTTGTTTTTT -TTTGGTTTTGCTGGCCGCCTAATTATTGTATAACCCTCATATTTCTTCTC -ACCCACACCCCATTGATTTTCCTTTTTTTTCTCTCCATCAATTAATGTTT -CTTTTTTTCGAATTTGTGTGATAATTTTCGTGTTGTGATACCACTTGCTT -AGGTTCTCTCTCTCTCTTTCCTTTCCTTCTGGGTATGTACCTATATTTAG -AATATAGACAAAGCATCTAGTTTTTTTGGATTTAATTTCCAAATTTCCCG -TTTAATTCCAACAACAAAAAAACAATTCCACCACTTTTCAAATATTTTTT -TTGTGTCCATTGCTTCATTGCTTTTCTTCTTCTCAACCATTTCAACCACC -ACCACCCAATCTGCGCCTTATTCTTACTTGGTCCTTGTCATTCTTAGTTC -CAGTTTTTTTCACGGAAGCAGCTCTCGATTATTAATTCAAATGCATCCCC -CCAACCAATCCGTCACCCCCCGATTAGAACAATTTCTACTTTTTTTTTTG -AAAACAAAAAAAAACACAATTCCTCGATTTGGTTGTAATGAATTTAATTT -TTTAAATTTTGAGCCTTTTTTGTTGTTTTAGGTTTTCTTAACTTTCAGAA -TTTCCATGCGGAACACACGGAGAGCAGAAGATCAATATTTTGAACCCTGC -AGGAGAAGGACGGGACCCTTTGGTCACTCATGTCTCGGCTGTCTGCGTCT -CTCCTCTCTCTCTGCACCAGCGGAGAGGATGGATAGCCTCATTCGTTTTA -TTTCGGACTTTCGATTTTTCTTATTGCTCCACGTTTTAGCTTTTATCAGA -TTCGGGGAGCTCTTGCTTTTTTCTTGATTTTTTCGTAAAGTGTTCTTGGG -TCCCGCAGCGAAAATTAACTTTAAAATGATTTTTTAAAAACTTTCTAAAA -ATTCATTTTTTTTTCCATTTTACGACTAGAAATTTCGAAATTTGAAAAAA -AAAACCGTGTTGCAAATGCGCTCCAGCGTACAAAACAAAACCGCCACCAA -AAAATTTAAATTACTGAAAAAAACGATGAAATTTTGAATTTGTTTTGCCA -TTTTCCGGCAATGATTTTTTAAATAAAAAAAACTGTACAACAAATGCGCT -CCAGCGAACTAACCTTCAAATTACCGAAAAAAATTATAAAAATTTGAATA -TTTCCGATTAACCCAAGAAAAGAAAAATTCAATGATTTTCTTGAAAAAAG -TTATTTTTTTCTCAATTTTTCGTCAATAATACTCAAAATTTGAAGAAAAA -TTGTGTAGCAAGCGCGCTCTAGCGAACCAAACAAAATGTCTCCATTGAAG -CGTTTCACGAGGTTCTGGCCTACCTCATTGAATTTTTCGCGCTCCATTGA -CAATCGCCCGCCGATAACGCGTGGGAAAGTCGTGTACTCCACACGGACAA -ATACATTTAGTTTTACTACAAATATCGAGCCGCGACGCGACACGCAACGC -GCCGTAAATCTACCCCAGATATGGCCGAGCCAAAATGGCCTAGTTCGGCA -AAAACTCTTCCATTTCAATTCATGAGGGAAGCCAGAAATCCGTGATCCAA -GTAAAAAAAATCCCAAAAATTTCAATTTGCAAGGGCGCTCCATTGAAAAC -TGTGGCGCCGATCGCAACTCACGGTCGAATTTGAATTTTTAGTTGAAAAA -AAAACACCAATTTGAACTGAAAATTTGAATTTTCAATTTTTTCCCTAAAA -TAAATTGTTCAGAGTTTCGCTGTCGAATTGTTGATACCCGCTCGTCAGAA -TTGGAAATTGAGAAATTGAGAGAGAATTAGAGAAGGAGAGGAAGAGGAAC -TGCTCACTGGTCCCCTCACTCCATCCGAAATTAGGCACTTTTTGCTCCGG -CGGCACTAGAAGACGAAGAAAAAACGACGAGCAGAACACAATCAATTTCG -TCTTCTTTTTTATTTTTTTTTGGTTTTTTCTTGTTGGTACCACGGATTTC -TGGCTTCCCTCATAAATTGAAATGGAAGAGTTTTTGCCGAAATAGGCCAT -TTTGGCTCGGCCATATCTGGGGTAGACTAACGGCGCGTTGCGTGTCGCGT -CGCGGCTCGATTTTAGTTGTAAAACTAAATGTGATTTGTCCGTGTGGAGT -ACACGACTTTCCCACGCGTTGTCCGGCGGCCGATTGTCAAAGGAGCGCGA -AAAATTAAATGAGGAAGGCCAGAACCCCGTGGTAAAACATGGTGCATCAA -CGCAAAAATTTTTCATTTTTTGGAAAAACTCAATTGTTTTTTTTTCGCGT -CGGGACCACCAAACCAGAGCTCGTTTACTAAATTGAATTTCCAAAAAAAA -AAAAATTTCGCTCTGTTCAAAATTCGAAATTCAGTTTTCTTTCCCTAAAA -CCTAATAAAATGATCTTGGCACAATGCTCACTGTGAGCTTTGGGTCTAGA -ACGATGGCCTAGAAATGTTGAGATTTCCTCTTCCAGCGCCCTTGCCAATA -TGACCTAGAAATTTCAAATTAGTATAACTCGGCCATTTTCCATCCGTTTT -CGCCAAAACTACACCATTATAACATTTAAAACTTACTTTTCAATATGATG -ATAATACTTTTCCAGTGGAAGAGTTTTCCGCATTTCTAAGCCACCAAAAC -CTCTCCTCCCGACGTTTTATCAAACAAATGATATCACTGTGATTTGTGTT -GTAAGTTGCGCGCATGATTGCACTTGCGCAATTAATTAAGACAATTACTC -AAAATTTTGATCGAATTAACCCCATGTACATATAAAATACAAGATTTTTG -TGTATTGTTCTTCAAAGTTTTTTGTCGTATTTATATAGAAGCAGTGTACA -CCTAAATTTGGCTTATTACGACCTTTTTTTCCAAGGAAAATACTCATTTT -TAGGGTTATAAACCCCTTGATTGATACGTGGCCTAGAAAACTGCAAGCGC -TTTTTCCTGGAAGTTTTAGGCCACCAGTTAGAGTCTTGCAAAGACGGACT -AGTTCTCACATGACCCAGAAAGTCTTAGTCCATCACGTATTTCTTACGAC -GCCTAGAAATGCAAATCTTCGGCCACCAATTTTCATAGACATTCTAGGCC -ACCCTTTTTGACGTGGCCTAGAATCTTTAACAAAATTTGTAATGAAAATC -CTAGGCCACCATTCAGTTAGCTCTCATTTTTGATACTTCGCCTAGATTTT -TAACACGTGGCCTAGATTTCTATTTTAACACGGGGCTTAGATTTTTATTT -TAACAAGTGGCCTAGGTTTTTGCTACTAGGCCTAGATTTTTTACATGTGA -CCTAGATTTTTATTATAGCACCTGACCTAGATTGTTGGCATTTGGCCTAG -ATTTCTGTCATGTGACCTAGATTTTTTAATGCACCAAAAATTCTCCATAC -AAATTTAACTCCTACACTCTAATTTGTAATCAGAACCTTCGATAAGAAGA -ACATGGAGCTACTGCGGTGCTCAAATTCCGAACAAAAAACGGCTGAAAAA -CTGAGGTATACGTGGTTTTTTTTCGAAACTGATAAAAGTCAGCATAAATC -ACGATAAACTGAACGTCCTTTGGCCAAGTTTAGAGAAACCTAGGCCACGG -GTAGTGGTGGCCGAATTTTAAAAAAACTGGGCCACGAGGTTTACGTGGTG -TCAAATTGCCCCATTTTGGTTTGATCTTCGAAAAATGCGGGAGACGAGAC -GCAGACTTTTCAACTGATTTCGCATGGTTAAGAACGTGCTGATGTCATTT -TTTTCCGTGGAAAAATTCCCGCATTTTTTGTATATCAAACCACAACGAGA -CACTCTAACACCACCGTCCGGCCGTTCAAACGAAAATTTAGGCCACGGCC -ACTAGGGTGAAGTGGAATGCCCTACCCTTCTCTACAAAATTCATTGGAGA -AACCTAGGCCATGCTCAAAGAAACAGTGGCCGAGAAAGGAAAAACTAGGC -CGCGTTCGCTTTGTACCTCTCTTATAAAACACTGTCTGTTAGTTCATAAA -TCAGAGTCTGCCCCCTATCACTACTCTCTCATTTACCTGCCCCTCTTAAC -AAACAATCAACCCCCCCCCCCCCTCTAAATCGACTACTTGTTCCCCGTTG -TACCTGTCTGCGTCTAGCTATTTCTGTTAAATTTTTGGAACGAAAAAGTG -GTATGTGAATGTACGAAACAAAAATAATAATCAATTGAATACAATTTTTG -CCCCCCCCCCCCCCCCCCCTCCACCCCGCTTGCCTGTCTCTAACCGGTTT -CCCCTTTTTCACCTCAATCAGCCCCCCCCCCCCCCCCCCCCCCCCAATTT -CATTTGACTGTACATTTTCCTTTACCTATCTGCGTATCTACACAATTTTT -GTATTTTTTCCTTTTATTTTTCTAATTATAAACCCTGCAATTTGCAAGAA -AAAATCTCTAAAACGCTTGGCCCCTTACCCGGAGTGCGACCGTGGCCTAG -AAATTTATATTTCTTATAAGACCCCCCGGCTCTTCCAATTTTTCATTTTT -TTTCTTTGAAAGCCTAAATTTTCATTTTTTCTTAGAGATCAATATATTAT -GGGTTAGTAAAAAATTTCAAAAACAAGCTCCCCGTGGGCGTGGAAGAGTT -TTCCAAATTTCTAGGCCATACTTTTCGAAGGCGTTGGGGTACGCTCGCAC -CCTAGTACTAAAAATTGTAAATTATAAAATTATCATAAAATTGGCTCAAA -GCATTTGAAAATAATAAAAAAAATTTTAGAAAAAAAAACACGAAAAAAAC -CCCTATTTTGAACATGGTTCATCGACCGGGACCTATATACTTTGAAAGCT -TATATCTCGCTTCATGTTTGTTTTATCAAAAATTTTTCAACCAACAAAGT -GTTTATTATTTCTTTTTCTATATTTTTGTAATTAAAAACTTTTTGATAGC -TTCAAAAGTAACTGAGATACATGTTGTCAAACAGAGCAAACTTATAGCTT -AGCCCAATTATTTATTTTTTGCTGTGTAACATTTCTTGTATAAACTTTTA -AAGTTTACGGTTTTTTTAAATTTCTAAAAAAAATTATTGACACTTTAAAG -GGAGGTCATGTGGAGATAGCCTGTACAAATAAAACTGATGAACTAGGACG -AACCGAAATTCATAAACCATTATTTACACAGGTGATTCTTGCCTTTTTTG -GAGGGTTAAAAAGGTTAAAAATTATTTAAAGCTTGGAATGAGCATTTGTG -CGGCCGAGTTTTTATTTTCTAGGCCATAATTTTTAAAACAATGGCCTAGA -AGCACAAATTTCTAAGTAATTTGAATTTCCCGCCAAAAATTTTTTTTTCC -ATAAAATTTAAATTTCCCGTCGAAAATTTTTTTCGGAAAATTTGTATTTC -CCGCCAAAAGATTTTTTGTCTCAAAAAATTTGAATTTCCCGCCAAAATGT -TTTCTCAGAAAATTTAAATTTCCCGCCAAAATATTTTTTGTCTCAAAAAA -TTTGAATTTCCCACCAAAAATTTTATCCCAAATTTTATCGAACATTTGGT -GGCCGAATTTCCATTTTCTAGGCCACCCTCAGTTAAATCGTCAAATAAGT -TGACCTAATTAAATTAAAAATTAACAATTTGTAATGTCTCCGACCAAAGT -TTCATAATTGTATAGATCATCATGGTGGGAGGCGGGGTAGCACTTATGAG -TGAACTTACCGGTTGACCGCCCGTCTATACATAGTAGCCAACACCCGACC -ATTTTCTGCCAAATACCTATAATATCGCTTCGAGACCCAACTATTGCACA -GTTGTGGTTTATTTCGGTTGAAGACCCAATATTAATTTACCTACAGCTGC -TAAAGCGTTTTAAGACCTAAAAAATTAAGCAAGGCCCAAAAATCCAAACT -TAATACTATAGTACTTCTCGTTTCGAGACCCAAAATCCAAAGCTAGGCCA -TATTCTTGGTGAGACCCACCTGTAATAAATATCACTTGAGTGAAAGTGAA -CTCTTACTTTTTTCTTTCGACAGCCAAAAAAAATTGAGTCAATTAGCAAA -TAATTCACGTCTCCCCCTTTCAATGTTTACATACACATTACGAACGAGAA -AAAAAAACGAGAGAAAAATTGAGTGAAATGGAATCAAAATGTGTTCATTT -TTACTTTTTATGAAAATTTGGATAAGCACATGGCGTCAGAGTGTCCCATT -TCGGCTTGATCTACGTAGATCTACAAAAAATGCGGGTGAAGAGACGCAGA -GTTTTCAACTGATTTCGCTTTTTTTTGGGCGAAAATTTCCGCATTTCTTG -TAGATCAAACCGCAACAGTGGATAAGCGCGCTCTATCGACAAACCCGGTG -TGTACTACTCGCGGACAACCAGTATAGTTTTTTTTTTGAATTTTTGTTCG -AAATTGAAATTGAAATAAGATGCCAAATTTAAATTTAAAAAATAACAATT -TTTGAAATTAAATTTTTAAAAAAATTCCCCGTAAATCTACACTTAGTCGC -GTAAATCGACAAGGCTATTTTTTTCAATTTTTGCCCATCGCACTTTTTTT -GCCCAATCAATCATCGTCAATTGATCCATTGATCTTCTTCTTCTTCTCTT -TCTCTTTTCTCACCACCGAAAATTTCATTTTATTTTTTGACACTGTCTGC -GTCTCTCTGTACCCCCTATCTCTCGCCTCTCAAGGACTATTACAACGAAA -AATTTGGGGAGAAGCCGTGATTTTCATTTTAATTTTGATGAAAAATTTTA -ATGAAAATGAAAAAAAAAATTGTTTTTCAAAAAACAATCCCCTCGTAAAT -CCACACCAAATTCAATATTCACCTTATTACAAATTGATTATTTTTCCCAA -AAAACACACGACATCGGGCGCCCATCTATTGTTTTTTATTCCAAAAAATT -TCTGCAACTGTCTGGGTCTCCGGTTAACACTGAGAAACAACAAATTTCAT -TTTTCGATTCATTACATTCATTTTGAAGGTTTTTGGTTACAAATTCGACA -CGGATTTCTGGCTTCCCTCATAAATTGAAATGGAAGAGTTTGCTGAACTA -GGCCAACTTGGCTCGGCCATATTTGGCATAGATTTACGGCGCGTTGCGTG -CCGCGTCGCGCCTCGATTTTAGTTGTAAAACTAAATGTGAAGTGTCCGTG -TGGAGTACACGACTTTCCCACGCGTTGCCCGGTGAGAGATTATCAATGGA -GCGCGAAAAATTCAATGAGGTAGGTCAGAACCCCTTGAAAATTGAGAAAA -AAAAATCTCACAACGATACTCCGCAAAGTGTGCGTGTTGTTTATTAAATG -ATAAATTCAAAAGCAAATAGCGATTTTGTTTCAAAAATATGCCGAAAAAA -AAGAAAAAAAATTAAAACAAAAGTTCAGCCACCAATTTTATTTCTCGGCC -ATGGTTGTGTCGTTGTTTATTTTTTTGCGATCGTATTTTTTCTATAATAA -GACTTAAAATGAAAAAACATTAATAAAAATCAGTTTTCCATGGCCACTGT -CAAAAGTCGCAACGACACTCCCCTTCCAGGCTCCTCCCCCCCGCGTGTAT -TTTAGCATGTAGTGTAAATTACGCGATTTTGTGTATAAAACCCTAATTTT -TTAGAAGATTTGAGAAAAAAAACTTTTAAAAAATGGGAAAAAATCCCCTT -TCCCTTTTTTGAAATACTTTCCGACAAAGTTTAGCCAAAAGTCCAAAAAA -AACCAATATGGCCTAGAAAAAATCAAAAACTCGGCCATCCAAAAAACTAG -GCTACACGTTCTTTCGACCTCTGCTCCCCACACCTATGCTGCCCATATCA -AATGTCTCCCGGACCCCTCATTCCGTCACACATTTCTCAAAAAAATGTCT -CTTTTTCTCAAATTCTCTGTCGAAAATCCCATATCTCTTCAGTGTTCAGA -ACTGACTGTTTTATTTCAATTCTCATGATCTCATGTCTCCCGTATGACTC -ATTCCTTCGATATATTTTTCTTTTTTCAAAAATCATTTTTCCTATATATA -GACTTTGTTCGGTGGGAATTTCTCATTTCAAAATATTTATTGAGGTCGCT -TGTTCCCTTTTTATATGGTCGTGGCCTAGGTTTCTAAAACTCGGCTACCA -TTTCCAAGTTGTAGCTTCGAGCTCTTTGTCTCGGAGTAGAAAAAATTCAC -GAAATAAATAAAAGTTCACGTGGCCGTGGCCTAGATTTCCAAAACTCGGC -CACCAATTTTTTTTCTCTTATCAGTAAACCACGTAGAACTCCTTTTTTTC -TAGCCATTTTTTAACTGAATTTCCAACATATTCGGTGGCTCCATCAATTT -TACTGATAGTAATTTCCAATAAAAAAAGGTATTTCTGTCGATAGGAACCC -ATTTTCATCTACTTTTTGTTTCTACTTTATGGGTTTTGCCACTTTCCCGC -ATGCCTACGTGCCTACCTATCTGCCGACCTAATATACCTCGTAGGCAGAC -CTCGGCCGCCTTGTGGTGAGATGCCAGTCGCTTTGTAGGCAGGCGTAGTT -TGTCTTGCTGGTATGAGTAGGCCTGTCAGCCGCCCAGTAGGCAAGCGTAG -GCATGATGCAGGCGTAGCAGGCTTCTTAACTAGGCATCGGCTGCCTTGTA -AGCCGGCGCAGGTAAGTGAAGGTTTCTTCGTGGCTGGCATCCTTGCAGTC -AGGCACAAGTCGTCGGCTTGAAGGCAGGCAGATGCCGCCTAGTAGGCAGG -CATATTTTACTTATAGGCAGGTATTAATGATCCTCTAGGCTTGCGTTGGT -CGGTTTGTAAGCTGTCGTAGGCTGCCTTGTAGGCAAATTGAACTCTCAAA -CCAAACAACACAAAAATTCCAATATTTTTTGTACCTTCTGATTTTGATCT -CTGACTCATGATCTCTTTATCAATCTCATATCTTCCATTTTTAGAAATAA -ACAATTTTTCCCTTCTATTCATTGACTTTAATCCCTTTCAATATTCATTC -AATACACCTATAATACGAAAAACTCTTATCTTTTTTCATTTTATCACACA -TGGTGCATAATATTATAGTTAGTGGCTATTGAAAAAGCACATCATTTTAT -CACTTTTTGTCACTTTTCCACGATTCTCAACGTCTTTTTTTTAAACACAA -AACGTTTCCCGTCATTTTCTACAGTACTCCCGCATTTTCATTTTCCAGGT -GAGACCTGAGATGGAGGGCGACGAGTTGGTTCATCGTCCGACGGTCCTCT -CGACGACGGCTTCTGCCACGTCACGGCCGCGACACAAGACTTTTGAGCTG -TTGGGTCCGGTGAATAATATCTCGTTGGCTGATATGTATAAAGTGTGCGG -GAAGATAATTGGCAGGTTCCCGATTGCATTTATTATTGCGACGGTGATCA -TGTGCAGTGGTGGATGTTAGTTTTTTTTGACGTAAAAAATACAGTTTGAG -AAAATCTTTTTTTAGATCAAAAAAGAAGAAAAATATGGAAAAAACAACAT -TAAAATATTTTTTAGAAATCAAAAAATGTAAAAACTGTATGATTTTACTT -AGGGCCTCCATGGTAGACAGGCACGGTTTTAGGGCCTGACGCCTGCCTGA -AACCCACGTGGAGTCAGAAAGTCCCATTTCGCTTTGATCTTCAAAAAATG -CGGGAGAAGAGACGCAGATATCTCATCTATTTCGCATGGTTAAGAGCGTG -CTGACGTCACAATTTTTCTGGAAAAATAATCCCGCATTTTTCGTAGATCA -AACCGCAATGAGACAGCCTGACACTATTAAGCCGCAAAGGCAAAAGTGTT -TGCCGTCTGAATTTTGAAACAAAAGGTTTAACCGGTGAAAATTGAAAAAA -AGTATAATAATAATAATAATAAAAGTAGAACTATTTTCAGTATACTAAGG -CAAAATGATTGTTTTATAAAAAAACTTAATTTTAAAATTAGATCTCCTAA -ATGTTTCAAGCAGCACAACTTTCATGTGATGTCAGGCTGTCTCATTACAG -TTTGATCTACAGAAAACGCGGGAATTTTTCTCCCAGGAAAATGTGACGTC -AGCACACAATGCATAATCAGATGAGATTTCAGCGCCTCAACTCCCGCATT -TTTTGTAGATCAAACTAAAACAAGACTCTCTGACACCACGTGAATTTTCC -AACCATCAAACTATCACAAAAAAATTGGCGCCAAAAAAACTTCTTTAAAA -ACTTCTCATTTCCAGTAGGAACAATCGGTCTCGAACTGAAGGATAATGTG -CGCGACGGGTACACGCCGAAAAACTCGCTATCCCGACTGGAAAATCGCCT -TTATCGAGAGTTCCTGAGTTCCGAAGGTGATCCGGTGATGACTACAGTTC -TCATGACTGCCAAAGACGGAGGATCCATGCATCGGATCAAGTATTTGGAA -GAAGCACAGAGGGTGAGTGGCATAACATATCGGATACCGTATTTCCTCTA -TTAGTAAGGCATGCAAAACTGATTTTCGGACACCTAATTTGATGCAAAAC -TAATAGAGGGTGCAAAACTAATTTTCGAACAGGTTTTTTCTCATTAAGTT -ATATTATAATATCATCAATTTCAATAACAACTTCTGAACCAAAATGGGCG -AATTTTACGACTGATACGCAAAAATTGTCCGAGTTGTACTCATATTTTGC -CAGTTTTGACTTGTTATACCAAGTCTGTAAGAGTTTTCCTAATTTTCAGA -ACGATTTTATAATGCAAATTTTGAATTCCTAAACATAGGGAACAAATTAA -GGGGTGCAAAACTATTAGAGGTGCAAAACTAATAGAGAGTGGAAAACTAA -TTTTCGATTAGTGATTTTTGATGCAAAACTAATGGAGGTGCAAAACTAAT -AGAGGTGCCTAACTAATAGAGGAAATACGGTATATTTTTTTGAATAAAAA -ATTTCAGCAATGGCTCTACATCTCCAAAAACCTATCCGCAGACGTTGGAA -ACGGCGAGTTCATGAAATTCGGAGATTTCTGTGGCCACTACTGCCAAGCC -AACGACATCATAGGATACTTCCTGGACGCCTACAAAACCAAGTCAGCTGA -CCCAAAAATGGATGGCTACCAACTCAATTACCCAATTACCACAGTAATGG -GTTATCAGCTTCATCTCGAGCGTAACTTTTTCGGGGTTACTGTGAATCAG -TCGGATCCGGTCACTAATATTCAGAGTATGAAGGTTCTGACGCTTCCTGT -GTTGTCAGAGGTACGGACGTTTGAGGATACGGATAAGCTGAACAAGTGGG -AGCTGGCGGTTTATAACTATGCTACAGGATACTCTGCACTCGAGGGTGAC -GATCATTTGGTGGAGATTAATGTGAGTGAATAAATTGGACCATTTCAAAA -ATATTGGGCCAGCCCTAAAAAGACAGCGGGCCGGCCCATATCGACCCACT -TAACAGGCTCAAAAAAGTTTAGTTCAGTTGTGTGCCGCAAATTTTGAAAT -TTGCCGAGCTCGGCAAAATCGGCAAATTTGGTAAATCGCATAATTTTCGA -GCTCGGCAAATTCGACAAGGCTAAATGTTTGAATTTTGCCGTTTTCGGCA -AACGGCAAATTTGGCAAATTTGCCTTACACCCCTGGTTTAGGGGTTTCGT -GTTTAATTTTCAAAGCTTAGATAAACCTCTTTTCCAGGTGATCGGTGCTG -AAGTCGTCGACACCGAAATGAACAAGGACGCTCAGAAAATGGTGCCCTAC -TTCATCGTCGGAATCGTCTCGATGATCATCTTTATCTTCTGCACCGTATC -CATCTCTGCCTCCTACTACGGATACTTCTCCTGGCGAATCGGACTCATCG -CCCTCGCCTGCCTCTTGGTTCCGATTCTCGCAATTCTCACTGCATTCGGA -ATCAATAATATGCTGGGAAATCGAACGAACTCTCCGATGATGATCATGCC -GTTCTTGATCAATGGAATCGGAGTCAACGATGCGTTTTTGACACTTCAGA -ATTGGTTGCAGCATAGCCCGGATCTTCCGTCAGGGAAGCGGTTGGGGTAT -ATGTTGGCTGAAGCTGGTCCATCGATCACTACGACCACTTTGACAAATGT -CATTGTTTTTTTGATCGGGTGGATGAACCCAACGGAAGGTAAGGTTCAGT -GGTGGACGGCAAACTACTTTTTCCGGCAAATCGGTAAATCGGTAAATTGC -CGGAATTGAAATTTCTGGCAAATCGGAAAACCGGCAATTTGTCGATTTGC -CGAATTTGCCGGAAAAAAAATTGCCGAACGGCAACTGCGCCCTGGTAAGG -TGCATAGCTTTGGCCTCTAACATAAAAAAATTTGTCTATTCATCCTTTAT -TCCAAAACGACATGTATTCCAGAGATGTCAATCTTCTGCCTTGGATGTGC -AATCTCCCTACTCCTCGCCTACGTCTACACCCTCACGTTCTTCTGTCCGG -TGCTAGTTCTTCTGCTTAGCGAACGCGTCAATGAGCCCAGCAAGCTCGAG -GGCACTTTCAACAAGGTTCTCGGATTCTACGCAAAAATCATATGCAGCCG -ATGGACATTTGCACTTCTCATCATCGGAAGTCTTGTCTACTGGGGTTTCG -GTATCTATGGAACACTGGGGATCCGTGCCGTGTTGAACACTGCAAAGATC -CTTCCCCTGGAGACGCCGATCCGCAAACCGAACAGGATTATCGAGGAGAC -CGTGTGGAAAGAGTTCTACCCAGTCACCGTGATTGTGAACAGCCCAGTTG -ATATAAGCAATGCAAATGCACTTCGAGCATTTGACAACCTCGTTCACGAC -TTTGAATCGATGGAAAAGTGCCGGGGATCCGAGTACACCATATCTCCAAT -CAGAGACTATCAGACCTATTTTTACGGTGTAGGAGCCGAGGACTTTGATT -ATGAGGAAGAAACCGTGAAGAACACCTCACATTCTTTAGATTTCAGTGTA -AGTTAGCAGTCCACGCGTTCCTATTAAAATCTACATATATGCCTATAACG -TGTTTATCCACAGAAGAGAAAAATCGCCATATCTGCCGCGCAAATGAATC -CGCGGGAAGAGACAAAACTACTGTAGTTTTTAACCAATTTGTGTAGATTT -ACGAGCTATTGCGTCATCGTTGTATTTAATTTTGAGCCGCAATTTTTAAT -TTTCAGGCGTTTCACACGTTTTTATATTGAAATTTATCTATTTATTGAAT -AAATCTTAAAAGAAAACACAAAAAAATTAGAAAAATTCCGAAAAACGCCT -GAAAATTAAAAATTGCGGCTCAAAATTAAATTCAACGATGACGCAACAGC -TCGTAAATCTACACAAATTGGTTAAAAACTACAGTAGTTTTGTCTCTTCC -CGCGGTTTCATTTGCGCGGCAGATATGGCGATTTTTCTCATCTCTGGATA -AACACGTAATACCTACATATTTTGTGTGCCTAAAAACATGCCTAGCAGTG -AAAGTAGACAAATGTAAGCACACAAACGTGAGTAGGGCTTAAATGGTATG -CAGGCACTGTTTTAGGGCCTGACGCCTGTCCAGGCCTGTCTTGTACGTTT -CATCAATTCAAGCCGTATATTTCCAGAAGCTCACCGGATTCCTTGCCAAC -CCTATCTACAAGCATCACAAGGGAGGACTAAAACTTAACTTTTCAAATCC -GTTAGTTCCTATCTGCCACCTTACCCTAAATCGAGTACCATTTTCAGTGT -TCCAATCCGAAAAGTGCAACTGATATTCGCTTATGAAAACGTAACCTCGT -GGGATGAACGGATTCAGATTATGCAGGACTGGCGGACCATCGCAAGTTCC -CACGTGGCCCTAAATGTTTCAGTGTGGAATGTGAACGCAATGTTCGTAGA -TCAAATGCTGAGCCTGAAGGGATTGGCGATCTCGGTAAGATCTCAATGGT -TCCAGCGCCCTATAAATACCGCTTATTCTTTCAGAATGCCCTAGTCACCT -TGGGATGTATGGCTGCCGTCTGTGTAGTCTTCATCCGCAACCCCCTCTCA -GTTGGCCTAGCGACCGCTTCGATTTTATCCATCTCCATTGGAGTAACTGG -ATACCTGTGCTTCTGGGACTTGGATCTGGACCCTGTGACCCTGTGCGCAG -TAATTGTTTCAATTGGAATGTCCGTTGACTTTGTTGCCCATGTGGCCTGT -CACTATCAGGTCAGGTATAAAGAGTTCGAGGAGAAAGGAGTATTGAAGAG -GATTGAGATGAAAACTCCCGAATCTCGAGTCGTCAACTCGCTGTCCAATG -TGCTCTGGCCAATGGTCCAGTCGGCTTCTTCAACTCTTCTATGTGTACTT -CCACTTGGTATTCTACAGGTACCTACCAATACCTATACTTTACCGATAAC -CCTACCCCTCAAACATTCCAGAACTACCTCCCAATGGTTTTCGTGAAAAC -CATCCTGCTCGTCGTGATCTGGGGAATGTTCCACGGTCTTGTGCTGCTCC -CGTGCATTCTTGCACAGTTTCCCCTGTCTGTGTTCAACAAGACGTTCGCC -GACTTGTTGTTCGGCAGAACATCCTCTTCGTCTTGCTCTTCGGAGTCCGA -TTCGGAAACCGACACCGGTGATGCTCAGGAGATGGTTCCGCTCGCTGGAA -CCGAGAAGGCTTAAGATCTGAAATTAGTTGTTGTTTGTTATTATGTACAG -TTGGGATACAAAGTGTATTATGTAGTCTGTAGTGTCGCAGTGCTACAAAC -TACAAATTCAAAGCTACAAACTATAAACTCATTGAGATCTGGCAGAGCTT -TATAGTTTGTAGTTTTATGTAGCAGCTACAAACTACAAATTTCGATTGTT -GTAGTTTGTAGTATGGCGCACAAACTACAATGTACATTTTGCAAGTTTTC -TAGATTTTTTTCTCACTCACACACACACACACACACCGTTTTGCTACGTG -GCTGCGAAAATGGAAAACTCGGCCACGTCGCAATTCACACATCGCCAGAA -ACTTCTAGCTTTACCAGTAGCTTTTCATGATCTACTCTTCTTTTTTTTCC -CCCCTCAATTTCTATTTGAAATTTCAGAATTCCCTCAATTAGTCTTCTGT -CACCGTGTCCTCCTCTTTTCCGCAAGCGGGTCCCCTTTTCCCCCCACAGA -TCGGCTTCTCAGGGTTCCTATAGCACTTTTTTCTTCGATTCTTGTCACAC -AAAAAATTGTACTTCCATCGCTCGACGTGTCCATTTTTTCTTGTATTTTT -TAAATGCATTTTTTGATAAATTTGATTTTTTTTATCATCCAGAAAATGGT -CAAAAATTCAGATTTTCTTGCTGGGATTTTGCTGGAATTTTTTCAAGCAT -CAGACATGCAAAAACTTATGCAAAACTACACAACACTATCGATGGGGACT -GTTCGACTCTTCACCCCAGTCAAACTTTTTTTCACTATTTTTTTTAACTT -CTGTTTTTTTGGTACTTTTCTGGCCGTTTTTATGGAATTTTTTAACCCGA -CATTGGAGTTTACCTTTTTTTGTTCAGGATTTTAGGAATTTCTGCGACCT -TCTCACTCATGTCCTCCAGCCCCGCCTAAGCCTATGCCTTAACTCAAGCC -TAAGCCTAAGCCTAAGCCTAACCTAAATCGCGTCAGAGATAACGTTCGCC -ACTGACGCCAAGCCTCAACCTAAGCCTAAGCCTAAGCCTAACACTAAGCC -TAAGTATAAGCCTAAATCTAGGCCTCAGCCTAATACTAAGCCTAAGCCTA -AGCCTAAACCCAAGCCATAAGAAGACACTCTAAAAATGTTCAGATTATTA -AAAAATTACATTCAAAGTTTTCTTCAAAATTTTGCTTTCGACTTTCCAAG -TAATCAATACCATGTAGAATTCCAAAATCTTCATACAAATCCCTCCCCTC -TTCACATCTTTCCCGACAGCTTGTACTATTTCTCCTCCACCCACTAGGCC -AGGTCAACGCTGCGTCTCTCGTGTTTCATATGCTATCTCCCTTTTGTGGA -ATCCGTTCATCGTTTCGGATCGCTTACTTCTTCCGCGCGCGTCGCATTTC -ACTTTGAAATAAACTTCAGTTTTCCTTTCCAAAATTTAATTGGTGGAAGC -GTTTGAACATGCGAAATTTGTTAATTATCGTGTGTATTCATTTAATATTA -CTACTTGTACATTTTACCGATGCATGTAAGTTTTGGATGTATCAAAAAAT -TAAATAAATTTCTTAAAGGTGGAGTAGCGCTAGTGGGGAAATTGCTTTAA -AACATGCCTATAGTACCACAATGACCGAATATCATGATAAAAAAATTCAA -AAAATTTTTTAAAATTTTATATGATTTTTTGAAAATTGGAAAAATCTCAG -TTTTTGCCTAATTCCAATTTGAATTACCGCTAATTGGATTTGTTCGATGG -AGCGCGCTTGCACGTTTTTAAATTTATTTATTTTATTTTTTGTTATTTTC -CACCGATTTTTAATGTTTTCGGTGTATTTTTGCTCTAATTTTAGAGAAAA -AGTCAAGATGAATGCAGATTTTCGATTAAAAAGCACGCTCACAGGCGTAA -AAATGACAAAGTAACGATTTTAAACGGTTTCGAACCTGAATTAATTAATT -TCACTGATTTACGACTGTAAGCGTGCTTTTTAATCGAAAATTTGCATTCA -TCTTGACTTTTTCTCTAAAATTCGAGCAAAAATACACCGAAAACATTAAA -AATTGGTGGAAAATAACAAAAAATAAAATAAATAAATTTAAAAACGTGCA -AGCGCGCTCCATCGAACAAATCCAATTAGCGGTAATTCAAATTGGAATTA -GGCAAAAACTGAGATTTTTCCATTTTTCAAAAAATCATATAAAATTTAGA -ATTTTTTAAAGAATTTTTTTATCATGATATTCGGTCATTGTGGTACTATA -GGCATGTTTTAAAGCAATTTCCCCACTGGCGCTACTCCTCCTTTAAAGTT -TGAAGTTTTAGTAAAAAAAGAGTGTCGGTTTTTTAGTTAATAATATTAAT -TTCCAGTCGCCGGAACAGTTCGACCATTTTTCACCACTCTTCCAGTACCT -GGAAGAAATGTTCCTATTATGAGATTATTCGAGAACTATGCTGCATCGTG -CCGACCAAAAAGTAAAAAGGACTTCAATGTTGATCAGCTGGCAAATGTAG -GTTTTTTCCCGCAAAAAGTCGTATTTCGTGCAAAACCGGCAAAAGCAAAA -ATTTTGAATACCGGCAATTGTCGGAGTTGCCGATTGCCGGAAATCAAAAT -TGCGGGAAATAAAATTTTGATACTTTTTTGTAGATTTAGGAGCCTAAAAA -TGCATTTTAATGAACAATTTTTAATTTTCAAGCTCAAAATGATTTAATCC -TTTAAGGATTGACCGTTTTCTTTAAAAAAGACTAACCGAATACTATAAAA -AAAGGTGAAATTTTTTCAATTTCCAAAATATAATTAATTTTGGCAACTGC -CGATTGCCGGAAATTGCCGATTGCCGGAACTTCACAATACCGGCAATTGC -CGAAATTGCCGATTGCCGGAAATTTCCAAAACCGGTAATTGCCGGAATTG -CCGATCGCCGGAAATTCCCGATTGCCGCGCACCCTTGTATTAAAGGATAC -GGCAAACGATTTTTTCCGGCAAGCGGCAATATCGGCAATTGCCGAAATAA -AATATTTTCGGCAAACGGCAAACGGCAGTCAGCAACATGCCACTTCTCCA -ATTTTCGGCAATTTCGGCAAACGGTCAATTTGCCAGAAATCATCGGAAAA -TTGTGATCTTGCACATTTTTTCTGGAAATTTCAGAATTTCAATTTTAAAC -AACAACATTGTACACATCCTATGAATGACACATATCTTAAAAAGCCAGTA -AATTCTATAAAAAATATCTAGAGAAACTGGCAAAATAATTAAAAAAGGCA -CGGATTCATGTGATTTTGATTATTGAAAATATCTTTGAAAACTTTCGGAA -AATTGATATCCGGCAAATCGGCAAATCGGCAACTTGCCGATTTCCCGAAT -TTGCCGAGCAATGAACTACACTGTTCCAAATCGAATTCGTAACCGATATT -ATACTTAGGAATGATATTTGTAACTCGTATAAATATTAAATAATATATAT -ATATTCCAGCTTCTCCAATCTCTCCAAATGGATGAAGTAGCCACAAAAGC -CTACAACTCCCTATTCTTCTCAATGGCTGATATGCAAATCGAAAAGTTCA -TGGGTAAATGGTACACAGTTGTTGATTCGAAAGAAGTTCATAAAGAGGAT -TGTTCAATTTTCTATTGTAAGTTTATTTTCATTCTGAAAATGAGATGCAA -ATTTTCAGTCGATATGGTACTTCAAACTCCATACACCGCAACATTCACCT -CAAAGCAGTACGGAGTGATTAATAATGATGTCGTCACCAATGAGGGGTAC -GGTAGTATGGTTGGTCCAGAGCCCGGAGCCGTTCTTATTACAACTGGTAG -TGAAAGGGATCAGTGTCCATGTAAGTATTTTAAATAACTTTGGTCCGGTG -ATATTAAGATACAAGTTTAAATACTTCCCGTTTCAAAAACTTCGAATTTC -CCGCCAAAACTTTTCTCTGAAAATTTTAATTTCTTTCCAAATTTTTTTCT -TTGAAAATTTGAACTTCCCGCCAAAATTTTGTAGTCAAAAAATTTGAATT -TCTCTCCAAGAATGTTTTCTCAGAAAATTTGAATTTCCCGCCAAATTGTT -AATGTCAGAAATTTTGAATTTCTCGCCAAAATTTATTTTCTGAAAATTTG -GATTTCCCGCCAAAATTTTTTTCTCAATAAATTTAAATTTCCCGCCAAAA -TTTTTCTCTGAAAATTTTAATTTCTTTCCAAATTTTTTTCTTTGAAAATT -TGAATTTCCCGCTAAAATTTTATTGTCAAAAAATTTGAATTTCTCTCCAA -GACTGTTTTCTCAGAAAATTTGAATTTCCCGCCAAATTGTTAATGTCAGA -AAATTTTAATTTCTCGCCAAAATTTATTTTCTGAAAATTTGGATTTCCCG -CCAAAATTTTTTTCTCAATAAATTTAAATTTCCCGCCAAAATTTTGTTAT -CAAAAAATTTGGATTTCTCGCCAAAATTTTATTGTCAGAAAACTTGAATT -TCTCGCCAAAGTTTTTTCTCAAAAAATTTGAATTTCCTGTCAAAACTTTG -TAATCAAAAAATTTGAATTTCCCGCCAATTTTTTTTCTCCGAAAATTTAA -ATTTCCCGCCAAAACTTTGTTATCAAAAATTTGAATTTCTCGCCGAAATT -TTATTGTCAGAAAATTTGAATTTCCCGAAATCTCTATGAATAAAACATTT -GCAGTTTTCCCTGTACGAATCGGTGGCTTGAGTGACGAAGGAGAATATCA -ATACATGATCTTAAGTACACCACTGAAGTATCCAACGATGGTCTTGACAA -GGTAAGTTTGCCTTAAAATTTGTTTTCTAATTATTCCAATCTAATATTCA -TGTGATGTTGAAAAATGCAAACATGTATTTTAATACATTTTCCCCCTATT -GATGCGTACCGAAAAATGTAGAAAAATGGAATCATTTTTTTGCATTTTTC -GACATTTTCGACATTTTTGACATTTTCCGACATTTTTCGACGTTATTCGA -CATTTTCACGCATTTTTCAGAGTTTGCCGAACTAGGCCATTTTGGCTCGG -CCATATCTGGGGTAGATTTACGGCGCGTTGCGTGTCGCGTCGCGGCTTGA -TTTTAGTTGTAAAACTAAATGTATTTGTCCGTGTGGAGTACACGACTTTC -CCAGGCAATTGTCAATGGAGCGCGAAAAATTCAATGAGGAAGGACAGAAC -CCCGTGTCCACAGGAAGAATTTTCTCTGCGTCTCTTGTCTTTAGCATTTA -AAGTGGGGCGACGCCGATGTAGAAAAATGCTGAAAAATTTCGAAAAATGT -CGAAAAATGCACAAAATGATGGCATTTTTCTACATTTTTCTGCATTTTTC -GGCACGCAAAAAACATCACATGAATAACCCCATAAAAACTCCAATTTTTC -CAGAGACCTAACCCTATTCGAAACGAAATGGAAGCGAGAAGTGTATGATT -TTGTTGAGAAGAATGGTTTCATGAGTCCAATGGCAGCATTGAACACTCGT -CTCCATTTCACAGATGTCGATGTTTGCAGAAAAGTGAATAAGTTATATGA -GAATGGAAATGTTTGAGTTGAAGATTATCTTTTTTCTGATGATACGGCAG -AGTTTTTGACGGGTTGTGCAGTGTTTATTTTTAACCTTCATGTGTATTTA -AAAATAAAGATTAATTTAATTGAATCTGTGTTTAATATGAACTTTTAAAA -CACAAAATTTCAGATTTTGGTTTAAAAACTGTAGACACTTGATACTTTGT -TGAGTGTACCTAATTTGAATTTCGCGAAAAAATGACTGTCATATGATTCT -TGACCGTGTACACCTCTCGGGCAATACATTAATATTTTAATATTATGGAT -TATAAGCATTTTCAGTAGACTTTCCATATTTTCTCATGATTATTACTCAT -TTTTATGACGAAAAGCATTGTTTGGAACTCAAAATTATCAACTTTAAATG -TTAAAAAATATTCAGGAAAACATAATATTTGCCTATTAAAAAATTTCCCA -TTAATTTTCCACAAAAAAGTTTCTTTTTTCTTTTTTTAATTTTTTCTCAG -AAAAATCAAATCTCCCAACAAAGTTTTTCTCAGAAATTTTGAATCCACCG -CCAAAAATTTTTCTCAAAAAATTTGAATTTCCCACCAAAAAAATTTTTCT -CACAACTTGAAAATTTGAATTTCCCACCAAAAATGTTGTCTCAAAAATAG -TAAGTTTCCCGCCAAAACTTTTTTTAAAAGAAAATTTGAATTTACCGCCA -AAAATTACTTACCAGAAAATTTCAATTTCCCGCCAAAAATGTTTTCTCAG -AAATTTTTAATTTTTGGTCAAAATTAAAATACTACTACGGTACCTTAATC -CTACACCTCCACCCAAAAAATCATTTTTCAAAAACTACTACAGTACTACT -CCTACAGTACTCCTACCGTACTCCTAAAGTACTCCTACCGTACTCCTACA -GTACTCCGACCGTACTCCTACAGTATCACTACAGTACTCAAACCATATCC -ACCACTAACACCAATCCAATATCCCTTCAAACGACAATAACTTTTTTATT -CAAAAATACAGTAATCTTACTGTAGACAATCTTTTAAATTATAGTCTTCA -TCCAAAACTATAACGGACTCCATCCCATAAAAAGTAAACGACAAGTCATA -AAAATTGGAATTCGCGTAGTTTGCTCTTCCGTGAAGGCAAACACACGTGC -TCAGCTATATTGATAAGAGATGAAAAACGAGAGGAATCAGTCGAGGTGTC -TGATCTACTTCCAGGATGGTGACCGCTCTTCTACTCCTATTGGCTCTTGC -AGCCACCTCTTTGGCGGCTCTTCCAGATTTGGGATATCCCGGATGGCAGT -GCGATGCATCGCTTTATCAGAAGTAGGTGGCTTACTTTAATTACTAAAGT -TTGAAATTTTCCTCGCTTTCAGGAGCAAAAATACCCCGACTTCTGCCCAC -TCCGTCCGATTCACCGACATAAAAGTTTTGGGAGCTCTCGGAGACTCCTT -GACCGCCGCCAATGGAGCCGGAGCACCAAAGGGAGACCCTCTGGCTGTGA -TCCTTCAGTACAGAGGACTAGCCTTCCAGTGTGGAGGTGACCACTCTCTC -GACGAGCATGTCACTGTTGCAAGTAAGCCATTTTTCTGGGGAATTGAGAA -AACTGAGTTGTTGTAGATGTGCTGAAAAAGTTCAGCCCTAACCTAATGGG -ATACTCCACTGGAATCGGAAGTGCCAACGTTTGGGAGGTCTCAAAACTGA -ACCAAGCAGTTCCAGGAGCTGAAGCAATCGATATCATCACTCAGGCCAGA -GCTCTGGTGCAAATTATCCAAAGCCACAAGGAGGTAGCCAAGTCCAAACT -AAACATCAATTCCGATGCATTTCCAGATTGATTACAAAACTGATTGGAAG -CTTATCAACGTATTCATTGGAGCAAACGACATGTGCGCCTATTGCAACGA -CCGAGAAAATGTAAGATAGTCAAAGATCATTCCACACCCGTTTTATTGCA -TTTTTATAGGGCCCACACTCAAAAGCAATCTGGAAGCAAAATGTGATCAC -TGCCATTCAAATTTTAAAGGATAACTTACCAAGGTAGGTAAACTATAGGG -ACATGACATTCTAAAGTAAATAACTATAATATTATGAAATTGTCACATAC -CTATACCTACCTATAAATACCTACATGGTCCAGAGCTGTGTGGCAAATTT -TGAAACCAGCAAATTCGGCAAATTTTCCGGGGTCGTCATACTTGGTAAAT -CGCAACATTTTTTGGAGCTCAAAAAGTGCCAAAATTAACAGAAAATCTAA -GTTGTTAAACATTTGTGGCAAATTCCAAATTTGTCCAAATTTTTGAAATT -TGCCTTGCTCGGGCAAATTCGGCAAATTTGCCGTGGTTGTCGGACTCGGT -AAAGCGCATCATTTTTTGGTGCTCAAAAAGTACCGAGTTGATGGAAAAAC -TAAGTTGTTAAACATTTGTGGCAAATTACAAATTATGTCCAAATTTTTGA -AATTTGCCTTGCTCGGAAACCGGCAAATTCGGGAAATTTGGCACACCCTT -GATCCCATAGCAGTGGCGCAAAAAAATCTTTAAAATTGTGGCCGTTTCCG -TGCCAATTATAAATTAAAGTTAAACATATTATCGAAAAAATACGATCGCA -AATTTTTCTCGTAACTTATTTTTGATCTACCTTGTTGACTAGGCTCCTCC -CCTTCCTTCGACAAGACAGCCACAACAAAATAACAACGGCAACAAGATTA -TGGGCAAACACGTGGTGCCAGGCTGTCCCATTACAGTTTGATCTACAATA -AATGCGGGAATTTTTCGCCCAAAAAAAAAGTGACGTCGGCACGTTCTTAA -CCATACAAAATCAGTTGAGAACTCTGCGTCTCTTCTCCCGCATTTTTTGT -AGATCAACGTAATTCAAGCCAAAATGAGACACTCTGACACCACGTGGGCA -GAGTCAACTTCCAAAGGTAGATCAAAAATTAATTATGAAAAAAATTTGCG -ATCGTATTTTTCGATAATAAGAGCCAACATTTTTCGGCTTTTTATGGAAA -TTTTTTTTTCAAAAAGAGGAGTATGGTCCATAACTATGCCATCAATACCA -AGTCCTTCCAGAACCATCGTATCCATGACCGGAATGTTCGACATGGCCAT -GCTTCGCCAAATCGACCACGACAAGTATTTCTGCGACGGCCTCCATGTGT -TCGAGTGCCCATGCGAGAAGAACAAGGACTTCCCGAATACCGACATCTCG -GCTGCCTGCCATCTTTACATGGATGCTCAGCAGGAGATTCAAGACTCGGG -AATCTTCGACTCAACAGATGACTTTACATTTGTCGTTCAACCATTCTTCA -ATGGAATCACAGTTCCACCACTCAAGCCCGACGGAGAAGTCAATCTGGAT -TGGTTTGCACCGGATTGCTTCCATTTCTCAAAACTAGGCCACGCCAATGT -TGCCAAGCACTTGTGGAACAATATCGTTCAACCAGTCGGATCCAAGAACC -ATCAAGTCAATCTGTCAGATCCTACCATTCCACTAAACTGCCCAGACACC -AAGTGCCCATTCTTCAGAACAACTAAGAACAGTGTTGACTGCTCGAAATA -TATGACTGCCTAGACTGTAGGAAATTGTGTTTGTGTGTGTAATTTGACGT -ACTTATCGGGTCTGCAATAAAATGTTTTATCGTGTAATCTTTAATTTTTA -ACGTGTGAGACATAAAAGAAAGAGCACCCTCAATAAAAATATCCACGTGG -AGTACACAATATAGCTATCAATAGAGCGAGTAAATATTTTTGCAATAATT -ATTTATTAGAAGAATGGAGATCAAGGTAAAGGAAGAGATCTTGATTTTGA -AAAAAAGATACTGGAAATACTAATTGTTCACGGGATTTCATAGAAGGGGA -TATATCACGACTTTTTCTTTGAAAAATAAAAACAACATAAAATTATTGCG -GCTTCACAATCTGATCATCCGGTATTTCTCCAGATCTTTCCTTTTCCGAT -TCGATCTTCTTCCACTTGGTACGCCGGTTTTGGAACCAGATTTTCACCTG -GAATTTGAGAAATTTCAGCTATGCGTTGAGTGCCGCGTTACGTGCTGCGT -TGCGTGCTGCGTTGCGTGCCGCGTTGCGTGCCGCGTTGCGTGCTGCGTTG -CGGGCTGCGTTGCGTGCCGCGTTGCGTGCCGCGCTGCGTGCCTACCTGCG -TCTCCGTGACATCCAATCGTTTTGCAAGCTCACTTCTGTCACTACTTGAC -AAATACTTTTTCGCCTCAAACTGCTTCTCCAGTTCGAATACTTGTTTCCC -GGAAAATGTCGTCCGCGCCTTCTTTCTCTTTGTTTTTTGACATTTTTCTA -TAGGAGACTCTTTGGCTTGGTCGAGGCTGGATTCTGAAAAAATATTCTTA -ACGGCTGATTATTTTTCTACGTGTAGCATTTTTCCGAAATTCATTGAACA -AAATTAGTAAATTTCCAAAAAATTTTTTTTCCAAAATTTCGAAAACATTT -TAATTTTTTTCAGATTTTCTAATATTTTAAAACAAAAATTGAGAGTAAAG -GAAATAAAAATTGTGTCTTGTAATTTTTGTAATTTTTACTCAAAAAAAGG -CCAGTGAAATACTATTACAGAAAATACGAATCGATGCACCATGTCAAAAA -GAATAGTATTTCACCTCAAATGCACCATGCCCAAAACTAGTCTATTTTTC -AACTACAAAACTTCATACACCTAATCCAAAGAAATCAACTTACTGCATCT -TCCAAATTCATCAATTTCTCCATTAACAGTTGGTAAGTCAAGTATATCCT -TTATCAGGTGACTAGTTCTTCTCTGAGGCTTCACATCAGACGTCAACAGT -GCAAAATAGGGTTGAAGTAGTTGGAAGAGCAAGTCAGTTTCCATTTTGCA -CGAATGAAAAGAACTTCTGAGAGACTTCTCTATACAGTAGGTCTCGAGGT -CCCCGCCTTCTCTTCAATCAAATAATTGAAATTCTGGACTCTCGGGGGAC -TTTTGACGGTTGACGACGACGACAATTTGCCAAAGTGGTCGACAATGATT -GCGCAATTGGTGTGGAAAGAAGAAGAAGATGGGTGAGTTCTGAGATGATG -ACAAAAAGAGCATGAGCCAGCAAATTGAATAAGAGACCGGATTTCGAGAA -GGAGGAGGGGGAGAGGAGGATTGGTGGTAAGGGATGATACTTGATGCAAT -TGAGGGAATGAGTTTCTCATACTTGACTATTAAATACTTTTCTTGAACTT -AAATATTTGAATTGAAATTTTGGAGTAGCGGAGGCACATGTGATATTATT -GTGCTAATTTGTAATACTTGGACTTTCAAATATAACCTCAATTATTTGAA -AAAAACCTTTTGAATAGACCAGCAAGGTTGATCTACAATTTTTCATGGAA -ATCGAATTAATTTTGTAAGGATGTCTACTGAGTATAAGCTTATTGTTAGG -CTTAGGCTTAGGTCTAGACTTAAGGCTACACTTAAATTTAGGCCTAGGCT -TAGGCTTAGGCTTAGGCTTAGGCTGAGGCTTAGGCTGAGGCTTAGGCTTA -TGCTCAGACTTAGGCTTAGGCTTACGCTTAGGCTTAGGCTTAGGCTTAGG -TGTTGGCTTCAGAATAAGCTCAGGCGGGGGTGAGGGAAGGGTAGAAAAAA -AAGAAAGAGAAATTTCCAGAAATTCACAAAATCCAGAAAAAAACATATCT -TTCACAAGTTTATATTTTTATAGCCTAAAAAATTACTTTTAAAATGAGGA -TATGCAACCCGCACGCAAAAAAACCTTTTTTTTTTTGAGCAATTTCACGG -CTCTTTTTTTTTTAATTTAAAAATACAATAAAAAAACCAAAAAAATTTTC -CGAGCCCAAATTGCTCCCAAATGCTCTAAATTTCTTTTGAAGTTTGATAT -ATTCCTATTAGAACTTGAGGAAAATGTAAAACTAGAGAAACATAATACTA -CGCATGTTAAATGTAAATTACTTACTTTTAAAAAGTCGTACGTTATTTTG -GAAAGTTTGAGGTTTTTGCATTTTTTCCGTAATATCACTGAACACTTTTA -TTTAAATATCATCAATTATCGGAAGTTTATAGGTTGCAGGAGAAAAAATA -TATTCTAGCGGGAAAATGAAATGAGACGGGGGGACATTTTTAACCAAAAA -AAAATCAGAAAACAGTTGGTAATAAAATTATTCCAAGAAAGTATAAATTC -ATGACTTCCATCTTGGGAACATTCTTAAAAAATGTCAACGAATAAATCTT -TGTGGCAAACAAACTTTTTCCATAAATGTTTCAGACCTTATATAGCGGAC -ATGAAAGTTGATTGCTTATTTGATATGTCTTGAGTTTATTTTTTTTTATT -TCAAGCGAGGGGAGATTTATTTGCCTAGATATATATATAATTATTACTGG -AACGAACTGGAAAAAAACTTGGGATCAAAAAAATCAAAAATTCAAATTCA -AAAATTCAATTTTTCGAAACTTTTTCTACAGCTTTGTCGAGAAGCAACAG -ACAAATACTTATAGCTAAAATTTTATTAATATTCTAGTTTTAGTCATGGT -GAATCGAGAATTTGTCAATTTCCATGTGGTATCTTAAAAATAAACCGATA -CACGTGGTGTCAGGCTGTCTCATTGCGGTTTGATCTACGAAAAATGCGGG -AATATTTTTCCAGAAAAATTGTGACGTCAGCACGCAAAAATTAATAAGGG -TCTAACCAAAAAAACTTGAATCTTGGAAATATTTTTAATTCACCCTAAAT -TTTCCCCTGATTCCGAATATCTATGTGAAAAAATTCAAAAAAAATTTCCT -GAATTTATATTTAAGCTTGAAATCTTTCATAAAAATTTTTTTTTTTTAAA -TTTCATTTGTACTCGCATCACTTTTTTCAAACTCGCGCCCAAATAAATTA -GCGCGCGCGTGCATCGTTTGACTTTTTTTCGTTTAGTTTTTTTTATTTTA -GCCGAATTCAATTTTTTTAAAACCAGTTTCATTCATTTTTGTCGGTTTTT -TTTTTCTGAAAAAAATGTAAAAAAACGAAAAAAAATCAAACAATGCAAGC -GCGCTCCAATGCTAATTTATTTGAGCGCGTATTTAAAAAAGAGACCGGGA -TACAAATGAAATTCGGCGATTTCAAGCTTAAATATAAAATCTGGCAAACT -TGTTTTGAATTTTGAATTTTTTCACATAGATACTCGGAATCAGGGGAAAA -TTAGGATTCATTCAAAAATATTTCCCAGATTTCGGTACCCCACCTTAAAA -ATTTTTTTTTGGGAAAACAAGGAAAATTTCTAGCTTGAACTTATTTTATC -AATACCTAAAATGCTGAACATTAAAACACACACACCCGTATGAGTATTAT -ATACTTCCAAGGAAACATTTGAAAAATAAAGAGTTCTCCGCTTTGATTAT -ACACTTGTGATATTCTCACGCCTGGCACTTGGCACCAGCTCAAAGTGCTC -ATTTTGGCTATAATTGTTTGAAGGTATATGAAAAAGTGGAAATTGGGAGG -AAAAATGGCATGTTTTGGCTTTCTCTACCTGGCCTATGTGTTAGAAAACT -CTTCTATGAAAATTCAGTTTAATTTTTTAATTTTTCTTAATTTTTAAAAT -TCTAAAAATGGCTAAACTTTCAAAAATATAATTTTTAAAAAGCCAAATAC -TATAAAATTTCTTTGTTAATTTCTTTATAACCAAAATTAACGATTTTCAA -AAGTCAAATTTTTCAAAATTACAAAAAATTTAAAATTACTGTAAGATGCG -CAAAAATTACAGAGTTTTCAAAATATAAAACACTCTTGTGGCCGAAAACT -TCCAAAGTTCAGGAAATAAAAATTCCAAAAAAAAATCAAGAAAAAAATGT -ATCTCGAAAAATTACCGCTATTAGAAAATCGCCTTCTCTAAAATTTCCCA -AATTTTGAAATTATGGAAATTCCCAGATTTTTCAAAAGCGATCTAGTCGG -AGTTGTCAGAAAAAAAGTTCAAGAAAACTTTCTCTAGAAACTCAAAAGTT -GGCCTGATCAGAACTTGTTGGATTTTTTCAATTTCCCAAAAAATTTTCAA -AGTTGCCGAAAATTACCGAAACTCCAGGGCTCACTTTTAGACCTTAAAAT -GAAACTTTTGCCATTTGAAAGAGGCTCTTTGAAAAAGGTCTCTGCAAAAA -ATTTAGCGGCAGACGAGCACTTTGAACTAGAAAAATGTCGCTTTGAAATT -GCTATCATTGAAATTTTTCACTACTATAGAGGCCGGTAAAATTGCTCCAA -ATCATAATTTAAAATATTTTTTCATGATTTTTTTTTATTTTTTCATGATT -TTCGAGGTAGGCAAATATTCTGGGAGCTTTTTTGGATATATTTATTTTTT -TGGAAAAAAAAATCTGAAAAATCCCACATTTCCAATAAAAAAATTCCAAA -AAGCTTTCAGAATACTTGTCTACCTCGAAATATCCTAAAATTCATAACAA -TTTCAAAAAAAATATAATTTGGAGCAAATTAACGGGCTATTTCAAAGTCT -AAAAGTGAGCTATAATGCATACATTCCAGAAAATGGAATAAAAAATAAAC -TGAAGTCAATTTAATCTAATCTCATGATACCTCCTCCTCCTTCCCCCAAC -AAATAATGCTCAATAGCCCCCAATCAACTCGTTCCAATTTGAATAGTGTA -TTATTTAACAAGCTTCATCATCTCTTCCTCCTATTTTTTTTTGTCATTTT -TATCGTCCCCTCGGCCGTTTGTATTATCCTCTCTTCCTTCTTCTTCTTCT -TCTTGAAAACGAATTGAATTTCTTCATCCAATTCACTCAAATCACATCCT -CCACGGACACATTCAATTAATCCAAACGTCCTTTTCAATTGAACACAACA -ACAATCACTATTTCATAAAAATTGTTTTAAATGTACATATATCAAAAATT -GCGACGGCTGGAAAAATTAAATTTTTACACCAGAAGAAAATTTGTAACCA -TAGTTATGGTAGCTATAACTCAAAAAAGTAGGAAAATTATGTGACATGTT -CTCAGGACTGCAGTGATCGCAATAAAAATAAATTCTGCTGATCCAATACT -CTTGAAATAATAAATCGTTTCTGATTGATTCCATCATTCTCAGACAAATG -GAGCTTGGTTGAGTGCTCAATTGGTCAATGTCGCTGTCATGGCACCAGGG -TTGTGCGGCATCCGGATTTTCTGGCAATCGGAAATTGCCTTTTGCCGAAC -TCTAATTTTTTTTCGGCGATCGGCATTTGACGGTTGCCGAAAAACTCGTT -TTTTCGTTTTTTCGCCATTTTTCGGCATTTTTCGGCGTGCTTAAACTCTT -TGAGGTTTTTTTTTTATTTTTTCTTGTATTTTATAAATCTAAATAATTCA -ATTCCAAAGTTTGATAAGGAGTGTCTTGGTTTAAATTTTCTAGCACAGAT -CAATTTCATTTATTAACGATCAGACTGGTAGGATAGTCAACGACCCCAGA -GGCAAGAATGATTCAAAATAATTGCACACATGGACAGCAATAGACAAAAT -CTTTGAGAGTTTTATGGTGGGGTGGCGATGTGTCGACCAAAAGAGTATAT -CCACTATATGGCTAATAATTCAAATATGTTGTATTTTGGAAAGTGTTAGA -ACACAAGTGACTTGAGTGTTTTCGGATACAAGAGACACAGAGATGTCCCT -TGATTGTTCACAGAAAGCGATTTTTAAGGGTTTGACTACAATATTTGCGG -ATTTATGTTTCAACGAATAAATGTAAAAAACTCGAATATCATTTACTATA -TATAAAGCGCTTATTCCGTTTTTCCATAGTTTGTAGTCTATGTAGTCTTT -GTAGTTTGCGTAGTTTTAGCTTCTGGAGGGATAGTGAGTTGGGGTTAGTG -TAGGGATATAGTCGGCGTACTGTAGTGGTACAATGGTGGTACGGTAGGAG -TACTGTATGATTACGGTAGTCTCAGAAAAATTGGTTTTCAGCTCCAGAAG -TCGGGGACCGCGCCGGAGGTGCGGTCCACGGCTGGTATATACATATGTAT -ATGTATGTATATATGTATACATATATTCAATTAAATTTAATTTAAAAAAT -AAAAAAAACATTTCTCACAAATGCCGAAAACACCGAAAAATGGCGAACAT -TTTTAGGCATTCGCCGATATTTTGACCAACTATTTTTTTTTGGCGAACGG -CATTCGCCGTTTGCCGCACAGTCCTGCATGGCACCCCGACCGGTTTCGTG -ACAATAGTTTTGACCTGAACGCACTAGGAGTCAGGAAGTTATAGGGGTCA -TGGGTGCTTTAATGACCCCCTGTAAAAAGCACATATATTGACAACAAAAT -TTGCTCGCTGTTTTTTGTATTAATTTTTTGTCTCCCCTCGATGCGCATTT -CTAGTAATGATGCACATATTTATTTTTTTTCATGTACATATCTAACAAAA -TCATAAAACTGAAAATTGCGCTTTTGTTCAAGTTAGCAAGACAACCATTA -TAAAGCTTTCCAAATAGCAAATTAGCAAAATAAAGTGAGAAGCTAGAAGA -TAATGGGGAGTCCCTATAATCTTTCGGGCACACCTTCAGACTTTGTGACT -ATAATAGCCCAAACCCACAGTTTACTGAAAACTAGGGCTTCATTTGCTAT -ATGGTACCCCTAAACTCTTTCAGTAATCGAATCCCAAGAAACCTTCACAT -CTGTAACCTGGACAAAAAACACACAATTTCAAAAATATAGAATTCTTTAT -TCAAGAATCATCATCATCATTTTTTTCAATTTGTACAGACAAATGCCGAC -CATATTTTTTGTCAGGGGAATGGCAACGGCGGGAACCCAAGAAAATCAAA -CAAAAATATGGAGAGAAAAATGAGCCAGAGAGCCTGAGCAACCATGCATA -AATAATGAGGAGTTGGTGAGATGAAGAAAAAACAGATAAGTTACGACGCG -AGGAACTATTTGAAAAATAAACTGCTAAATACTATGTGCTTAATCCTCCC -AGGTAAGCGAGTGACGGTTCTCGTATCTCAGCTGGCAGTTTCTCTTTCCG -TACCAGTTGACGTAGGCGAACTCGGCGTCGGAGACGATGGCGTTGAAGCG -TCCTCCGAACTTGGCCGAGGCGTCTCCCTCGATCTTTCTGGCGGCCTCGA -GGTTGTCCTGGAAGGTATCAGTGATTGGATTTGATTTATAGTTCTTCTTT -TTTTTCTTTAATTTCTTGCTTGTAATTCTAAAGCAACTAGAAAAAAAAGT -TTCGGAACGCATCTATCATGCCAATTTACATAACCGGTATGGGTTTGCGC -GCGCGGGGGGCTTGCAACATTTTCTTAAATGACATTAAGGTATGAGAGGG -GGGGGGGGTGTTGTAAATAGGTATCCAGTTCTTGTCTGTCCCCGTTATCA -AGTTTCTCTGGTGACGCAACGCAAGAAGGCAGAAAACAAACCTTCTCGTT -CTTCAAAGCGGCCTCAACGATGGCGCGGAGCTCTGGATCGTCGCAGTTTC -CCTCGTCTCCTTCCTCATCGGCGTACTCGACAGCTTCGTTGGTCTCCTGG -AAATTTAGAAATTAGATTTTTCTCGAAATTTGGCCGAATATTAAAAAAGT -AATACTAAGAATTTCCCCACGAAAGGCTGAAAAATTGAGGTTTCCTGGGA -AAAGTGAAATCCCGGTCTCAAAATTTTTTTTGATTTTTGAGCTCCGTTGA -ATACCGACAACAAAAATGGCTCTGGAATTTGAAAATTACGGGGAACTGAA -ACGCAACTTCTACTGCTGCCAGTATGTCTCTCCCGCATTTTTCGGAGGCT -CAATCGTAGATCAAAGTTTTCCGAATAAGTTACTATTAGGTTTTTATCGA -GAATTGGTACTAGACTATGTTGACAAATACCAAATATCAAATATTTACCC -AGATGCAAGTTATGGTGCTTTGAACTAGAATTCCTGGGAACTGATTGTAA -GTGTCAAAACCTCAGCCAACCGACCTAAGCCTAAGCCTAAAAAGGTGTAT -CGAACTTAAATTTCGACATGGCATGGCATTCAAATGGGTATACCGATGAT -TTTGTTTCAGCAAAATTTTTAGGGTCGAATTTTTAAGGTAGAGCAAAATT -GGGATAATTTTAAAGACTATTAATTGTCCAAAAATCCAACAAATCCAACT -TCAAATGAGCTTAAACTTTAGATCACCTTCCCAAAAACCCACCTCAACAG -TATCAACTTGCTCGGTGGCGGTCTCGGTGGCGGTGGATGGCTGCTCCTCA -ACAATATCATCATAGGTGCTCTCCTCCTTGGCAGCGGCAACTGGAGCCTG -AGTCTCCTCGACAACTGGAGCTGGAGTCTCTTCAACGACAACTGGCGCCT -CGGTCTCCTCGATCACAACTGGAGCCTCGGTCTCAACGACGGCTGGGGCT -TCGGTCTCTGCAACGACGACTGGTGCTTCAGTCTCAGCGACGATTTCTGG -AACGATTTCCTCTTGGACAGTCTCGACTACGGTTGGCTCTGGTGCTTGCT -GTGGTTCTGGTGCTTGTTCTGGTTCTGGTGCTTGCTGTGGCTCGACAACA -GTCTCGACGACCTGCTCGACTGGTGTTGGGACTGGCCCCTGGGTGTATGT -GGCGACTGGTGCGACTTGCTCGACAACTGAAGTGTGGGTGAGGGTGAATG -TGTGGGTGGGAGTGGTGCGAATCTGACTAAAAACTGTAAAAACTAACCTT -GAACAGCCTGGTGCTCTGGTGGAGCTTGGTAGTTTCCTCCCTGAGAGACT -TGGGTCACCTGGATAGAGCTGACTGGTCCCGATTGGTATCCTCCTTGTTG -AACTTGCTCGACTGGGGCAGATGGTCCGGCGTTGTAGCCTCCTTGTGGGG -CGACTGGGGCTGGTTGGGAAGCTCCAGCGTATGAGGGTCCTCCTCCGATT -GGTCCTTGGGATCTAGCGTATGAGGATGCTCCGACAGCTTGGGAAGCTCC -AGCGTATGATGGTCCAGCTTGCGATCCAGCGTGCGAAGATGCTCCTCCTC -CGATTGGTCCTGGACCAGCTTGGTAGGCACCTCCACCGACTTGTCCTCCG -AATCCTTGTGGTCCCTGGGAGTACGAGGCTCCTCCGACTGGTCCAGGTCC -TCCGAATGGAGCGGCATATCCGGCTCCTCCACCGATTGGTGCCGGTGGTG -GTGGTGGTGGGGGTGGAAGGGCAGGCGCGGCGGCATAGCTTCCGCCTCCG -CCTCCGGTTGCGTAACTGTAAATGAACACATTGGGAATAGTATGGAAGAG -GTGGCTAAAGGGGGAAGCAGGTTTTAGTTTTGGCGGCCAGCAGCAGGAAA -AAGGACATTTTGCATGAATGGGGTGGCAAGTAGAATGGACTTTGTCGCTC -CTTAAGGAAGACATCAAAAGAACTTCAGAAAGAAAGAAATTATTTTTGGA -ATCAGGAAAAAGCATTTGAATAGCAGTAGAAAAAATATAACAATATAGTC -ACAAAAATACAAAAAAAAAGGCAAAATCTTACCTCGAGCTAGAGCATGGT -GGAGCTCCTCCTCCGCACGATGGCTGGGATGGTGGGCAACATCCACCGGC -GCTTCCGGCACCTCCGATACACGCTAACGCAGGCGACACGGCCAATAAGA -CGGCTACCAAGACTCTCATCGTTTTTGAGAAGGCAGAAATCGCAATGGAA -TGCTGAGTAACTGTCGTCGAATGGCAACGTAGGACGTGCCTTTTCTACCT -GCCACCCCAAACTAACTCCGCCCATGGCCGTCTGGAGGGGGCACGCGCGC -GCACGAAGCCTTCCGAAAGACGCCCGATCGCGTTTTATCGATGATGATGA -TGATGATGATGAGATGAAGCCTCTCTCTCTCCGTCGGAGGGCACCTTGCG -ACATTCACCTTGTGTGCGTGTGTGTGTTGCAGAATAGGGGGAAGAAGAAG -CGATCGCGTACAAATGGGGTTCGTGTTCATTTCCGAATGATCCAATGATC -AGCTGGAATATTCCTATTAATGTGACTCGTGCCACGTCATTGTTAATGAT -CTACTATGTTTGAGTGATTGGATATGTGTTGTTTCCTTTTCTAGTTAGAT -TCCTGAACAGTTCACCTTTACCTAATCCGTGATCGATGTTCCAATGCTTC -TTCCTTTCACTTCCACTGCGGCACCTAATCAGGCGGAATAACATGCTTTC -ACTCTGCCGGTAAAGTGTGAAAATCCTAAAGTTTTAGATTTCAAAGATTT -CAAAAACGATCGTTGATCCTACCGCGCTTCCGCATCAACTGATATCAGGT -TTTTTTTAATGATAAGATTGTGGAGGAATGAACTGGTGAACTTTTAGGCT -GATTTAGAGCCACGTGGAAACTTCCAGCTTTTACCTAGGTGACTACAAAC -TACGGAAGATCAAATTACATACATTTTGTAAAAACATACATCACTTTCAA -AAATTTCGGTTTAGTTCAAAAAATCACATTTTTACTGTTTTGAGATTTTT -TTTTTCCCAAAAATGTCGATGCAATTTTGATGTCGATGCACCACGGGCGA -TTTAAAGGAAATTATCAGTTTTCTGAATATTTTTGTTTTGTATGTCTTGA -TTATGGGTTTTGTAGGCTTCGATGGCAGGCAGGCGAGGTTTCGGGTCCTG -GCGCCCGTCTGAAACCTGCCCGCTTCACGCCGGCCTTTTGCCTCTTTTTT -GCATTTTTACGTGGTGCCAGGCTGTCCCATCGCAGTTTGATCTACAAAAA -ATACGGGAATTTTTCGCCCAAAAATATGTGACGTCAGCACGTCTTTAACC -ATACGAAATCAGTTGAGTCTCTTCTCCCGCATTTTTTAGTAGATCTGTGT -AGATCAAGCCGAAATGAAACACGCTGACACCACGTGTGTTTCTCATTGGA -AATTGGAGGCCTAGAAAATCAAAAGTTAGGCCATCAACAGATTTTTGTTT -CAGCAAAAGGCGCGGATTGAGGCGAGGTCGCTTTAAAGTCAGGCAGGCAG -GCGGTTAACGCCTACAGGAAAACTTTAGGTTTTAGGTTATCTGTATGTTT -CCCTTTTGTGTGTTTTTTAGACGTCCAAAGAATCGTATCAAAATGAATAG -GTATTTTCTCGTTTTATGCAGATAGGTAAAGGTCTGTAACCTGAAAATCC -AGAGCCTTATAATCCACACCTACATAATCATCAATTAAAATATTCAGATA -ACTGATAATTTCCTGAAAATAAGATATCTGTAAATTGAATCAACGCCAAT -TTTAGACATGGTGCATCAAATGCAACATTGTATTGATATATAAACTTTGG -CAGTCAATACATGTTTTCTTATGCATTGTTCTCAGTGCACCTTGATCAAT -TGAGTAGACTTCATCTATTCTTGTCCACTTCCTAAACATGAAATCAATCA -CGGCACCCCATCAAAAAGCACTAAAAAAGTACATTTAAAAGAGTACATTA -TTATTGCCCGTTCAATCCTCGTAATGTATCTTTGCAAGTTCCTTCTTCCT -CTGACATTTCCCGTTCCAATTCTCCGCCATACCTGATATGCTCGACTTTT -TCGATCATAGACGCGAATTGCGCAACGCGCGAAAATATCTTGCGCAATGA -ACAAGGAGAAGAAGAAGAAGAAGAAGTAGGAGAAGCCAAATAAAAGATAG -GTGATAACCGAGATGTTAAGCCAAAGAGAAGGAGTGTAATAGCTGAACAA -GGCCTATTTTTGTGTAACTCCCCCCTCTGACAGCTTCTTCACTTTCCCTC -CAACCGTTTTTACTCTGTATGGTAATTGTTGATGGATCGCCATGGAAAAG -CCCTAATGGTCATGAATAAGCTGTAAAGCAGCGGGGGTGAGCTTGAAGGA -CGATCGGACAAATGAGATATGAAGCGTGAAAAACGGAAAGCATGCTTAGA -GGGGGAGATATATGTAGATTTGGGGAAAAGCTACAAGGTCGATTTTTATC -CGGTGTCAGGATTATAGAGGTGTTTTGAAGTAGAAGCAAGGCACTGAAAT -TCACCACTTCCTCTATTAGAATTGCACATTTTTTAAAACTATGTACCTGT -TTTCTTAAGAATTGCTTGAAAAGTTGAATTTGAACTAGTAGTTCTTGCAA -AAAGGCCAATTGAACTATCTGGTTTAGTTGCGTCCTTATTAATATTGCAC -TTTTTAATTCCGGCAAAACGCCGGTTTACCGATTTGCCGGGGATTTTCAT -TTTTGGCAAATCGCCGATTTGCCGTTTGCCGAAAAAATTTTTAACAGACG -GAAAAACTTAAAACTGTGTCATTTTGAATTTATTACCGTTTTCTTTAGAT -ATTTTCATAGAATTTGCTAACTTTTGAAAATAGATGAAGGAACATTTATA -TTATTTGAAATTGAAATTCTGAAACTTCCAAAAAAATAAGTTGCAAAACC -ACAATTTGCCGAAATGCCGTTTTCCCGGCAAATTCGGCAAATCGGCAATT -CGCCGATTTGCCGAAAATTTCAATTCCGGCAATTTGCCGACAAAGCAATG -TTTCATAATACATAAAATGTTTCTAATTTTTAAGAATGATTTTTTTAATT -TTGACAAAGTTTTTTTATAAAAGAGCCGAATTATTTTAAATTCCCGCGCA -AATAAGTGACGCCATTTTTTACATTATTTGTATTTTCTGGCTAAATTAAT -TGGTTTATGTATGTTTTTTCTTTAGTTTATAACTTGAGTAAAATTCACAG -TAAAAATTAATTTTGAAAAATCGATTTTTAGTTTAATTTCAATTTCAGAG -TTTCGGCAAATGTATTCTCAATTAACAAGTTTTCCAAACGGAAAAAAATC -TGAAAATTGACAAACCACGGTGTAGATCAAGCCGAAATGAGACACCCTGA -CACCACGTGTGTTTCCCCTTGGAGGCCTAGAAAATCAAAAGTTGGGCCAC -CATCAGGTTTTTGTTCGACTCAATTGGTAAACTTTGCAGACTAGGCTGAA -ACGTGGTATTTGCAAAAATACAATTTTACACATTTATTTTCCACAAACCG -AATAAAATCCTTATCTCAACAGTGTTATATAATTTTTTTTTTCAGATCAC -TATCACGACATTTTAAAATATATTACAGCACTCTCTTCTTTAGGTTTTGA -ACGTTGATGCTTCGAGGATAAACATGAAAACCAGATCAGCTTTTCCGTGA -CCTCACATACTCATTTTCTCAAATTCTCAAAAATGTTCTGCCTTCTCCAA -CGGTCTCTAAAAAAGCTTGGAAAACCCACAAAAGGTGTCTTGGGACACTT -CTGTCTCTCTCTTTATCGATGACCGGATCGCCCGGATAAACGGGTTTTGC -GGACTGACACCAGCAGGTGGAAATGGGCACACTTGTAAAATAAAACGAAA -AATAATAATAAAAATAACACGGAATGCGGAGAGAAGTGGCAAGATCGGAA -GAATGGTGGGGGGGGGGGGGGGGGGGATTACATAAAGATGGCGGCATAAA -GTGCGTTTCATTAGGGGGATATTGGGGTTTTTATAGGGGGAAACTTTGAT -TTTTTTGAAAAAAAAATTAAGAAAGAAGCGACAACAACCAACAACAAGGT -CATTTTTAAAAGGAAAATTTGGCATGAAATTTACATTTTGGGATGAATTA -TGAGGATATACTCATATAACCTAATTTTGTCACAAAAAAAACGTCGAAAT -TTTTAAAAATGACTACATTCTGCAATTTTGAAAAATTTGGTGGTCCTACC -ACGAAAAATCCATGGTTTTTTGGTATTTTGACGAAAAACTGATTTTTTGT -GTTTTTTTTCTGGTATTTTGAAGCCGCTGTACTTCAAACCCTTTTCATAT -TCTAAAAATATCTTTTTGCAAAATTCGGTTTTTTCTAAAGTTCAAAATAA -ACCACTATTTTCAATTTTTAACGGAAAATCTGCAAATAAAATTTCGGAAA -ATTCCGGCAATTTGCCGATTTGCCATAAATTTCAAGTTCCGGCAACTTGC -CGATTTGCCGATTTGCCGTAAATTTCAAATTCCGGCAAATTTGCGAATTG -CCGTCCTACCATGAAAAATCCTTTTTTTTTCTGGTATTTTGAGACCGCCG -TACTTCAAACAATTTTCATATTTTACAAATATCTTTGAGCGAGCGGTTTT -TTTTGAATTTCAAAATAAACCAAAAGTCTACTTTTTTTGGTTTGTTTTTG -TAATTTTTTTTTTAGAAATTTCAATTTTTATCGGCAAATTGGCAATTTGC -CGGTTTGCCGGAAAATTTCAAATCTGGCGATTTGCTGCTTTGCCGATTTG -CAGGAAATACCTATCCCTGATGTAAATTACCAGAATTAGAAGTTTGGTAC -ACGATTGGCACACAATTTTTTGGTACAAAACACGCTAAAAATTAAATGTT -TTTGAAAAAAAAAATTCTTTTGAAATTGTTTTAGTGTGAATTTCCATGTA -TTCAATTTTTATCATTTTTAGCCTGTTGCTCCAAACTAGGTTTTCTCCCA -CGTGGCATCTCTCATTACACATAAAAATACCTGCTAACTCAAAACATTAA -TCAGAGATCCATATCCATGTCTTCCTCACTTTCCAACTTTTTCCCTCTTA -GCTTATCTAGATATATGTAGGTATATCTATATCTACAAACAACTTTCTCT -TTTCAAACATCCAGTTTATCTTCTGACCTTTGCAACATTTTTCCTTTATT -CCAAACTTCCGCCAGATTGCATCTTATTCAATTATTACATTCAAAGAGTG -TCTAAAGTTTTGCTTAGAAGAAACAAAAGGTAAAATGTCAGATATGTTTA -GAGAAGGTTGTAAAATTTGGCAATTTATTGTAAAAATTCGCAATTTTGAA -ACTCCTTTAAAATGGTTAATTTTGTAGTTAGAGGACTCAAAATTAATGCC -CGAGAACTAAAAAGTTGTCATTTTTCATTTATCAATGATTTTACTTAATT -TCAAAAAAAAAATTTTGCCCAAAAAAGGACAGTCATTAGAAAAAAAAACG -GAAAAATGATATGGAGTGATTCTTTTTTATTTTATAAAATTAATCAGCAT -AGTCAAATGTACCAGAAAAAAGCAAATAAAATGTACTAGATTGACCGGAA -GATTATTTGAAAAATTGCAGAAAATGCACCAAAAGCTGCTTTTTTCAAAA -ATTCAAAAGTACGGTAAAATCATACGGAGCTATTCTTTTTTATTTCATAA -AACTCTTCAGCATAGTCAATAATACCAGAATATGTCAATCAAAGTATAAT -AGCTTGTACGGAAGTATCTTTTTAAAAATTGATAAAAATATATAAAAGCT -GTTTTTTTCAAAAATTCAAAAGTATGGGAAAATCATAAGGAGTCATTCTT -TTTTATTTCATAAAACTCTTCAGCATAGTCAAAAATACCAAAATATGTCA -ATCAAAGTATAATAGCTTGTACGGAAGTATTTTTTTAAAAATTGATAAAA -ATATATAAAAGCTGTTTTTTTCAAAAATTCAAAAGTATGGGAAAATCATA -TGGAGTCATTCTTTTTTATTTCATAAAACTCTTCAGCATAGTCAAAAATA -CCAGAATATATCAATCAAAGTATAATAGCTTGTACGGAAGTATTTTTTTA -AAAATTGATAAAAATATATAAAAGCTGATTTTTTCAAAAATTCAAAAGTA -CGGGAAAATCATAAGGAGTCATTCTTTTTTATTTCATAAAACTCTTCAGC -ATAGTCAAAAATACCAGAATATGTCAATCAAAGTATTATAGCTTGTACGG -AAGTATTTTTTTAAAAATTGATAAAAACAAATAAAAGCTGATTTTTTCAA -AAATTCAAAAATTCAAAAGTATAGGAAAATCATATGGAGTCATTCTTTTT -CATTTTATAAAATTCTTTAGCATAGTCAAAAATACCAGAATATGCCAATC -AAAAGATAATAGCTTGTACGGAAGTATTTTTTTTTTAATTGATAAAATAT -ATAAAAGCTGATTTTTTCAAAAATTCAAAAGTACGGAAAACTATATGGAG -CGATTCTTTTTTCTGTTATAAAACTGTTCATCATTGCCACGTATACCTGA -AACTACCAGAAAAAGTATGCTAGCATGTACGGAAGATTATTTGAAAAATT -GCAGAAAATGCACCAAAAGCTACTTTTTTCAAAAATTCAAAAGTATGGAA -AAATCATATGGAGCGATTCTTTTTTCTTTTATAAAACTGTTCAGCATAGT -AAAATGTACCAGAAAATACCAAAAAAAAGTATGCTAGATGTTCGAAAAAT -TGTTTTTATAATTTTTGAGAGGAGTTTCAAAATTGTGAATATTTACAAAA -AATGGACATTCTTGCCACTTTTTACTAATTTTTGATGGGCTAAACCTAGA -TTTTCTAAATTTTACATTTATGAATTACCCGTTTTCGACGAATTCAGGCA -AATTTTTATTTTTTCCTATTTTTTTCAGCCATTTAATCAGCCATAATAAT -GAATGTCCTTTTTTTTTGGGCAAAAAAAAATTTTTTAAGGCTCGAAGACC -AATTTTAAGTTCTCTAGCTACAAAATGAACCATTTTAGAGGAGTTTCAAA -ATTGTGAATTTTTACAAAAATTGCCCAAATTTGCCACTTTGTAATGGTTT -TTGGTGGGTTAAACCTAGATTTTCTGTATTCTGCATATATGAATTACCCG -TTTTCAACAAATTTTGACAAATTTGTATTTTTTCCAAAATTTTTTTTCAG -CCATCTATTCCTTTTTTTTGTCTGTTTTTTTTTCGGGCAAAAAAACCTTT -CCCCACTGGTGCTATACCACCTTTAACGGTAAATTTTACTGGTCTAAAAA -TCGGCGAAAAAATGAAACTTCAAGTAATATAATGGTAATTGAGTTTTTTT -TTCTATTTTCTTTGTTCAAAATATCAATTATGACAAAAAACGAGAAAATT -ATATTGACACAGTTAAGCGGATATAAATAATAAAACATCACAAGCACATT -TAATTTTTCAAACCCCCTCAGGAGTCATGAAGAAATCCTTCTCTGCACAT -CTACCTTTCTCCACATCCAACTCCTGATTTATTTTCTCCGCAAACTCCGT -GTAACTTTTAATTGCAACATTCAAAAGTTTTGTATGATGCTTCAAGTGAC -CCAAGTCGATTACACAATCCCCGCAAAGAGCTTCGCTGCGAATTTTGTCA -ATTCCCTCTTCTAAATTCACTTGTTCTCCAAACTTCACTGATTTCCTTAG -GATCCCAGTGCTCAGGCAACAGTTTGTGCAAATTCTCAAGGTTTTTGATT -TCAGTTGGCAAGCGGTGCAGATAGGGCTCTGGAATTTTAAATTATTGATT -TTTTTAAAAATTATTAACTCACCTCGTCGCTTTCATGTGCTCTTCTTGGA -TTATGGTCATATGGAACTAAGAATCTCGAAAGTTGTATTAAATCCCACAA -AGATCGATTCACATTTTTCCTTTCAAACGCATTTTCTCGTTTACAGTGTG -GACATCTCTTGTTCAGTAGTTGGAGTCGGCATCTGTCGCAGATAGTGTGA -CCGCAAGTGCCTATACAAGGGATTTGGGTATCATGATCTGGAAAATTTGG -TGTGTAGGGCTTCCATGGTAGGCAGGCGCGGGGCCTGGCCCGCCTCACAC -CGGTGAATTTACAAATTTTTGATTTTCTCGTTTTTGTCATTTTGATGAAA -AACATTGAGGCAGGCGGAGGTCGCCTCAAGTTCACTCGGCGTTTGCCGCC -AGCTTCCTACCCAAAGCTTTGCAACTTCTTACCCAAGCCTTGCCCAAAAA -ATAAAAAGCTTAAATATCAAAATTACTCAATTTTGTGTCATTCTACTAAT -TTTCTGAGAAAATTTGAATTCCCGCCAAAAATTTTATTGGAAAATTTGAA -CTACTGGCCAAAATTTTTTTTGGCTGCGCCAAAGATGATCTTAGAAATTT -GAATTCTCGCCAAAATTTTTCCCAGAAATTTGAACTTCTTGCCAAAAATT -TTTGTTGGATAATTTGAATTTCCGGCAAAAATTATCTTATAGTGAGGACA -CAATCAATAGTTTTGGTCAAAATTGTATTGTCAAATTTTTGATGTGTGTT -GGCAATTTTGGCAAATTTGCCGAGCTCGGCAAATTCGGCAAATTTGCCGA -GCTCGGCAAATTCGGCAAATCTACTTTTTGAAATTCGCCAAATTTGGCAA -ACGGCAGAAAAAAGTACAATTGAGATTTGAGGTACACAAGACTTACATCG -AAATTAATCTAATTAAAAGAATATCACTTACCATATTCATCATAGCATAT -ACTGCATTCAGTAACCTTCATCGCAAAAATAGTCTAGACACTGACCAAAC -ACTACACACTTGATGCTATTTATATACTTTCTATGCTGAGCAATACAGAA -CATGCGATGTGAGGAATCTTAGGTAGCAGAAGTACAAAAAGATTGACATG -TGATTAAATTCCTAATTTGTTCCTTATCACATTTCCCATATGTCAATTAA -TTCGTAGATAGATGCTATTGATAAAAGTTTTTCGAGAATTTGTAAGATAT -GAAAATAATATTCCTCATTTTTAATTTAATGATACAGTACTTTGAAAATT -TCAACAATTTCAACAATTTTTAACACCTATGTTATCATTCATATACAACA -ATTTGTTTAATACAGTAATACATTTCCACCCACGTGGTATTAATACAGTG -TTAAGCTTGTTATTTTTTAAGGAAAAATTTAGAAAATTTTTCTTCCTCAT -TTTGCTTACTTTTCAAAAAAGCGTGCAACTCCCTCATTTAAAAAAGAAGT -GTCGTCGCTGAGGAAAATGTTAAAAATTTCTCTCATGGTGCTAAAATTAC -TAACTAAAAACAGTAAGTATCGTAGCGAAACATTTCAAAAATTTTCAAAA -TTTTTTATTTATAGTCAACAGTTTTGGAAGTCAATTAAAAACATTTTTTA -CTATTTTTAATATTTAAAAACGTTTCAGTTGCTTGTAACTTTATAAGTTT -GCCTACCGTACATTTACCGTAAAACAACCTTAAAAATGTAAGCTTTTCTC -CCGATAAAAATCTTTACTCAGGAGTTCGCGACTCTTCTCTTACATTAATT -TTTTCTCTAATATATTGAGCTCAAACCTAGCTGTAAAATTGAACATACAT -ATAACTTTGAGTGCAATTTAAATTTCAGAAAACTTTCACAAACCCAAAAA -TTGAGAATGCTCAGGACAGTTTGACCTTTCAAGAAAATTGCTTCGAGAAA -ATTCCAAGCTTCACAAAATTGCTCATTGCCAAGTTATTTCCTTTAGTTTG -TGGCCAACGCCTTAAAAAATACAAATTAAAAAAAAAACTCTGACACCACG -TGATGATGCAATCAGACTCACGAACTCACGGGGTTCTGCCCTTCCTCATT -GAATTTTTCGCGCTCCATTGACAATCACCCGCCGTACAACACGTGGGAAA -GTCGTGCACTCCACAAGGACAAATACATTTAGTTTTACAACTAAAATCGA -GCCGCGACGCAACACGCAACGCGCCGTAAATCTACCCCAGATATGGCCAA -GCCGAAATGGCCTAGTTCGACAAACTCTTCCATTTCAATTTATGAGGGAA -GCCAGAAATCCGTGCGAACTGCGAGCCTAACGCTCTTTTTCAAAATATCG -TATAACTCGGAAAACAAGCCATATTCCCAGTTCCTGTTTTATTTCGAAAA -ACAGATAATACAAAAGAAATATCTGAAAATTAAGAATAACATGTTTTTAT -TAAATACTTCTTTGTCTATATTCCATATAAAAAGAACCCCATGCGAATGA -AACACTCACTATACATTCAAAATGAATTTCGCCATCTACCTTCTCGCTTT -CATCGCCTGTCTCGCTAACTTTGGATTTTCACAGGGTAATCCAGGACTCT -CATTTGATCCAGAAGAAGATTCAGTAAATATTGTAAGTTTTCGGATTAAT -GGTTACAACATCTATAAGATTGTTTAGAATGGCAAAGTGCCAGTGGGAGC -AGTGAAGACGTTGGTTAATGATCTTGTGAGCCCTACTATTGCAATTGTGG -AGAAAACATTATCCTCATTGTCAGTTTAAGGAGCTACGGGAGGGCTCCAT -CCATCTCAAATGTTTCAAATAACTCATATTGTTCTTTTATCTGGGAGTAA -ATAAATTACATATTGGGAATCCTTTTCTTTTTGTTGTTAACCAAGTTGCC -GGTTGCCAAATTTTTTTGGGTTCGGCAACTTCGGCAACTGCCGGTATCAA -TGTCAAACATTTTGAAGCTTAGAAAAAAGCATTCAGAGAGCCTGAAAAAT -TCTATAATTTCACTTTAAACGAAAAAAATACCATACTTTTTTACCAAAAC -GCTCAAAAATATAATTTCAACAAAAAAACATTGAAACCTGGTTGCCGAAT -TTTTTTGGGTTCGGCAATTGCCGGTTGCCGTTAACCTCGGTTGCCGCACA -GCCCTGATGTGGAACTCTGCAGGCCTAGCGGCATCCATGTGAAGGAAGCG -TATTGTATTTATTTTTAAACATAAATTAAAAAATCGATAAAACCTTCATA -TATATAAATTGTTTAGACCGGTGAATAAAATGAGACGATGCCACGCGAGT -TGGCGAACGCTTTTCTCCGAAGATCCAAGTCAGGACGTCGTCGATGGGCG -GGACCCGGTGGGCGGAGCTTAGTCGGATAGCGCAGCAGACAAAATACGGG -CGGTGCGTCGAGATCAAGTGCGTACTCCTCGACGGAAAGGGAGCTTGACG -CGTGGATTGCGTTCTCGTCGGATGAGGAAAGATCTTCTGAGGAGGCGACC -GGAGCCAGTGGTGGGAGCTCTTGTAAAAGGCGTTCTCTGAAACAAATAGT -GGTGTTAAGGGGAAATGCGATGGGAAATCCGAGTAGTTGATGTCCGCGGA -ATTAATTTTCTCGGGGTTTCATGGAAATTTAATTCCGCGGATTTCAACTT -GCCGAGTTTTTATTCGATTTTATGAAAAAAATTACACGAGAAATTGTTTT -TTTTAATTAAAGTATCCGAAATCCCCGGAAACAGATTTCCATAGAGAGAG -GTCACTAGAGGTTTCATGGAAATATGTATTCAAGGTCTTAAACTACCCAA -TTTTTTTACCTCGATTTTAACAAATTTCAAGTAAATTTGAATAATTCTAA -CCAGTTTTGTTGTTTTACACAAAAATTCGGGTTCTTTAATCCGCGGAAGT -AGCTTTCCAGAGGTTTCATGGAAATATGTTTCCGGAGATTTCAACTACCC -GAGTTTTTTATCTCGATTTCACACATAATCGGCATAAGAAACTACAATTA -TTTGTTTTCGGGGAAACTTTAAAAAACCCCAGAAAGTTGAATTTCTAGAA -ATTAGCTTTCCCGAGGTTTCATGGAAATTTGTTTTCGCGGATTTCAACTA -CCCGAGTGTTTTACATCAATTTCATCATAATTGACATAAGAAACTACAAT -TATTTGTTTTGGGCGAAAGCTAAAAAATCCCCGGAAATCTGGATTTCTAG -AAACTAGCTTTCCCGAGGTTCATGGAAATTTGTTTCCGCGGATTTCAACT -ACCCGAAATTTTAATTCAATCTTTAAAAAACATCCAGTTTTTGTGACATG -TTCTTCAGTTAAAAAAAATCAGAGTGTTGGAATCCTAAATTTCTAAATTT -TCATAGTTTCCGCGGATCGAATTTCTAGAAATTACCTTTCCCGAGGTTTC -ATGGAAATTAGTTTCCGCGGATTTCAACTTCCTGAAGTCTTCATTGGATT -TCAATATAATTCGCACAATAAAAAAAGCCAAAACGCGAGGATCCCTGGTA -GTTGAAATCCGCAAGAATAGTTTTCTCTAGTTTGAAAAATTTACTGAAAC -CCTTACTTTTGCTTTCCCAAGAATTCGAGTTGTTCCTCGAACAATTGCTT -TGCAGTCCCAATATTCGGCGAAAATTTCGATGGTTCACTATTCCGACGGT -GCTCTTCAATTTTTCGCAAGTTTGCTGATACCTGAAAAATCGATATTTCA -GACTATCTGTGCCAAAAACTAATTTATTAATTTACCTTCTGACTAGCATC -CTCCAGCTCAACAATGTTATGAATGGTGGCTTTATACTGTTTCAGCTTCT -CCTCAATTAAAGTCTGAACACAACCCGTTTGCCGTGCCACGTCATTCAAC -TGCTCCTGAGCATGAGCACTATCTTGTCGGCGGAGCACACATGGCCCGAA -GATCAGAGCCAAGTTGTTGCAGCCCATTTTGTTGACGGCTTCCTGGTCGG -CGACACGTGCCAAATGATACATTAGGCGATCGAGCACGGCGCGGTTCGGT -TTTGGGAGAAGCTCGATCATTACGGAAAGACAACGGACACGTTCACCCAT -ATCCTCCACTTCTGTAATTTTTTTTTTTGGACGAAAAAAAACAACAAAAA -ATATCATTTTGACAAAATGTTAACTTTCAGAAAATTTGAAAATTGATTTA -TTTTTTTTGTTTCAATTTTTAGGTTTATGAATGAATCCGATTTTTTTTTG -TCGAAATTTTTAATAAGAGCCCTAGTAGGCATGTGGTGTGTGTGTGTCTC -ACTTCGGCTTGATCTACGTAGATCTACAAAAAAATGCGGGAGAAGAGACT -CAGAGTTCTTAATGGATTTCGCATGGTTAACAATATGCTGACGTCACTTT -TCTGGGGAAACAATTTCCGCAATTTTTTGTAGATCAAACCGTATTGAGAC -AGCATCTCTGCCTGGCTGCGGACGCCTCGTTTTTCCCTTGGAATTTTTTT -GGCGCGAAATTCAACTTTTCAAGTAAGTGCGAATATTTTCAAGTGAGACT -GTTCAAAATTATTTTGCTGCCAAATTTGAGTTTGCAAATAAATTATTGAG -CAAAATTCAAATGTTCAAATATTTTCTTTCGAAACGTAATGAAAAAACTC -AAAGTTACAAATAATTTGGCGCGAAATTTGAGTTTTCAAATATTTCTAGT -GCAAAATTTGAATTTTTCGAATAATTCTGGTCCAGAATTCAAAAATTAAA -AAAAAATTAGTTTGAAGCGATGCTCAGGTTTTCATAGAGCTTCCATGTAG -GCGTTAAAACGCCTGCCTGCCTGCCTTATGCCGCGCCTAATGCTTGAATA -TACGTAAACTTTTTTTCATTTCTTAATTTGATTTTCAACAAGTTGATAGA -ATTGAGAAAATTATAAATTTGTAAATTTACTTAAAAATGCAAAAAAATAG -GCAGGGTTCAGGCAGGTGCCAGGCCCTGAAACAGCGCCTGCCTACCATGA -AAGCCTATCGTAAAAAATCCAAATTTAATTTTTAATTTTACTAAAATTTC -GATGGCTCGTTTTTTTTCAAACATCACAAACCTGAAACATTCAAAAAATT -TTCATAGAGATCAAAAATGATAATTGGTTCGGCGAGTTCTCGGAAGAACG -CCTTGACAAGTGTAGTTAGCACATGAACTCCAATATCCTCAAGATTCACA -GAATCCGCATCTGAAACTCCGAATTTGATTTTTTTTTTTTCAATTTTTCT -GCAGTTCAACAATTACCTGCAGTCGATTCAATCACTTTTCTGATACTTCG -AACTTGGGGTAGAGATCCACTTTTTCTGAAATTACGGGCGCAAAAATTTC -AATTTCAAAGACCTTCAGGTATTTCCGTACCTATAAACTCCTTCCACAAA -CAGGGCACGTGTCTCAATTGCAAAAAAGAGTCGGTCCAAGAGTGTTGGCA -CAGTATGATCATCATCGACAATTGATACTAAAGAGGCGCCAAAGAATCTT -CCACCATTTGTCTGAAATTCAATATTTATAATAGCATTATAATAGCATAT -TTGGCTGTAGTTTGTAGCAGGGGTCAGGCAAATTGCCGATGTTGCAAATT -TCCGGCAAATCGGTAAACCGGCAAACTGCCGGTTTGCCGAATTTGCCTAA -AAATTTTTGGCAACTTTTTTTTGGAATTTTCAGAATTTCCATTTTAATCG -GCAAAATTTTACGCATCGTATGAATTTTCTTACATTTATTTTGAAAAGTA -AGCAAATTCTATGAAAACATCTGAAGTAAACGAGAAAAAAAAATTCAAAA -AGGCACAGTTTTAAGTGTTTCCGTCTTATAAAAAATCCCTCTAAACATTT -CCGGCAAATCTGATATCCGGCAAATTGCCGGAATTGAAAATTTCCGGCAA -ATTTTGATTCTGAATTTTTCAAAAAAACTGTTGGCAAAATACAAATTTTA -TTTTATTTTCAAATATGTTTTTTTTTTCAGAAAAGTAAATTTTTTGCCGG -GAATCAAATAATTCTTGAAAATGTTTCAAGATTTTTTTGCCACGAAATCA -GACGTTTTCAGAACAGTTTTAGCGGAAAGTTAAAAAAAAATTTCAAAATT -TTTGGCAGGAAGTAAATATTTTTCAGAACATTTATCCGAACAGTTTTGGC -TGTAAATTCAAATGTTTAGTTTTCAACAACTCTTAGCGGAGAATCCAATA -TTTTTCAGAATTTTGGAAATTAAAAATTTATCGAAAATTAATTGCAATTT -CTAAGAAAGCAGTTGTAATTTTTTTTTTCAAAAAGCTACCGAAAAAATCT -GGCAAATTTGGCAAATTTGCCGAGCTGAGCAAACCCGGAAAAACGCAATC -ATTTTCTATACTTTTTGGATCATCAAAATTACTGAATTCCTACAATTAGT -ACACGTCAGATTTTTCTATAAGCTCCGTTTGGTCTACTTGTATAAAGCTC -GAAATATCTCAATGTTATGTTATTTTACTAGATTTTTTTGGAACAAAATC -AATAATTTCGGTTAAATTATATTGTTCATTTTGTGGTGTGTGCGTGAAAT -TTCAAAATTTGCCGAGCTCGGCAAATTCGGCAAATTGCCGCACACCCCTG -TATTACTCACCTTCGGATCAATCGCCTTTCCAGTCATCTGACACGGATGT -GTGACCTTCGGCTGACACTTTTTATGACACGATATCCGGCACGCAACACA -AGTGTACAGCTTCTCATGGTGCCATATTAACTGATTACACACTTCACAAT -AAGTCGGCACATGGACTGCTTCGGCACGGAATCGGTGACCAGCATGTACC -TGGAATATTGGAATTGCGTGGGCAGGGGAAACTAGTTTCATTGAAAATTT -TTTTTTAACTGCTGAAATTAGTCCAAAATGACATGTTATATGTACTTTTC -TCAAAATGTGTGAAAATTGCACACTGAATTAATAAATAATATTATTTTTG -TAAAAACATAAAAAGGGGAAAAGTCAGCGGTAAAAAAGTAAAAACACTCA -GAGTTAGATCTTTTGACCTCCAAAATCCATGAAAATTTGCTTCATTTTTT -TCATAGCTGTGACGTCGTGGGCGGCAATTTCCGTTCGGTAAATTTATTTT -CGGCAAATACGGCAAATTGCCGATTTGCAGTTTGCCGGATATCAATTTGC -CGGAAGTTTTAAAAGGGATTTTTTAAAAATTCCAAAACACTTAAAACTAT -ACTTTTTTGAAATGTATTTTTACTATTTTCTCTAGATATTTTCATAGAAT -TTACTTACTGTTCAAGCCCACAGCTTGCCGAAAATTTCCGGCAAACTGTC -GGTTTGCCAAAATTGCCGAAAATTTAAGAAACGGCAATTTGTCGGTTTTG -CCGTTTTCTAAAAAAATTTAAATTTCGGCAATTACTGTATTTGCCGTTTG -CCGAAAAACTAAATTTGCCGCCCATCGTCACACAATACAAAAAAATTGCG -CGGCTTCTGGAGATCAAATCTGACAGCTTACTGTATTTATAACTACAAAT -TCACGCTGTGTTTTTCTCTAATTCACGTGGTGTCAGGGTGTCTCACTTCG -GCTTGATCTACGTATATCTACAAAAAATGCGGGTGAAGAGACGCAAGAAT -GTGCTAACGTCACTTTTTTTTTGAAAAAAAAAAAATTCCCGCATTTTTTG -TAGATCAAACCGAACCGTAATGGGACATCCTGGCGCCACGTGCTAATAGT -AAGTCACTACATTCTTACCGCCGCTACATCTGATTTTACACGCTTCTTTC -CAACTTTCTGAATACCAATATTTTACACAATTTTCTCGGATTTTGATATA -TAATACTTTCGCGGGCTTCTGGCTTCCCTCATATTTTCAAATGTAAGAGT -TTACCGAATTAGGTCATTTGGGCTAGGCTACGGCGCGTTGCGGCTCGGTT -TTCATTGCAAAACTAAATGTATCTGTCCGATTGTCATTGGAGCGCGAAAG -GAAAGCTAGAAGCCCATGTATTAAAAAATCGACTTACCTTTATCATTGAT -GACTTCTCCTTCCCGCGCTTCTTTTTCGATTGCACATGAACGTATTCGTT -CAGGAAACCTCTGGAATTGAAAAAAATTGTTTTGTTACAAACGCGCCCTA -ATAACAATTGATCGTGTATTCCACGTTGGAAATTATACAAAATACAATGG -AGCACTTTTGCTCGAAGCCTAACATTTTCTAAATGTTTTCTCACCTAAAA -GCGTTAACGCCAAGTGTTGTCGGAAAGGACACACTCTCCTCGAGACAGAC -TTTCGTTAAAAGTCCCTCGAACATTGTGATGACGTCACGGTATTTAAGCA -CGGATTGCTCGACCTGAAATGATATGTTGCTAATTACACTTGCGTGGCCG -TGAACCCCAAAAACTAGGCCACCTTTTGCGCCCAATTACCGATAAAACCG -CCTCATATCCCAACAGCTCCATATGGAAAGCTCTTAGCGACTTTTTGAAG -ACCGCATCCACTACAGTATCCCTTTTGGCATTACTCTCGTTTAGATGACG -TGTCTTGTTGAAAATAAAAATACTGAATTGTCGGAGATCGTCGGTGGATT -CTACAAGCATGTTTCCAGGGTCGATCTGTAAGTATTGTTTAAGTACAAAG -TACTACTGCTTCAGTAAGCATTGTAGTTTATAGTTTGTGGTTTGTGTTTT -GTAGTTTGTGGAGTTTTTAGTATGTAGTGTGAAGCTTGATATTCATTTTG -CAGTACATTGACTTGGATTGGGGTGTGCTAAGATATAATATCAAAGTACA -AACAACGAGTGACAAATTAAACATCTCAATCCGAAAACTACAAACTAAAC -CCTACAGACTACAAACTACAAACTATATCCTACAGACTACAAACTACAAA -CTACAAATCACAAACTACAACCACGCAAAAGAACGTTACCTACCTGTTGC -TTGGTTTTTGTTAAACTGAACGTGCCGGTCGATGGAATTGGTGAGGAGGA -TTGCCGCTGCTTGTGGGGCCTGGAGTTTCAATTTTTTTTTGTTTCAATTA -AGATTTTCCTCAAATGTTCCTTACATCAAATCCCATGGCCGTTTCGGTGA -ATGCAGCCGAGTTGGTGATCGAACTGGTGACGTGGGATTGCACGGGATGG -AGGAGGCGAAGACGAAGCATTCCTTGTGCAGGCACATTTTGCATCCTGGA -AGAGTTCAAATTACGGCTTCTAGGTCATGGTGGCCGTGGCCGAGGCTTGA -AGGGATGCTAGGTCAAGTCTGACGTCACATGTGGTTTTTCTAGGACACGT -TACAAAGATTTCGAAGCGCCCAATTTTCGGAGAGGTTTCTAGGCCATGAA -AATGTTCTAAATTTCAGGTTTCTAGGCCAGTAGAGAATTTTGAGGTTTCT -AGGCCAGTAGAGAATTTTAGGCCATATCTGACGTCACACTTTTTGGGACG -CGCCTAATAACGATGGTGGACCTCTATTCTAGGAGGAGCAACACATTTTT -TACGAATTTCTAGAAGATGCAACTTCTGCTACTAGGCCACTCATGTGGTG -CGAGGCTGTCCCATTACGGTTTGATCTACAAAAATGCGGGAACTTTTTGC -CCAAAAAAATGTGACGCCGGCACGTTCTTAAACTTGCAAAATCAGTTGAA -AACTCTGCGTCTCTTCTCCCGCATTTTTTGTAGATACGTAGATCAAACCA -AAATGGGACCACACACACACACAAAACCCACTCTGACACTTGTGCGCCTG -TGAGATGAAGTTCGTCAGGTGCCGATTGCAAAGAGCACATATCTCCTGCC -GATGAAGTCGTGACATCTTGAATTGATGGTCTTTTGCGACGAACACGTCC -GGCGTCAGTTCACTGGCAAAACTTGGTCCCGGAGACGGTTCATCCTCGTC -CTCGTTCCTGCCAAAAAGTGCCTTCAAATTCTTTTTTGCCTTCTGGAATC -CCAACTTTCCAGCGCCTCCTTTCTTTTTGGAATGTGTTGGGCTTAGCTGA -AAATTCAAAAGTTTTTAATATTATAAGTAGAACCCTTACCGTGAACGAGT -CATCACATCTTGACATTGAGAAATTGTTGGATTCGGTACTATTAGCCCTC -CGTAACATTTTTAATTTGGTGGTTGAAGCCGTAGGGGCCAGAGATTGCCG -TCTATGATGGGATAGATCAGCTCCTTCAATGAGCTTCAACTTTGTGTCTT -CCAGGATAAATGTGGCGTCCACGTCGACGGCGTCATCGCTGAAAAAAGGT -TTGCGTGTTACGGTAAGCGAGAATTATGGCAGAGGTGGGCGGAAATTGCC -GTTCGGGAAATTTTTTGTCGAAAAATTGCCGGTTTGCCGAAAATTTGAAT -TCCGACACTTTGTCGGTTTGCCAGAAATTTTCAATTCCGGCAATCTGCCG -ATTTGCCGGAAAATTTCAATTTCAGCAAGTTGTCGATTTACCGGAAATTT -AAATTCCGACAATTTGCCAATTTGCCGGAAATTTCAATTCAGGCCATTTG -CCGATTTGTCGGAAATTTCAATTCCGGCAATTTGCCGATTTTCCGGAAAT -TTCATATCCGGCAATTTGCCGATTTGCTTGGAAAATATCAATTCCGGCAA -TTTGCGAATTTTCCAGAAAATTTCAATTCCGGCAATTTGCAGATTTGCCT -GGAAATTTTCAATTCCGGCAATTTGCCGATTTACCGAAAATTTCAATTCG -GCAATTTGTGAATTTTCCAGAAAATTTCAATTCCGGCAATTTGCCGATTT -GCCTGGAAAATTTCAATTCCGGCAATTTACCGATTTACCGAAAATTTCAA -TTCGGCAATTTGCGAATTTTCCAGAAAATTTCAATTCCGGCAATTTGCAG -ATTTGCCTGGAAATTTTCAATTCCGGCAATTTGCCGATTTACCGAAAATT -TCAATTCGGCAATTTGTGAATTTTCCAGAAAATTTCAATTCCGGCAATTT -GCCGATTTGCCTGGAAAATTTCAATTCCGGCAATTTGCCGATTTACCGGA -AATCTCAATCCGGCAATTTGCGAATTTTCCAGAAAATTTCAATTCCGGCA -ATTTGCCGATTTACAGGAAATTTCAATTAAGGCAATTTGCCGCTTTACCG -GAAATTTCAATCCGGCAATTTGTGAATTTTCCAGAAAATTTCAATTCCGG -CAATTTGCCGATTTGCCTGGAAAATTTCAATTCCGGCAATTTGCCGATTT -GCCTGGAAAATTTAAATTCCGGCAATTTGCCGATTTGCCGAAAAATTGCA -ATTCTGGTACATTGCCGATTTCCCAGAAAATTTCAATTCCGGCAATTTGC -CGCTTTACCGGAAATTTAAATTCCAACAATTCTGGCACATTGCCGATTTG -CCAGAAAATTTCAATTCTGGCAATTTGCCGCTTTACCGGAAATTTAAATT -CCGGCCATTTGCCGATTTGCCAGAAAATTTCAATTCTGGCAATTTGCCGC -TTTACCGGAAATTTAAATTTCGGCAATTTGCCGATTTGCCGAAAATTTAA -ATTCCTAAGAAACAGTGGCCGAGATCAGTTTTGACGTCACTTCTCTTCCA -GAAAATGCACTAAAGTGATGTGACGTCATGACTGAGTTTCTAGGCCACGT -TTCGTTTGATAAAATTGGCGGAGGACCTAATTTCCAATGGAAAATAAATT -CAATTTTTTTAAATTTCATAATTTTCTGAAAAACTCACTCCTGAAAAGCA -TCACTCTCTTCCGAAATATCATCATCAAGCCCATCCTGCGTAGACTTATC -ACTATCCGAATCATCATCCGAAAGAGCAAAAGCCGCCAGAGAGCTCGGAT -CACTCAAGTCGAACTTTGTAAGATTCACAGCATGAACCTTCCGAACTCTA -AACGGTGACTTCTTAACGTTCAAGGCTCCATTGCCCTTTGGAATCTCGCC -GACTCGCTTGCGAACCGATGCTCCGCGATACGCAGACTGCAGAGCTATCA -CCGATTCTCTTATCGATAAATATTTCTGTCGTTGCTTGTACTTCTTCCAA -TTACACTGTATCGTTTGAGCTGCTAAGGCTTTTTTCCGAACTTCGGCTCT -TGCAAATGATCCTCGAATCAATGCTTGGATCTTGATAATACCCTCTTTCA -TTCTCAAATATCGCTTTCTAGCCAACATTGTCCTGAACCATCGTTGAAGT -GTATCGATTGATTGCATAATTGTCCGATGCAAATGATCATCGAGTATCAA -CTTTTCAGCGTCTCTCATAAAAATCTTATTGGTTCCATATTGAATATTAT -CATTATCAATCGATGCATGGGAATGTATGTACTCTTTCACATCGTCCACA -GTACTATCCCTTCCGTTTCGCAAAAGAATTCGGTATTGCTGGACAAAGCT -TGGATACTCAATTCTCACAGAGTACCCGGCTCTCCGAATTCGAACGGTCT -CGAGCATTCCGGTGTAGCGGAGCTGGCGGAGGATTATGTTGTCGTCGAAG -TGGTTGGCGATCTATAAAATTTTAGGTGAGTGGTTTTTGTCAATAATTTC -TACTTATATTCAGTCATATAAATAAAAACACATATAAGAAAAGTACCAAA -AATTTCGATCACCTAATTTTTTTAATTTTTTCTATACTCTTACTAGTATG -AAAGAGCAGGATACAAAAATAACTCCACAAGTGATAAACCACCTTTAATT -GGATTAGTGTGTATCACTTTGAGTAAGCTAATATTGAAGGTTTAAATGTG -GACTACCTAGCCTAGCAAGAGAGGTCCTGTAAGTAGACTTCAAAAATATA -GATTATCTTATGAACATATGAACTTATAAACAAACGTTGGTCAAAAAGTA -GGTGTTCAAAGATTCCACCAAAGTTTACAAACTCACCTTATCATTATTAC -TCTTAATACACCTTATAAAATACGGCGTCGCGTTGGCCAGTGTGCTCATC -AACCTCGTCAACGAGTACTCGAACTGCTTTGAAACCGACGATGGCTTCTT -GGCAAGCCTCCGTCCTCCGATAGCCTCCTTCAGAATTTGCAGCGATTTCA -GCAAGCTCATTTTGTCGTCAGACTTTCCCGCCGGGGTACGCCGTGCTTGA -TTTCTAATCGTGTTGAACATGCTGGTATCACAAAAGTCTGGAACTTCACA -GCGAAGTTCGCCACGTAGAAATGCGGAGAGAGCAGAGTCCGAGCCACGAC -GGGGAGACGTTACGATGGAGTCCATTACTCGGAGATGGCCGGCGGATTCT -GGAAATGTTGAATAATTATATTAAGGGCAGGATAGCTCAGTCGGTAGTGG -TGGCCGCTAGCAATCTGGAGGTCACGAGTTCAAGTCCGCCTTCAACCCCT -AGGTTCACCAAGCCTCTATTGGAAAATGGAGCAATCCACGACTGGATTAT -AAGCCACAGCCTTCGGCTAGGACGTGGCTTAAATTGTAGCCCAGTGGGAG -CACCACCAGGTAGTGTACCTGACTCCCAGATCCGCAGATACACTCAAAAT -AAAAAAACTGCGTGGCGTGTACTGCAGAAAACCTAATATTTAGGCCCCGC -CTTTTTCTCGTCCACTCACGGAGAAAAGGCAACAATTTTGAACCCAACCA -ATATCAGGCCGCCGACATCTCACGGGTTCCGCGCGCCGCTGCGTTTAACT -CGCTGTGGGCGTGGCGAGCTGTCTCCGCTTGCTGCGAGTTAAACATTGCG -GCGCGCGGAACCCGTGAGATGTCGGCGGCCTGATATTGGTTGTGGTCAAA -ATTTTTTGCCTTTTTTCCGTGAGTGGACGAGAAAAAGGCGGTGCCTAAAT -ATTAGGTTTTCTGCAGTACACGCCACGCAGTTTTATTATTTTGAGTGTAC -TTGAAGAACGGATCGTCCTTTAATCCTTTAATTATACATTGCATTTTTTT -TCCACTTCTACGACTTCGAAGGGGCGCATTTACGCGCGATGGTCCCGCCA -CCCACCCCAAAAATCAATGGGTGGCGCGTGCCGAGACCATCGCTCGTAAA -TGCGCCCTCCTTTAAAGTCGTAGAAGTGGAAAAAATGCACTGTAGAAATG -AAGAATACCATACTTTTTGTGTTAATTTTTTCTATAATATCGTAGTTGTC -CATTTATTTAAATCTTCCCACTTATTTAACTAAGGACTTCTAACGCTTAT -TCCAGTTATTGGTTCCGATTAAATCTACGAAAACTTGCCACTTTTCTGCA -GTTTCCTTGTCGATTGCTTGAACGCGTTCATCGCCCGAAACACACTTCTC -AGCACATTCCACCTGTGCACCGCCACCGGATCGATTCCCAGCAGGGTCTT -CATCACTGAGCTCGTACTGGACTTCAGAGCGTTCAACACATCCTGTCTCA -TTAGGTCCTTATTCTTTTCTCGGAAACCCTGAAATTTAGTTTTGACGTGA -TGATGGAAGACGTTTTTTTTGGAAGTTGTGTGTTTACCGTAATTTGATAC -TTGACTTTTCCAGCATAATGAGCCACGATGAATGCCGGCTCCTTCTTCTG -TGGGGTCTCATAGTATTCGTTGTTCTGGAAATTTAATCATGGAACTAGTC -ATGTAAAAACATTTGAAGGAGTTAAGGTATGTCCCGGAGGAGTGAACATC -TTAAGCCTGACCTAGAAGTTGATCCAAGTGGCAAGCCGACTGGCCTGAAT -CCTATTAACAGGCCTACATGTGAATATTAAAGGTGGATTAGCGCCAGTGG -GAATTTTGTCTAAATACACTTATAACGATGCCAAACGATCGAATATCATA -ATAAAACACTCCAAAAACTTTTAGATTTTTCATAATTTCCGGTCAAAGTT -TTGGAACATTGACAAAATTTTGACAAATTTGAGCTTTTGAGGACATCAAA -ATCAATGTAACATTTTTTTGGACCCCTACAATGTCTTTTTACGAAAAATT -AAAACAAAATTATAGTATAACAAATAGAGAAAAAAATTTTTTTTAGTCGA -ATTTGTGTCACTTTTTGACTGTAAATAAAAAAATTTTGAAAAATTTTTGA -AAAGTTTTATCATGAGATTTGGTCATTTTGGGAGCATAGGAGTGGTTTTT -AACAATTTCCACCACCGGCGCTACTCCACCTTTAATCGATAATCGATTGC -AATTTTTTCATACCTTCAAAAACTGATTTAACTTCGCCAGCATTGAGTCA -TCTGTTCCATTATTGATATTACTCTCCTCATCGACTAGCCTGAGAATTCC -ATATGGTTTACTCTGAAAATTCATCGGAATTTATATATATGGATATATAT -ATATATATATATATATATATATATATATATGTATATATATACATGTATAT -ATATATATATATACAGTGTGGGAAAGTTCTATAGGACCCCCCCTAATTTG -AAGGTTTGAGGAACTTCCGAAAATTTTTTTGAAAAACTGCTAATGCCATT -CGTTTTTAAATTGAAAAAAACCTATATACATTTTTTTCCAGAAGTTTATC -TCAAAAACTGAGGTCGCGCTGGAAAAAACGTCAAAATCCAGTGTGAAACT -TCTATAGGACCCCCCGTTTTTTTTCACGATTTTTACTAAAATCAACAGAT -TTTGGAATTTTTGACAAAGCTCAAATCAAGTTTGAGTTAGAAATGAGTTC -AGATAAGCAGTTTTGACTTTAAAAAATTAATACGAAATGTTCTCGTGGGA -TCTCCAGACTGGTTCTGATTCTTCCGAACTTTGATGTTCAAGTCTGTTTC -AAGCTTCCTGGTGCTCTCGGTAATGCCAAAACTTGATAAACTCTCTTTAA -CAAGTTCCTACTAAAATTCCTAGCACACACACCATAAAAATTTTTACGCC -ATCCCCAAGAAACCAGTCAGAAACAGCGTATTAACAAGTTGCAGTTATTT -TTGATCAACAACAGAACATTCATATACTAAAATCAAGAAAGGATCAATAG -TTAATCGGGTTTCCTTGTGTGCGGATGATCTCAAACAGTCTGTCCTCCAT -TGATCTGACCAAACTTTTCAGCTGGTTGTCCGGAATAGACTTCCAAGCGT -CGAGAATTCCTTGCTTCAACGATGCAACTGTTGGGTAAGTCTTGTTCTGA -GCATACACGATACGGACAAGAATCCCCCACAAATTTTCGATTGGATTGAG -ATCAGGACTTCGAGCTGGCCAATCAAGAAGGTTGATCTTCTTGAGCTTGA -AATAGTCGCGGGTTGAGTTGCTCACATGGATTGTCGCATTATCCTGCTGA -AATCTAAAGTCTTTTCTGGAGTAGTGACGAAGATATTTGGAGAGCTCCAG -TTCCAAGACGTTCTGATAGTCAGTGCTGTTCATCTTGCTACTGACGAACT -GTATCTCAAGCTTCTTCTTCTCCGTGAACGCTCCCCAAACCATCACCGTT -CCTCCTCCAAAATTACGTCTCGAAAAAACCATTGGTTCCTTGCGCAAATC -GCGCCAATAGTAGCGGCAACCGTCAGGCCCATCGAGATTGAATTTCTTTT -CATCGGAGAAGACAACCTAAAACAATGATCCTAATTATTCACTCTTGCTT -TTTTAAATTCTCACTTTACTCCAATTCGTTCCCATATTGTTCTTAGCAAA -TTCCAATCGCTTGAGTTTATGGTCTGCAGAGAGTAACGGAGCAGGGCGAA -GTTTCTGACGAACGATTACACCAGATCGTTTGATGACATTGAGGATGGTC -CTTTTTGAAGCAGACAATTGAAGCTCATTGCGAATATCTCTTGCCGTCTT -ACAGGAGTTGGAGGCAGCACGAATCACATTTCGTTCGTCACGCACGGAGA -GAGCTTTGCGACGAGGAGCTCTTTTAGATGTACCGTAGCTCACCGGATCC -TTCAGATACTCGCGAATACAGTGTCGAGAACGGGAAATTTTCCTACTCAT -TTCATGCAGGGACACATTGAGCAATTTCATAACATCCAGCTGAGCGCGTT -CAGTGTCCGAAAGGGCAGATCCTCGAGGCATTGCAAGTTAGACTGCTTTC -GAAGTAAGCTTTCCAGCCTCTATATGTGTGCCACAACACATGCCACAATT -CCACATTTAATAATTCACGCAAAAAATAGTAAATAACATCTGTGAGGGAC -AATTTAACTTGAAATATTGGTCCCATGGAACCTTGTAATCAAAGAAAAAC -GATTTGATTCCTGATAAGCCTTCCATTGTTTCCTGCTGCATATTTTGCCA -AATCAGCTTGACTACACAGTCGAAACATCTAAAGTGCGTGCTAGGAATTT -TAGTAGGAACTTGTTAAAGAGAGTTTATCAAGTTTTGGCATTACCGAGAG -CACCAGGAAGCTTGAAACAGACTTGAACATCAAAGATCGGAAGAATCAGA -ACCAGTCTGGAGATCCCACGAGAACATTTCGTATTAATTTTTTAAAGTCA -AAACTGCTTATCTGAACTCATTTCTAACTCAAACTTGATTTGAGCTTTGT -CAAAAATTCCAAAATCTGTTGATTTTAGTAAAAATCGTGAAAAAAAACGG -GGGGTCCTATAGAAGTTTCACACTGGATTTTGACGTTTTTTCCAGCGCGA -CCTCAGTTTTTGAGATAAACTTCTGGAAAAAAATGTATATAGGTTTTTTT -CAATTTAAAAACGAATGGCATTAGCAGTTTTTCAAAAAAATTTTCGGAAG -TTCCTCAAACCTTCAAATTAGGGGGGGTCCTATAGAACTTTCCCACACTG -TATATATATATATATATATATATATATATATATATATACATTTGAAACCC -AAAAAGGACTTATTGGACTTACCTGAAACAGCTGCACACACTCCGTATTA -TCAGTATACTCGATATTGGTCCAAGAAATGCCCTCCTTCAAGTACTCCTC -TTGTTCAAATTGGAAAATATGTTGATTGAAATAGGACTGAAGTTTCTCAT -TGGCATAGTTGATACATAACTGTTCAAAGCTGTTGCATTGAGACCCAACG -TCTTCAAATCCGAATATATCCAAGATACCTGAAAATTACTTCAATTTTTA -ACAATTGATAATTAATCTAACCTATATAATATCCCTTCCCAGCTGAGAAG -TCCTTCTTCAGCAATGCCTGATTAATCCTGAGGACTATATAGTGAAACAA -AGAGTTGTATATGCACTTTGCCATGGCATCTCGGGTGTTGGTGGCCTGAA -ATTAATTTTTTTATCTTAAATTCTTAATTTCACTTCTGTATATATATATA -TATTACCTCAGAGACACTATATCGCAAAACTACAGTTTCTGTCTTCATAA -CATGTCGTTTCATAGTGAGAGCCTGCATGAGAGTGTCGGTTTTGATGTGA -AGCAGATTTGCGACTAAATCCACGACTTCTTCATTTTCAATATACCCACT -TTCATCGCTATGGTAGCCATGTCTCTGGAAAATTATAGGAAAAATAAAAA -AAATTTGATGATGTTATTATATTAGGAATCCTCTAAACAAGGGTTTTCAG -GTTTTTTGGTTTTACGATTATTCAAATTTTTATGGAAATTATTATAATTC -AAATAATTTTCGTCACTATTATAGCCATGTTGTTGAAATAATATGCTATT -TTTAAAGGTGGAGCACCGAAATCTGGAAACTATTTTTAAATGAGTCCAAA -TTTTCCCCTGATTCCGAATATCTATGCGAAAAAATTTTAAAAAATTCATT -TATCAAATTTTTCAAATTTTTCAAACGCCGAATTTTCGCGCCAGAAACGC -CGTGTGCACGTGGTATCAGAGTGTCTCATTTTGGCTTGATCTACGCAGAT -CTACAAAAAATGCGGGAGAAGAGACGCAGAGTTCTCAACTGAGTTCGCAT -GGTTAAAAATGTGCTGACATCACATTTTTTTGGCATTTTTTGTAGATCAA -ACCGTATTGGGAGAGCCTGGCACCACGTGAGTAGGCAGGCATTTTTTGCC -TGACTGCTTGCGGGTGCCTCGTTTTTTCCTCAGAATTTTTTGGCGCGAAA -TTCAAATTTTCAAATAATTTTGAATATTTTCGAGTGAAGCTTTAAAAAAT -TGTTTGTGCCAAATTTGAGTTTGCAAATAAATTATCAAAAAATGTGCTGA -CGTCACGTTTTTGAGCAAAAAAATCCCGCATTGTTTGTAGATCAAACCGT -AATAGGACAGCCTGGCACCACGTGCGTGTGTCGATTTACGAGATTTGTGT -ATATTTACGAAATTTTTTATCTTTATCAGACTCTGATTTCCGTTTCTCAA -CGAGTTTTCTTCATTTTTGTATGTGATTTTTTTAAGGTCCATTAAATATT -TTATCATCAAAACCCTAGCAAAATTTTTGGTTTTCAGTCGGTAAAATCAT -ATAGGTAATTGGATTTTCCGTCAAGTTGTGACCTAATAGTAAGCATTGGA -AATTTTGCCAGTTTTAAATAATTAATTGACCCTAAAACACACATTTCAAA -AAAAAACCGATAAAAATTAAAAATTCCGTAAATATACACAAATCTCGTAA -ATCGACACATGGCTCTAGCGCGAAAATTCAAAAACTCTTGGGTGTACAAA -TAGCGATTTCAAGCTCAAATATAAAATCGTGGAAATTTTTTAAAAATTTT -TTTCACATAGGTATTCGGAGTCAGGGGAAATTTGGAGTCAATTAAAAATA -TTTTCCGGATTTCGGTGCTCCGTAGAACTCTCTGAATAAAATTTTAAAAC -TATGGCAATAGGCAATTATTCGGTAGTTAACTTCTGAGTTGTATTTCTTT -TTGAATCTAAACCGTCCCAATCATTTACCTTGATATATGTGATATTGCCA -AGAAGCAACACTGCCGAAATAATCCCGAAGATGGTCTGCTGGGTCTTTGC -ACAAAATCCGACGGAGCTCATTGCATGCCTCAACCTATCAAACTCATTCC -GCTCGTTCACACCTTCCAGTGCAAATGGCTCGTTCTGGAAATTTTTAATT -TTTTTTTAATTTTTTAAAAAATCGCTTTGAGGTCAGCGAATGTATCCCAT -ATTCGCTCCAAACTTTTCCCAGCTCACCTGATTCAAATACTTATAATCAT -GTGGCTTCAACAAGAAATATTTCTTCCTTTCTTCCTCGTCTGCACCCTCC -AGAAGGTAGTAGAATACGTGGTAGTTTCTGAAAAAAATATTAAAGTCCAA -GTGAGACACCAAGGGAGTTTATGTACCGTTCTCCTTTAGTTTGAAATATG -ATGCGTGATTTTTCCAGCAGGTAGATCTCCACGTTTGCTCTGAAAAGTAC -AAGTATAAGGCATTTTTTGTGGTATAGACATCAGGAGAAGGCTTCAAATT -TTACGTTCAGGTCAATTTAGGTCATAGTGCCTAGTAAGTATGGTACCTAT -AAGCTTGATTACTGCCAAAGTAAAAATTTTCCAATTCCGGCAATTTGCCG -ATTTGCCAGGCATTCCAATTCCGGCAATTTGCCGATTTGCCAGGCATTCC -AATTCCGGCAATTTGCCGGTTTGCCGGATTGCCGGAAATTTAAATTCCGG -CAATTTGCCAAATTTTTTTTCATTTTCGGCAATATACTGGATTGCCAAAA -TGTTACGGCAACTTGCCAATTTGCAGGAACTTTTCATTTTCGGCAAATTG -CCGGTTTGCCGATATCCCAGAAATTTTCAGGTCCGGCAAGTTGTTGATTT -GCCGATTTTCCCCGGAAATTTCAGTTCCGGCAACTTGCCGATTTGCCGGA -AATTTTCAAATCCGGCAATCGCGGGAAATTTCAATTCCGTCAAATTACCA -ACATGCCGGATATTCCAATTCCGGCAATTTGCCAATTTGCCGAGCATTTA -AATTCCGGCAATTTGCCGAATTGCTGAAAATATCAATTCTGTCAAATTGG -CAATTCGCCGGACATTCCATATCCGACAATTTGCCGATTTGCCGATTTCC -CAGAAGTTTTCAATTCCGTCAAATTTCTAATTTGCCGGAAATTTCAATTT -TACTAAGTCGCCTGCTAGCCTCCTAATCTCACCCGGAAACCATTCCATTC -TCCCGATAGTTGATTTTGATGAATTTTCCAAATCTGCTACTATTATTGTT -CGTTAATGTGACAGCATTTCCAAAAGCCTCTAGAACAGGACCAGCTGACA -GAAGTGTCTGCTCAGTACTGCAGCCTGTTGAACCTTTCTGTGATAGCGAT -ATCAAATGGGACATCAGATGATTCGTGGATTCCGTTTTTCCCGAACCACT -TTCCCCGGAGATTACCACGCATTGATTTTCCTTGATACGGAGCATGCTGA -AAAAATTGTTTTTTTAAAAATTAGTAGTGACATTTAGTTAATCCAGCATC -AGAATGTATATCTCTGAAATTTTTTTTTTTTGAAATCAAAAGTGCTTTGA -GGGTCTTGAAACGAACACATAACTGCAAAAAAATTGGTGGCCGAGTTTAT -AATCGGCCACTTGGCAAATATACAAGCCAATACACAAAGTGAGCACCTAC -GTGGCCGAGTGAAGAGAAAACTCGGCCACCGATTTTTTTTGGTCACTTGA -AATTTCAAAAAATAGTAACTGGGTTCCGGTAAGAACTTAGAACTCACTTG -TGGTAACAGACATCGGCGATTGCAAAAATGTGCGGTGGTAGTGAGCCGAG -CCGCTTACTTTGAAAGTATAGCCTAGCATATTTTGGGTTGTAGATCGGAA -AAAAGCAAAACGGGTTCACGGCTACTAGAATTGGACCGATGTACGTGTAA -ATGTGCCCATTCGCGAATCTTTCCCGCAAATTGTCCAAGAGGGTTTGCTC -CGTGAGCTCTGGCAAGTTACAGAGATCGGCGTACTCGCGGTCCTGAAAAA -TTTTAAGGTTTAAAATTTTTTTAAATATAAAAATATTTAAAGGTGGAGTA -CAGGAAATCTTTTTTAATTACTCCAAATTTTCCACTGATTCCGAATATCT -AAGTAAAAAATTTTGAAAAAATTTCCCTGATTTTGTATTTAAGCTTGAAA -TTACGATTTTCATTTGTGCCCGCACCACTTTTTTCAAATACGCCCAAAGA -AATTCGCATTGGAGCGCGTTTGCATCGTTTGATTTTCGTCGTTTATTTTA -TTTATTTTCCACGGGGTTCTGGCCTTCTTCATTGAATTTTCGCGCTTCAT -TGACAATCGCCTGCCGGACAACACATGGAAAAGTGTCGTGTACTCCACAC -GGACAAATACATCAGTTTTACAACTAAAGACAAGCCGCGACGCGACACGC -AATGCGCCGTAAGTCTACACAAAATCTCTCCGACCCAAAATGGCCTAGTT -CGGCAAACTCTGCCATTTCGATTTATGAGGGAAGCCAGAATTTCGTGATT -TTCGCCGAATTCAATTTTCTTGAACCAGTTTCAATCATTTTTGTCGAGTT -TTTGCTAGTTTTTTTTTTGACAAAAAGGAATGAAACTGGTTAAAAAAACT -GAATTTGGCAAAAAATAAATAAAATCTTTAAATGAAGGAAATCAAAGCGC -GCTCCAATGCGAATTTATTTGGGTGCGCATTTGACAAAAACACGTGGTGT -CAGGCAAGGGTGTCAATGTCCCGTAAAAATTTCGAAAACGGGACAACGGG -AATTCCCGTTCCCGTGAAAATTTTAAAAACGGGAAAACGGGAATTCCCGT -TCCCGTGAAAACTTCAAAAACGGGACAACGGGAATTCCCGTTTTTTTGAA -AACACTCAAAAAACGGGACAAACTGGGCGGTTTAAAAAAAAGAGTGCATA -GTTGGCGTAAATTTTAGTGTATTCGAGGCAAATTATAAAAAAAAACTGCA -TTATAAACATTTTTATCGATTTTTTCAATATTAAACAGATATTTAAAAAG -CCAAAAAATGAGGGAAAATGTCCCGTTCCCGTGAAAATTTTAAAAACGGG -ACAACGGGAATTCCCGTTCCCGTGAAAACACCCCAAAAACGGGACAACGG -GAAAAACGGGAAACGGGAATTGACACCCTTGGTGTCAGGCTGTCTTATTT -CATTTTTATCTACAAAAACAGCGGGAATAGTTTTCCAGAAAAATTCTAAC -GTCTCTTAACCAGGCGAAATAAAATGAGAAGTCTGCGTCTCTTCACCCGC -ATTTTTTGAAAATCAAAAAAAGAGACCGGGCACAAATTAAAATCAGGGAA -AATTTTTTTAATTTTTTCACATCTAAATTCGTAATCGGGGGGCAAATTTG -GAGTGATTTAAAAATATTTCCCAGATTTCGGTACCCCACCTCAAAAAAAA -ATAATTAAAGAATTGCCTTACCTGTGGCTGAACCAAGAATTTCGTAAGAA -AAGCGTCAATCGATGAGGCGACCTCTGCACTTCCAAACCGAGTGCCGCCG -GTTGCCGCCCGATAACCGCGGTGTCGAAAAACAAATCGATTTTTTGGAGT -GGCACTGTCCACCACTACAGGCAGTCTTGACCAGATGGCCTGTACCGCGA -CTGGGTATTCCCCGGGGTCTAGGCGGCGTTCTTTATAGGTTTGACCGTCG -GGGGTGCCCATCATTTCGAAGAGGTCAAAGTCTTGTACCGACTGGCCTTC -TAGTTCTGGAAATTTTGACTTTAGAAAAGAAATCATTTTTTTCCTTTTTT -TTTTAAATTAGCCCGTGGCTTTTTTCAAAATTAAAAGAAAATTTGAAAAA -ACATTGCATTAGAGCGCGTTTGCATTCACTCCATGCAGTCCAATTTTGCT -GGGAGCTTGAGTGTCTCATTCGACTTGATCTACACAGATCTACTAAAAAT -GCGGGAGAATAAAATCCACTGATATTGTATGTTTAAGAATGTGCTGACGT -CACATATTTTTGTGCAAAAAATTCCCGCATTTTTTGTAGATCAAACCATG -ATGGGACAGCCTGGCACCACGTGAGATTGTGTCGACAAATTTTTGTTGAA -GATGTATGGCCAAAAACGGCACATTTAAGTAATTTATCAGTAGAGCGCGT -TTGAAATTTTTTTAAAAATTCTTTTTAAAAAGAGTTCCCACTACCCCAAG -TCCTCCGATTTTTCTAAAAACTAAGAGAAGGGAATCTACGACCCTGAGCC -TTTAAAACCTTACCAGCTCTCCCGGCGAGCACTTTTTCGATGAGCTCCTC -CGTCGTGCACCGCTTATGAACCTCCAAGTGTACCGTATCATTTTCACAGT -CGGGATTGAAGCTGTGCATATAGACGGCTACCGTATGTGTGTGTGCATCG -TCTGTCGCGTTGATTGTGTGAGCACGTCGGGGAAAACATCCCGTCGCTCC -AGCTGATATTGAGTCAAATGACATTTAGTTAATCCAGCATCGGGATGTAT -ACGTCTGTAAAAAAAAATTTTTTTTGAAAGTAAAAGTGCCTGGAGGATCA -TGCAACGAACACAAAAATTTCACAAGACCGCGAAAAAAATTGGTGGCCGA -GTTTTCTCTTTCGCGGTCACTTAGGAAATACTAAAATCGCACGGATTTCT -GGCTTCTCTCATAAATTGAAATGGAAGAGTTTGCCGAACTAGGCCAGTAT -AGCTCGGCCATATCTGGGGTATGTTTACGACTTTCCCACGCGTTGGGCGA -TTGTCAATGGAGCGCGAAAAACTCAATGAGAAAGGCCTGAACCCCGTGAG -ATCGAAATGAAAATTTGCTAAATGGCCGAAAATTGAAAACTCGGCCGCCA -ATTTTTCCACACGGCCACAGGAAAAATCGTAACAAAAATTGAGAGAAATT -TATTAGAAAAAATCTGAAAGTAATTTTTATTGCACCGTGGCCGCAAAATG -TAAAAACACGGCCACCGATTTTTTTAATGTGGGGAAAAAGTTGGTGGCCG -AGTTTTATATTTTGCGGCCACTTAGAAAATATTTAGATCGAAGGGAAATT -TTGTTGAAAATACGTTTAACGAAAACCAGTCAATTTTTGTTACATGACCG -AAAATTGAAAACTCGACCACGGATTTGTTATGCTTTATAAATTTTTGAAA -CTATTATTTTTTGATTCAGAAATTTTTGGAATTGAAAAAAACTCGGCCAC -ATTTTTTTTCTCACGGTCACAATTTTCTTTGTGATCGTAAAAATGGAAGC -TCGGCCATGGTGGCCGAGTTTTTTTCGCTGCCACTGGTAACACGTGGTTG -GGTGAAGAGAAAACTCGACCACCGGTTTTTTTTGGCCACTGAAATTTTTA -AATTTCAAAATATTTTAAATTTTGCTGCAATCTTTCACCACAACCGCGAA -AAAATGAAAACTCGGCCACCAATTTATTTATTTTCACTGGGAGAAAAAAT -ATTGTTAGCCAAGTTTTCTTTTAGGCAACAGAAAATCAAAAAATGAGCGA -TTTTTGTTACGTGGCCGTGAAAAGAGAAAACTCGGCCACCAATTATTTTT -AATTTGAGGCACTGTTGTAAAATCTTATAAAAAAACAGGTTTAGTACATT -GAACTCAAAAATAAGGAAGATTTTTGGAAAAACAAAAATTGCTGGCCGAC -AGCTGGAAAAAACTCGGCCACCAACTTTTTCCGGTCACACAGCAAAATCT -CTCGATTTTCGATGTTTGAATATTGAAATCTGGGTTGGATTTTTTAGTAT -CATTTCATTTCCGGTGGAGAAACGAGGGAGAGAAAAAGAGAAAAAAGATT -TGTAGTGTCCCGGGAAGCTCTCTTTCTCATGTGGGAAGAAAGTGGAAGAA -GCTTCTGCAGCAGCAGCAGCAGTGGTTCACGAAAGAGAGAGAGAGACATG -TTGGACATGAAAATGATGAAAAATAAGAAGATGAAGAAGAGAATTACACA -CTACCACCACAACACAGATTATTTTTATCACGTTTTGAGGGGGCGCTTCA -CACAATTTTCATGGCCTAGAAATTTAAATTTGGTGGCCTAGAAAATACTA -TATTAATTATATTAATTATTCTACGAAATTTCAATAATTTAAACGGGAAA -ATTTATTTTAAAAAAGCCTAGAAGAGGTTTTGAAATTGGTGGACTAGGAA -ATGAAAAATTGTGTTTTTGGAATTTTCTAGGCCATTTGAACTTCCTGACG -TCCACAATTTTCATGACTTCGAAATTTGAATTTGGTGGCCTAGAAAATCA -TAAAAACTAAGAAATCGAGAAAAAAGCATGGATGAAATTTTGAATTTTAT -AGGTCATTTGAAATTTGTGGCCTAAAAAATGAAAAATGATTTTTTTTTTT -TTGAATTTTCTAGGCCACTTGAATTTCCTGACGTCCACAATTTTCATAGC -CTAGAAATTTAAATGTGGTGGCCTAGAAAATAATTAAAACTAAGAAATCG -AGAAGAAAAGCGTGGAAGAAGTTTTGTATTTTCTAGGCCATTTGAATTTG -GTGGCCTAGGAAATGAAAAAAAGATTTTTTAGGAAATTTCTAGGCCACTT -GAAGTTGGTGGCCTAGGAAATTAAAATTTGTGTTTTTGGCATTTTCTAGG -CCATTTGGATTAGGTGGCCTAGGAATTGAAAAGTAGTTGTTTTGGAATTT -TCTAGGCCATTTGAATTTGGTGGCCTAGGAAATGAAAAAATATTTTTTAA -AGGAAATTTCTAGGCCATTGAAGTAGATGGCTTAGGAAATAAAAAAAGGT -TTTTTAAAGGAAATTTCTAGGCCATTGAATTAGGTGGCCTAGGAAATGAA -AAATGATTTTCTTAAAATTTTTTAAGCCACTTGAATTTGACGGCCTAGGA -AATGAAAAATGGTTTTTTGGTAATTTCTAGGCCACTTGAATTTGGTGACC -TGGGAAATGAAAAATGATTTTCTTGGAATTTTTTAGGCCACTTGAATTTG -ACGGCCTAGGAAATGAAAAATAGTTTTTTGGTAATTTCTAGGCCACTTGA -ATTTGGTGGCCTGGGAAATGAAAAATGATTTTCTTGGAATTTTTTAGGCC -ACTTGAATTTGACGGCCTAGGAAATGAAAAACAGTTGTTTTGGAATTTTT -TAGGCCACTTGAATTTGACGGCCTAGGAAATGAAAAATAGTTTTTTGGTA -ATTTCGAGGCCACTTGAATTTGGTGGCCTGGGAAATGAAAAATGATTTTC -TTGGAATTTCTAGGCCATTGAATTAGGTGGCCTAGGAAATGAAAAATGAT -TTTCTTAAAATTTTTTAAGCCACTTGAATTTGACGGCCTAGGAAATGAAA -AATGGTTTTTTGGTAATTTCTAGGCCACTTGAATTTGGTGACCTGGGAAA -TGAAAAATGATTTTCTTGGAATTTTTTAAGCCACTTGAATTTGACGGCCT -AGGAAATGAAAAATAGTTTTTTGGTAATTTCGAGGCCACTTGAATTTGGT -GGCCTGGGAAATGAAAAATGATTTTCTTGGAATTTTTTAGGCCACTTGAA -TTTGACGGCCTAGGAAATGAAAAACAGTTGTTTTGGAATTTTTTAGGCCA -CTTGAATTTGACGGCCTAGGAAATGAAAAATAGTTTTTTGGTAATTTCGA -GGCCACTTGAATTTGGTGGCCTGGGAAATGAAAAATGATTTTCTTGGAAT -TTTTTAGGCCACTTGAATTTGACGGCCTAGGAAATGAAAAATAGTTTTTT -GGTAATTTCGAGGCCACTTGAATTTGGTGGCCTGGGAAATGAAAAATGAT -TTTCTTGGAATTTTTTAGGCCACTTGAATTTGACGGCCTAGGAAATGAAA -AATAGTTTTTTGGTAATTTCGAGGCCACTTGAATTTGGTGGCCTGGGAAA -TGAAAAATGATTTTCTTGGAATTTTTTAGACCACTTGAATTTGACGGCCT -AGGAAATGAAAAATAGTTTTTTGGTAATTTCTAGACCACTTGAATTTGAC -GGCCTAGGAAATGAAAAATAGTTTTTTGGTAATTTCTAGGCCACTTGAAT -TTGACGGCCTAGGAAATGAAAAATAGTTTTTTGGTAATTTCTAGGCCACT -TGAATTTGGTGGCCTGGGAAATGAAAAATGATTTTCTTGGAATTTTTTAG -GCCACTTGAATTTGACGGCCTAGGAAATGAAAAATAGTTGTTTTGGAATT -TTTTAGGCCACTTGAATTTGGTGGCCTAGGAAATGAAAAATGATTTTCTT -GGAATTTTCTAGGCCACTTCAATTTGGTGGTCTGGGAAATGAAAAATGAT -TTTCTTGGAATTTTTTAGGCCGCTTGATTTAAGTGGCCTAAGAAGTTAAA -AATAGTTGTTACGGAATTTTCTAGGACATTTGAACTTGGTGGCCAAGGAA -ATGAAAAACTTTTTTTTTTGGAATTTTCTAGGTTTCTGTAATATTAATTT -ATTCATTTAAAAAATTAAAAAACATTAAATTTTTTTTAAATTTCGTGTTT -CAAAAAAAAAATCAAATTTGCCCAAAACTTCAAAAATAAGCTAAAAAATT -GTAAAACGATACAGAACGGCTAATAAAACTTGAAAATAATAAGCGTGATG -AGTCGGAAAGAGCCGCCGGCTGGGACCTTCTTTTTCTCTTTTTTTCTCCT -CTCCCATCCCGAGCAGGAGCAACACAACGAGAGAGCACAACAAGAAGAAA -AAGCAGATAGATATATAGATATATGTTGTCTTCTCTTCATATTCTTTCTT -TTATCTTTTCATTCGAAACAACACTTGGTTCATTTCTCCCGTTGGACGGG -GGGGGGGGGGGGGTGACGCGGGAGACGAAAAAAAAAAGAAAAATTGGGAT -GGGAGTTGGAGAATGTTTGGAAAAAGATTGATTGATCAATCAATTTGCCA -GCCGAGTCTCGGCTATTTTCGGAAATCGGGGCTATGCAAATGCGCCCTAC -TGATAAAATGGGACGTGTCATTTAAACTCCTTGGTTTTTTAAAAAGAAAC -GCAAAATCGGCAAATTTCCAGTTTGCCGATTTGCCAGAAATTTTCAGGTA -CAGCAATTTTCCGATTTGCCGATTTGGCGGAAATTTCAATTTCGACAAAT -TGCCGGCTTGCCGAAATGCCAAAAATGTCCAGGTCCGGCAATTTGCCAAT -GTTGATTTTTGGCAAGTTGCTGGTTTGCCGGAAGTTTTCATTTTCGGCAA -ATTACCGATTTGCCAAAACGCCAGAAATGCTCAGGTTCTCTAAACCGCTG -GTTTTCCGGAAATTTTTCATTTTCGGCAAATTGCCGGCTTGCCAAAATGC -CGGAATTTTTCAGGTCCGGCAATTTGCTGATTTGCCGGAATTTTTCATTT -TCGACAAATAGCCGGTTTGCCGAAACGCAAGAAATGCTCAGGACCGGCAA -TTTGCCGATTTGCCGGATATTTTCATTTTCGGCAAATTGCCGGTTTGCCG -ATATGCCAGAAATGTTCAGGACCGGCAATTTGCCGAATCGCCGGAATTTT -TTATTTTTGGCAAATTGCCGATTTGCCGAAAGGCCAGAAATGTTGCGGTC -CGGCAATTTGCCGAAATGCCATAAATGTTCAATTTCGGCAATTTGCTGAT -ATGCCGGAGTTATAAATTTCGGCAAATTGCCGGCTGGTCGATATGCCGGA -AATTTTCAGGTCCTGCAATTTGATGATTTGCCGAAAAATTTATTTAAAAA -AAAAATTAATTTTCGCCAGACAGGAAGTCTCTAAAATCTCATTTAATAAG -AAGAAACAAAAGAAACAAATAATGGCCTAACAAGTTTCGAGTTACAGAAA -CCTAGGCCACTTTGAACACCGGCGTGGCCTAGAAACCCAGTTCCACAAAA -ATAAGAAAAAATTAAAACTCGGCCACATAATCTAGGCCAGGAGCATACAA -ACACTCCACGAATATTAAAGACTCTTTCTAGGTTAGTGGCCGTTAACGAT -GGAAAACTCGGCCATCTGCCAATTTTGTTGCTTAAAATTGGAAAAATAAA -GTTTTTTTAACTTCAAAAAAAAAAGATCAAAAAGTGAAAAGCGGGGATTT -TTCTCACACAATTTAATAAATCTGTAGCCGAGTAGCGGAGAGCTCTCGGA -GCTCAACGTGAATTTCTATTTGGACGGTAAACATACTCAGCCACCCCACC -CCAGCCCACCGTTACTGTCTTTTTTTTTCTTTTTTATTATCAACCAGCAC -TTATCACCTTTATCTTTGTGTGATCCCGCGCCGCGCAAGAACGAGAGAGA -GAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGA -GAGAGAGAGAGAGAGAGAGAGAGAGAGGGATATTGGTGAGACGCAGACAA -TTAGAGTCACTCGTGGGCTCTTTCACACATGTGATATTGAACGAGAAATT -GCGCACCTAGGCCACAAAAAAAACAGTGTATTCGATTTCATGATAGGGGA -GAAGCTGGCACGGTGCCAAGTTTCAGAAAAAATATGGAATTTTTGCTTGA -AGCATGGTGAATCAGACGTGCTTACGTCACAATTTTTCGGGATAAATATT -CCCGCATTTTTTGTAGATCAAACCGCAATGAGACATCCTGATACCACGTG -AGGTTAATTAAAAGTATTGATCGGGATTTTGAGCGTCAAATATGGTGTAT -TTACCGGCAACCCTGATGCGCCAGATTTGACGCGCAAATCCTTCATTTTA -ATAAAGTTGGGCGTCAAATGTGATGCCTGAATTTTCAATTTTTTGAAATG -TTTTGATTTCGTGAAAAATAACGGCGAATTTCAGAAAATTTATAGAAAAT -TTTCATTTGTTGCGACCAAAAAATCTTAAAAACGACCAAAATTCTCAGGA -AATTCACATTTTTCGCCGAAAAAACCATTTTGCGCGTAAATTCTGATGTA -TTTTGCCGTAGGCTATGTGTGAAAACACTGCCGGTAATACGTCATATTTG -ACGCGCAAACCACAAAAATCCTCGAAATTATTCCGGGTGCACAAAATTCT -GAGAATGCGTACAGCGCAACATATCTGACGCGCAAAATATCTCGAAGTGA -AAAATACAGTAATCCTTTTCAAATGACTACTGTAGCGCTTGTGTCGATTT -ACGGGATCTCGACTTTCGAAATGGATTAAAATATATTATTTATCAATAGA -ATATTACAAAAAGAAGTTAATTTCGTAAATCGAGCCCGTAAATCGACACA -AGTGCTATAGTAGTAATTTTAAGAATTACTGTAGTTTTCGCTACGAGATA -TTTTGCGCGTCAAATATGTTGTGCAGTACGCATTCCCAGAATTTTTCGTT -CCCTTTCACAAAAATCTTCAAACTTGCGCGTAAAATTTGGTGCATTGGTG -CCTGTGAGGGGTTCACCTATACAAGTGGTGCCAGGGGCTGTCCCATTACG -GGTTGATCTACAAAAAATGCGGGATTTTTTTGCCCAAACCATGCGAAATC -AGTTGAGAACTCTGCGTCTCTTCTCCCGCATATTTTGTAGATCAACGTAG -ATCAAACACTCTGACACCACGTGGGCCGATGATGTAAGTGCACCAGATTA -CACGCGCAAAAACTGAAAATCTGAAAAAAAAAAAAGCGAAAACTGTCAAA -TTTGAGCGAGTTTTTTATTCCACGAATCACAAGAAAAATCAATAAAAAAT -CGATAATTAAAAAGTGAGTATCATATTATTCGACAACAGAATTTCCAGTT -TCATCAGTGAGCATTGTAAGTATACGATGAGCCATCGACGGTCCAACACG -TCTCCCGTTCTCTGCCACAAGTTCGCCAATCTCTTGAATAGCGAGCGAGT -AGTCCATTTTCGAGTATTTATCGATTGCGGCAATCGGATCAGGGATTAGT -TCGAGAATTGCACGTCGCTGAGCATCCGACAGCCGATCGATTGTTGTGAG -CATTTTCGACCACCAATCCGTGACGATTTCCGAGCGACTTCCGATCACAA -TTCCCTGGAAAAAAATCATCGGGGTTTCATGCTTTTGATCTATTTGATCT -ACAAAAAATGCGGGAATTTTTTGCCCAAAAATATGTGACATCGTCAGCAC -GTTTTTAACCATGTGAAATCAGTTGAGAACTCTGCGTCTCTTCTCCCGCA -TTTTTTGTAGATCTACGTAGATCAAGCCGAAATGAGACATTCTGAGTCTT -GACACGACAAATTCCCGTTAATTACATACGGATGTGAGCCTTTGTTGGAT -GTGAGAGAGTTTCCAGGTTTTTCTCGAAAGCTTTTCTTAAAATTTCATTT -AAAAAATAATTTTTTAACGAAAAACTACAAAAAATCATCCGAAAAACCTG -GAAAATCGATGAAAAACTCTGTGACAAATACAGTACTGTTTAAAGGCGCA -CGCCAGTTTGTGTTCTGAGAATGCGTATTGCACAACATATTTGACGCGCA -AAATATCTAAACTACAGTAATTCTTCAAATGACTACTGTAGCGCGCTAGT -GTCGATTTACGGGTTCGGCTTTCGACAAATTTCGAAAATCGAGCTCGTAA -ATCGACACAACCGCTACAGTAGTAATTTAAAGAATTACTGTAGTTTAGAT -ATTTTGCGCGTCAAATTTGTTGTGCAGTACGCATTCTCAGAACTTTGCGT -TTTCGTGATTTTTTTTTTCAAATTTTAACTGCAGTAAAAAAATAAAACAA -CATAAATTTCATTTAAAAAAAACGATTTTAGCGCTCTTTAAAGGCGCACA -CCCGTTTGTGTTTTAAAAAAAAAAAATGTCGCGTCGAGACCAGATTTCTG -CAGATTTCGCGCCAAGACCCAACCTTATCCCCCTGATACTGTAATTTGTG -GCCTCCTGCCCCTCCTGCACCACCACCACCGCCCCCATCACTTCCAGCGT -CGAGCTTCTTCTTCTCCTGTCTCGCCAAACTTCTCAAGTACTGAGCAGTG -AATAGTGCCAGCTCGGCGATCGTTTCGATTTGCACAATTTGTGCACGATG -TTGCTCGTAGATTTGCAGCGATAAATTGTGCAATTTCTTCTTTTTCGCAA -TTTCTGCCCTGCCGAATGAGACGATGAGCATTGTGCAGCGGCCACCGTTT -TGAAATCCGGATTTTTGCTGGAAAAATAAAATTTAAATGAGATTTTTTTT -AGGTCTCGCAGCGATTTCTCTGGCTGTTTCAATTACGGTTTGATCTACAA -AAAATGCGGGAATTATAAAAAATGTTTGCCCGGTAAAATGTGACGTCAGC -AAAGTTTCTTAACGCTGCGAAATCAGTTGAGAACTCTGCGTCTTTTCTCC -CGCATTTTTTGTAGATCTACGTAGATCAAGCTGAAATGAGACACACTGTG -TGTGCAAACACTATCCACAATACATCATATTTGACGCGCAAACTCTAATT -TTTTTTTCGCTGCGAGACCTAAAAAATCTCAAACTTTCCAGTGAAAATCC -GGATTTTCTTCATTTTAAAAAAGTTGCGCGTCAAATGTGATGTGCCTGAA -TTTTCGCTTTTTTGAAATTTTTTATTTCGTTAAAAATGACGACGAATTTC -TGAACATTTATAGAAATTTTAAAAATTTTCATTTTTTGGGTTAAAAAAAT -CTTAAAAACAACCATAATTCTCAGGAAACTCAAATTTTTCGCCGAAAAAC -CCATTTTGCGCGTGAAATCTGGTGTATTTTACCGTGCCTAGGCTGTGTGA -GAACACTGCCGGTCATACATTATATTTGACGCGCAAACTGCAAAAATCGT -CGGAATTATTTCGGGAACACAAAATTCTGAAAATGCGTATCGCGCAACAT -ATTTGACGCGCAAAATATCTCGTAGCGAAAACTACAGTAATTATGTAAAT -GACTACTGTAGCGCTTGTGTGTCGATTTAAGGGCTCAATTTTCAAAAAAT -CGAGATCCCGTAAATCGACATAAGTGCTATAGTTGTTATTTAAAGAATTA -CTGTAGTTTTCGCTACGAGATATTTTGCGCGTCAAATATGTTGTGCAATG -CGCATTTTCAGAATTTTGTGTTCCCGGAATAATTCCGACGATTTTTGCAG -TTTGCGCGTCAAATATGATGTATGACCGGCAGTGTTTGCCCACATCGCCT -AAGCACGGTAAAATACACCAGATTTTTCGCGCAAAATGGGATTTTCGGCG -AAAAATTCGAATTTCCTGAGAATTTTGGTCGTTTTTACTATTTTTTAATC -CAAAAAAAAATGAAAATTTTTAAATTTTCTATAAATTTTCTGAAATTCAC -CGTCGTTTTTCACGAAATAAAAAAATTTCAAAAAATTGAAAATTCCGCCA -CATCACATTTGACGCGCAACTTTTTTAAAATGAAGAAAATCCGGATTTTT -CTGGGAAATTTGAGATTTATTTAGGTCTCGCAGTGAAAAAAAAATTAGAG -TTTGCGCGTCAAATATGATGTATGACCGGCAGTGTTTGCCCACATCGCCT -AAGCACGGTAAAATACACCAGATTTTTCGCGCAAAATGGGATTTTCGGCG -AAAAATTCGAATTTCCTGAGAATTTTGGTCGTTTTTACTATTTTTTAATC -CAAAAAAAAATGAAAATTTTTAAATTTTCTATAAATTTTCTGAAATTCAC -CGTCGTTTTTCACGAAATAAAAAAATTGATAAAATACACGATAAAATACA -TCAGATTTTACGCGCAAACTGGCAAAAAAATTGATTTTTTGGCTTTTTCG -GACTAAACATTAGAAAAAAGACTATACTCCAACAATTTTTTTCAGTTTTT -TTTTTGAAATTTTTTTTTTTTCAGTTTAAAATGTTTTCATCGCTTTGTTC -GTTTATTTTTGTCTGTTTATTGTGATTTTGTGCGAAATTAATGTAAAAAT -TTCCATATCCAACACTGTTGTGTGATTAATTCGGATAGATAAAAAATGTT -CAGCATGTTGAGTTTAGTTTTCGTCGTCCAATTTAGCTTTTTTTTGATTT -TCAGTCAAGATTTTCTTTCGCCTTCCGCTTTTTGACTTTTCTATGCAGTA -ATGACCAGTCTTGATTTCTAGCTTTTAGTGTTTGGTTTACCATTCTGCTA -TTACATGAGTCACACCTTATCACTAATATAAATGCAGCATAATTTCAGAG -TGAGCAAGCCGCGAGTATTAAACCAGCGCTGTTTTAAACTGATAATGATT -GCAGTTTCCTTCATTCTCACCGAATATCAATTTTTATTCATTCCAGAGTC -TCTCGAACTATGGAAAAACAACTAAAAGCTATGTCCGTCTCGGACAAACC -TGCTGCCCCAGCTGCCCAAAAGCTTGGTACCGCTCCGCTCGCTGCAAAAA -AGACGAGAAATGAGGAGTGGGGAACCAAGGTCAATATCGATACCAACATT -CGCAAATTGAGTAAGTTTTTATTTTACAATTACCAGTCGTTCGAGCTTAT -ATATCAATATTTTTTAGCGATCAAACCGAATCAGCCAATTTACAAGTACG -CTGTGCAAGTGAACTACGTCTTCCGGAAACCTGATGGAACTGAGGCGACA -ATCGAAATGTCCAAATCAGCCAAAAAGGGAACGGAGCACGACAACGACAA -AACACGCTGCCAGAACGTTTACAATGAGGCGATCAAGCGTTACGATGAGC -TGAAAACCGGAGGACCGTTTTTCTACGATCGTCAAGCCTCTTTGTACACT -CTGACCAAATTGAAGAATGAGGTGAATTCGATTTTTTGCTTAAAGTTTAA -TATTTTGCGTTTCAGAGCATCTCTTTCGTTGTTACTGACAAGATTTGCAA -GCGACAAAACTTCAAAGAGGCACAGTTTGTTCTCAAAAAGGTGGATCAAT -CGTTCCAGTCAACATCGAATGACGTCATCAAGACAACCAACTCGTGCCCA -GCCAATGCCGACAAAACTTTGCTTGAGGCAATGAACATCATTGTCTCGGG -ACCAGCGTTCGAAAAGTATGCCGCTTTCAGAGATAATCAAGCTATTTCAT -CTCGTTTTCAGCAAAAATGTTATCACCGTTGGAGCATGCGTTCATTACCT -CATCGACCCAACTGGAGTCGAGTAAGAAACTTTAAGAAATTATCATATTA -GTATTTAATTGTTTTTTCCAGCGTCGCGTACAAGGAATACCCTGAAGGAC -AACTCTACTCAGGAGTTGGTGTTTCAAAGTCGGTGAAGACATTGGAAGGA -ACGGACAAGAAAGTTCCATCACTCTTCATGACAACTGAAAGTTAGTTTTT -CAGAAAATCTAGATTTTTTTCAAAATGTTATAAAATTGTTAATTTTCAGT -GAAGACAACATTGTTCCATCCGGATTATGCCCCACTTGTGGAACTTTTGC -AAACGTTCAGAGGTTTCAGCACAACTCTCAAAGCGAATTCTCCAGCCGCG -CAGAGAATTGAGAAAGCCTTTGTTGGACTGGATGTTGTCTTGAATTACGG -TGTGCACAAGGGTCTCGGAGAGGATGGTGTCGTTATGAAGATCCGTCGAT -TCCACACGTCAGCTAAGGAGACATGTTTTGAAGTTGAGAAGTCAACTCGT -GAATTCACGAACGTCTTTGACTACTTCAAAAAGAAGTATGGAATCACTTT -GAAGTATCCCGATTTATTCACCATTGAAGCGAAAGGGAAACAAGGAAAAA -TTCATTTCCCTGCGGAAGTTCTCCTTCTCTGTCCGAACCAGACGGTCACG -AATGATCAAATGATCAACAATGAGCAGGCGGACATGATTAAGGTAATTTT -ATATTTTAAAATCTGAATAATATCCCGAATCCTTTTTCAGATGTCAGCCG -CACAACCACATATCAGAAAGACGACAACTGATACTATCGTGAGAAACGTC -GGATTGGCTTCCAACAATATCTATGGCTTCATCAAAGTTGAAGACCCAGT -CAACCTTGAAGGAATGGTTCTTCCAAAACCTAAGATTGCGTTTGCCGGTA -ACCGACTCGCTGATTTGGCAAATCCGAAGTCTAGATTCCCCACCGACTTC -AATCGTGCTGGACAATATTACGATGCCAAGGAATTGACGAAATGGGAACT -GGTCTTTGTTCAAAACGAAGAAGTCCAGTAAGTTTCAGTTTGTAATTTTT -CATTTTATTGACTCAATTTCAGAGGACTTGCTAAGCAGCTCGCCGATGAA -ATGGTGAATAATGGTATGAAATGCAGCAACCCAACGATGAGTTTCATCAT -TAGAGGTGATTTGGAACCAATCTTCAAGAAAGCGAAGGCTGCTGGAACGC -AACTTCTCTTCTTCGTTGTCAAATCTCGTTACAACTATCATCAGCAAATC -AAGGCGTTGGAGCAAAAGTATGACGTGCTCACTCAGGAGATTCGCGCTGA -AACCGCCGAGAAAGTCTTCCGTCAACCACAAACTCGTCTTAACATTATCA -ATAAGACGAACATGAAACTCGGAGGACTGAACTATGCTATTGGGAGTGAA -GCGTTCAACAAGCCAAATAGATTGATCGTTGGATTTGTTACTTCTCAACG -AGTTGGTGGAAATCCAGATGTGAGTCATGTGTTACAGCTGCATAATCATA -TTTCATTTTTTCCAGTATCCAATATCAGTTGGATTTGCTGCAAATATGCT -CAAGCATCATCAAAAGTTTGCTGGTGGATACGTGTATGTTCATCGCGATA -GGGATGTTTTCGGATCCATCATCAAGGATACTCTCTTGACAATCTTCAAA -ACATGCACTGAGCAGCGCGGAAGACCAGATGATATCCTTTTGTATTTCAA -TGGAGTTTCCGAAGGTCAATTCTCAATGATCAACGAGGAATTCAGTGCCC -GAGTGAAGGAGGCGTGCATGGCATTCCAAAAGGAGGGAACCCCGCCATTC -AGACCACACATCACCATCATCGCCTCATCAAAGGCTCACAACGAGCGTCT -GTACAAATCCGACAAGGGACGTATTGTTAATTTGGAGCCGGGTACGGTCG -TGGACCATACCATTGTGAGCAATGTCTACACTGAGTGGTATCATGCCTCA -GCTGTTGCTCGCCAAGGAACTGCAAAGGCTACCAAGTTCACTCTCATCTT -CACCACTAAAGCAGGCCCACAAGCTGAGCCATTGTGGCATCTCGAGCAAT -TGACCAATGATCTTTGCTACGATCATCAGATTGTCTTCCATCCGGTCGGA -CTTCCCGTCCCACTGTACATTGCTGATCGTTACAGTCAACGTGGAGCAAT -GGTTCTTGCCGCCAATCAAGGGTAAGTGACAGTAAAATGTATACGACATC -TCATTTATTATTTTCAGTCCAATCTACAATGAAGGACAAATCGATCTCGC -GGCTACCAACAGTGCATATGGCTACGGAGAGAAGAAGCTCTTCACCACTC -GTTTCAATGCATAATTATCTGTACTCCTCCGTTTCTTTTACTTGGCTGTA -TAATGTTTTATTTCCGTCAACCCAGAATACTTTCGCTATGATTGTATATT -TTTTAGCATTTGGTCATTGTAATTTGTAATTATTGTCGGAATGGATAAAA -TGATTTAAGAATCAAATGCATCGCTTCTTGGACAATTCCTGTTGATAATC -TCATTCTGATATTTTCAAAAGTTGTGGTATTGATTTTAAAAATTAAAATA -TTTGCAGCTGCCGCTGTGACTGGAGAAGTTGATGTTTTATTTCTTCCAAT -TCAGCTGTTTGTACCTGTTTTGTAATGTTATTACTTTCTTTCGAACAAAA -TGTCATTCTTTTTCTGGCAGAAAATTCCGCTTTTTAAAAATTATTTTTAC -AACATTACAGATGGATCCTTCTGTTGTGTCTCGATTGGAGAATGTTGCGA -ATCGAATGGAGAATATATTGCTGAAATATGACTCGAACAAAAAAGGCAAT -TAAATAATTGTTCTCGAAATTATAAATTTCAAAAAAATCGCTTTTTAGAA -ACTCCGGTCGGCGCGACGCCTCAAATCATTAATCTTTATGACGATGCGAT -CTGTGAGAATCTCGTCTCGTTTTATGATTTATCTGCAAAAATTGGAGGAG -ATTTGAATCGCCTTGGATGCATGGTAAGGAAATATATAATATTTAATTCA -AATTTTATCGAAAATTATGTTTCAGACTAAGAATCTATTTTTCACGCTTT -TTTCGATGTTTTTTGTGGATTGCGTGTGGGCGCAAAAAAGCGGACAACGA -CGAGTTCGCGACTCTTGTGAACGATTTGACGACGGAAATTGTTGCATTTT -CCGATTTCAAGGAGAAAAATCGAAAATCCGAATTCTATAATCATATTTGT -GGACTTGAAGCTGCGGTTGGAGGTGAAAATTTGCCCCTGATTCCGAATAT -CTATGTGAAAAACTCTTCATTATTTTATATATTTCAGCTTGAAATCGCTT -GTTCATCCATTACTTTTTTCAAGCACACGCCATATTCTCATTGGAGCGCG -CCGTGTTGTGTCGATTTACGAAATTTTCCAATTTTTTCAATTTCAGTTTT -TAAACGAGTTTTTATTTTTGTGGGCTTTATTTTTGTGGGTTTTGCTTTTT -GGGTTAAAAAAAATCTTAAAAACAATCATAATTCTCAGGAAACTCAAATT -TTTCGCCGAAAAACCTATTTTGCGCGTGAAATCTGGTGTATTTTACCGTG -CCTAGACTATGTGTGAGAACACTGCCGGTCATACATCATATTTGACGCGC -AAACTGCAAAAATCGTCGGAATTATTTCGGGAACACAAAATTCTGAAAAT -GCGTATCGCGCAACATATTTGACGCGCAAAATATCTCGTAGCGAAAACTA -CAGTAATTATGTAAATGACTACTGTAGCGCTTGTGTGTCGATTTAAGGGC -TCAATTTTCAAAAAATCGAGATCCCGTAAATCGACACAAGTGCTATAGTT -GTTATTTGAAGAATTACTGTAGTTTTCGCTACGAGATATTTTGCGCGTCA -AATATGTTGTGCAATGCGCATTTTCAGAATTTTGTGTAAAAATTTTTGTG -TTTAGTGATTTTTGCAGTTTGCGCGTCAAATATGATGTATGACCGGCAGT -GTTTGCCCACATCGCCTAAGCACGGTAAAATACACCAGATTTTTCGCGCA -AAATGGGATTTTCGGCGAAAAATTCGAATTTCCTGAGAATTTTGGTCGTT -TTTACTATTTTTTAATGCAAAAAATGAAAATTTTTAAATTTTCTGAAATT -CACCGTCGTTTTTCACGAAATAAAAAAATTTCAAAAAATTGAAAATTCCG -CCACATCACATTTGACGCTCAACTTTTTTTAAATGAACAAAATCCGGATT -TTTCTGGGAAATTTGAGATTTATTTAGGTCTCGCAGCGAAAAAAAAATTA -GAGTTTGCGCGTCAAATATGATGTATGACCGGCAGTGTTTGCACACACAT -AGCCTAGACACGATAAAATACATCAGATTTTACGCGCAAACTGGCAAAAA -AATTGATTTTTTGGCTTTTTCGGACTAAACATTAGAAAAAAAGACTATAC -TCCAACAATTTTTTTCAGTTTTTTTTTGAAAAATTCCATATTTTCTGAAG -TTCAAATAAATATATATTTTTTTAAAGTTCAAAAAATTCAAATTAGCGCG -TTAAAAACGACGTATTCAGGCATCACATTTGACGCGCAATTTTTTTTTTA -AAGAAGGATTTGCGCGTCAAATCTGGCGAATTAGGTTTGTCGGCGGAATA -CACCGAATTTCACGCGCAAAATTTCAAACCTCAATGATAAAATCGGAGAG -CGTATTCGAGGAAATTACGTCTTTCAACGTCTCCGCCGGAACCACGACAG -CGAACAAGTTTTGTGTTGACTGAAAAAAAAATTAAATTTTTCGACAAAAA -AAATTAAATTTTTCAACGAAAAAAAATTAAATTTTTCAACGAAAAAAATT -AAATTTTTCAACAAAAAAAAATTAAATTTTTCAACAAAAAAAAATTAAAT -TTTTCAACAAAAAAAAATTTAATTTTTCAACAAAAAAAAATTAAATTTTT -CAACGAAAAAAAATTAAATTTTTCAACGAAAAAAATTAAATTTTTCAACA -AAAAAAAATTAAATTTTTCAACAAAAAAAAATTAAATTTTTCAACAAAAA -AAAATTTAATTTTTCAACAAAAAAAAATTAAATTTTCCAACAAAAAAAAA -TTAAATTTTTCAACAAAAAAAAATTAAATTTTTCAACAAAAAAAAATTAA -ATTTTTCAACAAAAAAAATTAAATTTTTCAACAAAAAAAAATTAAAATTT -TCAACGAAAAAAAAATAAATTTTTCATCAAAAAAAAATTCAAATTTCCGC -GGAAAGTGCAAAAAATTTACAGAATATTCAAATCGTTCACTTCTCCCGCT -ATCATCTTCACGCAATTCGACACATTTTCGTCGCCATTCGATGCGGGTTC -CCAGTGATGTATCGATTTTCAGTTGATTATCGATTTTTCGCTCCACGTAC -AGTACACTGAGTTCCGCTTCGAGGCCATCTGAAATTTTTTTTTTAATTTT -TTTAACGATTTTTTTTTCAGAAAATCAATAAATCTATTCAGCTGTTTTTT -TTTAACTTTTACACAATTTTCCGTTTGAAAATGTCAAAAAAATGTGTTTT -TGAGCCACATTTTATTCAAAAAATTTTGAAAAATTCCCTGCATTTTCGCT -GTGGGACCCAAGAAGTGCGTGTGCCTTTAAGAATATTTCAATTTTTTTAA -AACTTAAAACAAAGATTTAAAAAATTCTGCTTTCTAAAAATAAATAATTA -TTTATTTTTTTGTGTATTTGTTTGGAAAAAATCAATATTTATCGATTTTT -GTGAATTTTTTTGAAAAAAATCAATATTTATCGATTTTTGTGAAATTTTT -TGGGAAAAATCAATTATTATCGATTTGTGTGAATTTTTAAGAAAAAAATC -AATAATTATCGATTTTTTGTGATTTTTTCGCAAAAAAATCAATAATAATC -GATTTTTGTAAATTTTTTAATCGAAATTCGGCTTTTTCCGGTAAAAACAT -CAAAATTTCGCAAAATTAATCTGATTTTTTCTGCGAAAAATTTAAATTTC -TCATAAAACTTTCGAAAAATCGAATATTTTAAAAATCAATAATTTCGATT -TTTGGTTAATTTTTTTGGAAAAAATCAATAATTATCGACTTTTTGCGATT -TTTTTTTTGAAAAAAATCAATAATTATCGTTTTTTTTTAATTTATTGGAA -AAAATCAATAATTATCGAATTTCAGTGAAATTTTTGGAAAAATCAATAAT -AATCGTTTTTGTGTGATTTTTTTCGGAAAAAATTAAAAATTATCGTTTTT -TGTGAATTTTTTGAAAAAATTAATAATTATCGACTTTTTTTGAATTTTTT -TTTGGAAAAAATCAATAATCATCGATTTTTTTGTGAATTTCTTGGAAAAA -AATCAATAATTATCGATTTTTCCGATTTTTTCCAAAAAAATCGATAAATC -AATAAATTTTCCTTACGCCACGTGTCAATTACAGTCTTCCCCACGTGGCA -AAACGTGTAGAGCTCGCATTTCGAATTGGTTGCCGCCGAAATTTCGCGTT -CGATTTTTCGAGTTTCCTTGTCTTTCTGAAATTTTTTTTTTCTAAATTTT -CTGAAAAATGTTCTTCTGTAAAACCTCTTTTTCCTCTCTTCTCCGCGCCA -TTTCGCTCTTTTTTTTATCCTTTTCCAGCGTTTTTCTCTCTTTTTCAGCT -TCCCGAGCTCGTTTCGCATTTTCTCGGAGTTCCTGAATAAGTTTTAAATT -TTTAAGGGGAAATTTGCTATTTGGAGAGTAAATATTTTCGCTGTGAGACC -CGTGGACCTGAAAATTTTGATTTTCCGCTTAAAATCAACTGAATTTCGCT -TAATTGTGATGTTTTAAGCTGAAAAAGCTGAATTTTGATTTTAAAAAATT -GAAAAAAATTAATATTTTTAAAGGCGCATTTATTGATTTTTTTTCCAAAA -AAAATTTACAAAAAAATTGATAATTATTGATTTTTTCCAAAAAAATTAAC -AAAAATCGATAATTTTTTTTCCAAAAAATTCACTGAAAAATCGATGATTA -TTGATTTTTCCAAAAAAAATTCACTGAAAAATCGATAATTATTGATTTTT -CCAAAAAAAAAAATCACAAAAGTCGATAATTACTGATTTTTTCCAAGAAA -ATTTTAAAAAAAAACGACAATTATTGATTTTTTCCGAAAAAATTACAAAA -AAATCGACAAGTACTGATTTTTTCTGAAAAAATTACAAAAAATCGATAAT -TATTGATATTTTACAAAAAATCGATAATTATTGATTTTTTACAAAAAATT -CACAAAAAAATCGATAATTTTTAATTTTTTTCAAAAAAAAAATCACAAAA -AATCGATAATTATTGATTTTTACCAAAAAAAATCACAAAAATCGATAAAT -ATTGATTTTTTCCAAAAAAATTAACAAAAATCGATAATTATTGATTTTCC -CAGAAAAAATTCACTGAAAAATCGATAATTATTGATTTTTTCCGAAAAAA -TTCACAAAAAAATTGATAATTTTTTAATTTAAAAAAAAATCACAAAAAAT -CGATAATTATTGATATTTTACAAAAAAAAATTACAAAAAATCGATAATTA -TTGATTTTTTACAAAAAATTCACAAAAAATCGATAATTTTTAATTTTTTT -CAAAAAAAAAATCACAAAAATCGATAATTATTGATTTTTTCCAAAAAAAA -TCACAAAAATCGATAATTATTGATTTTTAGGCGGAAAAGCCGAATTTTTA -TCAATTTTTCAAAAAAACAATCGATAGTTTTAAAGGCGCATGCGCTCTCC -TGGGTCTCACAGCGAAAAGTGGATTTTTCAAATTTTTTGGATAAAATTTC -GCTGAAAAACGTATTTTTTTGACAGTTTTAAAGGGAAAATTGTCTAAAAT -CAAAAAAAAATTGTTTTTTCAACAATTTTTTCAGTTTTCGTAAAAATTTC -AGTTTTTTTTTCGCGAGAAAAAAACCAATTCTCGATTGAAAAATCAGAAA -AAATATTTTGGTATAAAAATATTTTTGGTATTACGATATTTTGGGTCCCA -CCTCGAAAATTTAGAGGATTTTTCAAATTTTTAAGATTTTCTTCAACTTT -TAACAATTTTTTTCGGAATAAAAATCGATTTTCGCTGCGAGACCCAAAAA -AAATAGATTTTCTCGAATTTTGCGATGGAACTTTTGATTTTTCGGTGAAA -TTTTCCAAAAAAATCGCAAAATGTATCAAAAAATCAATACTTTCTGCGTC -TCCTTCTCATCGTCGGTTAGTTTCCGTTTTTCGGGTCTCGCCACGACATT -TATGTCAGTATTCTCTTGTGAGCTTGAGCACAACGAGTATGAGCTCGTCT -GATTCTGACGGATCATTTCGTCAAGATTGAGCATTCCCTCATCCAGCCAT -GTTTTTGCCGCAGCTGGAATTGCATCCTTATTCACTGCGTCGACGATGGA -AAAGCTCGCGGAGTACCTGGAAATTATCGATTTTTTATTGATTTTTTATC -GGTTTTTATCGATTTTTTTGATGGGGAAAAATCGGAAAAATCGATAAATT -TCGATTGGAAAATTCAAAAAACTTCGGGTCTCACAACGAAAATTGATTTT -TTTTCTTGGATTTTCAAATTTTTAAACTTTTGTTGTAACAACAGTGGAAA -TTTTTCGAAAAAAAATCAATAATTATCGATTTTTTGAAAAAAGGCAATAA -TTTTCGATTTTTTGAAAAAAAAAATCAATAATTATCGATTTTTTGTGAAT -TTTTGAAAAAAATCAATAATTTTCGATTTTTTGTGATTTTTTTTCGAAAA -AATCAAAAATTATCGATTTTTTGTGGATTTTTTGAAAAAAATCAATAATT -ATCGATTTTTTGTGGATTTTTTGTAAAAAATCAATAGTTTTCGATTTTTT -TTGGAAAAAATCAATAATTATCGATTTTTTGTGGATTTTTTGAAAAAAAT -CAATAATTATCGATTTTTTTTTGAATTTTTTGAAAAAAATCAATAATTTT -CGATTTTTTGTGATTTTTTTTCGGAAAAATCAAAAATTATCGATTTTTTG -TGAATTTTTTTTTGGAAAAATCAATAATTATCGATTTTTGTGATTTTTTG -TAAAATATCAATAATTATCGATTTTTTGTGATTTTTTTCGGAAAAATCAA -AAATTATCAATTTTTTGTGATTTTTTTTTTGGAAAAATCAATAATTATCG -ATTTTTGTGATTTTTTTTGGAAAAAATCAATAATTATCGATTTTTGTGAA -TTTTTTGTAAAATATCAATAATTATCGATTTTTTTGTAATTTTTTCGGAA -AAAATCAATAATTTTCGATTTTTTGTGAATTGATTTTTTTTGGATTTTCA -AAATTTTAAACTTTTAAAATAAATTTTTCCATAGTTTTTTGTTGAAAAAT -TCCTGAAATTTTGAAATTCAATTAATTTTTTCTTTAAAAAAATCGTTGAA -AAATTAGTTTTTTGGAAAAAAAATCAGCGAAAATAGATTTCGCTGTGAGA -CCCAATTGGGCTCCTCAAAGTCCCTGCGCCTTTAAAATATCGTTTTTTTT -TTGTTAAATTTTCCCGCGAAATTAATCAGATTTTTTCTGCGAAAAAGTGA -AATTTCTCAAAGAAACTTTTGAAAAATCAATTTTTTTAAAAAGAAAACCC -CTAATTTTTCCGTTTTTCCCGCTAAAAAAACATCTAAAAAATTTGAAAAA -TCCACAGAATTATCGCTGTGGGACCCAAAGTGCATGCGCCTTTAAGATTA -TCGATTTTTTTCAAATTTTTCAATCGAAATCAGGTTTTTTTTTTCAGCAA -AAATCATAATTTTGCGAAATTAATCTGATTTTTTGTGCAAAAAATTCAAA -TTTCTCTTTTTTTACGTTTTTTCGCCAAAAAAACCATCTAAAAAATTCGA -AAAATCCAGAGCATTTTCGCTGTGAGACCCAAGTCCGTGTGGCTTTAAAA -ATATCGATTTTTTGTTAAATTTTCCAATCGAAATTTGGCTTTTTTTCCGG -TAAAAAATCATAATTTTGCGAAATTAGTCTGATTTTTTGTGCGAAAAAGC -GAAATTTCTCATAAAACTTTTGAAAAATTGATTTTTTTTTTCTGGAAAAA -CCTATTTTTGTCGTTTTTTCGCTAAAAAACATCTAAAAAATTCGAAAAAT -CCCCAAAATTTTCGCTGTGAGACCCAAGGCTCCTGAAAGTCCCTGCGCCT -TTAAAAATATCGATTTTTTGTTAAATTTTTAATCGAAATTCGGCTTTTTC -CGGTAAAAACATCAAAATTTCGCAAAATTAATCTGATTTTTTCTGCGAAA -AATTCAAATTTCTCATAAAACTTTCGAAAAATCGATTATTTTCCGCTAAA -AAATCATCTAAAAACTCGAAAAATCCAGACAACTTTCGCTGCGAGACCCA -AGTCCATGCGCCTTTAAAAATATCGATTTTCTGTGAAATTTCTCACAATT -TCTCCAAATTTCCCGCCGTCACATTCGTCGTTTCCTCAATCATAATACAG -TCCTCATCATCATCATCATCCGAGAGGACTACAATCGCCTCGTCCATCTG -AATAGTGGGAAAATATCGATTTTTTGTAGAAAATCATATATTTAAATTGA -TTTTTTTACAATAAAAAAAATTTTGGGGATTTTTTTGGAAATTTCGGGTA -AATCGTGTAAATCGTGTAATTTAAATTCATTTTTGTTTCAAAAAGTCAGG -GGGGGGGGGGGAAAGAAAAAATTTTTGACAAAGCGTGGAGCGAAAAAAGG -AGTAAATATACAGTCGCGAAAGAACGATCGCTCCGCCAATTTTGCATGCG -GCAAAGGGGCGTGGTTTATTGGGGGCGGGATTCCGGCGCAACCCTGCGGC -ACGCTTTTTTCTCGCTTTTTTCGTGCGGTAATTTTCAGTTATTTTTATTC -GTTTTCTGTTCGAAATTTCACGATTTCGCTCGATTTTGTTCGTTTTTTCG -GATAAAAAAGTGTCCAACTATTTTTTAAATGAAAAATAACCAAGTTTTCA -CAGATTTTACCCGAAAAATGCTTTGTTGGTCTCTCTTTCTGTAAATTACG -ATTGTTAAGAGAGAAAATGGGGGAAAAAAAGGAAAATGTGAAGAGAAAGC -GTTTTTTTAACGTTTTGCTTCGTATATTACAGAAAAAGAGACAAACGAAG -CATTTTTTCAAGTAAAAACTGATAAAACTTGGTTATTTTTCATTTAAAAA -TAGACACTTTTTTATCCGAAAAAACGAACAAAATCGAGCGAAATCGTGAA -ATTTCGAACAGAAAACGAATAAAAATAACTGAAAATTACCGCATGAAAAA -AGCGAGAAAAAAGCGTGCCGCAGGGTTGCGCCGGAATCCCGCCCCCAATA -AACCACGCCCCTTTGCCGCATGCAAAATTGGCGGAGCGATCGTTCTGTCG -CGACAGTATGTAACATGTAAGGTAACAAGGTGGGTTGGTTTTCATGAGAA -AAGGGGGATTTTTTTCCGATTTTTCAGGTGCAGAGCCCACGCTCTCCTCA -AAGCCGAATAATTATTAGAGCGCGCTTGCAGCGACTCGCGTTTCTGCATC -CGCGGTATTTTGACTTTCCACTGAAGAAAGCAGATATTTCAGATTTATCG -AATTTTTAGGTTTAAAATTTTTTTTTTCTGTATTTTTCGAACAAACCTTT -TGTCAAACAGTAAAAATCGAAATTAAAATGACTAAAATGAACTTTTTTTG -TCCACTGGTTGTGAAATGGTTTGAATTTGAAGAAATCAACGGGGTTTTTC -GTATTTTCTGAATATTGTTCTATTAAAAATTGGTTTTAATACATTTTTGA -CTTAACATTAGGGTCAAAAAATGGTTTAAAACCGATTTTTAATAGAAAAA -TATTCAGAAAATACGAAAAATCCCGCTGATTTCTTCAAATTCGAACCATT -TCGCAACCAGTGGACGAAAAAAGTTCATTTTAGTCATTTTAATTTCGATT -TTTACTGTTTAACAAAAGGTTTGTTCGAAAAAAACAGAAAAAAAAATTTA -AAAGCTAAAAATTCGATAAATCTAAAAAAGCTGCTCATTTCAGTGGAAAG -GCAAAATACCGCGGATGCAGAAACGCGAGACGCTGCAAGCGCGCTCTAAT -AATTATTCGGCTTTGAGGAGAGCGTGGTGCAGAGCCCCAATTTTAAACAA -AAAATAGCGGAAAAAAATATTTAAAAAAACGAGGATTAAATAAAAATTAA -ATAATGTCAGCAATGTTCATTGGCATCTCGTCGATTTGTGTCGAGTAGTA -CTGCTCAATGTCGCGGAGAATTCGTACGTCGTCCTGTTTGACGAAATTGA -TGGCGACTCCCTTGCGGCCGAAACGTCCCGAACGGCCGATACGATGGATG -TAGAGCTCACGGTTGTTCGGCAAATCGTAGTTGATTACCTGGAAAATTTT -TTGATGAAAAGCTGATTTTTGCGATTTTCGCCATTTTTTGACCTAAAAAA -TTGGCGAAATTCGGAATTTTTAAACAAATTTTGACGTAAAGTAGGTTAAA -ATTCCAAAATTTTACGGTAAATAGCCTGAAATGCTTTAAATTGATCCTTT -TTTGCACAATTTTAACAATGAAAACCTGTATTTTTCGCTACTTTTAGTTG -AAAAAAGCTTCCAAAACGAGTAAAATTGGCAAATTTTATCGATTTTCGCA -AATTTTTCACCTAAAAATTGAAGAAATCGGTATTTTTAAACAAATTTTGG -CATAAAGTAGGTTAAAATACCAAAATTTTACGGTTTTTAGCAATTTTTGA -GTCAATTTTCAAAATGTTCCAGTATTTTTGCAACTATTTGGTTTTTATTC -ATCTATGTTCTTTGAAAATTCTTTTTTTTAAGGTGAATTAGGTTAGAAAG -GGGTCGATTTTGCAGAATTTTGACAGATTTCGCATGAAAATTTGAATTTT -CAGGCGAAAATCATCAAAAATATGATTTTTTGCTACTTTTAGTTGAAAAA -AGTGTACAAAACGAGTAAAATTGACAAATTTTTATCGATTTTCGCCATTT -TTTCACCTAAAATTTAATTTTTTTTTTCTAGTGAAATAAGTTAAATTCAG -TGTTAAAATGTATCTATTTTCGCTCAAAATTTGAAAATTTTCAATTTTTC -ACTGAAATCCATGAGAAACCAGTGAAAAAATTTTTTCAATTTGAAAATTT -GCAGTGAATTTTATTTTTTCTGCTAATTTTTCGGTGAAAAATGCACTTTT -TCACGAGAATTAGCGGGATTTTTGTATTTTCAAAGTTTTTAGGTCAATTT -TCAAAATGTTTCTCGCTGAAAATTGATTTTTTGTCAATTTTTCACATATT -TTCTATGAAAAATTCCACCTTTTTGCAGAATTTTGACTAAGAAATACGAT -TGTCGCCTAAAAGTTTGAATTTTTCAATTTTTTTTTGCTGAAAATCATCA -AAAATACGATTTTCAACAGAAAATGATGAAATTTTCGCTATTTTTCGCGG -AAAATCATTGATAACCTGATTTTTTCGCTACTTTTAGTTGAAAATAGTTT -ACAAAACGAGTGAAATTGGCAAATTTTATCGATTTTCGCAAGTTTTTAAC -CTAAAATTTAGTTTTTTTCTAGTAAAGTAGGGAAATTCAGTGAGATTTTT -TAATTTTTCACTGAAATCCATGAGAAATTAGTGAAAAAAAAATGTTTTTG -GCCAACTTTTCACATATTTGATATGAAAAATGCCGTTCTGAACAAAAAAA -GCTGTGGAAATTCAACTTATTGTCAATTTTCCGCTGAAAAATTCATTTTT -TTTTCTCAAGAATTCGCATTAAAACTGCGGAATTTCTTGTATTTTCAGCA -GAAAATGATGAAATTTTCGCTATTCTTCGCGGAAAATCATTGAAAACCTG -ATTTTTTCGCTACTTATAGTTTAAAATAGTTTACAAAACGAGTGAAATTG -GCAAATTTTATCGATTTTCGCAAGTTTTTAACCTAAAATTTAGTTTTTTT -TTCTAGTAAAGTAGGGAAATTCAGTGTCAAAATTTACTTATTGGGTAAAT -GGAAATTGTGAATTTCCATTGTAAAAATTTCTGCTGGGAAATTCATTTTT -CCCAAATTTTTCATATAATTAGGCTGAAAAATGCAATTTTTCACAAGAAT -TCGCATTAAAACAGCGGGATTTTTTTTGTATTTTCAACGGAAAATGCTAT -TTTTTGCGGAAAATCACTGCAACTTTTTCCTCACGAGGGCCAAGGAAAAG -TGGTTTCTAGGCCATGGCCGAGGGGCCGACAAGTTTCAGCGGCCATTTAT -CTTGCTTTGTTTTTCGCCTGTTTTCTTTCGTTTTTCACAGCTTTTTCCCG -TTTTTTCTTATTAAAACTGATAAATAAATATTTTTTGCAGATGCTAAAAC -AATTTCCAAGTAAAAAAAATTATGTATTCAGTCGGCAAGCAGCGGTGAAA -GTGGGCAATGTAAAATGATGGATTACGGGAATACAAAACCTGAAATTTTT -CTGAAACATGATACATATGCTGCTTAGATGCTGATACTACCTGATTTTCA -TAACGAGACCGCTGAAAAGTTTTGAGGTTTCCACAATTCAACTTTTTTGG -TGAAAAAATCGAGATTTTCGCACAAAAAGTTGAATTTTGAAAACCTCAAA -ACTTTTTCAGCGGTCTTGATATGAAAATCAGGTAATTTCAGCATCGAAGC -ATCATATGTATCATGTTTCAGAAAAAGTTTAGGTTTTGTATTCCCGTAAT -CCATCATATTGCATTGACCACTTTCACCGCTGCTTGCCGACTGAATACAT -AATTTTTTTACTTGGAAATTGTTTTAGCATCTGCAAAAAATATTTATTTA -TCAGTTTTAATGAGAAAAAACGGGAAAAAGCTGTGAAAAACGAAAGAAAA -CAGGCGGAAAACAAAGCAAGATAAATGGCCGCTGAAACTTGTCGGCCCCT -CGGCCATGGCCTAGAAACCACTTTTCCTCGTCCCTTGTGAGGAAAAAGTT -GCAGTGGGAAAATGCTATTTTTCGCGGAAAATCGAAAATGTACCAAGGAC -ACTTGCGGAACATCAAGTCCTCTCGCCCAAACATCAGTAGAAATGAGGAC -ACGAGTGGTTCCAGCTCTAAACTCCTTCATAACCTCATCACGATCCTTCT -GCTCCATATCTCCATGCATCGATGAGACGGTAAAGTTGGCCTCCTTCATC -TTATCAGTCAACCAGTCCACCTTTCTACGTGTATTACAGAACAACACCGC -CTGAGTGATGGTTAAGGTGTCGTAGAGATCGATAAGCGTGTCGAACTTCC -ACTCCTCCCGATCAACTGCGACGAAGAACTGCTTGATGCCTTCCAGTGTC -AACTCGTCACGCTTCACAAGGATCCGAATCGGATCCGTCATGAATTTACT -CGTCATCTCCAGAATCTCATGAGGAAGCGTCGCGGAGAGCAGCACCACCT -GGGCTCCGGGCGGTAGATAGCGATAGATATCGTAAAGCTGCTCCTTGAAC -CCCTTGTTGAGCATCTCGTCGGCTTCATCGAGCACGAGAAGCTTGATGGC -GCGGGTGCGCAGGTTTCGACGGCGAATCATGTCGAAAACGCGTCCCGGAG -TACCGGAAACCACGTGCTGGCCGTAGTCGAGCTTTCGGATGTCCTCGCCG -AGATTGGTGCCTCCGATACAGGCGTGGCACTGGACATTCATATAGTCGCC -GAGCGCCAGCACGACTTTTTGAATTTGAACTGCCAGCTCTCGTGTCGGCG -AGAGAATCAGAGCTTGGGTCTCGCGGACCTGGGTGTCTAGCGATTGGAGT -ACGGAGATCGAGAATGTCGCCGTTTTTCCTGTTCCGGATTGAGCTTGAGC -GATGACGTCACGAGCCTTGAGAATTGCGGGGATGGCGCGTTGCTGGATGG -CAGATGGCTTTTCGAAGCCGTACGCGTAGATTCCACGAAGCAAGTCTTCT -CTGGAAATCGAAAAAAATTTTGAATTTAGTTTTATATTTAAAGGTGGTGT -AGTCGAATTATTTATTTCTTTATTAGACTCAAAATTGTCTGAAAAAAAAG -TGTACAAAACGAGTAAAATTGGCGACTTTTATCAATTTTCGCCATTTTTC -ATCTAAAAAAATCGACGAAATTCGGAATTTTAAACAAATTTTGACGTAAA -GTAGGTTAAAATTCCAAAATTTTACGGTTTTTAACAATTTTTCCACCTTA -AAGTTGGTGTAGTCGAATTATTTTTTTCTTTATTAGACTCAAAATTGTCT -GAAAACACCGAATTTCATAATGAAACTTCTTGAAAACTGAAAACTTTTCA -AAAAAAAGTTAAGGCCTCTTGAAAAAAGGCCTAAAATTAGTGAAAATTTG -AAATTTGACCAACTTGTCTGTCAAGCGGCTGGAAACAATTTTCTTTGAAA -TTGTCGTCTAATTTTGGGTATACAGGTCGATTACCTTGCGTTTTCAGCTT -TATTTAGGTATTTAAAAGTCGATGGACGAAGAGATTTGTCAAATTTTTTT -CACCAACTATCTTCGTCCATCGACTTTTAATACCTTAATAAAGCTGAAAA -CGCAAGATACGACCTGTATACCCAAAATTAGACGACAATTTCAAAAAAAA -TTGTTTCCAGCCGCTTGACAGACAAGTTGGTCAAATTTCAAATTTTCACT -AATTATAGGCCATTTTTCGAGCCGCCATAACTTTTTTTTGAAAATTTTTC -AAGAAGTTTCATTATGAAATTCGGTGTTTTCAGACAATTTTGAGTCTAAA -AAAGCAATAAAAAAAATTCGACTACACCAACTTTAAGGTGGAAAATTTTT -TAAAAACCGTAAAATTCTGGAATTTTAACCTACTTTACGTCAAAATTTGT -TTAAAATTCCGAATTTCGTCAATATTTTAGATGAAAAAATGGCGAAAATC -GATAAAATTTGCCAATTTTACTCGTTTTGTACACTTTTTTCAACTAAAAG -TAGCGAAAAATCATGTTTTTGATGATTTTCAGCTGAAAATTCAAATTTCA -GGCAAAATTCTGCAAAAAAAGGGTAATTTTTCAGAGAAAATATGGGAAGA -ATTGAAAAAAAAAACTGTTTTCAGCAAGAAAAATGTTTGAAAATTTACCT -TTAAATTTTTAAAAACCGTAAAATTTTGGAATTTTAACCTACTTTACGTC -AAAATTTGTTTAAAATTCCGAATTCCGTCGATTTTTTTAGATGGAAAAAT -GGCGAAAATCGATAAAAGTCGCCAATTTTACTCGTTTTGTACACTTTTTT -CAACTAAAAGTAGCAAAAAAATAATGTTTTGAGGCGAAAATTTGTTTTCA -GCGACAAAATTCTGCAGAAAAAGTTCAATTTGAAGCTTTTCTGGTTATTT -ATAGAGAATTTTCCGTTAAAATCGATAATTCAATACCTCAAGCCCATTTT -GTCAAAAGTTGGGATAATTGAGACCTCCTCAGACGACTCGAACTCCACAG -TCGCCATATCGTCGTTTTTCTTTTTATTTTCCGCCATTTTTGAAGGAAGA -ACTCTGTAAAATCGATAAAAATGAATATTTTCGAGCATTTTTGCAGAGAA -ATTCAGCATTTTTAGGTGGAAATTATCAAAATCAATGAATTTACATCGAA -AAAATCAAGAAAAACGTGTAAAAACGATAAAATTGATTATTTTCGGGCAT -TTTGCAGAGAAATTCAAGATTTTTAGGAGGAAATTAACAAAATAAGTGAA -TTTACATCGAAAAAATTAAGAAAAACCTGTAAAATCGATAAAAAACTAGT -AAAAGAGCAAGATTTCGAATGTTTTCGAAAATACCCTGTTTTTCGAGCAT -TTTTGCAGAGAAATTCAGCATTTTCAGGTGGAAATTTACAAAATAAACGA -ATTTACATCGAAAAAATCAAGAAAAATGGTGATTTATCGGCTATTTTCGC -TCATAATTCGTAGGATTCGATTCGAAACTAAAATTCGAAATTCGAAAAAC -ATGGCCGTGGCCTAGCGTTCCCCTCCTAGTCCACGGCCGCGCACGATTTA -CGGAGAGCACGATTATTGATCGATGACACATGGTTTCCGACTGTTTTTCC -TGTTAAATTTACCCTTAAATCACAATTTTCCATAGAAAATGGGTGGAATT -TTCTCGAAAAAAGAGAAATCACCAAAATCGGCGCCGGTTTCCGATCAGGA -TAATGCGATTTTGGTTTGTTTAATGAGGTTTTTCACATGGAAATTATTAT -TTTTTTGGTAATTCCAGGCGCTCAAAACACAACGGGACAAAATGAAGCAA -ATGATCAAGCGAAAAGAGAATTGTTTGGAGAAGGAACGACAATTGGCAAA -GCAGCTTATAAAGGATGGCCGGAAAGAGTAAGAAATTTCAGAAAATTCAG -TTTTTTTTATTAAAAAAAAAAAATATATATATAAATTTTTAACTAATTTC -AGCCGTGCTTTACTGCTTCTGAAGAAGAAACGCTACCAAGAGAAGATTAT -CGATCAAACCTTGAACCATCTTAGCAAAATCGAGCAAATGGTATTGAAAA -ATCAGAAAAAAATAAAAATTTTCCAGCAAAAAAATCAATAAATTTCCAGG -TAAATGACCTAGAATTCGCAGAAGTTCAACAGCGAGTAACCGATGGCCTT -CGACAGGGAAATGAAGCGCTGAAAAAGATGAATCAACTATTCGATATCGA -TGAAATCGACAGGATTATGGAAGAAACCAAAGAGGCGGCGGAATATCAGG -AAGAAATCTCGAATATGCTGTCCGGCCAGCTTTCCAACACGGATGTCTCG -GACGTTGAGAAGGAATTGGAGGATCTGTTGGCGGCGGAATGGGGCACAGT -TCAACTTCCAGAGGCTCCGAGCCATGAGCTGCCTGAAGCAGAGCGGGAAC -GGCAAAAAGGTTGAGATTTGCCGAGAAAATTCCTAAATTTTCCCTAAATA -AATAATTTTTTTTCAGAAAAAGAGAAGCCACGTCGCGAGAAGATTGCTCT -GGAAGCCTAAATATTGCTTGTTACTGTGAATAAAATAAATTCATTATATT -ATTATATTTTTTATACAATTTTGTCTTACTGGCGTTGTTCTGAACGAAAA -ATTCGTTTAAATAACGCTGTAACAAAAAATCTCATTTTGCGCGTAAAATA -AAATGCCAGTGACGCAATCACCACGACGAAAAATCGCACAGTTTTGGAAA -ATTGCGGTTTTTCAAACTTTTTTTCGCTTTTTTCGGATGCTATTCAAGCG -GCTATAGACTGTTCAAATAGAGATAGAACGGTCAGAAAATGAGAGACATA -GACAAATAAAGAGACAATTTATTGACTTTTTAGGCTATTCTTTGTTGGAA -ACCAACAAATTTTGTGTTCCCAGGCTTTTCTTTGCAAATTCTGAAGGGTT -CTTCTTTGCAGATGCGTCGACGTGTAGCTCTGGACAATGACGAGCATGAT -GGTAAGTTAAAAAATTGGAAAAAAAAACTTTGGTTTCTATTAAATTTTAT -TATACTTATTCCCTTTTTATAATTAAAGGCGTCTAGCTCATTCAAGCTCA -TTCACGACGTTAGTTGACGCATTCCTCCTTGCACGCATGGCCTAGTGGGT -TAAGGCGCTGAACATCACTCAGAAGTCCACAAGTTCAAACCCAACGAGGC -TCCCCCGCTTTTCTAACCCTAGCTTGAGCAATCAAATCGGAACGCGTCGG -AGCTGTCTCGGAGCCAGAAGCCTCATCAAATATTTTGATTGCTTCCAAAC -AATCTATCGCACGTTTGTGCTCCTCATTTCCGTAATGACGTGTGCATGCG -TAAGCTTGATCTTTCCAGTTTTCTAGGTGACTCATTAGAGCAATCGAGTG -AGCAACTCGTTCATTCGGTATTTCATGAGCCAATTGCTATGCGGGACGCG -GGGCTTCTGGAAAAAAATTAAACAAATATTTTTCGTTTTTTTTTCCACAT -GTGTGGATCTCAATTTATTTCTTCTTTTTTTGTTTACCTCATTTTATAAA -ATTCTCCTTTTTTTCTCATTAATTTTTCTGTGGCTTTTTCAAAGATCTTT -TTCAGATTTTCATCTATTTGTTTTAATGTGGAGCAAAATTGAAATTTGTC -TGGTAGATACGGTAGCTTTAAAGGCGCATACTAAATTTAAAGTGACAAAA -TAAATATTTAGTTCCATATGGAATTTCAATTTTTGCTGCCAGGCTGTCCC -ATTACGGTTTGATCTACAAAAAATGCGGGATTTTTTTTGGCCCAAATAAT -GTGACGTCAGTGCGTTCTTAACCATGCGAAATCAGATGAGAACTCTGCGT -CTCAACTCCCGCATTTTTTGTAGATCTACGTAGATCAAACCAAAATGGGA -CATTCTGACACCAGGTATTCGCCGCGGAACCAGTTTTATACCGTATTTCG -TATGCGCCTTTAATTCTACCGTACCCGCTTCTGGAAGTTTGGAAGTTTGA -AAAACTATTAAATAGAATTTATTAATTTTTGCATATTACTTTGTGCAGAA -TACCTCTAAAAATATTAAAATCCAGATAAACATGGTTTTTAAAATGTTTT -GCACAAAAAGCGATGATTTCGCTTCGAAGCCACTTTTATAAAACGCCTTG -TGCGCCTTTAATTCCACCGTACTCGCCAAAATTAAACTGAATGAGCGAGT -TTTGAACTAATTTTTACGAAAAAATCACGTTCTGATCGGTTCTGGTCTTC -CTCTAAAATCGGTTCTGGTCTTCCTCTTTGAATTTTCGCGCTCCATTGAC -AATCGCCTGCCGGACTGGGAAAGCCGTGTACTCCACACGGACAAGTACAT -TTAGTTTTACAACTAAAATCGAGCCGCGACGCGACACGCAACGCGCCGTA -AATCTACACCAGATATGACCGAGCCAAAATGGCCTAGTTCGGCAAATTCT -TCCATTTCAATTTATGAGGGAAGCCAGAAATTCGTGTATTTTTACAAAGA -AATGTGAAAAAGAAGCTAAAATTTCAATGAAATAGAGATTTTTCCCGGAA -TCTCACAGTTTCGCAAAATACTATGGATTAAAAAACGCTGAAACCCAAAT -TTGCGCGTAAAATTCAATGTATAGCGAACATTCACGGATTTCTGGCTTTT -CTCATATATTGAGATGGAAGAGTTTGCCGAACTAGGCCATATCTGGGGTA -GATTTACGGCGCGTTGCGTGTCGCGTCACGGCTCGATTTTAGTTGTGAAA -CTAAATGCATTTGTCCGTGTGGAGTACACGCGTTGTCCGGCGGGCGATTG -TCAATGGAGCGCGAAAAATTCAATATGGAAGGCCAGCACCCCGTGTTAAC -ATTTAAAAATTACAAGATTTGCCCCCTCAAACATCCCTGGAAAAACTAGA -AAAACCTCGTGTGCTTGCCTGACAACAGCTGTTCACCGACAAAAAGATGA -CGGGGAGGGCTTCAACAGAGCTTGTGTTTCCTCGTCAACTCTTTCGAGAA -CTGACAGCACTTTTCATATAACTCATCACTAACTTTCGCTGCTCGTGGCG -GTTTTTTTTAGTTCCCCAGTAATGAGTCAATTTTGTCTGTTGCTCAGAAC -TCTCAATTACCGATGCTATTAGCGGAAGGACTTTTGGAGCGCCGGAGCCA -GAGCAAAATTCATTTTTATTTGAAAAATGAGTGATGAGTTTTTCTCTCTG -TTTTTCCATGTTTTTCTCGTTATTAGGCTGTAACTTTCCACATACACTTG -GTGTCAGAGAGTCCCATCACGGTTTGATCTACAATAAAAGTGTGACGTCA -GCACGTTCTTAACCTTGTGACAATAGTTGAAAAATCTGCGTCTCGTTTCC -CGCATTTTTGTAGATCACACCGTGATGGGACTCTCTAACACCACGTACAC -ATGAAAATTTCGCTGAGAACAAATTTTTGCGCGTCAAATCTGATGTATCC -GGACTGTACCGATATCAATACATCGAATTTGACGCGCAAACTCCGTTTTC -ATGGGGAATTGTTGAAAAAATTGTTTAACTTCCGGAAAATTAACATTTTT -CAGAGAAAATCAAAATTTTTCTGTTTTTCCTTAAATTTCTAGGAAAATTG -TAGCAGATTTTGTTGAAAAAATTCAAATTTCCACTGAAAAAAGTGAAAAA -AGAAGACGATGTGTAAGCCTAAGCCTAAGCCTAAGACTAGGTCTAAGCCT -AAGCCTGAGCCTATGCCTCAGCCTGAGAATAAGCGTGAGCCTAAGCGTGA -GCCTAAGTCTAAACCTAAGCCTAAGCCTAAGCCTGATCCCAAGCCCACAT -GGTGCCAGGCTGACCCATAACGGTTTGATCTACAAAAAATGCGCGAAATT -TTTTGCCCAAAAAATTTGACGTCAGCGCTTTCTTAACCATGCGAAATCAG -TTGAGAACTCTGCGTCTCTTCTCCCGCATTTTTTGTAGGTCTACGTAGAT -CAAGCCTAAATGGGACACTCTGACACCACGTGAAGCCTAATCCTGAGTCT -AAGCCTTATCCAATTTCCGAAAAATCAATAAAAATGCAAATAACATAGAT -ATTCCCGCCTAAAGTTCAATAAATTATTTTTTTTTTGAAACTTTTTTCAA -AACTTGCGAATGCATAGTACCAAAAAACGCCATATTTGACACGCAATTTT -TGGATTGACTTTTTTTTGAATTGATATGTCATGAGCATCACTCAAGTGGT -TCCAAAAAGGCGTCAAGTACTTGAGCCCTCCCTGAGCCACCACCGTCTCC -AGAGAGCAGCCGAAACCAAAAACAAATAGGGGGAAAATGAACAGTTCTCT -CTGTTTCAAAATCTATATATTCCTGTTCTTTGTATTATCTTCCGTGCGGC -TTCAGCCCTCTACTGCTGCTCCAATTCTTTTCCATGTTATTTACCGTACC -GATTAGACGAATGAACAGGACCCCCTTTTACCGTTCAACCGATGAGCCAA -TGTGCTCTTTGTTGGCTAATTTGGGTGTTTTGCTCATTTGGAGGAACACT -AACTTCCCTCTCTAACTACACACTACGTGGAAGAGTTTTTTCAGATTTCT -AGGCCTCGCAACTTTCCTTGGTGGCCCAGAAAAACGCTTAAAACTTCAAG -GTCAAAACGTTCATTTTTGTTGAAAAAAATCGGTTTTTACTTGAATTTTT -GTAAGTGGAAGAGTTTCCTAAATTTCTAGGCCATGTGCTTTTTCCTGCTT -ATCTGAAAATTTTGTTCAAATTTTCTTTTTTCACTTAAATATTCCCCGAA -AATCTTGTCCACAAAAAGAAATTTTTGAACATTCAGATCATTTTTTTAGA -ATGGAAGAGTTTTCCAGATTTCTAGGCCACATGGCTTTTCCTGGTGGCCT -AGAAAATTTTCTGTTGGAAGAATCAGGTTTTTACTTGAATTTTCGTAAGT -GGAAGAGTTTTTTACATTTCTAGGCCACGTGATTTTTTCCTGATGGTCTA -GGAAACTTGTTTTCTCTAATTTTCCCCGATTTTGGATAATATTTGTTTAG -TGGAAGAGTTTTCAGAAATTCTAGGCCACGTGGTTTTTTTTGGAAAAGAA -ATATTTAGATCACATTAACATGTACTTTTATCAGATTTTTTGCCAAAATA -CCAATTTTACAAGCTATTTTTTTGTTATATGTAAATTTTGTGGAAGAGTT -TTTAAAATTTCTAGGCCACCTCTAGATGCACGTGGTGTCAGAGTGTCTCA -TTTCGGTTTGATCTACGTGGATCTACAAAAAATGCGGGAGACGAGACGCA -GAGTTCTCACCTGATTTTACATGGTTAAAAACGTGATGACGTCACATTTT -TTGGGCAAAAAATGCCCGCATTTTTTGTAGATCAAACCGTAATGGGACAG -CCTGACACTACGTGTACGTGCAGATGGCCTAGAAATGCTAAAATCTGTTT -TTTAAATGTAACTTTGAAAGTGAAAGAAACAATTAGAAACAAGTTGGCTG -TCGCCCCCAAAAAGTCTGTTCTGGCTATGTGGTCGCGAAAAGAGAAAACT -CGGCCACCAATTTTTTTCCACGGCCAGATCTATGACGCTATGACGTCACA -TTATCAGCTTGTTTCCGATTTACACACACATACACGTACACTTTCTCCGT -ATCACTTTCACTGATAGCTTGAAACGAGATTAATCATCATTCCAGCTATT -CTTTTTTATTTATTAGGTTAATGCCACTACTACTATTATTTTTTCATATT -AAAAATACAATGAACTATGTAGACATAAATTCAAATGAGATGCCAAAAAG -TGAGTTCGAACTTGTGGAAAATGTGTGTTTTTTAATAAATTTTTCAAAAA -TATAGTAAATTTCTGAGAAATTTTGATTTGAATTCCCGCCAAGCATTTTT -TTGAAAATTTTGAATTTCCGCCAACCATTTTTCCTTTTTTTTCAGAAAAT -GTGAAAAAATTTTCTAAGCAAATTTGAATTCCCGCCAAGATTTTTTTTGA -AAAAATTTCGAACTCGCGCTAAAGTATTTTCTAATAGCAGGATTATTGGA -ATCCCCGCCAAAACATATTCTCAGAAAATTTGAATTTCCGCCAAAACTTT -TTCTGATAAAATTTAAATTCCCGCCAACCATTTTTTCCTGAGAAAATTGG -AAGAACATATTTTCAGTGAGAAAATTTGAAAATATTTTTTTCAGAAAGTT -TGAATTCCTGCCAAAACATTTTCTAAGAAAATTTGAATTCCCGGCAAAAC -TTTTTCTGATAATTTTTTGAAATTCCCCGCAAAAATTATAGTAAATGAAG -ATGATTTGAGCAAAGTTATGACGTGGCCGCGGAAAAAATTGATGGCCTAG -TTTTCTCTTTTCGCGGCCACGTAGCCAGAACAGACTTTTGGGACCGTACA -ACCAACAAATATTTCTTCCCCTTTCAAAAATACATAAAAACCAGATTTTG -ACATTTCTAGGCCATCTAGAGGTGCCTCGTGGCCTAGAAATTTGAAAAAC -TCTTCCAGAAAATTTGTTCTGTATTTCTTGAAAGTGCTCCAACAAATCTG -TGCAAATTTTAAAAACGTTTCAAAATATTTATTGAATAAATTCTTTTGTT -GCACAAAGAGGTATCAAATCAGACCACCAGATTCGACCGTTGATCATTGT -TTCAGTTGATAGGTAGGCAGGCGTGGTTGCCTGAAACCTGCCGGCCTCAC -GCTGGGCAAGAGGCAGGCCGCCTTAATGTCAGGCAGGCAATGCCTACATG -CAAGCCCTACTTCTACGATTATCTCGAAATTTAGCGAGTTTTTATTTGTC -CAAAAAAAATCGCAACTGAACAACATGAAAAAGCCGCCAAAAACTTTCAT -AAAATTCTGTCCGTAGTTTGCCGTTTCTTGCGTCTCATGCTTAATCCCTA -CTGTAATTATGCTGAGATTTTCGATCTTTTTCACTTTTTGAAAATTTTTG -GCAATTCTTTTTAAGTTTGTTGAGATTGTAACTTATGACAAACAGTAACT -AAAAAGCGTGGCCGCCAAATTTTCTAGGCCATCAATATCAGTTGCGTCAT -TTCTTCACCATACTGGACCGAGAAATATTCTAGGACATGTGTTTGCGTCA -TTCCTCTTCCATTCCTAGTCCCAAAAATTCCAAGACCACTGGTAAGTTTG -GCCGAGAAATATTCTAGGCCATCGATGTTAATGACGCCATTTCATACCCG -AATTGGCCACTAAAATTCTTAGGTCATCAGTGACGTCACACCTCTTCCAA -GCCTTGGAATGAGCATTTCTAGGCCCTCTAATCTAGGCTTGGCCGTCAAA -TTTCCTAGGCCAGGTGACGCCATCCCTCTTCCATGCTCGACCACTAGGTC -AAATGACGTCACTTCTCTTCCACCTACCGCACTTTGATTTCCTAGGCCAC -CATGTGACGTCACTTCTCTTCCATCTAGGTTTCCCATGCCCTTCTCCTCT -CACGTGGTATCAGAGTGTCTCATTTTGGCTTGAATACGTTGATCTACAAA -AAATGCGGGAGAAGAGACGCAGAGTTCTCAACTGATTTCGCTTGGTTACG -CACGTGCTGCCGTCACATGTTTTTGGGCAAAAAATTCCCGCATATTTTGT -AGATCATACCGTAATGGGGTGTCCTCTTGTTAAATATCGAAATTTCACTC -AAAAATTTTGAACGTTGAGCTTTTTGTCTCTGGTCAATTGGTCAGCCGCG -CAGTGTTCCGGTGTTTGTGCTCATGTTTTCGTGTGCACATTTGTGCTGCT -GCTAAGGCGTATTTTGTTCCGGGCGGGGACAGGGGGGAGAAGCAAAAATG -TGTCAAATTTTGTTTGTTTTGCCATTGATATTGTCCTTCTGCTCAGAGGA -TTTCCTCATTTTACGCCGTATGTGCAAAAGCATAATCACCACAATAATTT -TGAATATAAGTTTGCAAACGCGCCCTATTGATAATCCTCGCCCGTGTAGT -CTGCGTGCACGTGGTGTCAAAGTGTCCCATTTTGGTTTGATCTCCGAGAA -ATGCGGGAGAAGAGGTGCAGACTTTTCAACTGATTTTGCATGGTTAAGAG -TGTGCTGGCGTCACGTTTTTCTGGGGGCAAAAATTCCCGCATTTTTTGTA -GATCAAATTGCAAAGCGCCCTATTGATAATCTTAGCCCGTGTAGTCTCTT -GTTTAATTTTCAATTTTTCTGGTTCGGCACCTAAACTGTAACTACGACAC -TCGGCAAAGTTAGACTGTTAAACTCCGCCCACTTAATGGCACCTTTTTTG -CAGAAATGTACCCAACCGACAAAGAGCAGACACGGACCACATTTGAGACG -AGAAGTCGGCGGAAACGGCTGGCGCAGGTCGCCGCCACAATTGCTAGCGT -GATATTACTCTTGTTGGCAGGTAAGTAAAAAACTACGACACTCCGAGACC -AAGAAAAAAATCGATAATCGAAATATTGAAAATTGCAAAATTTATTTCGC -CGGATCATTTTCCATATCGATTTTCTGAATGGTATGGTGATAGCAATCCT -CATCGTAGGCACATCCCTGGTGAACCACGTACTCTTGACCTGAAAAATAG -GTTTCGTTCGGTGGAGCACATTTGCATACACTGACCTTTAATCGGGTGGC -GACACGCTTTACACTTGAAACATGCCATATGCCAGTGGACATTGAACGCC -GACACGCATCTCTCAAAAGTCGGCAATTTGCACGCGTGGCATTTTGGTGA -CTTGGCCGCCCGGTGACAGTCCGCGCAACGGAGCGCGTTACCGTACGGCG -CGGGCATTGGATAACACGGAGTCATGCCAATGACTGTCTGGAATTTTGGA -GAAATTTATTGATTTTTTGACGGAATTTAATGAAATAAGGAAAAATCAAT -AATCGACATATTTATTTCGCAAAAAAAAAAAAACATTATTGATTTTCACG -GATTTCTGTCTTCCTCATAAATTGAAATGGAAGAGTTTGCCAAACTAGGC -CATTTTGGCTCGGCCATATCTGGGGTAGATTTACGGTGCGTTGCGTGTCG -CGTCGCGGCTCGGTTTTTGTAGTAAAACTAAATGTATTTGTCCGTGCATG -GAATTCTGGCTTCCCTCATAAATCGAAATGGCAGAGTTTGCCGAACTAGG -CCATTTTGGGTCGGAGAGATTTTGTGTAGATTTACGGCGCGTTGCGTGTC -GCGTCGCGGCTCGTTTTCAATTGTAAAACTGCTGTATTTGTCCGTGTGGC -GTACACAACACTTTTCCACGCGCTGTCCGGCAGGCAATTGTCAGTGGAGC -GCAAAAATTTAATTAGGAAGGCCAGAACCCCGTGTCCGTGTGGAGTGCAC -GACTTTCCCGCGCGTTGTCCGGCGGGCGATTGTCAATGGAGCGCGAAAAA -TTCAATGAGGAATGCTTTTTGCAAAAACAAATTACATAGGCTTCTGGCCT -TCCTTATTGCATTTTTCGCGCTCCATTGACAATCGCCTTAAAGCAGGGGA -GTGTGTGTGTGTGTACTCCACACGGACAACTTAAAATGAAAACCGAGCCG -CGACGCGACACGCAACGCGCCGTAAATCTACTCCGGCCGTGGCCGAGTCA -AAATGGCTTAATTCGGCAAATTCTTACATTTCAAAATATGAGGGAAGCCA -GAAACGTGTGTCACATGTTATAAAATTAATTTTGAAAAAAAATTATTAAA -TTTCGCAAAAATAAATTATCGCTTTTTGTAAGAATTTATCGAATGAATTG -ATTAAAAATTTATCGAATTTTAGCGAATCAGAAAATATCGATTTTCACTA -AGAATTTATCGAATTTTTCGATTTTCGCTAAAATTATCGATTATTGCAAT -GTTTTACCTGACAAACCGAGCATTTCAGGCATGAAATATGATACATCTCG -TCTTGAATTTTGATCACTTTTCCCTGCAAAAATCGATATTTTCAATTGAA -TATATTTCCAAAAATGTGCTCACAGTTTGAGCTTCTTGACGAGTCAGCGT -TGTTGTGCAGCCTTTGCAATGGATATTATATGGAAGAACAATCTTTTGGA -GACGTTTATTGTTCGACGAGAACAACATTTTTCGAATTTTTGAAATGATT -AATTTAAAAATTTAAAAAGGAGAAAATTGAAGAGAAACGTGGGAAAACGT -ATTGATTTTTCAAAATTTTATTGATTTTATAATCACGGGGTTCTGGTCTT -CCTCATTGAACTTTTCGCGCTCCATTGACAATCGCCTTCCGGACAACACG -TGGGAAAGTCGTGCACTCCACACGGATAAATACATTTAGTTTTACAACTA -AAATCGAGCCGCGACGCGACACGCAACGCGCCGTAAATTTACCCCAGATA -TGGCCGAGCCAAAATGGCCTAGTTCGGCAAACTCTTCCATATGAGGGAAG -CCATAAATCCGTGTATAATCAAACGCGCAATTTAAAAAAATCGGTAGTTG -AAATTTATCGATTTTCCCTCGATCTTATCGATTTTTTAAAAGACTTATCG -ATTTTTATCCAAATTTATTATTTGAAAAATCAACGTTTATTGATTTTTGT -CATGATTTATCGATTTTCTCAAGAGATTATCGATTTTTGCTGTCGATGCA -CCATGTGCAAACTTCGCCACGTTTTTTCGCGGCGAGACCCAAATTTTTTG -AATTTTCAGTTCTCGGTCTGGTATACGGTAGCTTCTACCTCTACCGTCGA -TATGTGACAGATGCAAATGATAAACGGGATAATGATGAATATTTGCGAAA -ACTCGTTCGTCAAGTCAATGACTCGCCGGAGACCACGTGGAAAGCCAAAT -TCAATAAGTTTGGTGTCAAAAATCGATCTTACGGATTCAAATATACGAGA -AATCAGACGGCGGTCGAGGAATACGTGGAACAAATTCGAAAATTTTTCGA -GTCTGATGCGATGAAGCGGCATTTGGAGTGAGTTAACTCAAATTTGAGCG -GGAAACAACGATGCTCCGCGCTCTCGCCGCATGTAGTTTAGCGCGTAAGC -TGTGATGCATACGATAGTCCTGCAATGCATCATATTTTACACGCAAATGC -AGAAATTACCAAATTTCGAGAAAAATCTATATTTTCCTTTTAAAAATTAT -CGATTTTTTAAACAAAACTTCTGAATAATTGGATTTTTCCAGAAGTTTTA -AAAAGTTTTGGGTACAATTTTAAAAAGACAGCAAAATGTTCGTAAAACAC -CAGGAAAGAATTTTGCGCTTAATATCTGATGCTTCGTAAACTCCACGGGC -TTCCGGCCTTAAAGCCGAGCTACGCGCCGTAAATCTACCCCGGCCGCAAC -GCGCCGTAAATCTACCCCGGCCGTGGCCGAGCTCAAGTGGCCTAGTTCGG -CAAAATCTTCCATTTCAAAATATGAGTGAAGCCAGAGGCGCGTGAATGAT -GACTTCCACACGGTTCGGTAGAGCGCATTTACACTTATGTACCCTTTGCC -GGGCTGCGTTCAAAACCTAAAAATTTGAAATTTTGCGCGTAAGATCTGGT -GCATTGGGTTCTGAATTATTTCGACAAAACATGGTGCATCATCCCAAAAA -TTGCAATTTTGCAGTGAACTTGAGAACTTTAACAGCTCCGATGTTCCGAA -AAACTTCGACGCTCGTCAGAAATGGCCGAATTGCCCGTCAATCTCGAATG -TTCCAAATCAGGGAGGATGCGGGAGTTGCTTCGCGGTCGCCGCCGCCGGT -GTCGCCTCCGACCGTGCCTGTATTCACTCGAATGGAACTTTTAAGTCACT -TTTGTCCGAGGAGGATATTATTGGATGCTGCTCGGTGTGCGGAAATTGTT -ACGGCGGAGATCCACTGAAGGCCTTGACCTATTGGGTTAATCAGGGACTT -GTTACAGGTAAGCGGTGACGTCATAGGTGGCCTAGGAACCTTTGATCTAC -AATGTGATTGAATTTTATATCACGCAATTTGTAATAATTTCTAAAAAAAA -TTATCGATTTTTCTGAAAATTAACTTGTTCCAAATTTTGAACGAATTTTC -TAGAAGATTTTTGCAATTTATCGATTTTTGCAAGCTATCGATTTTTCCCG -CAAACTATCGATTTTTCTAGAAAATTATCGATTTTTCTAGAAAATTATTG -ATTTTTCTAGAAAATTAACGATTTTTCTAGAAAATTTTCGATTTTTCTAA -AAAAAATTATCGACTTTTTTCTCAAAAGTATCGATTTTTGCAATTTATCG -ATTTTTTGAAATTTATCGATTTTCCCTGCAAATTATCGACTTTTTTGAAA -ATAAGCTTTCCCCAAAAATTTGAACGAATTTTCTAGAAATTATCAACTTT -TGCAATTTATCGATTTTTTTTTTGCAATTTATCGATTTTTTGCAAATTAT -CGATTTTTTGCAAATTATCGATTTTTCCAAACAATAACGATTCTTCTAAG -CCCGTGGAAGAGTTTTTCGAAAACCTAGGCCATCTCTATTTCCAGGTGGC -CGTGACGGTTGCCGTCCCTACTCGTTTGACCTGTCGTGTGGAGTCCCGTG -CTCGCCGGCCACGTTCTTTGAGGCCGAGGAGAAGCGAACATGTATGAAGA -GGTGTCAGAATATCTATTACCAGCAGAAATATGAGGAGGATAAACATTTT -GGTTAGAGATATTTTTTTTTAGAAAAATAGAGAAAAATTTCTGGGATCTA -TTCAAAAATGGCAAACTTTTTGGAAATTATCGATTTTTTCCGGTAAATAA -TTATCAATTTTTTTCTCGGAAAATATCGATTTTTTCGGAAATTGACAATT -TTTTCGAAAATTATCGATTTTTTCCGTTAATGATCGATTTATTCGGAAAT -TATTGATTTTTCCGATAATTATCGATTTTTCGGATAATTATCGATTTTTT -CCGATAATTATCGATTTTCCGGTAATTATCGATTTTTTCCGATAATTATC -GATTTTTCGGATAATTATCGATTTTTTCCGATAATTATCGATTTTCCCGA -TAATTATCGATTTTTCCGGTAATTATCGATTTTTTCCGATAATTATCGAT -TTTTCCGATAATAATCGACTTTTCCGATAGTTATCGATTTTTCCGATAAT -TATCGATTTTTTTTCGATAATTATCGACTTTTCGGGTAATTATCGATTTT -CCCGATAATTATCGATTTTTCCGGTAATTATCGATTTTTTCCGATAATTA -TCGATTTTTCCGATAATAATCGACTTTTCCGATAGTTATCGATTTTTCCG -ATAATTATCGATTTTTTTCGATAATTATCGACTTTTCGGGTAATTATCGA -TTTTTTTCCGGAAATCATGAATTTTTCCAATAATTATCAATTTTTTCCGA -TAATTATCAATTTTTCCGATAATTATCGATTTTTCGGATAATTATCGATT -TTTTCCGATAATTATCGATTTTCCCGATAATTATCGATTTTTCCGGTAAT -TATCGATTTTTTCCGATAATTATCGATTTTTCCGATAATAATCGACTTTT -CCGATAGTTATCGATTTTTCCGATAATTATCGATTTTTTTTCGATAATTA -TCGACTTTTCGGGTAATTATCGATTTTCCCGATAATTATCGATTTTTCCG -GTAATTATCGATTTTTTCCGATAATTATCGATTTTTCCGATAATAATCGA -CTTTTCCGATAGTTATCGATTTTTCCGATAATTATCGATTTTTTTCGATA -ATTATCGACTTTTCGGGTAATTATCGATTTTTTCCGATAATTATCGATTT -TTCCGATAATAATCGACTTTTCCGATAGTTATCGATTTTTCCGATAATTA -TCGATTTTTTTTCGATAATTATCGACTTTTCGGGTAATTATCGATTTTCC -CGATAATTATCGATTTTTCCGGTAATTATCGATTTTTTCCGATAATTATC -GATTTTTCCGATAATAATCGACTTTTCCGATAGTTATCGATTTTTCCGAT -AATTATCGATTTTTTTCGATAATTATCGACTTTTCGGGTAATTATCGATT -TTTTTCCGGAAATCATGAATTTTTCCAATAATTATCAATTTTTTCCGATA -ATTATCAATTTTTCCGATAATTATCGATTTTTCGGATAATTATCGATTTT -TTCCGATAATTATCGATTTTCCCGATAATTATCGATTTTTCCGGTAATTA -TCGATTTTTTCCGATAATTATCGATTTTTCCGATAATAATCGACTTTTCC -GATAGTTATCGATTTTTCCGATAATTATCGATTTTTTTTCGATAATTATC -GACTTTTCGGGTAATTATCGATTTTCCCGATAATTATCGATTTTTCCGGT -AATTATCGATTTTTTCCGATAATTATCGATTTTTCCGATAATAATCGACT -TTTCCGATAGTTATCGATTTTTCCGATAATTATCGATTTTTTTCGATAAT -TATCGACTTTTCGGGTAATTATCGATTTTTTTCCGGAAATCATGAATTTT -TCCAATAATTATCAATTTTTTCCGATAATTATCAATTTTTCCGATAATTA -TCGTTTTTCCCGATAATTATCGATTTTTCCGATAATTATCGATTTTTCGG -ATAATTATCGATTTTTCCGATAATTATCGATTTTTCCGATAATTATCGAT -TTTTCCGATATTTTTTTTCGGAAATGGCTGCCCCATCGCGGTTTGATCTA -CAAAAAATGCGGGAATTTTTAGCCCAAAAACATGTGACGTCAGCACGTTC -TTAACCATACGAAATCAGTTGAGAACTCTGCCGCATTTTTTGTAGATCTA -CGTAGATCAAGCCGCAATGAGACACTCTGGCACCAAGTGTCTGTAATTGA -CTTCACGGAAGAAAATATATTTTTATTTAATGCGCAAAACTAAAATTCAA -AATTTCGTTTCGACCAATACACCATATTTTAAGCGCAAATTTCAATTCAA -ATTTTTGCAGCAACCTTTGCCTATTCAATGTATCCCCGCTCAATGACAGT -ATCCCCCGATGGAAAGGAACGAGTAAAGGTGCCAACAATCATCGGTCACT -TCAACGATAAGAAAACCGAGAAGCTGAACGTGACCGAGTACCGTGACATC -ATCAAAAAAGAAATTCTACTTTATGGTCCCACCACGATGGCGTTCCCAGT -TCCCGAAGAATTCCTTCATTATTCGAGCGGAGTGTTCCGCCCGTATCCAA -CTGATGGTTTCGACGATCGAATTGTGTATTGGCACGTGGTTCGATTGATC -GGATGGGGAGAATCAGATGATGGAACACATTATTGGTTGGCTGTTAATAG -TTTTGGTAACCATTGGGGTGATAATGGTGAGTTTTCGTGCAAATTGCGCA -CGGCCCGGCAAATGGTACATCCATACAAATGCGCTCCACTGATAATTTGA -GTTTAGCCAGGTTTGGGCGCGTTTTAAGGAAAACGCCTTGGTCCAAAAAA -TTTAGAATTTGATTTCGGACATTTTTTATATGCATCACAAAAATGTTGGA -CGAGCCGTTTTTGAGAAAAAGCCCAGGTATACGGTAAACAAATTGCGTAC -AGGTGCCACTTCCCGGGCCGTGATGCGCGTTAAATATAGTGCTTTTTAAG -AATGCGTGTTGCGCAACATATTTGACGCGCAAAATATCTCGTAGCGAAAA -CTACAGTAATTTTTCAAATGACTACTGCAGCGTTTATGTCGATTTACGGG -CTCGAAAAAAAAGTTACAGCGATATTCCATTTTTTCTCATTTTTTGCTTA -TTTTTATTTAGTATTCTCACGGTGTGTCATTCTGTCCCATAACGGTTTGA -TCTACAAAAAATGCGGGAATTTTTCGCCCAGAAAAATGTGACGTCAGCAC -GCCCCTAACCATACGAAATTTGTTGAGAAATCTGCGTATAAATTCCCGCA -TTTTTTGTAGATCACGCCGAAGTGAGACACTTTGACACCACGTGTATTCT -ATCTAAAAATAAATTATTTCAAAAATAGAGCCCGAAAAAAAAAATCGACA -AAAGCGCTACAGTAGTCATTTAAAGAATTACTGTAGTTTTCGCTACGAGA -TATATTGATATTTTGCGCGTCAAATATGTTGCGCAGTACGCATTCTTAGA -ATTTTGTGTTGCCGTAAATAAATTTGGACGTCAAATACAGTGCATATTGC -GGTCGATCGGCTACAATATATTTTGCGAGCAAATTTGGAAGTTTTGCGCG -TCAAATATGATGTAGCCGATCGGTCATGTTACAAAACACCATATTTGACG -CGCAAAACTTTAATTTTGGACAAAAAGTCAGAGAATTAGTATTGCGTAAA -AAACTGGCAATTTTTTTCAGAACATTTCTGAAATTTTCAATATATTTTCA -AACTTTTCGCGTCAAATATGGTGCATCAAGTCGCGAACCAAATACACTCT -AACACGTAGTGCCAGGCTGTCCCATTATAGTTTGACCTACAAAAACGCGG -GAATTTTTCGCCCAAAAAAATGTGACGTCAGCACGTTCTTAACCATGCAA -AATCAGTTGAGAACTCTGCGTCTCCTCTTCTCCCGCATTTTTTGTAGATC -AACGTGATTCAGGCCGAAATGTGACACTCTGACACCACGTGGCCCTAATT -AACTCGTAAAAATCACCGTTTTTTTTCCAGGACTCTTCAAAATCAACACA -GATGACATGGAAAAATATGGTCTAGAGTATGAAACAGCAGTCGTCTAATT -ATAATTCGGCAAAAATTTTTTGTAAATAGTTAAATATTGTCCACCTATTT -CATCCCCACCCGATTGCATCTCAACTTGTCCCATTTCCGAGAAAAATCAA -TTATTTATTTTTATTCGGCCATCATTTATTAGCTCCCTCATTCCATAGTT -TTTTTTTAATTAGATTTTTTTTGGATGCTAAAATTTGCCATTCTCATAGA -CATTTTCAATATTTGTGTAAAATAAATCATTTTTCTGGTCTTCAATTGAT -GGAAAAAAACAAAAAAACAATGCGCGTCAGGTTTGGTGTATTGTGTGCAA -ACACCGAGCGCATATTTTGAAATTTATTTTTTTTTCGAATTTATTAAAGT -TGCTGATTTTCTTTAATTTCAGGCTTAAAAATGTCGGATTTTGTGCCAGA -AACCGAGGAAAATGAAGAAGAATCTCAAAAAATCGATGAAATCCATGAAA -TCCCAGCTCAAGCAATTATCATCGACCAAAGTGAGGAAAATGCTGACTTT -ATCAATTTTCAATTACTTTTTGCATTTTTTCTAGGTTTTTCTCGACGATT -TCTCAACAATAAATGGTACGGAAAGTACGGCGAAGATGGGGATCTTCTGG -AGCACATCGACGAGGACTGGGAGCCCGTAGGCCTCGACGAAGTGGAATTT -CTGAGCCAACTGTGGTTTGAGCAGGAGGATCAGGAGAAAAAAGCTCATAG -GCACTATGATTGGGATGAAGAAAAGAAGGAATGGGTGCCGAAGGCCAAGC -AGGAGGAGGTCAATGAGGATTTTATCGCAGAATATCAAGCGAATTACGGG -GTTCAGTATGATGATATTTATAAAAAAATGGACGAAGAATTGCAAGAAAA -AGCGGCAAAAGCTCAAAAAGAAGATGAAGAGAAGAAGGAGAAGAAGCGGA -AGAAAAAAGTTGGCTTGGGAGCCGGGGAAGACGCTAAAGAGGGCTGGCTT -GACCTAGGAGATAAGGTTCATGCGGTTTATGTGTCAAATCTTCCGGAAGA -TATTACAGACGAGGAATTCCAGAAATTTATGTCAAAATGTGGAGTTATTC -AGCCGGATATTCGAACGAATAAGCCGAAATGCAAGCTTTACCGGGAGGAA -AACGGCAAACTCAAAGGCGACGGAAGATGTTGTTATATTAAGAAGGAATC -TGTCGAGCTTGCCTGTAACATTCTCGATGGAGCGAACTTAAACGGGCGGG -AAGTGAAGGTTGAGGAAGCTCGATTTGAGATGAAGGGCGATTTTGATCCG -GCGAGGAAGCGGCGGAAATTGACTGCGGCGCAGAAAAAACGATATATGGA -GCAGCAGAATAAGTAATAAAAAATATTTGGTGAAATTTGAAATAGCTCGT -AAATCGACATTAAGCTGAAAAAATGAAAAAAAACCAAAAAAAATCGTATT -ACGGGAACACAAAATCCTGAGAATGCGTACTGCACAACATTTTTTTTTTT -TTTGACGCGCAAAATATCTCGTAGCGAAAACTAAGACTACTGTAGCACTT -GTGTCGATTTACGGGCTGCTCGATTTTCGAAATGAATTAAAAGAATTTAT -TTATGTGATATTGAAATTGGGCAAAAAATAGGAAAATAATACAAAAAAAT -CTAAAAAATTTATTTCAATAATCGAGCCCCCGTAAATCGACACAAGCGCT -ACAGTAGTCATTTAAAGAGTAGTTTTCGCTACGAGATATTTTGCGCGTCA -AATATGTTGTGCAATACGCATTCTCAGAATATTGTGTTCCCATAATATAT -CGACGAAAAAATTGGCCCAAATCGTGGATTTTTGTCCGAATTTGATGACA -AATGGCTTTGAAAATCACAAAATTTCAGAGAAAAATTTCGATTTTTGGTT -TAAAAAAACAAAAATTGAAACCCAACAAAATTGTTAACTTGAAAACCTGC -TGAAAATCTTAGAATTTTCAGATTTCACCCAAAAAATACCAGATTTAACT -CGAAAATTGCGAATTTTAGGCCAAATTCCTTGCATTTTTCATAGAAAAGA -TAAACTAACGACACAAAATCAAATGAAATTGACTAAAAAACTATTGAATT -TTGTAGAAAAATCCCGATTTTTGCCTAAATTTGCAAAAAAAATATTTTAT -TTTAGCATTTATTTTTCTTAATTTTCACACTAAAAATTACGAAAAAAGAC -AAAAAAAATTTTTTTCATTCAACAATTTTTTGGGCTAAAATGTGTAATTT -TTGCGGGAAGAATTCGAAAAATTATTAAAAATCGTAGAGACTAACTGAAA -ATCAATTTTTTAGGGACCAAAAAGCCAACTTTTGCCGATTTTACTCAAAT -TTTTCCGTGAAAAATCCGGAATTTTTAAATATTATTTAATTGCGAAATTT -TACAATTTTTACACCTAAAATAAGGGTAATATGGTAGCTGGTCTCGACAC -GACAATTTTTTTGTTAAATTCTAAAAAAGGTGTGCGCCTTTAAAGAGTAC -TGTAATTTCAAACTTTATGGAATTTTTTTTTGATTTTTCAAATAAACTAC -GAAAAATCGAAGAAAATTCCACAAAGTTTGAAATTACAGTACTATTTAAA -GGCGCATACCTTCTAGAATTTTACAAAAAATTTGTCGTGTCGTGACCGGC -GACCGTATTACCCTAATTTTTGGTGTAAAAATCGTAAACTGTCCGGATTT -TTCACTACGAAATTCAAATTCGAGGAAAATCGAAAAAAATTGGTTGTTTT -GGTTCCTAAAAAATATATTTTCAGTTATTTTCTACCATTTTTTAATAATT -TCTCGAATTTTTCCCTCAAAAATTACAAATTTCAACCAAAAATTCTGATT -TTTCCTTTCCAGAATCTTCGAATGGACGCCCGATAAGCCACGTAACTACC -GTCCAAAGTCGGACTGTACGGTTATTGTCAAAAATCTGTTCACTCAGGAA -ATGATGAACAAGAATGCGGCGTTGATGTTGGATTTGAAAGAGGAAATGAC -ACAAAGTTGTCAGAAATATGGAATTGTTAAGAAAGTCGTCGTTTATGCGG -TTGGTATTGAGGAAATTTGTGGAAATTTCGATTTTTGTAAAAAAAATTTA -TTCTAAAAAAATAAATTAAAAAAAAAAGATTTAAAAAATTTAAAGCTAAT -TTTCGAAAAATTGAAGCTAATTTTGGAAAAAAAACCGAAAATTTTTTTTT -TTAGAAATGTCGATATTCATAAAAAAATATTCTAAAAACGGGATCAAAAA -TTTTTGAAGCTATTTGTCGGAAAAATTTTTAAAAATGTAAAGCTAATTTT -CGAAAAAAAACCCAAAATTATTGGATTTAACAAATTTTCAAAAAAATTGT -TCTAAAAAAGATAACCTTTAACATTAAAAAAATTATGGCTATTTTTCGAA -AAATTAAAAAAAAACAATTTTTAGCTAATTTTCGAAAAAAAACCGAAAAT -TTGTGGAAATTTCGATTTTCAAAAAAAATTTATTCTAAAAAAAAATAAAT -TTTTAACATTAAAAAATGGCTATTTTTCGAAAAAACCGAAAATTTTTGGA -AATTTCGATTTTCGAAAAAAAAGTATTTTAAAAAAACAATGAGAAATGGT -TATAAATTGTTCTTTCAAAAATTTTTTACAGCTTTTTTTTTCGAGAAATT -TAAAAAAAAAACAATTTTTAGCTAATTTTAAAAAAAGTAAAGCTAATTTT -CAAAAAGAACCCCAAAATTGATGCATTTATCGATTTTTAAAATAAATTGT -TCAAAAAAAGATAAATTTAAAAAAAAAGTTATTGGATTTTTTAAAGTTAT -TGGATTTTTCAATTTTCAAAAAAAAATCATCAAAATGTATAAATAAATAA -AAACTATGGATTTCGAAAAATTAAAAAAAACAATTTTTAGCTAATTTACG -GAATTAAAACAACAAAAAATTTCGGAAAATCGAAAATTGTTGGTTTTTTT -TTTCGATTAAAAAAATTCAAAATCTTCTGAAAGACATTTTTAAAATTTCC -AAAAAAAAATTATGAGTATTTTTCAAAAAACAAATCGAATTTTGATTAAC -TTCCGATTTTTTTGACATTTTTTGAAATTTGAAAATCATTAATTCAAAAA -TTTTTATTGAAATAATTCAAAAATTTTTATTGAAAAAAAACGAAAATTTT -TGATTTTCGCTTGAATATTTCGGAAAAAACAATCGATTAAAAAAAAAATA -GGCTTCTAGTTATTTTTCAAGAATGCTTTTTTTTTGACAAACTGCTGATT -TTTTGTCAGTTTCGTCGATTTTCGTTGTAAAAAATCAAAAATTCAAAATT -TCTTCTATTACGAGTGCACAAAATGCTGAGAATGCGTATTGCACAACATA -TTTGACGCGCAAAATATCTCGTAGTGAAAACTACAGTAATTCTTTAAGTG -TCTACTGTAGCGTTTTCGGAAAAATTCCACTTTTTTTATTTAAAAAAAAA -AACGAAATATTTTGATTTTTTTTTATTAAAAAAAACGAAAAATTTTGATT -TTTTATTAAAAAAAACGAAATATTTTGATTTTTTATTTAAAAATGAAAAA -TTTTGATTTTCCAAAAAAAAAGGCTCCTAATTAAAAAAAAAAAATTTTTT -TGAAAAAGTGCAGATTTTTGTCTTAAAATTTAAATCAAAAATTTTTAAAT -AGACTTTTTCCATCAAATTTCCCCAATTTTCAGAACCACCCGGACGGCGT -CGTATCGGTAACCTTTCCAACGACAGAAGAATCGGATATGGCTGTAAAAT -ATCTTCACGGACGAGTAGTTGACGGTCGGAAATTGACAGCCGAGCTCTGG -GATGGCCGGACAAAGTTTAAGGTCGAGGAGACGGAAGAGGATGAGGAGAA -GCGTCGGAAAGAGTACGAGAAGTATATTGAGGGTGGAAGTAGTGAGACGA -AGGAGGAGAGCGACGACGATGATGACGATGAAGCTGAAGATAATTGATTG -ATCTAAATTTTTTCTGAAAAATTATTTTTAGTTTATACATTTTTCCGAGA -GGAGCAACCGATCAATTTTTACCAAAACTATGTTCAAAATCGCCCAAAAA -TATCAAATTTAGTGAATTTTCGTTTTCATGGATTTTTCGAAAATTAGCTT -TAAAAATGTTTGCCAAATTTTTCGACGATATCGCGATATTTTAAAAATTT -CGAACAAAAATTGCCTAATTTCAATTAAAATCCCTTTTTTCGAAATTTTC -TAATTTTCTGGGCCAATTGGGTCGTTTAAAAAGAAAAATGGCCAAAATTT -GAGAGTTTTAAAAAAATTCTAAAATTTCAATCCTACGATTTTCCGGGAAA -AAAATTTTCTTGGAAAATTGCTTTTTTTTTGAAAAATTATTTTTAGTTTA -TACATTTTTTTTCCGAAAATAGGAACAACCTATCAATTGAAATTTTCAAA -AAAAAATTAATTAAATTTGGAAGCATTTTCCGAAAAATTGCATGTTTTCG -GTTTTCTAGAAAAAAAAAACTAAAAGAACGAAAAATTTCACCAAAAATCA -AATATGAAAATACTTTCCTAAAAATCTGAAAAAACCAGAAATTTTCAATT -TTCCCTATTCAAAAAAATTCAAAAAAAAAACCAAATTTCAGTTAAAATCC -CTTTTTTCGAAAATTTTAAAATTTTCTGCGCCATTGTGTCGTTGATTTGA -AATTTTTTTCTAAAAATCCGTGAATTTTTGAAATTAAACAAAAAATTTGA -AAAATCAAAAATTATCGATTTTTCAACGAAAAAAATTCAAAAATTTCAAT -CTTACGATTTTCCTAACTAAAAAAAAATTTGAAGTAACGAAAATGTTCAA -TTTTTTCGAAAATTTTCGAGGTCATTTAGAGTTTTTTCTGTGAAAATTGC -ATTTTATATACTCATTTAAATTAATTTTTATATATTCCTTTCCCGAAAAC -TTCAAAAAAAAAACCCAGTGATACAATTAAAATCGAGATAATCACAGACA -AAGTAGGCAGTAGGCAGGCAAAAAACAGGCACATATTAAGGTAATACAAA -ATTCTGATAATGCGTACATCGCAACACATTTGACGCGCAAAATATCTCGT -AGCGAAAACTACAGTAATTCGTTAAATGGATACTGTAGCGCGCTAGTGTC -GATTTACGGGAATCTTAAAGAACCTAAAGAATTGTAGGAAAAATGGAGAT -CCCGTAAATCGACACTAGCACGCTACAGTATCCATTTAAAGAATTACTGT -AGTTTTCGCTACGAGATATTTTGCGCGTCAAATATGTTGTTCAATACGCA -ATTTTAAAATTTCGTGGTCTCATAATAATACACAATTAACTAGTAAATCT -ACAAAATCTACAAAATTCTCTTCATCAACTCTTCCACAGCTCGATCGACC -TGTGCATGAGTCTCCTCGTACGCCCACAGAGAGCACAACGCCACGTTGCT -ATTGTCGAGACGTTCCTTATTCGAAATCTGTGACGACATGCGATCCTTGG -CCTGATCTTCAGTCAGGTTATCCCTCGCAACGACTCGACGGACGGCTTCA -TCTGCTGGCACGAAGACGGTCCACGTTTCGGCGAGCGTTTTGTGCCATCC -GGCTTCGATTAGTGCGGCCGCTTCGATGACTGAATGAATTTTTTTTTCAA -CTTTTGCAGAAAAAATTATGATTTTGCAAAATTAACGGGGAAAATTGGCT -GTTTAAAAAATATTTATTATTTTCGCGTTTTTTTAAAATAAAAATCGATG -AAAATTCTGCAAAGTTTGAAGCTTCAGTACCCTTCAAAGGTGCACACGTT -TTAGAATTTAGCAAAAAATTGGCGTGTTCACGATTTTTTGGTTAAATTCA -AGAAAGTGTGCGCCTTTAAGGAGTACTGTAATTTCAAACTTGCTGAATTT -TCATCGATTTTTCACTTTTTTTCCACGATTAGTAAAATTTGTGTTATTGT -AGATTTTTTAAATTTAATACCAAATTTTCCAAAAAATCGAAAAAAAAAAG -AAAAAATGTAATTTCGTTATTTTCAAAAAAATAAATTGAAAAATTGAAAA -AAAATCCAAATATTCGATTATATTTTTTCAGAAAATAAAAATGAAAATTG -GAAAAAAACATATTTTTGGGTTTTTCGATTTTCCAAAAAATTTAAACATT -TAAAAAATCTAAATTTTCGATTTTTTTCAAAAAAAAAAAATTAAAAATCG -CACAAAAACCAAAAAAAAACATTTTTGGCCGATTTTCCAAAAAAAAAAAG -AAAAATAAACAAAAAACAAATATTTCAAAAAAAAAAACAATTTTTTCCGA -TTTTCCAGAAAAACAACTGAAAATCGGAACAATAATTTGTTTTTTCTATT -TTTCAAAAAATATTGAAAAATAAAAGAAAAAACGGAAATTTTCGATTTTT -TTCCGATTTTCCAAAAAAAAAAAATTCAAAATCTCACAAAAACCAAAAAA -AAAATGAAAAATCAAAGAAAAACGAAAATTTCGTTATTTTCAAAAAAATA -TCGAAAAAACTTTTTTTTCTTCCGATTTTTCTGAAAAACACTGAAAATTG -TGGAACAATAATTTTTTTCTATTTTTTTGGTCTCCACGATTTTTCGCGAA -AAATTTCAAAAATTAAAATTTTTTTTTAAATCCAAATTTTCACTTCCCCC -CCCCCCCCCCCCTCACCAACAACTTTCGCCGTCGACTTCTTCACAATCTC -CATAGCTTTCTCTTTCACCTCCGGCCAAACAAGCTCACTCAGCTCGCGGA -GCTTCACCTTATCCGAAAACACAATCGTTCCAAGCTTCCGGCGGTCTACA -ACTCCATCGACAACGACATCCCCTCCAAAATGTTCGCCGATTTTTCGATT -CAACGAGCTTCCCCGTTCATAGCACGTGTGTGCGAGCTTATCACAATCGA -TAACATCGAAATTATGCGTTTCACGGAGATATTTCCCGATATGACTTTTT -CCCGACGCAATTCCTCCGGCGAGCCCAATGATGTACGGGGCGCCCGTTTC -TCTTGGAACCGCCCGAGCTGGACGGAGCAAGTGACCCAGATCCTCTCGTC -GTCTGGAGCTTGAGCTGATCTTTGTCTCTTTCAGGATCTCATCGGATCCT -TCCACCAGCTCGACAATTATCACATCCAGCTGCGACATTCCTTGCTCATT -TCTCTTTTTGTTCACCGCATCGGCACCTTTAATGGTCTCCCGGGACACTA -CTATCGCTTCGAGGTCTTTTATTCGTGTTGAAGGACCGAATGGGTCGATT -ATTGGCTCCGCGAGACATTTTGCCTGGAAAATTATGGGGGTTCTATTGAG -CAAAAATGACCATTTTTGGAAAATTAGAAAATCGGAAAAAAAAATTTCCC -GAAATTTTTTATTTAGAAAAGTTTTTAAAAAACAGAAATTATATATTTTT -TGAGTTTTCCAAAACAAAAAATCGAAAAAAAATATTTCGATTTTTCGGAT -TTTCCAAAAGAAAAAATTTAAAATATCGAAGTTTTTAGATTTGCAATAGA -AAAATTGAAAAAAAAAACGGAAATTGTATTACGGGAACAGAAAATTCTGA -GAATGCGTATTGTACAGCATATTTGACGCGCAAAATATCTCGTAGCGAAA -ACTACAGTAATTCTTTAAATGACTACTGTATCGATCAAGCCCGTAAAGCG -CTACAGTAGTAATTTAAAGAATAACTGTAGTTTTCGCTACGAGATATTTT -GCGCGTCAAATATGTTGTGCAATACGCATTCTCAGAATTTTGTGTTGCCT -TAATGCAATTTCCGTTTTTTTTTCAATTTTTTCTTTTGAAAATCTGAAAA -TTTCGATTTTTTCCAATATTTTCTTTTGGAAAATCCGAAAAATCGAAACA -AAAATTTTTTTCTATTTTTTAAATTTTTTTTTTTGGAAAATCGGAAAAAA -ACCAAAATTTTAGTTTTTTAAAATATTTTATGGACCAAAAATATCGATTT -TTCCTAAAGTTTTATAGAAAACTGAAAAATTTAAATATTTATTGTTTTTA -ATTTTTAAATTTTTATGGAAAAATTTCGATTTTTTTTTTTGAAAAAAAAG -CTTTTTTTAAATTTTTCTTTATTTTTGGAAAATCGAACATTTGCTATTTT -TTTCGATTTATTAATTTTTTTGTTGGAATTTCTAAAAATCGATGTTTTTT -TTTCAAAAATCAGCGGTTTTTCCGAAAAATGGCAAAAATTTTTTTAAAAA -ACATTTATTTCTTTTCCTATTTTTCGAAAAATAAATAATTTTTTCTGGCA -ATTTTTAATGAATTTTTGATCGGTAAACTCTTACAGTCCCGGAAATATCC -TCTACAAAATCGACAACTTTCTTAATCCGAAACTCCACAGGCTCAATCAT -CTCGAATAATGATTTTTCTGGAAAAAAACCAATTTGTTAAAAGTTTTATT -TCCAAGCTATAATCTAACTAATAATCATATCCTTATCGGTGACCCCCACG -ACAATAACATCAGAAGCGAGCTCGGCAGCCTTGTTGAGCAACACTTTGTG -CCCATTGTGAAGCCGATCGAATGTGCCGCCCAACACGACTTTTTTGTACT -TTTTCGCCGCCGCCAATTTTTCCGCGTTCTCCAGCAGCTTTTCCTCGCCG -ATTAGCACATAATTCTCGGGATTTCCGCGGATTTCCGACACAACTAGACG -GACGTCGAGCTTCGGGCATGAGCTCGCCGATGTTAGGTAGATTTTCGAGA -CTAGCTCGTCGGTTCGCGGCTCGTCCGGGTTTAATCTGCAAGGAATCCTT -GTTAACCTTGATTTTCGAGCCGGGAAAAAGCCCAAAGCACTTTACCTCAC -ATAAAGCTTCGAGCTTAACGCGGCGGCCGCAGACGTGAGCAATTGCTTCA -GTTTTTGCACATTTTTGCTATTTAACACGAGAAGTCCGTATTTCGAGCTC -ATTGAGAATGATGAGAAATATCAGGGAATATTCCTCAAATTTTAAATAGA -AAAATTCGCTGCCACGTTCGCTGCTCTTATCGGCTGCGCGTCTCTATTTC -ACACACTGTCTCATCTCTCGTCTCGCGTCTCTCGTCTCTAACGCGTGACG -GTGGAGCGCACTTCCCTCCTTTTTGCTGTAAAATCTTTCAGACATGCCGG -AAACAAGAAAAACAAGAAATTATTGAACTGAAAATAATGTAAACGTACTC -ATCGTATTTTTAGCTTCAAAATAAGATATCTTAGAGCATATAATATTGCT -TCTAAACGAAAACCAAAACATCGCTGAAAATGTTGTGAATTTTATGAAAA -TCTAGGATCATTTTTCCCATTTTTATGAAAAACAACAATAAAATGAGAAA -AATTACATGGGAAAACCGAAGAAACTTAAATTTCGCGGTCAAAATTCGAA -TAGAATTACTGTATTTTTCGCTCAGAGATATTTTGCGCGTCAAATATGCT -GCGCGTGCGCATTTTCAGCGTTTTTTATTTAATAAAACAGTAATAAAATG -ATTAAATGCATTTTGTGTGATTTTCAGCCCAAAATGTTTGAAATAAATTG -TTGTTGTTCAAGCCAGCATTTTTAAAAACTTAAATATATGGGAAAACCAT -AAAAATAACACAAAAGTTTGGCAAAATTTTGGAACTACAGTACTCTTTAA -AGGCGCAAGCCCTTTAAGACAAATTTGTCGTGTCGAGACCGGACAAATAT -TCTAAATTTCTTTTATACATACGCAGATTTAAAGTACAGAAGAGCGCATT -TGCACATTGCGCAATTTCTAAATTTTTTCTAACAATAAAAATTAAAACCA -AAATACTTTATTCAATACCACAAATACCACAAGTTCATTTATCTTATTCA -ACCTCTTCCGCCGACGTCGTCTTGTTGTTGCTCTTCCCCTTCTTCTTAGA -CTTCTGAAATTTTCTCATATATGCAAACGCGCTCCGATCTAACAAAAAAC -CTTCTTCTTCTTTTTCTTCTTGTCTACATCTTCCTTCTTTGGCTGCTCTC -CAGATTCTCCCCCGGCTCCCGGATCGCTCTTCCCAAAGTCCATCTCCGGC -TTCAGCCCAACCTCAGGCGGCGCGATCATCAGTACCTGCTGGTATCCAGG -ACCCTTGTAATCCGTCATACAATCCCAATCTGGTGGCTCCTGGGTATTTG -ACTTAGACTTCTCAAACAGCTTCTGGATCCCATCAGCGATACGATCGTAC -TCCACAAACTCAGCGACATCCTTGGGCTCACGGATGATGGTCAGAAGATC -AAAGAACCCAGCAGTGGTCTCCGGAGTGGTTCTCCAAACCGACGCGACCA -TCGGTGCAGTGATGCGACGTTTCAAGTGGAGCACGTCCTGTTCGCTTTCC -TTGTTGAGCAGTGCCCATGGGAGAGCTCCGAGGAAGAACTCGAGCACCAT -GTACCACCAGGACTCCATGTCGTCCTTGTAGCCGAGATTTTTCTGGGAAG -AAAAAAGTTGTTTTAAAGAAATTGTGAACGGTAAGGTTACCCCCTGGTGA -GCATGAACGCTCGCGTACTTGACGACTCCTCTGTAGTGAATCGCATTCTT -TCTCATCTGCTCCTCAGCTTCGTCGTTCTTCTTGACGAATCTTAATTTTA -AAAAAAGTTTTCGGGGTAGATTTACGACGCGTTGCGTGTCGCGTCGCGGT -TCGATTTTAGTTGTAAAACTAAATGTATTTGTCCGTGTGGAGTACGCGAC -TTTCCCACTCAAAATAGGATGGAATTGAATTCGGAGGTGTCACTGTTGCA -AATTCGGATTGTCTGAATAAATATAAAGTGAGATTTTGAATTTTGCTCCA -TTGATAATGGTGTTTTTTTTTGAAATTCTGCAAACATTAATTTCTAGAAA -ATTTGAGTTTCCTCCAAAATTTTTCACAGAAAATTTGAATTCCCGCCAAA -ATTTTTTCTCTGAAAATTTGAATTCCCGCCAAAATTTTTTCTCTGAAAAT -TTGAATTCCCGCCAAAATTTTTTTCAGAAAATTTTGAACCCCGCTTAAAT -TTTTCTGAACTAGGCTATTTTGTCTCGGCCATATCTGGGGTTGTGGTTTA -CGGCGCGTTGCGTGTCGCGTCGCGGTTCGATTTTAGTTGTAAAACTAAAT -GTATTTGTCCGTGTGGAGTACGCGACTTTCCCACGCGTTGTTCGTCAGGC -AATTGTCAATGGAGCGCAAAAACTGCCGACCGCTCCAAATAACTACTTTT -TGCACTTCATTGCATACACACAGCAGCTCGCGGCGTCGGCATGAGGCCCG -CATTTCGCGCCTCACTGGAAGCCCCAGATGCCAAAAAATCTACCTCGGTC -TCTTGCACAACCCGAAATCCAACAGGTAAACCTGATGGTGCTGTCCGTCA -ATCTCTCTTCCAATACAGAAATGCGATGGCTTGATGTCGCGATGAATGAA -TCCATTCCGGTGGAGGTCACGAATCGCGGCCAGCGTCTGCTCGGCCAAGT -GAAGACCCGTCGCCATGCTGAACTTGCGATCCTTGTTCGTGTTCATCATC -AGCTCGTATAGGTTCTCGCCATACTGAAATATGGAATTTGGCTGAAGTTA -GGCAACGAAAAATGGTACCAATGGCATCACAATGAAGAGGAAGCGATTTG -GAACCGTGCCACGTTCCTCGATATTCGTGAAGAATGGAGATGGGTGGTGG -ATCGACGCGAGGACAACTGACATTTGACGAAGAAGCTGGAATTTTTTTTG -CTCTCTAGAAACGGTTTTCACGGCGGCCGACAATTTCCGAGTTTGGAAAC -TCACTGCACTTAGTCATGTAATTTTATAATGAGTGGCTAAACTCGGAAAT -TGTCGGCCGCCGTTAAACCACAAGACAGTTGGTTCCTTCGCCGCGACCGA -CACTTTCCGGGTTCCGCGCCGCACTATACAGAAGGCTGGCTGCGCGAGGC -AGGCTAGACCGCGGCAGGTGTTTTGGCGCCTACATGGACTTGCTAGCTTG -TCAACAAGGCAGCCTAAGCGTGCCTGCAAAAGGTAGGCAGGCACGCTTCT -AAAACCGTGCCAACACACCATAAATAACTCACCGAGCTCTTCATGTTCAA -CGCCTCGCATTTGACCGCAAAAAACTTCCCATCACTCTCGCGTTTTACCT -TGTAAATCGAGCCGAACGTGCCCGTCGCCAGCGGTTTCGTGACTTCATAG -GTGCCGTTTTGTGCTCGAATGAGCTCCTTTTGCGGTTGTCCAGGTCCGAC -TGACGTCATTGATTTAACACCGAAATGTCACGATTATTCGGAAGTGAATC -GATAATCGAAAATCGGAGACTCGAAACTTTTCGAAATAGATTTTATTATC -TTTGTAGGGTTTTTGGAGTTTATGATGATAATGAGGAGGGGGGATTTTAT -GTGGATTAAGAGGCTACGAGGAAAATATTTATTTTTTAAATATTTTATTG -TCATTCTTTTCTTTTCTAGATTTTCACGTTTCTTATTATTAAAAAAAAGT -TTTTCAGAATTTATTTCAAAATCCCGAACATAATCTGAAATTCAGAAATA -CTACAAAAGAAAAACGAAAAAAAAACTGAGAAAAATGGTCCAGATTCTCC -AGTATTGTTAGGCGTACCCCCCCCCCCCCCCTACCTACCTACCTTCCTTC -CTCGCCTACATGCATACCTGCCTACCTACACGCCTGAGTGCCTGCCTACC -TTCCTGCCTACGTTTATGTCTACATTTTTTGCCAGCCTTTTGCCAGTATA -CTTTACGTGTGTTCTTAATTACGTGCCTATCTACTTACCTTTCTTCCTCG -CCTACATGTATACCTGCCTACCTACACGCCTGCGTGCCCGCCTCCTGCCT -ACCGACTCACCTACCTGTTTGCATACATGCCTGCCTACCTTCTTGACCAT -GCCGAGGCGCCTATCTTACTACTTGCCTACCTACACGCCTGTCTATTGCC -TACCTGTTTGGTTACATGTGCCTGTGCCGTACCTGTGCCTCAAAAACATC -TTTATTTTGTAATAAATAATTTTAATAAAACTTTATAAAACAAAAAAAAT -ACAAAATTGAAAATAACCTAACAAAAAGTCTTTTCAAACCCCTTCGAACT -GCTCAACTGATAAAAATTCGTGTTATACTTCAACAATTTGAACTGCAAAT -CCGATTTGACACAGCTAAACTTGTATTTTGTCGCTTTATTCCTGCACAAA -TGTGCTCCTGGGCAATTGAGACTATTCGAATCGGTGTAGTAGGTGGTGAA -GCTCTTTGAGCATCTTATTGTAGAGTGATCTTCTCGAAGACGGCCCAGAA -TTGCGGTGATTGAGGGATTTGTGATGGTTCTGGGGATTTGATGTAATAAA -TTTAAATTGTGTGGTTTAGATGCAGAAAAAAAAACTAAGAATTCAGACTA -AGACTTGAAAAAGAGCCAAGAAAAGGGCGGAGCCTATTATCGATTTTTCC -ACTTGCCGTTTATGAAGTTTATCTACACTTATATAGTCTATTATCAATAC -TAAGTTAAACAGTATATGGTATAATAAATACTATGACTGCAAGAAAAATC -AATAATAGGCTCCGCCTCTATATTTGTTTTTTCTCGTTTTAAATCCAAAC -TTATTCTACGCCGAACCTATATTCTTTTATATTTTTTGAAATTATATATC -CTTCTATTTATAAGATTTTTCCAGCCAAATTTTTTTTTCTCAGAAAAATT -GAGTTTCCCGCCAAAATGGGTTTCTCAAAAAATTTGAATTTCCCGCCAAA -ATTTTTTTTCTCAGAAATTTAAAATTTTCCGCAAAATTTTTCTCAGAAAA -TTTGTATTCCCCGCCAAAAATGTTTTCTCATAAAACATGAATTTCCGTCA -AAACTTTCTCATAAAATTTGAATTTCCCGCCAAAATTTTACGAGAAAATT -TGAATTTCCAGCCAATCTTTTAATGAGAAAGTTTGAATTCCCACCAAAAT -GTTTTTTTTTCTCAGAAAATTTGAATATTCCGCAAAAATGTTCTGAGGAA -AATTGAATCTCTAGCCAATTTTTTCTCATAAAATTTGAATTTCCGGTCAG -CTTTTTTCTGAAAAAGTTTGAATTTCGCGCAAATTTTTTTTCTCAGAAAT -TTTAAACCTCTGGCTTTATTTTTCTCAAAAAAATTAAAATGTCCTGCCAT -TTTTTTAAAAAAAAAATTCACAGAAAATTTGAATTTTTAATTTTAAAATT -CACAGAAACTGACTTCCTTATCGACATGCCAATTGTCACACGATCCGCTG -ATTTCAGAGCTTCACCGCCCGTAAAATTGCCACGTATCATTGAATCCACG -TCAGCAGAGTCGGGAATTTCAAAAATTTTACTATCATCCATTTGTTTGCT -GGAAGCGTTAATTATCGATTTTTATTTTTTTATTCGTTATATTAATTTTA -TTCATATTTTTTGAAAAATAAAATCAATTTCACTCTCGGATTTCTGGCTT -CCCTCATAAAATGAAATGAAAGAGTTTGCCGAACTAGGCCATTTTGGCTC -GGACATATCTGGGGCAGATTTACGGCGCGTTGCGTCGCGGCTCGTTAAAA -ATAGATTTATTTGTCCGTGTGGAGTACACGACCTTCTCACGCGTTGTCCG -GCAGGCAATTGTCAATGGAGCGCGAAAAATTCAATGAGGAAGGCCAGAAT -CCCGTGTTCACTGATTTTTTGAATTTACAATTTTTAAAGTATCGAATAAA -AATTTTAATTGAAAAAATCGATTTTCAAAAAGTTTTAAAATTTTTTTAAA -ATTTGAATTTAAAAATCGATTTTAAAAATTATTGATTTTCGAGCAAACCT -TTTCAATTTGTACGGATGTTCCACGGGCTCATTGAGCCAAACACTATCGA -TTAAAGATGGGCGTGTCACCACTTTTGCCACGCCCCTTTCATTCCGATAT -TCCAATAACCCGACGAATATCTCTGATTCGTAATAGTTGGCGAACTCGGA -AAAATAGGAATCGAACGATTTCGGCACGAGAAGATCAGACCACTCGAGAA -ATGTGATGAAGCTCCCCGAGCTCTGAAAGTTTGGATAAATAGAGTTGTGA -GCCTAGTGCAAGTTGAAAAAATCGATAAATTATCGATTTTCTGATTGTAC -GAATTTAGGCGGGAATTCAAATTTTCTGAGAAAAATTTAGGCGAGAATTC -AAATTTTCTGAGAAAAATTTAGGCGAGAATTCAAATTTTCAGAGAAAAAA -TTTTGGCGGGAATTCAAATATTCTGAAAAAAAATTTGCCGGGAATTCAAA -ATTTCTGAAAATAAATTTAGGCGAGAATTCAAATTTTCAGAGAAAAATTT -TGGCGGGAATTCAAATTTTCTGAAAAAAATTTAGGCGAGAATTCAAATTT -TCTGAGAAAAATTTAGGCGAGAATTCAAATTTTCAGAGAAAAAATTTTGG -CGGGAATTCAAATTTTCTAAGAAAAATTTTGGCGGGAATTCACATTTTCT -GAGTAAAACTTTGGCGGGAATTCAAATTTTCTGAGAAAAATTTAGGCGAG -AATTCAAATTTTCAGAGAAAAAATTTTGGCGGGAATTCAAATATTCTGAA -AAAAAATTTGCCGGGAATTCAAAATTTCTGAAAATAAATTTAGGCGAGAA -TTCAAATTTTCAGAGAAAAATTTTGGCGGGAATTCAAATTTTCTAAGAAA -AATTTTGGCGGGAATTCAAATTTTCTGAGTAAAACTCTCTGGCGGGAATT -CAAATTTTCTGAGAAAAATTTAGGCGAGAATTCAAATTTTCAGAGAAAAA -TTTTGGCGGGAATTCAAATTTTCAGAGAAAAAATTTTGGCGGGAATTCAA -ATTTTCTGAAAAAAAATTTCGGCGGGAATTCAAATTTTCAGAAAAAAAAT -TTTGGCGGGAATCCAAATTTTCTGAAAAAAAATTGGCCGGGAATTCAAAA -TTTTTGAAAAACATTTTCGGCGAGACTTCAGGGGTTCTCATAAGAATTCA -AATTTTCTGCAAAAAATTTTGGCGGGAATTCAAAATTTCTGAAAAAAAAT -TTGCCGGGAATTCAAAATTTCTGAAAATAAATTTTGGCGGGAATTCAAAT -TTTCTGCAAAAAATTTTGGCGGGAATTCAAATTTTCTGCAAAAAATTTTG -GCGGGAATTCAAATTTTCTGAGAAAAATTTTGGCGGGAATTCAAATTTTC -TGAGAAAAATTTTGGCGGGAATTCAAATTTTCTGAGAAAAATTTAGGCGA -GAATTCAAATTTTCAGAGAAAAAATTTTGGCGGGAATTCAAATATTCTGA -AAAAAAATTTAGGCGAGAATTCAAATTTTCTGAGAAAAATTTAGGCGAGA -ATTCAAATTTTCAGAGAAAAATTTTTGGCGGGAATTCAAATATTCTGAAA -AAAAATTTTGGCGAGAATTCAAATTTTCAGAGAAAAATTCTGGCGGGAAT -TCAAATTTTCTAAGAAAAATTTTGGCGGGAATTCAAATTTTCTGAGTAAA -ACTTTGGCGGGAATTCAAATTTTCTGAGAAAAATTTAGGCGAGAATTCAA -ATTTTCAGAGAAAAAATTTTGGCGGGAATTCAAATATTCTGAAAAAAAAT -TTGCCGGGAATTCAAAATTTCTGAAAATAAATTTAGGCGAGAATTCAAAT -TTTCAGAGAAAAATTTTGGCGGGAATTCAAATTTTCTAAGAAAAATTTTG -GCGGGAATTCACATTTTCTGAGAAAAATTTTGGCGGGAATTCAAATTTTC -TGAGAAAAATTTAGGCGAGAATTCAAATTTTCTGAGAAAAATTTTGGCGG -GAATTCAAAATTTCTGAAAATAAATTTTGGCGGGAATTCAAATTTTCTGC -AAAAAATTTTGGCGGGAATTCAAAATTTCTGAAAAAAAATTTGCCGGGAA -TTCAAAATTTCTGAAAATAAATTTTGGCGGGAATTCAAATTTTCTGCAAA -AAATTTTGGCGGGAATTCAAATTTTCTGCAAAAAATTTTGGCGGGAATTC -AAATTTTCTGAGAAAAATTTTGGCGGGAATTCAAATTTTCTGAGAAAAAT -TTTGGCGGGAATTCTAATTTTCTGAGAACATTTTTGGCGGAAATTCAAAT -TTTCTGAGAACATTTTTGGCGGGAATTCAAATTTTCTGAGAAAAATTGTG -GCGGGAATTCAAATTTTCTGAGAAAAATTTAGGCGAGAATTCAAATTTTC -AGAGAAAAAATTTTGGCGGGAATTCAAATTTTCTAGAAATCAATTTTTTC -AGAATTTCAGAAAACACCACCCCGGCTATCAATGGAGCGCATTTTCAAAG -TCTCACTTTATATTTATTCAGGCAATCCGAATTTGCAACAGTGACACCTC -CGAATTCAATTCCATCCAATTTTGATTTCCCATAAAAATCTGGAAACGAG -TCAACTGATATTCCTTTGAGACGCTTCAACTCTTCTAGAAATTCGAAAAA -CGGGCGACTTGTAGTTGCCACGTATGTTTGGAGATGGCCGCCGAAACTGG -AAAAAAAATTTAAAATAAACTGACAAGTCTATATATTTTTTCTTTAAATT -TTTTTAATCGAAAAGCACCCCTATTATATAAATTCTTTTTTAACCTACCA -TTTTTAATAATTGATGGCCGAGTTTTCTTTTTTAGGCCATGTTCAAAAAG -CCGGTCGGTACCGGTTTTTGGTGACCGAATTTTCAAATTTTCTAGGCCAC -GTAGAAAAACCAGGTCTTCTTTTCACACATTGATTGTTTAATTTTCTCAA -AGAACCCCCTCTCCTATAAAATCACGGTTAATAATGGGCGATAAGTCGAT -GGCCGAGTTTTTTTTATATATTTCTAGGCCATGTAGCAAAAACTGACCCT -TTTTAACCCCAGAATGTTCTCAAAAATCGTATTTTTTAATTGTGGAAAAG -CCCAGAAAATTATGTATGCTGCAAAATCACAAGTCGGCGGCCGAGTTTTC -TCTCTTCCTAGGCCACGCTGCAAAAACTAACCTTCCGTTTACATATTGAC -TTTTTCAAATAATTTCAAATAAAAATTATTCACTTATAAAATCATTTACT -TCATGATTGAAAGCTTTTGCAATTGGTTAAAACCGGAAATAAGTCGATGG -CCGAGTTTTCTCTTTTCTAGGCCACGTACCAAAAGTGTCCCTTTTTTACC -CCAGAATGTTGTCAAAAATCGTACTTTTTATTTGTGGAAAAGCTCGGAAA -ATTATGTTGTAAAAAATGAGTCAAGTCGGTGGCCGAGTTTTCTCGTTTTC -TAGGCCACGCTGCTTAAACTGACCTTCCATTTACATTTTGGCTTTTAAAT -TCAAATAAAAATTATTCCCTCATAAAATCGTTTACTGTCATTGTGAGAGC -GGTTAAAAACAGGAAAAAAAATGGTGGCCGAGTTTTTTTTTCTAGGCCAC -ATAGCAAAAAACTCACCTAGTATACACATGAGCAGCTAACAACACATTCT -GCCATCTAACATTATTATAAATAGGCGGAGTACATACAACCAAATCCTTC -GGCTTATTATCCGCCGGCAAATATCGAATTTTCGCGGTATGCCCATTCAC -AAGAAGCTCCAGCTCCGTGAGCTCTTCCTCAAGCACTATAGTACCCACAA -GTGTCACGTATTTGCATAAATTATGCGGAGTTGCTCTGTGAATTTGAAGT -GGTTCGAGTACGGTTTTTGTGTCGTCACTTCGGATTGCGATAATCTTACG -ACGTTCCCAATGTGCATCCCGAGGCGCGATAAAGGTTAGTGTTACTTGGT -TTTTGTAGAGACTGAAAAATTTCAAAAAACTTAAAAACTAACGTAGTTTA -AAACATTATTCTTCTTTTTTTATTCTGAGATATTTTGATTTTGAAAAAAA -AAAATTTTTTTTACGAAAAAAAAATTGGCAAAATACCTCAAAAACTGTGA -GTTTGTTGAAATTTAGTTTTTACAACCACGGGAATTAATTTTTTAAATTA -AAAATATTTTACGTGTAGTCCTCTCGAATAATTTTGAAAAATATATGAAG -TGTTGAATTCTGCCGAGTTTTTTTGTCCGAGTGGACTACAAAAGTGCAAA -GAATTTGGAATTTTTCAAACTTTATATTTAACAGCAATCATCAACAACTT -AAAAAAATTTAGATTAAAAAATTTTTTTTGGAAGTTTTCGAAAAAAATTT -TGGAAAAATTTTTAATTTTCAGAAAAAAAAACCAGTTTGATTTTTTTCTT -AAATTCTTTTTTGAAAATTTGTTGAAACTTTTTTTTAAATGCTAGACTTT -TTTTTTGAATTTTCACGCGGTTCTGGTTTCCCTCATATTTTGAGATAGAA -GAGTTTGCCGAACTAGGCCATTTTGGCTCGGCCATATCTGGGGTAGATTT -ACGGCGCGTTGCTTGTCGCGTCGCGGCTCGATTTTAGTTGTAAAACTAAA -TGTATTTGTCCGTGTGGAGTACACGACTTTCCCACGCGTTAGGCGATTAT -CAATGGAGCGCGAAAAATGCAATGAGGAAGGCCAGAACCCCGTGAAAAAT -ACATTTTAAAAAATACTTGAAAAATGTTTAAATTTTCTTTTTAATTTTAA -ATTTGAAATTTTGTAACTTTACAAAAAAATAATTTTTCGAAATTTTTTTC -AAATATTTTTTTTCGAATTCTTTTTGTTGAAATTTCAATTCTCTGTTCTA -AAAATCAATATTCCTTACCTGTATCCCACTCCATAATAGTACGCAGAAAC -AAAAAATAGGTCTTTCTCGTCGTTATCCAATTCTTTAATCTTATTAGTGT -ATGAATTTCGAACACGTCTTAATGCAGGCAAGGGATGTATTGAAATATGT -ACAAATGCTAATAATATTACAAATAGATATAGGGTCCTGCAACGAATTAT -CAACTGCTCGTAGAGTACGGAATAGGGTTTGAATTGAAAATTGTTCAGTT -TCGTGTCGGAATTCATTTTTATTATGGGGAGGAAAACAATCTAGTGTGGT -GGTAGTGGTAATGACAATCGCTATTTGAAATCATGTTGAATAGCTGCGAT -AAGTATCGGGCGCCAGCGTGGCCTAGGATTTGGGAAAACTCTTCCACCAG -AAGCTAGTCGTGGCCCAGGCTTTGAAATTTGATTATTTGATCAAGAAATT -TACAACTAAATTTAAAATCAACAGTTAAGACATTTTTCATAGACTTTTCG -AAAAATTTCTGATTTTTCCATATCAAATAACCTCGGTACGCATCTAACCG -TCAGTTGCCTCGTGGCCTAGAACTTTTGAAAACTCTTCCACGAGAAGATC -ACCGTAGCCTAGAAAGTTTTGAAACTTGTGTAGTTCGCTTGGAATTTTTT -TTTGGTTTTTTTGTCAACTAACTAGGTTCAATAGCTATTAAAAAGTTGCA -AAATTGGGCAATTTTTGTAAAAATTCACAATTTTGAAACTTCTCTAAAAT -TATTAATTTTGTAGTAAGAGGACTCAAAATTGATCTTCAAACACTAAAAA -ATAGCCCCTTTTTAGAATATAGTGGTTTCGAATATTTTTTGAAAAATTAT -TTTTTTTTACCCAAAAAAAAGGACAGTCATGGCTGAAAAAAAATTTGGAA -AAAATAAAAAAATTGTCTAAATTTGTTGAAAACGGGTAATTCATGCATTC -TGAATTCAGAAAATCTAGGTTTAACCCATCAAAAACCATTAAAAGCGGCA -AAAATGGGTATTTCATTGTAAAAATAATGCATATACAATAAACAATGTAG -AGGAATGTTCAAAATCTGTAGTTTTTTTGAAATTTTTTTTTTATTTTTTG -GTTATTTTTTTTGCAAATTTTCTCGTATATTTAATTAGTTAGTTTGCATG -TTACATGCTAATGAAAAGGTTTTTTTTGCATCCTGATACATATAAAAACC -GAGAAATTCACAATTTCACAATCAGTAAGGTATTTAATTTTTGTTAACTT -TAGTCTTCTGCTCCTCTAAAGCTTCTGGAAGAGGACACTTTCTAAATTTT -CAAAATATTTTTTGCGCCACTTTCCTGTCAAATTTCTGGCATTATTACAT -CCAAAACCCAATAAAAATCGGAATTCCATAGCTACGACAACGTCAGCAAA -AGCGGAAAGAAATTTTGTTTGCCTGTCTAACGAGTCACAAAGCATACACT -GACGTTTCTATCAGAAAAGACAGGATTTCGTATCAAAACAAAAATTGGGT -GCGATTGCTCGATGCACCATGTGATATTTTGCTTTTTTTAAAAATTATTT -TGCTCGTAATGTATGGTGCACTTATTCCGTGGCTGCAGAATTTGCACGCG -GTGTCATAATGCCCATTTCGACTTGATCTACGTAGATCTACAAAAAAATG -CGGGAGTTGAGACGCAGAGGTAGGGCTCAACTGATTTCGTTTGGTTAAGA -GCGTGCTGACGTCACATTTTTATGGGCAAAAAATTCCCGCATTTTTTATA -GATCAAACCGTAATGGGACAGCCTGACACCATGTGAATGCAAACTTTACG -CGAAAATTTTTAGATTTTTAATAATCTTAGAATTAGCTATGGTTTTATAG -AATAATATCAAAATTATCCAAAAAAAAAAACACATTTTTTCAAAATTTTA -GATTTCCAGTTTCTATTTGAACTTTAAAAGACTAATCCAAATTTTGTTTT -GTTTCAACGATTTTTCATTGATCTCTCCAAAGAATTCATTGAAACACATC -ATTCACAAAACTAAAAACTCCCCGACTTGGCTTTCATTCCGAGATGACAA -ACTTTTTGGTGGCAAAGGTTCTTTGGGGGCATAGTATCCAAGGAGACAAA -GTATCCAGTAGACAAACTGGGGTGTATCTTGGGGGGCATATCTTTGGTGA -CAACCTTTTTTTCGACTAGATTTTTATATGTATTTTTCAACTAATTTTTG -TTCACATTTTTCTGGAATAAGTTTTTTAATGCAATTTTCAATCGATTATC -GGTTATAATTCCCTCACAATTGAATGTATGAACGATGGTCTTTTGGGAAA -AGCTGTAAAACGTCCAACTAACTTGGAATATCGTGAGGCTCTTCCTGATG -GTCTGATCCTTCAGCTCCGAAGGATCACATGGGTACCTTCTGATGTTCTG -ATCCTTCAGATAAGAAGGATCGTAAGGGTACCTCCTGATGGTCTGATCCT -TCAGATCCAAAGGATCACGAGGCTCTTCCTGATGTTCTGATCCTTCAGCT -CCGAAGGATCACATGGGCACCTTCTGATGATCTGATCCTTCAGATAAGAA -GGATCGTAAGGGTACCACTTGATGGTCTGATCCTTCAGCTCCAAAGGATC -ACGAGGCTCTTCCTGATGTTCTGATCCTTCAGCTTCGACAGATCATATGG -ATTTTTGACAAAATTTGAAAAAAAAAATTTTGAAAAAAAACTCGAAATTT -TTTTTTGTTATTCTTCATTCTTTAAAGAATAGTTCAAATTTATCATGATA -GGACCGAAAACTTTCAAGAAACAGTATAACTATACATGATAATCAGCTTC -TACCAAATAATGATAAATTCTCCGCGATGACAAACTTTTCGGTGACAAAG -TATCTTGGTGGACAAACAAAAATTACCGAAAACTGATGTAAGGAATAGTG -AAATAGAGTCCTATGGACTATTAAACATGTTCAGTAGGTGTATTCAGGAC -TGTCCGTCAAAATAAAAAAAAGTTTGTCAGACGAAGTTCGAACCTGGGAC -CTGTAGGATGCAAAGTGCGCTCACTACCACTACACCAGCTATGCGAAAGT -CGGCGAGCCTCATCGAAGGCTATTATAAAACTTAGTTCGCACGAGTATGA -TCGACATTCAACAAACAGTAATATCTCTCAACAAGAATTTCTTCATGGAA -TTGAGGTCATTTGACTATTTTTATCGGTTTTTCAAGTTGAGCATAGGGTC -TTTTAATTTTTTGAGCATAGAAAATCATGAAAGCTGCCTGTTCCTTGTAT -CCTGGATCGAAATAGACGTATCTGGCCTAAAATATTTCCTGAACAGTGAT -CATTTCATGTCCATTGTGTGTTTCTCTGTATTTTGAACCAGAAAGTTGAA -CAAAAATGATAATATTATATCGAAAAATGGAACAAATACAAATAATTTTT -AGGCCTAATCAAATTTCCTCCGGATATTGTTTTTTTTGTCATGATTATAT -GTGTCTAAATTTTTTATAATGTGTTTTATAACAAAATTCGTCATTATTTC -CTTCATTTCAAGCAAAATTTAACAGTTCGAGCTTAAAAATAGATGTTGCA -AAAAATTTAATTCGTTTCGATGAATACGGTATACGGTCGGTGTTTGCGTA -CTTTGGCGTTTGCGTATGAAGCATCCTATTTGACGCACGAAACTTTCAAT -GAAATTTAATGCAAATTCTGCATCGAAAAGGACATTACGATGGAAATAAT -GACGAATTTAATTATAAAACACATTATAAAAAATTTAAAAACATATAATC -ATGACAAAAAAAACAATGTCCGGAAAAAATTTGATTAGGCCTAAAATTTA -TTTTTTATTTTTTTCCATTTATCGATTCAATATCAACATTTTTGTTCGAC -TTTCTAGCTCAAAATTCATAGAAACTCACGATGGACATGAAATGATCACT -TTTCAGGAAATATTTTAGGCCAGATACGTCTATTTCGATCCAGGATACAA -GGAACAGGCAGCTTTCATGATTTTCTATGATCAAAAAATTAAAAGACCCT -ATGCTCAACTTGAAAAACCGATAAAAATAGTCAAATGACCTCAATTCCAT -GAAGAAATTCTTGTTGAGAGATATTACTGTTTGTTGAATGTCGATCATAC -TCGTGCGAACTAAGTTTTATAATAGCCTTCGATGAGGCTCGCCGACTTTC -GCATAGCTGGTGTAGTGGTAGTGAGCACACTTTGCATCCTACAGGTCCCA -GGTTCGAACTTCGTCTGACAAACTTTTTTTTATTTTGACGGACAGTCCTG -AATACACCTACTGAACATGTTTAATAGTCCATAGGACTCTATTTCACTAT -TCCTTACATCAGTTTTCGGTAATTTTTGTTTGTCCACCAAGATACTTTGT -CACCGAAAAGTTTGTCATCGCGGAGAATTTATCATTATTTGGTAGAAGCT -GATTATCATGTATAGTTATACTGTTTCTTGAAAGTTTTCGGTCCTATCAT -GATAAATTTGAACTATTCTTTAAAGAATGAAGAATAACAAAAAAAAATTT -CGAGTTTTTTTTCAAAATTTTTTTTTTCAAATTTTGTCAAAAATCCATAT -GATCCGTCGAAGCTGAAGGATCAGAACATCAGGAGGTACCCATGTGATCA -TTCGGCTCTGAAAGATCAGATCATCAGGCAGAGCCTCATGTTCTTTTGGA -GCTGAAGGATCAGAACATCAGGAAGAGCCTCATGATCCTTTGGATCTGAA -GGATCAGACCATCAGGAGGTACCCTTACGATCCTTCTTATCTGAAAGATC -AGATCATCAGAAGGTACCATGTGATCCTTCGGATCGGAAGGATCAGATCA -TCAGGCAGAGCCTCATGTTCTTTTGGAGCTGAAGGATCAGAACATCAGGA -AGAGCCTCGTGATCCTTTGGAGCTAAAGGATCAGACCATCAGGAGGTACC -CTTACGATCCTTCTTATCTGAAGGATCAGAACATCAGAAGGTACCCATGT -GATCCTTCGGAGCTGAAGGATCAGACCATCAGGAAGAGCCTCACGATATT -CCAAGTTAGTTGGACGTTTTACAGCTTTTCCCAAAAGACCATCGTTCATA -CATTCAATTGTGAGGGAATTATAACCGAAAATCGATTGAAAATTGCATTA -AAAAACTTATTCCAGAAAAATGTGAACAAAAATTAGTTGAAAAATACATA -TAAAAATCTAGTTGAAAAAAAGGTTGTCACCAAAGATATGCCCCCCAAGA -TACACCCCAGTTTGTCTACTGGATACTTTGTCTCCTTGGATACTATGCCC -CCAAAGAACCTTTGCCACCAAAAAGTTTGTCATCTCGGAAAGAAGGCCCC -CCGACTTTGCGCGTAAGATATGGTGAGACCCTAATACATCATATTTGACG -CGCAAAATATCTCGTAGCGAAAACTACAGTAATTTTTTAACCGTCTACTG -TAGCGCTTTTGTAGATTTACGGGATCTCGATTTTTTTAATGATTAAAATT -AAACAAAAAATGAGAAAAGAACACGAAGAAACGAAGAAAAATGAAATATC -GATGTCACTTTTCGGAAAAAAAATTAATTTCAAAAATTGAGCCCGTAAAT -TTACACATGCGCTACGGTAGGCATTTAAAGAATTACTGTAGTTTTCGCTA -CGAGAAATTTTGCGCGTCAAATATATCGCACAATACGCATTCTCAGAATT -TTGTGTTCCCGGAATAATTTATTTATTGGTTTTTTTGGTTGTATTGGTCC -CAAAAATCAACAAAAAAAAATTTTTATGAAAAATTTCTGTTTTCTTCCGT -TTAAAATCAAAAGTTGGTTTTTTTTGTTGCTTTTTTTGATAAATTTTTGC -AACCACCCTGATTTATATTCCCATAAATATTTAATGTCCCGCTTATGATA -TCTACTGCTTCTTTGCAAAATTCCTACCTGCGGACCAAATACACCATACT -TGACGCGCACTTTTTTTTTGATTTTCAGCTGGACAAACACATTTTCAGCA -TGATTCTGACTTATTTATTTAACTCTTATCACTCTTATCGTTAAAAAACG -CCCTTATAATCATCAACCTATTTTCATTGTCATTCAAAAAAAAAAACTAT -TTCGTACTCGTCGATCGTACTAATTTGTCATCGTTCCGTTCCGTCGAGCA -AAAATCAATGTAGTTTTACGTTTTCCGTTGAAAAAAAATCCAAAAAAAAA -TCCAAAAAAAATCCAAAAAAAAATTCCTTGTTAATTAAAACCGTGAATAA -AAAATTCAAATAAAAAGTTCAAACGTTTCGTTATAAAAATGTACACCGGT -AAGCTCAAAAATATACATTTCAGATTCTAACAATGTGCGACGATACGCTC -GCATTTTGTAGTCCAGCTCCATTCAGTGATGATGTAGAGGTTATTAAACA -ACGTGAGGCGATCGATTATTCCACACAAATCACTCTGGAAGATGCGATTT -CTGGGAACGGTAAGTGCGCTCCGTTGTACTCATAGTTCGCTGAATGAAGG -CATGTATAAGTTCTCAAATTTTCAAATGAAAATTGCCAAAAAAGGTTTTT -AGTTAAAATTTAAAAAATTATCGATTTTTAAATTTATGAAAATTTTTTCG -AAAAATTTGTGTTTTTTGTTTTTGTTTTATTGATTTATTGATTTTTTGGC -GAAAATGTGAAAAATCGAAAAATTATGGATTTTTTCTTGGAATTAAAAAA -AAAAAACTTTATCGGCTAAGCGAAACTTGCTTTTTCGGTTTATTGATTTA -TTGATTTACTTGAAAAAGTACTTGAAAAAATCAATACTTTTATCACGGGG -ATCTGGTCTTCCACATTAAACTTTTCGCGCTCCATTGAGAATCGCCCGCC -GGACAACGCATGGGAAAGCCGTGTACTCCACACGGACAAATACAATTAGT -TTTACAACTAAAATCGAGCCGCGACGCGACACGCAACGCGCCGTAAATCT -ACCCCAGATATGGTCTGGTCTAGTTCGGCAAAAACTCTTCCATTTCAATT -TATGAGGGAAGCCAGAAATCTTTGTTTTTATTTTATTTTGAAATCTCTAA -ATTATCGATTTTTTGGAAAAAAAGTTGTTTGAAAATTCGATAATTTTTTA -ATGATTTTTTGGAAAAATTAAAATTTTCGCTTTTCAAAAAAATCAAAAAT -TATTGATTTTTGAAAAAAAAAACACGGCATGCAATTCCTAGACCACCAAT -CAAAAACCTCTTCCAGTGACTCGTCCGGTCCGTGTCTACGCTGACGGTGT -CTACGATATGTTCCACTACGGCCACGCGAATCAATTCCTGCAGATCAAAC -AAACTCTTCCGAATGTCTACCTTATTGTTGGCGGTGAGTTCGGCCCGCGA -AATTCAAAATTTTTAATTTAAAAAAAAAACGATTTTTTCCAGTATGTTCC -GACGAAGAGACTATGAAGAATAAGGGGAGAACTGTGCAGGGCGAAGAAGA -GCGGTACGAGGCGATTCGGCATTGCCGGTACGTCGACGAGGTGTATAAGG -CGTCGCCGTGGACATGTCCGATACCGTTTTTGAAGGAGTTGAAGGTAAAT -TGCGCGTGAGATTCGGTGTTTGCACAGTTTTATCTCCAAAAACGAAGGAA -ATTTTATACCTAAATTTCGGAAAAAAATCAATAAATTATTGCCTTTTTTA -AACGTCACAAAATCGATAATAATTTGAAAATCACAATTTTTTTTTTATTT -TCAAAATTTCGTTGTTCTATCACGGGAACGCAAATTTCTGAGAATGCGTA -CTACACAACACATTTGACGCGCAAAATATCTCGTAGCGAAAACTACAGTA -ATTTGTTAAATGACTACTGTAGCGCGCTAGTGTCGATTTACGGGCTCTAT -TTTAAGCTCAATTTTAATTTCTATCGATAAATATATGATACAAAATATTG -ATCCCGTAAACCGACACTAGCGCGCTACAGTAGTCATTTAATGAGTCACT -GTAGTTTTCGCTACAAGATATTTTGCGCGTCAGATATGTTGCGCAATACG -CATTCTCAGAATTTTGTGTACCCCGTAATAAAAATTCGAGTTTTTCTAAA -CAAAAAGTTTAATTTAAAAAACCTCTAATATTCGAGATATTCGATTGGCG -ATTTATTGATCTATTGATTTTTCGATAAATATTGATTTTTCAATTTTTAC -AATATTCGAAACAATTATCGAAATTTCAAAAAACTAACAAAAAATATTTG -CGGAGGAAAATCGATAACTTTTCAATGTATATTTTCTGAAATTCCATAAA -ATTGATTTTTCTAAATTTAATTTGTTCGATTTTCGGGTTCTCGGTTTTCC -TAATTTCTGTAATTTTGAGTCGATAATTTTTTGTTTTTTTTTTTCAATTG -AAACTTTTATTGATCAAGGATTTCTGGCTTCCCTCATAAATTGAAATAAG -AAGAGTTTGCCGAACTAGGCCATTCTGGCTCGGCCATATCTGGGGTAGAA -TTACGGCGCGTTTCGTGTCGCGTCGCGCCTCGATTTTAGTTGTAAAACTA -AATGTATTTGTCCGTGTGGAGTACACGACTTTCCCACGCGTTGTCCGGCA -GGTGATTGTCAATGGAGCGCGAAAAATGCAATGAGGAAAGCCAGAACCCC -GTGATTGATTATTGAGTTTTGGAAAACTATTTTAAAAAACCTGATTTGAA -AGAAAATATCGGTAATTTTTCGGATTTTTAACAAGAAAAAGGTTTTTATT -TCCGGAAACTTTCATTTAATAATTATTTATTTATTGATTTCTCGGAAAAA -TTTGCCGAAATCTATCGAACTATAGTCGAACAATTGGACGAAAAGTCGAA -AAAAAAATTCTAGGCCACGAATTTCCTCTTCCAGGTTGACTTTATGTCAC -ACGACGCTCTGCCATACCAAGGTCCCGCCGGAGAAGACATCTACGAGAAG -CACCGCACTGCTGGCATGTTCCTGGAGACGCAGAGAACCGAAGGAATATC -GACGAGCGATTCGATTTGTCGAATTATCCGCGACTACGACACGTATGTCA -GAAGAAATTTGCAGAGAGGATATTCGGCCACCGATTTGAACGTTGGCTTT -TTTACAGTGAGCCTGGCCTAGAAAGGGGTGGCCTAGAAAGAGGTGGCCTA -GAAAAACAAAACTCTTCCATTTTTTTCAGACCAGCAAATATCGTCTGCAA -GACACCGTAGTGGGAATAAAAGAAATGGGCCGTGGCCTGCTGCAAACGTG -GAAAACGAATGCGGATTACTTGATTGAAGGATTCTTGACGACATTTGCCA -TCAGTGATCCGAAACCGTTGCCGAACAACAAAAGTGCCGATGAAAATGTG -GAAAATAGGGAGAATATTGAGAATTTTTAGAAAAAATTCGTGTAAATTAT -GGGAATAAAAATTTGAATACTCGTGAATGTTTACTGAATTTATGCAATTT -ATTTTTTGAAATTTTCAATTTTTTTGGAAAATTTTTTTTTCTTAGGCTTA -GGCTTAGTCTTTGGCTTTGTTTTAGGATTAGGCTCAGGCTTAGGCTTAGG -CTTAGACAAAAACTTAAGCTTAGGCTTAGGCTTTTGATTAGGCTTAGGAT -TAGTCTGTCTTTCACTTAGGTTTGGCGTCATTGGCGAGCGTTAGCTCGCT -ATTTAGGCTTGGGTTAATTAGGCTTAGGCTTAGGCCTAGCTTTAAACTTA -GGCTTAGGCTTAGGCTTAGAATCAGGCGGGCTAGGGAAAAAAAGAGAAAT -TCCAAAAATTCCAGAAAAAAGGAAAAAAGGTACATCCCGAAGTCGGGTCA -AAAAATAAAGTGAAGAAATGAAATTTTCACGAAAATGAATGAATATTTTT -GAGTCTCGCGGATTTATTTTCATAATCATATTCTGAACGTATTATTGACT -CGTCGTGTGGGACATTTCAATGGATTTTCCGTAAAAATCTCTGTAGAATT -CCGCATCGGTCAACGATTCTTCACAAGAGCCAAACTCGGCGAGTCGGTCA -AACAAATGTTTGAGCTCCTGAAGAGTAGTTCAAAATTATATATGAATTGA -TTTATCTTGCAAACCTTTCTCCGTTTGTCGGTAAAAAGTCCTTCGGGGCA -GATTTCCGTATCAATCAGACGATTTGCAATGTATACAATCCACATGAGAT -TTGTTCGCCTTGAGAATTTCTCCCAGTTGCCCCTGGAACGTTAATTTTTC -TGAATTTCTAGAAAGGATATAGAAATAGCAACAAAAAAAAAAATTTATCC -AAATAATGAGCTATTTAATGTAGTTTATATTACTACAAATACTTTTCTCA -TAAGAACGTCTTGTTCTTGATAAATGTGTGCTTTAAGAAAAAAAAAAGTC -AAAAATAGAGTCCTGAGATGTCGGGCGTTGTACCTATTAGGGGTGTCAAT -AAGTTCCGGGTCAAAATTCATAACTTTTTTCGTAGCAAATCGATTTTCTT -GAAAATGTGGGAATTTATGTTATCAAACATGGTCTTTCATTTGACGGCAC -TTTCAAAAAGTTTTGACCACTCCATGTACCCTAGCTCGGATCCACTTTTT -TCAGGCGTATGCCCGATCTCGCTTCTTTGTAACTTTCAATTGAGACTTAT -GTGCGGATTTTGATTTATTAAGTATACAATGTAAGAATACAATAAAAATT -TGAGAAAAAATTCGTTCAAAAAAACAATTTTTTTGATCGGCAAAAAACCC -TCGAAAAAAATTTTGTCGAAAACTCTTGATTTTTTGTACAGGAATGATGC -AACCAATTCTGAACAATTTTTTAACACATAAAAGTTTTGAATTTAAGGCG -TCACACACAAGCGGCAATGGAAAAAATGATTTTTTAGTGAATTTTTTGAA -ATTTTTGAGAAATTCTCGAAATCTAAATATTAAATTCAAATGTTTTGTGT -GTTGAAAAATTGTTCAGAATTGGTTGCATCACTCCTGTACAAAAAATCCA -GAATTTCCGACAAAAATTTTTCCGAGGATTTTTTTGACGAACCAAAAAAA -TTTGTTTTTTTGAAGGAATTTTTTCTCAAATTTTTATTGTATTCTTACAT -TGTATACTTAATAATTCAAAATCCGCACATAAGTATCAATTTAAAGTTTC -AAAGAAGCAAGATCGGGCATACGCCTGAAAAAAGTAGATCCGAGCTAGGG -TACATGGAGTGGTCAAAACTTTTTGAAAGTGCCGTCAAATGAAAGACCAT -GTTTGATAACATAAATTCCCACACTTTTAGAAAAATCGATCAGCCACGAA -AAAAGTTATGAATTTTGACCGGTAACTTATTGTGCTACATGCTTGTTGCG -AAATATACCTATTTACCTATACCTATACCTATACCTGCAATTTTCTCTCA -TCTCTCGATATACTTCAAATTGTGGAGCATCTGGTCCTTCAAAAATCGTC -GTATCCTCTTCCAAATCCCAGTAGATAGTTGTCGAATCTAAAATTATATA -TTTTTAATTATAAATTGTATATTTTTTTAATTTAAAAAATAACAAACCTT -TCGAAATGCGGCTAAGTGTGAAATCAATAATATTGACCTTAATTCCATGG -GTCCTCAGTGGAATTTTCTGCCCATGCACAGTGTAGGAGAGCTCTTCCAC -TCCGTTCCGATCGATCAGCACATTACTAAGATTTAAGTCCCTGTGCTCGA -ATTCAAGAGCTGCTTCAGCTGCAACCATTGAGAGAACGAGCTGGTGAATG -ATGGAAAATAGTTCATCTTCACTTTCAAGGACAAAATCTGCCAGCGAGAT -TCCACCATTTGCCGAGACGAAAAGGATAAAGTTTTGATGTTCTGAAGAAT -AAACATCTGGCCTCAAATGTTCGGATTCATTGAGCTTATCGTAGGCATCC -CAAGCTCTCAGTAATCCCTTAGGATATTCCCCCATGACTATTTGGGCTGA -AATCATTTCGATAAAATTCGGCGTAGAATTCCAAGAATTTGGGTCTCTCA -ACGCCGACAGTTCCTTCATCACAATCACCTCTGACAAAACGGCGTGGGTT -GTTGGAATTTCCACGGATTGATTTCCATAGAAACATCCGTTGTTTTCGAA -TGGCAAAACTTTGATAGCAACCGGTCTACCATTCCAGACAGTTGAGAAGA -CTTCACCGTACGCTCCTTCGCCGAGCTTCTTCACTTTTCGAGCATCTAGC -GCCGACGTTGGTAGGCTACCCCATGGTTTTGCTTCTTTTTGGCCAACAAC -ACGGAGAAGTTGTGCCATGGACGGATCTTTATTGTGAAATGTGATACTGC -CAATGGGGATATTTCTAGAATCAGGATGAGCTGACCGAGCACTTGGAGCT -CTTTTGTTCAGTTCAGCAAGCATGCACAGTTCGAAAGCATGCACAGTGCG -AAAATGACTTTTCTGAAATTGTCATCAAAAGTTCATTTTGAAAATTCGTT -TCGGCAAAAAATGCAAATGCATTTCTGAAACTCACCAGTTGTCTCTGAAA -TCGTCGTTCGTTGGTCATGTCGAGTGCAAGAACGGTGGTGGTGACCACTG -CCGTCTTCGTGAACCGCATCCAAGACATGTTTCGGGAGATAACTATAGAA -ATGAAGTTTTGAAAAAAAAACTCAAGACCACAATTATTGAAACACGTTAT -TAGGCCAATAACTTCACACGTGAATTAATACATTATTCATGTATTTTTCT -TTGACTGTTATCACGGGTTTCTGGCTCACGGTAGTTCAGCCACGGTAGCA -CAGAAAATAGATGACCACGTTCATGATAATCAGTCTGAAACCTATATTGG -CTGCTATCTCGAAAACTCTCTAAAAACGCGTTTTGAGAAATTATTGATTT -TTTGGAGAAAATCAGAAATTATTGATTTTTTGGAGAAAATGGGAAATTTT -TCATTTTTATTGGGGAAAATCAGAAATTATTGATTTTTGGAGAAAATCAA -AAATTATTGGTAATTTGAAGCAGGGGTGGGCAGCAATTGCCGTTCGGCAA -ATACGCAAATTACCGGTGTGCCGATTTTCCGGGAATTTTCATTTTCGGCA -GTTTGCCGGTTTGCCGATTTGCCCGACATTTTTCAATTTCGGCAATTTGC -CGGTTTGGCGATTTGCCCGAAATTTTTCAATTTCGGCAATTTGCCGGTTT -GCCGATTTGCCCGACATTTTTCATTTTCGGCAATTTGCCGGTTTGCCGAT -TTGCCCGAAATTTTTCAATTTCGGCAATTTGCCGGTGTGCCGATTTGCCA -AAAATTTTCATTTTCGGCAATTTGCCGGTTTGCCGATTTGCCGGAAATTT -TCATTTTCGGCAATTCGCCGGTTTGCCGATTTGCCCGAAATTTTTCAATT -TCGGCAATTTGCCGGTTTGCCGATTTGCCGGAATATTTCATTTTCGGCAA -TTTGCCGGTTTGCCGATTTGCCCGAAGTTTTTCAATTTCGGCAATTTGCC -GGTTTGCCGATTTGTCGAAATTTTTCATTTTCGGCAGTTTGCCGGTTTGC -CGATTTGCCCGAAATTTTTCAATTTCGGCAGTTTGCCGGTTTGCCGATTA -GCCCGAAATTTTTAAATTTCGGCAATTTGCCGGTTTGCTGATTTGCCAGA -AATTTTTCAATTTCAGCAATTTGTCGATTTGCCATTTGCCGGAAGTGTTC -AGAAGGATTTTTTTATAATAAGGAACCACTTAAAACTGTGCCGTTTTGAA -ACTTTTCCCCGTTTTTTTAAGATGATTTCATAGAATTTGCTTACTTGGTT -TGCCGAATTGCCAGAAGTTTTTCAATTCCTACAAGTTGCCAATTTGCCGG -AAACTTTTTAATTATGGCAATTTGCCGGTTTGCCGATTTGCCAGAAATTT -TTCAAATTCGGCAATTTGCCGGTTTTCCGATTTGCCGGAAATTTTTCAAT -TTCGGCAATTTGTCGATTTGCCGGAAAATTTTTATTTATGGCAATTTGCC -GATTTGCCGGAAAAAAAATCGTTTCCCGCCCACCCATCAGTTGATGAGTT -CATCTTTTTTTTGTGTCTCTCCCATCAATCTTAAACTCGACCCGGACTGG -CAAACGCATATCTACAGTTTTCTCTTCTTAAAATGGTGGTCTTAAGTTTC -GAAGACTATGCGTAATTTCTAGCGAAGTGGCGAATTTATGATGATTTTGC -AATTTATCAATGAAAAAAACAAAAAAAGCATTTCCGCGTGGCAAATTATC -ACTGTTGTGCCGCGAATAGTACTGATATAATTTTTTTTTAAATTGAATCA -GTTTGGAATTTCGAATTTTTGAAACAACCGCCGGCAAAATGAATAATATA -CTGTGAGTTTTCAAAGATTGTTCCCCGGTTTTCTTGTAGATTTTTGTGCA -ATTTCAAAATTTCGACTTTCAGCGGAAACAAAAATACAAAAAGGTCGAAG -AAGAAGGACGGAAAGTTTACGAGCAACACTGCTACTGATCTTGTTGAGGC -CCCAAAACCAGGTGGAGCAAAAGGATCCAAAAAACCAAAACCATCGAAAG -GAAATGACGACAGGGGACGCGGCGAACCGGAAATGACTGCACAATCCAAA -AAAACCAAGAAAGCAAAAAAAGTGAGACAGAAGAGAGATACAAAGGCACC -GGTGAGTTCAATTTTATAGTTTTATAGATATAATTGTATCAGGGGTGGGC -GGCAATTGCCGTTCGGCAAATTGATTTGCCGCCAAATTCGGCAAATCGGC -AAATTGCCGGTTTGTCGATTTGCCGGAAATTTTCAATTCCGGCAATTTGC -CGGTTTGCCGATTTGCCGGAAATTTTCATTTTCGGCAAATCAGTTTTGCC -GGAAATTATAAGACGGAAACACTGTCTTTTTGAATTGTTCCCGTTTTTTC -TACATATTTTCATAGAAATTCATAGAGACAATTTGCCGAAATTTTTCGGC -AAATTGCCGTTTTTCCGGCAATTTACCGATTTGCCGGAAATTTCCATTCC -GACAATTTGCCGATATGCCAATTTGCCGGAAAAAATCGTTTGCCGCCCAC -CCCTGAATTGTATCCCTTTTTAGTCTCCTGCAATGTCACCTCGATCACGT -GAAATGCTGTCAGACAACAAAAAGACGACCGTTGAGGATGATCCAGCAGT -TCCAATAACAACAAGTGTCGCTGGAGCAGTCACTTCTACGATTCCTGCTC -TCATGTCCACTGAAAACGCGTTTCAGCCACCCAAAGACCTTATCTCGGGA -AGAAAGCCAAAAGGTGCTCCGAACTTGTCTGGCAGCGTTCCACTTTCACA -CAAGAGCTCACTGACTGGAGGTGCAGATAAGTGGGTTGGAGAAGCCGTGG -CAAAGAATTGGATGGATTCGATCGGTTAGCATCCTTTTTTTTTTGATTGG -AGGCCCCGGCGGCGTAAAAATCGTGCCAGAGTTGCAAGAGTGGGCGTTTT -TTTTTGTTTTTCTGTTGTTGGTGGGGCCTTATTATTATTTGGTCGATGGT -GATTTTACTTTACTGGTGGAAATCCGCTAATAAAACTAAAAACATCGGGA -TATAAATAAAAACCCAACTTTAAAAAGCGAACCAATCAGCAGTTTGCTCC -GCCCACTATTCAACCAATCCAATGATTGGTTCGAAATTGGGTACTCATTT -TAGAGGGAATTCAAACGGAAGATTAGCAAGTTCGGTTATTGTTTCATTAG -AATATCATTGCTTATATATATATTTAAAAAATAGTGTACGTCATCAATGG -GCGGAGCCTCTCCCATCGTGGTGAGACCCATCGTGGTGAGACACATCGTG -GTGAGACCCATCGTGGTGAGACCCTTCGTGGTGAGACCCTTCGTGGTGAG -ACCCATAGTGGTGAGACCCATCGAGGTGAGACCCTTCGTGGTGAGACCCA -TCGTGGTGAGACCCATCGAGGTGAGACCCTTCGTGGTGAGACCCATCGTG -GTGAGACCCCCATTAATTTTGGCGTGAAATTCAAATTTTCTAAGAACAAT -TTTTTGGCTTTTTTTTTAAAGAAAAATCTGGAAAATTCTAGCATTTTTTT -AGAATAATCTGGAAATTTCTTGAACTTTCTAGCTAAATCTGGAAACTTCT -AGAATTTCCTAAAATAATCTGGAGACTTCTAAAAAAGATCAGGAAATTTC -TAGAACTTTTTTAGAATCTTCTGAAAACATCTTTCTAGAGTATACTAAAA -ACTTCTAGAATTTTCATAAAATTCCGCGAAGCTCGAGGAAGAGATTTGTT -CAAACAATTTAATGTGGAGCCAGTCGGAGCACGCGCTTTGCGCGTGCGAA -CGGCTGGTTTTAGATATTTTGTAGTATTTTTCAAATCTTAAATTTTCAGA -CACAGCAGAGGTGAAAAAGGAATACGATAAACTGCAATCACAGAAAATCG -ATGTGGAGAAGGACTGTAAAACCTGGAAATCCAACCCAAAATTTAACCAA -TCGGAAGACTTTCCTGCCTTGGACTCCAATCTCGTGAAACTTGGCAAAGA -CTATGTGAACATCAGTCTTGTAGATGTTCCATTGGGAAGAAATGTTCATC -TCGGTCAAGCTCCGGTCACGAATACGGAAGAAACATTCTGGAAAGCTGTG -TTCGACAAGCGAATCACTCACATTGATCTACTCGTCGGCGATGAAACCAT -CGAATTCTTCCCTAAAAAGGCAGAAGATTATACAAATTATGGTCAGATGT -GGATCAATAACCGCCGTGTCGAGTATGTCAATGACGATGTGTACCGATTT -GCAATTGAAGTAGTGCCCCACGGATGCTCCAACTCGATCATCTGCAATGT -GACTGTTATCAGCAATTGGAAAGTGGACACTGTGCCTTTGAAACAAGCAA -TCGCCATCAAAGAGGCACTTGGTCTAAACTACTTCTTGCTGAAAGCACCC -GCTGACGAGCATGCGATGATCGTCTCACCACGTGGAGCTGGACGAGCTGG -CTACTTTTTGGCACTTGCGGTTGCAGTCAACACAATTGATACAAAGCTTG -CCGAACCATGTATTGCGGATATTGTCAAATCGATTCGCTCCCAGAGACCA -AGAGCCGTGGATTCATTTTGTCAGTACTGCTCCCTGTACATTTCGTTGCT -CTACTTCATCAAGGTATTGGTTTTTGAATTCTTGTAAAATGAGAGAATAA -TTCTCAAATTTACAGAAGAAAGTGACAAAACCAGCAGAAGGGGATAAAAA -GCCAACACTGAGCAACAAATACATCTACAAGAAGTCGGTTGAGTTGACCA -AGCAATTCACCGTTCTCCTTCTCGAAGCGAGTCAGCAAAGTGTGATGGGA -CCTGGATAGTTCTTCTCCATTTTGAATATGGAAAAGCATTTGAAGTGATC -TGGGTTTGAAAATGAAGAATTTTATAAACCCTGGATTATTTCCGAAATCT -TGCTTCCTGCCTGCTGTCTCATTGCGGCTTGATCTGCAAAAAAAGCGGTA -ATATCTCCCCCAGGAAAATGTGACGTCAGCACACTCTTAACCATGCGAAC -TTAGTTGAAACGTCTGCGTCTCTTCTCCCGCATTTTTCGAAGATCACACC -AAAATGGGATACTTTGACAACACGTGCCTGCCATCGCTTCCTGACCGGGG -ATTTTGTTAGAAAATTCGTGGAAAATAGGAAGAAACATTTCGAGAAAATG -GAATTATTGATTTTCTGATTTTCTCAAACAAAAAAAAATTAAAATCGATT -GATTTCTGGCTTACCTTACCTAAATTGAAATGGAAGAGTTTGCCGAACTA -GGCCATTTTGGCTCGGCTATATCTGGGGTATATTTACGGCGCGTTGCGTG -TCGCGTCGCGGCTCGATTTTAGTTGTAAAACTAAATGTGATTTGTCCGTG -TGGAGTACACGACTTTCACATGCGTTGTGCGGCGGGCGATTGTCAATGGA -GCGCGAAAAATACAATGAGGAAGGCCAAAACCCCGTGTATTGATTTTTCG -AAAATTTCGGAAAAATCTCTTTGTTTTATTCATTATATTTCTCCTAATTT -CTTTGAAATGTTCAAAAAATCTGATTTTCTTTTTTTTCCCGAATTTTTGA -AAAATCGATATTTGCTATCCATATTTCTCGAAAAGAAAATCGATTTATTA -ATTTTTTTCCGGTTTCCTGGAAGCTAATCAATTCAGAAAAAAGAATTAAG -CTATGAATATATACTTATAAAAGTCGTAAAAGGTATGGAAATATAAATTA -TTTTAAAACAGCGATTTCTGACTGAAGCATCTCAACTACCAGGGCCTCAA -GTTCTTCTTATCCGACAAATGAGACGAGTCGGAGCTATAATTGTGCCGAT -ATTTTCCGGGCGCCGTCTCTTCGAACTCGGATACGGTAGCCTGCCCGACG -TATTTGAAATCGCCCATTAGCACTTCGTGGCAAGCGCCGATTGATGCTCC -GTGGCCGACGAGTAGGAGGTTTCCTGAAAGAAAATCGATAATTTGCGGCG -TGTTTTTATTGATTTTTATGTGAAAATTGGCAAATTATTGATTTTTCGGC -TGAAATCATAAATTACTGATTTTCTGTTAAAATCAGTAATTTATTGATTT -CTTCGGCTAAAATCAGAAATTATCGATTTTTCTGTGAAAATCTGAAATTA -TTGATTTTTCTGCGAAAATCAGAAATTTACGTAGTTTCGCAAAAATTACC -TTCATATTTCTCGAAAATCGCCCGCAGGGTCTTTCCGACACGTGGCACAC -ACGCGTCATCTCCACATCCTTCGCGGGGTAGTGTGTACTGAAAAAAAAGT -TCGGTAATTTTTCTAGGTCTCGCAGCGATTGCCGCCACCGGTATATTTTC -ATTTTTCCAACTATAGCGCCAGCACCGGCGCCGGCATCTTTTTATTTTTC -CACGTAGCACGTCGGCGCCGGCAGCCGCGCAAACTATTTTCGCCGCCGCC -GGCATCTTTTTATTTTCCACATAGCGTGCCAGCGGCGCCGCCGGCATATT -TTTATTTTTCCACGTAGCACGTCGGCGCCGGCAGCCGCGCAAACTATTTT -CGCCGCCGCCGGCATTTTTTACTTTTCCACGTAGCGCGCCAGCGGCGCCG -CCGGCATGTTTTTATTTTTCCACGTAGCGCGCTAGCGCCGCCCCCGGCAT -CTTTTCATTTTTCCACGTAGCGCGCCAGCGCCGGCAGCCGCGCAAACTAT -TTTTCGCCGCCGCCGGCATCTTTTTATTTTCCACATAGCGTGCCAGCGGC -GCCGCCGGCATATTTTTATTTTTCCACGTAGCGCGCTAGCGCCGCCGCCG -GAATTCATTCATTTTTCCACATAGCGTGCCAGCGGCGCCGCCGGCATCTT -TTTATTTTTCCACGTAGGGCTCTAGCGCCGGCGGCATTTTTCATCTTTTC -ATGCAGTGCGCCAGCGCCGCCGCCGGCATCTTCTCATTTTCCACGTAGCG -CGCTAGCGCCGGCGGCAGCGCAAACCATTTTTCGCCGCCGCCGGCGCCTT -TTCATTTTTTAATTAGTGCGCCAGCGCCGCCGCCGGCATCTTTTGATTTT -TCCACGCAGTGCGCCAGCGCCGGCAACGGCGCAATTCTAATCTCGGTCTT -TTTTGAGCGATACCTTCGAGAAAACAGGAATATAGTCCAAATCAACAAGC -GGAAATTTCTCAGCTAGTTTGTCGGTTTCCCAGAATCCAGGAGGCTTATC -ACAAAGATAAAGTGCCTCACAAAGGCCACCGTCCGCCTTCACTTTCATTC -CTTTATCCTCAATAATCGTCGAAGCTGTCTCAATTGTCCGATCGAACGGC -GAGGCAAACGTATGCGAGATTTGTGCATTTTCGAACCGATTTTTGCACTC -TTTCGCCTGTTGCCGACCGCGCACGCTGAGCATCGAATTGTCCGACGTGA -GACCGTCGGCTCCGTCGAGTTTACGCCAATTTCGATTGATATTGTCCTCG -CTGCAATGCAAAAAATCAATAATTTCTGATTTTCACCGTAAAATCAATAA -TTTCTGATTTTTGTTGAAAAATCATTACTACCGATTTTAACTGAAAAATC -AATAAATTCAGATTTTCATTTTTTTTTTCGAAAAGTCGATAATTTCCAGA -TTTTCATCGAAAAATCAATAATTTGTGATTTTCACAAAAAATCAATAATT -TCAGATTTTTACCGAAAAATTGATAATTTCAGATTTTCACCGAAAAATCA -GAAATTATTGACTTTGGATAAAAATCAATAATTTACTGATTTTCATCGAA -AAATCAATAATTTCAACCTTTCGCAGAAAAATCGATAATTTTTAATTTTC -ACCGTAAAATCAATAATTTCTGATTTTCACCAAAAATTAATAATTTTAAT -TTTTTTTTCGAAAAATCAATATTTTCTAATTTTTATCGGAAAATCAATAA -TTTCCGATTTTCACCAAAAAATCAATAATTTCAGATTTTTATCGAAAAGT -CAATAATTTACGAATTTGACAAGAAAAAATCAATAATTTGCTGATTTTAA -CAGAAAATCAATAATTTTTGTTTTTCATTGTTTTTTTTTTCGAAAAATCA -GTACTTTTTTAATTTCCCCAAAAAATCAATAATTTTTGATTTTATTTTTC -GAAAAATCAATAATTTCAGATTTTAACCGAAAAAATCAATAAATTCAAAA -AATTTCATTTTTTTTTTGAATTCTTAAAAGTACCGTTCCGCGTGTCGAAC -AATCCAAATTTTCCGTGGATAAGTGATCGGCATCCTATCGAGATCGGTTT -TAGCTGAAAAAAAACCTTAAAAAATTGGAAAATTGTGTACTCCTCTCGGA -CACGTGGTGTCAGGCTCTCCCATTACGGCTTGATCTACAAAAAATGCGGG -ATTTTTCGTTCTTAACCATACGAAATAAGTTGAGAACTCTGCGTCTCTTT -TCCCGCATTTTTTGTAGATCAACGTAGATCAGACCAAAATGAGGCACACT -GAATGAAGACACCAGGATTTTTCGAAAAACTCTAAAGAAATTCTGCAAAA -AGTGACGTCATGAGGTATATAGGTATGAAATCGAATACTTGGTATCAAAT -GACGGAAAAATAAACGAAAGTTGCAAAATTTTTTGATGGAATTTATTAGA -CTTTGGCGGGAAAACAGATCAAATTTACATTAAAAAATACGGGAAAAATA -CGGGGAAAAAAACCAAATTATTGCCTAAAAAATTCAGGATTAAATTGCGA -GTTGTACTTTTTCTTCTTTCCACGCTTCTCCTCCGAATCCTCGGCGGCTT -TTCGTTTCTGCAGCAGCTCAATTTCCTCGGGATGTAGCAAAGCATGGGCT -CTCGCTTTCTCGACTCGTTCCCGTTTCAGACGCTCGTCTCGCATGCTCGC -CAGCTTCTGCCGTCGTTCTCGATCGTATTCCTCTTCGAGTTGACGTTCTT -CAGAGCTATCACGGTGGCGGTGCTTTTCTGGAAGAAAAATTGGGGGGTTT -TTTTGTAGTTTGTAGTGGTGAGCACCCTATATTGGAGGCGCGAAAAAAGA -GATTTTTCGAATTTTTTTGTAGATCAACGTATGGTTAAGAACGTACTGAC -GTCATATAATTTTGGGCGAAAAATTCCCGCATTTTTGGTAGATCAAACCG -TAGTTGGACAAAAAGCAGATTTTTCGAAAAAAAATTACGAATTTCTGGCT -TTCCTCATAAATTGAAATGGAAGAGTTTTTGCCGAACTAGGCCATTTTGG -CTCGGCCATATCTGGGGTAGATTTACGGCGCGTTGCGTGTCGCGTCGCGG -CTCGATTTTAGTTGTAAAACTAAATGTGATTTGTCCGTGTGGAGTACACG -ACTTTCCCACGCGTTGTCCGGCAGGCGATTGTCAATGGAGCGCGAAAAAT -TCAATGAGGAAGGCCAGAACCCCGTGGTGGTTCGATGCACAAAACTGATT -TTTTTTTTGAATTTTTGGGATTGCGCAAGAAATTTCGCCGAAAAAGTCGA -TAACTCAAAAAATTCTAAAAAATTTGGATAATCTGGAGAAAAAACCCAAA -ATTTGCTGAAAATTTCGAAAAATTTAGCTTTAAATTTTTGCGCATGGCCG -CCGGAAAAGAAAAAAACTCGGCCACCAATTTTTTGGCGGCCATGATGCAA -GACACCATATTTGACGCGCAAAAAAAGGTGTTTTTGGATGTTTTTTTCTT -TTTCCGCCAGAATTTTTAATAAATTTCCAGGGACAAAAAATCATAACCTG -TTGCAAAAATGTTTTTTTTTTCGAAAAATTCAATTTTGCGCGTCAAATGT -GATGCTTTAAGCTCTGTGGCCGCCGAAAAAGAGAAAACTCGGCCACCAAT -TTTTCACTCTCCATTGACAATAGCCTGCTGGACAACGCGTGGAAAAGTGT -CGTGTACTCCACACGGACAAATACATTTAGTTTTACAACTAAAATCGAGC -CGCGACGCGACACGCAACGCGCCGTAAATCTACCCCAGATATGGCCTGGC -CTAGTTCGGCAGAAACTCTTCCATTTCAATTTATGAGGGAAGCCAGAAAT -CCGTGGCCGAAAAAGAGAAAACTCGTCCACCGATTTTTTTTTCTGACGGC -CATGACAAGTTTGCGCGTCTATAATACATCATATTTGACGGGCAAAAAAT -TTTTTAAAGTTTTTTCGAATTTTTGTGATTTTCGAGCAGAAAAAAAAATT -GTCTGAAAATTTATGTGGCCGCGGTAAACTTCGGCCACCGATTTTCGACG -ATTTTGCCCGTGTTTTTGACGGAAAAAGCACCATATTTGACGCGCAAATT -TTCAAAAAAAAAAAAGCCCAAAAATCGCACTTTTCTTCTTCTTCTTGTCT -TTTTTATGCCGTTTCTTCGCCTTTTCTTCACTATCACTATCCTCTCGTTT -CCGCTTCCTCTCCTCTTCCAGCTCTTTCCGCTTCAAACACGGCAGAGCAT -CGCGCGCTTTTCGTCGATCAAGTGGCTCGGCGGCTCTTCGCAGCGGCAGC -TCCTCGTACCACTCTTTTTTCTTGTTTAAATCGTTCGTATTATCCGCGAA -ATACACCTGAATTCCCATTTTCGACTCCCATTCCTTCTTCTCGGCAGCTT -TTTCCGCTTCGTAGTCGCGGTTTCCGGATCCATAGTTTTTTCGTTCTTCA -CGTTCGAGATCCTGCAAAATATCGATTTTTTTTGGAGAAAAATATAGTTT -TTTTTTGGAGAAAATTATCGATTTTTTGGAAAAAATTATCGATTTTTCGG -GGAAAATTAACGATTATTTTAATAGAAAATTATCGATTTTATTTGGGAAA -AAAATCACTGATTTTTTGGAAAAAATTATCGATTTTTTTCGGAGAAAAAA -TATTAAATTTTTTGCAGAAAATTATCGTTTTTTTTTTTGAAAAAAATTAC -CGATTTTTCAGAGAAAAATATCGATTTTTTAGAATAAAATTATGGATTTT -TAAATATAAAATTATCGATTTTTAGGGAGAAAATTATCGATTTTTTTTGG -AGAAAAATATTGTTTTTTTTTGGAGAAAAATATAGATTTTTTTGAAGACA -TTTATCGATTTTTTGTTGATAAAATTATCGATTCTTCGGGGAAAAATATA -GCTTTTTTTGGATGAAATTATCGATTTTTTGGGAGAAAAAATACCGATTT -TTTTGGATAAAATTATCGATTTTTTTGAAGAAAAAGTATCAAATTTTTTG -AAGAAAATTGTCAATTTTTTTGGAAATAAATATAGTTGTTTTGGATAAAA -TTATCGATTTTTCAGCTAAAAATATAGATTTTTTTAGATAAAATTATTGA -ATTTTAAAAAGAAAATTATCGATTTTATGGGTAAAAAATAACGATTTTTT -TGGAGAAAATTATTGATTTCTTCGGGGATAAATATTGATTTTTTCGGGGA -AAATTATCGATTTTTGGATAAAATTATCGATTTTTTGGAAAAAATTATGG -ATTTTTTTTGAAGAAAAATATTGATTTTATTGGAGAATAATATCGAATTT -TTTCGGGAAAATATCGATTTTTTGGAGAAAATTATCGATTTTTTTTGAGA -AAATTATCGATCTTTTGGGTAAAATTATCGATTTTTTGAAGCAATTCTGA -GCCAAATTTTGAATTTTCGAGCGGCAATTTTTGCACAAAGCATCATATTT -GACGCACAAAATTCGAATTTTTCAGAATTAGTTTCACAAAAAATCCATCT -ATCACCTGAAACAAGTTCACATGTCCCGTTTCATCTGAAATGCTGACATC -TTTTGCTGCTCCAGCTGAGCTCGAACCAGCTCCTCCACTAAACATCGTCT -CCATTCGTTGATCGGCTCGGGCTCTCAACTGCATCAGGCGCCGCTCGTTT -TCCGCCTGAATTTGCCTGTCGAGCACACGCTGCTCATCTTCGGCGGCTTT -TCGCTCGTCTCGGCGAACCCGTTCCATGTTGGATTTTGTCCGAACGTGCC -ATGATTTGTGATGGAGAATGTTCATCTGGAAGCGGAAATTATAGAGAAAA -AATTGATAATTGTGCTCGAAATTTGGCTCTGGAAGAAGCGCAAAAAATCA -ATAATTTCGTCCAAAAATCTATTTTTTTCAGAAAAACCAAAAAGCGTTTT -TTTTTCCAAAAATAAAGATAATTTTCGTCCAAAAATCGATAATTTACTTC -TAAAAGTCTCAATTTTTCCAACAAAAAAAACAATTTTCGTCGAAAAACCG -ATGTTTTCAGAAAAATCAAAAATCAAAAAAAAAATTAAAAAATTAAAAAA -AAATCAATAATTTTTTCTAAAATCTTGCAATTTTTTTCTAAAAATCGTTT -AATTTTCTTCTAAAATCGATATTTTTCCGGATTTTTTCGTGAAAAAAATC -GTCAATTTTATTGAAAATTTTGCTAAATTTCGAAAAAAAATCTTGAAATT -TCGATGCACCATGATTTTGAAAATTCTGCTCCGGATCAATTTTTCGAGAA -AAATTATCGATTTTTGGAAACTATCATACAAAAATCGATAATTGTGCTCG -AAATTTGGCTCTGGAAGGAGGAAAAATCAATAATTTTCTTCTAAAAATCG -ATTTTTTTTCCAAAAAATCAATAATTTCGTCGAAAAACCGATGTTTTCAG -AATAATCAAAAAAAAAATTAAAAAATTAAAAAAAAATCAATAATTTTTTC -TAAAATTTTGCAATTTTTTTCTAAAAATCGTTTAATTTTCTTCTAAAATC -GATATTTTTCCGGATTTTTTCGTGAAAAAAATCGTCAATTTTATTGAAAA -TTTTGCTAAATTTCGAAAAAAAATCTTGAAATTTCGATGCACCATGATTT -TGAAAATTCTGCTCCGGATCAATTTTTCGAGAAAAATTATCGATTTTTGG -AAACTATCATACAAAAATCGATAATTGTGCTCGAAATTTGGCTCTGGAAG -GAGGAAAAATCAATAATTTTTTTCTAAAAATCGATTTTTTTTCCAAAAAA -TCAATAATTTCGTCGAAAAACCGATGTTTTCAGAATAATCAAAACAAATT -TCAAAAATAATAAAAAAATCAATAATTTTTTCTAAAATTTTGCAATTTTT -TTCTAAAAATCGTTTAATTTTCTTCTAAAATCGATATTTTTCCGGATTTT -TTCGTGAAAAAAATCGTCAATTTTATTGAAAATTTTGCTAAATTTCGAAA -AAAAATCTTGAAATTTCGATGCACCATGATTTTGAAAATTCTGCTCCGGA -TCAATTTTTCGAGAAAAATTATCGATTTTTGGAAACTATCATACAAAAAT -CGATAATTGTGCTCGAAATTTGGCTCTGGAAGGAGGAAAAATCAATAATT -TTTTTCTAAAAATCGATTTTTTTTCCAAAAAATCAATAATTTCGTCGAAA -AACCGATGTTTTCAGAATAATCAAAACAAATTTCAAAAATAATAAAAAAA -TCAATAATTTTTTCTAAAATTTTGCAATTCTTTTTTCTAAAAATCGATAT -TTTTCCGGATTTTTTTCGTGAAAAAAATCATCAATTTTATTGAAAATTTT -GCTAAATTTCGATAAAAAAACGATTATTTTGAAATTTCGATGCACCATGA -TTTCGAAAATTCTGCTCCGGATCAATTTTTCTAAGAAAATTATCGATTTT -TGGAAATCATCACACAAAAACCGATAATTTTGTGAAAAAATTCGATTTCG -ACGCACCATGATTTCGAAAATTCTCAGAATTTTAGAAAATTTATCGATTT -TGTGTAGAAAAAATTCGAATTCCAGTGGAAAAATTTTCTTTTCTCAAAAA -ATGTTTGATTTAAAAAAAATCGATTTTTTCAGAAATTCAGGCATTTTTTT -GCAAAGTAAATTGGCAAAAATCGATGATTTCACTGTGAGAATGGGAATTT -TTGTCAAGAAAAATATAAAAAATTGCCTTAAACAATTAAAGTGGTTGTCA -AAAAATTGAAATTTTGGAAAAAAAAATATATTTACAGATGAATTTATTAG -AAAAATTCCACAAAAAAAGAGGTTCCATCTAATATTATTATGTCGCATTG -GGGGTTATATCACATAATTTTTTTTTGTTTCGGTTGCCGTGGAGAAGGGG -GAAAATATCACATTTTTCAGAGGAAAATCACAATAAATATAAGGAAAATT -TACAAAAAAAGGCGCGGGGGGAAATTTCTTCACAAAATTATCGATTTTTG -GGTGATAATTTCCAAAAATCGATAATTTTTATAGCAAAATTGATCCGGAG -CAGACTTGGGATAAAGCAATTTTTGGAGGGGGAAAATGAACAAATTAATA -AAATATAATATATTCGGGGCAAAAAATGGGAAATAATTAAATTGTCGGAA -CATATAAATGATTAATTGATTGAGCCAATGGCATTGGTTTCATGTGAGCC -AACGCTTCATTACAGAACACTTCCTCCCGATGACGTAGCGGACGAGAATG -CTCGACACGAGCAAGACGGTAGGCTCTAGAGGCGTTTATCTGGAAATTTT -TAGTGAAAAAATGAAGAAAAAAAGCTTTTTTCGCTGAAAATTCCAAGATT -TTCGGTTTTTTTTTTGCTAATTTTTTTTAAATTTGCCTTGAAATAAATTT -CCAGATGTTCAGTAGTTTTTTTTTCCTTCAAAAATCGATTTTTCAATTAA -TCAAACATTTTTCAGAGTATTAATAATTATTTTTCCACCAGAATTTGAAT -ATTTTATCCAAATTCTGAGAACCGGCTCACAGAGCGGCTTTTACTACGTG -GCCTAGAAAAATCAAAAACTCGGCCAATGATTTATCTGGGATTTTTGACG -TGGGATGTTTCTGAAACTTGACGAGAATGTTCTCGAATGGGGGTTCTATA -GTTCCACCGTGGCGATTTTTGAGAAAATGTTCCGTATCCATGTTATGAAG -GTGGCCGAGTTTTCTTATTTTACGGCCACGTAATAAAAACCGCTCTGTGG -GCTCCTGAGCAGAATTTTCGAAATCATGGTGCATCGAAATTTCAAAATTA -TCGATTTTTTTTTTGAAATTTAGCAAAATTTTCAATAAAATAAGAAATCA -TGGTGCATCGACAAACCAATTTTTTCCATTTTTTCGGAATTTAAAATAAA -ATTTAAAAAAAAGTAAAATTCTGGAATTTTACTTTTTAAAAATATTTTTT -TCAAATTCTGGCAGTTTTAAAATAATAAAAAAACGTTTTTTTTCCATTTT -TTTCAAAAATTTTTTTCTGAAATTTAGTACTACAAATGTAAAATTTACAG -GGTTTTCACAGGAATTTTCAATTTTTTTGATTCGCTTTTCTTCAAAAATT -CTAAATTTTCAGGTTTTTTTTTCCAATAATTTTTAATTTTTGTGAAAAAA -AAATGTTTTTAATTTTTTCAGACTTAAAAAATTGTGACAACTTTTTTCAA -TTTTTTCCGCAAAAATAAATTTTCGGAAATTTCAAATTTCCTACAAAAAA -CCCCTTACCACAGTAAGCCTAACCAACTGTGAGAGCTCGCTCATCGTGAC -TAGGGCTCCGTCGAAAAGCGGCCCAAACTCCAGAGCCGACGCCGTATCGA -CGCGCACTCGAACCATCTGAAAAACCAAATAATGGAAGAGTTTTTTTTCG -GCCAAGCCAGGCTGCCCCATTTGATCTACGTAGATCTACAAAAATTGCGG -GAGAAGAAAAAAGAGACGCAGAGTTCTCAACTGATTTCGCATGATTAGGA -GTGTGTTGACGTCACATTCGCAAAAAATTCCCGCATTTTTTGTAGATCAA -ACTGTAATGGGACAGCCTGGGACCACGTGCAGTGTTAGGCTGTACCATTA -CGGTTTGATCTACAAAAAATGCGGGAATTTTTTGCAAATGTGACGTCAAC -ACACTCCTAATCATGCGAAATCAGTTGAGAACTCTGCGTCTCTTTTTCTT -CTCCTGCATTTTTGTAGATCAACGTAGATCAAGCCTCTCTCTCTCTCTCA -CCTTATCACCGACTTGCTCCAACACAATCAGAACATCACAAAACTTGGTG -GCAATCGTTTCGCGGGTGTACACTTTCCGTGTGTTCTCAGTCCACACCAC -ATGCACCTCATCGTTTCCGATATGCTTCCACTTCTGCTGCACATCGCCGT -TGAGCATCGTGCTCACATGGAATATCACCTCAGCCTCGGCGTCTGCAAAG -TACGGAGCCCGTGTCTCTACGGGCAGGCCACCGGTGTAACCATCGTGTCC -TCGACCCACTTTGACCTCCCATCCGAGCTCCGACGTGAAGCTGTCAAATT -GCGCGGAGGCGGAGGCGGTGGTGTTGGACAGGATCGATGCTCGATCTTCC -TGCGATTCTCCTACATAGATCACAGCGACTTTGTGGACTTCACGAGAAGA -AGTCTGATCTAAATGCTTCAAGTCACGCGGGAAATTCGCGTGAACCTGAG -ACACAAGTGGGACGAATCCCAGGGAAGCCGACAGCGATCTCCATTCGAGA -AGCTTCGCGTTCGGAGTGAACGCTGGCAAATGATCGTGAGCCGCCGACGA -TGTGCCAAGTGGCTGTGGCTGCCGTCTAGACGTCTCAATCATCGATGTAA -ACTGTGCGGCACCATCGACAGGCGACGGGCTCCCACGTGACGGGGGGTAG -TCCGGTAGATCATCGAACGGATCATCCATCGCTCCGAGGATCCCCTGGCT -TTCCCGACCGGGACGTTTTCCCTTGAGAGCCTCTTTGCGTAGCCAATTGG -TCACGTTGGTGGCAGGCTTGCGGACATCCTCATGGGTATCTAGATCCCAG -ATATGCCGGCCAACTACCGTTCGGGAAGTGATTTCGCAGGGGGATTTGGC -GTGGAAATCCTTTCGGGACACCGAGATAATCGCCGATTGCCGATTAATAT -ACACGGTTTTATCCTCTCCTTGTAGTGGCGGTGCTCCTGCAGAGCTCCAT -CTCTGAACCTCAAAACCTCGCACCGGATACTGACCACCGAGCGTGACAAG -CTCTCCATGGAGCACCATATGCCTATCGGCCAAGATACCGCGAATGACGA -GTGGCATTTGAGGTTGTGGCCATTGCATACAAAGCTTCACCATCTGCCAC -TCGATCTCGGTTCTCGTACGCTCATCGCGTAGGAGCGAGGCGGCACGGAG -CAGCGCCTGGAGCAGTGTGGTGCTCGAGAACTGGGCGAGCGAGGCGATCG -ACGAGCAGAAGAGCGGAATGAGCCGCATCGCGAACTGATGGGTTTCGATG -GTTTTCAACGCGGTGAGCACCAAGTCGATTTGGGCTTTTTGCACGATGAG -GATGGCTAGCGAGTTCACGATTACTACGGCGTTCTCCGATACGTCTGTAT -TGACAAGCTGATCGAGAAGGATTTGCTCGGCTCCAGGATACGATGAAGCT -AGCATTGAGAACAACTTCAACGAGTTCGAGGACACCTTCGTGTCCTTCGA -GCTCTTCGCCGCCTGCAACATTTTCGGCAAATGCTCCAGAGCTCGCGGAG -CAACAATTGATAGTTCGTGTGCAGAGAGCCCACAAATCGCCGGAACCACT -AGTTGCTCCTTGGATTGCATAAGACGGATGAAGCAGAGAAGAATGTTGGC -CGAGAGCAGTGGCGGTGGCCGACGGATCGTTGATTCGTTGAGAATTGCAC -TTAGAGCCGGAACACAGCGGGGCAGCAGGATTGGGGGTACGGTAACGAGG -CGGCACGCGAGCCAGTGGGCCAGTGGGTGCAGGTTTACCTGGAAAGCAAA -ATTTTTTTTGGCTTTTTTTCAACTCGAATTTTTTTTCTAAATTTTTTTGT -AAATTTTCTAAAAAATAATTGTTCGATTTCAGAGTGCCTCATTTCGTGCG -TGATCTACGTTGATCAACAAAAAATGCGGGACTGATTCTGCATGGTTAAG -AACGTGCCGACGTCCTATTTTTTGGGCAAAAAATTCCCGCATTTTTTGTA -GATCAAACCGTAATGAGACAGCCTCACGTCGTGCCAGAAAGTCCCATTTC -GTGCTTGATCTACGCTGATCTACAAAAAATGAGGGGCTGATTGTGCATGA -TTAAGAACGTGCTGACGTCACATTTCGTTTGGCAAAAATTCCCCCATTTT -TTGTAGATCAAACCGTAATGGGACAGCCTGACACCACGTGATCTTCAAAT -TCCCGCCAGCCTGAAACCCACCAAAAGCAAGTTCTCAATCGTCAATGACA -TGCAATCGATTGCCACGTGGGCACTCGAGTTGGTATACGGATCCACGAGT -GAGATGACACGACGCCACGTTTGAAGCCACGCCAATTTGTCGCCAGACCA -AGACTGAAAAAGGGAAAAAGTGTGATATGCGCCTTTAAGAAAGGGTTACT -ATAGTTGTCAACAACAGAAAAAAATGCTGAAAAGGCATTTTTCAGGGTCT -ATTTTCACAATGAGTTTGGGTATAAATTGGAGAGTTTTCCATAGATAATG -CGTACTGCGCAACTAATTTGACGCGCAAAATATCTCGTAGCGAAAACTAC -AGTAATTTTTTAAATTACTACTGTAGCGCGCTGGTGTCGATTTACGGAAA -TTAATTAAAATAATTGATAAACAAAACAGAAACTATGTTCAAAAATCGAG -ATCCCGTAAATCGACACAATCGCTACAGTAGTAATTTAAAAATTACTGTA -GTTTTCGCTACGAGATATTTTGCGCGTCAAGTATGCTAAAAAATATGTAG -TTGTGGGAGCCTTGTGAATTTTTAGAAGGTTTTTTGAAAAATAACTCGCC -ACTATTAAAAAAAATATATATTTTGAGGCATTTTCAAAGGGTTAAAGTAA -TTTTTTACTTTTAAAATCGTTTTTTTTTATAAAATAAATTTTAAGCGTTT -TTAGTACAATTTTCGTAAGTTTTTCGTTTTTTTTTTGGTCATATTTTGTA -GTTTTTTACACTATTTTCCAGAAATCGTCAGAAAAAGCACTTAGAAACGG -GCTAGAAAAACGGGGTTTCGGCTTGCTGCGAAACTTTTTTTTTTGAAATT -ACCGCGCAAAAATAAATTGTCATTCAAGTAATGTTGCAAAATGTATTAAA -ATATAGGTTTTTAAAAATGTATTTTAATACAGTTGTGACGTAATTTTTCT -ATTTCAATTTTTGCAAAATAAGAAAAAAAATGAATGTAAAAAAGTTAGAA -AGTTTTTAAAACACATTTTATACAGGTCATTACGCTCTATTTTCTGCCAT -TTAAAGCGAGAATGTTTTTTGACACTACATATATAATATTAGGTCTCCAA -ATAAGATCCGGGTCAAAAATCATAACTTTGTTCGCTGTGTATCGATTTTT -ATGAAATTGTGGGAATTTGTGTTATCAACCATGATCTTTCATTTGACAAT -AGTCACAAAATTTTTTGGCCGTCCGAAGTGCCCGTACTCGGAGCCAATTT -TTTCAGACATTTTTCAGATCTCGCTTCTTTTCAGGTTTCAACTGAGGTTT -GTGTGCGGATATTGCTTAGTTTAGTACACAATGTAAGAAAACAAAAAAGT -TTGGAAAAAAATCCGTCCAAAAAAAATTTTTTTGTCGCTCGTCAAAAAAT -CTACAAAAAAAATTTTGTCGAAAATTCTTGAATTTTTATACAAAAATGAT -GTAACCGTGTGCAAACTAATTTTAAACATACAAAACATTTGAGTATGAAA -TTTGGATCTCGAGAAATACTCCAAAAACTCGAAAATAGTTCGAAAAAGCT -GTGTTTTTTGTTATTTTTTTTAGTGTGACGCACCAAATTGAAATTTTTTG -TATGTGTAAAAATAGTTTGCACATGGTTACATCATTTTTGTATAAAAAAT -CGAGAATTTTCGAAAAAAAATTTTTTTGAAGATTTTTTGACAACCGACAA -AAAAAATTTTGTTTGGACGGATTTTTTTCCAAACTTTTTTGTTTTCTTAC -ATTGTGTACTAAACTAAGCACAATCCGCACACAAAGCTCAATTGAAAACT -GAAAAGAAGCGAGATCTGAAAAATGACTGAAAAAACTGGCTCCGAGTTAG -GGCACTTCGGACGGCCAAAAAATTTTGTGACTATTGTCAAATGAAAGATC -ATGGTTGATAACATAAATTCCCAAAGTTTCATAAAAATCGATACACAGCG -AACAAAGTTATGATTTTTGACCCGGATCCTATTTGGAGACCTAATATATA -TATATATATAAAGATACCTACCGTAACCGCATTTGTAATATCATCAGTGT -CATGAAAAACGTTATCCTCTGCAATTGTGTTCGACGATGACATACTATCT -CCAGTCTCTGACGAATCATTTCTCGGGTCTTCCATCATTGCCGATTCGAT -TGCCTGTCGTCGACTGTTCTGTGAGACTTCTGTCGCTTTTCGGAGAGCTT -CTTCACGGGAGAATATGTCGATATGGGCGAGATGGAGGATTAATGCTCGC -GTTACACTGTTCACAATCTGAAGATTTCGTTTTATTTTTTTGATTTTGGC -TGGAATTTCATAAAGCTATGCTTTTGTTGAAATTTTAGTTTAAAAAAATA -AGGTTTTTGAACTGAAAATTGGGATAAGAATTAGAAAAAAATTTGTTTTT -TCTCTAAAACTGCTGCATTTTATTCAATTTTGTAAGATTTTCTGTACAAA -ACATAATAATTTTTGAATTTTTTTTCCAAATTTTTTGAAATTTCAGCAAG -AACTGGACAAAAAGCACTACTTTTACTAAAATTGGCAGCATTTAGGAATT -TCTGAAAAAAACAATTAATTTTCATTATTATTGTCATATTACAGGAACAC -ACTATTCTGAGAATGCGTATTACACAACATATTTGACGCGCAAAATATCT -CGTAGCGAAAATTACAGTAATTCTTTAAAAATGACTACTGTAGCGATTGT -GTCGATTTGCGGGCACGATTTTTTGAAATGAATTTTAATCATATTTTGAG -CAAAAAATGGGTCAAAAATCAAGCCCGTAAATCGACACAATCGCTACAGT -AGTAATTTAAAGAATTACTGTAGTTTTCGCTACGAGATATTTTGCGCGTC -AAATATGTTGTGTAATACGCATTCTCAGAATTTTGTGACTTTTCAAAAAA -AAAAATCGTGATCAAAAAAAATTTTTAATTGTTTTTTAAGATGAAATTAC -GATTTTTTTCGTTCTCTATAAATTTTGATCAAATTTATTTCAAAAAAAAA -AAAAATTCTTTCTATATTTTTTTTTTCGAGTTTTTTTTTCTATCTTCTGT -ACAAAACACAGCAATTTAAAAAAAAGGCAAAATTTTAAGATTTTTCTAAA -TCTAGATTTCTAATTTTCCTCGGGGTTCTGGCCATCATCCTCATAAACAG -AAATGGAAGAGTTTTTGCCGAACTAGGCCATTTTGAAACTCTTCCATTTC -AATTTATGAGGAAGGCCAGAGCCTCGTGGAAAATTAGAAATTAGATTTCG -AAAAATCTTAAAAGTTTGCCAATTTCTTATTAGATTGATGTGTTTTGTAC -AGGAAATTGAGAAAAAAATCGGCAATTTTATACAATTTAATTTTAAAAAA -TATAGTTAAAAATAGAAAAATTCAATGAAACTGGAAAAAAATGTTTACTT -TGAAAAGTTAAAAAAAATGAAAAAAAAACTCAAAAATTGAATAAAATGCG -GCAATTTTTGAAAAAAAAGCTTTTTTCCATAGTTTCTGTCAATTTTCGGC -TAAGATTAATTTTTTTTCATCAAAATTTCGATTTTCATACTCTCTTACCG -AAGCCCATTGCTCAGCCATCGGTATCCAAACACCCTTCTTCATGACGTCA -TGCACCTCATCCCACACCTCATCGTCAATTTCGATGCGTCTGACAGCCTT -AATCACGACGACATTCGAGATGAGTGTCGACGTAAAAGCAGCCGACACAT -TCTGGGAAAACGCGTCCGATTGGCGACAGATTTTCGAGGCGCATGTGCAG -AGTCCCGCCATTAATTCTGACCAGAATTTTTGGGGAAGCGGTTTTGGGAG -TTGAATTCGATGGGAAACCAGCTGCTTGCACGATGTTAGAATCGCAAATG -CTATGGAGATTGCCGAGGAGTGACTGGAAAAATATTTTTTTTTAATTTTT -AAAGGGATTTTGGGAAATCGAAAAATTTAAAAACTCGGATTTATGAAGTT -TTTGGCAAACCGGCAACTTCTGGTTTTTGGAATTTCGCCACTTTTTAACA -ACCGGCAATTTGGCGATTTGCAAATTTTTGGAAAACCGGCAATTTATGGT -TTTTTTTTCGGAATTTTGCTAATATTTTTAAAACCGGCAATTTGCCGATT -TGCAAATTTTTGGAAAACCGGCAATTTGTGGTTTTTGGAACTTGGCCACT -TTTTATAAACCTACAATTTGCCGATTTGCAAATTTTTGGAAAACCGGCAA -TTTCTGGTTTTTTTTTGGAATTTTTCTAAAATTTTAATAAACCGGCAATT -TGCCGATTTGCAAATTTTTGGCAAACCGGCAATTTGTGGTTTTTTTGGAA -TTTTTCTAAAATTTTAATAAACCGGCAATTTGGCGATTTGCAAATTTTTG -GAAAACCGGCAATTTTTGATTTTTGGAATTTTGCTAAAATTTTTAAAAAC -CGGCAATTTGCAAATTTTTGGAAAACCGGCAATTTGTGGTTTTTGGAATT -TTGCCACTTTTTATAAACCGACAATTTGCCGATTTTCAAATTTTTCGGCA -AATTGCAGGTTAATAAAAAGTGGCAAAATTCCAAAAAAAAACCAGAAATT -GCCGGTTTTCCAAAAATTTGAATATCGGCAAATTGTAGGTTTATAAAAAG -TGGCAAAATTCCAAAAAACCACAAAATGCCGGTTTTCCAACTCTTTCAAC -GAGAGTATCCAATTTTTTAAATAGAAAAATTGCCGTATTCCCTACCGTTC -TCCACACATTTGCCGATTTTCAAATTTTTGGAAAACCGGCAATTTTTGAT -TTTTGGAAGTTTGTAAAAATTTTTTAAAGCGGCAATTAGTGGTTTTTGGA -TTTCTGTCACTTTTTATAAACTTACAACTTGCCGATTTCAAATTTTTGGA -AAACCGGCAATTTGTGGTTTTCAAGTTTTCTGCTAATTGGCAAACTGGCA -AAATGCCTTATTTTGGAAGTTTAGGTAAATTCTCAGAACACCGGAATTTT -GACATTTTTCAAAATTCCAAAAACCACAAATTGCCGGTTCGCCAAAAATT -TGCAAATCGGCAAATTGCCGGTTTTTAAAAATTTTTGCAAAATTCCAAAA -AACCACAAATTGGCGGTTTGCCAAATTTGCGAAATTCCTAAAACTGGAAA -TTGACGGTTTTCAAAAAAAAAAAAAGAAGGGAAATCGGCAAATTACAGAC -TTACAAAAAGTGGCAAAGTTGCAAAAGCCAGAAATTGCCGGTGTGCCAAA -TTTGCGAACATTTGAAAATACCACAAATCAAATTGCCGGTTTGCCGAAAA -TGTGCAAATCGGCAAATTGCCGGTTTTTGAAAATTTTTGCAAAACTCCCA -AATTTACAGAAAAAATTCCAAAAATCAAAAATCCGAATTATTCCAGAATT -TTTTCTTCGGAAAAATTAAAAATTGTTCAATTTTCCAACATTTTCAACAA -GCGTATTATCGAAAAAATACAATCGCACAAATTTCTCGTAATTTATTTTT -GATCTACCTTGTTGACTAGGCTCCGCCCCTAATCTTGTTGCTGTTGTTAT -TGTTGTTGTGGCTGTCTAGTTGAAGGAAGGGGCGGAGCCTATTCAACGAG -GTAGATCAAAAATAAATTATGAGAAATTTGTGCGATTGTATTTTTTTTCG -ATAAAATCCAATTTTTTAATGGAAAATTGCCAATTCCCTACCGTTCTCCA -CATTGAGCCAAATACGGACTGTGAAAGAAGCCCAACAAGATATTCGAGAG -CAACAGCGAGCATCGTTCAATCGATACTTCTCCAGACGCTACGAATGGTG -GAATTTCGTACTGCAAAAGCCATGCGGAGAGCACATTTACCACTTTATGA -GTGACATTTGAGCATGCCAATGGGAGTTTCATTGCTTCACGCATTAGTGT -TAATGCTACGTTTGTTGCCTGGAAAAGGACAAAAAAAACTATTTTTTTAA -ATGTAAGTAATTAATTTATTTTTTGAAATCTCTTTAAATGTGGTGTAGTC -GAATATTTTTTCAATTGCTTAATTACCCTCAAAATTGTCTGAAAACACCG -AATTTCATAATGAACTTCTTGAAAACTTCTCAGAAAAAAGTTATGACGCC -TCAAAAAATGGCCTAAAATTGGTTAAAATTTGAAATTTGACCTACTTGCC -AAGCGGCTGGAAACTAGCTTTTTTTTGAAATCACTGTCAAATTTTGAGTA -TTCAATTTAATTATCTTGCGTTTTCAACTCGATTCAGGTATTTTAAAATC -GATAAACGAAGAGATTTTTAAAAATTATTTACCAAATCTCTTCTTCCATC -GATTTAAAAATACATAAATTTAGTTGAAAACGCAAAATAATTAAATTGAA -TACCCAAAACTTGACTGTGATTTCAAAAAAAAGTTAGTTTCCAGCCGCTT -GACAAGTCGGTCAAATTTCAAATTTTAACTAATTTTAGGCCATTTTTTAA -GCCGTCATAACTTTTTTTTTTTGAGAAGTTTTTCAGGAAGTTTCATTATG -AAATTCGGGTGTTTTCAGATAATTTTTAGTATAATAAAGCAATAAAAAAA -ATTCGACTACACCAACTTCAAAAATGTAAGCAATTTTATTTTGAAGGCGG -TTTTCTTTTACTTTTCTAAAAAAAAAATTTATTCAATTTTACGATTTTTT -GCGTAAAAAAACACGGTCAAATTTTTGTTAAATTCGAAAAGGCGTGTCCA -TTACGGTTTGATCTACAAAGAATGCGTGAATTTTTAGCCCAAAAAGTGTG -ACGTCAGCACGAAAATTCTGCGTCTCTTCTCCCGCATTTTTTGTAGACCT -ACGTAGATCAAGCCGAAATGGGAGAGCCTGACACCACGCGCGTGTGCGCC -TTTAAAGTGAGTACTGTAATTTCAAAAATTCCACAACATCGAGAGTTTGA -AACTACAGTACTACTATTTAAAGGCGCACACACTTTTTCGAATTTAACAA -TAAATTGTCGTGTTGAGACCGTATTTAGGGCTCAAAAAAAAAATAATTAT -CTCGTTAGAATATTCGGGAAAGTTGCAGTTTCACTGAAAATTTGAATTTC -CCGCCAAAACGAATTTTCTCCGAAAAATTTGAATTTCCGCCAAAAAATTT -TTTTAAATCAGAAATTTGAATTTCCCGCCAAAATCGTATTTCTCAGAAAA -TTTGAATTTTCGCCAAAAATAAAAAAAAAAATTTTGGCGCGAAATTCAAA -TTTTCTGAAAAAAAAATATTTCGGCGGGAAATTCAAATTTTCTGAGAAAA -TATTTTTTGGCGCAATTTTTCATAGAAATTTAGTTCTTTTGATGTGTAAA -TTTCCAAAAATTTCAACAAAAAATCGCATTTTTCTTATTTTTTCCCCAAA -ATTTTCAAATTTTCTCCTCCAAAACCACGGAACTTTATGCGACGAAAAAA -GCGCATTTCGATACAAAATCAACGATGCATGTGTAGTTTGTAGTGTTGGT -TGTCCTCCAGCCGTTGTGTGAGTTGTTGCCGATGCAATATTATTAATCCA -TCGAATTAGCCAATATCTTGCAATTACCACCGGATCAGCTGTATCCAATG -GTTCACCATTCTCATCGGCTCCTTCCCAGCCACCGAATACATCGACTCCG -TTCGTTTCCAGATCGGTGAAGCATTCGCCCATGTATAGCTTTATTACTCT -GAAAATTGAAGAGTTTTGTACTCCTCTCGGACAATTGGAGGTGATTTTTT -TTTTCGAATTCTTTAAAACAAAAATTTCCCGAAATTGAGCTTTTAAAATT -TTAAAATTTCAAAATTTCAAAATCAAAAAAAAAAAAAAAAACTTTTGTAC -AAAATTTAAAGTGGAGAATTTTTGTATTTTAGACAAATTTTTTAAACATT -TCTAGCAGAGTTGAAAATTTCAGGCAAATCGGCAATTCGCCGAAATTGAA -AATTTCTCATAAATCGGAAATTGCCGAAAATGAAAAATTCCGGCAAGTCG -GCATATTGCCGGAATTGAAAATTCCTTACAAATCGGCAATTTGCCGGAAT -TGAAAATATCCGGCAAATCGGCAATTTGCCGGAGTTGAAAATTTCCGCCA -AATCGGGAATTTGCCGAAATTGAAAATTTCGTATAAATCGCCGATTTGCC -GGAGTTGAAAAATTCTGGCAAATTTGAAAATCGGCAATTTGCCAAAGTTG -AAAAATTCCCGGCAAATCGCCAATTTGCAGATTTTTCGACCGAAATTTGC -CTACCGGCAATTCCTGCCGACCCCTTTTTTCCGAGAAGAATTAACTTTCC -ATTTCTAAAAAATCTGTAATTTGCCGGAGTTGAAAATTTCCGGCAAATGG -GCATTATGCCGAAAATGAAACATTCCGGTAAATCGGCAAATTGCCGAAAA -TGAAAAATTCCGGCAAATCGGCAATTTGCCGAAGTTGATAATTTCCGCCA -AATCGGGAATTTGCCGAAATTGAAAATTTCGTATAAATCGCCGATTTGCC -GGAGTTGAAAAATTCTGGCAAATTTGCAAATCGGCAATTTGCCAAAGTTG -AAAAATTCCCGGCAAATCGCCAATTTTTTGCCTGTTGTGCATATTATTTT -CACGACTAAAAATCGTAATAAATTAAATTAAATTAAATTTGCCGATTTTT -CGACCGAAATTTGCCTACCGGCAATTCCTGCCGACTCCTTTTTGCCGAGA -AGAATTAAAATTTCCATTTCTAAAAAATCTGTAATTTGCCGGAGTTGAAA -ATTTCTGGCAAATTTGCAAATCGGTACTTTGCCGGAGTTGAAAAATTCTG -GAAACCGGCAACCCGGCAAACCGCCAATTTGCCGATTTTTCGACCGAAAT -TTTTTTTTCCTGTCGACCCCTTTTTCCGAGAACAGTTAAATTTCCAAAAT -TCTCTAAAAACCACAAACTTCTCAATAATAAAATTCGCACACTCCTGTCG -CTTCCCCTCATCATTCCACTCAATCCGCACAGTTTCTCGAGTACAGTACT -CCAAAAACTTGTCCAAATAAACTTGGAGCATTTGAGCCCGTTCTTTCGAA -GTCTGCGACGCCGACGCTGTCGACTTAATCGGCCCATTCCTCAGTCGTTC -ACACCAATCACCGGCTCCCGACGATTGACAGTACTCGTTGAGCACATCTT -CCGCATTTTCACCACTGGTAAGCGGGAAGAATGGTAGAAGACACTGAAAG -ACACGATCCAGGTCTGGTGTCGCTTTTCCGTACACTCCGAGACATTGATA -GAACACTAGGAACAAGCGAATCGCAATTTTTCGCACTGCCATCAAATTTT -TCGGGTAGACTGCTTTTTTGAGAAGCGATTCGATTGCATGACGTTGCCAG -CCTGAGAGAAATTGGGAAAATTTTTAATTTTTATTTAAAGGTGGGGTAGC -GCTAGTGGGGAAATTGCTTTAAAACATGCCTATGGTACCACAATGACCGA -ATATCATGATATAACAATTCAAAAAAATTTTCTAAATTTTATATGATTTT -TTGAAAATTGAAAAAATCTCAGTTTTTGTCTAATTCCAATTTGAATTACC -GCCAATTGAATTTGTTCTATGGAGCGCGCTTGCACGTTTTTAAATTTATC -TATTTTATTTTTTGTTATTTTTTGTTATTTTTCCACCAATTTTTAATGTT -TTCGGTGTATTTTTGCTCGAATTTTAGAGAAAAAGTCAAAATAAATGCAA -ATTTTCGATTAAAAAGCACGCTTACAGTCGTAAATCAGTGAAATTAATTA -ATTCAGGTTTGAAATCGTTTAAAATCGTTACTTTGTCATTTTTACGCCTG -TAAGCGTGCTTTTTAATTGAAAATTTGCATTTATCTTGACTTTTTCTCTA -AAATTCGAGCAAAAATACACCGAAAACATTAAAACTCGGTGGAAAAAACA -ACAAAAAATAAAATAAAATAAATTAAAAAACGTGCAAGCGCGCTCCATCG -AACAAATTCAGTTGGCGGTAATTCCAATAGAAATTAGGGGGGAAAACTGA -GATTTTTTCAATTTTCAAAAAATCATATAAAATCAGGAAAATTTTTTTGG -ATTTTTTATCATGATATTGGGTCATTGTGGTACCATAGGCGTGTTTTAAA -GCAATTTCCCCACTGGCGCTACTCCACCTTTAATTTCTGACGGTTTTTTT -TCGGTTTTCCTTGAAAAATCCTCTAAAAATCGATAATTTGTAAAAATTGC -GTTGTTTTTCCGGGATTTTTTTCGGTTTTCCCACGGGGTTCTGGCCTTCC -TCACTGAATTTTTCGCGCTCCATTGACAATCGCCCGTGTACTCCACACGG -ACAAATCACATTTAGTTTTACAACTAAAATCGAGCCGAGACGCGGCAGCC -AACGCGCCGTAAATCTACCCCAGATATGGCCTGGCCTAGTTCGGCGAAAA -CTCTTCCATTTCAATGTATGAGGGAAGCCAGAAATCCGTGTTTTCCTCAA -AAAAATCCTCTAAAAATCGATAGTTTGTAAAAATTGCGTTGTTTCTTCGG -TTTTTTTTGCAATTTGAGGGTTTTTTGTCGATTTAACACGGATTTTTGGC -TTCCCTCATATATTGAAATGGAAGAGTTTCTGCCGAACTAGGCCAGGCCA -TAACTGGGGTAGATTTACGGCGCGTTGCGTGTCGCGTCGCGGCTCGATTT -TAGTTGTAAAACTAAATGGACTTTGTCCGTGTGGAGTACACGGGCGATTG -TCAATGGAGCGCGAAAAATGCAATGAGGAAGGCCAGAAGCCCGTGCGGAA -AGACGGGGAATCTCCGAAAAACGGGGAAAATCTACAAAAAAATGAGTTTA -AAAAAGACTTCCTCAAAAAAATTCAAAAATTGTGGTTTTTTTTTTAATTT -TTTGTATTTTGATAAATTTTTTGCGACATCAAAAAATGGAAGAACTTTTT -TTTTTCGATTTTTGAATTTTTTGTTGGTGAAAAAGAAGAAAATTTCGAAA -ATTCGTTAGGGAATGGATAAATTTTAATCAAAAATCGATTTTTTAAAATT -ATTTTTTGCAGTTTTGCATAAAAAATCCAGATTTTTTCGCATTTCGCGCG -TAATTTTCATTTTTGTCGTTTTTTTTTTCTGAATTTTCCGAAATTTCTGG -AAATTTTTTCTTTTCTTGTTCTGAAGCTTATGCCTAAGCCTAAGCCTAAG -CCTGAGCCTAAACTCCAAAAACGCACCACTTCCAACAAGCTCCGGAGCCA -AACAGAGCACCTGCTCCAGTGTCCAAAGCCCGGATTCAGCCTCAATTGCA -CTATCGATTTGACTGCTGACATCGTTGACGAGCAGAAGCTCGTCAACGAG -ATGAAACGTCTCGAAACTGTGCTCATCGAGCAGTTGACGCTTTTCCTGAA -GAAATGTTGTGGTCGAATTAATGCGAAATATGGGAAAATTCGGGTTAAAA -TCGATGAAAAATCGTGGAAAAACGAACATTTGTGGTTAATGTGTCGAGCA -GAATCTTCAAATGTTTCACACGGCTCACACAATCCCTGTTCAAGTCGGTG -AATCTTGAAATGCTCGCCTGCACATCTGACGATTTGCCCTTTCGGGCAAA -CATTTTCCTGTGATTTTAGGCGATTTTCTGCAAATTTTCGCTGTTCAAAC -GTTTAAAATCGACGGAAAATGCGTATATTTTACTAAATATGCGAGAAATA -GTGATTTAATTCGAAAAAATCAATATAAAAATGGAAAAAAACTACAGTAG -TAATTTAAAGGCGCATACCTCGAAAGTTAAAATCGTGCCAGGACCCGCCG -CAATTTAGAATCGATTTTTAGATGAAAACTTTTTTTTTCTTACTAAAAAT -TAAAATTTTTCACTGAAAATTTCGGTTAAACTCTGACTTTTAACACGAAT -CTTATCAAAACTATGACAATTTCTAGTGAAAATCGCCAATTTTGTGTGTA -AAATCAATTTTTTCAGTGAAAAATGTTTTTTTTTGAGTTAAAACTAAATT -TCGAGCTTGAAACTAGAAAATGTCAAGTAAAAAATTCATTTTTAAGCGAA -AAATTAACGTTTTTTTCCAAATTTTCGCCTATAATTCACACAAAAAATAC -TGAGTCAGCAAACAATGTGGGAGCATCCCGAAAATGGTGCAGAATGGTAG -AGCAAAAACGAAAAATCGATGAATTATTGTGGAGAGAGAGGAAATTTTAT -TCAATTTTTGAGGAATGGAGGTTAAAAAAAAGAGTAGAAACATTGAAAAG -TGGCAAAGAAATCCAGCTTGAAACCGGAAAAACTCCCAGAAAACGAAGCA -AATAAGAAAATCCCACAAAAAATCCGAATTTAATTGCAGTTTTCGACCGA -AATTCAGCCAACCAGTGAGTGGTTCAATTATTAAAAAGCACATATATACA -TATAACTTTATTCAAAGGACATAATCCATATAAAGTCTGTCAAAACGGAA -AAGGTTCTTTCCAAACACACAATTGGCCCCCTCTGTCCAAAAGAGAGAGC -ATGGGAATCGGAGAGGGCGGTGAGAGAGACGCAGACATCGAGATGACACT -TTTTGACAGCAACACTGTGTGTGTGTGTGTGTGTGTGTGAGTCTCTGTGA -TTGAGTGAAAGCACTTTTGGGAATATATACTGGTAGAAATTTAATTTAAA -ATGATAAAAAATTTCTTGGGATTTTTTTTTTTGAGTACTGTAGCCACAAA -AGTACGTAATTTTCTTGAAAATGCGCCCATGGGGTCCCAATGACGTAATA -TCATGATAAAAAATTTTTGAAAATTGGAAAAATCTCAGTTTCCCCTCCCC -CCCCCCCCTAATTCCAATTTGAATTTCCGCCAATTGAATTCGTTCGGCGG -AGCGCGCTTGCATTATTTTTATTAATTTATTTAATTTTCTCTGTTGTTAT -TTCACTGATTTTCTTCATTTTTTGGGGATTTTTAATTGGGAAAAGAGAGA -AAAATGCAAGATAAATGCAAATTGTTCATTAAAAAATCACTGAAAATGGG -TAAAACTGTGAAATATGCTAATTTCAGGCTTGGTGTCGTCGGAACTCATA -ATTTCGCAGTTTTACCCATTGTCTATGATTTTTTAATGAACATTCTGCAT -TTATCTTTTTTTTTTAAATTCAATTTCTATTAAAAATCCCCAAAAAATGA -AGAAAATCAGTGAAATAATTAGAAAAAATAAAATAAATTTATAAAAATAA -TGCAAGTGCGCTCCACCGAACGAATCCAATTGGCGGGAGTTCAAATAGGA -ATTAGAGGGAAAACTGAGATTTTTTTCAATTTTCAAAACAAAAAATCATA -AAAAATAAGCATTTTAGCTTAAAAACTCGAAAAATCATACAAAAATTAAT -TTCAAGTTGTCCACGAGTAGTACGCGACGCCTGGTTGCAAAAATGGCGTA -GATTTCGATTATTAAAAGCTTAAAAATCATTTTTTTTTACCAATTTCCAA -TTAAATATCCTAATTTTAATCTCAATTTTCTTGAAAGACGTGCAAATATA -GATACATCTAACATAAAAATTCTTCGCTGCGAGACCCAGGACCCCATAAA -TCGCCTGCGCCTTTAAATTTATATTTATTTTCTCTCTCAAACAGCGATGA -AAATCACGTTTTTGAACCAAATTTTCCAAAAAATAAGACAAATTTCTATT -TTAAAAACCACTTTATTCGGTCATTGGTCGCTAAATAGCAAATTTTGAGG -CAAAAAAAAAACGAACAGACAACGGAAAATCGAGTGAAAACAAGTGAGAA -CACAGCAAAACTAGTCCTAATTAATTAAAGGCGCATCACGTGGAAAAGAA -AACTGTTGTGGAAGAATAAAAAATGGAACATGAGGGGAAATATTACAAAA -ATAGTAAAAGATGCATCAAGATTAAGATTATTTTTCGAAAATCGAGTCCT -CCGCCCAGGAATTCATCATAATTTTCGACTTTTTTTCGGAGATTGCTGCA -CATTGTCGGCTGCTCCGGTGGTTTTTGGAAGGTTTTGAGAGCTGAAAGAT -TTGAATTTTTTGGAATTTCGAGAAATTTCTTTTTTTTTACCCGAAGCGCT -TTGAATCTGGCGAGCTGCATTTCCAGCTTGCATTGTGCGTTCAGTGACTT -TGATTCCTTGAAGTTTTCTGAAAAAAAAACACGAGTTTTGACTTGAATTT -TCTGAATTTTTAACACGGATTTCTGGTTTCCCTCAAAGAATTGAAATGGA -AGAGTTTTTGCCGAACTAGGCCAGGCCATATCTGGGGTAGATTTACGGCG -CGTTGCGTGTCGCGTCGCGGCTCGATTTTAGTTGTAAAACTAAATGTGAT -TTGTCCGTGTGGAGTACACGACTTTCCCACGCGTTGTCCGGCAGGCGATT -GTCAATGGAGCGCGAAAAATTCAATGAGGAAGGCCAGAACTCCGTGATTT -TTCTTTTACTCGGCGTAGATTTCGCAGTTTCAGACTGTTTTTCAGGTCTA -ATCAGCGGAATTTTCGTTGATCCCGCCAATCTCGGTGATTTTCTGAGCCT -TTTTCGCTCAGGTTCTGGGATTTCAGCTTTTAGAGCAATCTTTGAAATTT -CGACAAGTTTCTTGAAGTCCAACGCAATTTTTTCAGTAGAATTCGCAGTT -TCCGGCAATTTTTCTGAGCAAATCTTCGAAATTTCGACAAGTTTTCTGAT -TTTCGGCGTAGATTTCGCAAATTCTGACGGTTTTTCTGCAAATCCCGGTG -ATTTTCGGCTCGGGGAGCTCCCAGCTGCTCTATTGTTCAGCATTGTCTGC -TCAGTAGCGGGGGCGTCTTGATTTTCAGTAGAATTCGCAGTTTTCGGCAA -TTTTTCTGAGCAAATCTTCGAAATTTTGACAAGTTTTCTGATTTTCGGCG -TAGATTTCGCAATTTCTGACGGTTTTTCTGCAAATCTCGGTGATTTTGGG -CTCGGGGAGCTTCCAGCTGCTCTATTGTTCAGAATTGTCTGCTCAGTAGC -GGGGGCGTCTTGATTTTCAGTAGAATTCGCAGTTTCCGGCAATTTTTCTG -AGCTAATCTTTGGAATTTCGACAGGTTTTCTGACTTTTGGCGTAGATTTT -GCAGTTTCTGGTGATTTTCGGCACGATGAGCTCCCAGCTTCTTCATTATT -CAGCCTTTTCAGCTGGGCTTCTTGAGAGCCTGTAATCACGTCGCCGTCGT -CATCCTCTGAATCATCATCCGACCAAATTTCGATTATTTCCTGAAAAAAT -CGATTTTTTTTGCTTTTTTTTGCTCTTTTCTCATTGTCAGCTTTTCCCAC -TTTCCAGCAATTTCTCCACGGCGTCGGAACGTATCCTGGTCGCCGATCGA -ACTGGATAACTGGCCGGCTGGCGATAAATCGGCGAAGATCTGCTACTATC -TCGTCTGAAAACGTTTTTCTGCTAAAACCTGCTAAAAATCTGGCTAAAAT -CACCTGATAACATTACAATATCATCATTTCCGGGCATTTTTGACGAAAAA -AAAGCGGAAAATATTTAGAATTTCGAAAATGAAGAGAAGCGTTACGGTAC -TAAAGGCACATGGCGTAAAATATTCCGCAGGACTCGCCGCGATTTATGAT -TTTCACTATTTTTTTTGGGCAAAAGTTGACATTTTTCAGAATAAAATTCA -AAATTGTGTTGATAAATTGTTTATTTGATTTTTTTTTCAAATTTAAATAA -ACTGTAAATTTTAAATTTTCCCCCAAATATTCGCAAATTCCCTTCAAACC -AAGTTTTAATAGCACAGTAATCCCCGAGCAATCGCGCTCCACCGGACTAA -CCTACACACCGCGAATTTTGAATTACATCCCTCATAATTAATTGTTTTTG -CCATTTTTTCGCTATTTCCAGTGGATTTTAATGAGTAAAAGCCTACAAAC -CGACGAAAATGGCGGTGTCAGTGAAAGTCCATCAAATTGCACATATTGCT -ACACGCTGGAATGCTCTCTACGCATCGAATCCACCTCATCAATCAAGAAA -AAGACTCCAATCTCCTCGAAAAGCGCTATAATGACTGTCGGCAGAAATGC -GCAGAGGTTTTAGTCGAATAAATGCCTGTTTTAAGAGCAAGAAATTCCAG -AAAAATTCACCTTCAAATCGAGCTAAAGACCACCGCTACCGGACAGCCCG -CTGTAGTGTGCTATGACGTCACAGATGCAGTTGTACACTTGCAAAGCGTT -GCAAATGGGAAGTGTACTGTAGAAATTCCTTCGCTGTAAGACCTAAAAGA -CCAGAAAAATGGAAAATATCTGAAAACCCCAATTTCAGCTCGTTAATGTT -CCAAATGTTCAATTGCGCGCCGCGAAAGCTCAACGTCTTCATGAAATCTC -TCCAAGCAAAGTTGGATATTATGAAAATGGAGAAAAGCCCAATTTCAGCA -GTGTAAAATCGATAAATTATCGAAAAATCAATAAAAATCCCTTCAGACCC -CGGCAATTCTCACGTCCGCCGGCAGTTTTCAGCGTTCTGAGCCCGCTGAC -GATCAGCGAAATGCGAAAAGTGAAGAAGCTACGCGAACCGTCGGCGCTGG -CGAGACCTTCGAAAGAGGCGACCACACCGAAGCGGCGGTAATTTGAAATT -TTCACATTAAAAAAAAATCGCGAATTTCAGCACTTCCTCAATGAATTTGC -TCGCCGGCGGCTTGGAAAATCGAATTATGAATCGATCGATTGGGCTGAAA -AGGACGACCAGTTTTGCTAGAGATGATCGTGAAAAAGCCGAGGTTCTGCA -GCTAAAAATCCGTCAAAAATCGATAAAATTTCGTTTTTTTTCCGTGAAAT -TCCAGGTTTTTTAGTCCAAAAGCACGGATTTCTGGCTTCCCTCATAAATT -GTAATGGAAGAGTTTTTGCCGAACTAGGCCAGGCCATATCTGGGGTAGAT -TTACCGCGCGTTGCGGCTCGATTTTAGTTGTAAAACTAAATGTATTTGTC -CGTGTGAAGTACACCACTTTCCCATTGCCCGGCGGGTGATTGTCAATGGA -GCGCGAAAAATGCAATTAGGAAGCCCAGAAACCCGTGAAAAAGTGTCACG -CGGTTTTCAAAGTAGAGGTGCAAGCGCGCTCCACCGCTCCACGGTGCTTG -GCGGCAAAACCAGAATTTTCGCTGATTTCAAGCATTTTCCGTCGTTTTTC -ATGATTTTTCATGTCGAAATAGTGTTTAAAAATGTCTTTAATGCTGAAAA -GTGAATATTTCAAAAATTTTGACATGAAAAACTGAAAAAATTATCGGAAA -AGTGTATTTTTTGAGTTTTTACTTATTTTTCGGTTTTTAAAAAAATTATT -TCTACATAAAAATTGATGAAAACAGCATATGAAGTGCAAAAAATAAAGAA -GACTTACATAAATTTTGACAAAAAATCACGAAAAACAATAAAAAAAGTCG -AAAAATGATTGGAAACGGAGAAATTTTCCCTTTTTATGTAGAAATTTTGA -ATTTTTTCAAAATTTTCTCAATTTTGAAACACAAAACATGAAAAATGATT -GAAAATATTTGAATTTTTAGTTTTCGCGCCAATACCTAACGAGACCCATC -GGTGTGACCATGGAGCGCGCTTGCATCTCGATTTTAAAATTCGTATGAAT -TTTTCGCGCTCCATTGACAATCGCCTGCCGGACAACGCGTGGGAAAGTGT -CGTGTACTCCACCCGGACAAATCACATTTAGTTTTACAACTAAAATCGAG -CCGCGACGCGACACGCAACGCGCCGTAAGTCTACTGAGCCAAAATGGCCT -AGTTCGGCAAAAACTCTTCCATTTCAATTCATGAGGGAAGCCAGAAATCC -GTGTTTTAACCTAGAAAATCAAGAATTTTTTTGGGAAAAAATGCCAAAAA -TCCCAGATTTTCCCTAATTTTCAGCTAATTTTTCCCCGAAACAGACAATT -TTCAGACCCTTGTCTCCCTGAAATCATTCAAAGATGCTCCTGCAATTTCC -GAACGGATTCAGCTGTCAGATGAGCAAAAATCGGTTGTCCGATGTGTGAT -AAATGTAATTTTTCGTTCGAAAAAAAAAATTATCGAAAATTTGCAGTCTC -GAACGAGTGTCTTCTTCACGGGATCCGCTGGAACCGGAAAATCTGTGATT -CTTCGGAGAATCATTGAAATGTTGCCCGCCGGGAACACCTATATCACCGC -AGCGACAGGTAGAGGATCACTTTGAAATATTTGCAAAAAATCGTGTCAAG -ACCTCCCCCAAAAAATTTTCATGTACCTTTAAAAAATAGAACCGACTTTT -TTTAATTAAAAAATCATTAAAAATTAGAGGAAAATTTGGGAAAAAAAATC -ATTAAAAATTCTTTAAATAATAATTGTTTATTTGTCACAAGAAATAGCTA -CACCGGAAGATAAAGAAAAAAAGTAAATAAAAAAGATGTGTGGACAAATA -AGTAAAATGACCAATTGGACCAGCTATAGCCCGGGAGGTTAAGTTGGGGG -GAAGAGGGTGTCAAATGGGATAGAGTCTAGGCGCGACGCAAATGCATTTG -GAGTTAACAGTTTAGGGAAACGTTTTGCTATTCGATTCCACAACGACAAG -TTAACATGTAGAAAACATTTAGACGGAACACCACAGACAACAAGTAGATA -GGGGTGACGAGTAGAGCGTGAAGCTCGAACGAACGATGATAAGGACGGGA -AGTGATACTCGCTTGAAATAATTTTATGGAAGGTTCGGAGGATTTGAAGA -ACCCGTCTATGGTGGGTAGACAATAAATTAAATTGGGAAAGCCTACTACT -GTATGACGAGTAAGATAAATTGCACCTTTGAAAGACACACTTTGAGAAAA -ACCGGAGGGGAGATTCTAGTTTTTTGGCAAGTTCGGTGGAGTTGGGCGGG -AAGAGCTCGCAGCCATATTCGAGTACGGGGCGGATGTAAACATTGAACAG -TTTAAAATAGAATTCGGGACTTTTAGAGCGGAATGAACGAAGGATTTGGC -GACACTTAAGGAGGGCACTATTAGAAGTCTGATTAATATGATTAACAAAT -GATAATTTGGTATCGACAATGATTCCAAGATCTCTGATAGAATCACGCGG -TTTAATTTCAACACTATTTACAAAGTATTTATGACGGGGGTTCTTTTTTC -CAAAATGTAATACGGCAGTTTTGTGCTCAGCAAGATTTAGACGCCATTTT -TTACACCAATCAGCGACAATATTGATGCTTGTTTGGATAGAGGTGGGGTC -CGATCCGAGTAATTTTAGATCGTCGGCAAAGGCTGTAACATGGACATCAG -GGGGGAACAAATCTAATAAGCCATTAATATACAAAAGAAAGAGGAATGGT -AAAATTGTGGAAAAAACCGTAAAAAATCAACAAATTTCGAAAAAAAATCG -TAAAAAATTGAGACATTTGAAAAAAAAAATCTAGCAAAATTTGAAAAAAA -AATCGTTTAAAATTCAGCAAATTTATTTTAAAAAATCATTAAAAATTCAG -CAAATTTGGAAAAAAAAACAAATAAATCTGTAAAATTAAAAAAAAAACCA -GTAGAATTTGAAAAAAAATTGTTTAAAAAATTCAGCAAATTTCTAAAAAA -AAATCATAATTAATTGATAAAAATTTTTTAAAAACGTAAAAAAATATTTA -AAATTCTGCAAAATTTGAAAAAAATCGTTTAAAATTCAGCCAAATTTCGA -AAAAAAAAGCATTAAAAAAGAGAAAAATTGGAAAAATTCTGCACAATTTT -TTAAAAATTATTATTCTGAAAAAATTTAAAAATTCATGGAAAAATCTGCA -AAATTATTTTTTAAAAATCGTTAAAAATTCAGCAAAAATTGGAAAAAAAT -CGTTTAAAAATCAGCAAATTTCGAAAAAATAAAACATTAAAAATTCAACA -AAATTAAAATTAGAAAATCATTAAAAAATACAGCCAAACCGTAAAAAATC -AGCAAATTTCGAAAAAAATTCGTTAAAACTTCAGCAAACTTCTAAAAAAA -ATCATTTAAAAATGCAGGAAATACGAAAAAGAAACATCAAAAATTGAGAC -AATTGGAAAAAAAATTCGTTAAAAATTAACCCAAATAAATTTGCTGAATT -TTTTAGATTTTTTTTTTTATAAATTTGCTGAATTTTTGAAAAAAATTCAG -CAAATTTATTTTAAAAAAATCTAAAAAATTCAGCAAATTTCTTTTTTAAA -AATCGTTAAAAATTCGGGAAAACTTGGAAAAATTGTGCAAAATTCAGAAC -AAAAAAATTTCAAAATTTTCCCAATTTTTAAGTTTTTATTTAGTTTTCAG -AATTGTTTAATAGTGAAAAAATCATAAAAAATTCAACAAAATTTAAAATT -CAAAATTTTCCAGAATTTTCATGGGTCCCGCCACGATCCACTCCAACCTT -CAAAAAATCATGTAATTTCCAGGCGTTGCGGCTTCCCAAATCGGCGGAAT -CACACTTCACGCGTTTTGCGGTTTTCGCTACGAAAATTCGACGCCTGAAC -AGTGCCTAAAACAGGTTTTACGCCAAAATCACATGGTCCGACAGTGGAAA -CAATGCTCACACTTGATAATTGACGAGATTTCCATGATTGATCGCGACTT -TTTTGAAGCTCTCGAATATGTGAGCTCATTGCGTTTTGATCTACAAAAAA -TGCGGGAGTTTTCCCAGCATTGCTCATTTGATCTACAAAAAATGCGGGAA -TTTTCCCAGCATTGCTCATTTGATCTACAAAAAATGCGGGAATTTTCCCA -GCATTGCTCATTTGATCTACAAAAAATGCGGGAATTCTCCCAGCATTGCT -CATTTGATCTACAAAAAATGCGGGAATTTTTCAAGTGTGACGTCAGCACA -CTCATGCGAAATCTGCTGAAAAGTCTGCGTCTCTTCTCCCGCATTTTTCG -GAGATCAAACCAAAATGGGACCCGAAAATTCCAAAAAAAAATCGATAATT -TCCCGTCCCAGGTCGCCCGTACCGTCCGTAATAACGATAAGCCGTTCGGT -GGAATTCAGCTCATTATCACTGGAGATTTCTTTCAATTACCGCCCGTCTC -GAAGGATGAACCAGTTTTTTGTTTTGAGGTGTGCGGAATTTCGGAGCATC -GTTTGGACCGTCTAACTCTTAAAAAAATTTTTTTGCAGAGCGAAGCCTGG -AGCCGATGTATCCAAAAAACGATTGTCCTGAAAAATGTGAAACGACAAAA -TGACAATGTTTTTGTGAAAATTTTGAATAACGTTAGAGTTGGAAAGTACG -TAAACTACTGGAAAAATTTAAAAATTTCGAATTTTTCAGGGTTTTTTACT -AGAAATTTTGATTTTTTTCAGTGAAATTCCAATAAAAGCTGGAAATTTTC -AGAAAAAAGGAAAAAATATGAAAATTTGTAATTAATTTCGAAAAATGCTG -AAAATCTCCAAAACCTTCCAGAAAAGCTGGAAATTTCATAAAAATTTGGG -AAAATCTGAAATTTTCAGAAAATTCAAAAAAAGCAAAAAATCTCGAAAAC -CTTCCAGAGAAGCTGGAAAATTTCAGAAATTTCCAAAAAAATAAATTCTG -AAAATTTCATAAAAATCACTGATTTCTGTCTTCCCTCATAAGTTGAAATG -GAAGAGTTTTTGCCGAACTAGGCCATTTTGGTTCGGCCAGATCTTGGGTA -GATTTACGGCGCGTTGCGTGTCGCGTCGCGGCTCGATTTTAGTTGTAAAA -TTAAATGTATTAGTCCGTGTGGAGTACACGACACTTTCCCACGTGTTGTC -CGGCAGGTGATTGTCAATGGAGCGCGAAAAATTCAACGAGGAAGGCCAGA -ACCCCGTGATAGACCGGCCAACACGGGGTTCTGGCCTTCCTCATTTCATT -TTTCGCGCTCCATTGACAATCACCTGCCGGACAACACGTGGGAAAGTGTC -GTGTACTCCACACGGACAAATACATTTAGTTTTACAACTACTAATTGAGC -CGCGACGCGACACGCAACGCGCCGTAAATCTACCCCAGAAATGGCCGAGC -CAAAATGGCCTAGTTCGGCAAAAACTCTTCCATTTCAATTTATGAGGGAA -GCCAGAAATCCGTGTGAAATTTCCAAAAAGAAGCTCCAAAAAAAAATTCC -AAAAAAATCTCGATAGCCTTCCAGAAACGCTGGAAATTTCAGAAAATCTC -CTGAAATTGATAAAAATTCGAAAAAAATCTCAAAATTGTTAGAAAATCAG -TGAAAATTTGGAAAATTCAGAAATTAAAAAAAAAATTTTTTTTTGGAATT -TAGAATTTAGAATTCTTCAAATTGTCGAAAAATGCTCCAGAAAACTTGTA -AAAATTTAATTTTTTTTTTTTTGAAATTTCCAAAAAATTTATTTATTTTT -CAGATGCGACTTCAAATCAGCGGATATTCTAAAGGAATCCTCGAAAAATC -AATTCCCATCCAGCGTAATTCCAACCAAACTGTGCACACATTCAGATGAC -GCCGATCGAATTAACAGCTCAAGCATCGAGACAACACAAGGCGACGCGAA -AACCTTCCACGCCTACGATGACGAGAGTTTTGACACGCACGCCAAGGCCC -GAACGTTGGCACAGAAGAAGCTTGTGCTGAAAGTTGGAGCTCAGGTGATG -CTCATCAAGAATATCGATGTGATCAAGGGACTTTGTAATGGGTCACGTGG -ATTTGTGGAGAAATTCTCTGAAAACGGGAATCCTATGATTCGATTTGTAT -CGCAAGCCGATGCTTCCATTGAGGCACGTTTTACAGAAATGACCATTTTA -TGGGCGTGGCTTTTTTTTTGGAAAATTTTTTTTTTCCAAAATTTCTGGAT -TTTTCTCTAAAATGGAAAAAACCCACGAAAATTGTAAAAAATTTGAAATT -TTTTAAATCGGAAAAAAATAAAATTTTCTTTCTTAAAATTAGGCTTAGGC -TTAAGCTTAGGCCTGGGCTTAGTCTTAGGTTTATGCTTAAATTTGAAAAA -AAAAATTTCTAATTTTTTCCAGATTTTTCCGTTTTTTTTTTCAGAGAAAA -TCTAAAATTTTCGATTTCTACCTGTTTTTCAAAAAAAGTTAAAAAAAACA -TTTTCGCAAATTTTGTAGAAATTTTTCTTTTTTTTTTCTTAAAATTAGGC -TTAGGCTTAGGCTTATGCTTAGGCTTAGGCTTAGGCTTATTCGTAGGACT -ATGCTTTGGCTTAGACTTAGACTTAAGCCTAAGCCTAAGCCTAACCCTCT -TAAAAAGTTACAAGAAGGTTTTTCCTTGCGCTTGGAGCGCAAAAGAAAAG -AAAAAGAGCTATTCAGACTTAGGGTGCCCAACTGGAATAAAACATTGGAA -ATCCTTATGACACACTTAAGCCTAAAGGCCCGAAAAACATACTAGGATGC -CCAACTGGAATAAAATATTGGAAATCCTTATGACACACCGGCGGTATGGC -GCGGCTTAAGCCTAAATAGCCACTTTTATCAAAATACATTTGAGCTCGTC -TTGCGTTTTACTTTGACTTCTCAGGCAACTCAAAAGTAATCTGTGGATAT -TTTTCAGTAATCTAAATGAAGACTATAGATTACTAAGAAACTTGGAGATT -TCATAATATTTGGGGGGATGCGAGCATCCATTGGAGATTTGCCATTTGAT -AGAACTTTTAGCGGCAAAAGTCCAAAACAAAGCTCACAGTGGGCTCTCAA -AGATCATAAAATAGCACTGTAACGAAGAACTTTAACGATCTAACGAAGCA -ATTTTACAAATTCACTTTGGTAGCTCATATCTCCGTGGATAAAATTTTTA -CAGAAAAGTCATCAACTGATAAGTTGTTGATATTGTTGTAAAGAACAAGT -TTGTAGTTGAAAGTTTTTTTTACCAAAAAATTTTTGTTTGAGAGAAAAGC -ATTAGAAACGGAATAGCATCATAAAAATAACAACAGCAGTTGCCGCACTT -CACGCGGTTCTATCTCAAACAAAAGCGGAGATATGAGCTACCAAAGTGAA -ATTGGAAAATTGGCCCTCCAATGCTTCGTTAAAGTGCTATTTTCAGGATC -TTTGAGAGCCCGCCGTGAGCTTGGTTCTGGAGTTATATTGATCAAATTGA -CCCTCCAGTAAAGGAGGACCTTTGATGAATATAATCACTCTGATGGTATT -TAATTCCGATGAGTAATCCATTTTTCTTTTTCTCACATTTGTGAACCAAA -AATAAGTTTTAAATTAAGGCGGGATATTCTAAGGTGTGATAACATATGTT -ATTTATTTTTAAATTTAAATAAAGTTTTTTTTTAATTTTTGCTAAAAAAC -GAATAGTTTACAACCGCCTCGCTCAAATGTATTTTGATAAAAGTGGCTAT -TTAGGCTTAAGCCGCGCCATACCGCCGGTGTGTCATAAGGATTTCCAATA -TTTTATTCCAGTTGGGCATCCTAGTATGTTTTTCGGGCCTTTAGGCTTAA -GTGTGTCATAAGGATTTCCAATATTTTATTCCAGTTGGGCATCCTAGTTT -TTTTTTTTCGGGCCCTTAGGCTTAAGTGTGTCATAAGGATTTCCAATGTT -TTATTCCAGTTGGGCACCCTAAGTCTAAATAGCTCTTTTTCTTTTCTTTT -GCGCTCCAAGCGCAAGGAAAAACCTTCATGTAACTTTTTAAGAGGGTTTC -ATATATTTTATTAAAATCGGGGCGAAGCCCTGATTTTAAATCCATATTGT -TTTTGTTTTTGTCTTCCACTATCCCTGCAAATAGGAAAGAGAATGTGTTC -TTTCTGATGAAGTAAAAATCATCATAAAATCTTGAAAACTGAGAGCAGGA -GGTAATATTTGAATATATTGGGTTGTAAATGTGTGTCTCCCTGTGGGTGG -GGTGGCGATGTGTTGGCAGCCAATCCTTCAACGAACTGTATCTCCCGCCT -GTATCTCCCTTCAAAGTGAGAATTGGGTTACAAAAATTTGAGGGAATATG -AAAAAAGGTGTGAGGATTTCAAAAATATTATTGTTGAAACACCAGACCAA -ACCACTTTTTCTGGGCAAGAGACAGAAAATTAATTTTTTGAAAAATTTCA -AACTGGCACAAAATTTTTTCAAAAACAAATTTTCACAAATTGTTAAAAGA -TGCCATTTTTAATCAATATTGTTCATTGAACACAGAAAAGAAAACGAAGA -TTCATCAAAAAATGAGTGAAAAATCGCAAAAATTCGAAAAAATCCGTGCT -GAAAAACTCGAGTTTTTGGCGGTGCTGAAAAAAATTTTCACTAAAATTTT -TTTGAAACTTAGTTTTTCGGATTTAGCGTCAAATTTTGAATCTATATAAA -AAAAAAAATTAAAATTGATCTCAGATTGAGTGAATAATAAACGCTCAAAG -TTGAAAAATGAACAACGCAAAAACGGCAGTAACTTGCTTCAAGGTCGGTT -GTCTCAGTGAGTTTTCACTCAATTTTCGAAATTTTTTTGCTCTATCGCTT -TAGAAATATTTGTAATTTCATTTTTTTTCCTCAAAATCAAAATATCTCAA -ACGACCGCCATCCTACGAGAAGGGAAAAAAAAAGTTTTTGGAAAAAAAAT -CAAAAATTTTTTTTCTGCCTCGATTTTCAAAATGAAAAAATCACTTTTTC -GGAATAAACTTTTTCACAAATGTATTTTGATAAAAGTGGCTATTTAGGCT -TAAGCCGCGCCATACCGCCGGTGTGTCATAAGGATTTCCAATATTTTATT -CCAGTTGGGCATCCTAGTATGTTTTTCGGGCCTTTAGGCTTAAGTGTGTC -ATAAGGATTTCCAATATTTTATTCCAGTTGGGCATCCTAGTTTTTTTTTC -GGGCCCTTAGGCTTAAGTGTGTCATAAGGATTTCCAATGTTTTATTCCAG -TTGGGCACCCTAAGTCTGAATAGCTCTTTTTCTTTTCTTTTGCGCTCCAA -GCGCAAGGAAAAACCTTCTTGTAACTTTTTAAGAGGGTTAGGCTTATGCT -TAAGCTTAGGGTTAGGGTTAGGGTTAGGCGTAGGCGTAGGCTTAGGTTTA -GGCTTCGGCTTCAGGAATATTTAAAAAAAAAATCGAAAAATAGATTTTGC -GAAAAAAAATCGTGATAAAGCCTGCTAAAATTTTCAAAAAAATTAAATTT -TTCAAATTTTTCAAATTCCCAAGATTTTGGTCTCGCAGCGAAAACATCCA -ACTACAGTAACCCTCGCCCTCTCCAATTTTCAGATCCGCCGCTCCAAGTT -CTCAGTCCGCATTCCCGGGAGTGATGCTCCGTTGATTCGCCGTCAACTCC -CACTCCAACTCGCCTGGGCCATCTCCATTCACAAATCGCAGGGAATGACG -CTCGACTGTGCGGAAATTTCGTTGGAGCGCGTTTTCGCCGACGGACAGGC -GTATGTGGCGTTGTCGCGCGCACGATCACTGGCGGCAATTCGAATTATCG -GCTTCGACGCGTCGTGTGTCCGAGCGAATTCAAAGGTGAACAGGGGATTT -TCGAGATGGAAATCTATGAAAAATGGATGGATGGTGTTAGATATCTCCTT -TTCGTGGGTTCTCTCACGTGGTGTCAGAGTGCCTCATTTCGGCTTGATCT -ACTGTGTAGATCTACAAAAAATGCGGGAGATGAGGAGACTCAGACTTCTC -AACTGGTTTCGCATGGTTTAGAACGTGCTGACGTCACTTTTCTCTGGGCA -TAAAATTCCCGCATTTTTTGTAGATCAACCGGTAAGGGATCTCTCAGCTA -CGTGGAAAATTATCGATTTTTTATCGAATTTTTTGCAGGTTATCGATTTT -TACAAATCCATCGAGGCAGAATGCGACGACGAACAGGACTGGGAAGCCCC -TGCTGCTGGACCAAGGCTCAAGCGAGTTCGATCGATTTAATTTTTTTTTT -TAAATTTTTTTGTGATCTCCAAATGTTCTGTCTTTCTGTCTTCCCCCCCC -CCCCGCCAAAATTCATTAACTGTTTTATTTCACAACACTCTGTATCATCA -TAATTTTCACATAAAATTGGCTATTTCAATGTTGACGTCGAATTTTTAGT -CCTATCAGCGTCATCGGATCTGAAAAAATGGAAAACTTGAACAAAAAAGC -AGGGGGTGGCCTAGAAAGCACAAAAAAAACTCGGACACAGTTCAACGGAG -GCAGTTTTTGGAAAAAAAAAAACGTCATTTTCGTATAGCCACACTGAAAT -TGAAAGAATTCTGGCCGAGTTTTCCAAATTCTAGGCCACCATGCAAACCG -ACATTTTGGGCGGAAAAGTGCCGGTGGCCGTGGAAGAAGGAAAAACTCGG -CCACTCTTCTATGTACTCCTCTCGGAGAATTGTGTTTTCCATGGCCGAGT -TTTTGTGTTTTCTAGGTCATGTCGGCATTTTTCTTAGTCAGTTTCAAAGG -AAATACGATACCTGGTCTCGACGCGAAAATTTTTTAATTAAATCCAAAAA -GACGTGCGCCTTTAAAAAGTACTGTAATTCCAAACTTTCGTTGTTGGGAA -ATTTTTATCGATTTTTCGTAGTTTTCAAAAAAAATAATCAAATGTACACA -GGGTTCTGTTCTTCCTTATTGATTTTTTCGCGCTCCATTGACAATCGCCC -GCAGGATAACGCGTGGGAAAGTCGTGTACTCCACACGGACATCGAGACGC -GACGCGACACGCAACGCGCCGTGAATCTACCCCAAATATGGCCGAGCCAA -AATGGCCTAGTTCGGCAAACTCTTCCATTTCGATTTATGAGGGAAACCAG -AAATCCGTGAGTAGTGAGAAAAACAACGAAAAAATCGATAAAATTTCCCA -ACAACGAAAGTTTGAGATTACAGTAGTCTTTAAAGGCGCACACTTTTTCG -CATTTAACATAAATTTGTCGTGGAGAGAGTATTTTTGGCGCAAAACTTCG -CATTCGGGTAATGATAATAGAAGAATTGAAACTCACAAATTCTCCGCCGT -CTCCTCAAGCAGCAGCGGCACAATAAACATGAAATACACGGCCAACACGA -AATGAATCGGCACCATCGACACAATGAACAACGACATTCGGAGCATGTGC -TCCAAAACTGTCGGCCGCAACTTTTTCGACGGATTCTCAAAGACGAGATA -CACTTGCATCGGGCTGTGCACATCTTGAACCGACTTCTTCTTCATTACAG -CGCTCCCTTCTCTGGGCAGCAGGTAGCGTGTCCACGTGGTGTAGGGTGAC -TCAGTGGTTGTGTGATTTATCGGCGTGAGCTGGAGCATTTTTGCAGAGTC -GCAGGCCAAGGTAGCGGAGGTGTTGGCTCTGAAAGTAGATTTCATACAGG -ATGGTAATTTCGGGGAGTACTGTAGTGGTGTTATAGTGGTACTGTAGGAG -TACACTGTAGGGGAACTGTAGGGGTGCTGTAGCAGTACTGAGGGGGGTAC -TGTAGGAGTACTGTAAGGGTGCTGTGGGGGTACTGTAGGAGTAATGTGGG -GGTACTGTAGGAGTACTGTAGGAGCACTGTAGGGGAACTGTAAGGATACT -GTAGGAGTAATGTAGATGTACTGTAAGGGTACTGTAGGGGTGCGCTAGTG -ATACTGTAGGGATCATGTAGGAGTACTGTAGAAGTCCTGTAAGGGTACTG -TAAGGGTACTGTAGAGGTGCGCTAGTTGTACTGTAAGGGTACTGTAGGGG -TACTGTAGGTGTACTGTAGGAGTAAAGTAGATTAACTGTAAGGGTACTAT -AGGGGTACGCTAGTGGTACTGTAGGAGCACTGTAGGCGTACTGTAAGGGT -ACTGTAGATGTACTGAAGTAGTTCTGTAAAAGGTACTGTAGGGGTACTGT -AAGAGCACTCTAGGGGCATTGTAGGGGTACTGTAGGTGTACTGTAAGGCT -ACTGTAGATGTACTGTAAGGGTACTGTAGTTGTTCTGTAAAGGGTACTGT -TGGGGTACTGTAGGTTTACTGTAAGGGTACTGCAGGGGTGCTGTAGGGAT -ACTGTAGGAGTACTGTAGTGGTTCTATAGGAAGACAAACTTTTTTTTGAA -TTTACTCATCGGAGAATCTAATATTTTTCACCAAATCGATACACCATAAA -AATTTTAGGACCCAAAGCTAAAAAAAAAAACCAACTTCTCCAATATCATC -TCCATCAATTCCAGTTGTTCTGTGCAGTTCGCCATCCCTTCCTTCTTCAA -TTCCTTCGCCCGATTCTCCAAATCGTCCACCATCTTCACACCCCGCCGAC -ACGCCGTCTCCACATACCGTTCCGTACCAGCTTCCGCAATTTTCATAAGC -TTCTCGACAGACTCGTTAAACTTGCGTGTTGGCTTGAACAAATGGGAACC -TCGAATCGCCTCGGGAACCGGATTTCCACCTCCTTCCACCAGGAGGCTGA -ACAGTGTCGTTTTCTGCCTGACGGCCTTAGCCAGGACGTGCCCATAGTTG -ATCATGTAGATTTGCCCGTTTTCAGATATGTTGAATGTTTCAGCAGATGA -GAACATTTGAAAATTATTTGATTGTGCGTGTTCATGCACCACAGTAATGA -ATGCGAGGCGGCAAATTAAAACTCTGAAAGTTTAGATAATTGTACTTTAG -TTGAAATCTACTTTGGTTGACAGGTGCATCGACTAGACTAAAAAAAAAAG -CAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTA -GGTAGGTAGGTAAGTAGGTAAAGCGAGACACGGTGCATCGATCTGACTTT -AAAAATCTCAATCTCGTATCTTAAGCGTCTTTGGTTCTGTCAGGGAAGCA -GGTAGGGGGGAGGTAGGTGTGATCAGGCAGAGCACCGGAGTTAATATCTG -GTGGATTGTGGGCTGCTAATAGGTAGGTAGGCAGGTAAGCAAGCAAGCAA -GCAGGCAGGTAGGTAGGTAGGTAGGTAGGCAGGCAGGTATCAGTTGACAA -CTTTTTGATGAAACTAAACGGAGCCGAGTTATAAGGTGCCAAAGTTGCAC -TAGACATGGTGCATCGACCTAACTTGAACAACTCGTATCTCAAGTGTCTT -TGGTTCTATTTGGGAGGCAGGTAGGTAGGCAGGTAGGTAGGTATATCTTA -GGTTGTTTCAAAACTATTATACATTAAAAATCAATAAAAATATTTTGCAC -GAATTTTATCAGTTGACAACTTTTTGATAAAACTAAAAAGAGCCGAGATA -TTGTAAGTTGCAAAAGTTGAACGAGACATGGTGCATGGAAGGTAGGTAGG -TAGGTAGGTATTTAAGTAGGTAGGTAGGTAGGTAAGCATTCCGTATTTCT -CTCTACTTTGACAGCTTATATCCTGGTTGTTTTGTGTTGTATCAAAAAAT -GTTTAACAAAGATAACATAGAAAAATATTTAGCACGTAGCAAATTTAAAA -AACTAGGTTGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGAAAG -GCAGGCATGTAAGTAGTAGGTAGGTAAAAGTACTCACGTGGAGAACATCA -AGCAGAAGATCGCTGAGCAAATTGAAAGTGGTACTGGAAGTTGAGCAAGT -ATTTTGGAGTATTTTTCTGGAAAAAAATAAGTATTCAAAGTAACTAAAAT -AAAATACCAACTCCGAAACTCAAACTTCATAATAAACAAAATCGTCAGAA -TCCCACTGGAGAGGACTGCAAAAGTCACTGTCGTGTTGGCAGACGTCTGA -TAAAAATCGAGGGTGTGTCCGGATGGTAGGAGAAGCACATTATCGTGATA -CTTTGACACAAATTCCTCAATAGACGCCAACGCTTTTCCGAAAACTGGAA -TCGAAATGTTCAAAGCATTGAGAATTATTTTCTGGTACTCTTCCACCAGG -ATGTTGTACTCCGAGTTTAGATCCGCTGAAAAATTTAAATTTGTATTAAA -TTGGGCAATACTCGTACTTGCCTACCTGCCTACTGGTAGGTAAGCAGCCT -ACTTATTTTCAACTTACAAAACTCCATATACTTTGTAACGTTTTCCAATT -TCGCAAAAATCGATTTCTCGAAATATTTGCACTTCCCCTCGACAAATGAT -TTCTTGGCGGGAATCTTCAGGAACAGCTGAAAATTTTTTTTTCCGGTGGC -CGAGTTTTTTCACGGCCACGACGTACCTTATTAAACATGGTGAAGTTGGC -GTAGTCATGCAAGAACCAATTTATTCGGCGGCGTTCGTTTTCGGTGACGG -CGAAGTCTCGTTTGAACAAGCACGGTATGTAGGACAGCTTACGGTGGAGA -CGCTCTTTGATGGCTGGAAGTTATGACGTCATGAATAATAAGGGATGAGA -TTTCTAGGCCACGTGTGACGTCACAGCAATCCCCGAAACCTTTTTGGATG -GCCGAGTTTTACCGATTTCTAGGTCATCGAGCGAAACTTTTGTGATACTT -TGGCAATGGTCATCAGGTAGACAAACAACGTGATAATTTCTAGGCCACGC -TTGACGTCACGTGGCCGAGATTTCGCGCCAGGACCTAGAACTAGACATGG -TGCATCGACCTAACTTAAACAACTCGTATCTCAGGTGCCAGGTAGGTAGG -TAGGCAGTCAAGCAGATAGGTAGGTAGGCAGGTATTTTAATTTCATTTCT -GCGGCTACAACACAATTTCTCTTCCAATCAAGGACGTAAATTTCTAGGCC -ACACATGCAGAGTGCGGACTAATAATTAAAGTGTTTTACGACATGGCCGA -GAAAAGAGAAACCTAGGCCATGGTAGTTAGGTGTGACGTAACGCCACTAT -AAAACTATAAAACTCACGCATAAAACTGTGATCATTGGCGGTTTCGAGCA -TCGTCCTTCCATAGACCGCATCCTGAGTACACTCTCGTAAATTGGCGGCC -AAAATTGTTAGACCAAGGATACAAAATATGGGGATAATGGTGAATCCGGA -GCGATTATCATCCAACCAATACACGATTACTTCGATAACCTCGAAGAGCA -GCAATTTCCAGACGACGAGGAATATCAGCAGAGCTGTGATCAGGCAGAGC -ACCGAGATTATTATCTGGCGGATTGTGGGCTGAAAATAGGTAGGTAGGTA -GGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAGGTAAG -TAGGTGGTAGGTAGGGAGGCAGGTATCAGCTGCCAACTTTTCGATAAATA -TTAAACGGAGCCGAAATATAAGTTGCCAAAGTTGTACTAGACATGGTGCA -TCGACCTTACTTAAACAACTAGGTAGGTAGGTAGGTAGGCAGGCAGCTAG -GCAAGTAGGTAAACTCACCAAATGCCTGAAAACAATTGCAAGAACATCGG -AATAACCCGAGCTCCTCCCGTTCAACGTCGCGACCACAAGCGCGTGCACA -CTTTTCCGCAGCTTCTCATCATCGCGATCAGCGCAAAAATCCTCGATTAT -CTCGAATCGATGGCTCTTTTTTGTGTGCGCCGGGTCTAATTTATAGCTGA -TCGGCTCGGGAAACCAATCGTCACACTGCAGCTTCGCATCCTCCAAGCTG -AAGCCGTGAGAAAACTGTGCACTGCATAGGAATAGAAGTAATTTCAGTTT -CATTTTGTTCTGGAAGAAGGCATTTTTATGGATGGAGTTTGAAAATAATA -ATTAAAAAAAAAACTTACAGCTGGAACTTTGTGAAATCGATAATGAAACA -ATAAATCTAAAAAAAGCTCAAAAAATTTTTGACAAAATTTAAAACTGTAA -CGTGTATGAAGGTCACGTGAAAACTGAAAACTCACCAAAAATGTCGAAAA -ATAGCAAGAAACTAGGCACACGTAGACTTATGGTAGGCAGGAAGGCGTAG -GCGTTGATCCAGGCAGGGTCACGTCTTGAAGGCAGACTGTTAGGTATAGG -TAGGCATAGGTAGCCATGTAGGCGTAAAGGCAGGAAGGCATCTCTAGATC -CTTTTTGTGGCAGATTGGCCGCTTTGCAGGCAGGCAGGTGTGGGTGGCCT -AGTAGACCGAAAAACAAGCAGGTAAAGTTCCTATAGTAGTAGGTAGGCGA -GCCAAACCTTTTTTGTAGATGATGAAGTAGGTGTAGGCCGTCTTTTGAAG -GCAGTGAGGCAGACAAGGTTAGGTCGTCGCAAAGGTTGGCTGGAAGGTAG -GCACGTGGGTCAGCAGATAAGCGTAGGCAGGCATAGGCAGGAAGGCATAG -GCAGGTAGACGTAGGCAAGTAGACGTAGACAGGATAAGATTCAAATATGA -AAATCGTGAAAAGGGGAAAATTTCTTATTCTTCGAGTGCGCGACAGTATG -CGTAGGCAGGTAGGCGTTGGCAGGTAGGCGTAGATAGGTAGGCGTATGCA -GGTAGGCGTAGGCAGGTAGGCGTAGTCAGGTAGATAAGCAGGTAGTCGTA -GACCGGGTAGGCGTAGGCAGGTAGGCGCATGCAGATAGTCCTAGGCAGGT -AGGCGTAGGTACGTATGCGTTGGCAGGTAGGTGTTGGCAGGTAGGCGCAG -GCAGGTAGACGTAAGCAGGTAGGCGTAGGCAGGTAGGCGTAGGTAGCTAG -GCGAAGGCACGTAGGCGTAGGTAGGCAGGCATAGGCAGGTAGGAGTAGGC -GTAGACATGCGCACATGAAAACCTTATAAATGTTTCAACCCCATCATCAT -CATCCCATTTTTCTCTCGATCAAAACGAAAAAATGTGCGCAAACACAAAT -TGCATCCATTTCTCTCTCTTTTTTACTCACTTATATATCTCTCATCACTT -TATCCCCCGTTTTTCAATCCCTTCCAAACACTTCCAAAACTCTCCAGAAC -TCCTAGAGAGTAACACGAGAGAAAATATTTGAACTTTTGTCTCGACCAAG -TTTTTTTTTTTGGGATTTTTTCTTTGGATTTCTACAAATTTGATGTATTT -TTTCCATTTTTCGTGCAAAATATGGTAATGGACTAGGTTTTTGCTACGTG -GCCTAGAAAAATCTCGGCCACCGATTCTGAGCTGTTGCAGCGGCCGCGGC -CGAGGGTTTTTCTCTTCAATCGATACCAATCCCTCTTTTACGCAAGGAAT -CACGTGGAGTCAGAGTGTCTCATTTCGTCTTGATCTACGTAGATCTACAA -AAAATGCGGGAACTGATTTCGTATCGTTAAGAACATGCTGACGTCACATT -TTTTTATCATAAAATTCCCGCATTTTTTGTAGATCAAACCGTAATGGGAC -AGCCTGGCACCACGTGCTCTTCCAACCTTTATATTTTTTTTGACAAAATC -TTGAGAATTTCTAGAATTTCAACGAAAATCCAATTTTATACCTAAACTTA -AAAAAAAATTGCTAAATTGTGTTCGACTAGCAAAAAATGCACCCAGTTTT -ACAAAAAATCTTTTTTTCTGAAAAAAAATTCAGTGGAAAATGTCTATAAT -TTTCAGTAATTCATACTAAAAAAAATCCAATTTTTACAACAAGTTTTTGT -GGCCGCGGCCGAGGTTTTTCCTCTTCCACGTGGTGTCAGAGTGTCTCATT -TCGGCTTGATCTACTTAGATCTACAAAAAACGCGGAAACTGATTTCTCAT -GGTTAAGAACGCGCTGACGTCACATTTTTTTGATCGTAAAATTCCCGCAT -TTTTTGTAGATCAAACCGTGATGGGACAGCCTGGCATTACGTGAAAACAA -ACAATGCAAGCGCGCTCTAATGCGAATTTATTTGCTCTACCACCAGATAA -ATTCCACTTCTTCACAATAAACCTAAATATTTTTTGTGTCAAAATCTTGA -GAATTCTTAGAATTCCAGAATTTCAGCGAAAACCTAATTTCCGATTTTGT -TATTGTTCAGGGGAACAAGTGAGCCACACAGCTTCCGCTTCTGCTCCGAA -TTCGATTCCCCTGAGGCATTTTTGTTCGAAAAAAGCCTCATTTGTCATAC -TTGTCGGCAACTTTCTTCGAAGTTTTTGTTCTTGTTTCAAATAATTTTTC -TTCAATACTTGTTCCTTCCGTCCCAGCAGATGTTCTTTTGCGGGGGGGGG -GGGGGAGGGGAGAAAAAAAATAAGAGAAGAAGCAGAAACTCGACACTTTT -GTGTCCGCATTTCTCGTAAAGTTTTCAGATTTTTGAGCTTTTCAAGCTAT -AGCTGAACCACCTAGCAAATTTCGCCGCAGAGTTGATTTCTCCGGGAGTG -GGCTTTCTACTGGAGACCTCACTTTTTTTGCCTTTTACTAGAGCTTTTTA -ATTTTTTAATAATTTATTGCAGCTCTATGGATTTTCCAAAAAAAACCACC -GAAAAGCCCGAAAAATCAAAATTTTCGTTTTTAAAACCCTAAATTCCATA -CTCCGTCCAAAGAACACTCACATAAAAATGAAGAGATTTCGCAAAAAAAG -TGAAATCCAATTCAATTTATTTCAATTTTGAAGAGTGCGTTCGTCAGCTT -TTTTTTCGACAAAAAAAAAAGAAAATGTGTAGTGTAGTTTTCAACAGATT -TATTGTTTTATTAATATAATAGAAATCAAACCTTCTTTCTGCCTACCTAC -ATGGCTACCTACATGCCTACTTGCAAGTAGACCTGTCTATCTAGGTACTT -ATCTCACACCTCTTTACCTACATACCTACCTTCCTACTCACCTGCCTACT -CATGTAGACATAAGTGATCGTCAAAAAAGAAGCTGATGGATCAAAAGTTT -TTGGAAATTTATTTCGATTTTCAGGTTTTAAAAATTGCGGAAGATGTTTA -ATTTTTGACGATTAGTTTAGAATTTTTTTTAATTAAGAAAAAAAAATTAT -TATTTTATTTTTAAATTACTCCAAATTTTCTTCTGATTCCGAATATCTAT -GTGAAACTTTTTTTAATTCCTTGGTTTTATATCTAAGCTTAAAATCGCTA -ATTTCATTTGTGCACCCAAGAGATTTCGAATTTTCACGGGGTTCTGGCCT -TCCTCCTTGAATTTTTCGCGCTCCATATAATATTGACAACCGGGCAACGC -GTGGGAAAGTCGTGTACTCCACACGGACAAATACATTTAGTTTTACAACT -AAAATCGAGCCGCAACGCGACACGCAACGCGCCGTAAATCTACCCCAGAT -ATGGCCGAGCCAAAATGGCCTAGTTCGGCCAAAACTCTTCCATTTCAATT -TATGAGGGAAGCCAGAAATCCCGTGTAATTTTCGCGCCAGAGACGCCATG -TGTCGATTTACGAGATTGGTGTATATTTACAAAATGCGTAATATTTATAG -AATGCTGATTTCCGTTTTTTTTTTTTGAAAAATGTCATGTGTGCACAAAT -TAAATTCGGCGATTTTAAGCTTAAATATAAAATCAGGGAAATTTTTTAAA -TTTTTTTCACGTAGATATCCGGAATCAGGGGAAAATTTGGAGGCAATTAA -AAATGTCTCCCTGATCATTTAAATTCTTTAAAAGTACTCTTCAGAATCCT -TTTTTCCTAACCAAATAAAATAATTTCTGACGCCTTTTTTTTCTCTTTTC -AATAAGAAGCAAAAAACAGACGAACCTATTCCAATTTCCCACCACACCAA -TTCGTTCTTTCCGCATTCTTTTTCTTCCATTATTTATCTCCCTTTTCCTC -CATTCTCTGTGCTCTTATATATATCCATCATCCCATTTTCTTTCTTGTTG -TGTGGTATGCTCTTTTTCATCCATTATTCGAAAATTCTCATTTTCCAAAG -TTTTTTGTCAAATACATTTTAAAAATTTTTTAAACCAAATCTCGCCGTCC -ATCGATTTTAAAATACCTTTTTTGAGAAGTTTTCAAGAAATTTCATTATG -AAATTCGGTGTTTTCAGACAATTTTGAGTCTAATAAAACAATTTAAAATT -TTGACTACATCACCTTTAACTTGTAGAATGCCGTTTAAACACACTTATCA -CTTTTTCAGAATCCCATATGCAATGGTATCACTTGCTCCTGCTAATTCTC -ATGATCCTGGTCCTAATCCCATGTTTCTGGCAAGCTTGGCTACGATTTTC -CCGTCGATTCTCCGATTCCTATGATCTATCAAGAAATGCGCAAAAGCGTG -ATGAGATTTCAAAGGAGTTTTATGTATAGCTTACTGACAGGATTTCAAAA -AACAGTTACGGTAAGATTTTTCGAAAAATTTCACGGATTTCTGGCTTCTT -GCCGAACTAGGCCATTTTGGCTCGGCCATATCTGGGGTAGATTTACGGCG -CGTCGCGTGTCGCGTCGCGGCTCGATTTTATTTGTAAAACTAAAGGTATT -TGTCCGTGTGGAGTACACGACTTTCCCACGCGTTGTCCGGCAGGCGATTG -TCAATGGAGCGCGAAAAATTCAATGAGGAAGGCCAGAACCCCGTGCCTGT -ATAGGATATTTTGAATCTCAAAAGAATTTGAAGATTTGAGTTTTTTGAGT -TTGAGGTGGAAAAAATCGTAAAAAATTCCTTTCCGATAAATTTTCGGATG -CAAAAATGTGATCCATGCTGTAAAAAATCCAAGAAAGCCAAGAAATGTGC -GGAGCCTATTTTCCGATTTTATATTACTTTTTATTTCAAAACTTGATTCA -AAAATATCAAATTCGGAAAAAAAACCGCAACTTGGTAAAATTTCCTCGAA -AAATATTCTCCGCTTAGGCTCCGCCCCTCTCTTGGCATTTCGAATTTTTT -CGTTAAATTTTTGGAAACTGAAATTAAGTCCAAAAAGAACCAAGAAACGG -GCGGAGCCTATTATGGGATTGAAAAGACATGGTGCATCGATATGGAAACG -GCTTTTAATTTGGTTTTTTTTAAATAAGAAACTAGTAAAATTCAAGTGGC -CTAGCTTTCAACTCTTCCATAATTCCAGGGTACATTCCAACTGGTCATTG -CTCATTGCTCTCTCTTTATGCTTCTCATCACCAACGAATCCACTCAATTT -TCACTCAAGCTGTCATCTCCAGCAGTGTCTCTCAATTTAATTATGCTTGA -AATTGTTTTATAAAATGAAACAACACATACTCTGTAAAAGCAATTTATTA -TTAAAAAGTATATATATACACGTATTCCTGGGTGGGTATTGAGACTAACG -GAAGCGACATGGAGGAGAATTTGAATTTCATTAAAAAAAAAAAACAAAGA -GGTAGGTTACTGTAGCATCCAATCTGGAGGCTGCACAAAGAAGACTCCAC -CGTCAGTGGCGCAATATGTTGGACACACCTGGAACGTTGAAACATTATTT -ATTTCTTTAAAATTTTCTTTGTCTAAGCCTGAGCCTAAGCCTGAGCCTAA -GCCTAAGTCTAAGCCTAAGCCTAAGACTAAGCCTAAGCCTGAACCTAACC -CTAGGCCTAAGCCTAAGAAAAAGCCTAAGCTTGAGCCTAAGCCTAAGCCT -AAGCTAAAGCCAAAACCTAAGCCTAAGCCTAAGCCTAAACCTAAACCTAA -ACCTAAGCCCGAGCTTAAACCTGAGCCGATACCTAAGCCTAAGCCTAAGC -CTATTCCTAAGCTTAAATATAAACCTAAACCTAAGCCTAAGCCTAAGCCA -AGCGCTGAGCGTAACTTAGAGCCTAAGCTGAGCCTGAGCCTAAAACTAAG -CCTAAGCCTAAGCTTGATCTTAAGCTTAAACCTAAGCCCTGAAAATTTTT -TTTTGAACTCCACAACAAAATTTGTAGAATGTTTTTAAAAATTGGGATTC -TGAAATTCCCCGCCAAAAAGTTTAAAAACTTCACATTTTAATTTATCTGT -AAAATTTATATAAATCCCTCTTAGATTTTGAATTTCGCGGCAAAACTTGT -AGAACATTTCAAAAATTTACTTTCGCGCCAAAGATTGTCGCGCGAAATTT -ACAATTTTTCTATAAAAAATGTATTTCATAGAATTTCAAAAAATCGAAAA -TCGCGCCAAAAATTTTTAAAAATTTTTTTCAGTATTGTGACGTCATAGAC -TACAAACTAACCCCTCTATTGCCTTCCTCCCCGTGCTCTCCAATGAGTCC -TTCGGCTCCAGCGGCTCCATCATTCCCTGGGAACCCGGGCTTTCCTTTTT -TTCCTCGTGGGCCTTGTGCACCAATCGGGCCGTCGATACCAGGCATACCA -GACGGTCCTGGCGGCCCGAATTCTCCTTCCTCTCCGATCGGACCTGCTGG -TCCCGGGATGAACGGTTTCGGGGTGGCGTCCGCACCCGGGTCGCCCATTT -CTCCATCCAGTCCTGGGATTCCCTGAGGGCCTTGTAGGCCTTTTGGTCCC -ATTTTTCCATTTTCCGCGCGAAGTCCATTCTTTCCGGGTAGTCCTGGCTT -ACCAGTGTCTCCTTTCACTCCCTGAAAATTTAGTTTAGTGGTATAGGCCT -ATCAAATAGGCTTACCGTAATCCCAGTGGTTCCTTGTACTCCTCTCGGAC -ACGGATCCGCACACAAAGACTTATAATTCACAGGAGGCTCACATGGTAGG -CGCGCTGGAAGTCCAGGCGCACCTTCCGATCCTTTCGTTCCAGGAAGACC -GTCTCTTCCAGGGATCCCCGGGGGTCCTTGTGGATGACGGCACTCACATA -CTCGGGATCTTGCGGTTTGGCCGGTTTCGTGTAGGAAATCGTCGATTTCA -TCTCTTTTCTGGCGGGTTATGTTTTGGAAATCGTTGGCGACATCGGATAG -CATGCTTTTCATCTCGAGGGCGCTTTCCTGGAAATTTAAATTTGCTTGAA -ATTTTCAAACTTGTTATATTATAATTTACAAAATACTGACTGCCTTTGTA -AGTTTTTTATTACAGGAACACAAAATTCTAAGAATGCGTACTGCACACTA -TATTTGACGTGCAAGATATCTCGTAGCAAAATCTACAGTAACTCTTAAAA -TGACTACTGTAGCGCTTGTGTCGATTTACGGGCTCGATTTTCGCAACTTT -TTTTCTTTCGGATTTCCTTCGTTTCCTCGTATTGTTTTCTAACTTTTTAT -TTCAAAATTTCAATATTCTATCGATAAATAAATCATTTTAATTTATTTCG -AAAATCGAGCCCGTAAATCGACACAAGCGCTACACGAGTCATTTAAAGGA -TTACTGTAGTTTTCGCTACGAGATATTTTGCGCGTCAAACATGTTGTGCA -ATACGCATTCTCAGAATTTTGTGTTTCTCTAATACTGTGTTTTTAGGATT -TTGAATGAAAGGAAAAGCCCGAAACTTTTAAACAAATTTTTCGGTGCATT -CTGTATCAAAAAAGCTGAATAAAATTGTACAAAAAAATGCCACATTTTAT -TGAAAAATTGATAATAAAATAATTTGTTTTCAAATAATTTTTGAATTTCT -CAATTTTTTGGAATTTTTGGATTTTTTCGGGCCAGAAAGTAGGCATTCTC -ATGAACTGATGTTTTCTTCATAATAATATATTCAAAAAAACGGTCTCCCA -CAAAAAAAGGTCCGAGAGGCGAACAAGGTTGTAAAACGTTGCTATTGTTT -ATTTACAACCGCCATTATACCCCTATAGGGGTTGTAACACCACATAACAA -TTTGATAAGATGCACACAGTAGGGAGAGGGACCTAATTTAAAAATATAAG -AATTTTCTCATTAAATACAATTTTTCTCTATTTCTTTCAGGAATATCGAG -AGGAAAATCAGCGAAATTTTTGGAAATTTTTGGTTTTTTTCTAACGAAAC -AAAAAAAATTTGAAAAATTTCAAGAAATTCTGTGTATTTATCGATAAAAT -TTCAGAAATCAAGGGGGTCGTATAGAAGTTAGACGGTCGGTTTTTCGACT -TTCAGCTAACTTTATGAAATTTCATTTGTTCAGGTTTTCTGACATTTAAA -ATCAAATGGCATTAGCAGTTTTTCATGAAAAGTTTCAGAAAGTCTCAAAA -CTCCAAATTTTAGGAGGGTCGTATAGAAGTTGGACGCACTAAAAAAAAAG -GAAAAATGTGGTTCTAATTATTACGGAAACACTAAATTCTGAGAATGCGT -ATTGCACAAAATATTTGATGCGCAAAACATCTCGTAGCGAAGACTACAGT -AATTCTTTAAATGTCTACTATTGTAGCGATTGTGTCGACACGTGGTGCCA -GATTGTCTCATTTCGGCTTGATCTACGTAGATCTACAAAAAATGCGGGAG -AAGAGACGCAGACTTCTCAACTGATTTCTCATGGTTAGGAACGTGCTGAC -GTCACATGTTTTCGGGCCGAAATTTCCCGCATTTTTTGTAGATCAAACCG -TGATGGGACAGCCTGGCACTATGTGTGTCGATTTACGGGTTTGATTTTTG -AAATTGATTAAAATAATTTAGTTATCGATATTATATTGGAATTAAACAAA -AAGTGAGAAAATAAATCGAGCCCGTAAATCGACACTACAATAGTCATTTA -AAGAATTACTGTAGTTTTCGCCACGAAATATGTTTGCGCGTCAAATATAT -TGCGCAGTACGCATTCTCAGAATCCGTAATCCTCAAACTTCTCACCTGAC -AGTACTCGGCATCGTTGACAGTATTCTGAATAGCCGGTCGAAGTATTGAG -GCAAGGGGTCCTACAGAAACAATAAACGACGACATCGTGGATAGCGAGAT -AAATAGTGAAACTATGATTAACGTGGCGTATGCCGTTTCTCGAGCATTCT -CGTTCATTTTCCAGGAGAAGCCTCCAAGAGAAGCCTATGGAGGATCCAAC -GAAAAGTGAGTAAAGAAATGATGCGCTGGCGCGGAAAAACGAGAGCGATT -ATGTATGGGAGTGACCCAAAAACACGGAAAAGTAACGGATAACAAGAAGA -AGAAGGGGGCAACTTTCTCTTTCTTATCATCATCACCATCATCATTATCT -CCTTTCTCGGGATTCCGTCATGAGAATGAATCCATTTACTCGTTTTTTTT -GTGTCCATTTAAGTTTGTCTATAAATATGGCTAATTTCAACTTTAAAATC -AAATAATGAAACTAGTAATTCTACTCATCTCTCACGCAATTCCTTTCTTT -TATGTGATATATAACTTTTATTCCATATTTAAAGAAATTTCAAGTTTAGA -GTCTAACTTGAAAATTGCCAGTGATGAATATAAAATTAGAATGAAGAATA -TTTCCAGAGAAGTTGGAAGTGTAGTCTTGGAGGAGAAGAGAGGAAAGAGG -TGAGGAAAAATTACGTTTTTTTGAAGTTTTTTCTTTAATTTTCGAAGGAT -TAGGCTTAGGCTTGGGCTTAAGTTTAGGCTTAGGCTTAGGTATAGGCTTA -GGCTTAGGTTCAGGCTTAGGCTTAGGCTTAGGCTTAGGCTCAGGCTTTTG -TTCAGGCTTAGGTTTAGGCTTAGGCTTAGGCTTAAGCTTATGCTTAGGTC -AAAGTATAGGCTAAGAGGCCTAGGCTTAGACTTAGGCATAGGCTTAGGCT -TAGGCTTAGGCTTAATCTTAGGCTTAGGATTAGGCTTAGGCTTAGGCTCA -GGCTGAGGCGTAGGCTTAGACCAAGGCGTAGGCTTAGGCTTAATCTAAGG -CTTAGGTGTCGGCTTAGGCTTTAGCTTAGGCTTAGTCTTAGGCTTAGGTT -AATCTTAGGCTTAGGATTAGGCTCAGGCTTAGGCTGCGGCCTGGGTTTCG -GCTTAGGTATAGGCTTAGACTGAAGCTTAGACTTAGGTTTGGGCCTAGAA -TTAGGCTTAGGCTTAGGCTTAGGCTTGGGCGGGGCTGGGCGGATGAGAAA -AAGAGAAAAATTCCAGGAAAATCCAAATAAAATCCAGAAAAAATAATAAA -AAAAAGGAAAAAACGGGAAAAATGGGGCATTCCGCGTCTGCCGCGTCAAA -AACTTTTCCTTAAAAAACGGACAGAGAAGGACCAAAAAAGACAAAAGTTT -AACAAAAAATAGTTAAACATTTTTTTTGACGGGGTTGAGCTCACCCAGCT -GAGCTCACTCCATAATTGCACACAAAATTCTCAAAAAATTAATTTTAGAG -ACTACACAGAGGCTAGCAAATGCACATGCTCTTCAACGATTTCTCAGAAA -TGCCCGCCAGGCTCCAAAGGTGCTCCAGGAGCCGATGGTCTGGACGGGAT -CCCCGGCTCCAGAGGTCTGAATGGTATGGATGGAGAGGCTGGGCACAGTA -ATATGGATGTTTGTGAGTTGCCCAAGATCTTTTATTTTTTGTAAATTCAT -ATTCCAGTCATGTCACCAACAGGATGCATCCGTTGCCCAGCGGGTCCTCC -AGGTTCTCCTGGTGATCATGGTTCTCCTGGTGAACCAGGGTACCCGGGAC -CTTCAGGACCTCCAGGGGAACCCGGTTACGCAACAATTGGGCTTATCGGG -CCACCTGGACTCGCAGGCCAAGATGGTCTAGATGGAGCTCCTGGCGAGCC -GGGAGTAGGTGGAATGGATGCAGTGAAGATTGTTTCAGTTGATGGAAAAA -TTGGAAGAAGAGGAGAAGCGGGGAACAAAGGAAGCAAAGGATCTCGAGGA -GGAGTTGGAAAAGCTGGAGGGCCTGGGGTGGCTGGAGAAATGGGAGAAAA -AGGAGCAAGAGGTGAAGATGGAAAGCCTGGAGAGTCTGGAAAGGTGAATT -CTCAGAAGTTGATCGATGCACCAGGGCGACAAATTAAGCGAATCGGCAAA -TTGCCGATTTGCCGATTTGCCGGAAACTTTCAATTCCGGCAATTTGCCGG -TTTGCCGATTTGTCGGATATCAAATTTGCCGGAAATGTTTAGAGGGATTT -TTTAAAAGACGAAAACACTTAAAACTGTGTCTTTTTGAATTTTTTCCCGT -TTTCCTAACTAGGGAATATTGTTAATAGGGGAATTGCTAGGAAGAAAAAA -CAAACTTTAAATGACAGATGAGGTCTTTGGCTACAAAAATCATTTTTTTC -ATTATTTTCATTTTCATAGAATTTGCTCACTTTTCAAAATAGACGTAGGA -ACATTCATAGGATGCGTTTAATTTTGCCATTTGAAATTTAAATTCTGAAA -TTTCCAAAAAAAATCGGCAATTTGCCGGTTTGCAGATTTGCCGGAAATTT -TCCATTCTGGCAATTTGCCGATTTGCCGATTTGCCGATTTGCCGGAAACT -TTCAATTCCTGCAATTTGCCGGTTTGCCGATTTTCCGGAAATTTTAATTC -CGGCAATTTGCGGATTGGCCGATTTGCCGGAAATTTCAATTCTGGCAATT -TGCCGGTTTGCCGATTTGCCGGAAATTTCAATTCCGGCAATTTGCCGGTT -TGCCGATTTGCCAAAAATTTTAATTCCGGCAATTTGCCGGTTTGCCGATT -TGCCAAAAATTTTAATTCCGGCAATTTGTCGATTTGCCGATTTGCCGGAA -ATTTCAATTCCGGAAATTTGCCGATTTGCCGGAAATTTAAAATCCGGCAA -TTTTCCAAAACTGTATAATTTTTCAGCCCGGCGCACCTGGAATCCCTGGA -AAAGATGGTACATACTGCCGATGTCCCGATCGAAATCGTTACGATATTTA -TCCATATAAATCGAAAATCTGATAATAGTAATAAAGATAATAATACAATA -AATACAGACAGGAAACGAAAAGCGAGCACTGACGATTGTATGATACCCGA -AACATTAAGGAGGAGCACAAAAAACACAATGAAAAGACACAGAAAAATTG -AAATTTGAAAAACTGGTAACGAGACTAGAATCGTCATGATGATCTTGTTG -AAAAAATTGGAAAAAAATTAAGAATCTAGAAATTGATTAGGCGCAGACTT -GACACGATCTTGGGCACCGAATCCGCATTTCAGGCCAATTTTCGCATGCT -CCGCCTTGAGCCCATGACGGGCAGAGGGAGTCATGATCGATGCATCTGAA -ATGGGGAATATTATTTTTTATTTTAAGCTTCAGGTTTAGGCCTATCGACT -TTGGATCTCAGGCTCAGGTCCTTAAATTGTGTATCTCAAGCTTAGGCTCT -CTCGCTCAAGCCTTTAGATTTCAAATCTTAGCCTTAAGCTCTCCGACTGA -TTTAGGATATCAGACTAAGGGCCTAGGACTTTGGGCCTGAGGCTTAGGCT -AGTATTCAATCTCAAGCTTAGGATCTCACGCTTAAGCTCTCTGACTCAGG -CCCTTAGATTGCAAAAACCTTTGCCTTAGGCTCCCCGACTGATTTAGGAT -ATCAGACTTAGGGCCTAGGACTTCGGGCCTGAAGCTTAGGCTCTCAGATT -CAGGCCCTCAGACTTTGAGTCTAAGGCCGTTAGACTACGATTTTCAAGCT -TACAATTAGGCTTTTAGGCTTAAAATCAAAATCCAATTTAGTTTTTTAAA -AATAATCAAACATTTCTAAACCGCAATTTTTTAAAAATTACCCTAAATAT -TTCAAATTTTAGGCTTAGACTGTCAGACTTAAACCTTTAAACTTTTGGTC -TCAAATTTAGCCTACAAGTCTGTGGACCTAAGACTTTGGACCTCGAACTG -CGGCCCTTAGATCTCATGCTTGGGCTCTAATATCCTGGCCCTCTAGTCCT -AAATCTTTTGATCGTAGTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCT -TTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTT -CAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCA -GGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGG -CTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAAGCTTTCAGGGT -TTCAGGGTTTCAGGCTTTTAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTT -CAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCA -GGCTTTCAGGCTTTCAAACTTTCAGGCTTTCAGGCTTTCAGACTTTCAGG -CTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGGCT -TTCAGGCTTTCAGGCTTTCAAGCTTTCAGGCTTTCAGGCTTTCAGGCTTT -CAGGCTTTCAGGCTTTCAGGCTTTCAAACTTTCAGGCTTTCAAACTTTCA -GGCTTTCAGGCTTTCAGACTTTCAGGCTTTCAGGCTTTCAGGCTTTCAGG -CTTTCAGACCACAACTAGACCGGCAACACACGTGTTGTCTAATTACTCAC -CTCTTTGCCGGCGCTCTATGCATATTTGATGGTAACTCGATTGTCTTTGA -AGCTATCACTTTCACAGCTTCCCAAGTTTCCCGAGCTGTTGGAATGATCT -GAAACATCAAAAATCATCATCAAAAATCGTGGTGAGACCCAAAATTACCT -GATTCTCAGCCAGCAAGAATCCATCCCAAACTTGCTCTTCGGGTCTCAAC -TCGAACAGGAATGAGTACTTGACGTGGGCTTTTCCCTTTGCCCAATCTTC -TGAGCCACCGGATGCGGGGTCTGGAAATATTTTGAAATTTTATACATAGG -AGCCTTAAGAAATAAGAGCTTACAAAGTGTATCTGCACCGGTTCCAACTT -TGTACTGCGTGTTGTAGACACTATTCAAAGCCTGAGCTGCTGAGAGGGCA -GTGGATCTCTGAAATGTTTAGAAAATATGACCATGACTTGGGCAAACAAT -TCCCGCATTTTTGTAGATCACACCGTAATGGGATAGCAAAACACGTGGTG -CCAGAGTGTCGCATTTCGTTTTGATCTACGTAGATCTACAAAAAATGCGG -GAACTGATTTCTCATGGTTAAGAACGTGCTGACGACAAATTTTTTTGAGC -GAAAAATTCCCGCATTTTTTTGTAGATCAAACCGTAATGGGACAGCCAGG -TACCAAGTAAAAAATTTACTCACCAAATCATTCAAATCATTTGAATAAGT -TCTGACTTGATGGCCGAACGGATACATCAAAATTTGAGAGTACGAGTGGA -AGGTGAGGAATGTCGAAATACGGTGTCGCTGCACGAAATCTCTAACCGCC -GCAGTCTCGGGCTCCGAGAAGGCGTAGGCTCCCTGATAGATTTCCGAGCA -AGGATCAGTTGATGAGCCGACTTGTCCGAAGAACCAGTCAAAGTTTCGAT -TGAGGTCGACACCTTGACAGCAGGTTGTTGTGGGAGGTTGGAAGAGTCCT -GAAAGGTTTTTATTTTTGAGATTTTTAACTTTCACGGAGAATTGCCAAAA -TCTTAGTTTTCATAGCCTGTGTGACATTATTTGGGCGTAACTAAAGTCCA -GAAAGCTTATGCCTTGTGCTGATGAATTTTTGCAAAAATTGTGCCCAGTT -TTGCCACTTTTTAGTGGTTTTTGATGGGTTAAACCTAAATTTTCTGAATT -CAAGTTTTTATTTTTTCCAAATGTTTTTTCAGCCATCGAATGGCTGTCCT -TTTTTTCGGGCAAAAAAATAATTTTTCTGAAACTATTTGAAACAATTATA -TTCTAAAAAAAAGGCAATTTTTTAAATTTTTTCTAGTAAATTTTGAGTCC -TCTAGCTACAAAATAAACCATTTTAGATGAGTTTCAAAAATGTGCATTTC -TACAAAAATTGCCCAATTTTTGCCACTTTTTGGTGGTTTTTGATGGGTTA -AACCTAGATTTTCTGAATTCTGCGTATATAAATTACACGTTTTCAACAAA -TTTAGACATTTTTTTTATTTTTGCCCAATTTTTTTCCAGCCATCTAATGA -ATATCCTTGTTTTTAAGCAAAAAAAAATTTCTGAAACACAATTATTATGA -TCCAAAACAGGGGTGTGCGGCAAATCTCAAAATTTGCCGAGCACGGCGAA -TTTGGCAAACGGCAAATTTGGCAAATTCAGCAAATTTGCTGAGCTTTACA -AACTCCGCAAAAATTTGATACTTTTTGAAGCACCTAAACTACTAATTTCT -GAACAAAAGTTCAAAATAACTTGATTTTGTGCCATTTTTCTAAATTTTTG -GAAATCAATAATTTTGTCAATAATTTTGGTTAAAATTGTATTGTCAAATT -TTTGACGCGGGCGGCAAATTTCAAAAATTTCTGAGCTCGGCAAACGGCAA -ATTCGGCAAATTTGTCAAATTTGCCGCACATTTTTTTTTGGTTCAAAACA -TAATAAAACACTCCAAAACATTTTAGATTTTTCATAATTTCCGGTCGAAG -TTTTTGCAAATTGCTAAAATTTTGAAAAATATGAGTATTTGAGGAAATCC -AAAGCAATGCCGCATGTTCCGACCCCTACAATGTTTTAATACAAATGATT -AAAACAAAATTACAGTAGACAAAATGTAGAAAAAAAATTATTTTTGGTCG -ACTTCCAAAATTATGAGTGGCAAAAACTTTGTAATTGTCACTTTTTGACA -GTAAATAAAAAATTTTAAGAATTTTTTTGAAAAGTTTTATTATGATATTC -GGTCATTTTGGGACCAAATGAGTGGTTTTTAACAATTCCGGCACTGGCGC -TAGTCCAGCAATTGCCGTAATCTTAGTTTTCATAGCCGACATTATGCGGG -CCTAACTGAAGCCCAGAAAGCTTGTTTACAAAAATGAGCAAGCAGAAAAA -GATCAATCTCCCCAACAAACCTGTTGCCTGTTGAATACACTTTGGTGGTG -ATCGATTCTTTCTCCACAGTCTGATCTCCGGATCATTGCTACTTCTACTG -TACTCATAACCATCCGGATTCAGCAGTGGAACAATATACCATTCGAGTTG -ATCTACGAATTGCTTGATTTGAACATCTTTGTCGTACTGGGTGACCAGTT -GGTGAATGAAATAGAGTACTGTCGATGGTGACACCCATTCACGAGCATGG -ATTCCTCCGTCCACCCAGATGCCACGTTTCGTACCTCCGTTACGCTTGTT -GGTGATCTGGAATTGAGGAAAATTGGGGTGAGATGGGATCACTAAATTCT -GAATCTAGTTTCTGTGCTACTGTGTGTTACGTTTTTTGCGCTCCATTGGC -AATCGCCTGCCCATCAAAAACCGTCAAAAAGTGGCAAAACTGGGCAATTT -TTGTAAAAATTCACAATTTTGAAACTCCTCTAAAATGGTTTAGTTCGTAG -CTAGAGGACTTAAAACTGATTTTTGAACCCTAAAAATTGTCTAAATTTGT -TGAAAACGGGTAATTCTTGTATGCTGAATTCAGAAAATCTAGGTTTAACC -CATCAAAAACCATCAAAAAGTGGCAAAAGTGGGCAATTTTTGTAAAAATT -CACAATTTTGAAACTCCTCTAAAATGGGCAATTTTGTAGCTAGAGGACTC -AAAATTAACTTCCAAACTCTAAAGAATTGTCCTTTTTCAGAATATAGTGG -TTTCAATAATTTTCGAACAGAATTTTTTTTGCCCAAAAAAGGATGGCTGA -AAAAAATTTTGGCCGAAAAAAAAACAGTTTTACACTGAAAGCCAAACCGC -GACGCGACACGCAAAGCTCGGTAAATCGACCCCAGCCGTGGCCGAGTTCA -AATAGCCAAATTCGGCAAACTCTCACATTTCAAGCTATGTATTTCAAGCC -AGAAGCGCGTGCGATTTCTCAAAAACCGGCAGCTCAGTTGCAGGAGGACT -TTACGAAAATTTTGAAAATTCCAAGGTATAATTGGTAGGTTTTTCGGCAT -GTTGCATGGTACTTAAAATGTTTTTTTAACTTTCAAAAGTGGCTTTTATT -TTGGTTCTTATTGCAAGCCTAATAATAAAAATACTATCCACGTTTTAAAT -GCTTCCATGGTAGGCAGGCGCGGTTTCAGGGCCGACATGGAAGCCCTACA -TGTCACGGATTTCTGGCTTTCCTCAGAAATTGAAATGGACTAGTTTTTGC -CGAACTAGGCCAGGCCATATCTGGGGTAGATTTACGGCGCGTTGCATGTC -GCGTCGCGGCTCGATTTTAGTTGAACAACTAAATGCATTTGTCCGAGTGG -AGTACACGACTTTCCCACGCGGGCGATTGCCAATGGAGCGCGAAAAATTC -AATGAGGAGGGCCAGAATCCCGTGATCGTCCGAAGCAAAGTTAAAACAAC -AAACCTTAATCAACGGGATCTGCCGTCCTTCGTGAGTCGTTCCGATTGGC -TGCACAGACACAAGCTCCGGATAAGTGATGGCTAATGAGTTCAGGTAGTT -GATAACATCAGCAAACGAGTGATATTGTGCAAGGTTAAATTGAACCTGCA -ATAAGTTATCATTGAACTATGTATCATTGAACGTGGTGTCAGAGTGCCTC -ATTTTGGATTGATCTACGCTGATCTACAAAAAATGCGGGAGAAGAGACTG -ATTTCGAATGGTTAAAAACGTGCTGACGTCACATTCTTTTGGGCTAAAAA -TTCCCGCATTTTTTGTAGATCAAACCCTAATGTGACAGCCTGACACCACA -TGTATTCACTCACTTTCTGCTCCCTCCAATCATGCAGTCGAACTTGTTTC -CGAAGCTTATCCCGCTTCTCCTTCTGCTCGACAATCACTCTGAAATCGAT -GAAAAGATTGTAAGTTGGGCTTAATAGTGTCCCCCCACGACACCCATCAC -GCGTAACGAGCCGTGACGCGTTTGAATAAAGAGGGTATTTGGACTTGTGA -TCCCCGCGAAAACCTGTATCGCACGTGATGCCAGGGTGTCTCATCACGGG -TTGATCTACAAAAAATGCGGGAATTTTTTGCCCAAAAATGTGACGTCAGC -ACGTTCTTAACCATGCCGAATCAGTTCCCGCATTTTTTGTAGATCTACGT -AGATCAAGCCGAAATGACACACTCTAACACCACGTGGTATCGCCGAAAAA -CTCACTTCTGAACGTCATCAATCATAACGGAATGCTTAATCGAATGATCA -TCGAGCTCTTTCATAAACTGCTGAGTTTTCTCATCGGATATCATCACATG -AACCTCCTTGCCAGCTTCCGACGGGGATTTCCAAAAATCTAGCTGAAAAT -TTTAGTGTGTCTGAAGCACCCTTATCAGTTCATATTATATTTCAAAATTT -TTCTCTAACCCCTCAAAACCGTACTCTACATCGCCGTTCTGGCCGAGTGG -TCTAAGGCGCTGCGTTCAGGTCGCAGTCCTCTCCGGAGGGCGCAGGTTCG -AATCCTGCGGACGGCAGATTTCTTTTTTGAATACTACTCTTCAAACAATG -CATGATGAAGAAGAAGAAGAAAAAGAGAAGAACGTATTGGCTTTTCCTTT -TACACTTTTGAAATCCCTAGGAACAGGTTATAAACAGCGATGTAACATGA -AAAGCAGCAGTGAGAGTGATCGAAAACGAGCTGATTATGATTTGTTCAAT -TATATGACACCGCTATTGTAATGGTTGGTTTGTTGCGTGGAACATCATAC -CTTTACATCGTTTAAATACAAATTATGAAGAATGTCTACTTGATCTTGGG -TCGTCGGCTGCACCCTCCATACTGTGAATTTTCTGAAAAATCGAGAGTTT -ACCGGCTTTTGGGGGAGATTTTACCATTGACTTTTGACTTTTTGGAGAGA -TCTAAATCTAGTAGATCATGCGGCGGTTAGGTCTATTTGAAATAAAAAAT -AATTGATCTAGATATGAAACATGGAGATCTAAGGGTTTTGGTAAAGTTGA -GTAGAATTTTTAATTATTTTTTTGAAAATTTGTTTGCAACATTTTACAAA -AAAAGACGAATAAATATTGACCAAAAAAATTTTTTTCAATAAAAAATGTT -TAAAAATTAACCACCTTTTAGCTTTTAAAGGTGGAGTAGCGCCAGTGTGG -ATTTTGTCTAAATACACTTATTATGAACCAAAATGGTCAAATATCATAAT -AAAACACTTCAAAAAATTTCTTTATTTCAGATTTTTCATAATTTCTGGCC -AAACTTTTTGCAAATTTCCAAAATTTTGAATGTCGCAGTTTCCGACCCCT -ACAATGTTTTAATACAAATAATTGAAACAAAATTACAGAATAAAAAATGT -AGAAAAAAAATTTTTTTTTTGGTCGACTTCCAAAATTATGAGTGGCAAAA -ACTTTGTAATTGTCACTTTTTGACAGTAAATAAAAAATTTTAAGAATTTT -TTTGAAAAGTTTTATTATGATATTCGGTCATTTTGGGACCAAATGAGTGG -TTTTTAACAATTTTCCCACTGGCGCTACTCCCCGTTTAAAGTTCTATGCT -TTTTAAAACTCACGTTTTTTTTTATGAAGTCTATTTTAAAAAATCTGGAC -TCTCAGTGGACAGTTCAGCATTTTTCGAAATTTCAGAAATTTAAAACATA -AGTCGGAAGTGGTCCTAAAACTTCAAAAAAATTCTCACAATATGTTTTTT -TGATGAAAACAAACTTATATAGTGCCAAAATGACCAAAATTTTTTTAAAA -ATAATATTGAAAAATCTTTAAAAAATCTCTTCTGGTTTTTATTTATTTTT -AAAAAATTCATATTGAAATATTATAGTGCTTTAGATTGCTCGGAAAAAAT -TCCACAAATTTTTTAATTTTTCATAAGTTTTATAATGATATTTGGTCATT -TTAGCTCTCTCGGGTAATATTGCAAACCCACGTGGTGCCAGGATTTCCCA -TTAAGGTTTGATCTACAAAAAATGCGGGACTTTTGCTTAAAAAGATGTGA -CGTCAGCTCATTTTTAACCATGCGAAATCAGTTGAAAACTCTGCCGCATT -TTTTGTAGATCTACGTAGATCAAACCGAAATGAGACATTCTGACACCGTG -TCCACCTTCAAAGTTAGTAATTGCATGAACAAAAAATTCTGAGAATGCGT -ATTGCACAACATATTTGACGCGCAAAATATCTCGTTGCGAAAACTACAGT -AATTCTTTAAATTACTACTGTAGGTCGATTTGCAGGCTGGATTTTTTGAA -AAAAAAATGAATTAAAATTTAATGGAATATTTCTATCTCTATGTATTAGA -AAATAAGGCCCGTAATGAGACGAGCGGGCCTGCCTACCTGCCTGACTATA -GAAGGCCGCCTTAAAATCAGGCAGGTAGGTTTTAACGCCTAGCCTACAAT -AAACATAAAGAGAAATGCCTAAAATAACAATAACTTTCCATTATCCTTTC -TTATCGTCCTCCCCGGCGATCGCCTAAGATCATAGATAACAACTAGCCGC -TTTCGGTCATGCAATTATTATATTATAATTGATGGATGGATGGGGGATAA -TCCAGAGAAAGGGGAAAAAGAAACTTAGAATCCTAGAAAACAGGTTCCCC -TGACTCAAACAAAAAAACCTACTTTTGATGTGCCAACACGGATGGCACGA -CGAGACCGATGAGGACGATGATGTTCATCATCATCATCTTCATCGTAGTA -AAACTTGGGGGGTGATGAGGGGCAAAAGGATGCCCTCCGCGCGTCAAGTG -TTCGTTGAACAATCCGACGCAGACGGTTAAACAAAGCAACACAGTGGTGT -CTCCGCCCAACTTCCGCGCGTCCGCCGCCGCCCTGTGTACTGTCTTGTCC -TATCCTATCTCTCTTTTCTCCACCCCGGCTTGTGTGTGAGATTCTTCTCA -TTACTAGAAGAAGGTCTCTAGTAGAAGAAGAAGAAGAAGAAGAAGACGAC -GATGGAGAAGAAGCTGAAGGCACGACGCACTGTTTGCGCAACGATGTTTG -TTTTTGCGCGCGCGAGCGCCGCATTTAAAACGTGTAAATCGGTTTCAAAA -GCGCGCGCGCGCGGTCTTCTTTCTCCGCTTGCGCGCACGCATTGACAAAA -AACCGAAAGGTGCAAAAGTGAAGAGGCCAACTACTTTCGTCCTCTTTGAG -CACCTAATTGTGGAAAGCTTTTGCTCTGATGTGAAATGAAGTTGGGTAAG -CTATTCCTGTCTGGGTGATGTTTTCAACTTCCGGGGGCATTGTTGGGAAA -GTGAGGACCAAAATAGGCCATAAAAAATGAAGATATACATGCTTAGGCTT -AGGCTTAGGCTAGGCTTAGGCTCAGATTCAGGCTTAGGCTTAGGCTTAGG -CTTAGGCTTGGAATTAGGCTTGGCGTCAGTGGCGAGCGTGAGCTCGCCAC -TGACGCTATTTAAGCTTGGGTTTATAGCGTTTTTTTAATTTTTCAAAGGG -TTCCCGTCTGCCGATCAAAGCGAAATTTAACAGAGAGTCGTATAGGCCGC -CAAGAAGCTGAAGTTTCAAATTGATTTCATTAAAACTCGCTTAGGCTTAG -GCTTAGGCTTAGGCTTAGGCTTACGTTTTAGCCATATGCTAGCTGATCCG -GAACATATTTTTAAAAATTGCAATATTTGACCAAAAGCTGTATTTTTCAA -AAATTCAAAAGTACGGTGAAATCATATGAAGTGCTTCTTTTTCTTTCATT -AAACTGTTCAGAATTGTCATTTTTACTAGAAAATACCAAAAAAATATGCT -AGCTTGACCGGAACATATTTTAAAAAATTAGAATTTTTGACCAAAAGCTG -TTTTTTCAAAAATTGAAAAGTACTGGAAAATCATATGAAGTGCTTCTTTT -TTCTTTCGTAAAACTGTTCAGAATTGTCATTTATACCAGAATATATTAAA -CAAAGTATGCTACCTAATCCGGAACATTTGTTTCCAAAATATTTTAAAAA -AAAGATTTAGCGGCTCTGACTAAATTGTTTGTTCGTTTTTTCTGGACCCT -TTTTTCCCCTTTTTTTGGGTGAAAAATTTTGTAAAAAATTTGACCGAGGT -GTAGAGTTGAATTCATCAATTTTTGACATTTTTTGAGTACGGGCACATGA -AAACGAAATTTCCAAAAACGCTTATTTCTCGGGATATAGTTCAATTCTAC -CAAATTTTTCTTTGCAAATCTGCTAATTCTACAAATCTACTAACCGAGGT -GTAGAGTTGAACTCATTTCCAAAAAGAAGTAGCAGTCCTGAAAATGTTTT -AGTGAGTCTTCTCATTACTCTAGAGCCCGAGCCAGTAAAATTGCTCCAGA -AGTAGTAATTTATAAATTTTTGATGATTTTATGCTGTCCAATGATAGAGA -AATTGTTAAAATTTTCAGATCAAATTGGAATTTTCACAGCCAAATATTTT -GGAAAATTTTCCACAAAAAATTGGGCGGAAAATTGGAATATTAATTCGAT -TTAATTCGATTTGGAGCAGTGTATAAATTCAAAGTTTCCTCCCTTAACAG -CCATTCAAATGCACTTTTTTCTTCGTTTAGTTTTTCTTATATATGGCCTC -CAGGCTCTCACCAAGTTCCGTTTTACCGGAGAGTTTAAGTGCAAACATAA -ATTCCTGAGATCCCATGTTGTAGTTTATGAAGACGATGAGGTGTTGTGAG -TAGAAATGAAAAATGAGAAATGTTGTATTTAATATTATAAATTGTTTCAG -CGACAACGTTATCAGTAAACACCATTACGTGTTCCATACAAATGCACCAC -ATATGTATCTCGTTGAGGCTGAAGATACCAATGACGGATTGCCAAAGTTT -TTGGATGTATTACTTTTTAATTTCCCGCTTTTTCTCTAGTATTTCTCAGA -AAATTTGAATTTCCCGCCAAAATTTTTTATCAGAAAATTTGAATTTCCCA -CCAAAATTTTTTATCAGAAGATTTGAATTTCCCACCAAAATTTTTTCTCA -GAAAATTTGAATTTCCCACCAAAATTTTTTCTCAGAAAACTTGAAATTCC -CGCCAAAAACTTTTTCTCAGAATTTTGAAATTCCCGCTAAAAAATGTTTC -TCAGAAAATTTGAAATTCCCGCTAAAAAATTTTTCTCAGAAAATTAAAAA -TCCCCGCCAAAACTTTTTCTCAGAGAATTTGAATTTGCCGCCAAAAAATT -GTTTTCTCATAAAATCTGAATTTCCCACCAAAATTTTTTCTCAGAAAATT -TGAAATTCCCGCTAAAAAATTTTTCTCAGAAAATTTGAATTTCCCGCCAA -AAAATTGTTTTCTCATAAAATCTGAATTTCCCACCAAAATTTTTTCTCAG -AAAATTTGAAATTCCCGCCAAAAAGTGAACATTCTAGGAGTTTGGCAGTT -TACCAAAACCTTGACTGACCATTTTGGAAAATCGAATAACCTCTTAAATA -AAAACTCTAACTTGTAAAAATTTAAAAATTTAAATATATAGCTTTGCAGT -CCTATTTCGAGTTATACATGATCATCGTCCACGATTGCACGGATAATGGG -AAATACAAGTTGTTGACAGTTGACTTGGGATCTTATTATATCAAGGATGG -GTAGGTACTTTCTACAGGGCAGGCTAGGGCTTCCATGGGAAGCAGGAGCG -GTTTGCCGGCTTCTCGCCTGATTCCTGCACTTTGGCAAAAAGTCAAAGCC -TCGATGCTCACACATAGGGCTGGCATATTGGACGTCCGGTTTTTTGAAAT -TTTAAATTTTTCCGAGAGGTAGTTTTTTTTGTACGGCGGCCGACAATTTC -CGAGTTTGGCCACTCATGATAAAATTATATGATTAAGTATAGTGAGTGGC -CAAACTCGGAAGTTGTCGGCCGCCGTAAAAAAAACTACCTCTCGGAAAAT -TTTAACATTTCAAAAAACCGGACGACCGGACGCCCAATATGTCAGCCCTA -CTCACACCAAATAGTACTATAAGCGGTTTTTTTTGCCGCAGCCGACACTT -TACGGTTTCCACGCCGCACTGTACAGAAGGCGCGGCCCGAGGCAGTTGTC -AGGCGTTTTGGCGCCTATATGCAAGCTCTAGGGCAGGCATTTCTGTTTTC -AAAAAAATGAATATTTTCAGGCAGTACGATGAAACACGCAACATTGATCT -GAACAATGCCGGTGAATGGACAAACGAAGTAATCGGAACAAAGGCGATGG -TGATGTCCAAGATATTTATTTTCAATGTTTGATAAAATTGTTCATCAATA -TTCGAGCCTACCTGCCTACCTGCCTACAAGGTAGCCTACATATATTATTT -TTCCTAATTAACAAAAATATAATTAAAACATGATTAAGATTTTCTGAAAA -TGAGCAAAAAGTGTTTTTAACTTCCACTTTTTGCCCAACAGGTTTAAGAT -AGGCATGTGACAAAGCCTACATTCAAGGCAACCTACGCCTGCCTCGGTAC -ATGGTGCATCGACCAATATTTACCTCTTAGCTTCGAGAGCTTATATCTCG -GTTACATTTTGCTCTATCAAAAAATGGCCAACTGAAAAACTGTTCTCCAA -TGCTTTTTCTACAATTTTGTGGTTAAAATTTTTTTAATATCTTGAAAACT -AGCGAAAATATAAGCCACCAAGTCGCGCGCCGCCCCCCGAGAAAGCAATT -CCAACCCAAGTTTATTGCAATAAAAACCAGTAGAAACGAAAGAAATGAGG -TTGATTTTGGAGACTTTTCAGGTGACACGGGGAGCTTTTACATTGTTGGC -ATTATTCAGATTCGATTGAGAAGGAGAAGTCGTGGGGAGGCTGAAAAATG -TTCTAAAGTTGTTGAAAAAAAAAACAAATCTGCATTTTTTAAAAACCTGA -TTCTTAGACTTCCATCCATTGCCATAAGTGCACAGAACAGTCTGTTGCTC -TTGCTCTTTGTGCTCCGTGTCCTCGGAGCCATCATCAACCTTGTCTGGAA -CTGTCGGTGTTGGCTCAGTTGACGGAGCAAATGAGGAGGATGGTGTCGCA -GATTCTTCAGTTGGTTTGGGAGATGATGGCGGAGCTGGCTGAGGTGGAAT -TGGAGATGCTCTTTTTTTTGGGGTTACTGCAGACTGTTTGCTCTTCAAAC -TCTTGCTCCGCGATTTTGTGCTCTTTTTTGTTTTCTTCTTTGGCTGCTTT -TGTTGCTTCTTGCTTTTTATCTGAAAATTAGAGTTTCTAGGCAATCAAGC -GATTTTCTAGGCCACCAGACATATATTTAGCCATGTCGGAATTTTCTAGG -CCATCACAGACAGTTCTAGGCCATATAGAAATTTTCCTAGGCCACCTAAA -ACTTTTCTAGGCCACCAACAGTTTTCTATGACCGCGATTTTTGCTAGGCC -ACCAACAAAAGCAAATAACACATTTTCTAGGCCACCAACAGAATTTCAAA -TTTTTCTAGGCCTTTAACTCACATATTTCACAATGGAAGCGGCGGCGAAC -ACGATGAAGGCTACAATGAGAATGCCAATAATTATGAATATCACTACTTT -GGTCCATGGCGTCGATGATGCTGCAAAAATGGAGGTACAAATATGCAAAC -GCGCTCTACCGCACTACCAGTGCGGTAGAGCGCGTTTCAAACTAACAGCC -AGAAGTTGGCGCCGGTGGTCGCTGAGTGGAGGTGGACATTATCAGGAAAT -GAATGAGAAAATGGAGAAATTTGGGAAAATTGATTAGAGACGTGGGATTT -TTTTTTAATTTTTATAATATTTTTGAGTAGGGGGAAGGGGTGAGGGTCAC -GGAAAATACCAAAAATTTGTGATTTTTCCATTAAATTGGAGCAAAATTGA -CACCATACCTCGTGGCCTAGAAAACTGCAGAATTTCTAGGCCACACACGT -TACGTCATAATTTACCTGTTAAACCAGGTAACCAACAATCAAATCAAGAG -TAATTAATCATCTCCTATCTTCTTTTATTTCTCCGTTCCTACTCCCAATG -TTTTTTTTTTGTAATTTGTGATCACAAATTGTTGCATTTTGTAGTACGCC -ATGTACGTCTGTGTACTACTTTTTTCTGAAAAGAATACAAAAATGTTCGC -TTTCAGGAAAAAATAGTGAGAGGTAGAAGAAAATTACGGGGACTAGAAAT -ATGTAAAAGTTCGACAACGTAGGCAGGTAGGCAGGTAGGCAAGTAGGCAG -TTAGGCAGGTAGGCAGGTAGGTAGGCAGGATAGTAGGCTGCCAGGCATAA -TAAAGATGCAGGCACGTAGGCGGATGTTGCAGGCATGAGAAGTCACGGGG -GTAGGCAGGCATGTGGGTATGTAAGCAGATGTAGGTATGTTGCAGTCATG -ATGAAGGCACGTGGGTAGGTAGGTAACTAGTTAGGCTGGTAGGGAGGTAG -ACAGGTAGGCAGGCAGGCAGACGCGTAGGAAGAGTTAGCCAGGATGCAGG -CACGTAGGCAGATGTAGGTATGTTGCAGGCATGCTGAAGTCACGTGGGTA -GGCAGATTGGTAGATGTGTACGCAGAGTAGGTATGTTGCGGGTATTATGA -AGGCACGTGAGTAGGTAAGCAGGCAGGTAGGTAGGCAGGCAGGTAGGTAG -ACATGTAAATATGCAGGCATATACGTAGGGAGAACAAGCCATAATTCAGG -CACGTAGGCAGATTTAGGTATGTTGTAGGCATGATGACGTAACGTGGGTA -GGCAGATAGGCAGGTAGGCAGGCTCGTAAGCTGGCAGGCATAATAAAGAC -ACATAAGCAGGCATGTAAATCTGCAGGCAGATACGTAGGAAGAGCAAGCC -AGGATGCAGGCACGTAGGCAGATGTAGGTATGTTACAGGCATGATGAAGG -CACGTGGGTAGGCAGGTAGGTAGGCAGCCAGGCAGGATCGGAGGTTGGTA -AGCATAAAAAAGACAGGTAGGCGGGTAGGCAAGCATGTAAATGTGCAGGC -AGATACGTAGAAAGAGCAAGCCAGGATGCAGGCACGTAGGCAGATGTAGG -CATGTTGCAGGCATGATGAAGGCACGTGAGTAGGTATGCAGGGAGGTAGG -TAGGCAGGCATGCAGGCACATAGGCAGATGTAGGTATGATTCAGGTAGGC -AGGCAGGTAGGAAGACTGAATGCAGGCGTGTTGCTAGGCAATAGCGCCCT -TTCCTTGTTATGACAATCTCGATAATCTAATAATAAGCTATTCAATCATA -TCACTGCGCCGATACACAAACTACCTGTTTTTTTGAGTATGCGTCTCGTC -CCGTCTGCCCAAAAGCTTCTACAGAGTGATTAGACGGTATAAGGGGGAGA -GATAGGATAGATTTCAATCATTCTCACTTTTTTCGTCCCTTTCTCTGTCT -TCCTTCTCCCTTTTTTTACAGGGCGCTTTTCCCTTTTTCGTGTGTGTGAA -GAGAGAGAGTGCATACAGGTGTAGAGGACGCCCAGACATCGAGACGGAAC -AGGATTCTTCATCGTCTTCAGCTATTTGGAAGAAGGAGTAGAAGGTGACG -GTGTGTGTTTGGAGACGTGTAATCATCATGTCTTATAACACTTCCTTGCT -CATTTTTCTCTGCTTCTCTGCCGTCTCTCTATCCACACAGTCTTTCGCCG -TTTATCGATTATTACCCAAATCACAGACGGATTTTCAAGCTATACAGAGG -TTATACAAAAATGCGACGGATCATGATGTGAGTTTTGTTTTCGCATTTTT -GAGCAGATACAATTTCTAGGCCACGAAAAATTTTTCTAGGCCGTTGAAAA -AATCACTAAGTTTTCTAGGTCACAATTTTGAGCAAGTTCTAGGTTATTAG -ATTATTACGCCATGGTGCATTTTTCTAGGCCATCAGGAAATTTTGCAGGC -CACCATGAGTTTTTGATGCAGTTGAACTAAGTTAGTGGCCTAGAAAAACC -TTTGTTAGCCTAGAAATATTTTCGCCGGCCTAAACACATTTTTGGTGGCC -TAGAAACACTAACTTTTGGTAGCCTAAAAATTTTCTGTGACCTGGAAACA -TTGTTGGTGGCCTGAAAACATTTTTGGAGGCTTAGAAATATTCTTGGCAA -TTTGAAAACATTTTTGGTGGCCTAGAAATATTTCTGATGGCCTAGAATGT -TTTTGTGGTCTATAAATAATTTTGGCGGCCTAAAAAAATTTGGAATGGCT -TAGCAAAATTTTTTTGGTGGTCTACAGCCATTTTTAACGACCAAGAAACA -TTTTTGGTGGCCTGAAAACATTTTTGGTGGCCTAGAAACATTCTTGGTGG -CCTGAAAAAACATTTTCGGTGGCCTAGAACCATTTTTGGAGACCTGGAAA -TGTTTTGGTGGCCTAGAATATTTTTGGTGGCCTAGAATATTTTTGTTGGT -CTAGAAATATTTCTGATGGTCTAGAATGTTTTTGTGGTCTATAAATAATT -TTGGTGGCCTAGAAATATTCTTGGAGACCTGATAACATTTTTGGTGACCT -ATAAATATTTTTGACAGCCTAAAAATTTTCGGTGGCCTAGAAATATTTCT -GATGGCCTATAATGTTTTTGTGGTCTATAAATATTTTTAATGACCTAGAA -ACATTTTTGGTGGCCTTGAAACATTCTTGGTGGCCTAGAAATGTTTTTGG -TTTCCTAGAAACATTCTTGGAGACCTGAAAACATTTTTGGTGGCCTAGAG -ACATTTTTAATGGCCTAGACACATTTTTGGTGGCCTAGAAATGTTGCTGA -TGGCCTATAATGTTTTTGTGGTCTATAAGTATTTTCGGTGGCCTAAAATA -TTTTTGGTGACCTAAAACATTTTTGGAGACCTGGAAATGTTTTGATGGCC -TAGAAATATTTGTGCTGTGCTGAAACATTGTCGGTGGCCTAGAAATATTC -TTGGAGACCTGAAAACATTTTTGGTGGCCTAGAAAAATTTTTAGTGACCT -AAAAACTTTGGGAATTACCTGGAACCAATTTTGGCGACCTAGAAAAATTT -TCCGTGGCCTAAAAATTCCCAATAATTAACAAATTTTTAGTTAAACTTCT -GGAAAACGGGCAAGGACAAGCACGGGTTTTGGGATGTGATGGTGGATATG -AAGAATTCGAAATATTTTTTGGACTTTCTACAAGTAAATGATATTTCTTA -CATAAAGACGATTGATGACGTGGAGGGGTGAGCTTTTTCTGAAATTTTGA -AAATTACATAAAGAATATGTGCTCTATTGATAAACTGTTAGGATCACCGT -AAATCGACAAGAATCTCCGTAAATCCACAACGGCCCCATCTCAAAAATTC -CTAGGCCACACGTGTGACGTCATTTTTCTTCCAGATTAATAACAAAGCAC -GAGAACAACAAGACCCTCTCGAACATGTTCCCCCGTCTGTGGGATGACTC -CTCGTCTGCTCACTATGACTTCCACACCTATGGATCCTATCAGCGAATGA -CTGATTGGATGAAGCAGCTGGTGGTGAAGTATCCAAAGATGGTTCAGTAT -ATATCGATTGGAAAAACTACGGAGGGCAGGAATATCGATGGAGTTGAGGT -AGGTCTAGAAGGCTGCCTTAGGTCTAGGTCTAAGTCTAGGTTTAGGTCTA -GGTCTAAGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGG -TCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTC -TAGGTCTAGGTCTAGGTCTAGGTTTAGGTCTAGGTCTAGGTCTAGGTCTA -GGTCTAGGTCTAGGTCTAGGTCTAGGTCTATGTCTAGGTCTAGGTCTAGG -TCTAGGTCTAGGTCTAGGTCTAGGTCTAGATCTAGGTCTAGGTCTAGGTC -TAGGTCTAGGTCTAGGTCTATGTCTAGGTCTAGGTCTAGGTCTAGGTCTA -GGTCTAGGCCGATTTCGATTTCTATGTGTATGGCCTATAGTGATTTTCAG -ATCGGCGGAGACTCCCGCACCAAAAAGATTTTCTGGATCGATGGAGGTAT -TCATGCTCGAGAATGGGCGGCCCCGCACACGGCTCTCTTTTTCATCCATC -AGGTATGTGATCCCGCCCCGTCAGAAAAAAGTGTGTTCCGATTAGTTCCG -CTTGGATTACACAAATGTTGGCAGAGACAGAAAAAGGGAAAACTTGATAA -CAAATGGGTTGGAAAAAACGTAATCGGATGATGCAATCGCGCTCTATTGC -ACTACCTCAACAAAACATTTTTTTGCAGCTTACCTCCCGCGCAAACGAGC -CCGGAATCAAGAAATTGCTGAACGAGATCACATTTGTAGTGGTTCCCTGC -TTGAATCCAGATGGCTATGAGTTCACGAGATCCTCCACAAATCCACATGT -AGGTTGGGGTAAGGTTACTGTACCCCCCCCCCCCCCCCTCCCCAACTCAA -AGGCGCAAGCACTCCCAAATTTTTTGCAGGTTCGTCTGTGGCGTAAGAAT -CGCTCGAAAATGCAATGCCGTAAGGACATTTGGGGACGCAATCGCTGCTG -TCGCGGTGTCGATTTGAATCGTAATTTCGATTTCCACTTCAGAGGTGAGA -GAGAGAGGGTGAAGTGGTTTTTCTCAAAGTGGACTTGAAAATTAAGGGTC -AAAGTTTTAAAAGAAAACTTTGAAAAAAACTTGGGAATTTGTTCACGAAT -ATACGAAGTTGCTGAAAATTTGTAAAACGTTTTGGAACATTCTAAAACTA -TTTGAATTTAAATAATTTTTTAAACATACCAAAAAATCATGGATGTTCTC -AAAATTCACGAAAGTTTCGAAAATTCCCTACAGTACTCCTGAACTAGCCC -TACAGTATCCTTAAAGTACCCTACAGTACCTATACAGAACTCCTGTAGTA -CCCTTACAGTATCCCTAAAGTATCCCTACAGTACCCCTACAGTTTCCCTA -TAGTACCCCTACAGTACTCTCGCAGTATCCATACAGTAGCCCTACAGTAT -CCCTACAGTACCCCTACAGTATTCCTACAGTACCCCTACAGTAGCCCTAC -AGTACCCCAGTAGCACCCTTACAGCATCCCTAAATTATCCCTAAATTATC -CCTACAGTACCCCTACAGTACCCCTACAGTACCCCTACAGCATCTCCATA -GTACCCCTATAGTAGCCCTACAGTATCCCTACAGTTCCCACACAGCCCTT -ATAGTGCCTATACAGAACCCCTATAATACCCCATACAATACACCTACAGT -ACCCCTACAGTATCCGTAAATTACCCCTATAGTACCCCTACAGTACCCTG -ACGGTACTCCTACAGCACCCCTACAGGACCCCTATAACATCCCTACAGTA -CCCCTGCAGTACCCATACGGTTTCCTTACAGTATCCCGTGAGTATCCCAA -CAATACTCTCACAGTACTGCTACAGTACCCCAAAAGTACCCCTACAAAAC -CCCTACAGTACCCCTACAGAACCCTCACGGTACCCTACCGTATCCCTACA -GTACCTGAAGCTCCAAAAATTTCCCCCACTTCCAGAAAGCGGTACAAGCG -ACGACCCGTGCTCCGAGATCTACCAGGGACCCTCTCCATTCAGTGAGCCC -GAGGCAAAAGCCGTACGGGACGCGTTGTTGTCGCAGAGATATAAGGGAAG -AACCGACGCCTATATCACACTACACACTTATTCACAGGTACTGTTAAGCA -GTTGAAAACTTTTTCTCGGCCACCGATATTTTCTCGGCCATCGATATTTT -CTCGGCCATCGTTATTTTCTCGGCCACCGAAATTTTTCGCGGTCATCGAT -ATACTCTCGTTCACGGATATTTTTCCCAGCAACAGATTTTTTTCTCGGTC -ACCGATATTCTCTCGGCCACCAAAATTTTGTTTTTCGTGGCCATCTATAT -TTTCATCGGCCATCTATATTTTCTAGGCCACCAATTTTTTCTCGGTCTCC -GATACTTTCTCGGCTACCAACTTTTTCTCGGCCACCAACTTTTTCTCGGC -CACAGATTTTTTTCTCGGCCATTAATTTTTGACGGCCACCGAAATTTTTT -CGGTCACCGATATTTTTCACGGCCATCGATATTTTTTGAAAATTTGATTT -GAGCAAAATATTTTCAGATTTGGATTCATCCATATGGTCACAAGAAGGAT -GCATATCCAGGAGATATTAAGGATTTGGTGAGTGATGACGTCATTCTTCT -TGAAACGTTGAAACTCAAATTTCCAGTACGAAGTTGGCAAAAAAGCTGCT -CAGGCTCTGAAACGGGTTTACGGCACAAAATACGTAGTCGGAAGCGGTGC -GGACACGCTCTACCCGGCGTCTGGAGGATCTGAAGATTGGGCAAAGCACG -AGGCGAAGGTCAAATTTGTGTACCTTCTAGAATTGAGGCCCGACGAGAAA -AGTAAAAAAAAAACGTTCAAAGTTGCTGAAAAAAGTTGGGCGATAATTTC -AGACTGGGATGGGTTCATACTGGACGAGAAGGAGCTGATCCCGACGGCTC -GGGAAACTTGGGAAGGTGTCCGAGTTGTGGCGGAAGCTGTGCTCGATCGG -ATAGTTGCCGGCAAGTCGACGGCTCCAAGAGGTAGGCAAACTTTGATGTG -CCTGCCTGCCTTGTGCCTACAGTTTTATTACGAGTAGGCACGGAGGTAGG -CAAGTAGGCAGGCAGAAATGTGGACCGATAGGCGTAAGGTTAAGGGCTTG -CGAAGCTTTTGCGTAGGATTGCGAAGAAAAAGAAAAATTTTTAAATTACA -GTGCGCACGGCCTAAAGGAGATGGCTTCTGAGGTAGTCACTACGATGCTC -CGCTTGCTCTGACCACGCCCCTTTCCTGGTTTCTCGATTTTTGTTTTAGA -AATTACACTTGTTTATTTTATGATTGTTGATAAATGTTTTTTTAAACATA -ATTTTTCTTGAAAAAACAACTTACAATTAGAGAAAATAGCAGCGAGCGGT -CGTGGCCGCGAAATGAAAAACTCGGCCACCAGCTATAAAATTAAAACGTA -TAATAATTTGGTGGTTCAGTTTTGCAGAAAAAAAATGGCTGGCCGAGTTT -TCACGTTTCTAGGCCATCTAGCAAAGTTGCTCTGAAGCGCTTTCGCGAAT -TCGTTTCCGAAAAAACTGTAGGTGAAAACTCGACCACGCTTTCTTAAAGC -CACGAAATTTTGAAATAATTTCTCGGTCACCAATTTTTTCTCGGCCACCG -ATATTTTCTCGGCCACCGATATTTTCTCGGCCATCAAAATTTTTCTAGGC -CACCAACTTTTTCTCGGCCATCTATATTTTCCCGGCCTCCGACATTTTTT -CTCGGCCACCGATATTTTTCGCAGCCGTCTATATTTTCTTGGCTACCAAT -TTTTTCTCGGTCTCCGATACTTTCTCGGCTACCAACTTTTTCTCGGTCAT -AGATATTTTTCGCAGTCATCTATATTTTCTCGGTCAGCGATATTTTCTTG -ACAACCCATGTTTTTCTCGGCCACCGATATTTTTCTCGACCATCTATATT -TTCTCGGCCACCAAAATTCATTCTCGGCCACTTATATTTTTCTCGGCCAC -CAATATTTTTCTCGGCCACCTATATTTTCTCGGCCACAGATTTTTTTCTC -GGCCATTAATTTTTGACGGCCACCGACATTTTTTTCGGTCACCGATTTTT -TCTCCGCCATCTATATTATCTCGGTCACCAATTTTTTTCGGTCATTGATA -TTTTCTCGGCCACCAATATTCTTCTCAGCCATCAATATTTTATCGTCCAC -CGATATTTTATCGGCCACCGAAATTTTTCGCGGTCATCGATATACTCTCG -TTCACGGATATTTTTCCCAGCAACAGATTTTTTTCTCGGTCACCGATATT -CTCTCGGCCACCAAAATTTTTCTCGGCCACCGATTTTTTTTCCTGGCCAC -AGATATTTTTCTCGGCCTCCGATATTTTTCTCGGCCACCGATATTTTTTC -TCGGCCACCAATTTTTTTCTCGGCCTCCGAAGTTTTTCGTGGCCATCTAT -ATTTTCATCGGCCATCTATATTTTCTAGGCCACCAATTTTTTCTCGGTCT -CCGATACTTTCTCGGCTACCAACTTTTTCTCGGCCACCAACTTTTTCTCG -GCCACAGATTTTTTTCTCGGCCATTAATTTTTGACGGCCACCGAAATTTT -TTCGGTCACCGATATTTTTCACGGCCATTGATATTTTTTTCGGTCACCGA -TACTTTCTCGGCCACAAATATTTTCTCGGCCACCGAAATTTTTCGCGGTC -ATCTATATTTTCTCGGCCTCAGCCATCGATATTTTTCTGGACCGTCTAGT -TTTTTTTTGGCGGCCGTGACCTCCAAATAGAATTACAAAAATAAACGATA -CATCTCATATTTCTGTGCAAATCCTCAAGTACCCCCCCCCCCCCCCCTAT -ATTTATTGTTCCAGAAGCCCCAAAAGCTCGCGGATTCCGATTCGGCGACG -GCACCGAAGGATCATGTTTCGATGTCCGACACGCGTGCAAACGATGGGTT -CAGGAACGGGAGGAGCTGTGCAGGACGGTGCCAATTTTCATGCGCGAGAA -CTGTGCCTACTCTTGCAATTTCTGTTGATTTTTTTGGTGTGCCACTTCTT -TTTTTCTGTACATATATCCATTTTGTCTTCTACATACATATATATATGTA -TATGAAATGTTTAAAAACCTAAAACCTAAAAAAAAACCAACCTAATACAG -TGTTCACGAGCGCCCCCCGCCGCCGGCGGCTCCTTATTTGCCTTGTGCTC -ACCGTGAGGTGGCTCCGCGCGGGAGCCCCAGTGATGAGCATCTCTTTTGT -CCACACGAATAATACAATAACACGGGCTCCTCTTCAAATATGACAAAATG -TCAAATTTTGGCGTCTCTCCTGACTTGGAGCTTCTGGGTCTTCAGACACG -TTCTTGTGTGTGAGGCGAGATGCGATTACCCTCTATATTATTGATTTTTG -GAGCATTTTTTGGTTTTCTAGGGGCTATTCATAATACAGATGATAATGCC -GGCTATCATAAGTAAGTCCCCAAAATACCCATATGGCCTAGAAATTCGGA -AAACTCTTCCATTTCACTTTTGGTAGGGACATTTGGTTTCTGTGCTAGCT -TTTATGCTGAACATGGTAATTTAAATTTCCTAGGCCAGTGTATATGTTTT -TCTAGGCTACGACATACAATTTTTTAGGCCACAAAATATTTTTTTTTAAT -TGCGGCTTATAAAAATGTTCCATAAATTATCTATTTTTGAATTACAGTCT -GAAAATTTCCATTTTTCAAGGGCACCTTTCTAGGTCACAAAAACGGATTT -TTTCAACATAGGCATTTTTCAACTTTTTCTAGGCCACGACAGATGGAAGA -GCTTTTCGTAAAAAAAGCTCGGCCACCACCCCACCTAACCAAAAAACTTC -CAGCTTCAAACTAATCCGAATCAATCCGGAAACTGAAGGAAGTGTGAAAT -ATCTTCGAAGTCTGTACGAGGATCCCTCTCCGTACGAGCTGGATTTCTGG -CAGCCTCCTACGAATATCGGTTAGTGTGACTTACCCACGTGATGTTAGCG -TGCTCCATTTTAGTTTGATCTACGTAGATCTACCAAAAATGCGGGAGAAG -AGACGCAAAGTTCTCAACTGATTCTGCATGGTTAAGAACGCACTGACGTC -ACATTTTTTGGGAAAAAAATTTCCGCATTTTTTGTAGATCAAACCGTGAT -GGGACAGTTTGCCACCACGTGCTTACCCAGGAAAATCTGAAATTTTTCGA -ATTTTCAGGAGCTATCGTAGACTTGACAGTTGCTCCGGCGGATGCTCCAA -GATTTGTGAAGGATTTGGAATCGAAGAAGATCAGCTACATCGTGGCGGTT -AATGATTTGTCAAAGTTCGTTTTTTTTTCTAGGCCACGGCCATCTGTGAC -GTCACTAAACTAGTTTCCAGAGCAATCGAAAACGAGCGCGGAAGCGACAA -ATTCTACAACCCGGTCGCTGGTTTTGCATACGACAAGTACAACAGTTTGG -AGGAGATTCAAACAGAAATGAAGCGGCTTAAGAAGGAATACCCGACCATG -ATCACGCTTATCGATATCGGACAAAGTCACGAGAATCGTACGCTTTTGGT -GATGAAGGTAAGAGCGAACGCGCTCTATTGAGTGGGCGTGGTCACGTCCA -CGTTTTGCAAAGTGGGCGCACGGTTCCTTTACAGCGGTCCCAGCTTTTGA -AGTTTTGAGTAATTTTTATATGGGAATTGCTAAAATTCATTTAAAAAAAA -CCCAAAAATACTTTTAAAGTCGTAACGAAAAAAAACAACCGTGCGCACGT -CTTGCAAAAAGTGGGCGTCCCAAAATTTAAAAACGACGGAATTTCATTAT -TTCAAACGCTCCAAACTCATTTTCACTACAAAGACATCACGCGCCTCCTG -GGAAAGCCCTTACTCATTTGCTGGATATATGACGTCACTAAATTAGTAGA -TGTGTGAAACCGCGCTCCATTGTACTACGCAACACCGATCCCACGTGGTG -TCAAAGTGTCCCATTTCGGTGTGATCTACCATAAATGCGGAAATATTGAC -GCGGATTTCTAAACAGATTTCGCATGGTTAAGAGCGTGCTGACGTCACAA -ACTTTTCTCTGCAAGAAATTCCCACATTTTTTGTAGATCACACTAAAATG -GGACCGTTTGACGCCACCTGCGCTCTCACTTTCAACACTCCCATTAAGCA -TTTCATGTACGCGCCAAAACGCACGGATTTCTGGCTCCCCTCATAAATTG -AAATGGAGTTTGAAAAAGAGTTTGCCGAACTAGGTCATTTTGGCTCGGCC -ATATTTGGGGTAGATTTTCGCCGCGTTGCGTGTCGCGTCGCGGCTCAATT -TAAGTTGTAAATCTAAATGTGTTTGTCCGTGTGGAGTACCCGACTTTTCC -ACGCGTTGCCCGGAATGCTATTGTCGATGGAGCGCGAAAAATTCAATAAG -GAAGGCCAGAACCCCGTGAAAACGCCTGCCGCGCCCCCGCCTGCCTTGCA -GCGCGGAACCCAAAAAGTGTCGGCCGCGGCGAAAGGCCCTCGCACTATGT -GGTGTTAATACCTAGCTATTGACTTATCGCCATAGTGTAAAAAAACCCAA -ACTCCCAAATTTTCAGATAACCGGAAAACGAAACCCCCTCGGCTCGAAAA -TCTCCATGTGGATTGACGCTGGAATTCATGCTCGAGAATGGATTGCTCCG -GCGACCGCAATGTACATTGCTCATGAGCTTCTCCTCGGGTATGAAAACGA -CGCGACGGTGGCTAAGCTGATGGACCATATCGATTTTTATATTCTACCTG -TGATGAATCCAGATGGATATGAGTATTCCAGAGAAAAGGTTGGTTTTTGA -ACCTTAAAAAAGCCTTAAAACTAGTGCTCTATTTCAGAACCGCATGTGGA -GGAAAAACCGGAGCCCCGCAAAATGCGCCCGGCAAACTTTCAGTACGGTC -TGCTGCTCTGGAGTCGACCTCAACAGGAACTTCGATTGGTTCTGGGCCTG -TAAGTCACGTGGTGTGAGAAAGTCTCATTGAAGTTTGATCTACAAAAAAT -GCGGGAATTTTTTGTAGATCAAAGCGAACTGGGACTTTCTGACTCTACGT -AGTTAGCTCAATATTAGACCTTAAAAAATAACTTAATCTTAAAAATTTCC -AGCCACCGGTTCGTCTTCGGATCCGTGCCACGACACGTATCACGGCTCGG -CGGCCTTCTCGGAGCCTGAATCACAAGCTGTCAGGGATTTCCTGGAGCAA -AACACACCCGAGGCGTTCATCTCGCTGCATTCCTACTCCCAAATGTGGTT -GATACCATATGGACACAGAAAACAGAGTTATCCACAGGACTACCATACTG -GACTGCGGCCATTGGCTCTGCGAGCAACTAAGGCGTTGTATGAGTTGTAT -GGGACGAAATATCAAGTCGGGACCGGCGCTGATTTGATGTGTAAGTTAAT -ATCCTTTTTTTCGAATTTTTAAATTTCTAAGGATTTCAAGAAATTTTAAA -ATTTTGAAAATTAAAAAAACAATTTTTTTCGGAATGTTTAAAAATTAAAA -AAAAAATTTTTTTAATAGATTTTTTAAAGCTTTTTTTTGGAAAATTTTGG -ATTTCTGAATAATTTTTTTTTCAGAACTGGAATTTTTGAGTTTATTAAAG -ATTTTTTTAGGACTTTTTAATTTAGACATTTCCTGAAAAATTTTTAAATT -ATTAAAATTTCGAACTTTTTCGATATTTTCGGATTTTTTTGCAACCTGAA -TTTTATTTTTTTTTTGGATTTATTGGAATCAGGGGTGGGCAGCAAGATTT -TTTCCGGCAAATCGGCAAATCGGCAATTTGCCGGAATTGAAAATTTCCGC -CAAATCGACAATTGCCGGAATTGAAAATTTCTGGCAAAACGGCAAATCGG -CAAACTGCCGGAATTGAAAATTTCTGGCAAACCGGCAAACAGGCTAATTG -CCGATTTGCCGAATTTATCGATAAATCAGTTTGCCAAACGGCAATTTCCC -CCACCCCTGATTGGGATCTTTGAAATAAAACAGGAAGAAATTTTAAATTG -TTGGAAATTTTGTAATTTTCCGGAATTTTAATAAAAAAATGCTGAAAATT -CTAAAAGTTTTGGAACTATGTAAAATTATTTGTGATTTAAAAAAAAACAT -TTTTTGGACTTTTCTGAAATTTCACGGATTTCTGGCTTCTCTCATAAATT -GAAATGGAAGAGTTTTTGCCGAACTTGGCCATTTTGGCTCTGCCATATCT -GGGATGGATTTACGGCGCGCTTCATGTCGCGTCGCGGCTCGTAAAACTAA -ATGCACTTGTCCGTGTGGAGTGAGGAGAAAATTCAATGAGGAAGGCCAGA -ACCCCGGATTTTTGAAATTTTGAAGTTCTGAGAAACCTGTGACTTCTACA -CTAACCCTGAAGAATTTCAGACGAAGCTTCTGGAGGATCACATGATTGGG -CTAAGGGGCAGCTTAAGGTCCCCTATGCCTACCTGATTGAGCTCCGACCA -AAGAACACCATGATGGGGTAAGCAGGACGATGGATCCTATCAAAATTAAA -ATTTCATTCCAGCCACGGCTTCCTTCTCCCCGAACGAGAAATTGTGCCCA -CTGGACTGGAAACCTTCGAATCCATCAAAGTGGTTGCCGACGAGCTTGTG -GCGCAATTTGTGGAACCTGTGATTCGAGCCAAGCTGACCACAACCACAAA -GCCCGCAATCCCACCGTATCGGCGTGGGTACTCTATAATCGACACCACAA -CTATGGAGCCGGTCGATGAGATTACACAGAAGCCTACAGAAGCTCCAACC -ACAGAGGAGCCCACCACCACTACTACGGAGGAACCTACAACTACCACAAC -GACCGAGGAGCCTACCGAAGCCCCAACAGAACCCAGTCCGACTACTGTCG -AGGCCACCGAGGCTTCTACAACACCAGAAGCTTCCACATCCTCTGAGACA -AGTACCACAGAGAATTCTGAACCCAACCAGAAGACATCCACACCAGTGGC -ACCTGAAGCAAGCACCGTTGAGGAGGTTGGTTTTTGGCTTAGTCTCAGGC -TTAGGCCTAGGCTTAGGCTTAAACTTAGCCTTAGTCTTAGACTGAGGTTT -AGGCTTAAGCTTAGGCTTCAGCTTAGGCTTAAACTTAGTTTTATCTTAGG -CTGTGGCTTAGTCTTAGACTTAGTTTTAGGCTTAAGCTTAGGCTCAGACT -TCGGCTTAGGCTTAGGCTTAGAATTAGGCTTAGTTTTAGGCTTAGACTTA -GTCTTGGGCTTAAGCTTCGGCTTAGGCTTAGTCTTAAGCTTAGGCTTAGG -CTTGCACTTGGGCTTGGCGTCAGTGGCGAGCGTGAGCTATTTAGGGTTTT -ATGCTTAGCTTTAGACTTAGGCTGAGGTTTAGGCTTAGGCTTCGGCTTAA -GCTTAGGCTTATGCTTAAGCTTAGGCTTGGACTTAGGCTCATACTTAGGC -TTAGGCTTAGGCTTGCACTTGGGCTTAGGCTTAGGCTTATGCTTAGTTTT -AGGCTTAGATTTAGGTTCAGGCTTAGGCTTATACCTAAGCAAATACATTT -TTGGAACTATTTGGATATTTGCCAGCGACCTATTTTATCAACTTCGAATT -TCCCAAACCATTCCAGGAAACAATCACACCGATCAAATGCGTCGACTACG -GTGACTACTGTCGTCTTTGGGGAGTCTTACAGCTCTGCTATCGGGATCAG -GTCTCCAAGTTGTGCCCCAAGACTTGCGACTCGAGGTGCTCTTTTTCGGT -GTGAGGCGCACGCTGGAAACTATCGTATGACAAATTGTCAGCTTATGTAT -GTATAAATGATTTCAAACTTTTGTAATTGTGGACTAAAAACTACATTTTT -CATGCCTGACTGACTGCCTGGCAGCGTGTCAGCGCCCGACATTTTCTGAG -TTCCACGACGGGATCCTGGCAGGCGTAGGCGTGCAATTTTTAACTCATCA -AATTGCTTGGAATAATTAAGCACTGCTACAAATGATGTCACTAGCTACAA -ACTACAAACTAGGAATTTCACACTACAAACTACAAACTACAATCTTAGCT -CTTCAAGCTATGAAATACAAACTAAGAAATTTTTATTTTTCAATATTTTT -TAAACGAGGTGTAATTATGGGCGTATATAGTAAAAACTGGAACGACAAAA -TGCAAATCACAAACTACAAACTAGAAACTAAAAACTAGAAACTGCAAACC -ACAAACTACAAACCACAAACTACAAACTACAAACTACAAACTACAAATTA -CAAACTACAAGCTACAAACTACTGAACTCTGAATAAATTTGAACGTGTAA -ATTTTGCGTTTTTGTGCAATGATTGGACGTATGAATTGCGAAACCATAAG -TGTTTAATCACATACTACAAACTACAAACTACAAACTACAAACTACAACC -TAGAAACTACAAACTACAAACTACAAAATATAAATTACAACCTTCAAGAA -ATTTGTATTTTTCAATATTTGTCGAACAAGTTTTAATTATTCGACGAATA -AAGTCAAAGCTGAAATCATAAAATGCTAACCACAAACTACAAACTACAAA -CTACAAACGGCAAACTACAAGCTACAAATTACTGAACTCTAATAAAATTT -GAAAGTGTACTCATGGTTTTGTGCAATTACTGGACGTATGAATTACGAAA -CCATAAGTTTTTAGTCACACACTACAAACTATAAATTACAAACTACAAAC -TACAAATGAAAACTACAAACTACAAACTGGAAACTACAACAGCAAACTAC -AAACTACAAACTACAAGCTACAAACGCTTATATAATTCGATTTTAGTTAT -TTTCTGTTTTTTATTTTTCCAAATTCTCAAACCTGAAATAAAATTACCTA -CACACAAATGTTTCTCATTATGCATCGAATGACTAATATTTTCCAATAAA -CGTTTTGAAAAAGTATGGAAGAAACAAAAAATGGAAAACAAAGGCGGAAA -TATGCATTTTTCTTCTCATTTTCTTGAAATTCGTGTGATTGTACTTATTG -ATTTTTTGTTGTTGTTAAAAACGTGGTAGGCAGGCATTCATGCCTACGTG -CCTGCCTACCAGTCGAATTCGAACCCGCAAGATGTCGGCCGCTCCCTTCG -ATTTTGGAAGTTTTTACTTATTTTCCTCTTCTGCTAACACATTAGACAAT -TATTATTCAACCCGTGTACACAATAGGGCGGCTAATAATTAGGTTGGCAG -GTAGAGGTGTACAGGAAACGTTTATAAGCTCTTTATTTACTACTGAGCTA -CCACTTATTTGGAGCCAATGCATTTTGTTTCTCAACAAGTTGGAGATTCC -AGAACAACCAAGATTTGGGCGGGGCTTATTTTGAGGCAATTTTTCAACTG -TACAGTAGATTCATATAATTTAAGTTTTGAAAACATTTAGGCGGGAATTC -AAACATTTATTTTTAAAACCATCTTGGCGGGAATTCAAATTCTAGTTTTT -CGAAAACACTTTGGCGGGAATTCAAAATGTTATTTCTTAACAACTTCCTG -AAATGCTCTAGAACCTTCTGGAATATTTGAGAAAACTCTAGAATGTTCTA -GAACCTTCTGAAAAATTCGAAAAAAGTCTAGAATGTTCTAGAGCCTTTTG -GAAAATTCGAAAAAAATCTGGAATATTCTAGAACCTTTTGGAAATTTTGA -GAAAATTCTGGAATGTTTTGGAACCTTCTGGAAAATTCGAGAAAATTCTG -GAATGTTCTAGAACCTTCTGAAAAATTTGAGAAAATTCTGGAATGTTCTA -GACCCTTCTGGAAATCCGAGAAAATTCTGGAATGTTCTGGAACCTTCTGG -GAAATTTTTAGAAAAATCCTGGAATTCTCTAGGACCTTCTGGAAAATTTG -AGAAAATTCTTGTCGCCAAAGTTTTGTGAAAAAATTTAGCTGGAAACTAA -ATAATTTTGTGAGAATTCAAACTTTAATTTTTCCAATTTTTTCGGATTTT -TTTTTTAGCTTTTAAGCTTTTTACATTTTCTATAAATTTTAGATTTCAAA -AAAAAATTGGCGAAAAATTTTGACCAAATTTTTTGGCTTTATAGCATAAT -TTCAAAAAGTTTAAAAAGTCCAAACTTTGCTCCAGTCCCCAAAAAAAAAT -TTGGTGGAAAATTCAAATCATGTTTTTTTTTCAAAAAATTTCATGGCCTA -GAAATTTCAGCAAAGCAGTAAGGCCGCCTACCTCCCTTCAATCCGAAAAA -TACCTAAAAATCAATCCCAAGCAATTAGTCTCATCAAGAAAGAAAAGAGC -TCTGCTTGTGCCCACTCCTCATCTCTTCTCATGTATTTGCTTTCAATTAA -ACATCTTACTCAGACAGCATAACGAAGGAAACAAAAAACGAAAGAATAAC -GAAATGAGCATATTTCCTTTATTTATTCCTTATTTATGTATTCAGGTAGA -ACAAAAAACCGGCTCGGCGGGTTTATTTGTCTGTAAATCTTATGCCTACA -CGCCTACCTACAGCGGCCCTGACTGCCTATTTGCCTAGTGTTTTTTGTCC -TTTTCGGTTGGTTTTTTTGAAAATTTTTCCTGATTTTTTTTGTCGTTTTT -TTTCCATTTTTCTGAATTTTTAGGAATTTATGGAAGTTTCTCTTTTTTCT -CCCCCCCTCGAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCC -TAAGCCTAAGCCTAAGCCTAAGCTTAAGCCTAAGCCTAAGCCTAAGCCTA -AGCCTAGGCCTAAGCCTAAGTCTAAGCCTAAGCCTGAGCTTAAGCTTAAG -CCAAAGCCTAAGCCTAAGCCTACTCCTATGCCTGAGCCTAAGCCTAAGCT -TAAGCCTAGGCCTAGGCTAAAATAAGCTCGGCCCCTTTCTGGGCCAAAAT -TTCATGTACCTCCTAAAATTGTTTCATCCTAAATAGCCAAAAAACTTGGA -AAAATCTATTTTTCAAATTTTGTAAAAATGTCAAAGAAAAATTCTCAGAA -GTGCGGGAAAGTTTGACCCAGAAAGGGGCGGAGCCTATTTTTGGATAGGC -TCCACCTCTTTCTAGGTTTTTTAAAATCAAATTTAGGTGTTTCCTGGTAA -GTTTTAGTGGTTTCATTTTTTGTATTCATCACATTTCTTTTTCATTTTTT -ACATTTTTCTCATAATTAATTTTTGATCTACCTGTTGAACTTGACCCCGC -CCCCCAATCTTGGTGCCTCAAAGGAATCGGAGGAGTCTAGTCAACAAGGT -AGATCAAAAATAGAATATGAGAAAAATTTGCCATCGTGTTTTTCGATAAT -ACTACAGTTTCATACAATAATCCCACAACTTAAAATTCAGCAAATAACCA -GGAAATGGGCGTGGCTTAGATTTTCAAGGTTTCGTTGTTTTTTCCAGGTT -GTACTTCTGATCTGAACGGGCTCCGACAAAAAATGCACAAAATTCGTAGT -AGTGATGTGTGACGTCTGTTCTGATGACTCGAATTCATATTATAAAAGTC -GAAAAATTCCTTCCGAACGAACCCCCCATCATCCTAACATCATCCAGATT -TCTGCACCCGCCCGCTCATATAATCTGCTTTTCTTCACCCATAATCTTTT -TGCTTATTTCTCAATCTCCGTCTTTCTTGCGTTTTTAATTAATTCAAGAA -ATCAAGCAGTTGTGGTTAATGGCGTTCTACGAATTGCTTTTTTCTTGTAT -TATGATATTTTAATTAATTTTATTTATTTAGTATCTAGGCATGTACATGT -GCAAGTTGAGTTGAATAACCTGAAAATTTTGTGCCAAGTTATGGGCGGGG -TCTTTCATACATTTTTTAAATTGTTTTTTGGCTAAATTTGTATGTATTTG -CTTTGAAAGTTGTGTTTTTTTTCAATTTTCTTTAAAAAAAAACCAAAAAA -AAAAATTGGTATGTAGTAACGTAGGTAGGCAAGAAGTAGGTGTGTAGGTA -GGGACTTGAAAATAGCAGCTATGAATAGGTGCGGTATTTGAAGTTTAGGC -AGGTTCGTAGGCAGATAGGTGAGTAGAAAAATCATTCAGAAGACATTCAG -GTAGGCTCACTGGTAAACAGGCATAATGTAGGTACGTAGGTTAACACTTA -CGTACGAGGCAGTAGGCATCAGGGCTTTGTGGCAACCGGCAACCGGCAAC -CAAAAACCAGGTTGCCGGTTACCGAAAAATTGCCGAAATTTCAGCAACCA -AAAGTCGCCAGAATTTTCTCGAATTTTCCAAAAGGTTCTAGAACATTCCA -GAATTTTCTCGAATTTTCCAAAAAGTTCTAGAACATTCCAAACTTTTCTC -AAAGTTTCCAAAAGACTCTAGAACATTCCAGAATATTCTCGAATTTTTCA -GAAGGTTCTAGAACATTCCTGAATTTTCTCGAATTTTCCAAAAGGTTCTA -GAACATTTCAGAATTTTCTCAAATTTTCCAAAAGGTTCTAGAACATTCCA -GAATTTTCTCGAATTTCCCAAAAGATTCTAGAACATTCCAGAATATTCTC -GAATTTTTCAGAAGGCTCTAGAACATTCCAGAATTTTCTCGAATTTTCCA -AAAAGTTCTAGAACAAGTTGCAGAAATTTTCAGCGTACGGCAACTTCAGC -AATTGCGGGTTGGCATGTAGGCAGGCAGGCATGTTAGTAGGCAGTTTTGA -CAGTTTTGAAGTTAACAATCCTACCTGATGCACAAGAAAATGCGCGGCAA -TTGCGGACCGGCAATTCTACAAAATGAGACGGTTGGGCATGTTCTTCCGA -TATTTTTTATAAAAATTTAATGATAAAGTATAGAAAAATATTTGTTTTAT -TTGAAAATAAGTTTTATTTGGCTAGGAACAACCGAAAAAGTGCTCAAAAA -TTGTCGGAATCTTGAAAATTGCCGTGAAAATTTCCAACATTTCGACTATT -TCTGGAGATTTTTACAATTTTGTCTATTAAAAAAAAACAGTTACTTTCAA -ATAAAGCAAATATTTTTCTATATTGTGTCATAAAATTTTAATGAAAAATA -TCGGGGGAACATGCCCAACCGTCTCATTTTGTAGAATTGCCGCGCACCTT -GTTAGTTTATCCCCGTAAACCTCCAATCAATAATTGGCAGGAGTCCTTCC -GTCCGTCCAAAACGTCATAAAAACTGGAGATGGCAAAATTGGAGATGTGC -CAAGTTTGCTGGAGAGGTGGGGGGAAGGAGACAATCATGTTGTCTGCGTA -TCTCCAGACTCGTCTGCTATCTCTCTTACCCGGCAAATGGGACCTCCCCA -GAACGGTGATTTTGTCCTTTCAACACCTTTTTTGTGTTTTTGTTTGTTTG -ACACCTTTTTTTCACTACTTTGCGGGAATTTAGACTGATTTCTCATGGTT -AGAAACGTGCTGACGTCACATTTTTCGCGGGAAAAAAAACCCGCATTTTT -TGTAGATCAAACCGTAATGGGATAGCCATTCTAACAATTCACTGTTTTTT -TTCTGAACAAGTCTGAAGTTTTGAGTTCAGCACCCGCAATTCTGTCTCTG -ATAAGTTTGAAAGTTTCAAATTGAAACCTCTCAATTGTCGGACCAGCGCG -CTACTTCATCATACCCCGCAAATTGAACTGCTCGCGGCAAAATTTAAAAA -TTGATGCTTCTCCAGAAACATCCCACCAGAAACTACCTAAGACTGAACTT -CATTAACTTCTTTTAAACTTAAACAACGATCATAATACCTTAAAAAAAAC -GTTTGTACGTGGTGTCAGAGTGTCTCATTTCATTTTGATCTACATAGATC -TACAAAAAATGCGGGAGAAGAGACGCAGAGTTTTCAACTAATTTCGCATG -GTTAAGAACGTGCTGACGTCACATTTTTTAAGACAAAAAATTCCCGCATT -TTTTGTAGATCAAACCAGCCTGGCACCACGTGCGTTTGTAATCGTTCAGT -AGGTAGGTAGACACAGGTCAGTAGGCATAGGCAGGCGGTAGGTCTGAGGT -AGGTGTTGTTGACCACCACGTAGCAAAACATGCTTGACGACTAGCCTCAA -ACGGATAATCACAAAGTTCTACGTAGTTATGATTTCAAGCCGCCCAATGA -GCACATTACGCTGACTAAGCCACAGCTATAAGACCCTCCTCCGAGTATAT -TCATCACCAAACATCCAGTTTCCAGTTTTGCAGTCTTTTTTTCTGTTGGA -AAATAAAGAGAGTACATCTCATTAGACATTAATGAACAATTTCAAGTTCA -AAACTATAAATATAAATAAAGCTAGTAATTGAGCCAGTCCAACCAAATTT -CCCACAAGTTCATTATAAACCTTCCAATTTCCCAATCCCATGTACTCCTA -CTAATCAGTTTCTTTCCTTCCGCCCTACTTTCCAAATTCATTTATCCGCT -TTGCATACTTTTCGGTAATCTTGACGATTTTCAGAGGTTTCTAGAATTTT -TTATTTTTTCAAATTATGCAAAAATAAATTTTTTTTTGTATTCTCAAAAA -ATTGCTAAAATTGTCCAACTTCCCATTTCTCGGAAATTGACGTAATTGCA -GTTTTTTGAATTTTTTTGAAATTACTGATTATCAAATTTTGTTGGAAAGT -TTCCTTTCACCTACACACCTACCATATGCCTATCTGCCTAGGTGCTTACC -TACACGCCTGCTTCGTGCCTACCCGCCTACCTGCCTGGTTTATTTTCAAA -AAGTGCAAAGAGCCAAAAGTTTCGAATTGTCAAAATTGCTCGGAAATTTT -TTGAAATTTTGGAAAATGCCAAAGTTATCAAATTCCGCATAATTCCAAAA -TTGGCAGCCCGACATCATGCCTGCCTACATTCCTGTCTGCATATAGGCCT -GACAAAATGTCCATCAATGTATGTACCTATTTCATACCTATCTACCTGTA -TAAACATAGTTCATCTCTACCTCAAACAGCATGTTACAGGCTTTCTTCTT -ACCTACCTACTTCATTAACTGCTGTTTATTGACCTGTCTACGTGCCTACC -TCATGCCTGGCATGCCTACATACCTACCTCATTTATCAGATCCTCATGAA -GCCTATTTACAAGCCTACTTCCAGCCTACCTATTGTGTTGATTACGATCA -CCGTCTCTAGGTTGCCTAACCTGCCTAATTGTGTCTACCTACTTAGCTAT -CTCATGCCTGCCTACTAACCTGCTCAAGTACCTACTTCATGCCTACCGGC -CTACGTTCCTACCAACGTGCCTACCTGCCTGCTCACTAGCCTAAGTGTCT -GCCTACATAAATTGTCCGTTAGCACATCAAACTTTTCATATATACAAAAA -ATTGCATAAAAAGAAGATAATCATTAATAACAAGTGGGTAACTCAAAAAG -GAAATTGGTTTATCTCCCGGCTCCGAGAGCACCAGCACTTTGCTTTTCCG -TCACTACAACCTCTAATTTTGTTTTGTTCGAAGGACTTTTTCCGATACAT -ACTAATTTTTTCGGATCCGGTTGGCTCTGGATTTCAAGTTTTATAATAAC -TTGGGCTCCCAGTGACGTCACCAAAGGTGCAATTAGCCTTTAGTAACTAA -ACAGCTTGCTCCTAGTTTACTGCTCCGTCTTCTCAAATGAAACAGAGAGA -GAGAGACCCCTCATCGAAAATTCAATTAAACGCTAAAACGTAGGTAGGAA -AGAGAGAGAGAGGGAGACTCCTCCCAAAAAAAAAAGACAGGGGGGCTCTC -TCTCTCTCTCTCTCTCTTCGAGCGGCAAATCGGCTTCCGAATTCATTCAA -AAACAAATTATGTGCTCAACCACCACCACTACCACCGGCTCCAGGCGGGT -AATTACACTTGAAAACCAAGTACTAGGTTTCGTGGCCGGGCAAACTTTTT -CTTATTAGACCCCGGTGGAATTTTGTAGGTCTATTTAAAATTGCAATTGC -GCTATTTTGTACTGTTTTTTTTTTGACAAACTTTGAAGCTTGATGTCAAG -CTGGAAAAGCGCTCTAATGACAATTTTGACTGCAAACTCGCTCTGTTGAT -AAATGGTCCGTGTACTCCACGGGGGCAATTAAACTGGATTTTTTTCGATT -AAATAATATCTTGATTTTTTGCAGTTTTGGCTTAGGCTTAGGCGTAGGCT -TAGGTTTAGTCTCGGGCTTAGGCTTATGGTCAGGGTCAGGCTTAGGCATA -GGCTTGGGCTTAGGCTTCGGCTTAGACTTAGGCTTAGGCTTAGGCTTATG -CTTAGGCTTAGGCTTAGGCTTAGGCTTAGGCTTAGGCTTAGGCTTAGGCT -TAGCCTAAGGCTTAGGTTTAGGTTTAGACTTGGGTTTAAACAGGCTCAGG -CTTAGGCTTAGGCTTAGGCTCATGCTCAGGCTTAGGCTCAGACTTAGGCT -TAGACTTAGGCTTAGGTTTTGGCTTAGTCTTAGGTTTGGACTTAGTCTTA -GGCTTAGTCTCGGACTTAGGCTTAGGCTTAGGCTTAAGTTCAGGCTTAGG -TTTAGGCTTAGTCTGAATATTTGGCTTAGCCTTGGGCTTAGGTTTAGGGC -TTAGGCTTAGGATTAGGCTTTGGCTTGCCGGCCACCTGGGATATTGTGGT -TTGACAGGGGTAGGCTATCCAAATTTTAAAAAAATCGGCTACAAAATTAA -TATTTAGATGGGCCTATAAACCATTTCTCTAGGCCATCCTGCAAAATTTC -CAAGACAAAAAATTTCAGCCGTGAATAAAGTTTCCGTTTTCCTAGGCCAC -CTCCAAATTTTCCACGTCATATGTAAGGTATCGGAGGGTACTGTAGAAAA -TTATCAAAAATCAGCAAAGAATAATAAGCATTAAGAAAGTTTTTTGTGTG -TGTGTGTTTTTTGTGGGAGAAAACATTTCCCCTCTCCTTTTTTCCTGCCT -GCTCATTTGGATACCACCGCTAACCCAACTTGACTTTGATTACCCATTTC -CGTCCCCCTTCTTCGTCTTCTTCTACTCCGGGATAGAGAGAGAGCTCTAT -ATAATTACTTTCGTCTTCTTGATCCGTTACCGCCCATTGGCAATTGGTTT -GAGCTGCCGCCGGAGAATATATACATGCATGTCTAATTTTTTACTGGAAA -ATCTAGGAATTTTTACGTTGAAAATTTGGTTAAAAGCGTACAGATCGGCC -CATGCTGGTGATTGTACGAAATTTTAATTTCAAAGTATCTGCAGAGGAAG -CTAGGCCACAAGCCCCTACGTGGCCGTCAAAATTGAAAACTAGGCCACCG -ATTTTTTCTCGGACTTTTTATCTACTTTTGCTATTAGGCCCTGTCTTCTT -TTTTGCAACGTTTTTCTACTAGGTCACCAAATTTTTCCTAGGCCAAGCTG -CCTAAAACTCGGCCACCGATTTTTATTTGCGTCGGTCTGTAACATTCAGG -CTCCGACCAGCTCGACTTTTGCTACGTGGTCGCCAATTTTTCCTAAGCCA -CATCGAAAATGACTCGCTGTGACATTTGTACTTTTTTTCACACGGCCTAG -AAATTTTGAAAAAAACTCGGCCACTGATTTTATCGGCCTTGGAATCCTAT -GTAACTTTGTGGCATGATTTTTTATTTATTGTCCATCCAGTTTTTCGTCT -GAAAATTACAAAATGTTTTAGTGACCGTTGGAGAAAACTCGGCCACCAAT -TTTTTTCTCGGCCAAGTTACCAAATTACGGGATACCGTGTTCTCTATCAT -ATTTCTGGCTCAAAACATACTCTACTTCCGTGCTGCCTACGTGGCCGCTC -AATTAGAAAACTCGGCCATCATTTATTTTCTAGGCCATGTCGAAAATAGG -TAATGTAAATAGGCAAAGAAATGCGGTGGTTCAAGTAATTTTGGGAAATG -GATTTTAAAAAGTTGAAAAAATAAATCAAATGAATAAGTCTGAAACACGC -AAACCTTAAAGCTAGGCCATCAATTTTTTTCTCGGCCAGGTTGCCAATCT -ACGGGAAACCGTCATGTTTCTTGCTCAAAATTACACCCTATTCTCGAAAA -ATTTTTTTTACGTTGAGTATGCTCTCCTGCCTAGGTGGCCGCCCAATTAG -AAAACTCGGCCACCCATTTTTTCTAGGTCATGTCGAAAATAGGCGATGTA -ATGGGGTAGTTCAAGGAATTTTGCGTAATGAATAACCCCAAAAATGTTTT -CAATATATGGCCGCCAAAAAAGAGAAAACTCGGCCACCAATTTTTTCTCG -GCCAGGTAGGCTACCAATCTACGGGATACCGTGCGCTCCATCCTATCTCA -GGCTCAAAATTACGCCTTTTTTCTCGAAAAATTTTTGCATACTCTCCTCC -CGTGCGGTTCTTAATTAATGAAAGACGTTTTTTTTTCTCCTTGTCTAACG -AGTGTATATGCAGAATTCAGGATATGCGTCTTCTTTTCCGAGTTCTTGTC -TTCAAAGCGAAAAAAAAAGTGTGTGTGTGTGTGGACATAGGAAGACTCGT -CTTCGAAGAAGACGCTCATTAGCTCATTTCATCCACTCGCTAATTTCATT -AATTTTGTGCTTCTTCGCCTGCCTTCCGACGTGTTTACCCACACCACCAC -CACCACCACTCAGTACCTCCTCACTCACCGTGGAGAAAGATGTTCTGGAT -TTTTTTAAGCTTTTGAGTTTTGTGTCCTACCTCACTTTTTAGGCTCCACC -CACTTCTTGGCCTGTTATTTCGGTTTATTAGAATTTGTGTGGTGTACTAC -AAATTTCGATCCGAAAAATGGCAAAAAAAATTCAGCTGACTGAATTTTTT -TGAACTTTCAAAGGTTCAGTTTTTGCAACCTAAACCTCTCTTAACTTTAA -CTTTTCAAACCCCGCCCATATCTTGGCTTTTCCAGAAATCCGAGTAATTT -TTTGGGAAATTTATGGTACAACTAGCTATCAGAACAATTTTTACGGAAGT -TTTTTTAATTTTATTTTAATTTAAGTCTACTGAAATTGACCTAAAATATA -TTTTGAAAAATGCTTTGATCCCGAAATTGGCCAAAAAACGTTGATCGAAT -TTTTTTGAACTTTCAAAGGTTCCGTTTTTGCAACCTTTAAGCCCCGCCCA -TTTCTTGGCTGTATTGTATTCAAAGTTAAAAGTTGTTCATGTTGTACTAA -AATATGCAAGTATCATAAAAAATTAACTTTTTAAGCTCCACCCATTTCTT -GGTTTTTCTGGAAATCCGAGTAATTTTCTGGGACTGTTATGGTACAATTA -GGTATCAGAAAAAAAATCAAGGAAATTTTTTACTTGGATTTATGTCCACT -GAAATTGACCTGAAAATGTTTTGAGATTTTAAAAAACTTAAATATTTTGA -TAAAGGTAGAATTTGAATTCCCCGCCCATTTCTTGGCTGCAGTTCCCAAC -TGTCCAACTTTTTGAATATTTTCTCAAACTTCATGGCCTAAAATTCCAAT -TCTAGGCGATCTACCTTGATAAGAACTTACTCCTGAGTTATGTTTGAAAA -ACATAGTCCATCCGTGGCCTAGAAATCCAAAACTAGGCCATCAGATTTTA -GGTTCCTAGGCCCAATCACAAAGCCAGCAGTTTTAAGTTGTCAAATTTCA -GTGGCATAACCTCATAATTTAGACCTATTCTATTAGGTCAGCCTATTACA -GTTTCTGGCCTAGAAATTTTCCTTGAGTTTGAGCCCACTACCCCCACACC -CACATGGCCTAGAAACCCAAGCCTAGGCCATGTGTCCCCGCATTCTCACT -CACTTTTAATTTCTTAATCCACTTACACAATTCTCTCCCCCTTTTCCAAT -TTCACATCGAACCCGGGAAAGCTCATTAGCTCATTTGTTGTGTGTGTGTG -AGTTGAAGAAGCGGGGGGAAGGGGAGCCCCCCTTTTGAGTGGACGGGGAG -CTAGAATGGAAAAAGAGAGAAGGAGGAGAGCCATTTTGAATGGGTATGCA -ATTAGCAATCGATGCAAATTAATTAAACAAACAACGAAATGAAAGGGGGG -GGGAGGGCAATCGCCTGCCTTCACTCACATGTCCCCTGCTGGAAATGTGG -AAATGTAAATTAAAATTAGAAAACTAGCAAAAAAGTGCGTTTTTTATTCC -TACTTGTTAATTAGTTTAAATTTCTATATATGTATGGCTTTGACATGCCA -ATTTTGGCGTCTAAGGGTAGGTATAGGTGGGCGATGCACCATGTTAAATG -GTCGATGCATCATGCCAAATAGTAAATGCACCATTACACATTGAAAATTT -AGCATTATACACTCCATATAACTGAAATTCGGGGCCCAATCAATATCATG -CCGCCGACATCTCACGGACTCCGCGCGCCGCTATGTTTAACTCGCAGCGG -GCGGAGACAGCTGGCCGCGCCCACAACGAGTTAAACACAGCGGCGCGCGG -AACTCGTCAGATGTCGGCGGCCTGATATTGGTTGGGTCCCGAATTTCAGT -TTTATTATTTGGAGTGTATAATGCTAAATTTTCAGTGCACCGTGTTAAAT -GGTCGATGCACCATGATAATGCTAAATAGTCCATGCACCTTGTCTAGAAA -ACTCGTTGAGTACTGTACTTATGAAACAGTTTAGCAAAAAAAAATGTCAG -CCTGTTTGGCTCCGCCCCGAAAGTGGGCGGAGTCTAATTTCTTGAATTTT -TTTTTTTCAAAAATTGTTTTAAAAATAGCTCTGTGAATTCCACCTCAAGC -AACTATTTTTAGTGGAAAGCAAATTTTTTCAAAATTTTGCGCAAATGGTT -CTGAGGCTCCGCCTTGAAATTGGATGCTCTTAATTAAGAAAGAAGTGTTA -GTCCCGCCCCTTTATTGGAGGAACTCAAAACTGGGAGGAGCTTAAGAAGG -TTATAAAATTTTGCTAATTAAAACACCCAGCTCCGCCCACTTATATATTA -GTTGACTCCGCCCCACCCATTAAAAGTGGGCGGAGCTTAAAAATATTGAC -CACGCCCCTTTCTTGGGTAGTTTTAGCGTTTTTCATAGAGTCAATTTTCA -CGGCGGACCCCGGATCGATGCACCATGATTTGACGCGCAACCCAGGTAGT -ATGACGTCACTCGTGGCCGAACTCGCGGGGGAAATTTGTACTTACAGCAA -TAAATTTCGGTGTCTCACGGAGCACCTGCACACGTACCGATCATGAGTGA -TGCTTCCCACCACAAGACATACACATACACACACAAACCTACTAATTAAG -ACAAATTATAGAACAAGTGGGGGGAGAAGGGTAGAAATAAAAGTGAGCAG -TGCGAGAGAACGCGTTAGACGGAGAAGCTGCTCTGGGAGACGTGTGAGAG -GCATATAAGTTGGATTAGTTTACTGCTCTTTTCATGGGAAAATCAAGTGA -GCTCCAAATATTTAATCTGACTTTGATTTGGTTTGATTCTGAAATTTTTT -TGGGATTTGCAGAAAAAATACGTTTTTTTTTTGTATTTTGGAATCGCACC -AATACGCTGCGTTGCCCTCCTACAGTGCAACTGAGCCACATTTCTCTTCC -ATAACTTTTTTCTTAATCTCAAAGATTAAAACTCTGCAAAAGCTCAATAT -TTTATAAATGATAAGGATTAGCAAAGTGTGGGTGATCTTCCAGAGGGGGG -ATTACCATAATTCATTACTCATTTTTCAAGTTTCATCTGTGTTTTGTTTG -ATAACCTAGGTGACCTACTAGTTTACCTACAGGGCTGGGACCAAAAAAAA -AATTTGGACCAAAAAACAAAAAAACAAAAAATTGAAGTTTTTGAAAAACC -AAAAAAACCAAAAAAAAACAAAAAAAAACAAAAAAAACCAAAAAATTTCT -TATGCTTAAGTTGATTTTTAATGGGGTTATTCAAGTAATGTTGCAAAATG -TATTAAAATACATTATGACGTCACAACTGTGTTAAAATACATGTTTTAAT -GTATTTTAATACATAATAGTCTCGAGTCGAGACTAGACATGGTAAACACT -TTTTTGGATTTTTTTGGATTTTTTGGTCCCAAAAAACCAAAAAAAACCAA -AAAATCGATTTTTCGTCAAAATACCAAAAAAAACCAAAAAACAAAAAAAC -CAAAAAATTCTCAGCCCTGGTTACCTGTCAGCAAATAATTTTCCCCTATA -TACCACCACTTCAGGAGTAATCAACACCCCAAAACGGCAATTATTTATTA -TTCTCCTCACCTTCTCAACACTCCATAGCGCCAGCCAGCCTAATTTGATT -GTTTAATTCGATTCAGGGCACCCCACCACACACAAATTTATTAATTTTTG -TCTTTCTCGCCATTTTCCAATAATTTTCCCGGCTTGTGTTAGCTTTATTA -TAGAACTTTTTAAAGCGATTTCTTAGGAATTTATGTGTGACGTCATATGT -GGCCTAGAAATTTGACGATCTCGGCCGTCGGGGTCGATGAACCATGTTGT -GATGTATAGGTGGCCTAGAAAATTTTAGGCCACCATGATAGTCGTGGCCT -AGAAATTTGGGCGCCTTCAGGTGGCCTAGAATGTGAAAAGTGACGTGTGA -CCTAGTTCTTTTGACGGTCAGGCCAATTTTCCAATTCGATGCTTTTTTTT -TAATTAAGGTCCATATTCTGCAATTTTAGGCTCCGCCCATATCTTGGTTA -AACATTTTTTTTTTGCTTTTTTCTGCAATATTCATTCAATCCATCATTGT -TCTCAAAATTTGATGCACCATGATATGGCAGTGGCCTAGAAAGTGCGACG -TCACTTATGGCCTAGAAAATTCGAGGATCTTGAAATGGGAGAAAGTAAAA -AAGTAATCAATGCCCCCTGACGGTCGTGGCCTAGAAAGTTAGAAGATCTA -GAGGAGGGGAGTAGGAGATCGATGCACCATGTACAGCTACAGTGACGACT -CACGTGGCCTAGCTTTTTCGCAGGCCACGGCCATAAAAAAATGTATGAGA -TCGATGCACCATGTTTGTCGCGGACTAGAAATCGAGAATGTGGCGCACGT -CACGCATGGCCTAGTGACTTTTACGGTCAGGCCGAAACACAGGACGTGGC -CTAGAAGTCATTCTGTTAGTCTAAGACTCTGCAAAAACTCTCAAAAAAGG -TGAGCCTATGTGCCTGCCTACTTGCCTACATTCTTGCCTACCTGTTACTG -CTTTCTAATCTGTACCATGTTGCACCTACAGTACCCCCTTCCGCCCCCGT -AAAGACTTTTTCAAGCTCAAAAGTGCAGAAAACACAAAAAAACCAAGCCC -AATCTACAAAAGCTCATCTATTCGTGCTTGGATTAAAATGCCATTAAAAT -GATTAATTAAGAGATCGAGACTGGTTGAAAACTGATCGGATTAAAAAGCG -ACTGAGGTCCGCGAATGAGCTTTTCATGCAACTGATGAGCACATTTCCTG -TGTATGTACACTGATGATAAATCTCCTTATCTTTTCCGAGACATAACAAT -CTCAATGTTCTTCATTAGTTTCTTCATTTCCTTCTGAAATTTGTTGCTTT -GATTTATTAAAATCTGTCATTATGTAAGATCCATAATTCGTGATTCGAAA -TTTTTTACAGTTTTTTTTAAATATAGAAATTTGAATAACTTTCCTACCAG -GCTGCCCCAATACAGTTTGATCTACAAAAAATGCAGGAATTTTTTGCCCA -AAAATATGTGACGTCGGCACGTTCTTAACCATACAAAATCAGTTGAGAAC -TCTGCGTCTCTTCTCCCGCATTTTTTGTAGATCACCGTAATACAATGCAA -AAATGAGAGAAAAAAATTTGAAAAAAAACCTATCCAAAAATTTGGCATTT -TCAGATTTTTTTTTTCGAGCAGACCTAAAAATGTTTCGATAAATTCTAGA -TTTTTTGAAAAACTGTCTGAATTTTTTTTTTTGAGAACAATGATTATATT -TTAAAGATCAGTGTTGACTTGAATCATGTAGCGTAAAAAAGGTTAAAAAA -AAACCAAGATATGGGCGGAGCCTAAAATTACAGAAATTGGACCGTAAATT -TTTCAAAAAATTTTTTTTTTTTCAAAAACCGAAATTTTATTTTAATTTCA -AAATTTCCGCTTCGGGGTTTCTTGATTTTTTCAATTTCAATTTCAATTTT -TTAGATTTTTTCCCGTAAAAAACCCAAAATAAATTTACTGAAGCTTCACT -ATTGGATTAAAAATTTATAAGGTTCTTTGCGGGAAAATTAGTAAAAAATC -GAAAATATATTTTAAAAGAAAAATCAAAATTAATACAAAAAATTAAGGCT -TCCATGTAGGTTCGCGTGGTGCCAGGCTATCCCATTATTTTTTCTTTTTT -TTTTTTTTTCCCCAGGAAAGTGTGACGTCAGCACGTTCTTAACCATGCTA -AATCAGTTGAAAAGTCTGCCTCTCTTCTCCCGCATTTTTCGAAGATCATA -CCAAAATGGGGCACTTTGACGCCACGTGTAGACTGTAGGCCATAAACCGC -CTGCCTGCCTGATTTTCAGGCTACCTACGCCTGCCTGTCGCCCCAATCCA -CGCCTTATGCTAAAACACATTCATTTCTTAATTTGATTTTCACCAAAGTG -ATAAAAAAGATAAATTAAAAATTAGTACATTCTCGTCAAAATGCAAAAAG -AGTCGTAAGGCAGGCAGGTTTCAGGCAGGCCCTGGCTCACGCCTGCCTAC -GATGCCGGTTACTAAATTTCCAAAATACCTTATTTACTCTACAAATCCTC -TACCCCGACATTACATCTCAAAACTCATCCTATTAATTTCTGCCTTAGGC -GATAGCACTACTAATTGATAGGAAAAGACGACTTGTGTGTGTGTGTGTTG -AATTATTATACTAATTTGATTTTAGGCAGCCTCTTTCGTCAAAAAAAAAT -AACTTGTGTCACCACACCACACCTCCCACGTTTTCGGTGAGTGAAGCTTC -TGCTCGCTGTTAAGCAGATATTCATAGGGAAATCATCCGTAAATCCATTC -AAGTCCTCTTTATTTTCTTCTTCTTCGACCAAATTAGTATACAGATGTCA -TCAACTTTTTTGTTTCTTTTTGAGGGCCCAGGCTGTTCATTACAGTTTGA -TCTACAAAAAATGCGGGAAATTTTTTTTTGCTTTTTGCCCAAAAGAATGT -GATGTCAGCACGTTCTTAACCATGCAAAATCAGTTGAGAACTCTGCGTCT -CTTCTCCCGCGTTTTTTGTAGATCTACGTAGATCAAAACGAAGTGGGAAA -CTCTGACACCACGTGCTTTGAGAAAAAATTTGAAAAAAACCTTTTTAAAA -ATTTGGCATTTTCAGTTTTTTTTCTTTACAAAATTTTTTTGAACGAATCT -AAAAATGTTTCGATAAATTCTAGATTTTTTGAAAAACTGTCTGAAATTTT -TTTTGAGAACAATGATGACTTGAATATTGTAGAAAATCGTAAAAATAAGT -TTTAAAAAACCAAAAAAAAATGGGCGAAGCCTAAAATTACAGAAATTGGA -CCATAAAAGTTTCCAATTTTTTCTTCACAACTTTTTTCAAAATTGCTGAA -ATAAAAAAAAACTATTATTTAAATTTAAATTTCAGAAATCCTAATTTTGA -CGCCGATTTTTAAAATTATAAGGATTTGTTTTTCCTGCAAATTCTTTTTT -AGAAACTTACAGTTTGTCGGTTTGTCGATAGAGCGTGCTTATTCACCAGG -CTGTCCATTACAGTTTGATCTACAACAGTGCGGGAACTTTTTTTTTGCTT -TTTGTCCAAAAGACTGTGATATCAGCACGTTCTTAACCATGCAAAATCAG -TTCCGCATTTTTTGTAGATCAACGTAGATCAAACCGAAATGGGGCACTCA -GACACCATTTGGGGGGCCTAGAAACCGGTCCCTTTCTCATTCAAAGTGCT -CTCTGTTATCAAGTCTCCCACGCTTTATGCATTCAACTTTGTACAGTTCA -CACGAGCACCCACGACTTGATTATTCAACATTATACAGAACTAACTATTC -GAATCTCAACATGTCTTCTTGCCGAATTTAATCAACTTTGACTTCTTCTT -CTTCTTCGACTTCTTTATACAACTACTCATCTTCTAGTTGCCCCTCTAGT -TGCCTCACACAAGCAAAATTTCTTTTGAAATGAAATTTAAACGAATTGAC -TAGTCAAAATTTCATCAATTTTCTACTAGAGAGAAGCGACGAGATTGACT -TTTGGCAAATATAGAAGAGAGAGGCACCGAAAATGAATTAGATTTAACAC -AACAACGAGTAGATGAGTTGTGTGTGTCAACGATGATGATGATGATGAAA -AGAGCAGAGGAGCAAGCATGAGTGATTTCTGCGGCGGAGGTCGCGGCGGA -TGAGGAGCATGAAGAAGGCTAACGAGCTGTATGGCGATGCGGCTAAAAAT -TGATGATTACTGTAGATTTGGAGCTTTACACCGTTTAACTGGCTACGATT -ACATACAGACTTGTTTTAGAATATTCTGTATTTGAACCTAATAATACAAA -TTGCCGGTGTGCCGATTTGTCGGAAATTTTCAATTCCGGCAACTTGCCGG -TTTGCCGATTTGCCGTAAATTTTCAATTCCGGCAACTTACCCGTTTGCCG -ATTTGTCGGAAATTTTCAATTTTGGCAAACTGCCGGTTTGCCGATTTGCC -GGAAATTTTCAGTTCCGGCATTGTGCCGGTTTTCCGATTTGCCGGAAATT -TTCAATTCCGGCAATTTTCCGGTTTGCCGGTTTTCCGTTTGCCGGATAAC -AAAGTGTTTAGAGGGATTTTTTTATAAGAAGGAAACTCTTAAAACTGTGA -CTTTTTGAAATTGTTTCCCGTTTTCTTTCGATATTTTCATAGATTTTGCA -AGAATGCGTGCAGTTTTGCCAGTTTAGACGTAATTGAATTTCTGAAATTT -CAAAAAAAAAAGAGCAAAATCATAAATTTTTGACATTTGTCATTTTTTCC -GGTAATTTGGCGATTTGCCGGAAAAAAATCATTTACCGCCAACTCATGGT -ACGTCTAACCGCAAAAATTTTTTGGGAGCCTTTTCTGGCTTTCTTTCAAG -CTATCGTAATGTGACCACACACCTTTCTATAATTTTCAGTATTTACGCCA -ACCGAGAAGATCACAGTAGTTTAAGGTTATGGTGCAGTTTCTGGTCAATG -GATCAGGTCTCTTACCGCGAAAATTTTAATACCGTGAATGTGAAGCTTTG -AAAATTTTCTGCCGTAAATTGTCAATTTTCTGCCGCACTTTGTCAATTAT -CTCATAAAGGTCACTTAAGTTAGCCAAACCGTGAGCCAAAACTGCCCCTT -ATTCCTCATGCCGTCTTGGAGGAAATCTAGAGCAAACCCTGGTCCATATT -CGGACAAGGTCCCCTTTCTTCCCCCAAGCGTCTATCTAACTTTTCCTAAC -TACATATAACGGAATTAATAATCCTATCCCCAATTTAACGTGTCCTTAGT -TCTCTCCCTCCTCACCGTCTTCTAGTTTCATCCATGTCTCGCCTCATTTC -ACCCGATTGACGATCATCTCGGCTCCACACTTTGACACCATAGCGCGAAT -GAAAAAAAAGAGTGAGAAAAGGGGAAAAAAGTTGCTGCCCTATTATTAGG -AGTCAAATAGACACACACACACACACACTCAATTTTAATGGATTACGCAC -GATTTGACACCATCGACACCAATTTGGAAATGGGGGCACATAGATACATA -CACAAAAGGAGTTGTACTACTAGTTTTGGAACTAACATCATTCTAACATC -TTTTCATTTATGATTTGATTTATGCAAATGTCCTTGATTCGTGACTTCTT -GTATAGTAGTTGGGATAAGTATAATCATGGTAGTTGCTCAAGACTAAGCT -CTTTAGCAGTTTTAAGGTATGCCCCAGTTCGGGATTCCGGCTTGCTTTAA -GATTGTGTCAGGTCCGGCCCAGGTTGTCTAAAAAATACAGGTCTGCTCCA -GGACGGTATACCATCACTATATATAAAGCACGTGTCGTTCCGTCACTTTG -TAGTTTGATCTTTGATCTTTGGTCTTTGAACTCTGTAGTTTGTAGTCTCA -TCACACAAGAGAGGTCACATAGGCCCGGCCCCTTTTGTGACGTCATCACA -AATTGGCGGGAAATTCAAATTTTCTGAGAAAATATTTTGGCGGGAATTTA -AAATTTAATTTTTTGAAAACATTTTGGCGGGAATTCAAAATTTAATTTTT -CAAAAACATTTTGGCGGGAATTCAAAATTTAATTAGACTGTTCTCGGTTC -GGCCCAGATATATCCAAAGTCTTTCTCAAGACCACTCTAGATCTGTTCTA -CTGTTACCCAAGACTGCCGCTCCACACCCTGTATAAGTTGGCCCTAAGGC -TCCACTGAGTTTGATCTAAATCTTGCCAAGCCTGTATCATACCTACCTAG -GCCCACCACAGGTGCATCTCTCACAGATCTTCCACAGGTGTTTCTAAGTC -TGCATCAGATCTGCACCAGGTCTGTTTTTAGTTTTGCCTGGGTGCAGCCC -AGTAGTCTACCTCACTATCAAGCAGGTCCTGACACCAGTTCCTAGGTCTC -ACATTCAGGCTTCTAGGCGGATAGTCTACCTAGCTAAAGCTTCAACCTCC -ACTGTTTTAAAGGCTTCCCCTTTCTCAAACTTCAACTAACATTAATACAT -ACATATGTTATTAATTCGCGACTCGGCGACTAATAACAATAATTCAAAAC -CTCTTTCCTGGCAATGCTTCCGGTACTCAACACGGAGAGAGAGGTGGCAG -GTATCCGGTAATTTATTAACTCGAGCCGCGCACCCTGGCTCCCAGAGCAC -ACAGCCCCGATGATCGCTCATGCACGAGTACTCACGAGGTGGTGGTGAGA -GGTAGGTTGGAGAAAGCGGTTCTACCTTCACAAATTTCAATTTCAATTTC -CTCTCTCTCCGTTTTACTCGGGCCCCCCCCCCCCCCTTCTTTCAATTTTT -CGCCCCAAATTTGTGCTCCTTTAATGGAAAGTTTTTGAGTGTGTGAAAAA -GAGAGAGAGAGAGACACCTTCGTGTCACGCCAATTGCACTAATATGTGCT -CTCCCCACCTAGAGCTACCAAAATGTTCAATTCACAATTTCCGAACTAAT -TCGTGTCAAGTTTTTAGTTGGTCCTAACTCTTTGGCCTAGAAATTTAGAT -TTCTAGGTCATCCATCTAGATGCGGTGGCCTAGAATCCTAAGCTTTAGAT -GCCCAGGCCATCAGGCCTAGATTCTGAAATGTTGTGATTTTTCTAGGCCA -TCAACTTTGACCCAAAAGCCCTCTAATTTTTAGGCCATGAATCTAGGAAC -CTATCTAGAGGCCTGATCCTTTGCTTTCTTGCCAAAAACTAGAGATCAAT -GCCCTAGAAGCTCACAAAACTTTGGCCTAATAATTTCTAGGCCACCAATT -TTTTAAAGATAGCCTAAGTCATCAACCTAAAATTCACGGCTTAGAAATCA -TGAAATTCGCTTTTAAGGCCTCTGACTTCATAGCAGTGGCCTAGAACTCC -AACTGTCAGTAGTCTGTAAAAATGAGCTTTTTGGGCCTCGAACATAACAT -GGGACATGGAAGCCTAACATTTTTAGGCCACTGACTTTAAAGCAATGGCC -TAGAACCCCGTTTTTCTGTAGCCTAGACTATCATCTAGAAATCAATGGCC -TAGAATCCTAAAAATAATATTTTTCGGCCACCAAAATTTTAGGAATGGCC -TAGAAATCTATTTTGTTGTATTCTAGGCCACCATCGACAAAGGAATGGCC -TAGAATCCCTAAGAATGTGATTTTTAAGCTACCATCTATGTACCCTAGAC -CAATATTTAAAATTCAATGGCCTAGAAACTAGAATATTTGATTTCTAGGC -TACTAACTGTTGTGTGCTGTATCCTAGACTATCATCTAGACCCCAATGGC -CTAGATTCCTGAAAATGTGTTTTTTCGGCCTGAAATAGGCCTAACATTTT -CCAGTCCACCAACTCTTTTAAGATGACCTATAAGTTTAATCCTAGCTTGC -CAACTATAAATAATTGGCCTAGAAGCTCCTAGGCCACCATCTAAAAATCG -ATGGCCTAGAAACCTCCCATTTTTTGTATCCTAGGTCACCAACAACCACT -GATGCCCAAGACCCCGGCTTCTTATTTCATAATGAGCAGCAAAATGAGCT -ACCGTACCCCTTCTACACACTTCCTCCCTCTCCACACCCATTTCCCCTCA -TTTTCGTCTATTTTAGCGGCGGCGGCGCGGGATAAATTTGTGAGAGGTGA -GCTGCTCACAATAATGGGCTTGTTGTAATAGGCGGCAGTGGTAGTGGTGT -ATGGATAATTGTGAGTTCCCAAACACACAAAACTTTTTCGCCGCAATTGT -TATGCAACCAACATAATAATAATAATAATAATAAGTGAATGTGCATAAAT -GTGCTCTTTTTCGCGTCTCCACACCCGTCCTGATGGGGACGACGCTTCGT -TGAATAGTTGGAATAATAATAATAAATTGGAAAAATTTGGGCGCCCCCCT -CCTAACACCCTAACACACACGAAATTTCATTTCGCGCGCGCTTCGAAAAC -AAATTGAAGACAAGTTTTTCGCGAGACAAGTTATGATAATTTGTGGGATG -TGGTCCCCGCCGGCAGCTTCCATCAATTTGGAGCAAATTTGTGCTCTCGC -AAACCTTCTTAAAGAAGGGTTACACTAACAAAGTTTGTCGGAATCGATAT -TTTTGTAAGTGGGCCTGAACCCCCGGTCTTTAAATTGATAGGCATTCTAG -GGCTTCCATGGGAGACAGGCGCGGTTTTAGGGCCTGACGTCTGCCTCTCG -CCTCATTTCTGCACTATGGCGAGAAGCCAAAGACTTGGTGTTCACACTTT -GTGCCAGAGTGTCTCATTTCGGCTTGATCTACGTAGATCTACAAAAAATG -CGGGAGAAGAGAAGCAGAGTTCTCAACTGATTTTACATGGTAACCAGAGC -GTGCTGACGTCAAATTTTTTTTGGACGAAAAACTCCCGCATTTTTTGTAG -ATCAAAAACCGTAATGGGACAGCAGGGCTTTCCACCAGAATAATTCCACT -TCTTCACAATAAACCTATATATTTTTTGTCAAAATCTTGAGAATTTCCAG -AATTTCAACGAAAACCACTGCTAAAAGTGGTTCTTTCGCCGCGGCCGACA -CTTCTCGGGTTCCGCGCCGCACTATAAAGGAGGCGCGGCGCGGCAGGCGG -CGCGAGGCAGGCGTTTTGGCGCCTGCACGGATGCCCTACACCAAACTGCA -AACATTTCTAGTTCCGTTTTTCGGACTCTACGCCTTATTTCGGTCTTTTT -GTCACAACTTCGCTACACTGTGTTTTTCTCCACTTCTACGACTTTAAAGG -AGGGCGCATTTATGCGACTCACGTGATGTCAGGCAGTCTCATTGCGGTTT -GATCTACAAAAAATGCGGGAAACTTTCCACCAGGAAATTGTGACGTCAGC -ACACTCTTGCGAGATCAGTTGAAAAGTCTGCGTCTCTTCCCCCGCATTTT -TCGAAGATCAAACCAAAATGGGACATTCTGACACCACGTGGTGACTTAGG -ATCAATGTAGATCGTTTTATAGGCCATCCATTGATTTTTAGAGCTCGTGG -CGGGACCATTTTAAATGAATTTCCAAAATTTCCAAAAACCTAATTTTTTT -GTCAATTCACAAGTCCCCCGGACCCCCTCCATTGTCCCCCCGTTCACAAC -TTCCTCCCTCGTTAACCACCCATTTAGCGGGACAAAATTAGCGAATCATT -GACTCATAATCAAGTAAATCGGTGAATGCTCGACGAGCAAGAGGGGGGGG -GGGGGGTCTAATCGAATTACGGGGGAAGGGACCCCTCCGCGCGACACCTC -GCTGCCAATTAACAAGTCAACTACTTGGGGGGGGGGGGGGGCCTCCTCAC -AACAATGTTTGTATTATATTTCTTGTTATTATGATTATTATTATTATTAT -TATTAGAAATTAGTTAGTATGAATATATAATATCAACTAAAAACAAAATG -ACAGTTAATAATAATTGAAGTCATCCAATAGGTGCCAATTAGTCAAAGAG -AGGGGTCTGTGAAAACAGAAATAGAAGAGAGAAGGCGGGGGAGAGGGGCG -CTCTCAAATAATTAATCTGGGCTCCGTGGGCTCGTAAAATTCCGATAAAA -TGGCTTGTTTGTAATTAGCTAATTCACGGAATCTTTTTTTTTTGTTGGGG -TTTTACTATGTTTTTGAACAACTTCCTGTTATAACATGTTTCAAAAAAAC -TATTGACCTCAATGGGGACTTGAACCCTGGTGTTGAGATTGGTAGTCTGT -TAACCAGTACACCAAAAATTGCAATTTTTGATTTTTGTTTTGTCTATTTT -TTTGAATACAACGATAAGTAAGGATCATTTAGATTTAGAAAAAAAAAATC -AAATTTTGTAAAAATTTTCTAAAAAGTTATGAACATTCCACTTTCACAGA -TTTCTGGCTTCCCTCATAAATTGAAATGGAAGAGTTTTTGGCGAACAAGG -CCAGATGCGTTGCGTGTCGCGTCGCGGCTCGATTTTAGTTGTAATGCATT -TGTCCGTGTGGAGTCCACGACTTCCCCCGTTGTCCGCCAGACGATTGTAA -ATGGAGCGCGAAAAATTCAATGAGAAAGGCCAGAACCCCGTGCACTTTTT -TGTTTCTAAAACTGAAAATTTTGAATTTTGAAATTTTCCTTGGTTTTACA -GTATACAAAATCTTAGTTAGAGTTCGCAAAAATTATTGACACTGGTGGGG -GCTCGAACCCCTGAGGTGGCATCCCTGTTAGCCACTGCGCCAAAATTGCT -AAAACTTCAAAAAAAAAATTTTAGACCGTTTTTAAGGTTTTTAGACTTCC -GACTCTTCAAAAATTCCTATACAAAGTCTTCGTAAAACTAATGACTGGGG -GGCTCGAACCCCGGTCATCATATCAGTAGTCATCCCTGTTAGCCACTACA -CCACTTGCCCAGACGTGTTTCTGGTCTGTTTTACGGTGCAGCGTGGCCTA -AAAAAAACTAGTCAGCCACCAATTCGAAAAGTCCATAGACCAAGTTAATA -TAGAAATTCTTCAAATTCGAGCCAACCAACTAATATATTCACTAACCTAT -TTTCGCCGTGTTCTTCCTGTGTGTGTGTGTGCCCCTAGTTAGGCCTAGCC -CCCCCCCTTATTTTACTTGCTTCACAATTCAATTGGCCCCCACACAGTTA -CAGTAGTCATAATCATTTTGTGTCGGGTTTTCGACACATCGTTTAAACGT -GTTACCTCTCTCGGGGCCCCCTCTTCTCCTACTTCTTATTTGCTCAAAAT -TTGCGCGTCGAAATTTCTTCGTCGTGCGCTGCCCCTTCCGAATAATCAGA -TTCACCAATGTATAAAATAGGCCACGCCTCACTTTTTCCACACCCATCAT -CTTCCCTCAACTTTCCTCTTCTCAAATGCCTAATCAGCCAGTTATAACGA -GGGTGCTCTTCGTGTGGCGCCCCGCCCATTTTATTGCTCCTCTCACGCTT -CATTCTCACTTTTTCTGGGGATCCTTTTTTTTGCAGACCTAAAAATTTGA -GCTCAGCCATATTTTTTTTGTAAATATAATCAAAAAAAAATAGACATTAG -TCAAAAAAGTTGTTTTAAGCCTAAAAAAATTTTTCAGATAAAAAACGTTT -TTCTTTAACTTTTTTGAACAGTTTTTCAGTGAAATATTTTTAAATTTTTA -TTTTAAAAAAATGTTTGTTTATCTAAGCCTAAGCCTGAGCCTAAGCCTAA -TAACCCTAAATAGCGTCAGTGTGGGAGCTCACGCTCCCCCACTGACGCCA -AGCCTAAGCCTACGCCTAAGCCAAAGCCTAGGCCTAAGCCTGGGCCGAAG -CTGAGACCTAAGCTTAAGCCTAAGCCTAAGACTAAGACTGAGTTCAAGCC -TAAGCCTAAGACTAAGCCTGAGTCTCAGCCTAAGCCTAAGCCTAAGCCTA -AGCCATTTTTAAAAAGCTTAAAAATTTTTGCAATTACTATTTTTTCTGAA -AATCTGTAAAAATATCGAATTTTTAGAGTTGCTATAAAATTTAAAATAAT -ATTCAAAAAATAATCCGAAAAAATTAAATTTTTTTTCTCAAAACGTAGAT -CATACAGAATCAGCTTTAAAAAATTCAAACCATTTTTCGTTTCAAAAATG -TTCAGAAAATTTGTAAAACTTGAGTTTTGAAGAAAGTTTTCATAAACTAG -CTCTTGAATAGGGTTTTTAAGTAGGCGTTAAAACGCTTGCCTGCCTGACC -TTCAGGCGACTTTCGCCTGCCTGCTTGACTTTCAGACGTTCTCTGCCTGC -CTGCCTGACTTTAAGGCGACCTCCGCCTGCCTCTCGCCTCAATCCGAGCC -TTATCTCTTAAAATGTTTTTCATCAAATTGATAAAAATACGGAAATTACA -AAATTTTGTAAGTTCATGCCAAAATGCAGGCATCAGGCCCTGAGGCCACG -CCTGCCTAGGCCTCCGACTTTCGTTCTACAATTGTCGTTGCCGTTTCCTT -TATCCCATTTTCATACCCCAAAGTTATGATTTTTCTTACACCCCTTGCGC -TGCTGCTGCTTCCGCTCCCGTGATCTTATGAATCAGTAGTCAGAACTGCA -GGTGTGAATCTCCACAATGATCACCCAATAAACGCGAAACACCATTAGAA -ACAAAGTGTCCCCCGTTTTTTTTTTCTGAGAGTGTCGGCACCCCCCTAAC -ATATGCGGGGAACATTGTCTCAAGTTTTGTGTGCTCCTCCAGCTCCTCCA -TATGGTTACCGTAGTCCCCTGTCAGTGTTGTGTAATTGTTGTTGTAACTA -TCCCCCGAATACCTCTCCTCACATTCATTCACAACACAGGTGTCAACTCA -ACTCTCAGTGCTCATTTGAAGTTTATGAAGTTTAGCTTCCGGGGATGGCT -CTCCTGGGCTCCCCGCTCCCTCGAAAATTTAATTAATTGCAAGCACATGT -GGTGGTGGTGGGGCGAGCTCCGCGCTTCCCCCCCCGCCCCGATTCTCTCT -CTCTCATTTGCGACTCATTAGATTTTAAATCACTCTCAAACTTTCCACTT -TTCCAACTTTCGCGTTTTTTAAATTTTTTTTTCACTTTTTCCTCACAAAT -TCATCCAAAAAAATTTCCAGAGTTGCCCCGCCCATATATTGGCTAAATGG -TAGAATGGACGTGGCACTTTTGACAATGGATGACAACAACAAACCGCCGA -CAAGTTCAGAGTCTACGGAGAGTAGGGGTGAGTTTGGCCGGGGGACCGAT -AATTTTTAGGCCAAGACTTCTTTTTTTTTAAATCATTTTCAAAGGTACGT -TACCTTCACGTGGTGCCAGGTTGTCCCATTGCTTTTTGATCTACAGAAAA -TGCGGGATTTTTTCCCCAAAAAATGTGACATAAGCAAGTTTTTAAATCTT -TTCTCCCGCATTTTTTTGTAGATCTACGTAGATCATACTCTGACACCACG -TGTACCTTGAACCTCCTGGCTTTCTGAAACTAGAGTTCGTCGCTAGAGCG -CATTTGCATTGTCGTGGTATTTAATTTACAGTACCGCCAGAATCATGTCG -CGCCGCTTGTAGTCTAGTGGTTAACACGCTTCAGCTCTAAACAATAGGTC -CGGGGTTCGATTCCTTGCAAGATGAAATTTCTTTCTCAAGATGGAGGTAC -ATATGTGCTTTAAATGTGCACTAGAGATAGCGAAACTGATACCATGGTCC -GACATGTACAGGGTTCCGCGCGCGCCTAGGGCCTCCAAAACGCCTGCTGC -TCCAGTTTTGCGGCGACCTCCGCCTAACTCGCGGCGCGCCTTCTGTATAG -TCACGGCCTTCTGTCTTCCCTCATAAATTGAAATGGAAGAGTTTTTGCCG -AACTAGGCCATCTTGGCTCGGTCACATCTGGGCTCGATTTTAGTTGTAAA -ACTAAATGTATTTGTCCGTGTGGAGTGCACGACTTGCCCACGCGTTGACC -GGCGGGCGATTGCCAATGGAGCGCGAAAAATTCAATAAGGAAGGCCAGAA -CCCCGTGTATAGTGCCGCGCGTGGAGCCCGAAAAGTGTCAGCCGCGGCGG -AAGAACCACATTCCATAGGACTAAAAAACTAAAGTTCTCTCTTTCAGAAA -CATCACCACCAATGATGCCAGATTCTGCGGAGATAATGCGACTTCTTACG -GATCCTTCGACGGCTCAGATGTTTGGTAGGTCATAGATCAAATTTTTTCC -GCAATTTCCCGAAAAATTTCAGCCAACGAAAACACAAAATGTCAGCTGGG -ACGGATTCTCGCCGCGTCAGGCTTCGACGAGGCGAGCCTCTCCTCCTCGT -TTCCGTTCGATCCGACGCTCGGCGCGTTCGCCGACATTTCCCAATTCTCA -TCACTCCGAAATTCGTCGAAAACGCTGAAATGTCCAAAGTGTAATTGGCA -CTACAAGTACCAGGAGACCCTTGAAATTCATATGAAGGAGAAGCACAACG -ATGTGGATGTCAAGTGCATGTTTTGTGCCGAGAACCGTCCCCACCCGAAG -CTGGCTCGCGGTGAGACGTACTCGTGCGGTTATAAGCCATATCGATGCGA -TTTGTGTCGGTACAGTACGACGACAAAGGGCAATTTGAGTATTCATATGC -AAAGTGATAAGCATCTTCATGCAGTGCAAGAGCTCCCGAATAGTATAGGT -AGGTGGGGGGGGGAGGCGAAGGGTACTGTAGTTTTCGTGGTGGGACCCAA -GAATTTGAATTTCACAAGAATTTAACTGTTGAACTCGAACTTTTCGATTC -TAGGGTCTCGCCACGCAAAAACACTTACGCCAACTTTTTTGAACCCTAAA -AAATGATACTCAAATTAGAGTTCTCAGTGAGCTAAATTCGATTTTACAGT -ATTTTTTTAATTTGACGTTCTGTGGGTCTTACACTCAAAGGGTACTGTAG -TTTTCGTGGTGGGACCCACTTGTCCAAAAATGGACGTGATTATATTTGGA -TTAAAGCCCCTAACTTTTCTGATTTTTTTAATAAATTGGTTTTATTTTGA -AAAGACTGAGAAAATTGAGTTTAGATCGAAATCAATAAAAATCGCGTCGA -GACCCAAATTTCCCGGGTCTCGGCACGAAAATGGGGGAGAGGGTACTGTA -GTTTTCTGGCTTCTCTCATAAATTGAAATGGAAGAGTTTTTGCCGAACTA -GGCCGGCCATATCTGGGGTAGATTTACGGCGCGTTGCGTGTCGCGGCTCA -ATTTTTGTTTTAAAACATGAGGAAGACCAGAATCCCGTGTTTTCGTGGTG -GGACCCAAATGGGTCATGATTATACTTATTTGAAAGGCCTTAAGCTGAAT -TCAGATTTAAGATTTTTATTATTTTAATTCAAAAATATCCTGAATTTTCC -AGAATTCGCAGCCAACTTCGCGTGTGGTGCTCCAGTTAGCCGAAGTAGTC -CAATCGAAGAGTCCGACGGATCCCTGGTCTGCTTGATCTGCGGTATCTTC -GCCACCGAATCTATCGCCGAAATGATGGAACACGTGGAACAAGACCGTTC -CAGGACGTTCCAAGGAGACGTTACCGTCCTAAACGGGAGCTTCCGGTGCC -ACTTGTGCCCGTATAATACCACATTGAAAGCCAATTTTCAACTACACACA -AGGACGGATAAGCATCTGCAAAAGGTTCAAATTGTGAGTTTTGTATTCCC -CTCTCATCATCTTCTTATTTTTATTGTGTCGCCCTTTTCCCATTTTTGTG -TGTCTGTGTGTGTATGCGCACCGATTTGCATATACACATAAATTCATGAT -TTAATAGCGTAATGAGTAATATTTGCTTTGCCAAGGCTAACAGTTTTCGT -ATTTTAAAGCCTTTTTTCTACAATTTTTGAAAAAAAAATTCAAAAATTTG -AACATTTCAATATATCCCTAGAAAGCTCAAAATTGTAGTGAAAATTTTGA -ATTCAGTACGCTGAGACCTTTAAAATAAGTATAATCATTACTAGGTTTTG -GTTCTGACGCGAAAGTGTTCGTGGCGGAGCCCAAGCAAGGCGTAATTGAT -TATAGGGTCTTTGCACGCAAAAAATTTAAGGTCCGGTAGGCGTGGCGGGG -AGTTTTTCTTGAATTATTTTAGTTTTTCATAAATTTTCAATTTTTTGGAA -TTTATTTTTCTCTCCCTTCCCCCGCGTAGTCTGAGCCTAAACCTAAGCCT -GAGTCTAGGCCTAAGCCGAAGCCTAGGCCTAAGCCTGAACTTAAGTTTAA -GCCAAAGCCTGAGCCTAAGCCTAAGCCTAACCCTAAGCCTCAGCCTCAGC -CTAAGCCTAAGCCTAAGCATAAGGCTAAGCCTAAGCCTAAGCCTGAGCCT -AAGCTTTAGTCTAAGCGTAAGCCTAGGCCTAACCCTAACCCTAAGCTTAA -GCCTAAGCCTAACCCTAAGCCTAACCCTAAGCCTGAGCCTAAGCCTAAGC -CTAAGCCTAAAGTCTTCGTGTCGAGACCCAATTATACTCAATTGAAAGCT -CACAATGAGCTGAATTCAAATTTCTCAATGAAAATGTGAAATACTTTGAT -TTTACGGTCGGTGGCTTTACTCCCCCCGAACTTTGGAAAAAACTCTGAAA -TTTTTTTTTCATTGAATTCCAACCGGTTTCTACTCTCTCCGGCTATTAGT -GTATGTGTCTTTCACTTCTTTGTTCTCGTCGGGTTGTTCCCAATTTCCAA -CCCTCGTTTTACTCATTCCCCCTCTCATTTTCCCAATCCAATTAGTTATA -CCTATGGGGGGAGGTGACGGTGATGATTCTCGCCATTAAGACCCCCCCCC -TCTCCTGGGCCGATTGAGATGGAAACAAAACAAAACTGTCAATTTGAATA -AATTCGCAATTTGACGCGGGCGGCGCAGCGGGTTGCCGAGAAGGATATAA -ACTGGGGAACTCTACTTAGCCCGTAAGGTGTCGGCTGCTACTATTTTATC -ACATCTCAATTTTTACGGAATCCCGTAAGGCGTCGGCTGCTTCTCTGTTT -TTGCATGTTTTTACAATTTCGGCCCGTCCGATGTCGGCTCCTTCCAATTG -TTTTGCAAAACAATTTAAAATTTGAGCCAGCAAGGTGTCTGCTGCTCCGG -CTAGATTTCCAATATTTAAATTTTGCACAATCCTGTAAGATGTCGGGTGC -TTCTCAGTTTTTACAAAGTTTTTTCTCAAATACGGCCCGCGCAGTGTCGG -CTGCCACCTCGTATGTTTCATCAAACTTGAACGATTCGAGCCCGTTAGCT -GCCCGCTGCGTCTTTTTTTTTCTCAAAATTCCAGCCCGTAACTTTTCGGT -TGCTGAAATAAACAAAATTTTTACGAAATTTTAACCCTTGAAGTGTCGGC -TGCAAATTAAGATACCTACTCATTCAGATTCCCGTCTCTCCCTCTCCCTC -TCTCTTCATTGGGGAGTCCTTCTCCCGAGAGAAAATGAATAAAACTGTCA -ATTTGAATAAATGCACACAGCGGGAGATGTTTTTCTGTGAAGACTCCACC -GTCTTCTTCGTCTTCTGCCTATTAAGCGATGATCCTTTCACTTAACTGTC -GTTCCCTCCCCCTCTCCACATACCAATAAACCTTGCCAAAAGGTCGAGTA -TGCTTTGCCCGCCATCGTGCCGGAGGTCTTTTTTCTAGACTATGATGTTT -TTTTTTGGAAAAACATTTTTCTATGGATCGATGCACCATGATGCCGAGTT -GCCGAGTTTTCAATTTAATCAATTTTGAGATTTCAATTTTAGTCCCTTGT -ACATATTAATTTTTTTGGAATTAACATTAAAATTTGATAAACTGTAGCTA -CAACTATTTATTTTTGTGCCAAATTATACTATCCAATTTGACTTGTCTCT -TGATGCACCATGACTAACTTTCTAAGATCTCATATTTTGGCCTAAAATTA -TTCTCAAATATTTAAATTTAAACTTTAATCCTATTTTTTTTAATTCCTCG -GAAAAAACCCCGTTAACAGAATTCCCAATTTGGCCTCCAGGAGCTTTTGT -CGATGCACCATGTTCAACATTTTTTCAAAATTTTGCTCATTTTGACCTGA -AATTTTGTCATTTTTTTATGTTGCAGGGTTTTTTATTTTGTGATTTTTGC -GATGAAAACCACATTATGTGGATGAAAAAAGTTTGGAATCTAGTTTTCCC -GTTAGGCTGCCATATTGCTATGTAGTTGATGCACCATGTCCAGCTTTCTG -AAATTTTACTTTTTACATTTTTTGCTCAGTTTGACTTTAAAATTTTGTTA -GTTTGACCTTAAAATTTTGTCAGTTTGACATTAAAAATTTGTCAGTTTGA -CCTTAAAATTTTGTCAGACATATAATTTTTTTGTGTTTTTTGGTTAAAAA -ATTGAAGGTTTTTCGCGATATTTAACACATTACATGGAAAAATTCTTTTG -ATCGAGTTTTCTAATTTGTTCGTGTAGCAAGTCGATGCACCATGTCCAAT -TTTTTAAAATTTTACTTTTTTTAAATTATTTGCCCAGTTTGACCTTAAAA -TTTTGTCAATTTTACCTTAAAATTTTGTCAGTTTTACCTTAAAATTTTGT -CAGTTTGACCTTAAAATTTTGTCGGTTTTACCTTAAAATTTAATCAGACA -TATAAACTTTTCTGTTTTTTGGGTTTAAAAATTGATTTTTTTTGCGTTAT -TTAACACATTAAATGGCAAAAAATCATGCACCATGTCTAACTTTTTCCAA -AAACACTTGATTTTTCCCTAAAAGTTTGTCAGAATTATACATTCCTTAAG -TTCAAAACCGTACGGAAAAATTAGAACCCATGTCGATGCACCATAAGCTT -TGGCTCGCTGAGCTTCGTTGCTGCTCCTGCATATCTCTTACCCCCTCTCG -CCGCTCTCAGAACATTGACCAATTACTTGGGCGGAGCGCCGTTTTGAAGT -CGATTGGCTGATGAGTGTCCCGCCCCGCCCCCCGTCCCGCAAATTTTCGG -AGGAACTTTGCACTGCACACACACACACACAAATACACAAATACACGCCA -ATTATTGTCGATTTTTCTTGAAAATTTCTTCATTATTGTATATTGACTTT -TTTTGTCGTCCTCTAGTCTTCCGCCATCCTCGGCGTCTTCATTCGTTTCA -TTATTTCATACACCTGTTACCACTTAATTCGCCTATTATCCTCCTCATTA -CCTTCATTTTTCGGTCGGCGTTGACGTCGACATTGGCGCCCGAAATGAGA -GGAATAGGGGGGGGGGGGGGGGGGTATAGACGACGGCGACTACGACAACC -ATGATGACGATCATTTTCGTTCTATTCATCTAATCCTGCTAACCGTCGAT -TTGTCCCCCTCCGTTTTTCAACTTACCAAAACTTTTCGGTTACCTTGGGA -ATTGGTCCCCTTTTATAGGCGCGTAAATTGACAACATATTTTGCTCACTT -TTTCGAAGTTTCACAATTTTTAGTTAGTCCGTTTTTTCAATCTGGCCGAG -TTTTCAATTTTCCCCGGCCAGGGAATTCTAGTAGTATTCACATAATTTTT -CTTATTTTTGGTTTTCTAGGCTACGATAAAACTCCCTATGCCCGGCAAAA -CTTCTAGGTCCCCCATTTTACACCTGACTTCCTACCTATCTGAAATGCCT -ACTTGCCTTTCCACCTGACTAAGATGCCTACCTACCTAAAACCTACCTAC -CGAACTATAAGATGACTCCTTACCTACATAAGACTTGCCGATCTGAAATA -CCTACCTACTAAGACATGCTACCTAGCCTACCTATCTAAGATACCTACTT -ACATATAATGTACCGACACAAGACTTGCCTACCTACGCAAGGCATGATTT -TTTAGACCTACCTACCTGTACTTAAGATTTAAGACCTAGATCTTATTACA -TAAGAATTTTCATCTTAGATACCTACTCAAGATCCTACCAAAGATGCATG -CCTACCTATGACCTACTTACTTAAGATACCTGCCTACCCAAACCATACTA -CCTAGCGCTAGCGCCCACCTACCTAAGATACCTACTTACCTATAATTTAC -CTACACAAGACTTGCCTACCTACGCAAGGCATGATTTCTTATTGTTAGAC -CTACCTACCTAACTATAAGTACTTAAGATTTAAGACCTAGACGTTATTGC -ATAAGACTTTTTGTCTTAGATACCTACTCAAGATCCTCTTACCCAAGATA -TACCTAGATGAACTTCCGACCTAAGATGCCTACCTACCTAAGCCCTGTCT -ACCTAAGACCTACCTATAAGAACTTCCTACCTAAAAACACCTACCTAAAA -TAAGCCTTCAAGCTCAAAAATTTTTAGAGCATCTGCATGAGATAAGGCTG -AAAAATATTAACGAATAAGTGGAGAGCGATTAAGTTCCTGCCCTCTTAAA -GTTCGGAAGTAGGCGCCGCAAAACCCCATTACTATTGCTCATCGAGCCAT -TTCCGGTACTCAGTACTTTTTCATCCCCCACTCACTTTTTTCTCTCTTCT -CGATTTGATTTGCATTCTTTTTCCCCTCGAATTTCGAGCTGAGCCCGGTT -GATTTCCCGCACTTTCTCAATTCTTTCCTTAAGCCACCCCACTTGACCAG -GAGCAGTTCATTCAAACTCGCACTTAATCATATTATGACCCCCCCCCCCC -ACCCCTCTTAATTTCCTAATCCCCCTCCCCCTCCTCCTCATAATGACCAA -AAGACAATTGCAGGCGAACCATCTTCGTGAGGGAACCCGTCCGCACACGG -CAATCTACCGTCTGTCGAGCACAAAGACGAGCGTTCAAGTGTTGTGTCGA -CAGTGTCAGGAGGTGATTTCCAGTGGCGAATCGCTCCGCGAGCATCGACA -CTTTCACGCCCTGCTTGCCGCCAAGCAACGCTTGTGGCGATGCAAGTTGT -GTAGGCTGGAGTTCGACTCGGTTCTTCTTGCAGCTGGTGAGTCTTGATAG -TTTTTTTTAGGAAGAAATTATATCTGTAAGTCCCCCAAATATAAGGCCCC -CATGTCCATCTTAATGAAGCTTCTGACTTAATTTTTACTATAGATTTTGA -ATTTTGTCTATCGGAAGAAAAATTAGGTTCACCATGATTTTTCGATTTTT -TCGATGCACCATGATTTGTTGCTAGAATAGAAAACAATTCGTGGCCAAGT -TTTTTAATTATTTCTTTTTGTCGGCCAAGTTGCAAAAGTCACCTTTTGTG -TATGGATGCACCATGACCCTTTTCAGTGGATTTTGGCCCAAAAATCGTCA -AAATTTTGAATTTTTAAAAATCAAACTCTAAATTACCTTTTTTTTTCAAA -TTTTCTTAACAAATTGGAGCATTTTAGAAAGTTCCGATGCACCATGATTT -TTGCTAGAATTGAAAAAAAAATTGTCGGGCAAGTTGCAAAACTCACATTT -TATGTATCGATGCACCATGACCATTTTCGAAATTTTGCGGTATCTATTCA -AATAGTGCACATAGCCGTAAAACATTGGTGGTGGCCTCGTTTTCTCATGC -TTCGGCCACGAAAAAAAAAATTCTACAGTTTTTTGGATCGATGCACCATG -ATTATTTTTCAGTGAAAGCCTGTTTTTGCTTAGCTCAAAGGCCGGCTTAA -TGTTCCCACAAAACGTAATCCAAAAATTTAAATTTTACCGTCAAACTTTT -AGCCTGGCGTACACTAAAAATTGTAAAGTTTCAATATATCAAAAATATTT -CTGGCCTATAAAATTAAACCTGAAAGCTTAGAAATCCAAGATATTTTTTA -AAAATTGATGTCCAATACATGGGTGTGCAGCAAATCTTAAAGTTTGCCGT -GCTTAACAAACTCCGAAAAAGTGTGATATTTTTTTATGCTTTTTGGAGCA -CCAAAACTACTGAATTCGAGCTTAGCAAACGGCAAATTCGGCATATTTGC -CGCACACCCCTGGTCCACTAGTTAAGCAAAACCCACCGCTGAAAACTAAT -CAATTGGTGTTTGAAACGGTGTGTGCTACTACTAGAATTTCGCTGTTCAA -AATCTCTTTATTAAACACTTCTTTGTGTCTATTCTGCCCTTTCCTCCTCC -CCGCGCAAAATCCACTTGTACCTCTAATTACGGTCAACAAGTTTGCGGGT -TTAGTTTAGTGAATGAATTGTGAAATGAATGAATGAATGAATGGATAGGT -AGGTGTGTATGTATGTGGAAAAGTGCGACACACACAACCAGCCGTCCACC -ACCGCCACTACCACCAGCAGTAGCAACAGCCATCAAATATAATCCTTGCA -TTTCATTATTTCATAGTGTCATAGATAGTAGCAGGCCCGAGGTCCGAAAG -GCCTTGACAGCGGTTTATATTCATTTCATTTGACACCCCCCCCCCCCCCC -CCCCCTCCTACTATTCTTCTTCTCTACCACATACATTCACATAGTCAGGC -CATTCATGTTTTTCACACAATTTTGTTAATAAAGCCGCTCTGGCGCCACC -TCTCAGTAGTCCTTCTTCTTCATCATCATCACTCCCTCTCCCTTACCAAT -AACCAAAAACAGTCATTGATGCGTATCGGAATTATAATCGCGCATTTATT -GTAGGACACATGACTTGCCACGAGCCGTCCACTTGGCCCAACGAATCACT -TGGTGAGTCTCTTTACAGTGAATCTTGAAATTTGTGTTGTTTTGTTGTGA -AATATTGTTAATCGTTTTTTTATTAGTATCTCCAATTAGGCCAAAACTAT -AATCGTGAAAGAATAGTTTCTGCACATGGTGCATCGACCTGATATATCTC -ACTTTTTTTGGGCTTCATCAAAAACTTGTTAGCTAATTATAGTTAAGCAT -CACATCTATTGATATGTTCAATTTGAACAGAATATGGTGCATTGCATTGT -ATTGCAACTGAAACAATTTTATTGGCGCATAACATTCAACTATGTAGTTT -ATGTACATCGATCTTAATTACCGTATTTCCTCTATTAGTATTGCACCCGA -CTAATTAACTTTGAAACGTTATATCTCGGTTCATATTGAAGATATCAATA -TATAATTAACTATGAAATAATAGCAAAAGAACTAACAAATATTTTGTTAG -TTGACCATTTTTGAATAGGACAAACGATTACGGAGATATAAGCTGTCAAA -AGTGGACAATGGGGTGCAATACTAATTGTGTAAATACCTTATATCTCGGT -TAGCTTTGGTTTTAACAAAAATTTTAAACTGACAAAATATAAGTCATCTA -AATGTCTATAGTTTTGTAGTTAACAATTTTTTGATATCTTTAAAATGAAC -TAGCGATTTTCGACATGGTGCATCAACCTCAGTTACCTAGTCTAACTTTG -CTGGCTTATTTCTTAGTTTTAGTATTAACCGTTCATTTTAATATACTTTT -ATAGATAGTTAACAATTTTTTGATACCTTCAAACTGAACCGGAGCGATTT -TAGACATGGAGCTTTGATCCTATCTTGCCTTAATTTTCAAGCTTATCTTT -TTGTTGTAAAAAAAATTTAGACATGGTGCATTGACCTGAACTACCTGATA -TATCCTACTTGATATATCTTCAATTTTAGCAAGTTTTGGAAAAAAAAAAT -TTTAATGAAATCGATTTTTTTTTTCAATTTTCAACCTTCCGGCCAAAATT -TTCAATTGAGTTTTGACCTTTTTTTTTAACCCGGCAAAAATCTAAAAACT -CCCAAGAACAATCTCCCACAAAAAACTAAAAACTTGTGAATCTAGATTAG -TCAAAAATTTGCACCTTCTTCCCATGGGATGGCTCAATCGAACCCAGTTG -ATGAATCGGCCTGTGGGCCGCGAGCAGTCGCCGCTCTAATTTGGAGCATT -TGTATATATATAGCGAAGAATTTCACGTGACCAATGAAACCAATAGAAAT -CCAATCATATTTTTGTTTTGTCTCTAAATCATCTCTTCCCTCTCTCTCTC -TTGCCCCTCCTTAACCAATCAGAGACGCACACACCGCACCGCCCGTCCGT -CATCGTCATCGAGTTCCGCAATTAGTCGTCTATTCTCTCCGTTTTTGATT -GGAGATGGAGCGAAAATGAAAGAGAAAGAACGAGAGAGAGAGAGAGAGAT -TAGCTCTTAGATTCATTCAACTAATCTTGAAATAACACACACACACACAT -ACACAAATGAATTATCTTCATTTCAAATCATGGAAATCAGCAAATTCGCT -AGAAATTTCATGGAAGGGGAAGCTTGAATTAGGAGCACTACTTGATACCG -AGTTGGAATTGTAGTCTTTTAATATTTGAAGAAATATCACAATTTTTCAT -TTTAAACTTCTAAAAATATGCAAGTTACTTGATGCATCATGCCTCTTTAG -ATAACGTTTTTTTTAGGCTTAGGCTTAGGTTTAGGCTTAGACTTAAGCTT -AGGCTTAGGCTTAGGCTTAGGCTTAGGCTTAGACTTAGGCTTAAGCTTAT -TCTTGAGCTTAGGCTTAAGCTTAGGCTTAAGCTTAGGCTTCGGCTTGGGC -TTAGGCTTAGGCTTAGGCTTAGGCTTAAGCTTAGGATTAGGCTTAGGCTT -AGGCTTAGACTTCTAGATACTTTCTCAAACCACCAAATTACTGTATATTC -TCTATCATAGATACTACTTCCATTTGGCAGCTTATAACTCAAGTCTTTTG -TTAGAGATATCACTAGCTTTAATTACAACATTATAGGTTAATAAATACAC -CATATTTTGTTAGTTTAAATTTTTTGATTAACCTAACGAGAACCGAAATA -TGAGTAGTCAAAGATTATCGATGCACCATGGTACTACACTTTACTTTGCC -GGCTCATAACTCGGTTTATTTTCAGGATATCAAAAAGGTTTTTACTACAA -ACCTATAGAGAAACATATAATAAAAATATTACTATTTTGCAAAATTTTGG -TAAAACTAATAAGAATTGAGATATAGGCCGTTGAAGTTGCATGATGCAGT -TCAAAGCCTACGGTTTTAGACTTATAGCTTTAAAAGGAGGTACCGTATTT -CCTCTATTAGTATTGCACCCATTGTTCAACTGTGACATCTTATATCTCAG -TTACTGTTTGTTCTAATCAGAAATTGTCAACTAACAAAATATTTCTTAGT -TCTTTTTCTATCATTTCTTAGTTGACCATATATTGATACCTTTAAAATAA -ACCGAGATAAAACGTTTCAAAGTTAAGTAGTCGGGTACAATACTGATGGA -CGAAATACGGTATTGAATATTTTGATCTACGTAACTATTTGATCTAAAAT -CTCGATATCATTTTAATTTCTGATCCATAGCTTTGCGTTCAATTATCCTG -CCTAAAAAATCTCTAAAAATAACGTCTACGAGAGCGGGTGAAACAATAGG -TGGTTAGATGTAAGTTGATACCCCTGAAGGGCATCCGGGATCCCCGCGCA -AAAACAGTACAAACATGAGATGTACAATCCCCCATTTTTTTGTGGTCGCT -CTAAGTTGAAATCGATGCAAAGACATTGTCAATATAGCCGTGACGCGACG -GGCGGGTGGGCTGGCGCGCTCGATGAATCAAGATCGTTTTGGGAAGAGAG -GGACTGAAAATATTAAAACAACATTTGCATTTTGTAATTGTTTGAATCAT -CATCATCATCATCATCATCAATCATATCATAGAGGTGGCGAAACTTTTCC -TGCTGGGAATGTGTCTCCTTTTTAGTACAGTCAATAAATGTGTCACTTTT -GAACGGGGGAAAAGCTTTTCTGCTTTTCTTCGCTCTCCACCTCCTTCCCT -CCTCGCTCATAAATTTCCATTTTTCTCTTTACAAACATTGATTGATTTCC -TTATTCTATTGACTTTCTGATATTAAATTGATCATCTACTAAAAGGTATA -TATATATATAAGGTATATCAACTCTTGGAGCCCATATCTTTAATGCTCAT -CAAACTCCCAGTTAGGACTGGGAGTGAAGTACTGGGTGGTGGGATAAGAA -AGTTAGGATGTGACGGGTTTCATGCTCATCTCGAGCTGCCAATCTTGCAC -ATTAAGCAATTGGCTCATTGGCATGCTCTTGTCCTCTGGGCCTGCCGCGG -AGCCATCTCCCGTTTGATATCTGCTCCCGGGGGACGTTCCCAACTTGGCC -GGAGAGAGGCGCCGCGAGCAGCACAAGCTCAACCAAAACTTTTCTAATGT -AATGGGCCGGAATTAGGGGAAGAACAAACGAAGGAGAGGGTGGGGTGGAT -GAGGAAGAGAAAAGAGCACCACCACCAACTGATTTGATGGTTGGAGAGGA -GCTCGTTTTGTTTTCTTGTCGTCGTAAGAAGAAGAAGAGAAGCGCGCTAG -TTAGTGGTTAAACGAATCAAGACCCGAATGTGATAGATGTGCCGCCAATT -TAGCCAGTAGGATTTTTGCTGATTTTGCACACATTCATTTTTCGCTTGCC -TAGACATTACATCCCATCTTATTCCGCTTCATTCATTGTCGTGATTTTAA -GATTTGGGGGACCTAGGAGCCTCTACAGTATTATTTAAATTTCACTTTTG -TTTGGATTTTGAAAAGAGATGCGTCATACATATTCATTTTAAGGCACCTA -TGTATACAGTTCAAAATTTTGGAACATTCCTGGAATAGCGATCTTAAAGC -GGGAAATATAATGACATTATCTGACAATTTTTTCGAACACCTAAAAAACT -TGAATAAAGCCAATTGAATCGTATCCCTAATGGTTTGCAAAGTTGGGCCA -TGCTCTGAATAGCTTAGAGTTCCATCCTGACCTGGAGCTCGCCAGAAGCT -GAACGCACTGAACTTCCAGTCAAGCCTCTTTTGAATAAGTCTAGTTGCAG -ACTAGAAGCCTTAACTACCTGATGAGATTTTCACCCTTCTCTCATTAGTC -TATTTCATTAAGCATGAACTTACACGAGAATTCCAATTACATTACCATGT -AACATTACTTAAGATCCCATTTCCACTTAATTTGTGAAAATCGATACGGT -TTTATAAGAAGTGTTTTGTCCTTTTGCCTATAGCCTAGAGCAAAAATACC -CAAATTATTTGGCAGATCATGTCTCCGACAATATTCTGATCGATTAAGAA -ACTTTTGCAAATCTGCTCGGTTTTTTAGTCTACATTCGCCCCCAGATAAC -TGTTCTCGGCAAGTTGCCGATTTGCCGATTTGCCGGAAATTTTTCTTTTC -GCCAACTTACTGATTTGCCGGAAATGTTTAAGGGATTTTTTTGAAGACGG -AAAATTTTTTCATTAGATATGTTCATAGAATTAGCTTGCATTACAAAATA -GGTGTATGAACATATTCAAAGGATGCGTACAATTTTGCCGATTGAAATTG -AAATTCTGAAATTTCCAAAAATAAATGTGCAAAACCACAATTTGCCGTTT -TCCGGCCAATTCGGCAAATCGGCAATTTTCTGGGTTGCAAATTTGCCGGA -AATTTTCAATTCCCTTTATTTGCCGGGTTGCAAATTTGCCAGAAATTTTC -AATTCCGCAAATTTGCCGTTTTTCCGGCCAATTCGGAAAATCGGCAATTT -TCCGGGTTGCAAATTTGCCGGAAATTTTCAATTCCCTTTATTTGCCGGGT -TGCAAATTTGCCAGAAATTTTCAATTCCGGCAATTTGTCAGTTTGCCATA -AATTTTCAATTCCGGCAATTTGTCGATTTACCGGAAAAAATCGTTTGCAC -CCACCCTTGATGTGAACGCTAGCACTACCTCCTAGTATTAAGGCTCCAGC -TAATTTCTATATCATGGCTCCCAACTATACGTTCCTCCCTCCTCCCCCTT -CCCAATTTCGAATGGGCGCCAATTATTGCTCAATTCCCATCAGATTGGGG -GGGGGGGGGGGGGGGGCATTCGTACAGTGTCAACACGAATAATAATTATG -AGCCCTCTTCTATGCCCAAAGCGCGGCGTCTTCTTCTTCACCCCTCTAGG -AAGTTCTCATAATTAGCATTTTGTAAGACTCGGTGTCCCCCTTTCAAGTA -TCTCTGGATGATTCCCCCCTCTCGCACACACTCTTCCCATTTTTTTTTCA -CAATAATCATAATCATCAAGTTGGACACCAAAAAAGCCATAAATTCGATT -CCGGTCGAATCGAGAGAATTGGAAGAGAGAGAGAGAGAGAGAGAGAAAGA -GGAAATGAGACAGAGGGGTGAGAGATGGAAAACGAACAAGTGTGATGGTC -GTCCCCCCCCCCCCCCCCCACGGGGCCGCTCCTCATTCCTATATTTATTT -ACAGCTCTCTCTCTCTTTTTCTCTTCAATTTCCATCTCTCTCTCCTCATC -TACAGTAATCGGGGAGGGGCTAGTGATAAGCCTCTCCCCGCCCCCCCCCC -CCCGGCGGTTAGGTGTCAGAAATTAATCATAGAGGCCACGCCTCTAATGT -TTTCGGAGCATCATCCTTAATTCTTTAATTCATTAACCTTAATTCATTAG -TCTTACACTGAATTTCATAACTAAACTTGTTGAAAAAACTTCTCAAAAAA -AAAAGTTTTGGCGGCTTAAGAAATGGCCTAAAATTAGTTCGACTTTTCAA -GCGGCTGGAAACTAACTTTTTTTGAAATCCCCCCTAATTATGGGTCTACA -ACGTAAATAAAAAAATTTGGTGACCAAATTTATTTAGGCCAAATCTGGTG -TTCAAATTTTTTAGGCCAAATCTGGTGACTAAATTTTTTAGGGCCCAATA -TGGTGAAAAAATTTTTTAAGGCCAAATCTGGTAACCACAATTTTTTAAGG -CCAAACTTTTTAAAGACCAAATTTTTAGAGCCAAATCTGGTGACCAAATG -TTTTTAGGGCCGAATCTAATGACCAAATTTTTTTAAGGCCAGACCTTTTA -AAGCCCTAATTTTTTAGGGCCAAATCTGGTGACCAAATTTTTTAGGCCAA -GTCTTGTGATCAATTTTTTAGGCCAAATCTGATGACCAAATTTTTTAGGC -CAAATCTAATGACCAAATTTATTTAGGGGCCAAATCTGGTGACCAAATGT -TTTTAGGGCCAAATCTGGTGACCAAAATTTTTTAAGGCCAAATCTAGTTA -CCAAATTTTTTAAGGCCAAATCTGGACACCGAATTTTTTAGGCCAAGTCT -TGTGATCAAATTTTTTTAAAAATTTTTTTCAAATCTGGTGACCAATGTTT -TTTTAGGGCCAAATTTGGTGGCAAAATTTTTAAGGCCAAACTTTTAGGAC -AAATCTGGTGACCAAATTTTTAAGGCCAGAATCCACAACTTTTTTTTGAG -AAATTTTGAAGAAGTTTCTAATTCACCTAATTCATTACTCTTTTTGAATT -TAATCTTCGATATTCCAGATTTCAAAACGATGGAGGATGCGGCGTACGCG -TGTGCTGGCTGCGAATTCACCACAAGTGAGTTTTTTTTGTTGTTTCCTTA -TCAGCATCAGCTCTATGCCTTCTCCCCACCCCACCCCGCTCCTCCTGTAA -CCTTCAATTGCCATTCATTTCACACAGTAATAGTACCACACAACACCCTT -CCATGCCTTCAATTTGACTCATTAATAGCCCTTTTCACCATGTCTTTTTT -CCCCCTCTTTCTCTCTAATACTCAACCTTTACCTACCTACCCGCAATTTA -ATTGGCAACTAATTCGGATACATTCGGACGGCTCAAACGATGCGCGTCCG -TCGTCGGGTGCCCGAGACTGGGACCGGTTTTCAGAATGTCAGTGTATGTG -TGTGTGTGTCTACCGGCTGGCAGGCAGCCACACCACTGCGATTCGTTAAT -TTATTGTGAGATGATGACTGTACATTATTTTGAGTGCTGCTGGTGCTGGT -GGTGTGCATCATATAATTATAGCCTAGTTGATAGAGATATATCGACACAC -ACACACATACACATTTACTTTCAATTGCTTCTACCCAATCTTTTTTCTTC -CATTCTCCAATTCCTCTCCTTGCTCCCATTTCGCCCTTTGATATTCACCG -CGTTTCGCGTTTCGCACTAATTTCGCGCCCGGACCGGTGTGCTCGGCGCG -GCACGTCTTTCATCTTTTTGCCTCAATTTCATTATGATAATAATAATCAT -AATAATTATGCGAGACACGGCAAAGACGCGCTCAAGAAACTGATAAGTGT -GTATAGGTCGGGTCCTTTTGAGAGAGAGAGAGAGCGAGGTGTGATAAGCG -CGTCTAATGAGCATGGGCAATCATAACATTCCTATCAGCATATCAGCATT -AAAACATTTTTTTCAGAAGACGTGTCGGACTTTGAAGAGCACGCAAAAGG -ACACGAAGAGGAGGCGGGAGCCTCTTCACAGAAGGCGTGTGCGCTGTGCC -TTGAGCCCACCGACGACCTCGAAAAGCACCTTGTCGAGCAGCATCGCATC -GCCGAGAGCGCCATCGAAAAGTTCCTGCTTACTGAGAGAACAGCCAAGTG -AGTGTTTTTTTTTGTCTTCAACTCAAATATCTAGTAGTAAGTCTTATACT -TGGCTTATATTTCAGCGGTTTCAAAATATTTTTGATAGCTTTAAAAACCA -TAGAATAACAATTAATTTGACAACAATTTTGTCGTTTGAATTTTTTGACA -AAAATTTTGTCGTTTGAATTTTTAAAATATGATCAAAGACAACCGAGATA -TAAACGGTCAAAGTCCAGTGAGAGGGGCCATACTAATAGGGATTATACGG -TAGGTAACGAAATTTTGATAAGACTTATAAGGACAAAGATAATGGAGCTA -GAAAGTTTAAACTAGTCCAATTTGAACAATAAAAATATATATAACGTACT -TTTTAGTATAAATATTTTAAAAGTAGAGTAATCTGAGATACAGTAAATTT -TTAACAATTTCTAGTCGATGCACCATGTGCAAAAACTAGTCCAGTCCTAA -AATTAAATAGCACGTACTTTTTAGTATAGATATTTCAAAAGTTAAGCCAT -CTGATATACAGTGAATTTTACCAATTCCTAGTCGATGCACCATGTGCCCA -CTTAACTTTCACGGCTCACTTCCCGGCTAATTTCAAACATTTCAAAATAT -TTTCAACTATTCAACTATAGAGGGGTTTTTAATAAACATTTTCTCAGTTG -ACGACTTTTTTATAGAATCAAAGACTACCTAGATATAGCTAGTTAAAGTC -GAGATGCAAGATTTTTCGGAAAAATCACGTGGTGTTTTCGGTTTGATCTA -CGTAGATCAACGAAAAATGCGGGAGAAGAGACGCAGAGTTATCAACTGAT -TTCGTATGGTTAAGAACGTGCTGACGATGTCACATATTTTTGAACAAAAA -ATTCCCGCATTTTTTGTAGATCAAACCGTAATGGGGCAGCCTCGCACCAC -GTGAAAAATTAGTTTTTGAGGCTTTTCTAGTCTAGAACTAAAGTTTTTTT -TTTGATTGGCCTTGTTTTTTCTAGTCTTAAACACCAGGTAGATCAAAACA -AATTTTTTTTCAGAGTTTCGATTTTTATGAATTTAAAACTTTCAAATTGT -CGCACTTCCTGTCCCTTTCAACCCCAAAAACGTTACGATTTTGTGCTATC -ATAATCATTAAACCATGCTTGCTTGTGTCAAGTTGCACAGGGTGCGCCGG -GGGGGGAATTGGCATTACTGTAAATTTCCTGCGTCTCCATCCTTGCCCCC -AGTGTCCCCATCGGCAATTAGAGAGTACGATCCGATTTTGCATATTTTAT -TCACGTCGCCTCTTGTTTACTCGCTCTAAATTTCAATCCGTCGCCAACCC -CCCCCCCCTGCCTGCCTCTTCCATTCATCATGAGTATTAGTGTATTGATT -AATTTTCGAATTCACGAATGAATTCATTGCTGGCGCCCTGCTACTAGTAA -TCAGTGAGGTCATAGCGTTGTCCTTTCGATAGGGCTAATTAAATGTTTCT -CTAGGAGCGGGAGGATAGATTTGAAATCAGGTGGGCGTCGGTTTGATCTA -CGTAGATCTACGAAAATCGCGGGAATTTAGACGCAGACTTCTCAACTGAT -TTTGCATGGTTAAAAACGTGCTGACGTCATATTTTTAGGGGAAAATATCC -CGCACTTTTTGTAGATCAAACCGTAATGGGACAGCCTGACACCATGTGCT -CAGTTACAATTGGAGGGTTTTGTCGGAAAAAAATCAATTTTTTAAACTGA -CAACACATTTTGCTCATTCTCCAAAACTGAGCCAAATGTGTTGTCAAACT -TTTCTTGAAATTTTTTTGAATCGAAATTATGTTGAGGTGAATTTTCAAAT -TTCAAAAAATGCCCCATTTCTATCAATTTGTCTTCACCTATGTTTTCGAA -TAAGGGCGAGGCGAGAGGCAGGCGGAGGTCGCCTTAAGATCATAAGATAG -CCTTATGTGATGACGAAAAATGCCAAAAAATGTATTTTTATATAGTTTCC -CCGTGTGTAGAAAAATGTAAAAAGAGCATGCATTTTGTGCATTTTTTGAC -ATTTTTCTGCATTTTTTTTTGACATTTTTTTTTCATTTTTCCACACAGAT -GAATAGCGGAAAAACGGAAAAAAATACATTTTTGCATTTTTCATGATCAC -ATGATCAACCCCATAAGGTTTTTTAAGGCATAATATTGATATTTTTTATT -AGTCTACTTTGCATAATGCCTACTATTGAAGGCAAATCAAATCGACATCA -CTTTTTGCTCATTTTCAAAACTGAGAGGCACGGCTTCTATGTTGACTACT -AAACCAGTAATAACACTTATAAAATGTTTGGAAAACACTCATACACATTG -CCACGTCATTTGGATGGAAGGGACCCCATTTGTTGAATCATAATTGATTG -TTAAACTATCATCACTCTCCCCCCGCCCTCCTCATTGGACCCCACGGCTC -CAAACTGTCTCCAATTTGCTCCCCGTCCTCTTCTTATCACCTTGACGCGT -AATTGAATTTTTGCGGATTTCTTCCTCCCCACCGCTTCCTTTGCTCCTTG -GGGGAAAAGTATGGAGAGTGTTTATGTGTGTGATTGAATTGAAGAAGGTG -GCTGACTCATTCTTTCATTTTCCTCGCTTTCTTTGAAAGAACAACTTGAC -AGTTTCCCCCCCCCCCCCCCATCTTATAATAATAATTACTTGCAGAGAAG -CGTCGTGTTCATCGTCGTCGGAGCCGAGCTCAGAATTCGCGCATCGCTGC -TCGAGGTGCTCGATGGCGTTCCGAAGCGAGTCGCAGCTGCAGACGCATTC -CCTTCAGCACGTGTTCAACACGTTCCACAAGTGCCCCACGTGTGGCGATT -CGTTTGATGAGAATACTATTGTGGTGAGTGAATTCACAACACTTTTGGCT -CACAGTCACGCTTGATCTACGTGTTTTTAGACAATTTTGAGTCTACACGT -GGTGTCAAAGTGTCTCATTTCGGCTTGATCTGCGTTGATCTACAGAAAAA -TGCGGGAGAAGAGTTTTGGGCAAAAAATTCCCGCATTTTTTGTAGATCAA -ACCGTAATGGGACAGCCTGGCACCACGTGCTCAGTTAAAGTAAGAGGGTT -TTGTCACTAGATTTATTTTTTGTAAACTGACAACACATTTTGCTCATTCT -CCAAAACTGAGCTAAAAGGGTTGTCAAACTTTTTTTGAAATTTTTTTAAA -CGAAATTAGTTTTGCTAGTTTTCCTAAAAGGAGCAAAAAGTGTTGTCCAA -TTTTTATAAGAAGGTTTTTGTCGCCTAATCGATTTTTGTAAACTGACAAC -CCTTTTCGCTCTTTTTTCAAAATTAATTTTTTTCTTTTGGCATTAATCCC -ATTTTTTGTAAATTAACAAAAAAATTTCAAAAAATCTTCAAGTATTTCTA -CAGGGTGGCCTAGATTCTCTATAGGGTGGCCTACATTTTTACACTGGTTG -TCTAGATTCTTAAACAGGGTGGCCTCGATTCTGTACAGGGTGGCCTAGAT -TTTCTACACGGTGGTCTAGATTTTCACTGGTGGCCTAGATTCTCACACTA -GGTGGCCTAGATTTTTCCACTAATAGCCTAGATTCTTTACAGGGTGTCCT -AGATTTTCACACTGGTGTCCTAGATTCTACACAGGGTGACCTAGATTTTT -TACACTGGTGGCCTAGATTCTCTACAGGGTGGCCTAAATTCCTTATAGGA -TGACCTAGATTCTTAAACAGGATGACCTAGATCTTGACACTAGTGGCCTT -GATTTTTTACAGGGTGGCCTAGATTTTCTACAATGGTCTAGATTTTTTGC -AGGGTGGCTTGGATTCTTAAACAAGGTGGCCTAGATTTTTCACAGGGTGG -CCTAGATTTTATACAGGGTGGTCTAGATTTTTACACTGGTGGCCTAGATT -CTTTACAGGTTGGCCTAGATTTTCTATAGGATGGCCTAGATTCTTAAACA -GGGTGGCCTAGATTCTTTACAGGGTAGCCTAGATTCTTCACAGGGTAGCC -TAGATTTTTACACTGGTGGCCTAGATTTTCTAAAGGGTGGTCTAGATTTT -TGCACTGGTGGCCTAGATTCTTAAACAGGCTGGCCTAAATTCCTTAGGGG -ATGCCCTAAATTCTTAAACAGGATGACCTAGATTTTATACAGGATGGCCT -AGAACTACTTTTTGTAAATCGACAGCACTTTTTGCTCGTTTTCCAAATCG -TTTTTTTTTCAGACCCATATGTTGGAGCACACCAAAGAAGAATGCGAAAT -GTGCTCTGAAACATTTGCCACAAAAGAGGCATTCCTCTCCCACCTGAACT -CAGCCCGACACCTACAACAGGCAAAGAAGCAGCTGGAAAACTCACTGGTC -GACTTAAACTCTCAGGTGAGCCGCCGCCGTGCCTCCTGCCGCCTGGCTAC -CGTAATCACCGTACCCATTATTTAATTGATTTGCTTTTAGCCACGCCGCT -GCTGCTCGGAGCGCAGAGGTGACAGAAAAAGCCGACAAAAAACAACATTA -AAATTATTACACTTTTTTATGATTGAATGCGAGAGAGATGTATGTGTGTG -GAGAGATGGAGAGGCGCATGAAATGGTGTTCGGGTTCCATAGCAAGCTCA -TTGAGCACAATGATTTTTTTTTAAATATATTTTATTGGAAATGACAGAAG -CTGAAGCTTGAAAGGAACGTCCAGTTTTAAATTAAAGTATTGATTTAGCA -CGTAGTTTCAGCATGTCCCATCACGGTTTGATCTACAAAAAATGCGGGAA -TTTTCTTCCCAAAAAATTTGACGTCAGAACGTTCTTAACCATGCGAAATA -AATTGAGAACTCTGCGTCTCAACTCCCGCATTTTTTGTAGATCTACGTAG -ATCAAACCGAAATGGGACACTTTGACACCATGTGATATTTAAAGGGTCTA -GAAAGAACTTAAAATAGCCTAGCCAAGAAATGGGCGGAGCTTTGGTAGGA -ATTTTCATAAGTCGAGGACTCCGCCCATTTCTTGGCCAATTTGGGTTTTT -GGCCTTCAATTTTTAGTGTTCACTAATTTCCAATAAGTTTAGGATTGAAA -AAGTTTTTGAGGTGAAAATTGATCCTAGCATAGGCTCCGCCCATTTCTTG -GTTTTTTTTTTGTTTTTTTTTCTTTTAAACTAAAATTCCACTGAACTTGT -CTAATTTCAGTTTCCAAAAATTTAACGAAAAAATTCGAAATGCCAAGAAA -GGGGCGGAGCCTAAGCGAAGCCTATTTTTCGATGAAATTTGGCCAAGTTG -CGATGTTTTTGAATTTCATATTTTTGAATCAAGTTTTGAAATAAAAAGTA -ATATAAAATTGGAAAATAGGCTCCGCCCATTTATTGGCTTTGTTGGATTT -TTTACTGCATAGATCACATTTTTGCATCCGAAAATTTATCGGAAAGGAAT -TTTTTTTCCCAATTTTTTTCCGTAAACTGTATCATCAAATTCTTTTGAGA -TTCAAAATATCCAACATAAGCACGGGGTTCTGGCCTTCCTCATTGAATTT -TTCGCGCTCCATTGACAATCGCCTGCCGGACAACGCGTGGGAAAGTCGTG -TACTCCACGCGGACAAATACATTCAGTTTTACGCGCCGTAAATCTACCCC -AGATATGGCCGAGCCAAAATGGCCTAGTTCGGCAAACTCTTTCATTTCAA -TTTATGAGGGAAGCCAGAACTCCGTACATAGGCGCAATAAAAGGTGAAAT -AGGCTCCGCCCATATCTTGGATCGGTTCCAATAATGTATCCAAATTGACA -TGTGTTAGTTACACTTGTTCCTAATCCAAAATTCTATCCGAATTTCAATT -TCCCAAAGTCAAAAAGTCAACAAGTTCTGTTCTTATATGTGTAAGGCGCG -CGCGAGCGCGATCGTTTGTCTCTAGTATTTGCTCATCTCTCTCTCTCTCA -ATTACCGTACCCATTATCATTCCGCCCATGGATGATGATGATGATGAAAA -TGAGCGGTGGGCCCCCTCTTCCCCTGCCTCTTTTCGCGCATTCATCATGT -TTGTACAAAAGGCGGCGGTTTGAGAAAAGAAGACAGTGAGAGGGAGGGAG -AGAGAGAGGTGATGAAGGTAGTAAACGTGTGTCGACAAACACATATAGAG -AACGATTCGTGTGAAATAGATGAGGGCAAATAGGACGAATTTATTTAAGA -GAAGAATAAGATGCTTTGGCCCAGATGAGGGGGGGGGGGGGGTATCATGA -AGGTGTGATGACGAACCATATTCCTTCAATGTTTGTTGCTCGCTTAACCG -CCGTCGCCGCAATTTAAATTGTTTCGACTGGGTGATCAGACAAATAAGAA -GACGTAGACGGTTTTTCTTGGGGGGGACGTTCAGCTTTGATTCCTTTCAA -ATAATCGATGCGGCCTAGCTTTCTGATCTCCAGAAACCGCGGGCCTTCTT -TGCTAAATTTTAAGCGATTTTACTTCCTCCCCCCCCCACTTTGATCTACT -TTAACAGCTTATATCTCGGTTGTCTTTAGCTTCATCAAAAAGTTATCAAC -TAACAAAGTGCGTGCCAAATATACTTCTACAATTCGGTAGTTAGTATTTT -TTGGATAAAAGTTAAGACAACCGAGATATAAGCTGTTGAAGTAAATTTCT -AGTTTGACTTACTCCCCCAATTTTGATCTACTTTTACAGCTTATATCTCG -GTTGTTTTTGGTAACAGCAAAAAGTTGCCAACTAACATATTACGTGCCAA -ATATTTTTCTAAAATTTGGTAGTTGAAAATTTTTGAATAAAAGTTAAGAC -AACCGAGATATAAGCTGTTGAAGTAGATTTCTAGTTTGACTTACTCCCCA -AATTTCGATCTACTTTGACAGCTTATATCTCGGTTATTTTTGGCAATATT -AAAAATTTGTCAACTAACAAATTACGACCCAAATATTTATCTACAATTTG -GTAGTTGAACATTTATGTTAAAAGTTAATACAGCCGAGATATAAGCTGTT -GAAGTAAAGCAGTGGTGGTGCTTAGCTCGACCTATATTTTTGAATTGCAT -AACAGTTATAACTAACTTATTTTATGTGAAACCCTATTCTAGCTAGTTGA -CTTACAAAATCTCCAGAAACTTTTGCCTGCCTACCACCTTTAGCAGCATA -AGCGCCTATAGGCACACCTACTGCCTACACCTATGCCACCTACTGTACAC -CTACTGCCCATACGCCTACTGCCTTTTGCCTACTTTCTACATAACTTTGA -ACTGCCCGTTTCTAACCAATAATCTTTTACAGGACGTCGAAAAGCAGCGT -ATTTATGTGTGCAACGTCTGCAAACAATCCTATCCACAAGCGGCTAATCT -CGACGTGCACATGAGGTCAATGACACATCAGAGCCGGATGAGCCGGCTGT -CCGAACTTGTGGCAACCGGGGAGCTTAATGGGGAGAAGGCCGTGTTTGAG -CAACCAGGAATACCGGCACCGACGATAAACAGCTTCATTGAGACGGTAGG -TGAGGGGTTTGAGCAGGCATAATCCTGAAAATCATCTGTTTGGTTTCTGT -GAAAAACTTTTGTGCGGAAAATAGTTTATTTATAGTTCAATTTGAAAAAA -ACTGGTTTCCGATTTTCAATTTTCAATTTTCAATGTTCGATTCTCGATTA -ATAAAATTTCCAATTTCCAATTTCCAGACAACCAACCAATCCTCACTGAA -CGACCTGATGTCACTGCTCACACGAAGCGAGTCGGATGAGATTCGAGAAG -AAGTAAACGGCCTTCAAGTCATGACACAGATCAAAGTCTACGGTGAATCC -AAGATCACTAGCCTAGTCCCAGAGTTGGCCGGGAAAATCGATAACATCGC -GCTCTTCGATGACTCCCGTGCGGCAGAGGTGTCGAAGATCGATTGCTCGG -CTTGTGGGCAGCAGATCTCAGGGATCCTTGCTTTGAACCTCCATTATGAA -GAGTCCCACTCATCGAAGATCCCGAGTGACGTGTTAAGAAAGTTCGGAGA -GCGGTTACTTGCCGCATTAGAGGACGGGTTGAGCAGAGAGAATTCCGTGA -AGAACGGATCGCAAAGCCCTCTGAGCAATGACGATGAGCCCATGGAGAAG -AAGATGCGGCTGGAGAATATGCTTCCTGAAATGGACAAGAACGCGGCAGC -GTCGCAATTCGCAATGTTCCAACAAATGATGAACTGCTTCCCGTTCATGG -CACCACCAGGCACGTCTAGTGGCAACTTTGGCTTCTCGCCAGAAATGATC -AATCAGCTCATGAATCCTGCGGCGGCGGCGGCGGCGGCGACTGCAGCAGC -AGCAGCCCACGCTGCCAACAACTCGCCGGCGAAGAGAGCAAGAACACGGA -TCACTGATGATCAGCTCAAAGTTTTACGGTAAGTCGTCTTGTGTGTGATT -ACTGTAAGCTACGGCGAACAGGAGAGACCCGAGGGGGGCGGTGGAAAATG -AATTGCAAACAATAGGTGGGAAATGGTCGGCGCCGTGATCAAAATGAATG -AGAAATGAGAATGAAGAACAAACATTGTGTGTGAGTGTGTGTGTGTGAGA -CGAGACGAAAATCAATCAATTTCTGGAAAAAACAACACATATATTTTCCC -GGCGAACTTTCTGTTTGAGGGACCGTACGGAACAGGACCCCCCTGAAAAA -AAAAATCCGGAAAATCCTAAGCCTAAATAGCGAACGCTCGCCACTGACGC -CAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCCAGCCCAAGCCTAA -ACAGGAACCCCCTGAAAAATCAAAAAATCCGGAAAATCCTAAGCCTAAAT -AGCGAACGCTCGCCACTGACGCCAAGCCTAAGTCTAAGCCTAAGCCTAAG -CCTAAGCCCAGCCCAAGCCTAAACAGGAACCCCCTGAAAAATCAAAAAAT -CCGGAAAATCCTAAGCCTAAATAGCGAACGCTCGCCACTGACGCCAAGCC -TAAGCCTAAGCCTAAGCCTTGGCCTAAGCCCAGCCCAAACCTAAGCCCAA -GCCTAAGCCTTTCACCTTCCTAATTTTCAGGCAGGCCCTAAAAACCGCGC -CTGCCTACCATGGAAGCCCTAATCTGTGCGCTTTAGATTCTGAACCCTTA -AATATGTTGCACGGCCGGGCAAAGGGCACATCAGTGTAAACGCGCTCTAC -TGATAATTCGAGTTTAGCCAGGTTTGGGCGCGTTTCAAGGAAAAAAACTT -TGGCTCAAAAAATTGTGAATTTATTTTCGAACATTTTTATATGCATCACA -AAAATGTTAGACCACCCGTTTTTGAGAAAAACGCGCCCAAACGTCCAGGT -ATACGGTAGACAAATTGCGTACAGGTACCACTGGGGGGTCGTGTTTGGGC -TTTAGTTTAGCTAAGGGAATCTGTAGCGGCCCAACGGCCTAACTGCAAGC -CTCAGCTTATTCGCCATAGGCTTGTCTGCCGTATTTCAAGCCGATTCCAA -CAAAAAACTTCCAGCCAATACTTCAACATCAACAACTCGCCGTCAGAAGC -GCAAATCAAGGAGATGTCACAAAAAGCGAGCCTTCCGGAGAAAGTCATCA -AACACTGGTTCCGCAACACACTTTTCAAGGTTTGTTTATTTATTTTACAA -AACTATTCATATTGTTATTAGGCTCGGAAATGAGCGAGGTGAGAACATGA -GTGTGGTAATTAGTCATCGGATGAATACCCACACAAGAGGGAGAGCAAAC -AAGAGAGCAATTGAGACGAGGGAGGGAGAGAGGGAGAAAATAAGAAAATG -TTAATGTCAGTTGGGTGCCAGGCGCTCGGCCAGGACCACAGGCCGGGAAC -CATTTAGTTTTGATTACGATTTCCGTCGTGACTCATGATGGGAATTGATA -TTTGTGCCTGTGGTGATAGAATAGTTAGAGCAACTATCAGGAAGGGGACA -AGTCGCAGTGCGAGACTATTAGAACCTGCAAGGTTTATTCTGATAGATTT -GGGACTAATAAGGACTAATTTGGTAGAGACTAATTGGCTCTCTTGATATA -TACCAGCTTAATAATTTCTACAAAAAAAACTGTAAGAACGCTTCGAGATT -CGAGCTTCGGGAAAGCTTAAAGGATGGGTACCGAAAAATTTTTTTTCCCT -GATTCCGAATATCGATGTGGAAAAATTCAAAAAAAATTCCCTGATTTTAT -ATTTGAGCTTGAAATCACGATTTTCATTTGTGCCCACCTGGTGTCAGAAT -GTCTCATTTTGGATTGATCTACGTTGATCTACAAAAAATGCGGGAGAAGA -GACGCAGAGTTCTCAACTGATTTTGCATGGTTAAGAACGTGCTGACGTCA -CACTTTTTTGGGCAAAAGCAAAAAATTCCCGCATTTTTTGTAGATCAGAC -TGTAATGAGACAGCCAGGCACCATGTGTGTGCCCCGGTTCAATTTTCAAT -TTTTTAAACCAGTTTCTTTTTTTTTAGTCGATAGGTTTTTTTCTGAAAAA -TATTTTTTTTGCCAAAAATGAATGTAACTGGCTAAAATAAACTAAAAATA -AAACGATGCAAGCGCGCTCAAATGCGAATTTATTTGGGCGCGAATTTGAA -AAAAGTGATGCGGGCACAAATGAAAATCGGCGATTTTAAGCCTAAATATA -AAATCAGGGAAATTTTTTTGAATTTTTTCACATTGATATTCGTAATCAGG -GGAGAATTTAAAGCCAATTAAAAATATTTTCCAGATTTCGGTGCCCCACC -CTTAATGAGATAAAAGAGCAAAAAAGGTGTTTTGTAACTTTTTAAGTTTT -TTCTTTTTCAGGAACGCCAACGCGACAAGGATTCCCCGTACAACTTCAGC -ATCCCTCCCCAAATGGGAATCGACTTGGACATCTACGAAAAGACCGGCGA -GACAAAAGTACTGTCGCTTAGCAATGAAGCACCAAAGTCTGAGTTGAGCT -CTGCGCGCGCCACACCGACAATTCCGACTCCGATACCGCTCATCGTTGAA -GAGAAGAAACCGGAGCCAAAGAGCCAGACACCATCGTCTTCTTCCTCTCA -GCTCAACCTGCAGGCTATGTTATCTCAGATGCAGGGAAGTTTTTTCGACG -CGTCAAACTTCATGTCAGCATCAGTGAATCCGATGACACCGAGCACTCCT -TCCTGCAACACGTCGTCCAGTGGACGACGAGCCAATCGCACGAGATTCAC -AGATTTCCAGCTGAGAACTCTACAGCAATTTTTCGACAAGCAAGCCTACC -CGAAGGATGATGATCTTGAAGCGCTGAGCAAGAAGCTTCAGCTGAGTCCA -CGTGTGATTGTCGTCTGGTTCCAGAATGCACGGCAGAAGGCCAGAAAGAT -CTATGAGAATCAGCCGAATCACGAGAGTTCCGATCGATTTGTGAGAACGC -CGGGATCGAACTTTCAGTGCAAAAGGTTGGTTTTAGTGTTGGAAATTAAC -ATTTAAATTTAAATTTTCCTAAATTCCAGGTGCAGCCAAGTATTCCAACG -CTACTATGAACTCATCCAACATCAACAGAAAAAGTGCTACAAAGACGATG -TAGCAGCCCTGGCAAGTGACAACAAGAGTGTCGAAGAATCACTGACGGAA -GAAGAGAAATCCCAGCTTCTGGCTCAACAACAGGTCGCCCAACTAGCCAG -CACTCTGGAGCTCCCAAAGTTCCAGCCGGCAGAGCTTTTGAAAATGATCG -GAGCTAATTCGGTGACTCCATCCTCGTCGGCTGCAAGTCAGAAGTCTAGC -AACGACGTTCTGCTGAAGATGTGTGAATCGATTGTTGGTGGGAGCACACC -TAGTACATCATCGTTCCACAAACTTTGTATATTCTGCGCTCAAGACTTCA -AGGATCGGAGTGCGATGAGTGAGCACATGGCTCAGAAGCATCCCCAGCAT -ATGCTTCTTCCAAACTTCGATCTCGACATGATGCCAGACGCTGGTGGTGC -AGAGCTTCTCATGGATCTTAAGGACTCTGCGTTGGATCTTTCGGGCTCTT -CAGTCGACTACCGGGATTCTATCTCAACATCTCCATCTCGATCCGAAGAT -GATGTTCTCACAGAGGCTCTGGATGATTCTGCATTTGCCGCGTTCGGACT -ACAGCTTGCAAATTCCACAAGCGGCTCGGAATGCAGATCTCCGGCGAGCA -ACAAGAGATTCCGAACTCATCTCACACCGATGCAAGTGCAAATGATGAAG -AGCGTGTTCAACGAGTACAAGACCCCATCCATGGCAGAATGTGAGCTTCT -CGGCAAGGAAGTCGGCCTTCACAAGCGTGTCGTTCAAGTCTGGTTTCAAA -ATGCGCGAGCCAAAGAGCGAAAGACGCGCGGTGCAGTTGACGAGGACTCT -CGATCCGGAGAACTTCACTGTGAAATTTGTGATAAGACGTTCGCGACGAG -GCTTTCGCTGCAAGACCATCTGTTTGCCGAGCAGCACATTGAATTTTTAA -GGAATAATCTGAAACGGGAAGGGGTCTCCGAGTTGACGACCGCTTCGGTG -ACCGAGTGCTCTCCAGAGAAAAAGTAAGAAATTTAATTTTTAATTTAATT -TTACATATATCATTACCCTATATAACCTTAAAAATTTTCCAGAGCAAAGC -TTCCGAACCCGCTGGATCTTGCCAGTTTCCCGTTCCTCAACACGTTCGAC -ATTCAAATTTACGGAACACCCATCGCCTTTCTGCAGGTGCCTGATGAGAT -CAAAAAGCAGATCACTGATGATATCACGGCTGGAAAATCGCGAACCACGT -TCTCCCAGGACGGTTTTCCGCTCGACAAGTTGAAAGAGTCGCTGCCCGAG -GATGAGAAATCAAATTTGACAGTAACCCAGAAAGATGTGAGCTTTTTTTT -TTTGGGAAAAATTTTGAACAATTTGGCAATTTCAGGTCGGATGGGCGTGC -CCGGCATGTACATTTGTCTTCCAAGAAGAAAAGAAGCTCCGTGAGCATCA -AAAAGCCATGTGCCAAAGTGATAAGGTGGGCAAGAAATTAGGAAACGGGC -TTGAAGTTTAGCTTATAGTTAGGCAAGTGGTGTCAGACTGTCTTTGATCT -ACAAAACATGCGGGAATTGGAATTTTTCCCAGAAAAATTGTGAAGTCAGC -ACGTTTTTAACCATGCAAAATCAGTTGAGATGTCTGCGTCATTTCTCCCG -CATTTTTTGTAGATCTACGTAGATCAAACCGAAATGAGGCACTTTCTGAA -TCCACGAGCTAGGCTTAAGCTTAGGCTTAAGCTTAGGCCTTTTCTCAGGC -TTAGGCTTAGGCTTATGCTCAGGCTTAGGCCTTTTCTTAGGCTTATGCTT -GGGCTTAGGCTTAGGCGTAGGCTTAGGCTTAGGCTTAGGCTTATGCTTAG -ACTTAGTCTCACTATCAGTCTTAGGCTTAGGCTTAGACTTAGGCTTAAGC -TTAGGCTTAAGCTTAGACTTAGGCTTAGGCTTAGGCTTAGGCTTAGGCTT -AGGTTTGGGCTTAGGCTTAGGCTTAACCTCAGGCTTAGGCTTAGGTTTAG -GCTCAGGCTTAAACTTAGGCTTAGGCCCAGGCTTAGGCTTAGGCTCACAC -GTTCTCACGTTCTTAACCATACAAAATCAGCTAAGAACTCTGCGTCTTTT -CTCCCGCATTTTTTGTAGATCTACGTAGATCAAACCGAAATGAGGCACTT -TCTGAATCCACGAGCTAGGCTTAAGCTTAGGCTTAAGCTTAGGCCTTTTC -TCAGGCTTAGGCTTAGGCTTATGCCCAGGCTTAGGCCTTTTCTTAGGCTT -ATGCTTGGGCTTAGGCTTAGGCGTAGGCTTAGGCTTAGGCTTAGGCTTAT -GCTTAGACTTAGTCTCACTATCAGTCTTAGGCTTAGGCTTAGACTTAGGC -TTAAGCTTAGGCTTAAGCTTAGACTTAGGCTTAGGCTTAGGCTTAGGCTT -AGGCTTAGGTTTGGGCTTAGGCTTAGGCTTAACCTCAGGCTTAGGCTTAG -GTTTAGGCTCAGGCTTAAACTTAGGCTTAGGCCCAGGCTTAGGCTTAGGC -TCACACGTTCTCACGTTCTTAACCATACAAAATCAGCTAAGAACTCTGCG -TCTTTTCTCTCGCATTTTTTGTAGATCAACGAAGATCGAGCCGAAATGAG -GCACTCTGACATCACGTGGGCTAAGACTTAGGCTTAGGCTTAGGCTTAGG -CTTAGGCTTAGGCTTAGACGTAGGCTTAGGCTAGTTATTTGTAACTTTTT -TAAATCTCCCCCGAGTCAAAAAAAAAAACAATTCAATTCCAGACGCTAAC -CCTGGTGCAAACCCACTACTCGTGCAAAAGCTGTCAAAGTGATTTCTGTC -TTCAATCCGAGTATCAATTCCATCTCTCAATGCCTCCTCATACTACTACT -ACTACCACGACGACGCCATAACAAAACCCCCCAAATAGTCACCTCATGTC -ATTTCATTTGCCGTCTTCACTCAAGGACCTATTTCCGTCTCTCTCTCTCT -CTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTTCTCCTCTCG -CCTTAAAAAAACCACAACTCCTTATCCCGATCTGAGCTCACTTCCTATCC -CCCAAAGTAATTTCTTTGTAATATCTATATCCACTTTTTTTTCGACACAC -TACACCACATCCCGCCGCCTATCCCCTCCCCCCCCACCGCTTTATGACAC -AAAAACTGGTTTCGCTTTTGTCTTCAATTTCACCCCAACCGCCTGCAGCT -TCTCATAATAATTAATAATTTTTCTTACCATGCACAATGATTTTGATAAA -TATATATATATATAGTCATCAGGATTGCCCCCTTTCTAGGATATGTTTTT -TTTTGTCTTCACACAATTTTCCCATTTTCTATGATAAGAATTATTTCTTT -GTCCGGTTGACACATGTAGATGTTCCCCTTCCAATTTTTAATAGATTTCT -ATTCTAGTTTTTTGCAGGCCTCACTATTCTATTGCAATAATCACTTGGAT -TTCATGTATGGAACGCAATAATAATTCAATAAAATATTGGTACTTCTTTT -TTGAAACACACTAATTCAAACTCACGCGGTTCCAGGCTGTCCCATTACGG -TTTGATCTACTAAAAATGCGGGAATGTTTACTCCCAACAAAATGTGACAT -CATCAGCACGTTTTTAACCATGCGATATCGGTTGAGTACTCTGCGTCTCT -TCTCCCGCATTTTTTGTAGATCAAGCCAAAATGAGACACTATGACACCAC -GTGTAGACTTAAAATTGACTGAAACCACCGAATTTCATATTGAAACTTCT -TGAAATCTATTCAAAAAAAAAGTTATGAAGGCTCAAAAAATGGCCTAAAA -TTTGTTAATTTAAACAAAAGACACTTAAAACGGTGTCTTTTTGAATTTTT -CCGTTTTTTTAAACATATTTTCATAAAATTTACTTATTTTTCAAAATAGA -TGTTGGAACATTTATAGGATGCGTTCAATTTTGCCATTTGAAATTGAAAT -TCGGAAATTTCAAAAAAAAAAAAAAAAAGTGCGAAACCAAAATTTTCCGA -AAATTTTCGGCAATTTGCCGGTTTGCCGGAAATTTCAATTCCAGCGATTT -GCCAATTTGCCGAATGGCCGGAAATTTCAATTCCAGCAATTTGGCGATTT -GCCGATTTGCCGGAACCTGCTAACCTACCTACTAACTTGCTAATCTTCAA -GGTTTTTAATGAGTTTTCAATAGAAAATTCGGTGTTTTCAGGCAATTTCG -AGAAAGCAATACAAACGTTTAACAAAAAAAAGACGCTTTTTCCTCTTATC -CGATTCTCAATTCTCAATTTTGCCTTATCAATTTATCCTCTCCTCACAAG -GTGACACACACACACACACACACACACACACTCGTTTCTCGACAAAAAGC -TATGAGCTAACAAGCGCCTTCTCGCGTAAGAATACATCCACTGATAAGAC -ATCTGATAAGAGTGGAACCCGTCCGCCATTGTCTCGAGAAATACACGCCT -CCGCCCGGGAGGACAGGTTATCCCACCTCGTCGCTTCACTTCATTGTTTC -AAACGATTCCATCGGCTTGCGCTTGGATTTTCTCTTATGCAACTTGCCAT -TCTTCTTTTATTGCTTAACATCATGGTTATTTATTAGGGAAATTGTTCTA -CCCTGACTTGAAATGACTGAAGACGGCCTATTTTACTTTAATTTGAAGAC -TCAGAAGACTACTATAAGCGGTCATTCTTGTTGCGAAAATTTCTGCATTT -AAAGGTGGAGTAGCGCCAGTGGGAAAATTGCTTTAAAACACGCCTATGAT -ACCACAATGACCGAATATCATGATAAAAAAATTCAAAAAAATTTTCTAAA -TTTTATATGATTTTTTGAAAATTGAAAAAATCTAAGGTTTTCACTTAATT -CATATTTGAATTACCGCCAATTGGATTTGCTCGATGGAGCGCACTTGCAC -GTTTTTAAATTTATTTATTTTATTTTTTGTTATTTTCCACCGATTTTTAA -TGTTTTCGGTGTATTTTTGCTTGAATTTTAGAGAAAAAGTCAAAATAAAT -GCAAATTTTCGATTAAAAAGCAAGCGTACAGGTAAATCAGTGAAATTAAT -CAATTCAGGTTCATTTTTACGCCTGTAAGCGTGCTTTTTAATCGAAAATT -TGCATAAAAAACATTTAAAATGGGTGGAAAATAACAAAACATAAAATAAA -TAAACTTAAAAACGTGCAAGCGCGCTCCATCGAACAAATCCAATTGGCGG -TAATTCAAATAGGAATTAGGCAAAAACTGAGATTCTTTCAATTTTCAAAA -AATCATATAAAATTTAGAAAATTTTTTTGAATTTTTTATGGTGCGTCCAT -AGAAAAACCGGAGTTCCTCGCTTTTTTTTCCTCGAAATTCAAAAAAGTAG -GCGTGGCCAACCAATCAGCTGTTGTTTCTTGTTTTCTCATTGCTCAGCTT -AAAATTTTACAGCCTCTAATTGGTTGAACACGCCCACTATTTTGAAATTG -ACCAATAACAAAGCGAGAAACTTCTTGTTTTTTCCGCAGACTATGGACGC -TTCCGCACGCGGGAAATTCCCGTTTTCCGCAGACTATGGACGCACCATTA -TCATGATATTGGGTCATTGTGGTACCATAGGCATGTTTTAAAGCAATTTC -CCCACTGGCGCTACTCCACCTTTAATGCATTCTGCGTCTATTTTATACAG -TTCTGACCATAAAAGCACACAAATTTTTGTCTCAAAGTTTAGGAATATAT -AGATTTAAGGAAGAAAGTTTTAGTAAGAAAAAATATAGTCTTCTTCATGT -TTTCTTTTTTTTTACAATATCCATTTGCCATCCGTTTTTTTTTCTGCAAC -CTTCGATAAATGTTTGCTTGGATAACTATGTAAGGTGCTTTGAACACTCG -GCATTTGGGCTTCTTGCCCAAGTTTAGCCCAAAAATATTAACTTGGATCA -GAAGTTGGGCAATACTTTGGCAAAACTTGGATTCAGGCAATATCAAAGTT -TAACCCAAGTTTCACCCAACAAACTTTGGCCTAAACTTTTTTTGTTTCGA -ACTTGCGTAGAAGTTTTTGCCCAATTTTCGCCCAACTTTTGCCCAACTTT -TGCCCAAGTTTAGCCAACTTCTGTTCCAAGTTAATATTTTTGGGCCAAAC -TTGGGCATGAAGCTAGAGCCGAATGCCGAGCTAATTTTATTTGACTCTAT -CCGAATTCTGCTAATTCTCAAAAATCCCCCAATTGCCAACCATTTCAGAA -TGCATTGGAGTAGTTGGGCGATAGCGCTCAACGTGCTCGTGCTGGCTTTG -GCCGACAGTGCTCCTGAAAGATTCCCAGAGGATCATGTGGACCTGGTACT -TCCTATGAAAAGTATCCACCATTTCACCTAAACGTTTCCTAATCATCTTG -ATTACAGTGAAATACGACAGTCATCTTCGACAAGCTGATCTTCCACCGCA -CTTCATTGGTGCCAATGAGACGAACTTGGTTCCGCTCACCTTGAGATTGG -AGACTAGGAGGAAGAGATGCTCGTGTGGATGTTCGGGATGTGATCTTTTC -CCGAATAGATCTTGTTGTTCGAGCTGTAAGTTTGCGATTCTATAAGACTT -GTCAACGTGGTGTCAGGCTGACCCATTACGGTTTGATCTATAAAAAATGC -GGGAAGTTTATGACCAGAAAAAAATGACGTCATCACATTCTTAACCATAC -GAAATCAGTTGAGAAATCTGCGTCTCCCATTTCTTCTCCCGCATTTTTTG -TAGATCTACGTAGATCAAGCCGAAATGAGACAATTGAAATTCCAGCTTGC -TGCTCCTCTCAAAAACCAATCCCACTTGCCTGCTGTCCGCCACCTCCCCC -ACCAAAACCGTGTTGCCAGCCAGCCTTCGGCCCTTGCTGCCCGGCAACCC -CAAACTGTTGCCCGAAACCCTGCTGCCGAGGTCGTCGCCCCGAATACGAA -GAGTACGAGGACGAGGAAGGCAACCCTGGAGGCGTCCCAGCACCACCAAA -CCCACCAAGAACTTGCTGTCCTCCACCAACACCTGCTGCTCCACCACCGC -CACCACCTCCACCACCACCGGCTCCGGAAGCTCCAACGCAATGCTGTGGA -TCACAGCCTTATGGAAGAACACCGTGCAGGTCCGGATGTCCGAATGGAGA -TTGTGGATGCGGAAGACCTTGCTGTTACTATCAGAACCCCACATGTTGTA -ATCAAGGGCAAAAGGCTTGCTGCCCACCTGAACAGCCTTGCTGTCCTGAG -TTGAAGCTGGATAACTGCCTCGCTTCGGTCCCACCTTGCCTTCGCGCCTG -TCCATCGTGCCCTTGCAGAAAACGTCTGATGCTTGGGAAGAGAACTAAGA -GAGACGCACCGGGGCTTCATTGCCAGCCAAGTAAGCTATAAGTTTAGATT -TTCACGTAGTGTCAGGCTGTCTCATAGTGGTTTGATCTACAAAAAATGCG -GGAATTTCTCGCCCAGGAAAATGTAACGTCAGCATCAGGGCTGGGACCAA -AAAAAAAATTTTTGGACCAAAGAAGTTTTTGAAAAACCAAAAAAACCAAA -AAAAAAACAAAAAAAAAACCAAAAAATTTTTGATATGCTTAAGTTGATTT -TTAATGGGGTTATTCAAGTAATGTTGCAAAATGTATTAAAATACATTTAT -GACGTCACAACTGTGTTAAAATACATGTTTTAATGTATTTTAATACAGAA -TAGTCTCGAGTCGACACTAGACACGGTAAACTTTTTTTTTAGATTTTTCG -TCAAAATACCAAAAAAACCAAAAAATTCCCAACAGCATGTTCTTAACCAT -GCGAAATCAGTTGAAAAGTCTGCGTCTTTTCTCCCGCATTTTTCGAAGAT -CAAACCAAAATGAGACACTTTGACACCACGTGGATTTTCAAAACGCTGAA -AATAAGTAAAATAAATAAAAAATTTTCAGTCGGACTCCTTGGTCAACAAT -CCCCACCGACTCTGATTTCAAAGCCGGTAAAGACCATAATAAAATCAAAA -TCCCGCGTTGCTGGAACCAAGACATCTCAAGTGTCCGTCACCAAAAAGCT -CATCGAACAATCCTCTGACCACGTGGAATCGCCTCCAACAGCCGGAAGAC -TCTACGACTTCCGAAGAGCCCACGTTCGAGTCAAGAGAAACATGAACTTT -GGAAATGGAGCATGCCAGCTGTGTCTGAACGGAACTCCGCTCAAGAGAAC -CAAGCGGTCTCTCGATTGTGTTCCGTGTACCTACCTACAACCACAATACT -CTGATTGGAACCCGTTCCTCGGAGATCAAACGCCACGCGGATCGCAGTCG -CCAGTTGGAACTCCACTCGCCGGGCACAGAACTAAGAGAGCTGGCGTGAG -TTTGACTCATAGAAATTAACGAAGCTAAATTTATTTTTGCAGTGCCTTCC -TCATCCACAATGTACCCTGCATGTCCGTCGCTATAAGAGAAACCTGATCG -GATCCCAATATTGTGAGCCATGCAATGGACACTACGGTAGAAAGAAGCGG -GAAGCCGAGAGAGATCAGTGCTTGAAAAGAGAGAAAAGATATGCAGATGA -ACAGTGTGATAACGATGAGTTCAGTATCAATGAGCGAAGCAAACGACAAG -CCTACAATCCAAAAGGAATTTTGGATATCGTGAAGCTCCTATCCAAGGCC -TCCTCAGGTGGCAACAATCCAGGAGGATGCATGAAGTTCCCAGCCTGTGT -TCTGGCTCAGAAGAAGAGAAGAAAGAGAAATGCAGATCGGCTCGACACGT -ACTACAAAGCTGTGGAGGAGCACAAGAAGCTGGTGGAAGAGTACGAGATG -GCGATGGAGGAGCACAAGAGAGTCAAGCGGCAGTTCTTCGCTCCGGATAA -TGCTGCATCCTGTGTTCCGTGTCCGGCATGGGTGACACTTGCCTTGGCTA -GCAGAAAGAAGAGAGAAGTCGAGAAGGTGGAGAAGCATATGACGATGAGC -GAAGCTATCGCGGATATCAGAGCAAAGAAGGGGTATAAGGAAGGATTTGA -TGATGATGATGAGGTGAGGACTAGACCTGAAATTTTAGATCCTGTAAGAA -CTTTTTGAAAATTCCAAAAAAAAAACCCCCTAATTGAATCACGCGCGCAC -GCGCCACTGAGAAGGATACTGTATTCGCGGCGAGACCACCTGCACATCTA -ACTCCCAAAAGTGACGAATTTGGCCTAAAATGGACTTTCTTCATGGGATT -TCCACAGTTTTCACCATTTTTTTGACACAGTTCATGACTTTTTACACTCA -AAAAATTATTGGCGTGGTCATTTCACAATGATTTCAACAATTTACTGGAT -TTTACGCGTGTACTTCATCGTGGCACACCAAAAATTGATCTGGTTCATGT -GGTGTCAGAGTGTCCCATTTTGGTTTGATCTACGTAGATCTACAAAAAAT -GCGGGAGTTGAGAGACGCAGAGATCTCAACTGGCGTCACATCAATGCGGA -TTTTAAAATTTTCATTTCAGGACGACGAATCCTCTGAGGAAACCATCGAG -ACCCGCAGAAAGCAACGCCGCTCCTGCCAACAAAGTGACGATTGCCTGAA -CAACGTCGAGTACGCAGTCTTCCAAAAAGTCTATGCAGACAAGAGAACCA -AACGAGAAGCCGTGTTCCGTCGTAAGAAGTGCTCGAGGTGTGGAGTCTCT -GGGCTCACGCCACATCGTGTCAAGAGAAACTTCGGGCAGCCGAATATCAA -CGTCTCGGAGCAGAATTGCATGGCATTCCCACAGTGTCGGCATAGAGTGA -AGAGAAACTTTTTGGGAGAAGACTGTAACATCTGTACACAGGATACTGGT -CTGAAGCGGAGGAAGAGAGACTTCGGAACAGCGGTAGGTGTTGGTTTAAT -GAGCTTCCTTATCTTAAAGTTTTCAGCAATGCTACCCATGCCCAGGAACA -CGTTCATAACTTGAAGCGACTCCCTCCGATTCTCACATATCACATAAATA -CCACCTCGTAATAATAATTCAACATGACTAATAAAACAAATAAGTACATA -CATACATTTATATTAGCTTTTAGCACCCGTAGCAATTTGGAGCAAGAAAA -TATGTGTAAAGAAATTGGAGATGTAGTAGATTTGGTCGTTATAGTGATCG -CAGATCTTTCAGCTCTTTGAGCCGGAATATTGACTGGCTTGGAGCCAGGA -GATGAACCTCGCGGGGGAATGAGGCAAAGTAGGGGTGAAGCATTGCACTG -GCTGCGGAGACACGGCTTTCCGGGCGGAGCTGTAATTTTGAGGGTTACAA -GATAGGTGTAGCTCGATGTCGATTCATTTAGACTAGCATTGCAGCCAGGG -CTTAAGCTTTCGGCTTGAGCTTGCACTCAAAGATTGCTGCTCAATATAGC -TCGCGAAGACTGATTTGTCAAAGATTAGACTAGTAGGCCTGGACTGACTT -AAAGGTGGAGTAGCGCCAGTGAAAATTTTGTCAAAATACATACATAATGA -TCCGAAAAAAAAACCAAATTTCATAATAAAACAATCCAAAAAATTAGATT -TTTCACAATTTCAGGTCAAATTTTTGGCAAACTGCTAAAATTTTGAAAAA -TGAGCAATTGAGGAAATCTAGAGCAATGTCGCATGTTCCGACCCCTACAA -TATTTTAATACAAATAATTAAAACACAATTACAGTATAAAAATGTAGGAA -AAAAAATTTTTTTTTTGTTGGTCGACTTCCAAAATTATGAGTGGTAAAAT -TACAGTAAATAAAAAATTTTCAAAATTTTTTTGAAACGTTTTATTATGAT -ATTCGGTCTTTTCGGGACTAAAGGAGTGGTTTTTACAAGTCTACTTACCT -GAAGAAGCATCCCCAGAAGTTCCTGACCAGTCTTCAGAATCTTCGTGAAC -ATCGGGTTCACCGCGATGAACGACAACTCCCGATACCTGGGGAACAGTTC -AGGGGTGTAGCCTGGTAATGTCTTTACCTGAAACAAACATCTTTATCTCT -AGATTTTAGATTCCCTCACCTCCGGCCACTTTTTCTCGTCTGGAGTACCC -CGAATGCTGAAGATCATATCCAACTGGTCCTTGGTGCCGGGGTAGTGAGA -GTCCTTGGATCCCGGGAACAAAGCGGCGCCCGTGCAAATTTCAGCGAATA -TGCAACCGACTCCCCTGCAAAGTTAGTAGATATAGTTGGTACCTTTTATA -AAATAATATCCTCCTACCACATATCCAGGGAAGTTGAATAGTCGGTACTT -CCCATGAGAACATCAGGCGGGCGGTACCATAAAGTGACCACCTCGTGAGA -ATATGTCCTACTCGGCACAGATTTCGCCCTGGCTAGACCAAAGTCTGCGA -GTTTTAAAACACCGTCTTCGTCGAGAAGCAAGTTTTGTGGTTTTAAATCT -CTGAAAATCAGTTTTTATCAAGAGTTATGGCCGCAACGGCGCCTCCGCCG -ACCCCAGCGGTCGCCGCGCCGGCCTCCGCGGAACCCCGAAAATGTCCGCC -GCTCCAAACAACCACTTTTTTGCACTACGTTGCGCACACACCAGGCTACT -CATTTCACGCCAAGCTGCGGAACACCGAACGTGTCCGCCGCTCCAAATAA -CTCCCTTTCGCAATACGTTGAGCACACACCAAGCTGCGGAACTCCCAACG -TGTCGGCCGCTCCGAACAACCACTTCTACGCACTTCATTGCGCACACACC -AGGTTACTCATTTCACGCCAAGCTGCGGAACCCTGAACGTGTCCGCCGCT -CCAAACAACTCCCTTTCGCAATACGTTGAGCACACACCAAGCTGCGGAAC -CCCCAACGTGTCGGCCGCTCCGAACAACCACTTCTACGCACTTCATTGCG -CACACACCAGGCTACTCATTTCACGCCAAGCTGCGGAACCCCGAACGTGT -CGGCCGCTCCAAATGACCACCTTTCGCGCTTCAACGGCGTCGGCGTGAGG -CCCGAATTTCGCGCCTCACTCTGCTGGGAGCCCTATCAACACTAGGGAGC -AGTTTGAAAACTAACCTATGAAGAATCTTCTTCCTATGACAAAAATCGAG -TCCGCGGAGAAGTTGAAAGAGGAGAAGCTTGATGTCAATGCTATCCAACC -CATAGACGTTCTGCTCCAGGTACTTGCTCAAATCCATTTTCATGTACTCG -AACACAAAAGTTAGCTGGTGGTGTTGATAGAAGATGTCGTGCAAAGAGAC -GATATTCGCATGACGGAGGTTTCTGAGAAGCGAGGCTTCACGGATAGCGG -TGAATGGGAGACCTTCTTGAAATTGAAGTTTGATCTCTTTCAAGGCGACT -ATGGATCCGTCAAGTCTGAAAATATAATTTAGTTTGGTAATATCAGCTGT -TAAAATATCTAACTTCGATTCGCACTTATACACCGTTGCATAAGATCCTT -CCCCCAGCTTGTCAATTCGTTTGTACAGATCATTCACATCCTGCGGTGTC -ACTTCCTCCTTCGCAGGAAGCGTTATCGTATTTGGATCGTAGTGTGCTGA -TCGTGGTCGACGTCTTCGAAGATGTGTGAAGTCGGCCACAGTGTTGCTAG -ATGGTGGTGGTGGCATTGATGGAGAGTTCTTGTTTAGGGGCACGGTTGAC -ATGGTTTCAGATGGATTGTTGGAGCGGGAACGTGATTGGCGGCTGAAATG -GTATTACTAGGGTTTGATTCGGAAAATTTTCTTAGAAAAACAGTTTGGCG -GGAAGTTTAAATTTTCTGATTAAAAATGTTGGCGTAAGTGGTGTCGAAGT -GCCCCATTTTGGTTTGATCTACAAAAAATGCGGGAGTTGAGACAAAGACT -TTTCAACTGATTTTGCAGGATTAAGCTGACGTCACATTTTCCTGGGGGAA -AAATCCCCGCATTTTTTGTAGATCAAGCCGCAATGAGACAGCCTGACACC -ACGTGTTGACGGGATATTTAAATTTTCTGAGAAAAACATTTTGGCGGGAA -GTTCAAATTTTCTGAGAAAAACATTTTGGCGGGAAATTGAAATTTTCTGA -CAAAAAAATTTTGGCGGGAAATTGAAATTTTCTGACAAAAAAATTTTGGC -GGGAAATTGAAATTTTCTGACCAAAAAATTTTGGCGGGAATTCAAATTTT -CTGGGAATTAACTTTGGGGAGAAGTTCAAATTTTCTGTAAAAATTTTGGC -GGGAAATTGAAATTTTCTGACAAAAATATTTTGGCGGGAAAATCAAATTT -TCTGAGAAAAAAAAATTTTGGCGGGAAATTGAAATTATCTGACAAAAATA -TTTTGGCGGGAAAATCAAATTTTCTGAGAAAAAAAAATTTTGGCGGGAAA -TTCAAATTTTTTTTTTTTGAAAAGAAAATTCTACGGACCGGAAACGGCCC -AACTACGGCTCAAGAGCCGTCTCGGTCGGTAAATGTGTTTTTTGCTCTAA -ATAATGCATTTAACGACGTAAAAATGCTTAAATTAGCCAACTGGTATCAT -AGGTATTAAAAAAATTCGTTTTCTTAAAATCCATTTTTTCCTCTTAATGG -CCATTTTTTTACATTCCCCGTAGTTTGCCCGTAATTGGTCCGTCCCGCTT -TTCATATCCGTAGTTCACCCGTTAATGGTCCGTTCCCGGTCCAAGATCCG -TAAACGGACCGTACCGGCTTTGCCTGTGGTCAGATATAACTAGTAAGTCA -AGTGGTGTCAGGCTGCCCCATTATGGTTTGATCTACTAAAAATGCGGGAA -TTTTTCCCCCAGAAAAACGTGACGTCAGCACACTCTTAACCATGCGATAC -CAGTTGAAAAGTCTGCGTCTCTTCTCCCGCATTTCTCGGAGATCAAACCA -AAATGAGGCACTTTGACACCACGTGGTAAGTTATAACAAACATAACAAGG -TGTCGAAACTACTGTAATTATAGTCTTACTTCAATATACAACCTAATAAG -AATCTCCACCACTTACCTCAAAAAGCTGAAAATATTCTTATTATGATGTT -CTGGTGTGCTTCCACTTCCGGACCCCGATGATGCCCCATTCACATGATTG -GAGTGCCATGATTGTGTCATTTCATTTGTTCCGTTTTTCGAGATCGGAGA -TTTGGTGGAGCCTCCTGAAAAAACAGAAATAAATGTGGAATTATATGGGG -GCTCATATGTTTTCGGAACTAACCTTTTTGGGAGAAGACTCTGGAGAGCA -TTTTTGTGTAAACTGACTAACTTGTGCCACCCCCCGCACCCCATAGAATA -AATTGGCTAAAATTTCGAAAAAAAAAACTCGCCACCGCCGTTATTCTTGT -ATTTCTTCTCCTTATTCCGACTCCGACGCAAAGTGAAAATTGACGAGGAC -GGCTGGAATAATGTTTTGTGTTTGTGTCTTGTGGAAGAGATGCAGAATCG -CCGGAAGTTTAGAGGGGGTGGCGTGACTTACTGACCTTCCGGGTGCTCGG -CGAGCCGTCCACGTCCTGAATTCGTTGCGGCGACATTGTGGTGATCTGGA -ATATGTGGAGCGTAATCGAAATATTTAGGCTTAGGCTTAGGCTTAGACTT -AGGCTTAGGCTTAGTCTTCGGCTTAGGCTTAGGCTTAGGCTTAGGCTTAG -GCTTAGGCTTAGGTTTAGGCTTAGGCTTAGGCTTAGGCTTGGGACTGGGC -TTAGGCTTGAGCTTTGGCCTAAGCTTAGGCTTAGGCTTACGCTCAGGCGT -AGGATTAGGCTCTGGCTTTGGCTTTGGCTTAGGCTTAGACTTAGGCCTAG -GTTCACGCTTAGGCCTAGGCTTACAAGAAATATCCTCATTTACCGACCGA -CTGTGGCCTAGGATTTCAAAAAATGACCCTTTTTGAAAAATCGAAAAATC -GAAATATCGACGAATTTTCGTTTTTGAGGCGTTTTTTTAATTTCAATTTT -TATAATTTTTTTCGGTTTTTCGATTTTTCTTGAAAATACCAAACTCACCC -TATGCAAGTTCTCCGACGACTTCGAACTCCTAACAGCGGTGAGCTGTGGA -TGATGTATCATAGACAGTGAGCACGATGCTCTCATAGGCCTCTCGGCCTC -CTCCAGCCCAAACCATACTCCAATATGCGAGGTTATTTTTCCCCACATTT -GATTGAAAGATGGTATCTGCAAGTGAAATTTTTGGGTGGGGAAAAAGAAC -GTGAACGAATAATTTGGAGCAGCGGGGGGGGGGGTGGAAAAATGAAGAGC -TGCTCGGAGGAGGGAGCCGTACTACGAAATGAGAAGAGGAGAAGCCGGTG -TGACGGCGGGGCGTTAATGGGTTACTAAAGCCTCCACATTCCCATTTTCA -GCCGTTTCGAAACAAAGAAAATAGAAGAAAAAAAAGACAGATGAAAAATG -ACTTGGGTGGGTTCGGTGAAAAACAGGAAGCAGGAAGAGTGAGGAAATTG -GATGGTGGAAGAGTTTTGGCATTTCTAGGTTACCGGGAATCTTTAGAGAC -ACCTGGGCTGTCCCATTACAGTTTGATCTACAAAAAATGCGGGAATTTTT -CGCCCAAAAAATTTTCAACAAATTTAGATATTTTTTACATTTTTTCCCCA -ATTTTTTCAGCCATATTTCAGCCATGACTGTCCTTTTTTTCGGGCAAAAA -AAAATTTTCTCTGAAAATGTTCGAAACTACTAAATTATGCAAGAAGACAA -TTTTTAAGGTTCGGAGATCAATTTTGAGTCCTCTAGCTTCAAAATTATCC -ATTTTAGAAGAGTTTTAAAATTGTAATTTTTTACAAAAATTGCTCAATTT -TGCCACTTTTTAATAGTTTTCTAAACCTAGATTTTCTGAATTCTGCATAT -ATGAATTACCCGTTTTCAACAAATTTAGACAATTTTTTTCATTGTTTCCA -AAATTTTTTTCAGCCATTTTTCAGCCATTACTGTCCTTTTTTTGGGCAAA -AAAAATAATTTTTTGAAATTACATTACACACCTTCCATGTTTTCTTCGTA -GATTTAAGGTCCATGTCCACTGCTTGGTGGAAGAGTTTTCCGAGTTTTTA -GGTCACCGGAGAATTTGAGTTGGAAGAGTTTTCGCATTACTCCCCAACTG -TGATAGAACTTCAAAAATGAATATGCAGGGACATCACTCAAATTTGACAT -GTCAGTTTAAAGGAACACGCTGATTTTCCGAGTGGGTCTCGCCACGATCC -AGGTGCTAAATTTTCACAGTTTTTAGTATGTACCTAGTGGCTTATTTCTA -AACAACACGCGCATAACATCGGAGTGTCGTTGCATAGGCCACTCTAAAAC -ATAAACAAATGTGTGAAGAAAAATTAAACACAACTAGCACGGATTTCTGA -CGTCCCTCAGAAGTTGAAATGGAAGAGTTTTTGCCGAACTAGGCCAGGCC -ATATTCGGGGTAGATTTACGGCGCGTCGCGGCTCGATTTTAGTTGTAAAA -CTAAATGTATTTGTCCGTGTGGAGTACACGACTTTCCCAAGCGTTGTCCG -GCAGGCGATTGTCAATGGAGCGCGAAAATTCAATGAGGAAGGCCAGAACC -CCGTGGGATTTTGAAATTTTTTTCAGATATGACAAAAAATGACAATGCCA -AATTTAAAATGCATTAATAGCGGACAGAGGAGAGAATAAGTAGGGAAAAA -AGAAGAAAAAAAAAGACGGGCGGCGCTTCTCTCATAAAATAGTAATTGGT -CATTCTAAGTGTGCCTATTGTTCCTTATTTTTCGCTTTTTCTTGGCTCAT -TTTAGCTCAAAAACCAAATGTCGAAGAGTTTCTAGAGAACTAGGCCACGA -GAGGGAAAAACTAGGTCACTGGAATTTCTACGCTAAAAATTTGGCCCAGC -ATATTTACCTACGTGGCCGTAAAAGAGAAAGTTCGGCCACTAACTTTTTC -GGGCTATCAAAAAAGGTTTACCAAAACTTTATAAAAAAGAAACCACTTGT -GGAAAATGGCCGTGCATACTAAAGTTCGGCCACAAACTTTTTTAAAACTT -TTTTGCTCAAATTGAAGTACAGGACCACTTCGATGGGCGGTTTTCACTAC -TTGGCCGTGTAAGAGAAAATTCGGCCACCAACTTTTATTCAAGGCCACAC -CTCCAAATCCTTCAAAGCTTCAAAAATTTTCTACGTGGCCGTGTACGAAA -AAATTCGGCCATCATCTTTTTTTTGGGTCACGTCGCTAAATTCTTCAGAG -CTTCAGAGATTTTCTACGTGGCCGCGGGAGAGAAAATTCGGCCACCAAAT -TATTTTTTAAGGCCAAACCTCCAAATCCTTCAGAGCTCATATTTTCTACG -TGGCCGTGTACGAGAAAACTCGGCCACCAAATTAATTTTGAAGGCCCCAC -CTCCAATTTCTTCAGAGATCATATTTTCTACGTGGCGTGGCCGTGTACGA -GAAAATTCGGCCACCAAATTCTTTTTTAAGGCCAAACCTCCAAATCCTTC -AGAGCTCCTATTCCCTTCGTGGCCGTAGGAGAGAAAGTTCGGCCACCAAA -TTAATTTTTTAAGGCCACGTCGCCAAATCCGTCATATTATGAGGAAAAAA -GTAAAAAATAATACTAATAACAATTGAAGAAAAATTGAAAAATATAAAAA -TATAAGAGACTAGTAAATGAAGAGGAATGAAGAGCGAATAGGAGGCCAGA -GAGAGAGAGGGGAGGAAATTGTGCTGTTGAAGACCTTGAAGAGAGAGGCA -CAGCAATAGATAAATTGAATTACAATGGGGTGAGGAGCCGGGTCTGTCCC -CCCCCCCCCCCCCCCCCAAAAAGTGCGAACAAATGTGATGAAGCGCAGAG -AAAATCGGGAGGGGGGGGGGGGGGGGGGGCTGTGCTCCAGGTTGATTGAG -CCAAGTGTTTCGACTTTTTGCCGAACACGTTGAGCTCTCCGATGAGCCGG -GCTCACCGGAGAGCCCATGGAGCCCCATGAAGCAGAGGGTCACAAGGTTT -GAGACTTCCGGGAGATAGACTGCACAACGTACAAAGACTAAAACTTTTTT -TTTTTGCAGGTGAGGCATGAAATTTAGAGCTTTTTTGCAACAAAATCCAA -CATTTTTTTTGTAAAATAAGGTCAAATGACGAGTTTTTTCTATAATCTGG -CCGAGAAAACCTGAAAATTGATCTACCTTGATAAACAGGGCGCGCGGGTG -TAAAGCGGAGCGTCGTTGTGAAGCTGAAATATTGTTGAACGAATTCTGGA -ATTCTGGCTTCCCTCATAAATTGAAATGGAAGAGTTTTTGCCAAACTAGG -CCAGGCCATATCTGGGGTAGATTTACGGCGCGCTTTTTTTTGGGCATAAA -ATTCCCGCATTTTTGTAGATCAAACCGTACAGCCTGACATCACGTGTTTT -TGGCCCCGCTAAACAGGGCGCGGGTGTAAACATTCAAATATTATGTGAAA -AAAACGCATGAATTTGAACAATTTTGCGTAGAATTTTTGAACAAAAAAAT -ATATGAATAACTAATGCAAAACGAACAGAACTAAATTTTCTGAAATTGAA -GAGAGGGGAAAAAAATTGGGAAATTTTGGACATTTTTCCCAACGACGCAT -TGAGCCACCGGACCCAGATGAGCAAATAAACCGGGGGAGCAGGAGGAAAA -TGGAAATGACAAAAAAGGCGGAGGAGGAGAAGCTCACGTATTTAGTATCC -CATAGAAAGAGTCAATTTTCATAAACTGCGACAATTGACTACCAGGGAGC -AGTTGCGCTCTACCGACAAAATCAAGCAAGGTCCACGTAGTGCCAGTCTG -TCCCATTACGGTTTGGTCTACAAAAAAATGCGGGAAAATTTGGCTCAAAA -AAATGTGACGTCAGCACACTCTTAACCATGCGAAATCAGTTCCCGCATTT -TTTGTAGATCTACGTAGATCAAGCCGAAATGAGACACTGTGGCACCACGT -AAAGGTCCTTCTTACAGAGTGCGCTAGAGCGCGATTGCCAGTTTTCTAAA -AAAAAAATCTAACATGAAAAAATGTGCGTAAAAGCGGAGTTTCGTTGCGA -TGTAAAATTTGGAGAAAAATTGAAAACTGAGGAGGAAGAAAAAGTTAAAT -GCCTCTTCGCAAGACCGGGATTAAATAGTATTTTACTTCTTTTTTTTCCT -TCAACTTTTTGAAATTTTTGGCGGAATGGGGAAAAGGAAAAAAAAACGAA -ATCATCGATAAAAACAACACTAGGCCACCCAGAAGTAAACCTAGGCCACC -TTATAGAAATTCTAGGCCACCCTGTAAGAATTTTAGGTCATCGCGTAGAA -AAGCTAGGCCACCCTGTTGAACTGCTAGGCCACGCTGTTGTACACTTAGG -CCACTCTGAAAAAAATCTAGACCTCCCTGTAAAAAATCTAGGCCACCTTG -AAAGAATTTTAGGTCATCGTGTAGAAATTCTAGGCTACGTTTTCGAAATT -CTAAACCACTCTGTAGAAAACTTGGGTCATCTACCGAAATTCTAGGCCAC -CCTGCAGAAAACTTAGGCCATCTACCAAAATCCTAGGCCACCCTGTAGAA -AACTTAGGTAATCTACCAAAATTCTATGCCACTCTGTAGAAAACTTAGGC -TACCTCGTTAAAGTTCTAGGCCACCGTGTAGAAATCTTAGGCTACCTCGT -TAAAATTCTAGGCCACCCTGTAGAAAAATTAGGTGATCTACCAAAATTCT -ATGCCACCCAGAAGTAAACCTAGGCCACCTTGTATAAATTCTAGACCACC -CTGTAGAAAACTTGGGCCATCTACCAAAACTCTAGGCCACCCTGTAGTAA -ACTTAGGTCATCTACCAGAAAACCTAGGCTGTTCCGTTACGCCGCATGCT -AAAAAATCCAGACCGCCCTGTAGAAAATCTAGGTCACTCCCTACAAAACC -TAGGCCACCCTGTGAAAATTCTAGGCCACCTTGTGAAAATTCTAGGTCCT -TCCCTAGAAAAACTAGGCCACCCTGTTAAACTCTTAGGCCACTCTCTAGA -AAAACTAGACCACCCTGTAAAAAAACCTCGATGGCCTAGAAAAAAGCTTG -GGAAATTTTGTGGAAAAAGTTAAAAAGGAAAATCTAGGCCACCCACAAAA -AAGCTAGGCCACGTGGCAAGAAACTTCAAAAGTGACGAATGATGAGACGA -GAGGCGTATGTTTGAGGTCAAAAAGGGTGAAAAAGAAGAAAAAAAGACGA -GGCGGAATGTTTCTTTTTTCTTTTCAAACTGAGCATCTCCCCGTCTCTCG -GCCACCAATACTACTACTACTACAACTATTCATGTTTTTAGAGAGCCCCC -CCCCCCCCCCCCCCCGGCCACTTGTCAGCTTTTTTGACGGAAGATGCCAA -CACACAATCGAAGGGGAAACCATAAAAACCCGCCAACGACACTCCGTTTT -AAGGCCCGGATGCCCAGATGTATGAAAAAATGGAGAAACTGAAGGCTTCT -CCCCTCCCCCCCCCCTCCCTTAAAAAATGATGAATTACTAATGGTGCCGC -CCATGTTGTGTTTGTTGCTTTCCCCCCGTGCTCCATCATTGGGGGAACAT -GACAGCCACCTTGAGTTACATGTATACAAAGTGACAGGAGGGAAAGATAG -GGGTAAAAGTGCAAAAAGGGAGTCGCGGGTTCGAACCAGTGAGGGTTTGC -AAAATTTGGGCTGTGCGCGGCGCCTTAGACTACTGCGCCACGCGTGCGAA -CTGTAAATAGAACTGTCAGGCTAAATACGAACGTTCGGTTTTTAAACTCG -ATTGGCAAAAATGAAATGAATGAATAGACAGGAATGACTCATATTTTTTG -CATAAAGGGGCCTGGGTCTGGGAACTAGGAACTAAACTAAATGAAGGAAA -ATTGAGGCATCTCCCGCCAATTGAGTAGAAAAGTGATGAGAGCGGCAAAA -AGAGATAGGGGGGGGGGGGGGGACCCATTCATTTTACACTGGACACCACA -CTCCCCACTCTCTCTTTGATGACGAAGGACATGAGTACGAACTCGCGAGC -ACAGAAATACGACACGTTTTCTTCTCATTTTTTTTTTGCAAAAGGTGATG -ATGATAATCGCTTCTAAACGAGGGGAAGTGTACTAAATAATAAAATTGCG -AGTGGATATTGGATTTTTTCGTTATTTTCCGCTCTGAAAAACCTGAAAAT -CAGTCGGAAATTCGAGTTTTGGCTAACTTTTTGTAAATTTTGTTTAAAAA -ATCACTTTTCGCTGCGAAACCACCTGAAAGGATATAGTGGGCATGCGCCT -TTGAGCGCTACAGTGGAGGGAATGCAGTATCTCTTGGAAGTCAGATTTGC -CGATTGTTTTAACGCAAAACCTGAAGTATAGAAAAGAAAACATGAAAATT -TATTGAAAATATAATAAATAAATTAAGCAAATTACATATCAACTGAGAAA -ATCACCTGCTGGAGAGAAAAATTGAAAAAAAACCAGAAAATCGGCAGGAA -AGCAATAATCGAGCAAGATCCTTGGAATTTTTAGGTGCAGATATCGGTTC -AAAAGGAAAACACTATTTTAGCTTTTTTTTGTCTTAAGTTCAATGTTATA -ACACAAGAAACGATATTTCTATGGCATAATTTTTGGGTCCTAGAAAGCAG -ATTTTCACGTAGATTGGTCTGAAAATAATATTGGAGTAATTTTTATTATT -TTTCCTTGCATTATAAAATTATTTCTCTTTTATTTCTCAATTCTAAAACT -ATTTTCCCGTTCTTTTTCCCTATATCTCGCGCTTCTCCGGGATGTTGCAT -CCCATTCGACGTGAGGAGTCTCGGAGTCTCTCCGCTGCAAACGCGCTCCA -CTGGACACAGAAAATAAAAAAAATAAATTGTTCGAATTCATGCAATTTTC -TTCTAATTTTCTCCGTTTTTCGTCAATTTTTCTGCAAAAAAGACAAAATT -TACAGGTAGCAATGTATGGGGGATATCAAGGAGCATATGGGTAAGGCTAA -AAACTAGGAAAAACTAGGAAAAACCCATGGAAAACTAAAAAACTCTGAAA -TTTCAAATTTCAGAGCCTACGGGAACCAGCAGGCGGCTTCACAACCATAT -CAACAGCAAGGACAACAGAATTATTACCCGTAACTCGAAAAAAATTCAAA -AAATTCGAAAAAAATCAATTAAAAAGATCAAAATTTTCAATTTTTTCAGC -GGAGTGAACCCGTACGCGGCGAATTATGGGTACGCGGCAGCACAGCTTCC -ACCACCACCTCCACCACCGCCAGTATGCCTTAAAATTGAAGAAAATTTGA -TTAAAAAATTGAAAAAATGCAAATTTTCAGGTAGCCGATCCATACGCCGG -CCAATTTCAGACATTTCCCTCTCAAGCCACCAAAATAGCGCCGAATCCCT -ACTTTAAAAAGCCACAAAATCAGCAGCAACAGGGTATTTTCGCCGTGTTT -TCTGGCTGCAAAAAAATTAAATTATCGATTTTTTTAAGGCTACGACGCGG -CGGTCTACAATTACGCTCAGCAGAATACTCCGAAAAATTGGAAACACGGC -GGCGGCGGCCGGCAGGGGAGACAGGGATCTGGCGATAATAAACAGTACTA -TTGTGAGGTAAAAAACGTGGAAAAAATCGAGTAAAACACAGTTTTTTATT -CAAAAATCTGAGAATTTCCGTAAAAAATCCTGTTTTTTGACGTTTTTAAG -CAAAAAAATCGGGTTTACAGCACTTTTAGAGATAAAAAAGTGGAAAAAAT -CGAATTTTGGACCTGATTTTGGGCTTGAAAGCATGATTTTTATCAGAAAA -CACAGTTTTTTTTGTCAAAAATCTGAGAATTTCTATGAAAAGTCTTGTTT -TTGGATGTTTTTAAGCAAAAAAATCGGGTTTACTTCATTTTTAAGGGTAC -AAAAGTGGCGAAAAGTTAATTTCTTGTAAATTTTCACATGCAAAATATTG -AATTTATTAGGTTTTTTCCAGAAAAAGTAGTTTTTTTGCTACATTTACAG -GCTTTTAAAACTGAAAACATGTTAAATTTCGAGGAAAATCGACAAAAAAA -CCCATCTTTTGGCCAAATTTAAATTTTTGAGCAAAAAAATCGGGTTTGCA -GCACTTTTAAAGATAAAGAACTGAAAAAATTCAATTTCTTGGAGAAAAAA -GCAATTTCAACACCAAAAATAGCAAAAAATTCGGGAAAATTGTCAATTTT -TTTGAAAAAAAACTTGAAAAACCGGATTTCCAGTTGTTTTTTCATGATTT -TTTCTCAAAAATCTCATAAAAATTGGAAAAAATTCCGAATTTTTTACTGA -AAATTCGAGAAAAATTGAAATTTTTTCAATTCCGATTTAAAAAACATTTT -TCGCTAAAAAATTGAATATTTTTAGGCTTTAAAGTTCGGAAAAGATGCTG -AAAATTCGGAATTTTCTGTTTAAAGAAATTTTTTTTGTGCTGAAAAATTG -ATTATTTTTATGCTCCAAAAACTGGAATTTTTGAAAAATTCGGACAAAAA -AATTTTTTTATTAGTTTTTAAATTTTTTTAATTTTTCAACCCGCTTTTTG -CCCAAATTTAGATTTTTTATTTAAAAAATCGGGTTTACAGAACTTTTAAA -GGTAGAAAAACTGCAAAAAGTTAATTTCTTGGATATTTTCAGGCTTTAAA -GTCCAAATAAACATGTTGAAAATTGAAATGTCTTCAATTTCGATTAAAAA -CATTTTTTTCGCTAAAAAATTGAATATTTTTAGGCTTTAAAGTCCAAAAA -ACAAGCTGAAACTTGAATTTTTTTCATTTTCAATTTAAAAAAATTTTGCT -CAATAGATTTTCAGGCTCCAAAACACTGGAATTTTGGACTTAATCGAAAA -TTCGGACAAAAAAATATTTTTATTAGTTTTTAATTTTTTTAATTAAAAAA -AATCCCAATTTCCAGGTGTGCAAAATCTCATGCATTTTTAGGGTTAAAAT -TGGAAAAAATTATCAAAAATTTTCGAATAAAAATGGAATAAATCTGATTT -TTATAAATTTTTCGAAAAAAAAATGATTTGTTGGCAAAAATTAAATATTT -CAGGCTTTGGAAGTCCAAAAACCATGTAGAAAATTCGGAAAAAATCGAAA -AATTGGAAGAAAAAAATTTTTAATTTCAAAAAATTTCAAAAAAATATTTA -AAGCTGGTGTAGTCGACTTTATTTATTGCTTAAGTAGACTCTAAATTGCC -TGGAAACACCGAATTTCATAATGAAACTTCTTGAAAACTTCTCAAAAAAA -AAAGTTATGACGGCTCAAAAAATGGACTAAAATTAGTTAAAATTTGAAAT -TTGACCGACTTTTCAAGCGGCTGGAAACATTTTTTCTTTGAAATCACCGT -CAAATTTTGAGTATACTGTGCAATTATGTTGCGTTTTCAACTTCATTTAG -GTATTTTAAAGTCAAAGGGCGGCGAGATTTTTAATTTTTTGAACCAAATC -TCGCCGACCATCGACTTTAAAATATCTAAATCGAGTTCAAAACTCAAGAT -AATTACATTATATAATCAAAATTTGACGGTGATTTCAAAAAAAAGGTAGT -TTCTAGCCGCTTGAAAAGTCGGTCAAATTTCAAATTTTAACCAATTTCAG -GCCATTTTTTTAGTCGTCATAACTTTTTTTCGAGAAGTTTTCAAGAAGTT -TCATTATGAAATTCGTTGTTTTCAGACAATTTTGAGTCTGATAAAGCAAT -AAATAAATTCGACTACACCGCCTTTAAATATTTTTTTGAATTTTTTTAAA -ATTAAAATTTTTTTTTCCAATTTTTCGATTTTTTCCGAATTCTCCACGTG -GTTTTTGAACTTCCAAAGCCTGAAATATTCAATTTTTGCCAACAAACTAT -TTTTTTTTCGAAAAATTTATAAAAATCAGATTTATTCCATTTTTATTCGA -AAATTTTTGATAATTTTTTCCAATTTTAACCCTAAAAATGCATGAGATTT -TACACACCTGGAAATTTGGAATTTATTTGTAGAATTTTTGGATTTTTTAA -TTAAAAAAAAGTTTTTTCCGATTTTTTTTCCGAATTTTCAACATGGTTTT -TGAACTTCCAAAGCCTGAAAATGATTTTTTGAATAACTTTTTGATTTTTT -CGGTTATTTTTGGTTTTTTTTTTTAATTTAAAAAAATTAAAAAATTAATA -AAAATATTTTTTGTCTGATTTTTCGATTAAAGTCCTGAAAAAAAAATCTA -TTTTATAGCAAAAAATCCTAATTTTCAGCCTGTTTTTTTGCCTTGATATT -CAATTTTTACAAAAAAATTTTTTTTGGAGTTTTTTGCCTAAAAAATCGAA -AAAAAAAATCATCTTTTCTCGAATTTTTGGAAGAAAAATTAAAAATTTCA -AAAATAATTCAATTTTTTGGTGTTTTTCGGGTTTTTTACATAATTATTTT -TTAATTTAAAAAGTTTGTAAATAACCATAAAAATTTATAATTTTTTAAAT -TAAAAAATAATTATTAAAAAAAACTCGAAAAACACCAAAAAATTGAATTA -TTTTTGAAATTTTTAATTTTTCTTCCGAAAATTCGAGAAAAGATGATTTT -TTTTCGATTTTTTAGGCAAAAAACTCCAAAAAAAAATTGTTTTGTAAAAA -TTTAATATCAAGGCAAAAAACAGGCTGAAAATTCGGATTTAAAAAAATAA -TTTCTTGCTATAAAATAGATTTTTTTCAGGACTTTAATCGAAAAATCAGA -CAAAAAATATTTTTATTAGTTTTTTAATTTTTTTAAATTAAAAAAAAAAT -CAAAAATATCCGAAAAAATCGAAAAATTATTCAAAAAATCATTTTCAGGC -TTTGGAAGTTCAAAAACCATGTTGAAAATTCGGATAAATAAAAATATTTT -TTTGTCCGAATTTTCGATCAAAGTCCAAAAACTTCCAGTTTTTGGAGCCT -AAAAATAATCAACTATTGAGCAAAATTTTTTTAAATTGAAAATGAAAAAA -ATTCAAGTTTCAGCTTGTTTTTTGGACTTTAAAGCCTAAAAATATTCAAT -TTTTTAGCGAAAAAAATGTTTTTAATCGAAATTGAAGACATTTCAATTTT -CAACATGTTTATTTGGACTTTAAAGCCTGAAAATATCCAAGAAATTAACT -TTTTGCAGTTTTTCTACCTTTAAAAGTTCTGTAAACCCGATTTTTTAAAT -AAAAAATCTAAATTTGGGCAAAAAGCGGGTTGAAAAATTAAAAAAATTTA -AAAACTAATAAAAAAATTTTTTTGTCCGAATTTTTCAAAAATTCCAGTTT -TTGGAGCATAAAAATAATCAATTTTTCAGCACAAAAAAAAAATTTTTAAA -CAGAAAATTCCGAATTTTCAGCATCTTTTCCGAACTTTAAAGCCTAAAAA -TATTCAATTTTTTAGCGAAAAATGTTTTTTAAATCGGAATTGAAAAAATT -TCAATTTTTCTCGAATTTTCAGTAAAAAATTCGGAATTTTTTTCCAATTT -TTATGAGATTTTTGAGAAAAAATCATGAAAAACCAACTGGAAATCCGGTT -TTTCGAGTTTTTTTTCAAAAAAATTGACAATTTTCCCGAATTTTTCGCTA -TTTTTGGTGTTGAAATTGCTTTTTTCTCCAAGAAATTGAATTTTTTCAGT -TCTTTATCTTTAAAAGTGCTGCAAAAAACTACTTTTTCTGGAAAAAACCT -AATAAATTCAATATTTTGCTTTTTTTTTTCCTTTTTTTGTGAAAATTTAC -AAGAAATTAACTTTTCGCCACTTTTGTACCCTTAAAAGTGCAGTAAACCC -GATTTTTTTGCTTAAAAACTTCCAAAAACAGGAATTTTCGGGTTGAAAAA -TTAAAAAATTTTAAAAACTAATAAAAATATTTTTTTGTCCGAATTTTTCC -AAAATTTCAGTTTTTGGAGCCTAAAAATATTCAATTCTTTAGCGAAAATT -GTTTTTTTTTCAAAAACTTCCTACGACTACACCACCTTTAAAAAACCAAA -TTAAATTAGAGAAATTCTTCAAAAAATCCCCAAATTTCCAGGTTTGCAAA -ATCTCGTGCGCCGGCGGAATCACATACAAAGAGCATCTGGAAGGTCAACG -GCACAAGAAAAAAGAAGCTATGGCAAAACAGGGCATACCGAGCACTTCCC -TCGCTAAAAATAAGCTTTCCTATCGTTGTGACCTATGTGACGTCACTTGC -ACCGGTCAGGACACGTATTCGGCTCACGTTCGTGGCGGAAAACACTTGAA -AACTGCACAATTGCACAAAAAATTGGGAAAACCGGTGCCTGAAGACGTTC -CGACGATTATTGCTCCGGGAGCCGATGGGCCGACGGAGACGAAAGCCAAA -CCGAAATGGCATCAACAAGCTCTGCCTGGCGGGAAAATGTGCGGAATTTG -AAAAAAAAATTTTGGAAAAAAACGAGAAATTGCACATTTTTAGGCTCAAA -AATCTGAAAATTTAGCAAAAAAATTTAGAAAAATTTGGATTTTTAGAAAA -AAATTAGCGTTTTCTCGCCAAAAATGCTCAATTTTCGATAAAAATGTACA -TTTTTTTTTTTGGATTTTTAAAAAAATATTTTAGGGCTCAAAAATCTGTA -AATTCTGCAAAAAAAATTCTAAAAAATTTTGAAATTTTGAGATTAAATCT -TTCGCCAAAAAAACGAAAAATTTGAATTTTACAACTTAAAATGCTCAATT -TTCGAGGAAAATGTAAAATTTTTTTTCAATCTGAAATCTGTAATTTCTTT -TAAAAAATCGATTTTTTAAAAAATTTCTACTGTAAAATTTTGAAAAAGTT -GAACGACGTCAAAAAGAAGGTAAAAATCCGAAAAAAAGCAACAAAGAACT -AGGAATTTTAAAATTTCCAAAAATGGTCTGAAATTTTGAGAAATCAAAAA -AAACAAGTTTCTTTCAGTTTTTTTTAGAAAAAAAAATCGTATTTCAGAAT -TTAAATTTAAAGCATATTTTAAACTTTTAAACGCAAAAACATTATATTTT -TCTTTAAAAAAAAAACAATTTAAACGCATTTATTGCTTTATTAGACTCAA -AATTGTCTGAAAACACCGAATTTCATAATGAAACTTCTTGAAAAAAAAAA -GTTCTCAAAAAAACAAGTTATGATTGCTCAAAAAATGGCCTCAAATTAGC -GGAAATTTGAAATTTGACCGACTTGTCAAGCGGCTGGAAACTAGCTTTCT -TTTTTGAAATCACCGTCAAATTTTGAGTATAAAATGTAATTATCTTGCGT -TATCAACTTGATTTAGGTATTTTAAAGTCGATGGACGGCGAGACTTTTAA -AGGTGGAATACCGAAATTTAAGACTTTGCTTTTTTAGACCGAAATTTTGG -CAACTTATCGGTGCGACACTGCAAAATTGCCAAAGTTTGAGATTTTAGCT -AAAAATAGGCCGTTTTTTCCAAAAACTTTGATCGGCCATAACTTTTTTTT -GGAAAATTTTCAGAACGTCTCATTACGAAATTCGGCAGTTTTGGGCCATT -TTGGGTCTAAAAAAGCAAAGTCTTAAATTTCGGTACTCCACCTTTAAAAA -TCTCTCCGTCCATCGACTTTAAAATACCTAAATCAAGTTGATAACGCAAG -ATAATTACATTTTATACTCAAAATTTGACGGTGATTTCAAAAAAAAAAAG -TTTCCAGCCGCTTGGCAAGTCGTTGAAATTTCAAATTTCCGCTAATTTGA -GGCCATTTTTTGAGCAATCATAACTTGTTTTTTTGAGAACTTTTTTTTTC -AAGAAGTTTCATTATGAAATTCGGTGTTTTCAGACAATTTTAAGCCTAAT -AAAGCAATAAAAAATTAGAATATACCACTTGAGAAAAATTAAAGATTTTT -TTAAGTTTAAAATAAAAAAATATGTTTCTTTCCGATTTTTTGATAGTGAG -ATAAAAGTTTTGGCGGGAAATTCAAATTTTCTAGAAAAAAAATTGAAAAA -ACTCATAGTGTATAACTGCACAGAACGGCTGGTTATGAGTATAGGTGTCA -AAGTGTCTCATTTCGGTTTGATCTACAAAAAAAGCGGGAATTTTTCCCAA -AAAAAGTTACGTCAAGATGCTCTTTTTTATTAAATTTAATTAAAAAAGAG -AGCATGCTGACGTAACTTTTGAGGAAAAATTCCCGCTTTTTTTTGTAGAT -CAAGCCGAAATGAGACACTTTGACACCACCACGTTCAGACAAAATCCCCC -ACTAAATATTTGGTAAAACTAGTTCAAAACCCGACTGTAGTACATTTTTG -GCAGAAATTTGAAAATTTCAACTTAAAACCGCTCAATTTTTCCAAAATTT -CACAGTATGCATTTCAAAAATTATGGTTTTGTTTTTTTTTAATCGAAAAA -TATATTTTTAACAAAAATGGACCATTTTTAGTTGTAAAATTCAATTTTTT -GGCGCTTTCAAATTTTTAGGCAAAAAATGTGCAATTTTCTCCAAAAATTT -TCAGATTTTTTAACCCTAAAATTAAAAAAAAATCTAAAATATTAGAATTT -CCCGCTTTTTTTTTCAAATATTTCAATTTTTCCAATTAAAACACAAAAAT -TGAGCATTTCTAGTTGGCACATTCAAATTTTTAGGCGAAAAATTTGATTT -CAAAATTTCAAAATTTTTCAGAATTTTTTTTTGCTAAATGTTCAGATTTT -TGTGCGCAAAAATATTTGAAAAATCCAAAAAAAAAACTCGAAAATTGAGC -ATTTTCAGTTGTAAAATTCAACTTTTTAGGCGGAAAAATGTGCAATTTTT -CCCCAAAAAATTCAAATTTTCCAACTTTTCTCTCAAATAGCACAGAAACA -GAAAATTTGTTATACCTAATGTGGAAAAACTGAATTAAAACAGATTTTTT -GAAAAAATGCACTTTTTTTTTTGCCAAAAAATAGTTCAAACCCCGACTTT -TTGTTCCAGAGTTTCCAGGTCATCGGTATCATCGCATAAATAAATTTTGC -GGGAAAAATTCCCGCTTTTTTTGTAGATCAAACCGAAATGAGACACTTTG -ACACCCCACGTTCAGACAAAACCCCGACTTTTTTCCAGAGTCATCGGCAT -CAACACGGTAAACTTCGTCGGCGGTACGAAGCTCAACTCCACCGGACAAC -TCGAGGAGAAGAAGCGCGAAGTTGCTGCCGCCGTGAGCTCAGTCGGCCGG -AAAACCGGTGGTGCTGCTGCAACGACGACGATTGAGGTGGAAGACGAGAA -GCTCCGAGCAATGATCGCCGCCGAGGAGGTACAACCTGTCGGCGAGGAAC -ATGTCACTGAAGAACGTGATGCTACCGGAAAACTGGTGCAATTCCATTGT -AAACTGTGCGATTGCAAGTTCTCCGATCCGAATGCCAAGGAGATTCATAT -CAAAGGTCGTCGACATCGTGTCAGCTATCGGCAGAAGATTGATCCGACGT -TGGTGGTGGATGTGAAGCCATCGAACAAAAGATCACAGGAGAAGCGGAAG -AATCAGCTTCCAGCAGTTCATGGTGTGTGGATTTTTTAACAAAAAATCAA -CAACAACACAAAAAACATGTTCCAATAAAATTGGAAAAAAAAATTTAAAA -AATCCCAAATTTCCAGGTGTCTAAAAATCTCATGCATTTTTAGGGTTAAA -ATTGGAAAAAATTATCAATTTTTCGAATAAAAATGGAACAAATCTGATTT -TTATAGAAAAAATAATAATTTGTTGGCAAAAATTGAATATTTCAGGCTTT -GGAAGTTCAAAAACTATGTAGAAAATTCAGAAAAAATCGAAAAATTGGAA -GAAAAAAATTTTTAATTTGAAAAAATTCAAAAAAATTTAAATTTTTTTAA -AAATTGAATTTTTGAGTAAATAATTTTTTGCTATAAAATTCAATATTTTC -AGGCTTTCAAGTCCAAAAACCGTGTTGAAAATTCCGAAAAAATCGAAAAA -TTGGAAAAAAAATTTTAATTTAAAGGTGGACTACGCTCAGTGGGGGGAAA -TTGCTTTAAAACATGCCTATGGTACCACAATGCCCGAATAGCATAATAAA -AAAATTTTAAAAAATATTCTAGATTTTATATGATTTTTTGAAAATTGGAA -AAATCACAGTTTTTGCCTAATTCCTATTTGAATTACCGCCAATTGGATTT -GTTCGGTGGAGCGCGCTTGCATGTTTTTAAATTTATTTATTTTATTTATT -GTTATTTTCCACCGATTTTTAATGTTTTCGATGTATTTTTGTTTGAATTT -TAGAGAAAAAGTCAAAATAAATACTAATTATCGATTAAAAAGCACGCTTA -CAGGCGTAAATCAGTGAAATTAATTAACTCAGGTTCGAAATCGTTTAAAA -TCGTTACTTTTTCATTTTTACGCCTGTAAGCGTGCTTTTTAGTCGAAAAT -TTGCATTTATTTTCACTTTTTCTTTAAAATTCAAGCAAAAATACACCGAA -AACATGAAAAATCGGTGGAAAATAACAAAAAATAAAATAAATAAATTTAA -AAACGTGCAAGCGCGCTCCATCGAACAAATCCAATTGGCGGAAATTTAAA -TGGGAATTAGGCAAAAACTGAGATTTTTCCAATTTTCAAAAAATCATATA -AAATCAGAAAAATTTTTGTTTTTTTTTTAATTTTTTTAAACATGACATTC -GGTCATTGTGACCCCATAGGCATGTTTTAAAGGTGGTGTAGTCGAATTTT -TTTTATTTCTTTATTAGACTCAAAATTGTCTGAAACCCCGAATTTCATAA -TGAAACTTCTTGAAAAATTTTCAAAAAAAAGTTATGGCGGCTCGAAAAAT -GGCCTAAAATTAGTGAAAATTTGAAATTTGACCAACTTATCATTGTCGCA -TCGGCTGGAAACAATTTTTTTTTTGAAATTGTCGTTCAATTTTGGGTGTA -CAGGTCGATTATCTTGCGTTTTCAGCTTTATTAAGGTATTTAAAAGTCGA -TGGACAAATGGATCTGTCAAATTTTTTACCAAATCTTTTCGTCCATCGAC -TTTTAAATACCTAAATAAAGCTGAAAACGCAAGATAATCGACCTGTATAC -CCAAAATTGAACGACAATTTCAAAAAAAAATTGTTTCCAGCCGCCGCAAC -AATGATAAGTTGGTCAAATTTCAAATTTTCACTAATTTTAGGCCATTTTT -CGAGCCGCCATAACTTTTTTTTTTGGAAAAGTTTTCAAGAAGTTTCATTA -TGAAATTCGGTGTTTTCAGACAATTTTGAGTCTAATTAAGCAATAAAAAA -AATTCGACTACACCACCTTTAAAGCAATTTCCCCACTGGGCGCTACTCGA -CCTTTAAAGGGGGAGTAGAGTTTGTGGGTATTTTGCTTAAATAGACTAAA -ATTGGTCCAAAACCACCGAATTTCATAATGAGACTTCACAAAAAATCTCC -AAAAATTTTTTATGGCCGGTCAAAATTTCGAAAAAAAAAGATGCAACTTT -TGCTAAAATCTGAAATTTCGCACACTTTTCTTTGTCTAGCAGCCGCTGGA -TTTTAGTTTTTCTAAAATTATCACCCTCTAATCCTTCTTTTTGGTAATTT -ATCTCGCGAAAATCCGTTGATTGAGACAACTTTTAGGCCGATAGGCATCC -AAAAATGATCAATCTAGGGATGCCTATCGGCCTAAAAGTTGTCTCAATCA -ACGAATTTTCGCGAGATAAATTATTAAAATAAGGATTAAAGGGTGATAAT -TTCAGAAAAACTAAAATCCAGCTGCTGTGACAAAGAAAACTGTGCGAAAT -TTCAGATTTTAGCAAAAGTTGCATCTTTTTTTTCGAAATTTTTTATTTTG -ACCGGCCATAAAAAATTTTTGGAGATTTTTTGTGAAGTCTCATTATCAAA -AATTCGGTGGTTTTGAACCAGTTTTAGTCTATTTAAGCAAAATACCCACA -AACTCTACTCCCCCTTTAAAGGAATGAAAATAATTATTGGAACGTTTGTT -TTTTAAAATGATTTTTTGTTAAAAAATCCACACCGACGAAAAATCCACAG -TTTCAGAGCCTCCGAGCTTCATGAAAACGCCGTGGTTCGCCCCACCGGCT -CCAGAAGGCCGGGAATTCAATATAGTAGATGATAGAACTATTAACGAAAA -GTACGCCGGGCTTAATCCGGGCGTCGAGTTCATTTCCAATGTGGATCGCC -TTATTTCGGATATCAATGAATCGCTGAAGTATGTGTCGGATAAGATCGAG -CGAGACGTTCGGAAGATCCCTGAAGACGTGGTGGAGCTTCCCACCACCAC -CACCACAACGGAGCAGCCGCCGCGGACAGTGTTGGGATGCTCGAGAGTTG -GAATTATTGCGAAGGGAACGTTCATCAAAGGGGATCGGTGTGCGGAGGTG -GTTCTGACGTGTACGCCGGTGCCGACTTCGGGGCTTGTTGAGCAGATTAG -GCGGTTGTTTGGAGAGTCGACGGTACGGGCCGGCCTTTTTTTTTTGCCGG -AAATTTGGGGATTTACCGGTTTGCCGGAATGTTTTTTTTTCCGGCAAATT -GCCGGTTTTCGCCGGAAATTTGAAAAACGGCAAACTGGCAATTTGCCGGA -AATTTTCAGTTTCGGCAAACTGCCGCGATTTGCCGGATAACAATCGTTTA -TTCCGGCAAATTCGGTAAGTTGCCGGTTTGCCGATTTGCCGGTTTGTTGA -ATTTAGCGGAAATACGGCAAACGGCAAGTTGCCGGTTTCCCGACTTACCG -GAAATTTGAAAAACGGCAATTCGCCGGTTTGCCGGAAATGTGAAAAACGG -CAAATTTCAGAATTCGGCAAGTTGCCGGTTTTTGCCGGAAATTTTCATCT -TAGGAAAATTGCCGGTTTTTGCCTGAAATTTTCATTTCAGGAAAATTGCC -GGTTTGCCGGTTTGTCGAATTTTCCGGAAATGTGGAAAACGGCAAGTTGC -CGGTTTGCTGATTTGCCGGAATTTTTAATTTTCGGCAATTTACCGATTAG -CCGGAAATTTTTTAACGGGATTTTTGATAAGACGGATTTTTTTCCGGCAA -ATTCGGCAAGTTGCCGGTTTGCCGGAATTTTTCATTTTTGACAAATTGCC -GATTCGCCGAATAATAATTATGCCAGAAATTTGAAAAACGACAAGTCGCC -GGTTTGCCGATTTGCCGGAAATTTCAAAAAACCGGCAATTTGCAGAATTT -TGCCGGAAATTTTCATATTCGGCAAAGCTACCGATTTGTCGGATTTTTTA -AACCGGTTTTTTCATAAGATAGATTTTTTTTCCGGCAAATTTCCGGCAAG -TTTCCGGTTTGCCGGAAATTTCAAAACCGGCAATTTTCCGAATTCTGCCG -ATTTCTTGTTTGACAATCTCAATAATTACACAGACATCTCTAACAATTGA -GCCGGATCCCGAGTCCCCATCAAGCCTTATCGTCACAGCTAACTACTTTC -CCAATATGAAATGTCGTATTCTAATCACTTCAGCTGTAGTTAGAAAAGAC -GATGATAGTATTGTAACTGGATGTGCTGCTGATAAGGATTTGTGCATTTA -TGCGCTCGCTTCTATTCGGAATACAAAGTGGTATGATGTGAGTTTTTTTT -AAATTTTACACATATTTTAAATTACTTTATCATTGGAAAATCTAATAAAT -TAGAGCCCAGTTTACAAAAAAATCTATATTTTTCCAAAAAAAAAATTGAA -AAAAATCGATAATTTCTCAAAAAATGTTTACAAAATCGAACTTTTTCCAA -AAAACTTTGAAAAAATCGATAATTTTAAATAACTGCTGACAATTAAAAAA -AATCGAAAATTTCTCAAAAATTGAAAAAATTAATATTTTTCCAGAAAAAA -TTGAAAAAAATCGATAATTTCAAATAATAGCTGAAGATTTTTTAAAAAAA -TCGAAAATTCGAACCTTTCTCAAAAAATTTGAAAAAAATCGATTTTTTTT -CCAAACTTTTTTTCATCAAAAATTTCTCAAAAATTTGGAAAAAATTAGAA -AAAATCAATATTTTTCCGAAAAAATTTGAAAAAAAAATCGATAATTTCAA -ATAATAGTTGCAATTTTTAATTTAAAAGCGAATTTTTCAAAGATTTTTCA -AATTTTTCACGTTTTTTTCTCTGGTTTTTTTAAATTAAAAAGCGTAATTT -TTACCGAATTTATCATTAAATTACATGAATTTTTCTGAAAGAGCGAGAAA -ATTAAAATAATTCGGAAAAAAAACAATTTTTTTCCAAATTTTCCAAAAAA -TCCCACAGAAACCACCAAACTTTACTTTTTTTTTTTAACAAAAAAAAGTT -TTAAAAAATATCAATTTCCGGCTTTTTTTCTGCCAAAAACTTTGGAAAAT -GTGGGTAATTTTGGCTTTAAAAGTTTAAAAATTGAAAAAATCAGGAAAAC -TTTTTGAATTTTCAGAGTCACTGCCAATACTTGAACTCGTGCCAATCAGT -TATTCGACTGCTCCGAGATTTGCGAAATAAATATCCTGAAGTTGCGTGTC -TTGATGATTATGTAAGTTTGAGAGTTTGGAAAAATATTCGAAATTTTTTG -TGAAAAATTTGGTAAAAGTTCAAAATAATGTATAATTCTTTAATTTTTTT -GCGAAAAAATTAATTTTTTGAAAAAAATTCTCTATATTTTTTGCTAAAAA -GTTTAAAAATCTAAATAGTATGAAAAAATATTTTAGCAGAATCAACAAAA -ATTGTATAAATTCATAATTTTTTGAAAAAAATGAAATAAATTTTTTTTTG -CGAAAAAAATATGCGAAATAGGTTTTTTTAATGCAGGAAATAGTTTTATA -GCTGAAAAAATGAGAAAAAACGGAGAAAATTGAAAAATTACGTACATTTT -GCAGATTTTTTGCTCACAATTTTGTAAAAATTTCGGCAAAAATATCACCT -TATTCAAAAAAAAATTGCTAAAAAAAATTTTTATAATACAAAAAAAATAT -GAAATCTATCTATTTTTTTCAAAAAATCTACCTAAAAATCTATTAATAAT -TTTCAATTTTTTTGTGAAAAATTTTGAAAAAATTCAAAATAATGTATAAT -TCTATAATATTTGGCGAAAAAAATTAATTTTTGAACTATAATTTTTTTTT -TGAAAACTAGTTTCAAAAATCGATATTTCACCTAAAAAAAACCCTAAAAA -TAGGCGGCAAACTATTTTTCCGGCAAATCGGTGGTAATTGCCGAAATTTT -TGGCAAATTGTGGCTTTGCAATTTTTTTTTTGTTGGAAATTTCAGATTTT -CAAATTTAATCGGCAAGAAAACTGAAAAATCCCGTTTAAAAAATTCCGGC -AAATCGGCAAACCGGCAAATTGCCGAATATAATATTAGGTCTCCTAATAA -GTTCCGGGTCAAAAATCATAACCTTGTTCGCTGTGTATCGATTTTTATGA -AACTTTGGGAGTTTATGTTATCAACCATGATCTTTCAATTGACAATAGTC -ACAAAATTTTTTGACCACCCCAAGTGCCCGTACTCGGAGCCAATTTTTTC -AGGCATTTTTCTGATCTCGCTTCTTTTTATCTTTGAATTGAGGTTTGTGT -GCGGATTTTGCTTTGTTTAGAATACATCATTAGAAAACGAGAAAAGTTTG -GAAAAAAATCTGTCCAAAAAATTTTTTTTGGTTGATCGTCAAAAAAGCTT -CAAAAAGATTTTTGTCGAAAATTCTAGATTTTTCATACAAAAATGATGTA -ACCAAGTGTAAATTATTTTTATACATACAAAACATATCAATTTAGTTCGA -TACACTAAAATGATAATAAAAAATATAATTTTTTCGGATAATTTTTGAGT -TTTTTGAATATTTCTTAAGTTTCAAATTTCAAACTAAAAGGATTTGTGTG -TGTAAAAATAATTTACACTTGGTTACATCATTTTTGTATCAAAAATCTAG -AATTTTCGACAAAAATCTTTTTGAAGCTTTTTTGACGATCAACCAAAAAA -AATTTTTTGGACGGATTTTTTTCCAAACTTTTCTCGTTTTCTAATGATGT -ATTCTAAACAAAGCAAAATCCGCACACAAACCTCAATTCAAAGATAAAAA -GAAGCGAGATCAGAAAAATGCCTGAAAAAATTGGCTCCGAGTACGGGCAC -TTGGGGTGGTCAAAACATTTTGTGACTATTGTCAAATGAAAGATCATGGT -TGATAACATAGATTCCCAAAGTTTCATAAAAATCGATTTGCAGCGAACAA -AGTTATGATTTTTGACCCGGAACTTATTTGGAGACCTTATACAATTTTTC -AACATTTTCCAGAAAATGGAGCTAATCGTCTCGAACATTATCGATTCATC -TCCAATGTCACTTGGACTATCCGATGCGTTTAAGCGAATTGTCGAAGCAC -TTGCATCTGGATATTTGTATTCTGGTAGGGGGGTTAACATTTAATTTTTT -TAAAATATTGAAAAATGAGCATATAAAAAGTTTTAAAATAATTCAAATTT -TTACAAAAAAAAAATTTTTTTTTTCAATTATTTTGCGTTTTTGTATGAAA -ATTGTGTTTTGAGAACGGAAACTCTTTTTTTTTAATTAAAATTTTGAAAA -AAAATCCTGGAAAAATGCTGAATTTTTCGGGATTTTTCGGAGCACATTTC -CAAGCTCTAAAAATTGCTGAAAATTGAATTTTTCAGAATTTTTTTGAATT -TTGCACAAAAATGACTATTTTAGGAACAAAAAAAACATTTTTCAATCACC -GAAAAAATGTATTAATTTTATATTTTAATGTTAAAAATACGGTATTTAAA -TTTTTTTTAAACGTTTTTTTTACACAAAAAGTTGAAATTAGGTTGAACCC -GGATAAAATTTAGAAAAATTAAAATTTCAATTTTTTTTGCGTTAAAATAT -GTTTTTTAAGGTTGAAAAAAATATGTTTATTCAAATAAACACATTTCTTG -AAAAGTTCTTTTGATTTTTAATATTAAAAAATTTATTTTTCAAAAAAAAA -TTTATTTATTTAATTTTAAAATTTTAAAAACTTTAAATGTGGTGTAGTCG -ATTTTTTAAATTGTTCTATTAGACTCAAAATTGACTGAAAACACCGAATT -TCATAATGAAACTTCTTGAAAACTTCTCAAAAAAAAGATATGACTGCTCA -AAAATGGCCTAAAGTTAGTTAAAATTTGAAATTTGATCTACTTGTCAAGC -GGCTGGAAACTATTCTTTTTTTTGAAATCACCGTCAAATTTTGAGTATAA -AATGTAATTATCTTGCGTTATCAACTTGATTTAGGTATTTTAAAGTCGAT -GGACGGAGAGATTTTTAAAGGTGGAGTACCGAAATTTAAGACTTTGCTTT -TTTAGACCCAAAATGGCCCAAAACTACCGAATTTCGTAATGAGACGTTCT -GAAAATTTTCCAAAAAAAAGTTATGGCCGATCAAAGTGTTTGGAAAAAAC -GGCCTATTTTTAGCTAAAATCTCAAACTTTGGCAATTTTGCAGTGTCGCA -CCGATAAGTTGCCAAAATTTCGGTCTAAAAAAGCAAAGTCTTAAATTTCG -GTATTCCACCTTTAAAAGTCTCGCCGTCCATCGACTTTAAAATACCTAAA -TCAAGTTGATAACGCAAGATAATTACATTTTATACTCAAAATTTGACGGT -GATTTCAAAAAAGAAAGCTAGTTTCCAGCCGCTTGACAAGTCGGTCAAAT -TTCAAATTTCCGCTAATATGAGGCCATTTTTTGAGCAATCATAACTTGTT -TTTTTGAGAACTTTTTTTTTTCAAGAAGTTTCATTATGAAATTCGGTGTT -TTCAGACAATTTTGAGTCTAATAAAGCAATCAAAAAAATATTCGACTACA -CCACTTTTTGGCCTATTTTTTTGGCCTAAAATTGAAATTTTTCCAGCAAT -CCTAAGCGATCCGTGTGAGACGTCTCGTCCGAACGTTCTCGATGCTTTAA -CCGACGAGCAGAAGCATTCGTTGACCGCCCTGGCACAGAATTTTGTTCGG -CAAATTGCATTCAATCAGATACATGAGGTATGCGGGGATTTTTCCTGTGC -AGAAAAAATGTTTAGTAAATTAGGGAAAAAAACCTTGAGTTTTTAAAAAA -ATCTGTGGAAAATTTGAAAATTTTCGCAAAAAAAAAATTATAATAAAATT -AATTTCAAATTTGCAAAAATTTCAATTTTTCAAATAAATTTTGAATTTGC -ATTCCAAAGTCACTAAAATGGAAAAAATTGCTAAAAATTGAATTAAAAAT -ATTTCTTTCCTGAAAATTTTTTATTTTCCGAGAATTCTGAAATTTCTTTT -AAAAAAAATTAAATTCGCGAAAATTTGAAATTTTTTGGAATATTGCAAAA -AATTGCTAAAAATTGAATTTTCCTATATTTCGATTTTTTAGATTTTTTAA -AAAAGTTTTTTTTCAGCCATTTCTGGCCGAAAATTGAGAAAAAATAGTCA -GAAAATTCAAAAAATTGCTTTTTTTTTTCAATTTTCCGAAATTTTGAATA -TTGATCGTCCGAAAATTTAAAAAATAATCGCTAAAAAGTTGAAAAAAAAA -TTATTGAAAACAATTTTTTTAAAATAATTTCTAGCAGATTCCATGAAAAA -AGGCTGAAATTTACGAAACAATTTTTTTTTCAAATTCAATTCAGAAAAAA -TTGAATTTTCTCTGATTTTGGGCCGATATTTATAAGATTTTTCAGAATTT -TCCAAAAATTCTTGAGAAAAATTGAAATTTTTCTGCCGTATTCCTATGAA -AACAGCGGAAAATTGAATTTTCCAAGTTATTTTTATAGGGAAAATTATAG -TGACTCTATAGAATTCATGAAAAATTCTGACAAAAAACCAAACATTTTGG -CCCAAAATCAGAGAAATTTCACAAAAAAAAATGCTGAAAAATTTAATTTT -CAGCAATTTTTTTTTCAAATTTTTTTAAAAAATAAATTTTCGTAAATTTC -ATAATTTTCAGTTTTTTTCCATTTTTTTAAAGAAAAATTATTTTTCCAAA -AATGTGCAGAAATTTCAGAATTTTCGGAAATTAAAAAAATTTTTAGCAAA -AAAAAAAATTTTTTAATCCAATTTTTATGATTTTTTCACTTTTTCGGTGG -TATTAGGACTGCAAATTCAAAGTTTCTTGGAAAAACATAAATTTTCAGAA -AATTTAAAATTAATCTGATTATAATTCGGAGCATAAAATGTGCTTTTATC -AACAACATTTTTTTTTTCGAAAAGTCAAATTTTTCCACATTTTTAAAAAT -TCCTTTTTTTTGTATATATTCGGATTTAAATTTTTTTTTTAACGGGTTTA -AGCTATTTTCTGAGCAAAAAAATTGAATTTTTCTAAAATCACCATTTTTC -TTCCAGATTCTCGGAATCGATCGTCTTCAAGACACTATTGATCTACCAGA -GGATGCTCCGATGCTCAAAAGACCACTGGAGAGCAATGAAAATGCTGAAA -ACGCAGAAAATCTCGACGATTCGCCAGTTTCCAAAAAGGAGAAGCTCGAC -GAGGAGCCCGCCGATATTTGAGCATTTTTATTTTAAATTTGGTTTAAATT -ATTTAATTTTCCTCTAATTTTCCTCATCTCTGTGTTTTTTTCTAATGTTT -TTGGGTCCCGTAGCGAAAAAACGAATGGCTCTCTTCGCGGTGAGACCTTG -AAATTTTTATTTTTCTACTATTACCTCCCCCTGCAAACGCGCTCTATTGA -CGACAATTCGCAATGGAGCGCGATTGCATATTTTGTTACTACATTTTCCA -CACTCATGTTCGATCTTCCACTAGGGGAGGGTCTCGCAGAAGGATTTTTT -GAAAAATTTAGATTTTTTTTTGAAAAATATTCGAAACAATTTTACGTTTT -TCGAAAAAAGTCCTAATTTAGCCTAAAAAATCAAAAATTGATAGGATTTT -TGAAAAAAATTCAAAAAATCAAAAAAAATTGCAAAAATTTTTATTTTTTT -TTTTGAAGAAAATTTTTTGTAAAAATTTGATTTTTTTGAAAAAGTTTGAA -TTTTGAATTTTTTGAAAAATTCTAAAAATTTTGAATTTTTTGAAAAAAAC -TCAAAATTTTTGGAAAAATTTTGAATTTTTTTGAATAAATTCAGAACTTT -TTGAAAAAATTCGAATTTTTCTGAAAAAAACTCAAAATTTTTGGAAATAA -TTGAATTTTTTCGAAAAAATTCGAGAAAATTCCTAATTTAGTCGGAAAAA -AATATTAAAAATTGATACGATTTTTGAAAAATTTTCCCAAAAATTCTATA -GAACTGTCCTGAATTTCTAAAAAAAATTCAAAAAAAAAACAAAGTTTTTT -AGAAATTTGCAAATTTCTTTAAAATTTTGGAAAAAAATCTATTTTTTGTT -GAAAAGTCTGCAATTTCTAAAATTTTCCTATTTTTTCTGCTAAAACCTGC -AAAAAAGGACCCTCCCCCTAACTATCTTGTTCCTCCAAAAACCGACAATT -CTTCTGTTTTTGTGTTATAATCGTCCTTTTTCTTGTTCAACAAAACAAAA -ATTAAAATAAATTAGAAGAAACGGTAAATTTAGATACGTTTTTGCCACGT -GGCCGAGGTTTTTCACGGCCACGTGGCAAAGGCCGGCAAGAAATGCGCTG -TGGTGGGAGAGGAAATTGATAGGGAAGAAGGAAGAAGAAAAAAAAAAGAA -AAAATCAATATTTTAAAGCCAAAAAAAATTTTTCTGAAAAGACTAGCAAA -ACAGGAATGGTTATGGGTAAAGCCGAGGTTTTGAAGGAGAATTTTTGGGA -AAAAAATTGCAAAAAAAAACGAATCGGTAGGGACGGACCGGCAAGATTGA -TTGAAAAATTGACGAAATTATCGATTTTTTGGCGGCGCACGGGGTTCTGG -CCTTCCCTCATAAATGGAAGAGTTTTTGCCGAACTAGGCCACCAGGTCAT -AACTGGGGTAGATTTACGGCGCGTTGCGTGTCGCGTCGCGGCTCAATTTT -AGTTGTAAAACTAAATGTATTTGTCCGTGTGAAGTACACGACTTTCCCGG -CGCGCGATTGTCAATGGAGCGCGAAAAATTAAGGGCCAGAAGTCCTCAGA -ACCCCGTGCAAAAATCGATAATCCCGTTTAGAATCGGTGAGGGCGTGGAA -AGAAAGAGATGATGAAACGGGAATGAGCAAAATTGCAAAAAAAAACAACA -AGAAATTCCAGAAAATTCCATAGAAAACGGGGTCTAAAGCACCAGATTAG -TGTTGTGCGTGGGCGTCCACTGTGACGTCATCACCTTCCACTTTTCGTAG -TTCGACTCGAGCTGATCGGAGAGCTCGCCGAGCTTGGCGAACTCGGTGAA -TGTGGCGAATGCTTCGCGGGCGAACATGTCTGTAAAATCAGAAATCAGGA -GAAAATTCAATTTTGCGCGTCAACTTTGATGTTTTTTTGTGTTGGTGAAC -TTCAGAAAATTGAATTCGCCAAATTTTACGAGCAAAATTGGGTTCTTTTG -GTATTTTTCGTGGAAATTTAACCAAAAATCGAGTTTTCTACGGAAATTTA -ACGTATTTTATCGATTTTTCATCAGAAATCAGTAGAAAATTCCGTTTTGC -GCGTCAATTTTGATGTATTCGGGTCGGTGAACTGCACCAAACTGGATTCG -CCAAATTTTACGAGCAAAATGGGGGTTTTTGCAAATTTTTCTTGGAAACT -CAGTCAAATATTGAATTTTTCGTGGAAATTTAACCAAAAATCGGGCTTGC -TACGGGAATTTAACAAATTTTATCGAATTTTATTTTGCGCGTCAAATTTG -ATGTTTTTTGTGTCGGTGAACTTCAGAAAACTGTATTCGCCAAATCTTAC -GAGCAAAATTGGATTTTTTGGGTATTTTTCGTCCGAAATTGATTTGTCCA -GTGAAATTAAACGCGATTTATCGATTTTTTATCGGAAATCAGTAGAAAAT -TCAATTTTGCGCGTCAAATTTGATGTTTTTTGTGTTGGTGAACCTCAAAA -AACCGTATTCGCCAAATCTTACGAGCAAAATTGTATTTTTTGCGTCTTTT -TCGTGGAAATTTTTACAAAAATCGTTCTTTTAAAAAAAAAATTCCACACA -AAAGTACAATTTTCACACAAAAACTGCAATTTGCGCGTAAAATATGGCGC -AATCGGTTGAGTGCGGCACGCCGACTCAAAAACACCATATTTTACGCGCA -AATATTAATTGAAGCGCCTTCACGTGGTGTCAGGTTGTGTCATCACGGTT -TGATCTACAAAAAAATGGGGGAATTTTTTGCCCAATAATATGTGACGTCA -GCATGTTCTTAGCCATGCAGAATCCGTCTAAAATCCCGCATTTTTTGTAG -ATCAACGTAGATCAAGCCGAAATGAGACACTCTGGGCTTCAAAACACTCA -CCAATAAAACCGCATTGTGTGATCGGAACGTTACACGTGTTCCGATCGAA -TACCTCCATCGTCACAGGCAGCCCTTTCTCTTTTTCTTCTCGAGTCTGGA -AAATATTGATTTTTATTTTATTCTTGGAATTTTAAATTTCAAACAGTAAA -AAACCAAAAATTATCAGTTTTAACTTATCCAAGTTAAAGAACTACAGTGA -AGAGAACTACAGAAATATTAAAAAATATATCGATGCACCAAGAGCCCAAG -AAATCTCTGAGAGCCCATATCTCGGCTCATTTCGAAGTTACAAATAAACT -GCAAACTATAAAAATATAGAAAATTAAATTTCAATTATTTTGTTAGTTAA -CAAAATTTGGCTAGAATTGAAATGAACTGGGATATGGGCTGGCAAAGTTC -ACTGAATTTTTTCTTTTTTTTTCTTTTGTTTATTTTGATCTCTACACCAG -GGGTGAGCAGCAAACGATTTTTTCCGGCAAATCGGCAAATCGTTAGCTTG -CCGGAATAGAAAACTTCCGGCAAATCGGCAAACCGGCAAATTACCGATGT -GCCGAGTTTGCCGGCAACCGTATGTTCCCTATGAGTATGGCCACCCATCA -ATCGACTTTGTCGGCTTATATTTCAGCGGTTTCAGAAGTTTTTTGATATT -TTCAAAAACCAGAGGATAACGATAGATTTGAAAAATATTTTGTCGTTTGA -ATTTTTAAAATATGATAAAAGACAACCGAGATATAAACGGTCAAAGTCAA -GGGGGGCCATACAAAAATTTTTTTTTGGAAATTTAGAAAAAAATGTGTTT -CCGTCTTATTAAAAAAATCTCTCTAAGCATTTCCGGCAAACCGGCAATTG -CCGCCCTCCCCCGACCTACGCACCTGTTCAAAGTACTCCTCAACAATCCG -ATGCGCCCATCGCTGACACAATCCCCACTCTCTCGCCGGATTGGAGATGT -CGGCGCACTTGACAAGCATATCACATATCGTAAGTGAATTCGTGTCACGT -TGCTCCTCCGGCACATCTGTCACATGCATCTTGTTGAACTTGGCGAGGTA -CTCAAAGTGTCGACTGATGTCCGTAGCCAACACCATCTCCACCATCGCAT -GTCGCATTTGGATGAACTCCTCGCGCGACAGACTCGAGAAGATGTTCACG -TTGGCGTTGTGCTGAAGGGTTAGCTGAAAGGCTAGTGCGATGTGATGATT -CTCCAGGATCGAGTTATCATTGTAAAGTATTGCAAGCGACTGTCGCGTAT -TGATCAGGTACGCGTTTCCTCTTCCAGGATGGTCTAGATCATGCACCGCC -GCTGCGAGAAGAGCCGCCACCGCATGACTTTCATTCACGTGCACGGCGAC -CGACGGGGAGTCCAGGAAGAATGAGGTGGCCTGTAGGACGTCGGCTGCGT -GAGTTGCGTTGTGATACGTGTTTCCCGCATGGTAATGAGCCTCGATGGAT -AGAATCCAACGGTGGAGGAGATCGTCGGAGCAGCCGAGCACATCGCAAAC -CTTCCACCTCTCGAAGACTTTCATTCCGACTTGGGAAAGAGCGTGGTGAT -CCGACACCTTTTCCAGATGAAGGATGTCGAATTTCCAGCAATTGTCGTTT -TCCAGCGCGTTCTTCACGTCAGCAGATACCCGCCGACGTTCTCCATGGGA -TCCTCGCTTCTCTCGATGCGCGTCGACGACGCTTCGCTTTCGCTGCCTAG -CTGGATGATGGAGGCGAATGAGACCATCGTAATATTGAGTTGCTATCCGA -TCGGCGTCGCGGAATCGATTGATCGACGGCGCGTACAGCTCGTGCGACGA -CAGCACCTTCATCGCGTCCTTTATCGTTTGTGCCGGTTCTCCGTCGACCC -GTGCCGACACGTCTCGGAGCATTGTGAGCACCTCGGAGATGGGCGCCTCG -ATGCCGCCCGTCTGCGATTTCAGGCTTTTCAGGGAGACGTCGCGGAAGAT -TGCGGCGGTGTCACCGGTGGTGTTTGAGCGTTTCATATACACGAATTGAC -TACTGCAAAATTCATAGAATTTTTTGATTAATTGGTGGCCGAGTTTTTTA -AAATGGTGGCCGAGATCTTTAAGTTGATGGCAGAGTTTTATAGGTTGATG -GCCTAGTTTTTTAAAATGGTGACCGAGTTTCTATGCAATTTTGTGGCCGT -GTTTTTGTATAAGTTGGTGGCCGAATTTTATAAATTGACGGCCGAGTTTT -ATAGGTTGGTGGTCGAGTTTTATGAATTGGTGGACGAGTTTCTATACAAT -TTTGTGGCCGAGTTTTTGTATAAGATGGTGGCCGAGTTTTTTCAAAATGA -TGGCCGCGATCTTTAAGTTGATGGTCGAGTTTTATAAGTTGGTGGCCGAG -TTTTATAGGTTGATGGCCGAGTTTTTATGTAATTTGGTGGCCGAGTTTTA -CAAGTTGATGGTCGAGTTTTATGAATTGGTGGCCGAGTTGCTATACAATT -TTGTGGCCGTGTTTTTATATAATTTGGTGGACGAGTTTTATAAATTGGTG -GCCGAGTTCTAACGGATTAAGCAAAGGAAACTAGAACAGAATTTTATTGA -AGAGAAAACTAGGCCATCAGCTTTTCAAGAAAAACTCGGCCACCAAATTT -TCCAGCAAAAAACTAGGTCGCCAGTTTTTCCAGCAAAAAAACTCGGCCAC -CAAATTTTCCAGCAAAAAAAACTGGGCCACCAAATTTTCCAGCAAAAAAA -AAATCGGCCACCAATTTTTCCACGGAAAACTAGGTCATTTCATTGTTCGT -TTGAGAGAAAGCTAGGTCACGTACATTTTCAATAAGAAAACTCGGCCACC -AATTTCTTGAGCATAAAAAATTCGGTCATCAATTTTTATAGAGAAAGTTC -GGCCATCAAGGTTGAAAAATAAGCTAGGCCACCGATTTTTTTTGTTGAAA -AAAACTCGAACACCTAACCTATTTTCCTTTTTTTTTCAAGCCTAGAAAGC -TCGGTTATCGAGTTTTTAGGCCACCGATGCATTTTTTTAATCGAAAATCG -AAAAAAAAAATCGGTGGCCGACTTTTTCATTTACGGCCACCAATTAAAAA -AAACTCACTTGTTAGCAAACGGGACCCGTATAAATTTCCAGTCGCAACTC -CGCCGCCGCTCCTCTTCGCCACGTGCCCTCGGCAGGGACTTTCGTCGCAT -TTCCGATTCGGGTTGTCCGATCACCTCGGATCGTATGCATCCCGTCACGT -TCTCGTAGGCGCGGTTAACGTACTGCACTACTCGTTGCTCATCACATATT -TCCACTGCTTGATCCGTCTGAAAATACGCAAAATTTGAAGGTTTGTAGGC -ACACGTGGCGCCAGTCTATCCCATTACGGTTTGATCTACAAAAAATGCGG -GAATTTTTCACCCAAAAATATATGACGTCAGCTAGTTCTTAACGATTCTC -AACTCCCGCATTTTTTGTAGATCTACGTAGATCAAGCCGAAATAAGAGAC -ACTCTGACACCGCGTGTAGGCAGGTAGGCGTTCAGCCAGGCGATTAGGCA -GGCAATTAGGCAGGCGATTAGGCAGACTAGTAGGAGGTAGGCAAGTAGGC -ATGGAGGCCAAAAGCTCACCTCATCCAAGACGGCGAAAAGGGCGGGCAGC -GCGCGGATCCGATTCGCGAGCCGCCCGACGTAGTCGAAGAGCACCACGTC -ACGCGTATTCCACGTCACATGCTGAAAAGAAACGAATGAATGGGAATCAG -TGTGAATGAAATATTAATTAGAATTGAAAATGAGAAAGTGAGAAAACGGA -TGACTTACATGAATGATGTTGGACTGCGCAAGAGCTCTCCGTCGCTTTTC -GCTGATGTGTCTGGAATATGTGATTGTTAGATTGACAATTCTGGCAGAGT -GGTCTAGAAAATTGGGGAAAACTCGGCCACCGATATGTTTTCTTTGGTTG -TGGTTGGAAAATTTTGGCGACCGAGTTTTTCAACGTATCCAAATTTATGT -GGCCGTGGCCGACTAAGGCCACATAGAAAAGAAAAATACCGAAACAATTG -GTGGCCGAGTTTTATCAACGTAGCCTAAATTAGGTGTACTTGGCCGAACT -TTTCTTCTGACGGCCACGCAGCAAGGAAAAAATAATGAAAAAAAAGTTGG -TGGCCGAATTTTAAGCCTACACAAAAAGTTGGTGGCCAAATTTTAAGCCA -ACAAAAATTGGGGGCCGAGTTTTTGTTTTTTGAAAAAATTCGTGGCCGAG -AAAATGGGAAAACGCGGCCACCGATATTTTTTCTTTGGTTTCTGGCTGAA -TAATTTTGGTGGCCGAGTTTTTGTTTTGGATAGGTTGGTGGCCGATTTTT -ATCATTTTAACCTAATTTACGTGTTCTTGGCCGAACTTTTTTCTGACGGC -CACATAGCAAGGAAAAAATAACGAAAAAAAAGTTGGTGGCCGAATTTTAA -ATTCACAAGAAAAGTTGGTGGCCGAATTTTAAGCCTACAAAAAGTGGCGG -CGCTTTTTCTACAAAAAATTGCTGTCATTATTTTAATTGGAAAAACTTGT -GGCAGTGATTTTGTTTTGAAAAAAATCGTGGCCGAGTTTATCTGTAAAAT -TGGTGGCCGAGTTTTATTCACGTAACCTAATTTACGTGGCCGTGGCCGAC -TAAGGCCACATGGCAAAGAAAAATACCGAAACAATTGGTGGCCGAATTTT -TAGTCTAAAAAAATGGCGGCCGAGTTTTTGTTTAAAAAACCGTATTTAGT -ATATCTGGGACGAAAAATGGTGGCCGAGGTTTTTCAATGTATCCAAACTT -ATGTGGCCTTGGCCTATAGCCTAGCTTTCCTAAACCATTTGTTTAAAAAG -TTGGTGGCCTAGTTTTCCAGCATAATCCAACTCACTTCTCGGCGATCGAC -ACAATCAACACCTCCTCTGTGCTCACCGATGAGACGTCTCTGAAAAAACG -TTTCGTTAGTAGATCATGGCTGACGATCAACGCTGCTCCCTTACTTGGCG -ATTTGCGATGGATGAGGTACTCGAAGATCTATGAATACAGCTAAAGGGCA -TATTGATTCAACGTCGGATGTTGCCTGCAAGAAAGTGTACATATTCAAAA -ATTTCCAAAATTCAATTTCCTTTTTCCCGCCCGTGTCCGAATTTCCGGAA -CTGACCACGTTTCAGTCATGGTCTTCGTAATTCCCAATTTCCTTTCTCCC -TTATCTTTTTACGTCAATCATGATAGCGGTGATACGTGTTTCGAGGGTAT -ACATGCTCACACAACAATGCACTTAATCAGCTAATCTCTCCCACACCTCC -ACAGAGAGAGTGTATGAGCAAGAGAAAGAGCACCTGCTTCTTCCAGATTA -GTGAGCGAGCCTGTTGTCATCTGACTTCTGCTGACGGAGGGAGCTTGAAA -AGCGGAGCAGGAAGAGGAGAAGAAAAAGAGCATTCAGAGATAATTACGCG -CGAGTCGTAGTAGTATGTATACACTGACTTCTTCTTCTTCTTCTTCCTCT -TTTTCCCCGTCTTCTGCTCGTTGATGTCTGCCATTATATTGATCATTAAC -GAGGGCCTAAGAATCCTGGAAGAGTTGTGAGGTCACACTGATGGCCTAGG -AATCTCAAAGGCAGGCCATATCATATTGCAGGCCATATCAGGCCCCATAG -CCTGGCCATAGTAGGTCACCACAAGCTATGGACTGCCCTCAAGATTTTGG -CTCAATTTGGATAAGCTTCTTCGGAGCCCCTGGGCTTAACAGACTGACGT -CATAGGTGGTATATCTCGGCTAGGCGGAAACTCGGAAATGTGAATTTTTT -GACGCAAACCAAAGATCTTATAGATCCTTGAAATCTTCCACAGGACTTAG -CAGACCGGAGGCCTGGGAACTATGCAGTTAGAGGTAATCGCCAAGTCCAG -GGCTCCGAAGAGAGAGGGCCCAGGGCTCCGAAAAAAGCTTAAATTTTGGG -CCAAAATTTCCCAAATTGGGCCAAAATTTCAAAAGTATGTAGTAGGTTTC -AACCCTCATATTTCCCGGGATCATGATTTTGTGGACTATTATTTTCAGGC -TGTGGTGGCCTGCTATACCCAGACTATGTACTGGGCCAAGCTCTGGCCAG -GTTATGGCCTTTAATAGCCTTGAATTTTGGAGTCAAAGTTCTTGCAGAGC -CTAGGAGACGCTTACCACTTCGGATCAAAGGCCTGATCTAAAACTCAATG -GATCATGACCCTAGAACCTCAATTTTCATAAGCCTAATACGCAGCTACTG -GTCTAAGCTCTGACCAGGCTATATGGCCTGATATGGCCTGAACACTTCGG -TGGCCTAGTCTAGGTTTTTCCAAGCCCCAGCGGGCCTCAATTTTCATAAG -CCTAAAGACGCAGCTACTGGGCCAAGCTCTGGCCTTGAATTTTGGAGTCA -AAGTTATTGCAGAGCCATCATGCCTAGGAGGCCTAATCTAGATTTTTTCA -AGCATTGAGGCCCCCACGGGCCTCAATTTTCATAAGCCTAAAAACTCAGC -TGCAGCCTTACCTGTGTTGGAAATGATACTGTACAAATCCATCCGGATGC -CCGTAACGAGTCGAGGAGCACACTCTCGCCGGTGCCTTCCGTCACGATCA -CAGCCTGCAAAAAACGCATTATTTATAAGATCTTACAGGGGATTTTCAGG -ATTTTCAGGAGGATTTTGTCGTGTGCCAGACCTCAAAGCTCGTCGGGATA -AAATGCTGATATTGATTGACATGCATATATATAGATATATATGAAGTTGG -AAGAGCGGAAGCAGCAGCAGTGGCAGCAGAACTTGTGTGTGACGGGGATT -TGTGGGAACAAGGCGCCAAAGAAGACGAAGCAGAAGAAGAAGAAGAAGCC -GGGGGCAAGCAATGAATGCAATGTATGTAGGAGTATGTAGGAGTATGTGT -GTGTGTGTGTGTGTGTGCGAAAGTCTCTCTATGTGTGTGTGTGTGTGTCA -CAGGTTATATATTGCGTGTGCACAAAAAATGTATGAGGTCTCCTGATGTG -TGTGTGAGTCTGTGAGTCTGTGAGTGCAGTGTACAACACCTTTTGCGGAG -TCTTATCACATACTGATACGAAAGTGTTTGTATTTTTATATTTCTTTGCC -ACGTCACACTTTATTCAATTTTTCGCGTGTGCCTCTCGCCCCGTCATTGG -CACGCAGTAGAAAAAGAAGTAGAAGAAGATGCGTCTTCTTGTTGCCATAT -CCCATCCAACTTTGTTACTTACGGAATTCGCGCGCGCGCGCGGGGAGGAG -AAGCAGAAGACGACGACGACGAGCTCGAAAGAAGACGAGTCCGCCTGCGT -CTCTGCAGTGATCTCGTGTCCCTCGGCAGCGGCTGCGGCGCGCGCTTCAA -TGAAGACGAGAGCTCCCCCCCCCGGCGGCGCCGAATACGCGATTTGTCAT -CGAGATGAGCGCTTTGCTGACAGAATAGAATGGGCAAAAACAGGAATACG -GAATACAGTAGTCATGTTTTGTTGCAATGTTATGGGAAAGCTGGCTTGGC -GTGGTCGTCGAATTTTTCGCGCTTCATTGACAAAGAACAAGGGAAAGTCG -TGTTCTCCACACGGACAATCACACTAAGTTTTAGGACTAAAATCGAGCCG -AGCCAAAATGGCCTAGTTCGGCAGAAACTCTTCCATTTCAATTTGTGAGG -AAAGCCAGAGTTCTGTGAACCTCGGACCTGCGATCGCCGACCTGCGATCT -CCTAGACAAATGCTCACCCCAGCGCGGGACTCGGGAAAGTTAGCGCCAGG -AGAATAATTTTTGAATTTGAAGAAAAAAAAAGAGGAACTTACAGTTTTCA -GCATCTTCACTTGCATCGGCCCAAACGTGTCATGTGCCGTGGAGCTGCTC -GTTGCGGCGACAGTTAGCAGAGGTGTTGGTGGAGCACCACGCGATCCACC -TCCACCACCACCATTCTCAGAATACGACCCACCGCAGCACCATCTCATTG -CAAACACTGGCCTGGATGCTGCTGCTGCTGTTGCTGCTGGTGCTCTCTGT -GCGCCTCTTCTAGCTGCGGGCGTGTGCTGCTGCCTCCTGCCAGCTTGACT -GTGTGCGCTAGCCCCGAGCACACTCTTTTCACCCTCTTCTCCCCCCACCC -CGCTTCTATCGCCCATTCTCTCAATTCTTCTCTGCCTCCTCCTCCTCCTC -CTCCTCCTCCCAATTCTCATGTCATCGGGGGGCCCGTCGTGTCGTCGAGC -GCCCTCTCGCGTCTGCAATGTCTCGGCGCCGCCGCCGTCGTCGTCGTCGT -CGTCGTCGTCTTCGGGGGGTTGTCATCTGCTGTGTTCACACTGATGCCGC -CGCCTTCACCGCCCATCTCATCGTCTCCTCCTCTGTGTGGACCCGCCGAC -CGGCCGGCGCGCCTTCTCCCATCAGTTCTATCTCTCTCTCTCACTCACTT -ACTCTCAAACCGCGTCAATTGATCTCTCTGGCACGCTCTTCGCTCGGCGA -GCTGTATTCGGTGTCGGTTTTCAGTCTGCGTCTCCGCGCCCCGGTGCAAT -GCATATGTTCCATCACGTTCTGCTCCTCTTGTTGCTCCGTGTGCTGCCGT -GTTTTACGCAATTTCAGGTAAAATTGATACAATTGATACAATTGATAATT -ATCGAAGTGTCCTCTATGTGTACTCACGCTGTTAATTTAATGGCCTAACC -ACAGAATTATGCTTCTTTAATTTTTGAACTCGTAGCTCCGTATGTTAAAT -CCACTATGAGATTCCTTGCCATGTTTTTGCAATATTTTTTTGTTTGTTAT -GAGAAAGTGTATGTGTTCTTTGTTTGGTCACATGGGAACCGCTGGCCTGA -GAATGGAAGGTTTTCTGGGACAGAGCTTTTGAATCCGATAGCCTACAATA -GGGCCCCAGTGCAATAACGGTAGGCAGGCCCGAGGCCTAATTTAGTCCAA -ATAGTCCTTATTCAGTCTAGATGATTCAAAGCTAAAATCAAAGGGCTGTT -CCATTACGTTGTGATCTACAAAAAATGCGGGAATTTTTCGCCCTAAAAAT -GTGACGTCATCACGTTCCATGCGTTATTATTTATGAAGTCTGCGTCTCAT -TCTCCCGCATTTTTTGAAGATCTACGTAGATCAACCAAGCGCCTTACCCC -TAGCCTCTAAGCTCCTAGGGCCCTCTAGGACCATTTAGGCTTTTTGGACT -GTCTAAGACCAATTGGGCTTTTAGGCTCCTAGGTCCCTCAAGGACCGTTA -GGCCTCTTGGACTATCTGAAACCATCTGGGCGTCTAGGCTCCTAGGGCCC -TATAGGACTATTTAGGCCTCTTGGACTATCTAAGACCATCTAGACTTCTA -GGCCTCTAGGGCTCTCTAGGACCATTTTGACTTGTTCTATAGGACCTTGT -TCGACTAGCTAAGACCATCTGGGCTTCTAGGCTTCTAGGGCTCTCTAGGA -CCATTTAGGCCTCTTGGACTATCTAAGACTAATTGGGCTTCGAAGCTCCT -AGAGCCCTCTAGGACCATTTAGGCCTCTTGGACGATCTAAGATCATCTGG -GCTTCTAGGCTTCTAGGCCCCTCTAGGACCTTCTAAGACCCCAGTCTTTA -TTCCCTAGCCTCTAGGCTCATAGGCCTCGATTCCGCAATTCTAATGGCTT -TGGGAGCCCAGTTCTAAGGCCCATGGACTTCCACAGTAGCTTTTCAGTCA -ACCATTTCCAAGTTAACCAAGGACCATTTAAGCCTTTTGGGCTATCTAAG -ACCATCTGGGCGTTTACTTTCTAGGCCTTTTCCTGCCTATTGGGCCCTCT -TGGACCTTCTAAGACCCTGGCCTTTAATCCCTAGCCTCTAATCCTCTAGG -CCTCGATTCCGCAAATACAATCCCAGTTCTAGACTCTCAGGGCCCTTGGG -CTTGTAGGCTTTCAGTTAACCATTTCAAACAGGTGCCGTTCCGCTCCATC -TCTTCTTGCTCTCTCGTGCTCCTCTCCTACACCATCTTCTCTCATTGTTC -TGACGGATGGATGAGCTGTCATCATCATCATCAAAGCTCCAAAGACAATT -GCCATCAATTTGTGCCGCCGCTGTGCTAAGTGGTCTTATTCCGCCGGGAC -AAAAAAAAAGGGAAAATTCTCTGGGAATTTGGACTAACACCACCTACTAT -TACTGTAAAAAAACATTTGGAGAAGGGGGAAACGAACTAAAAAAAAACAA -ATTAAAATCGGCGTATCAAATTGAAATCATATGATTCGTTGCCGTCGTCT -TCTCTGCAATGATCGTTTGTTCCGTCGTGTCAAACTAACCTACTCAATGT -CATAAAGAACAAAGAATGAATTCAATAAAACAAGACGAAAAAATAAATAC -ATTCAGGTACTGTACAGAGAGAATCAGGATCACATCTGGAATAGCTCGCA -GCCTGTTCGATTCTGGGAGCTTGTTGAGTATAGGCCGACCACTACGCCGC -CGCCGACCACTACGACAGAGTATATACCGCCACCGACGACTACGTATGTT -CCCTGAACTTTAAAGTTGCATTTTTTTTTAAAGGATTAGGGGTTTTAATT -GAAATTTCAGAATTTTTGGTAAATTTTTTAAAATTAGTTTTATTTTTTTA -CGGGCTTTTGCGATTATTACTGGTAGAATGAAAGTATGTACATTTCTTGT -AGATCAGAAAATTTAATTTTTGATATCCGATAAATGTTAAAAACTCGATC -GAAAAAAAAATAAATTTTTCCAAAAACTAAAAAGTTGCAAAATTTATTTT -TTTTACAATTCAAAGTTTGTAATTTTTGACAAAATACATTCAGAAATTTT -TTTGGAATAGGGGTTTTAATTAGGCTTGGGCCTAGGTTTGGGCTTGGGCT -TGGGCTCAGGCTTAGGCTTATGGTTAGGCTTAGGCTTAGGATTGGGCTTA -GGCTTAGGCTTGTGCTGAAGCTTGGGCTTGGGCTTAGGCTTCAGCTTAGG -CTCAGGCTTAGGCTTGTGCTGAGGCTTGGGCTTAGGCTTAGGCTCTCAGG -CTTAGGCTTGGGCTTGGGCTTGGGTATGGACTTAAAATTTTTTTTCAAAA -ATTTTATTTTTCGAAAACTTATGGTTTTACCGGTATAAAGTGCCTTTTTT -TGTACATAAAAAATAATTTTTAAATTTTTTAACGTTCCTAAAAACTAAAC -AAACTGTAAAGAAAATTTTGTTTAAAAAAAAAATCAATAAAACATATTTT -CAGTAATTTCCAAAATTTGATTTCCCGGTAAAAATCAACAATTTTTTATC -GGGGCCACAAAAAAAATTCGCTGAAAAAAATTCAATTGGATGTATTTTCT -GCAAATTCGAGTCAATTTTCTGAAAATAGTTGTTTATTTTCCCTGATTTT -TTGGCGTTTTTTCCTTTTTTAAAGGAATTTTAGGACTTTCTGGGATTTAG -AAGGGTTTAGCCTAGGGAGTGATTAAGCCTAGGCTTAAGCCTGAACCTGA -GCCTAAGCCTAAACCTAAGCCTAAGCCTAAGCCTAAGCCTAACATCAAAA -AAACCGGAAAATCCTAAGCCTAAATAGCGTCAGTAGCAAGCTGACGCTCG -CCACTGACACCAAGCCTAAGCCTCAGCCTTTAACGAAAAACAATTTTGGC -ACAAAAATTGCAAAATTTCCGCTTCTCCGCTTCTCTTAAGACATTGAATT -TCCAAATTTAAAAATTTTTAGAAAAAAAAAAACCTCGGTCCAAAATGATC -TGAAAATTCTTATTTAGGCTTTAAAAAATTTCACTTTTTTCTGCGACACT -TTCCATAACACCACAAATTCGGCGAATCGACCTGTTGATGATCTTGTCTC -GACCCGCTCTCTCTCTAAGTGATTATAACAGAGATACACCCACACACCCA -CACACGTCATCTATTATGTTCTAGAACTTTATACTTTATGATCAAAACCG -AATGCTACAAACTAAAAAAACATCACCACTTTTTCCAAATTTTCGTCACA -TTTTTGCAGTCCGACCACAACTACAACCACCAAAGATCCATGTGAATCAT -CGCATCCGTTGGATCTGACGCGTCGGCTACGGGACACTGCCGGCTACAAT -CGTATCTATATGGCCAGCGACTTTTCGTCGGCTCGCAATGAGTTTCCTGA -TCTCAGGGGTTTGGCTCACAAAGCTTCAACGGACTATCATTGCGGGAAGA -GGTGCCAACGGTGAGCTCTCAATGCCTACCTGCCTACTTGTTTGCAGTAT -CAAACATATAATGCCTACAAGCCTACGCGCCTACCTTGGTCTACGAGCCT -GAACTTGCACATTTTCTGTGCCTAACATGCACGCTATACTTTTGTCTGCC -GTTACGCGCCCCCCCCCCCCGCCTATCTGCCTACAAGTCTCCCTTTTGTC -TTTATGCCTACGCGCCTATCACATGCCTACCTGCCTATTTGCTTGCGGTC -GAGTCGATACATATCATGCCTACGAGCCTACGCGCCTACCTTGGGCTACT -AGCCTGAATTCGCATTTTTCCAGTGCCTAGCTTGCGCGCTATACCTATGC -CTGCATTTACGCGCCTTCTCCCCGCCTAGCTGCCTACAATCGCACTTTCT -GCCTACCTGCATGCTTTCCTACCTATTCGCATACTTAGGCGTACCTACCA -CAAGCTTAGCTACCTACAAAACTGCCTTCTGCCAACCTGCATGACTGCGT -ACCTTTTCGCCTGCTTAGGTGCCTACCACAAGCCTCCCTTTTGTCGATAT -TCCTACGCGCCTATGGCATACCTACATGCCTACTTGTTTGAGTCGATACA -TATCATGCCTACGCGCCTACCTTGGCCTACCTTGGCCTACAATCCTGAAA -TTGCACTTTTCCTGTGCCTAGCTTGTACACTATACTTATGCCTGCCTTTA -CGCGCCTTCTCCGCGCTTATCTGCCTACAAGCATACCTTCTGCCTCCTTG -CATGCCTACATACCTATTAGCCTGCTTACGCGAACCTACCACAAGCCTAG -CTGCCTACAAACCTCCCTTCTGCCTATATGCCTACGCACCTAACTCCTGC -CTGCCTATACGTCTACCTCATGCTGAAAACAGACCTGCCTTGTACCTACC -TATGCGCCTACCTAAGATTTGCCTCCTACGTGCCTGGCTGCCTATTTTGC -CTATAGGCATTACTGTCAGTGCGTCTACCCAGAGCCTACCTTTAGGTAGA -CGTTTGCCTACCTAAAGCAACCGCCTACAAGTCTATTCGCCTGCCTCCTT -GCCTACCTACACACCTCCCTTATCCCGGCTTTTCCACCTGCCTATGCGCC -TATCTCATGCCTACCCAAGACCTGCAAACGTGCCTAGCCGTATGCCTACC -TAACTTCGCGCCTACATATGCCTCCCTTTCAGATCGAGTCAACTAATTCG -AAAAATCATAAAAACCGGCCAACCGGCAGAAGCCGAACGTGCTTGGTGGG -ACGAGGAAGAGTGGGAGGAGGGCGAGAGACGCAGGAAACGAGCCATCGAA -TGGAAGGATACAGATGATCGTCTGCTAATGCGAAATACCGGAACATCACG -TCATATTTTGGGTAGGTAGGTGGGTGAACACAGCAAGTGCGCTCCATCGC -GCGGGACACTTTTCCCGCGCTTTTTAGGAGGTCAAACACGGAATTTTTCC -AGGAATGACTGTGGCGGTGGAATGCGATGATGAGACTGGAGAATTTAATA -GTGGTGGATACTCGTTGTGTACTACGTGCCGTGCTGTTCGACACTTGCCA -TCCACGTATTTTCCACGTGTCATTAATGAGCTGATTTGCTCGCAGAAAGC -GTGTTTGCGAGGAGAAGGAAAATGCATACAACGGGTTATGCCGATGAAGG -TATGTAATTTTTTTGTTTTTGCAATGGAGCGCGTTTGTACTCACTCCACG -AGAATCACGTGGTGTCAGAGTGTCTCATTTCGGATTGATCTACAAAAAAT -GCGGGAGAAGAGACACAGAGTTCTCAACTGATTTTGGATGATTAAGAACG -TGCTGACGACACATTTTTATGGGCAAAAAATTCCCGCATTTTTTGTAGAT -CAAATCACTTGGAGAATATTATTTTTATTTGAATATGATCCTTTAAAGAA -AAAATAAAATTTGACTGAATTTCCCGCCAAAAAATTTTCGCAGAAAATTT -AAATTTCCCGGCAAAATATTCACGGATATCTGGCTTCCCTCATAAATTGA -AATGGAAGAGTTTTTGCCGAACTAGGCCAGGCCATATCTGGGGTAGATTT -ACGGCGCGTTGCGTGTCGCGTCGCGGCTCGATTTTAGTTGTAAAACTAAA -TATATTTGTCCGTGTGGAGTACACGACTTTCCCACGCGTTGGTGATTGTC -AATAGAGTGCGAAAAATTCAATGAGGAAGGCCAGAACCCCGTGAATATTT -TCTCAAACATTTTTTTTGGAATTAATGTGCAATCGCGCTCTAACGCAGTA -TCCAAAACTTGGGTCTTTTGGCGGGAAACCCGAAAATTCAAAGTTTTTTG -CTTTAAAATATCGTGAAACAGACGAAACTAGTCGCAAAATTTCAAATTTA -CGGTCTTGCCGCGCCAGTGCGGTGGATCACGATTGCACTTAAGAAAAATG -GCGAAAATCAAAAATTTGGTTTATTTTTGGCAACTATTTTTCATTCTCTA -TCAAATTCATACTGTACACGTGGAAAATCATTGATTTTCCCGAAAATTTG -AATAAATGGGATGCAAGATGCGAGCGCGCCCTATTGTGATTCGTTAAAAT -TCGTTAGAAGCGTCACTGAAATCGAAATTTTTTCTCGAAAAATTGCAGTG -TGCCACGTTGTAAAATATCGATTTTTTGGAAAATTTAATATTTAGAAGTG -CGGATGCATCCTATTGTGCTCCAATAAAATTACACGGGCTTCTGGCATTC -CGCATTGAATTTTTCGCGCTCCATTGACAATCGCCCGTGTACTCCACACG -GACAAGTGCATTTAGTTTTAAAACTAAAATCGAGCCGCGACGCGACACGC -AACGCGCCGTAAATCTACCCCAGATATGGCCTGGCCTAGTTCGGCAAAAA -CTCTTCCATTTCAAAATATGAGGAAGGCCAGAACCTCGTGGAAAATATCG -ATTTTTCCATTTCCACGTGGCCAAAGGAATTGCAAGCGCGCTCCAGTGAA -CTCGCCCAATTTCCATTTTTTTTCAGGTTCTCCGAAACGTGGGCACCCGC -GAGTGTGCTCGCTGGCAAATGAGCCAAATCGACGTGCGAACGTGTTGTGA -TTGTATGCTCAATCCGTCATCACCACTGGTCACCTATTTATGAGCGAAAA -AACCGGGGAAAAAAACACACAAAACAACTCAAAACTCAACAAAAAAAAAT -AATTTTACAAGATTCAACGAAACAACAAAAAAAAGAAACAATGGAAATTA -AATACGGATGCTGCTGCCAAATATGCTGCCAAATTCAAATTCTCGCCTTG -TACACACGATCTTTATTGAAAACGGTGATCAACGGGCACCCTCCACTCTG -ACCTTTTATCTGAAAATAATTGTTTTAAAGATTTATTTGATTAAAAACCT -CGGCCACGGCCGCGACGCAGCCGCTCCGCACGCAGCTGCGTCGCGGTCGG -GTGGATCCTAACCTGAACTTCTCCCTCCAGCTCGTTATCGTCGTCGACCA -CCTCGAACAGTTTGCTAGCCTCGAATAGAAATCTGAAAAAAATAAATTGG -TTTTTTTTGAAAATATATAATGTTTTATGTTTGGGCTTCTGGCCTTCCTC -ATTGCATTTTTCGCGCGCTCCATTGACAATCGCCCCCCTGTGTACTCCAC -ACGGACAAATCACATTTAGTTTCACAACGAACGACACGCAACGCGCCTGG -CCTAGTTCGGCAGAAAAACTCTTCCATTTCAATTTATGAGGGAAGCCAGA -AATCCGCGTGTGTTTTATTGATTTTATTGATTTTTTTACTTTCGAAAATC -GCGTTCCGGCTGGTAGAAGCACAAGGTTTTGCGCGTGTCGGCGATTCGAT -CCCTCGACCATTCTCTGCAAAAAAAATATTTTTTTTTGTGTAAAATTCCC -AATCTGCGAGAACGGGATCTACGAAAAATTTTTTTTTTAATATTTTAATG -ATTTTTTCAGAGATCACATTCTTGCAGATCATCTTTTCGTGGGGCCTCCT -AATTTTTCAGTGCTGCACATTTATTTAACATTCAAAAGTGCTTTTTTCAT -AAAAATTTGAATTTTTTGCCCAAAAATCGAGAAAAACGCCGCTCCGCCTC -TTTTTCCGTGCGGCACTGTGCCTTTTGCAAGCTGGGCACAGTTTTGTAGG -CGTGAGCATGGTCTTACTTGAGCGCTTGAGTGATCTACGAAAAAAAAAAA -GCTTTTTTTAAAATTTATGTCGGAGATCACATTCTTGCAGATCATCTTTT -CGTGGGGCCTGCTTATTTTTCAGTGCCGCTCGGAAAAAGAGGCGGAGCGT -CGTGAGGCACGGTTTTTTGTCACGATTTTACAGTTTTTTGACTAAAATTC -TTGATTTTGGATCATTTTCGTTGATTTTTTTCGGAAAAAGCTGATTTTGG -CAAAAAAAAAATTTTCGCTTTTTTTTGGACAAAGAAGAGCCAAAAAAAAA -AATGAAAAAATCATAAATTTTTTAGTTTTTACATTTTTTTTTTTGAATTG -AAAAATGTTTTTTTGTGTTTTTGGTGAAAAAAACTACTTTTTTTTGCGAA -AAAAAAATAGCAAAAATGACCAAAAATCGGAAAAAAAAAACGCCGCTCCG -CCTCTTTTTCCGTGCGGCACTTCGCCATTTGCAAGCTGGGCACGGTTTTG -TAGGCGTTGTCATGTTGTCATTACTTGAGCGCTTTGAGGCAAAGACTTAT -GGGAGAACGGTGAAATCCAAAATTGGTGGCGTTCGGGAAGAGACGGGGGT -GCTTCTGAAAAAAATTGTTGAAAAATGCAAAAAATCTGAAATTTTAGAGC -ATTTTTCTGAAAAAAATGCAAAAAATCCGAAATTTTTGAGCATTTTTCTG -AAAAAAACGCTAAAAATCTGAAATTTTAGAGCATTTTTCTGAAAAAAACG -CTAAAAATCTTAAATTTCTGAGCATTTTTCCCGGAAAAAAAAAGATTTTT -ATGCACCTCTGCGAAAACTTCATCCATCATGGTAATTGAAAAATCACAAC -TGTCCAAAAGCACCGAATTCACAGTGTCGAGCTCGAAAACGCCGACATCT -TCGACCTAAAATGCTCAATTTTAATGGGGAAAAGCTCTAAAATCATGGGC -TTCTCGCATTCCTCGTTGAATTGTTCGCGCTCCATTGACAATCGCCCCCG -TGTACTCCACACGGACAAGTGCATTTAGTTTTAAAACTAAAATCGAGCCG -CGACGCGACACGCAACGCGCCGTAAATCTACGAAAAAAAAAAGGAATTTT -TGCTGAAAAATCGATAAAACACGTTAAATTTAACCAGAAAAATCAATTTT -CGCACAAAAATTCGCAAAAAAAAAAAATCAAATTTTGCTCATAAAATTTG -GCGATTTCAGTTTTCTGAGGTTCACCGACCCAAAAAACGTCAAATTTGAC -GCGCAAAACTTGAATTTTCTATTGATTTTTGATGAAAAATCGATAAAATA -CGGTCAATTTAACCAGAAAAATCAATTTTTAACGAGAAAAGCCAGAAATC -CGTTGAAAAAGCTCTAAAAATCAAAATACAAACATTCGAGAGAGTCAGAT -GACGGAGACAGACGCATTTTTTCAGAATTTTCTGCAAATTTAGGTCCAAA -CTGACGAAATAGAAGACACGGAGCACACTGGAAATGAAAAAAAATTAATT -AAATGCTAGATTTTTAGCATTTTTTCAGAAAAAATGCACTAAAATTTCAG -ATTTTTAGCATTTTTTTCCGGAAAAATACACTGAAATTTCAGATTTTTAT -TTATTTTTTTTTGAAAAAATGCTACAGACCGAATAGTTTGCCAGGCATTT -CTGCCGCGGAGGAAATCGGCGATGAACTCTGCCACGTAGCGGCATTCGAT -GGGCGGTGGCTGAAAATTTGCAATTTTTTGGCCTAAAATTTGGTTTTTTC -TGGAAAATTCTCTTACCAACGGGAAGGTTTTCGTCTTCGGAATGCCTAAA -TTAACAATACAAGCCCTCGGAGCAATTCTCGCAAGAATTGGAGCCAGCTC -CTTGGCATAAGTGAGATCATAGATGAAGAAGACGAGCCGCTTCACCATTA -CGATGCTCTTGCAGCGTTCACGGCGTTCTGCGTATTTTTCCAGGATACTC -TGAAAAAAAATCCGTTAATTTTAGCCAAAAAATCCGTTAAATTTAGCCAA -AAAATCCGTTAATTTTAGCCAAAAAATCCGTTAATTTTAGCCAAAAAATC -CGTTAATTTTAGCCAAAAAATCCGTTAACTTTAGCCAAAAAATCCGTTAA -TTTTAGCCAAAAAATCCGTTAATTTTAGCCAAAAAATCCGTTATTTTAAG -TCAAAAAATCCGTTATTTTAGCCAAAAAATTCGTTAATTTTAGCCAAAAA -TTCGCTAGTTTCAGCCAAAAAAATCCGTTAATTTTAGCCAAAAAAGAACC -GTTATTTTTAGCCAAAAAATCCTTTAATTTTAGCCAAAAATTCGATATTT -TTAGCAAAAAAAATCCGTTAATTTTAGGCAAAGAACCGTTAATTTTAGCC -AAAAAATCCGTTAATTTAAGTCAAAAAATCCGTTAATTTTAGCCAAAAAA -ATCCGTTAATTTAAGTCAAAAAATCCGTTATTTTAGCCAAAAAATTCGTT -AATTTTAGCCAAAAATTCGCTAGTTTCAGCCAAAAAAATCCGTTAATTTT -AGCCAAAAAAGAACCGTTATTTTTAGCCAAAAAATCCGTTAATTTTAGCC -AAAAATTCGATATTTTTAGCAAAAAGAATCCGTTAATTTTAGCCAAAAAT -CCGTTAATTTTAGCCAAAAATCCGTTAATTTTAGCCAAAAATTCGATATT -TTTAGCAAAAAAAATCCGTTAATTTTAGGCAAAGAACCGTTAATTTTAGC -CAAAAAATCCGTTAATTTTAGCCAAAAAAATCCGTTAATTTAAGTCAAAA -AATCCGTTAATTTTAGCCAAAAAAATCCGTTAATTTAAGTCAAAAAATCC -GTTAATTTTAGCCAAAAAAGAACCGTTATTTTTAGCCAAAAAATCCGTTA -ATTTTAGCCAAAAATTCGATATTTTTAGCCAAAAATCCGTTAATTTTAGC -CAAAAATCCGTTAATTTTAGCCAAAAATTCGATATTTTTAGCAAAAAAAA -TCCGTTAATTTTAGGCAAAGAACCGTTAATTTTAGCCAAAAAATCCGTTA -ATTTTAGCCAAAAAAATCCGTTAATTTAAGTCAAAAAATCCGTTAATTTT -AGCCAAAAAAATCCGTTAATTTAAGTCAAAAAATCCGTTAATTTAAGTCA -AAAAATCCGTTAATTTTAGCCAAAAAAGAACCGTTATTTTTAGCCAAAAA -ATCCGTTAATTTTAGCCAAAAATTCGATATTTTTAGCAAAAAGAATCCGT -TAATTTTAGCCAAAAATCCGTTAATTTTAGCCAAAAATCCGTTAATTTTA -GCCAAAAATTCGATATTTTTAGCAAAAAAAATCCGTTAATTTTAGGCAAA -GAACCGTTAATTTTAGCCAAAAATTCGATATTTTTAGCCAAAAAATCCAT -TAATTTTAGCCAAAAATTGCTAATTTTAGCAAAAAAATTCGCTATTTTTA -GCCAAAAAATCCGTTAATTTTAGCCAAAAAATTCGCTATTTTTAGCCAAA -AAACTGTTAATTTTAGCCAAAAATCCGTTGATTTTAGCCAAACAATTAGT -TATTTTTAGCCAAAAAATCCGTAAATTTTAGCCAAAAAATCTGTTATTTT -TAGTCAAAAAATTCGTGAATTTTAACCGGAAAATCCGTTATTTTTACTAC -AAAAATAGCGAATTTTCGCCAATTTTAACCAAAATCTCTCGATTTTTTGT -CAAAAATGCACCAAATGTGCGCTTTTTTTCGTTTTTTTTTGGCATTTTCC -CTACTTCAATAGCGAGTTTGCAGGTCGTCGTGCAAATTTTGACTTCGATT -TCAACAGAATCCAGCAGAATTCGATCATCAGTCATACATTCCAAACAATT -TTCAGCATCCTTTATGGGCACTTCGATGAAATCTGAGAGAGCAAACACTT -TAGAATTGCCAGGGTTTACAGCTCTTTTAATCACCATCCAACTGGCACGC -GACGTCCATTTTTGGCTGCCCATTCACCCGCTCGCCGCCACCCTTGCAAA -TGTTGTGAAATTTGATGACAAACGGTTCAGAGTACTCGAAATTCTCCAGA -TCGCCGTGCTCGACGAGCTCGTTGTTCGATGGTGCTCTTTCCGGCGTTCT -TTTCCATCTGAAACTGCTGTTTTTCCTTTTTTTTTTTGTCGCAAAATCTT -TTTTTTCACCGAATTTTTCCACCAACCTGAACAGCGAATCTTCGAAAAGA -GACGAAGAATTCGATTTTGGGCTTTCCAAATTTGAAAAATTCAAAGAAGT -TGTCACAGAACTAGCCATTTCGAAGTTGAAATGATTAAAAATCAAAAACA -AAAAATTTCGATAAAAATCAATGTCCGAGAGGAGTACACGCTTGGGAACC -ATGCGCGGGTCTCGCACGGAAGAGACGAATTGAAGTACGGTAGCTCGTAA -ATCCTGTTCCACGATTGATTTTTTTTTAATTTTTGATCAATTTTTTCGAT -TTTATCCCAGAAGTTCTTGAAAATTATCCGTTTTTTTGCAATTTTTTCGG -AAAAATGCTCTAAAATTTAAGATTTTTAGCATTTTTTTCCGAAAAAAATG -TTTTAAAATTGCAGATTTTTAGCATTTTTTCACAAAAAATGCACTAAAAT -TAAGATTCTTAGCATTTTTGCGGAAAAAATGCTAAAAATCTTGCAAAGAC -TGAAAAAATTCGAATTTGTTGTAATATTGCATGTTTTCCGAGGTTTTACA -TCAAATATGTGTAGTTTTCCTTGAAATTTGACGTTTTTCACTGAAAAATT -CTACAAAAATAAGCATTTCTGAGCTCTTTTGTCGCAAAAGTTGATGAAAA -TCGCCAATTTTTCAATAAATATTGCACAGAAACCGTCAGATTTTTAGCAT -TTTTTCGGAAAAATGCACTAAAATTTTAGATTATTAGCAATTTTTCAGAA -AAATGCTCTAAAATTTAAGATTTTTAGCCCTTTTTTTCAGAAAAATTCAC -TAAAATGCAAGATTTTAATCATTTTTTTGCAAGAAAAATGCTCTAAAATC -TAAGTTTTTTAGCATTTTTTTCGGAAAAATGTTTGAAAATCCCTTCTTTA -ACGCCTTTTTCGCACTAAAAGATGCTCAAACTAGTTTAAACTTTCAGAGT -TTTCCCATGCTTTTGCCCCCTCCACTTCACAAGAAACAAGAAACAAATAC -GGCGGGAAAAAAGCGAAAATTCGCGGAAAACATCATTTTCAATGCATTTT -TCATCGCGAAAATTGCCGAATTTCATTAAAAATGGCCAATTTTTGTGCCA -GTTTTCCCAATTAATCATGTATTTTCGATTAACTCGAAGCCCCTGCGCAG -AGAAAAACACAAAAATGTTGCAATTGTTTGTGTAAAGCACTTCTCTGCGC -GTCTGCGGCATCCGATATGACGAGCAATATATATCTTTTTTCTGGGAGCC -TTTTATTTTAAATTTATCATTTTTCATTTAGTTTTTGAGAAAAAAATTCC -CCCAAAATTAACCTAAAAGCCTTGAAAATGTGAATTTTGAGTGAAATTTG -ACGTTTTTCAGCGAAAAATTCTCAATTTTTAGTGCATTTTTGCCGGAAAA -ATGCTAATAATCTTGAATTTTAGTGCTTAGCGGAAAAAAAATTCAAAATG -AAAATGTCGAATTTGAAATAAAATGCTTTAAAATTTAAGATTTTTAGCAT -TTTTCCCGAGAAAAGCTAAAAATCTTAATTTTTATAGCTTTTTTGTTGAA -AAAATGCTAAAAATCTTAAATTTTAGATCATTTTATTTCAAATTCGACAT -TTTCATTTTGTATTTAAGAAAAAATAACCTCAAAGTCTGAAAAATATCGA -ATTTTGAGTGAAATTTGACATTTTTCAGCGAAAAATTCTCATTTTTCCGG -AAAAAATGCTAAAAATCTTGAATTTTAGTGCATTTTTCCAGAAAAAATGC -TAAAAATCTCAATTTTTAGTGCATTTTCCCGGAAAAATGCTAAAAATCTT -AAATTTTAGAGCATTTTCCAGAAAAAATGCTTAAAATCTTGAATTTCAGA -GCATTCTTAATGAAAAATGCTAAAAATCTTAAATTTTAGAGCATTTTTCT -CGAAAAAATGCTTAAAATCTTGAATTTCAGAGCATTTTTTTCGGAAAAAT -GCTAAAAATCTCAATTTTTAGTGCATTTTTCTGAAAAAATACTAAAAATC -TTGAATTTTTAGAGCATTTTCGCTGAAAAATAATAAAAATTTTAAATTTT -AGAGCATTTTTCCGAAAAAAAAAACGCTAAAAATCTTGTAATAACTGACA -AATTTCGAATTTTGAGTAAAATGGCATGTTTTTTGAGGTTTTTCCTTGAA -ATTTGACGTTTTTCACCTAAAAATTCGACAAAAATGAGCATTTCTGAGCT -CTTATATTGCAAAAATTGACAAAAATCGTCAATTTTTCAATAAAAATTGC -CCAAAAACCTTAAAATATTCTGAAAAAAGCCGAAAAAACCCCATTTTTTA -GCCATTTTCTACAGAATTTTACATTTTTCTCAACTTTCTTCACCTAAAAT -CGCCGATATTATTCACATAAAATTCCCTTTTTTTTCAGCGCAATGGGGTG -TATTATGAGCCAGGAGGATGAAGCAGCGAAACGAAGATCCAAGAAGATTG -ATCGATTGGTAAAAATTGGGGATTTTTCGTTGAAAAAACTCGATTTTTTG -TGAAAAAATATAGAAAAATCATCAAAACTGCTTCAAAAACCGAAAAATTT -CACTAAAAACTAGAATTTTTGCTCGAAAACCTCAAAAAATCGCAAAATTT -GCAGTGAAAACTAGATTTTTATTTTTAAAAAATTCAAAAAGTTCATAAAA -ATCAATAAAAAAATCGGATTTTTTTTCTTAAAAAATCTGGAAAACTGTCT -AAAAATCTACTCAAAATCAGTTTTTTTTGTAGAAAATCTGAAAAATAGTC -TAAAAAATTAATAAAAATCGATTTTTTGGGAGAAAATTTGAAAAATTACG -AAAAAAATCAATAAAAAATCGGTTTTTTGGGAAAAACCCTGAAAAATTGT -CTAAAAATCTATAAAAAATTGGATTTTTTAAATAGAAAATCTGAAAAACT -GCCAAAAAATCAACAAAAAATCGATTTTTGTGTGAGAAAACCTGAAAAAT -TATCAAAAAATTGGTTTTTATCTAGAAAATCTGAAAAATTACCTAAAAAG -CAATAAAAAATCGGTTTTTTTTCTGGAAAAACTGTAAAATAGCCTAAAAA -TCAATTTAAAAAAAGTTTTTTTTTTTGTAGAAAACCTGAAAAATTATCAA -TAAAAACCACGAAAAACAGTTTTTCGCTTATAAAAAGTCCAAAAATCCCA -AAATTTGCATTAAAAACTAGATTTTTATTTCAAAAAAATTCAAAAATTGC -CTGAAAATCAATAAAATTGTTGTTTTTTTTTGGAAAAAAAAACCCTGAAA -AATTGGCTAAAAATCCCAAATTTTTTTGCAGCTCAAAGAAGACGGCGAGA -ACTCAATGCGAACCATCAAGCTTCTGCTCCTGGGAGCCGGCGAGTCTGGA -AAATCGACGATTTTAAAGCAGATGCGTATCATTCACGACGTCGGATATAC -GACTGAAGAGAGAAAAGTGTTCAGAGGCGTCGTTTATGGAAATATTATTT -TGGTCAGTGCTCCGATGCACTGAAAAATGACAGGAAATTGGCAATTTTGA -CCAAAATTCGTGGATTTTAACCAAAAAATCCGTTAATTTTAATCAAAAAT -CGGCTAATTTTAGCCAAAAAATTCGCTATTTTAACCAAAAAATCCGTTGA -TTTTAGTCAAAAAATTCGCTATTTTTAGCCAAAAAATCGCTATTTTTAGC -CAAAAAATCCGTTAATTTTAGCCAAAAATTTCGCTATTTTTAGCCAAAAA -ATCCGTTAATTTTAGGCAAAAAATCCGTTAATTTTAGTCAAAAAATCCGC -TATTTTAACCAAAAAATCCGCTATTTTAACCAAAAAATCCGTTAATTTTA -GCCAAAAAATTCGCTATTTTTAGCCAAAAAATCCGTTAATTTTAGCCAAA -AAATTCGCTATTTTTAGCCAAAAAATCCGTTAATTTTAGCCAAAAAATTC -GCTATTTTTAGCCAAAAAATCCGTTAATTTTAGCCAAAAAATTCGCTATT -TTTAGCCAAAAAATTCGCTATTTTTAGCCAAAAAATCCGTTAATTTTAGC -CAAAAAATTCGCTATTTTTAGCCAAAAAATTCACCAATTTTCGTTTAAGA -TTCTCCAATTTTTGACAAAAAAATTCACCGAATTTGCTCAAAATTCTCCC -TTTTTTGGCTAAAAAATGCATAAATTACACAATTAAACCAAAAATTACCC -AATTTCGCCCAAAAACTCTAATTTTTACCAAAAATTCTCCTATTTTTTGT -TGAAAATTCACCAATTTTTTTGCCAAATTTTAACAGAAAAATCTATAAAA -TATCAGGCGAAAATAACCTAATTTTGGTCAAAAATTCACCGATTTTTGTT -CAAAATTCTTCAATTTTACCCAATATCCACCAAATTTTAACCAAAAAAGT -CTAAAAAATTATTCAAAAAATCCCTAATTTTGGCCCAAAATTCTCCATTT -TTACTCAAAAATTCTCTCTTTTTAACCAAAAAATCTAGAATATTAGGTGA -AAAATGCCTAATTTTGGCTAAAAATTCACCGATTTTTGACAAAAAAAACC -TCCAATTTCAGCTTAAAACTCTCTGATTTTTACCAAAAAAATCTAAAATA -TTAGGCGAAAAATCACTAATTTCGGCTAAAAAATCACCAATTTTTGACAA -AAGAAACTCCAATTCCAACAAAAAATTCACAAAATTTACTCAAAAATTGT -CTGTTTTTCACAAAAAAAAAACCTACAATATTAGGAGAAAATTCACAAAT -TTTGGCCAAAAAATCCCTAATTTTGGCCGAAAAATTTGCCAATTTTGTTC -AAAATTCTCCAATTTTCGACTAAAAAAACCTGCCATATTCAGCAAAAAGT -TCACCAAATTTACTCAAAAATTCAAAAAAAATCTAGAATATTAGGCGAAA -AATCCCTAATTTTGTCCAAAAATTCACCGATTTTTGACAAAAAAAACTCT -AATTTCAGCAGAAACTTCACCAAATCATAGCCAAAAATTCACTGTTTTTT -ACCAAAAAAATAGAATATTAAGAGAAAATCCCTAAATTTGTCCAAAAAAT -TAAACAAATTATAGCCAAAAATGCTCTGTTTTTTACCAAAAATTCTAGAA -TATTAGGTAAAAAATCCCTAATTTTTCCCAAAAAATTCACCGAATTTACT -CCAAAATGCTCTGTTTTTGACAAAAAAAAACTCTAATTCCAGCACAAAAT -TTACCAAATTATAGCCAAAAATGCTCTTTTTTTTCCAAAAAAAATCTAAA -ATATTAGGCGAAAAATCCCTAATTTTGTCCAAAAATTCACCGATTTTTGA -CAAAAAAAACTCTAATTTCAGCAGAAACTTCACCAAATCATAGCCAAAAA -TTCACTGTTTTTTACCAAAAAAATAGAATATTAAGAGAAAATCCCTAAAT -TTGTCCAAAAAATTAAACAAATTATAGCCAAAAATGCTCTGTTTTTTACC -AAAAATTCTAGAATATTAGGTAAAAAATCCCTAATTTTTCCCAAAAAATT -CACCGAATTTACTCCAAAATGCTCTGTTTTTGACAAAAAAAAACTCTAAT -TCCAGCACAAAATTTACCAAATTATAGCCAAAAATGCTCTTTTTTTTCCA -AAAAAAATCTAAAATATTAGGCGAAAAATCCCTAATTTTGGCCAAAAAAA -TTACACCAATTTTCCCCAATTTCAGCTTAAAATGTTCAATTTCTAACCAA -AAAACCCCCAAATTTTAACCCAAAAATTCCCTCGAATTTCACCCCAAAAC -CGTCCAATTTTCCAGTCTCTCAACGCCATCATCCACGCTATGGAGCAGTT -AAAAATCAGCTTCACCACACTCGATCACGAATCAGATGCCCGAAAGCTTC -TAATGTTCAGCACAACAGGCGAAGAGGATGAGCTGCCCGAAGAGCTCGTC -GTGCTCATGAAGAGTGTTTGGTCCGATTCGGGAATTCAGAAAGCGCTCGA -AAGGTGGCGAAATTTCGCTGAAAATTGAGAAAATTCGAGGGATTTTCGCT -GAAAATCGAGAAATTTCGGTGGAAATTAGCTTATTTCCATGAAAAAATCG -TTAAAATCCCAGAAAATTGCGATTTTGGACTATTTTTGAGCATTTTTCGC -GTTTTTTCCATGAAAAATTCAATGAAATCGATTTTTTAGGTCATATTCGC -TGAAAATTACCGCTTTTTTCGATGAAAAATTCGTTGATATTCGTTGAAAA -TTATCTATTAGAGCTAATTAAAATTTAAAATTCCAAAAAAAAAAATATTT -TAAAATAATCAATCGAATTATTTTTTGCTCACACTTTCAAAAACCGCTAA -AAATTCTAAAAAAAAAATTTTGGAGCCCCTTTTCCGCTAGAAAATAGCTT -TTTTTCCCTCAAAATCCGGGAAAATTCAGAAATATTTAATTTTTTGGCTA -TTTCTGACTCTTATTCCCACACAAAAATAGTTTTACCAAAAAAAAACAAT -TTTTGTCAAAAATTCGAAAAAAAAATTTCTGGGAAATATTTTTAAATGAC -TCTAAATTTTCCCCTGTACCCGAATATCGATGTGAAAAAATTCAGAAAAA -TTTTCCGCGATTTTATATGATTTTTTGAAAATTGGACAAATTTCAGTTTT -CCCCCCTAATTCCTATTTGAGTTACCGCCAATTTGATTTGTTCGATGGAC -TTGCACATTTTTGAATTAATCTATTTTATTTTTTGTTGTTTTTTCCACCG -ATTTTTAATGTTTTCGGTGTATTTTTGCTTGAATTTTAGGGGAAAAGTCA -AAATAAATGCAATTTTCGATTAAAAAGCACGCTGACCGGCGTAAAAATGA -AAAAGTAACGATTTTAAACGATTTCAAACCTGAATTAATTAATTTCACTG -ATTTACGCCTGTACGCGTGCGTAGATCAGTGAAATTAATTAATTTAGGTT -CGAAATCGTTTAAAAGCGTTACTTTTTCATTTTTACGCCTGTAAGCGTGC -TTTTTAATCAGAAATTTGCAATTATTTTGACTTTTTCTCTAAAATTCAAG -CAAAAATACACCGAAAACATCAAAAATCGGTGGAAAATAACAAAAAATAA -AATAAATAAATTTAAAATTGTGCAAGCGCGCTCCATCGAACAAATCCAAT -TGGCGGTAATTCAAATAGGAATTAGGCAAAAACTGAGATTTTTGAGGCAC -CACGTTTTGAAGATCTGTTCAAAAAGAAGATCTACGTTTTCAGGATCTGG -CACCGTGCCAACTGCGGTTTTCTCGATGAAAAACGTAACAACGATGCTCC -GATGTTACGCGTCGCGTGTTGTTTTGCGTTCAGAAAGATATTTTTTGAAA -TTTTCTTCTTGAAGAAACGCTTAACGACACGCAACGCGTAACATCGGAGC -ATCGTTGTTACGTTTTTCATCGAGAAAACCGCAGTTGGCACGGTGTCAGA -TCCTGAAAACGTAGATCTTCTTTTCGTAGATTTTCAGAATGTAGATCTTC -TTTTGGTAAATCTTCTTTTCGTAGATCTTCTTTTCGTCGATCTTCAAAAT -GTAGATCTTCTTTTGGTAGATCTTCTTTTCGTAGATCTTCTTTTCGTAGA -TCTTCTTTTTCGTAGATCTTCTTTTTGAACAGATCTTCAAAACGTGGTGC -CTCTGATTTTTCCAAATTTCAAAAAATCATATAAAATTTAGAAAATTTTT -TTGAATTTGTTTATCAGCATATTTGGTCATTTTGGTACCATATTTTCCCC -TGATTCCGAATATCAATGTGAAAAAATTCAAAAAAAAAATCCCTGATTTT -ATATTTAAGCTTGAAATCGCCGAATGAGATTTTTCAAATACGCGCGCACA -AATAAATTCTCCTTGGAGCGCGTTTGCCTCATTTGATTTTCTCCATATTT -ATTTTTACTTTTTTTTCAGTTTTTCACAGCTATTTTCATTCATTTTTATT -GTATTTTATAGGTTTTTTTTTTTGAAAAATAAATTTTTCCGTGTGAATTG -AACATTTTATTTGCATAAAAATGAATGAAAATAGCTGAAAAACTGAATAA -AGTAAAAATAAATATGGAGAAAATTAAATGAGGCAAACGTGCACCAAGGA -TAATTTATTTGGGCGCGTATTTGAAAAATCTCATGTAGGAGGCAAATGAA -ATTTAGGCGATTTCTAGCTTAAATATAATATCAGGGAAATTTTTTTTTTG -ATTTTTTCACATCGATATTCGAATCAGGGGAAAATTTGGAGCCACCTGTA -ACAAAATTTTATGAAAAAAAAAACTGTATAATTTCTAACAACTTTTTTTT -TGTAGATCACGCGAATATCAGCTCAACGATTCGGCCGGCTACTATCTGAG -CCAACTCGACAGAATTTGTGCTCCTAATTACATTCCCACACAGGTATTTT -TCACTGGAAAATTCACAAATTTTTCCACTACTAAAAATTCAAATTTCCTT -TGCAGGATGACATTCTCCGCACAAGAATCAAGACAACAGGAATCGTGGAG -ACGCAGTTTGTCTACAAAGATCGCCTATTTTTGTAGGGGGAAAATTAATT -TTAAAAAATTGAAAAAATCGTCGCCGAAATTCAGGGTTTTCGACGTTGGC -GGACAGCGATCCGAACGAAAAAAGTGGATTCATTGCTTCGAAGACGTGAC -GGCACTCATTTTCTGCGTTGCACTGTCAGAATATGATATGGTTCTTGTCG -AAGATTGTCAGACGGTGCGATTTTCGAGTTTTTTGCTTTTTTTTCGTTTT -TTTCCCAAGTTTAGGGTTTTTCGGTGAAAATCTCGGTTTTCTTGGTTAAA -ATGGTTTTTTTTTTGGCAAAAAACGGCAAAAATTGAGGATTTTAGCGTAT -TTTGGCGAAAAATTGAGTTAATTACATGGAAAATTTCAGAATTTGAGTTA -AAATTGTAGTTTAAGGATTTTTTAGTGATTTTCTCGATTTTTGAACCGAA -AAACGTTCGAATTTCATTTATTACGCGCGACCACAAAATGCTGAGAACGC -GTATTGCACAACATATTTGACGCGCAAAATATCTCGTAGCGAAAACTAAA -GTAATTCTATAAATGACTACTGTAGCGCTCTTGTGTCGATTTACGGAAAT -CGTGTATTAATCGATAAAGTATTTTTTTTAGAAACACAAAAATGACAAAA -AAAATACGAAAGAAAATTGAATTGTTTCGAAAATCGAGTCCTCCCGTAAA -TCGACACAGTTGCCATTAAATTAAATAAAATTAATGTTAACTGTGTCGAT -TTACGGGAGGACTCTCGATTTTCGAAACAATTCAATTTTCTTTCGTTTTT -TTTTGTCATTTTTGTGTTTCTAAAAAAAATACTTTATCGATTAATACACG -ATTTCCGTAAATCGACCCACAAGAGCTACAGTAGTCATTTTCAGAACTAC -TGTAGTTTTCGCTACGAGATATAATTGCGCATCAAATATGTTGTGCATGA -CGGATTCTCAGCATTTTGTGGTCGCGCGTAATGAAAAGCGAAAAAATCGA -TATTTTCTGATTTTTGCGCCGAATTTTGTTAATTTTTCTTTTTTTTTTTT -CTGCGAAAACCACATTTTCCTGACTAAATTCAGGTTCAGCCATTTTTTTT -CGCAAAAATCGACGAAAATTGAGAATTTTAGCGTACTTTTAATTTTTTTA -AATTTTTTTCGCTCTGAAAATTATGAAAAAATCAAAATTTTCTCGATTTT -TGAACCGAAAAACGTTCAAATTTCATTTAAAAATCGAAAAAATCGGGAAA -AAATTTTCCGATTTTTGCACCGATGATTTTCGCTAATTTTTCACCACATT -TTTTGCGTTTCAGAATCGAATGCGAGAATCGCTAAAACTGTTCGACTCGA -TTTGCAACAATAAATGGTTTGTCGAGACGTCGATTATTCTATTTCTCAAC -AAAAAAGACTTATTCGAAGAGAAAATCGTTCGATCTCCACTCACACACTG -CTTTCCGGAATATACGGGCGCCAATAATTACGAAGAAGCTTCTGCGTACA -TTCAACAACAGTTTGAGGATATGAATAAGAGGACTACTGGAGAGAAAGTT -GGTGGTTTTTTTGAATTCACTGCAACTTTTTCCTCACGAGGGACGAGGAA -AAGTGGTTTCTAGGTCATGGCCGAGGGGCCGACAAGTTTCAGCGGCCATT -TATCTTGCTTTGTTTTCCGCCTGTTTTCTTTCGTTTTTCATCGATTTTTT -TCGTTTTTTCGTAATAAAACTGATAAATAAATATTTTTTGCAGATGCTAA -AACAATTTCCAAGTAAAAAAATCATGTATTCAGTCGGCAAGCAGCGATGA -AAGTGGGCATTGTAATATGATGGATTACGGGAATACAAAACCTAAACTTT -TTCTGAAACATGAAACATATGATGCTTAGATGCTGAAATTACCTGATTTT -CATAACGAGACCGCTGAAAAGTTTTGAGGTTTCCACAATTCAACTTTTTG -TGCGAAAATCTCGACTTTTTCACCAAAAAAGTTGAATTTTGGAAACCTCA -AAACTTTTCAGCGGTCTCGTTATGAAAATCAGGTAGTTTCAGCATTTAAG -CAGCATATGTATCATGTTTCAGAAAAAGTTTAGGTTTTGTATTCCCGTAA -TCCATCATATTGCATTGCCCTTGTTTCACCGCTGCTTGCCCACTGAATGC -ATAATTTTTTTACTTGGAAATTGATTTAGCATCTGCAAAAAATATTTATT -CATCAGTTTTATTAAGAAAAACGAAAAAAATCGATGAAAAACGAAAGAAA -ACAGGCGGAAAACAAAGCAAGATAAATGGCCGCTGAAACTTGTCGGCCCC -TCGGCCATGGCCTAGAAACCACTTTTCCTCGTCCCTCGTGAGGAAAAAGT -TGCAGTGAGAAAACTCAATTTTTGAATTTTTTTTTCATGAAAATCGGAAA -ATCTTCAATTTTTCCTAATCAATTCCATCTCTACAGAATCAAGAAATCTA -CACCCAATTCACATGTGCCACCGACACTAACAACATTCGATTCGTTTTCG -ATGCCGTCACCGACATTATCATTCGAGATAACCTCCGCACGTGCGGGCTC -TACTAAATTTTTCCGCTAAATTTTAAATTCCGTTTTTTCCCCCCAAAATC -CCCTCCCAGACATTTTCCGGTATTTATGTATTGACCACACACAACTCTTC -TCTCCCGTCTCCGCTGTTCAATGCTACGGTTATTCTCTTTTTTTTTCTTT -TTTTTTCCTGAAATTCCAAGGGTGTCGTTGAAAATCGAAAAATTCGAAAA -ATTTGGGTTTTTTAGAGGAAAAGCCAAAAATTCAATTTTTTTTTCGATTT -TTATTCCGGAAAATTCGAAAAATTTCGATATTTTTTAAATTTTTTACAAA -AAATTCGAAAAATTTGGATTTTTTCAGGAAAAAGCCAAAAAATTACAATT -TGTGTTTAAAAAAACGAAAAAAAAAACCAATTTTTCTGATTTTAATTCCG -GAAAAATCAAAAAATCTCGATTATTTTCAGAAAAATTCGAAAAATTTGGG -GCTTTTTCCAAAAAAGAAATCGTAAAATTTCGATTTTGTCCAGGAAAAAT -CGAAAATTTAATGTTTTCTTTTTTGGCTTCTTCCGGAAAATCCAAAAATT -TTGAATTTTTTGGATTTGTTTTCAGAAAAATTGGAAAAATTTGGATTTTT -CAGGAAAAAGCCTAACAATTTCAAATTTTGCTTTAAAAAAACTTTAAAAA -ATTGATTTTTGAGGAAAAAACGAAAAATTTCGACATTTTTTGATTTTTTT -TTTACCGAAAAAAAAATTGATTTTTTCCAGGAAAAAGCCAAAAATTTTCA -ATTTTTAAGGAAAAATTCGAACAATTTTGATTTATTGATTTTTTATTACG -GAAAAATCGAAAAATTTGGGTTTTTTAGAGTGAAAAGCCAAAAGTTCAAT -TTATTTTTCTGGAGAAATCCAATTATTTCAATTTTTGAATTTTTTCAAGA -AAAATAAAAAAATGTCGATTTTTTCCAGAAAAATCGAAATTTTTCGTTTT -TGAATGAAAAAAAATTTTTCCTTCAATTTTTCCTTTAAAAAAAATAAATA -AAAATGTTCGAATTTCCATGAAAAAAAGTCAAAAAAATTCAAAATTTTCC -ATTTTCCCTGACAAAAAAATCAAAATTTTCCGATTTTCCTAAACCAAAAT -CCCAAAATTTTCTGATTTTCCAATTTTCTCTGAAAAATCGAATTTTTTGC -CGCACACCCCTGGTTTCACGTGGTGGTCAGGTTGTCTCATTGCGGTTTGT -GATCTACAAAAAATGAGGGAATCTTTCCTCCCCCGGGAAAATCTGACGTC -AGCGCACTCGTGTAACCATGCGAAATCCTCTGCTGAAAAGTCTGCGTCTC -TTCTCCCGCATTTTTTGTAGATCAACGTGTAGATCAATCCAAAATGACAC -CTTGACACCACGTGCCTAAGCCCAAGCCTAAACCAATCCATTTTACCGGT -ATATCTCTACAACCTTTCACTGTCTGAAATATCGCGTCATTTTATATTAT -TATTATTATTGTATTCGCTTAAACGACAACAATTCCCCCATTTGATTCAA -AAAGTAAACATTTCCGAACTTTTTAAAAATTTGAAAAATATTTTTAAAAA -ATTTTAGCGTGAAAAACTTGTCCCCCCACCCTGCCTCTCCAAAAAAAATT -AATTTCGGAAGAATTCAGTCCTTGTTTTTGTAAATTGAGAACGTAATGCG -CTTTTTGGTGGTTTTTGCATATTTATCGACACTTGCGTACGCGAGGTATC -GATTCAGATTCCGTGAGTTTTTTACAACAAAATATCGCTAAGCAATCGCG -CTCCAGCGCGAAACTTCAAAAAAAGGCCAAAATTTTGCGTCGCTTTCTAT -GATTTTAAGACGAAAAGCGAGGAAAAATCAATAAAAACAGCGAAAACTTT -GAAATTTACGGGTTTGCCGCTTTTTTTGCGCTAGAGCGCGATTGCTCACT -GAGTTCAAGCGCCCTTCTTATTTTGAAATGGAAGAGTTTGCCGAATTAGG -CTATTTTGGTGCGGCCACGGCTGGGGTCAATTTACGGCGCGTTGCGTGCC -GCGTCGCGGTTAGGTGGACCACGCCTTTCCCACGCGTAGACGATTGTCAA -TAGAGCGCCGAAAATGCAAGGCCAGAAGCCCGTATGAGTGAAGTTTTTGT -TCATTTTCACTTTTTTTTCGTCGTTTTTAACGGTTTTTATGTGAAAATCA -ATAAAAACGGCGAAAATAATTAAAAATTTTCGATATTCCGGGTTTGGCGC -TTGCTTTGCGCTAGAGCGCGATTGGTCACCGAGTTCAAACGGCGCACTCT -GGCTTCCCTCTTAATTTGAAATGGAAGAGTTTGCCGAATTAGGCCATTTT -GGGTCGGCGGGTAGATTTACGGCGCGTCGCGTGTCGCCTCGCGGCTCGAT -TTTGATTGTAAAACTAAATGTATTTGTCCGTGTGGAGTACACGCGACTTT -CCCACGCGTTGTCCAGCAGGTTATTGCCAATGGAGCGCCGAAAATGCAAG -GCCAGAAGCCCGCCGTATAAGTAGCCCATATGAGTGAAGTTTTTGTACAT -TTTCACTTTTTGTTTCGTCGTTTTTATGGTTTTTATGTGAAAATCCACAG -TCTCCTCGTCATCGAAAGCGCACAAAAAACTGCTTACTGGCGCGTTTCGC -GTTTTTGCTAGCGCATTTTGTGGATTTCTCCGAAATTCAGAAATTACGCG -GAAAATAGGCTAGAATTCCAAAATTACAGCCCCGCCTCTTTTGATAATTA -TCTTCAGGATGAAGAAGATGATCGCGAAGGTGGGTGACTTGAAATATACA -AGAAAAATATGATTTCTTCAGAGAAACACCATTTTTACCGTTGATTTTTT -AATATCCCTACTCCTCCTTCAGTTTTTGACCAAATTTTCTCTTTTAATGG -TCTTTCATTTCATTTTGTGCTAATAAACAAATGTTAAGTTCGAAATCTGC -GAAAAAATTCGTTTCAACGCTAAAAAACGACGAAGTTTATTTTTCAACAC -TAAAAAGATTCACTCCCTCCCCCGGCTGTGCCAATGTGCAAGTGCGCCCC -AGCCCAATTCGACGCCGAGGAGACTGTGAAATCATTAAAAACAGTGAAAA -TAACGGAAAATTTCTGAAATTCCGGGTTTGCCGTTTTTTTTTGCGCTGGA -GCGCGATTGCTCACCGATTTCAAATAGCGCACGCGCTTCTGGTTTCCCCC -ATAAATTGAAATGGAAGAGTTTTCGCCGAACTAGGTCATTTTGGCGCGGC -CACGACCGGGGTAGATTTACGGCGCGCTACGTGTCGCGTCGCGGATCGAT -TTTAGTTGTAAAACTAAATGTAGTTGTCCGTGTGGAGTACACGACTCTCC -CGTCCGGCAGGCGATTGCCAATGGAGCGCGAAAATGCGAGGCCAGAAGCC -CGTGCATTTTTTTGCGGGTCCCGCCACGACATTTACCCTTTCAGACACGT -GTATCAAAGAGGACCAGGCGATTTTGGAGAAGGAAAATGTGAACTCGCCA -CGCCAATTTCTTTTTATCGATGACGGACAATCGCCAAAGTGGAGGGAAAA -TGATCTCGAAGGAAAAGGAATTCTTATGAGCTTCGGAAATCGATTGAAGA -ATCTGACAAACGGATATGAGACTGTGAGACTTTTTTTACGGGTCTCGACG -CGATTTCCCACGGATTTCGGGCTTCCCTCATAAATTGAAATGGAAGAGTT -TTTGCCGAACTAGGCCCCGGCCATATCTGGGGTAGATTTACGGCGCGTTG -CGTGTCGCGTCGCGGCTCGATTTTAGTTGTAAAACTGAATGTATTTGTCC -GTGTGGAGTACACGGGCGATTGCCAATGGAGCGCGAAAAATTCAATTTGT -GTCTCGTAACGATTTTATCGATTCTTTTTCAGGGTGCCGAACAAGCTCTG -CGTGTCCTTGAATTCAACAATACGGAACACTTTCTTGTGATCAATTTTTG -GATGAGAAGCTACTATTTCATGAAAAACGGTGATAAATATCAGCTGTCAT -ACACCGGAACCACCATCAAACCCGATTTGAATCACTTTATTCGGTTAGCA -GGCTTGGAGATGCAATATCGCTCCATCGCAACCATTTTTTCAGCGTATAC -TTCATCTGCGCTCCAGCGAACAGTCAGAGTGCGTTGATCGTGTTTGGGGA -TCAGTCGAAACCGCGAGTTTTAAAGTCGAAAAAATCGAAGAGGGAAGCAG -CGCTGATTGATGAGAATTCGGGGAAGAAGCTGAAAAAGTGCCAGAAAATT -CGGACGAAAAGAGCGGCGGCGGTGAATAACTCGACGGAGTGGACACAGAC -GCTGAAGGATACTCGGAGACTTAAACAACGTAGCGAGTGAGTTTGTGCCA -AACGATACTCCGATGTTCCGCTTCCGCTGAGGACACCGCGTCGTTTGATC -TCTGAAAATTGCGAGAGTCAGCCTCGTGTAAGTTTACCGCAAATTTGGAG -GTCAAGCAGCGAGGTCCTCATATTTTGAAATGGAAGAGCTTGCCGAATTC -GGAGTCGATTTACGGCGCGTTGCGTTGCGTGTCGCGTCGCGGCTCGTGAT -TTTCGCATATTTATCGACACTTGCGTACGCCAGGTATCGATTCAGATTCC -GTGAGTTTTTGCAACAAAAAAATCGCTGAGCAATCGCGCTCCACTGGAAA -ACACCCGAAAAGTTTTGAAATTCCGGGGTTGCCGCTTGTTTTGCGCGCTA -GAGCGCGATTGCTCGCCGAGTTCAAACGGCGCTCTCTGGTTTCCCTCTTG -TACGAGACGAGCGTCGCGGTTCGGTCCAGCAGGCGATTGTCAATGGAGCG -CGAAAAACACGTGGTGTCAAAGTCTCCAATTATGGTTTGATCTTTGATAA -ATGCGGGAGACGAGAGACACCGACTTCTCAACTGATTTCGCATGGTTAAA -AGTGTTCTGACGTCACATTTTTCTGGAAGAAAAACTCCCGCATTTTTTGT -AAATCAAACCGGATTAGGACAGCCGGACACCACGTGGAAAAACAAGATGA -GGGAAGCCACAGAAGCCCGTGCAGAGTCTCGGTTTTATCAGTTTTCGAGT -AGTTTCGCACCACAAAAAGCGTGTGACGTCACATTTTTCCGGCCGCAAAA -TTCCCGCGTTTTTTGAAGATCAAACCGAAATGCATTGTTTCAGAATCTAC -TCTTGGGCACGTCTCTCGTTCATTCACCTCGGTTTCGGTATGGTAGTGAT -CGTCAACGCCATCGTTTTTTTGTTCTTTTTCAAGTATTTCAAGAAGTTCA -ACTCGACGGTGAAGAATGGAGATCAGAAGCAGGAATCGGATGAGACTGAT -GAGAAGACTGAGAAGACTGAGAAGCAGGCGAAATAGAACTTTTTAGTCTA -TCTGTGTTGAAATAAAGGAATTGAAAAAAAAAAAAAAAAAAATTTTTTTG -CATATATGCATGTGGTGTCAGAGTGGATTATTTCGGTTTGATCTACGTTG -ATCTACAAAAAATGCGGGAACTGATTTTGCATGGTTAAGAACGTGCTGAC -GTCACATATTTTTTGGGCGAAAATTCCGGCATTTTTTGTAGATCAAACCG -TGATGGGACGTCTGGCATCACGTGTACATGTAGAAATGAGATACAACATG -TTATGTACCGTTATCCTACAGTACTATAGGTGAACCCCTCAATTTTTGAC -CTCCAAAAATTGCGGGAATCTTATAGGTCAACTTGCAGGGGGTCGTGGAC -ATGAATAAGCCAAATTCAAATTATTCAAGCCAAAAAGATGATAGCGCAGA -CACGTGCCCCCAATTTCGGTTTGATCTACTGTGTAGATCTACAAAAAATG -CGGGATTTAGGACGCTGAGTTCTCCACTGATTTTGCAACAAATTCCCGCT -TTTTTGAAGATCAAACCGGACAACCTGACACCACGTGAAGGAATAAACCA -CGCTCTTTTGCCAAAATCTTAAGAGTTTCTACAATTTCAGTGAAAATCCA -GTATTAGATTTGATATTTGAAAAAAAAAAGTTAAATAATGGACGCGGCCT -AGTCTTTCCTCTTCTACTAGCAAAACGCCCTGTTTTACAAAAAAAATCTA -TAGTTTCTGAAAAAAAAATCAGTGGCAAATGTCTACAATTTTCAATATTT -CATACTAAAAAAATCACAAAAAATTATTTTATGGCCGCGGTCGAGTTTTT -TACTCTTCCACGTGGTTTCAGAGTGTCCAATTTCGGTTTGATCTACCGTG -TAGATCTACAAAAAATTCGGGAGTCGAGAACTGATTTTGCATGATTGCTG -ACGTCACATTGTTTTGGGTAAAAAATTCCCGCATTTTTTGTAGATCAAAC -CGGACAGCCTGGCACCGCGTGCGCAGAGAAGAAAAAGCTAATGAGCACGC -GGTGTCAGGCACGGCTTGATCTACAAAAATTGCGGGAATTTTCAACCCAA -AAATATGTGACGTCAGCGCGTGCTTAACCATGCAGAATCAGTTCTCAACT -CCCGCATTTTTTGTAGATCTACGTAGATCAAACCGAAATGGGACACTCTG -ACACCACGTGAATGAGCCAATTGAGCAAAAATCGTACTGAAAGAGATCGT -TTTATTCGCGCAGAGGTTAGTTACACGAATTGAATAGAAAAAATAATGTT -TTGCAAAAAAAAAGTAATGTACATACTCATGGAAATAAATTTATTATGGG -GGAGCTTGATTATTACAAGTCGACGAAGAGCAGCACTCCTTCTTCTCCTC -CTTTTCCTTCTCTTTTTCCTTTGGAAGCTGCGGAGAATTCGACTCGGATT -TCGACATTAGACGGGAGCTGGAGCATCTGAAAAAAAAACGCGAAAAATGG -TAGATCACACGTTTTCCAACCTATTACCTTCTCAAACTAAGACTGGAGAA -GAGCGGTGTACACTTGAGCATGTCCTTCAACTGTATCGACTCGTAGTTTT -CGATCGATTCCTGGAACTTTTCGATCCACAGCTCCTTGTCCGCCTTGTCG -GCGGCTTGTAGGGTGTAGATGCCGACGACTTGGTAGTAGCGGGTTAGGTG -AATTATGACGAACGCGAATTTTAGGGACACTGGAAGAGGAACACACTTAT -AGTGACACTACAGTAGTCCTAGAAGGTATTGGTAAGGTACTGGTAAGGTA -CTGACTGCGCTAATTTTTGTACGTTACACATTTTCCTGGAGTTTTGCAGA -CCTTCAAGAAAATTCTAGCACTTTCCAGATTTTCTCCGAAAAATTCCTGC -ACTTTCCAGATTTTTCCAGAGAATTCCTGCACTTTACAGATTTTTCTAGA -AAATTTTGTTTTTCTCAGAGTTTTTCCTATAACTACAGTAATCCTACAGT -ACCCCGACCATATCGCCCCTACCAACATACAACCCAATATTCCATCAAAA -GACAAAAACTCAAATTTTCCCGAACTACAGTAACCCTACAGTAACTCTAC -CGTATACCTACCGGGCCCCTACAGTACTGCTGCAGTACCTTGACATTATC -CCCTACCAACATACAACCCAATACCTCTTCGAAAGCTGGGAACTCAAATT -TTCTATAACTACAGTAATCCTACAGTACTTCTACAGTACCTCTACAGTAC -TACTACAGTACACCGACCATATCCCCCACTAACCCTAAACCAATATTCCT -TCAAAAGACAAAAACTCAAATTTTCCCAAACTACAGTAAGCCTACAGTAC -TCCTACAGTCCCCCGACCATATCCCCCTACCAACATACAGCCCAATATTC -CATCAAAAAACAGAAAAAACTCAAATTTTCCAAAACTACAGTAACCCTAC -AGTACTCCTACAGTACTCCTACAGTACCTCTACAGTACTCCTACAGTACC -TGGACATCATCCCTCACCAACTTCCAATCTAATACCTCTTCAAAAGCTGA -AAATTCAAATTTCCTATAACTACAGTAGTTCTACAGTACTCCTACACTAC -CTCTACAGTACCACTACAGTACCCCTACAGTACCCCGACCATATCCCCCC -ATTGACTCTAAACCAATATCCCTTCATAAGCACACTACAAAGACTACGTG -GACTACAAACTATGTATGGTCAGACGGATAGTTTTTTTTAATATAAGAAA -TGATGATGAACTATATATACTACTATATATACTGACACTGATTCACCAAA -ATTAGCGACTCTGGCAATTCACCAAAGATAGGGTACGGTACTGGTATGGT -ACTGGTACGATACTAGACCCCAGTTCTTTAATACGATTCCCTAAAATTGC -TCACTCGGCGTTGCCTGGTCGTTGGAGTCCGCATCACAGAACACGCAAGA -ATCCAACGGTACCGGCTGTCGTTGGACGATGTAGTGCTCGGATTTCCCGA -TTGGGACTCCTTTCTGCAACTCTTTCAGTAATAAAACAAGTAATAAAACT -TCGCGGGACTCCTCACCACTTTCAGCTTCGAAGCGCACTTTTTAGTTTTA -GTCAGCACAAACATGTCGTTGAATAGAAACGCGTACATATCAACGGTCCG -CCCGTTTTCCACAAGCTCGAGGGGGCCTTCGTGGATAAGCTTTCGACGCG -GATGAGCCAGAAGGTTCTCGCAGAATTGACGGGATAAGGCGACGCGGAGG -AACTGGAATTGTAAAAAATCAAGGGAAAATGTTGCAGAGAAAACAAATGT -TTCAACTTACATCAGGGACATAAGACTTGGGCTCCAAGTCGCTTATATTC -GGCCAGACAACCTGTGTCTGCAACTGCTGAAGCCTCTCAAAATTATGAAG -CCACTGCACACTATCATCAATCGATCGGAGTGATTCCGTCATTGTGTCGA -TCACCTTCTCCACCTTTCCCTTACTCTCCTCTTCCTCCGATCTTTTGTGA -ATCTCGCGGAGAAGGATCGGAAGCCGAGTGATTCGTTGAAGCGGTGCGAT -CAAAAGATCCTCGAGCTGTAGACGGAAGCATCGTTCATCGGCCAGACATA -TCCGCTCGAATTCCGTGAATCGTTCCTCTTTCTGTCGAATTGAGCCGAGA -TATTCCATGGTTGCCTTGTAGTTGATGCAGTAGGCTTGGTAGGCCGAAAT -TGTGGAGGGGCCTTTGGAGAACTGGAAGTTTAGAGTTATAACAAGGCATA -GTCTCAAGCTATTTTCCAGCCTATCCAAGCTGTGGTCCTGGTGCTTAACA -GTCTTGATTTTTTAGAGCTGGAAAACCGGACTAATCCGGACTACGGAAGC -CTGGTTTTTGTCTAAACGACAACATTGTGCAACAAGGTACGCTTTTTCAT -ACTACTTTTTTTTAAACTTTTGTTTTTTTTTGTTCTTTTTCGGCCAGCTT -TTAGGAACTTTTTTGACCCAACTTCGAAATGTCCCTTTTTTTTGCAATTT -TAGGAATTTCTAGAAATTTCCCATTTTCTCTTTTTCCAGCCCCTTCTAAA -CCTAGGCCTAGGCCTACGCATAAACCTAAGCCTACGCCTAAACCTAAGCC -TAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTA -AGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCTTAAGCCTGAGCCCAAG -CCTAAGCCTAGGCCTAAGACTAAGCCTATGCCTAAGTCCCAGCCTTAACC -CAAGCCTAGGGCTAGTTGAAAGCCTAAGCCTAACCCAAACCCTAAGCCTA -AGCCTAAGCCTAAGTCCAAACTTAGGCCTAAGCATATGTCTAAGCCTAAG -CCGAAAATGTCCCTTTTTTTTGCAATTTTAGGAATTTCTAGAAATTTCCC -ATTTTCTCTTTTTCCAGCCCCTTCTAAACCTAGGCCTAGGCCTACGCATA -AACCTAAGCCTACGCCTAAACCTAAGCCTAAGCCTAAGCCTAAGCCTAAG -CCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCT -TAAGCCTGAGCCCAAGCCTAAGCCTAGGCCTAAGACTAAGCCTATGCCTA -AGTCCCAGCCTTAACCCAAGCCTAGGGCTAGTTGAAAGCCTAAGCCTAAC -CCAAACCCTAAGCCTAAGCCTAAGCCTAAGTCTAAACTTAGGCCTAAGCA -TATGTCTAAGCCTAAGTCTAAACCGTAGCCTAAGCCGAATCCCAAGCCTA -AGCCTAAGCCTAAGCCGACGGAGCACGAGGAGAAAGTCCAAAACTTCACA -AAAAAACAAACATTTCTCTCAATCTCGGTCAGTTTTCAAAAATATTTCGA -GTAATTTTTCAGCACAAATAACAAAAACCCACCCTTTCAAACAAGTCCAC -AACTAGCTGTGTGCAGTCCCAATTCTCCTTGTCTACCGTACTGAGCAACG -AGAGGAACGATTGACAGAAGGTTCGAGATATTCTGACAAAATAAAAATGT -GTGTGTGTGTGTGAAATGGCACGTCAGATTAAAGGCAAATAGAAAAAAAA -AACCAATTAAAAACTGAACGAACCTGCAGAGTTGATCCAAATTTCCGAAA -AGGAGGTCCGGCTCGACAAGCAGTAGACATCCCTCGACTTGACATCTCTT -CAGCGGCTCCTTGTAAACATCGCGGAGCACGAAGAGCTGACGATAGAGGA -AGACGAGCTCCGTGTGGAACAGCTCCCATACCGCTTGAAGGTATTTGTGT -TTGGATGAGGGAATTGTCGTGGTCTCGTCTCCCATGAACATTTCCTCAAA -GGATACTGGCTGAAAGTTGGATTTTTTTTTGGTATTGGAGCTCGTCTCTG -GGCTCGTTTTGCAGTTTGTACCCTTAAAAAGACATTAAAAAGACATCAGC -AACAAACTCCAAAATCCCAAGTAGTAAACAGATTTTTTCTAAAACGGCAA -AATTGAGTGAGGAATTTTTATTCGATGCACCATGTTTCTCACTCAAATTT -GACTACTCATAACTTAGTTAAACCTAATCCAATACTTCCTTAAAAGCTAA -AAATTCACATATTCCCAAACTACAGTAAACTACAGTACCCTACCGTACCC -CTACAGTACCCCGACAGTACCCCTACAGTACTTTGACAATATCCCCCATC -AACTCCCTACAAAATCATCAAAAACAAAAAATTCACAATTTTCAAATCTA -CAGTAACCCTAGAGTGATCCTACAGTATTCCTACAGTACCACTACATTAC -CTTGACATATCCCCCACCAATTTCCAACCAAATACCTCTTCAAAAACTAA -AATTCACATTTTCCAAAACTACAGTAACCCTACCGTATACCTGCAGTACC -ACTACAGTACCATTAAAGTACCTTGACATTATCCCCCACCAACTTCCAAT -TAAATACCCCTTCAAAAGCTAAAAATTCAAATTTTCCCGAACTACAGTAA -CCCTACCGTATATCTACAGTACCCCTACAGTGCCACTACAGTACCTTGAC -ATTATCCCCCACCAACTTCCAACCCAATACTCAATCAAAAGCTAAAAATT -AACATTTTCCCAAACTACAGTAACCCTACCGTATTCCTACAGTACCCCTA -TAGTTTCACCTACCAACAACTTTTCCAGCTCATCATCCTCAATCTCATGA -TCCTTAGAAGTCTCCAACGCGGCCTGCACATGCTTAATAATCTCCCTCCG -TTTTGCTCTGCCCGACCACTCGTAAAGTCTCTTCAGAATCCAGGGCGATC -GATTTTTCTGCGGCTCGGAAGCTTCTGCATAGAAGGCTTGAGAGGCTATT -GTGGCACGTTGAAGATCTGAAAATGAAGAATCGGTGGGGATCAGTGGTGA -CAGCGAGGGAGAAGATCTATTTGGTGGGGTGGCACATATAGAAGTGGGTA -GTAGCGGTTTTTTGTGTGATCTTTGTGTAAATAGACATGATATTAGGGCT -TCCGTGGTAGGCAGGTGCGGTTTTAGGGCCTGGCGCTTGCCTGACGCCTG -CCCGTCTCACGCCTGCCTGGCGCCTTTTATTCTGCATTTTGAAGTGAGTT -TTCAAATTTCAAATTTTCTCATTTTTATCATTTTGTTGAAAATCAAATTA -AGAAATGAAAAAAAGTTTAAGTAGGTTTCAGCATCAGGCGTGTATTTAGG -CGAGAGGCAGGCGGGGGTCGCCTCAAAGTCAGGCAGGCAGGCCTTCTTAT -GCCTACACGGAAGGTGTTCAAAAATCGGTTGCGTGTGTCCAGTAATGACA -AGAATCATACAAAGCATTCGACTTTTACACAAAACTAGTCTGTATTCCAC -CTGTACAAAAACCTACCGATCGATGTGATTTTATTTGAATCTGAAAAAAA -AATTTCTCAGAAAATTTGAATTCCCGCCAAAATGTTTCTTTGAAAGTTTG -AATTCCCGCCAAAAACATTCTCAGAAAATTCAAGTTCCCGCCAAAAATGT -TTCTTTGAAAATTTGAATTCCCGCCAAAATTTTTCTTTGAAAATTTGAAC -TCTCGCCAAAATGTTTTTTTTTTGAAAATTTGAATTCCGATAAAAAACTT -TTTACAGAGAATTTGAATTTCCCCCTACAATTTTCACAGATCTACTTATA -TATATATATATATATATATATATAAGTTGAACTTTAGTTTTCAAAAAAAA -ACCGGTCATTTATTAAAGCACGTGGTGTCAAAAAATATTTTTTCGGCTTG -ATCTACGCCGATCTACAAAAAATGCGGGAGAAAAGACGCAGAGTTCTCAG -TTGATTTCTCATGGTTAAGAAAATTCCCGCATTTTTTTGTAGATCAAACC -GTAATGGGACAGCCTGGCACCACGTGCTAAAGTTATAGTTAATTTACAAG -TCCTGGTTGGACCTGCAGGATGTCAGGCGCTGAAACGTGTTTCAGGATAA -AGTTGGTAAACTTTTATAACCAAGAGGAAAGTGTTATCGATATTTTGCTA -GTTGAACATTTTTTTTTGCTAAAAAGTAAGAGTATTTGAGCCAGGCGTGC -GCGGCGATCGGTAATTTCCGAAAATCGGCAATTTCGGCAATTGCCGGTTT -TGTGAATTTTTGGCAATCGGCAATTTTGGCAATTGCCGAAATTGCCAAAA -ATTCGATTCCGCACACTCCTGCTTTGAACTGTGCATTTCCAAAATCCAAT -AGAAATTCTGCCGACACTGTAAAATCCCTACCTGCCAACAATCCTCCGCC -GGAGCTGATTGCCCTATTGAACAGGTGACTCTCGTTAGGGGATATTTGAA -CATGTGGGACAATGATCACATTGTCCGACGAGCAGCACCCTTGGGATGAG -GTCTCCTGATTCTCACTTGGCTGATCAGGAATGATTGCATGGCGACGGGA -AAGTTGCTCCTTGTTAGGGTGAATTGTTTGGGGCTCTCCTTCTTCTGGCT -GGAAAAATACAATTTTTTGAAGTTTTTGAAAGAAAGCTTGTCATTTTTTT -GTTGCTATTTTTTACCCTAAAAATGTGGTTTCAAAATTTTTTTACCTCTG -AATATCTAATCAACGGGGTGAACAACTGCAGATCGACCATACTCGAGCTT -CTAAAAGTTTGAAGGAAGCTTCTCGTGAAGCACGAAAAAAAAAGAAACAC -GAAATAGTTACCCTTACAATTATCAGAATAGGATGGGATGTACAGAGAAG -TAAATAGGAAGAGAAATGAGAAGAGTTGCACTAGAGAAGTATGTACAATT -AATAATTTATGAGCATCTGAGAAAATGAGAGCGACTTGAAAATCTGAAGA -GCAAGGAAGATAAAACTCGGTCTCTTATCAGAAAATTTGAATTCCCGCCA -AAATGTTTATTGTTTAATTTGAACTCCCGCCAAAACTTTTCACAACGAAT -TTGAATTTTTCGCCAAAATTTTTCTCAGAGATTTTGAATTTTCCCGCCAA -AAGTTTTACCAGAAAATTAAAATTCCCGCCAAAACTTTTCACATCGAATT -TGAATAACCCGGCAATTTTTTTATCAGAAAGTTTGAAATCCCGCCAAAAT -TTTTCACATGAAATTTGAATCTTTCGCCAAAGATTAAAATCGTTGGATAA -TTTTAATTCGCGGCTGAACGTTTCCAATTCGAATTAAGACCGGCCAAAGT -TTTTCGGGGTTTTTTTTAAAACTTACTACAAAAAAGCATACATTTATTTT -CCTAACTAGACGCCTTACTAGGTAAAACCCGCTTTTCACATCAAAAACTT -CAACAATGCGTCACCGCCAAAAGAGATTCTTGCACTTCACCACGAATAAT -AGATCAGAAGGAAAAGCGTGTAGTGAGTTGAGAATTATAACTAATTCATA -TCCCCCGAAAAAAAAAACGCTGATGTCTATATTCTATACATGGTGAGAGC -TCACCGAAGAATAGACGGGTAATGAGATATATATGTGATACATAAATGTG -TGCGCCCGGGTATCCGAGAGCCGAAAACAGAAGCATGGAATGGAGCAACT -AGGGAAAATTGTGTTATCACGAGGCACGGCGGGAGACACAATAATATGAT -TTTTTTTCGAAAATTTTCCATTTTCACGTGGTTGTCCCATTACGATTTGA -TCTACCAAAAACGCGGGAATTTTTCGCCTAAAAAAATGTAACGTCAGCAC -GTTGTTTACCATGAGAAATCAGTTGAGAAATTAGCGTCTCTTCTCCCGCA -TTTTTTGTAGATCTAACTTGATCAAGCCGAAATGAGACGCTCTGACACCA -CGTGACGAAAAAAAGTAGATCAAAATTTGGCAAGCCCTTATAAAAGTCCC -TTTTTCAGTTCTAGGCGGAGCTCAGTTTGACTGATGACGTAAACGCAAAT -CTTGAAATTTCGAATTCTCTATGGAAATTAGAACTTCCCGCCGCCGCCAG -ACTTTGTAAAGTTCAACAAAAAGATGAAATATAGAAAAAGTTCAGACTAT -GATAAGGAACTTATGACTAACGTCTCTTGAGGTGAATGAGTATGATGTGA -TTAGTGATGCAAGACGACTAGACCGAGAGAGAGAGAGAGAGAGGCTCAGA -GAGGGGGGAGGGAAGGTAGGTTTGTAGGTAGGCAAGCAGGTAGGCAAATA -GGGGGTCGTAAGTAGAAATTATGAAGGAACCTAGGTCGGCAGCCATAAGG -TAGGCATAAAGTAGGTCAGCATCCAAGTAAGTTAGACAGGTACGCATAAG -ATAGGAAGGTAAGTAGGCGCGGTGGCAAGGAGACTCAAGGCAAAGTAGGA -CAGGAAGTAGGCAGTAGGTAGGCACGATGAAGGTAGGTGGGTAAGCTTGT -AAGAAGGCAGCCATAAAGTATGAACGTCGACAGTAGGCATGCATTTAGTA -GGTAGGTATGAAATAAGAATTAAGGTATGCATAAGGAAGTAAAGTATGAA -TGATGAAGCCATGTAGATACAGAAATATCAGGCAAGTAGACAGGCAGGCA -TAATATAGGAAAGTTAGCAGTAGGTAAGCATGTAGTAGGTACGTGGGTAG -GCATGTAGGTAGGCACGTGGTAGGCTTATGGTAAGCAGAACACAAGCACA -GAAATATGCATATTGGCAAGTATGTAGGCATGCATAAGATACAAAAGTCG -ACCAGGCATGTAAGTAGGCACATAGGTAGGCAGGCTTGAGGCAGCAATGT -AGGTGATCTCGTAAGTAGGTATGAGTAAGGAACCTAGGTAAGTCACAGGT -ATTTGGCACAACCTGTGTTCTTCTCAATGGTAATCAGGCGAACGTGCCTG -CCTGCCTACCTAGAAATTCGGTAAAAATTGTGGAAAAAAAACTAGGGGAA -CCTCTTCCCAATGGAATGCGTAATGTGAGTGGGAGGCGGCAAAAAAAGAG -CGGACGTAAACACTTTTTCCTAATTCTCTTTTTCTCTCGCTCGTGGAAAA -TGAATGAATATTTGATACAATTTTGTGGGTACAGCCAGCAGGAGAAGAAG -AAGCTGATGTCCCGACGCGCGCGCGCGAAAAAAACTTTCAATTCCCTCCC -CTAATTATCCGCCTAACGCCTAATGTGTGTCAAATTTACCATGTATTTTT -TTCTCCTCTCGGCTATGTTTTTTTTTCTTTTTCAGCAAAAAAAAGTACGG -GCACATGAGGTCGGGATGGATAATTAGGGATGTGTGCCAATTTGTTGGAT -AATAGACAAAAAAAGTACGTGAGATTTTTAGAAAATGCTGAGAAAAATAT -CACGAGGCGTTGGGGACGTGGCCGCGAATGAGAAAACTAGGCCACCTTCA -CAGGGCCCTGGCCTTCCTCATTGAACTTTTCGCGCTCTACTGACAAACGC -CCGTGTACTCCACACGGACAAATGCATTTAGTTTTGCAGCTAGAATCGAT -CAGCGACGCGACACGCAACGCGCCGTAAATCTACCCCAGATATGGCCGAG -CCAAAATGGCCTTGTTCGGCAAACTCTTCCATTTCAAATTTTTTATTCAG -TTTAATTTTCTAGGATACGCCTACGAGTGATCTAGGCCAGGCAGTAGGTA -GGCAGCCAGTGTAGGTAGCCCCCTTTTGGTGTCAGGCTGTCCCATCGCGG -TTTGATCTATCAAAAATATGGGAACTTTTCTCCCAGTAAAATGTGACGTC -AGCACGTTCTTAATCAGGCGAAATCAGTTGAAAAGTCTGCGTCTCCTCTC -CCGCATTTTTTGTAGATCAACGTAGATAAATACGAAATCAGACACTCACG -TGGTGCCAGGCTGTCCCATCGCGGTTTGATCTACAAAAAATGCGGGAACT -TGTGCCCAAAATTATGAGACGTCAGCACGTTCTTAATCAGGCGAAATCAG -TTGAAAAGTCTGCGTCTCTTCTCCCGCATTTTTTGTAGATCAAAGTAGAT -CAATCCACATTAAGACCTTCTGACACCATGCCCGAGAAGAGTTCAAAATA -AATTTCGTAGAACATAAATTTTTCCACGTGGATTTTACAGCACAATTGCT -TATAGAGCGCGGTTGCACCCCAAATTTTACAGGAAAAATAGGAAAATTTT -ACCAGATTTCCCGCGCAAGACACGAAACAAGGTCTTAAAAAGTGGGAGAG -CATGAAAAATCCTAAGAAAGTAAGAAACTTCTGGTTTACCACATAACTCA -AATTGGAGATAGTTCGACCTTAAAAATTTTGCACCAAAAAGGGCGGAGCC -AAAAACACCAAAACTTACGTGCAAATTTGTACATGAAAAAACTAAAAAGG -ACACCTAAAACCGGCGAAATATGAAGAAAAACGCTGAAAATGAGCAATGT -GTATCAATTTTTCCCCCGTTGCTTAATTTAATACATGTCTTCCTCTCCCC -CTTCCTTCCTGCTTCACACTCTTTCGGGCGGCGCCTCCTTTTGATTTGAG -ACTTGAGACTTTTTTTTTTGTGATGTGCGTTGAGTAGTGTGGGATGCATA -TATTATGAATCAAAAATCTGACATCAAAAATATCGCTGAAAAAATAGTTA -AAATTTGCTTTAAAACTGCCGTTTTTGATCTACAGGGTGCTTTGGCGCGT -TGCGGTCGCGTCGCGGCTTGGAGTTCTAGGCCACGGCCATTCAATTTGAC -ACTACTACAATCAGAAATATTTTGTAATTCTTAGGCCATCAAAAAATTTT -TAAGCCAGAAAACAAATCCGGAAATTTCTAGGCCATCAAGAATTTCTAGG -CCACATCAGACTACTTTGAAAATTTCTAGGCCACAATGGGAACTAATTTC -TGAACCTAATTTCTGAAATTTCTTGGCCACGATCTGAAATTTCGAAGCCA -TAATTTGAAATTTCTAGGCCACGATCTGAAATTTCTAGACCATCAACAAT -TTCTAGGCCACGATTTGAAATTTCTAGGCCACGATTTGAAATTTGTAGGT -CAAGGTTTGAAATTTCTAAGCCACGATTTGAAATTTCTAGGCCACGATCT -GAAATTTTTAGGCCACGATTTGAAATTTCTAGGCCACGATTTGAAATTTT -TAGGCCACGATCTGAAGTTTTTAGGTCATCAAAAATTTCTAGGCCACGAT -TTGAAATTTCTAGGCCACGATCTGAAATTTCTAGGCCACGATTTGAAATT -TCTAGGCCACGATTTGAAATTTTTAGGCCACGATCTGAAATTTCTAGGCC -ATCAAAAATTTATAGGCCACGATTTGAAATTTCTAGGCCACGATTTGAAA -TTTCTGGGCCACGATCTGAAATTTCTAGGTCATCAAAAATTTCTAGGCCA -CGATTTGAAATTTCTAGGCCACGATTTGAAATTTCTAGGCCGCGATCTGA -AATTTCTAAGCCATCAAAAATTTCTAGGCCACGATTTGAAATTTCTAGGC -CGCGATCTGAAATTTCTAAGCCATCAAAAATTTCTAGGCCACGTTTTAAA -ATTTTTAAAATGTTTAAAATTATAGGTTTTCAAAAAAATTCTAGGCCATC -AAAAATTTCTAGGCCACGATTTGAAATTTCTAGGCCACGATCTGAAATTT -CTAGGCCACGATTTGAAATTTCTAGGCCACGATTTGAAATTTTTAGACCA -CGATCTGAAATTTCTAGGCCATCAAAAATTTATAGGCCACGATTTGAAAT -TTCTAGGCCACGATTTGAAATTTCTGGGCCACGATCTGAAATTTCTAGGT -CATCAAAAATTTCTAGGCCACGATTTGAAATTTCTAGGCCACGATTTGAA -ATTTCTAGGCCGCGATCTGAAATTTCTAAGCCATCAAAAATTTCTAGGCC -ACGTTTTAAAATTTTTAAAATGTTTAAAATTATAGGTTTTCAAAAAAATT -CTAGGCCATCAAAAATTTCTAGGCCACGATTTGAAATTTCTAGGCCACGA -TCTGAACTTTCTAGGCCACGATTTGAAATTTCTAGGCCACGATTTGAAAT -TTTTAGGCCACGATCTGAAATTTCTAGGCCATCAAAAATTTATAGGCCAC -GATTTGAAATTTCTAGGCCACGATTTGAAATTTTTAGGCCACGATCTGAA -ATTTCTAGGTCATCAAAAATTTATAGGCCACGATTTGAAATTTCTAGGCC -ACGATTTGAAATTTCTAGGCCACGATTTGAAATTTCTGGGCCACGATCTG -AAATTTCTAGGTCATCAAAAATTTCTAGGCCACGATTTGAAATTTCTAGG -CCGCGATTTGAAATTTCTAGGCCGCGATCTGAAATTTCTAAGCCATCAAA -AATTTCTAGGCCACGTTTTAAAATTTTTAAAATGTTCAAAATTATAGGTT -TTCAAAAAAATTCTAGGCCATCAAAAATTTCTAGGCCACGATTTGAAATT -TCTAGGCCACGATTTGAAATTTTTAGGCCACGATCTGAAATTTCTAGGCC -ATCAAAAATTTATAGGCCACGATTTGAAATTTCTAGGCCACGATTTGAAA -TTTCTGGGCCACGATCTGAAATTTATAGGTCATCAAAAATTTCTAGGCCA -CGATTTGAAATTTCTAGGCCACGATTTGAAATTTCTAGGCCGCGATCTGA -AATTTCTAAGCCATCAAAAATTTCTAGGCCACGATTTGAAATTTCTAGGC -CACGATTTGAAATTTCTAGGTCACGATTTGAAATTTCTAGGCCACGATTT -GAAATTTATAGGCCGTGATCTGAAAGTTCTAGGTCATCAAAAATTTCTAG -GCCACGATTTAAAATTTCTAGTCCATCAATAATTTCTAGGCCACCAGAAA -ATTTGTGTTCACTTTTTTTTTTGGTTTTTGGTATGTATTTTTCAGAAATT -ATTCAAAATTTGTGGGAGCAACAATATGCTTTTTTAGTTTCTAGGCCACA -AAATTCTTTGGCCATTTTCACATTTTTTCCCGCCGCCAATGGTTCCACTG -GATAATTGAATGTATAGAAAAAAGGGAAGAGTTCAGCTGGCGCAAAAGAG -GGTAATTCGTTGGAAGGGAAAAAAATAAATGCAAATCTTCGCCAAAAACC -AATTTTCGGTCGGAGCTCGGCGCGGGCCGACACACACAAAAATGGAGCAG -AAGAAGACGTCAGAATCTTCTTTTTCAGAAGGCTTTCTCACTTTGAAAAT -GGGGTGTCCAATTTCTTGTTGCTAATTGTTGGATGGGGAAAGAATGATAT -TTTGTTTCAGGTTTCACACAACATCAGCCTAGACATTTTTTTTTTGTTTT -CTCCAAGAGGAGTACACACACTATAAATTGTTGTAAAAATCGAAAAACAC -GTGGAGCCAGAATTTCTTATTTCGATTTGATCTACAAAAAATGCGGGAGT -TAAAACGCAGACATCTCACCTGATTTCGCAAGAGCGTGCTGACGTCACAA -TTTTTTTGGAAAAATATTTCCGCATTTTTTGTAGATCAAACTGCAATAAG -ACAGCCTGGCACCACGTGAAAAATAGTATTCCTCTTGAAAAAGATTTCCC -GAATCAAGTTCCTTGAAAGGAGTACGCAAAATTTTGCAAAAAAAATCGGT -GGCCGAGTTTACTCTTCTGGCGGCCACGTAACAAAATTAACAAGGAAGGA -TAAAAAGGAAAAAAAAATTTTACTCGTAAAAAGGTACCAGGAAGCAATTT -GAGGAAGGAAGGAAATGTGAGTGTCTACTCTAATGATCTACCAGTTTTGG -TGGCCGCGGAACAGAGAAAGCTCGGCCCCCAAGTATTTTTTCAAATATCA -CGGATTTCTGGTTTCCCTTATAAGTTGAAATGGAAGAGTTTTTAAAGAAC -GAACTAGGCCATTTTAGCTCGGCTGGGGCAGATTCACGGCGCGTTGCGTG -TCGCGTCGCGGCTCGATTTTAGTTGTAAAACTAAATATATTTGTCCGTGT -GGAGTACACGACTTTCCCACGAGTTTTCCGACAGGCGATTGTCAATGGAG -CGCGAAAAATTCAATGAGGAAGGCCAGAAACCCGTGAGATATTTAAAAAA -TATTCCAAAACTATTTTTATATTCAAAATTGGAAATTATACATACTATAA -GTATTTTCAACTACATACATGGCCGCGAAAAAAAAAAACTCGGCCACCAA -TTTTCGCGGTCACTTACCGCAGATCTCCATCGATCCTGAAGTCTTGCCGT -ATACAATAAGGGCATTTTTCGGATCATAGTGAATGAATTATTTCAGGAAT -ATTATTTCAAAGAACACACACCACACAAGAAATGTGAAGGGAAGGAAACG -GGGAAAAAGAGACAGGTGGAAAAATACATTTTCTCTATTATTTCGCTCTG -TTTCTGACTAGGAAATGAATCAGAATCAGTGATTAAGAAACTGGGAATTT -ACGAGGTGTTTAGGGAGATGGTGACCGCGAGGATGAGGAAAAACTCGGCC -ACCGCAAGACTTACCGGCTTAATCAATTGATTTCCTCGTATGTGATGGAA -CAATGTGAGAGCCGGAGCTTCACTCGTCATAGCTTTGTGTCTAGGTGGCT -CTCAAGTACTGCTGGACCTGAAAAACTGCAAATTTAATTTGAAATTTGGG -ATGCAAAAAAGTAGCAGCCGACACCTGCCGGGTTCCCGCAAGATGTCGGA -TGCTTCAATTGACCTAGTAGAATCGTTAGTGATCTACCGAGCAAAAACAA -GTATGCTTGCAAGAAAAAAAGGCGTGTGGCTCAAGTTGACAAATTCGACA -CTTTGGACACACGAAATTGGATGAGCCACACCACACCGGCTAGCTCAGAA -GAGCCCCTCCGACGTCAAGGACCCCATGTGCGCGCGCGAGCCGAGATTCT -GGCAACATGAGAAGCGGAGAAGGCGAAGAGAAGAGTGCTAATTTGAACTT -GTTGCTGCAGGAAAAATATCTAGGCTTAGGCTTAAGCTTGGGCTTAGGCT -TAGACTTATGCTCAGGCTTAGGCTTAGGATCAGGCTTAGGCTCAGGCTTA -GGCTCAGGCTTAGGCTCAGGCTTAGGCTCAGGCTTAGGCTCAGGCTTAGA -ATTGGGCTTCGGCTTCGGCTTTGGCTTGGCTTAAGCTTAGGCTTAGGCTC -AGGCTTAGAATTGGGCTTAGGCTCAGGCTTAGAATTGGGCTTAGGCTCAG -GCTTAGAATTGGGCTTAGGCTTTGGCGTAGGCTCAGGCTTAAGCTCAGCC -TTAGGCTTTGGCGTAGGCTTAGGCGTAGGCTTAGATTTAGGTTTAGGCTT -AGGCCTTGGCCTAGGCACAGGCCAAGGTTTCAGGTCACTATCACTTGCTC -CTAGGTGTGGCTGGGGAAATGAAATTCTAGGCCAGTGACGTCAAGATTCT -GGAAGAGTTCCGTTGACGCCACCAAAAGCAACAAAAACTTCAAATCTGAG -AAGATCAGAACAAAATGTACTGAAAGTACAAAAAGCCCGCACTTTTTTCT -CTATTAATACTACTCATTTGAAGAGTGGGGAAAAGAAAAATGTGTTGCAA -GAAATAATTCCGTGCGAAAAAAGTTTGAGAGGAATGAATGGAGCGGAACT -TTTTTTTTTGTTGGAAAATCGTAGGTGTGACGTCACTTCTCTTCCAACCC -CCAGGTTTCTAGGCCACTTAAGAATTTTGCAAAAAAATCACAGAGCAAAA -CTACAAAAAGGAAAGAAGAAATGTGCTCTTGGAAAATAATAAATATTGGT -TACGAAATAAAAGAGAAAAGAGAACGAAAAAAATAAAAAAGAAAATGGTA -ACCAAGGAGGAATGTGGAGAAGAGGCTCTTGTGAGCCCAGATATACCCAG -CAATTAGGGAGCGAGTACTACTGCCGGGAGATGACGTTTCGAGGATATTT -CTCACTGGAATGGAGGGTGGTGGAAGAGTTTTGTAAAGTTCTAGGCCACG -GGTTTTTTTGGCCAATGAGCATGGTGCATCGATGAAAAGCTATTGGGTTT -CTCGGCCACAATAAATTACAAAAACCTAGTACGATGGAGCACACTTGCAA -TAGAATTGCAAAAATTTATTTGAAAATTGAGAAGAAAGAAAATCAGGGGG -GCATAAATGCTCAACAGTGCAATCAAATTGTAGAAGAGCTTTCGCCCAAA -AAGCTAGGCCACGGAGGAGACCGCTGGAGAAAGTGACGTGTATATGGTGG -AAGAGTTTTCTTGTTTTTCTAGGCAATCTTGGGCGATTGCAAAAATTGAA -TTTATGAAAAGATGGCTTGGAAGAGCTTTCGCATAGAAAATCTAGGCCAC -GGCTAGCAATTTAATAGGGGATAGAAAACCGCGTCGGAAGATTATTTAAC -TTTTCCATAAAAATTAGCAAATTTAAGAGAGTTCAGATACTGATCTGGAA -GAGTTTTTGAGCAAAAAACCTTGGTCACGGCCAGCAACTAAAGTAGTAGG -GGAGATAGGGTACCCCGCTAATTTTTTATTTATTTTTCAAAGAAAGTTTT -AAGGTTTCGGGAAAAATTTTGATGAAATGGCTTGGAAGAGCTTTTGCCGA -AAAAACTTAGGCCACGGCCAGCAATCTAATGAGAGGGGGAGGGTTCCCCG -CTAAATTTTTTTTTTGATTTTTAAACAAAGTTTCATGGGTTCGGGGGAAA -ATTTGATTAATTGACTTGGAAGAGTTTTTAAGCAAAAAAAAACCTAGGCC -ACGGCCAGCACCCTAATGAGAGGGGGGAACATAAGGTACCCCGCTATTTT -TTTTTGATTTTTCAAAGAAAGTTTTAAGGTTTTGGAGGAAATTTGATTAC -ATGACTTGGAAGAGCTTTTGCAGAAAAAAACTTAGGCCACGGCCAGCAAC -CTAAAGTAGTATGGGAGATAGGGTACCCCGCGGAAAATTTTTAAATTTTG -GTAAACAACAATGGAAGAATTTTCCGGTTTTCTAAGCCATTGCATTTTTT -CAGCGTCACGGATTTCTGGCTTCCCTCATAAATTGAAATGGAAGAATTTG -CCGAACTAGGCCATATCTGGGGTAGATTTACGGTGCGTTGCGTGTCGCGT -CGCGGCTCGATTTTAGTTGCAAAACTAAATGTATTTGTCCGTGTGGAGTA -CACGACTTTCCCAGGAAGGTGATTGTCAATGAAGCGCAAAAAATTCTCAA -AAAAAATCCAGATTCCCGTGCAGCGTCGCAGGAGATCATTTTCAAGAAAT -CTGGCTCAAGAAGGATTCAGTAAAACAAGAAAAGAAATAAAAAAGGAATG -AAAGGTAAGGGTGGACAAGTCGGCGGGACAACTTGTCACTTGCCATCATC -ATCATTTTTCTTCTCCTCCTCATCAGCTTCTGCTGCTCCGCGAGCTCGCG -ATGACTCTTCTGAAATTCTAAACTTGGCCAACACAACGTCGGCAACGAGT -TTCGAATTTACACACACACACACATACGAAAAAAGCTCATTAATTGGAGC -AGGAGACGGAAGAGAGGGAGGAGAGGCTGCTCAATGAGTTAGAGAAGAGA -GAGAGAGAGAGAGACTGAAAGATGAAGTATAAGCAGAAGTCGTCGGGATG -ACAGAAGAAGGAGGAGAAGAAAACGTGAGAAGGGGGGATGTGGAGACAGA -AGGATATGTAAATATATTAGATTCAAGGATTACAGCAATTTTAAGGAGGC -AAAAAAAAACAACGATGCTCCGATATTTTTGGGGTTACTGTAGTTTTTGT -AGATACTTCCAGAAGTTATAAACAAATCCGAGTTTTTTAAAATTTGCCAG -AAGCACGGGTTCATTGAATTTTTCACGCTCCATTGACAATCGCCTGCCGG -ACAACGCGTGGGAAAGTCGTGTACTCCGCACGGACAAATACATTTAGTTT -TACAACTAAAATCGAGCCGCGACGCGACACGCAACGCGTCGTAAATCTAC -ATATATGGCCGAGCCAAAATGGCCTAGTTCGGCAAAAACTCTTCCATTTC -AATTTATGATGGAAGCCAGAAATCCGTGCAGAAGTTTCTCGGAAAAAAAA -CAGAAAGTTTGCGAAATGGCAACCTCTAATTCATTAACATAAATACATCA -AATATGACGCGCAAAAATGAATTAATTTACTAGTGAAACATGGTGCATTG -AAGTCGGTGTTTGCACAATTTGTACAGATCTGAGGTTCACTAACACCAAT -GCACGGCCCGAGAAGTGGTACCTGTACGCAATTTGTCTACCGTATACCTG -GACGTTTGGGCGCGTGTATCTCAAAAACGGTTGGTCCAGTTTTTTTGTGA -TGCATATAAAAAATGTCCGAAATTAAATTCTAAATTTTTTGGACCAAAGC -TTTTTTCGTTATCACGCGCCCAAACCTGGTCTACACTCAAATTATCAGTA -GAGCGCATTTGCATGGATGTACCACTTGCCGGGCCGTGTTCAAAGGGGTG -CAACGATTGCGCGTCAAATCGAATGCAACTACAGTAATCCCTAGTAGTTG -CGCTTCAAATTTGATGCATTGCACGGCCCGGCAAGTGGTACATCCATGCA -AATGCGCTCTACTGATAATTTGAGTGTAGACCAGGTTTGGGCGCGTGATA -ACGAAAAAAGCTTTGGTCCAAAAAATTTAGAATTTAATTTCGGACATTTT -TTATATGCATCACAAAAAAACTGGACCAACCGTTTTTGAGATACACGCGC -CCAAACGTCCAGGTATACGGTAGACAAATTGCGTACAGGTACCACTTCTC -GGGCCGTGTTGAATGTTTGAGAAATGTTAAAATTTTGAGTTATATGTGCT -GGAAAATTGACATGAACATGGTTTTTTTCATTATTTGCGCGTGAATTATG -GTGCATTGAAGTCGGTGTTTGCACAATTTTTTTCAGATCTGAGGTCAACT -GACACCAAAGCAACAGAGTTGACGCGCAAATTTTAAAATGCGCTTAACAT -TTGGCACGCTTTGCAGTCGGTGTTTGCACATTTTCGATTGTTGTGTGAGG -TTCACCGACACACCAGATTTGACGCGCAAAATTGTACGAAAACAGTTAGT -TAGAAAACTAATAAAAACTATTAATAAAAGTATAGTGCATCCTGAAAAAT -TATTTCTGCAAATGTATCTATAGAATTTAAAACAAAATATACAAAAAAAA -ATTATGAAAACCACGACGAAAAACCCGGAAATGTTTTTTGGGTAGCTTGT -CGATTCCGGAGGGTATTGAATTTCGCGCTCGAATAATATTGTTTCCTATT -CATTTTCCCCAGAATACCTACAGAATTTGGGGGAAAAATATGAACTGGTA -CCTAACATTAACCTACACGTTTTTTAAATAAGTTTAGGCCACGCCCAGAA -AGTAGCTGGGCGGGGTTGCAGATTTTTCTAGCTTTCCGAAATATAAAAAG -TCGGAAAAAAAGTTGTAGTCTGTAGTTTGTAGTTTGTAGTTTGTATCAGG -TTGTCCCATAAGTTTTTGTACTTTTTTTCAAATATTTTTCCAAAACTTCT -AGAAAGTTTTAAAATTTTTTCATCGTAGGTCGTGTCAAGGTCGGGTCGTC -CCCTTTCAGAAAAGATTCATTTCATCCATTTCTACTTTGCCACGATGACA -ATCATCAAACTTGAACGTCGAGACGTTAGATTGCTTCTTCTTTATGAATT -TCGTCTTGGTCATTCAGCAATGGAAGCGGAACGAAACATATGCGGTGCGA -TGGGTGAGGGAGCACTCTCTTATAATACAGCAAAGAGTTGGTTTCAAAAG -TTCAAGAACGGCGACTTCAGTCTCGAAGAAATAGAACGTTCTGGGCGACC -GGTAGAGTTAAATGAAGAAGACCTAGTGAAGCTGGTGGAGGAAGAGCCTC -GTCTTAGTCTTCGTGAAATGGAAGAGAAGCTTGAGTGTTGTCATAGCACA -ATTGCACGTCACTTGGGTCGCCTTGGTTTTACTTCAAAACTTGGAACTTG -GGTGCCTCATGAACTTTCGGCATCACAGAAGCTCACTCGGGTCAACGTTT -GTACTCAACTTCTAACTTTTCGTCGAAAGTTCGATTGGCTGAACAATCTG -GTTACTGGAGATGAGAAGTGGGTGCTCTATGTTAACCATTCCAGAAAACG -TCAATGGCTTCCGATCGGTGAGAAAGGAATACCGACGCCAAAGCCTGATC -TTCACCCAAAAAAGATTATGATCTGTGTCTGGTGGGGTGTTCAAGGACCC -GTGCACTGGGAATTGTTGCCAACTAATAAAACTATCACTGCTGATTACTA -TTGTGCCCAATTGGACCGAGTTGCAGAAAAGACCAACGGAAAATATGAAA -AACTATATTTTCTTCACGATAATGCTAGGCCTCATGTCGCCAAGAAGACT -TTCCAAAAGCTGCAAGATCTTGGTTGGACTGTTTTACCGCATCCACCATA -TTCTCCAGATCTTGCACCAACCGACTACCATTTGTTCTTGTCTCTCAGTG -ACTACATGCGCGACAAGCAATTCGACGACGAAGAGCATCTCAAAACTGAA -CTCTCCACTTTCTTCTCATCGCGTTCGCCGGATTTCTTCTCCCGTGGCAT -CATGATGTTACCTAGTAAATGGCAACAAGTGGTGGACACTAATGGTGAAT -ACTTGTGTGAATAGTACTACTTGTCGCTTGAGAGAAATAAATTTTTTTCA -AAAAAAAAATAGTACAAAAACTTATGGGACAACCTGATAGTTTTAGTTCG -TTATTTGCAAATTGTTAACGTTAGTATTAGGAGAGCCGAAATAAATAAAT -TTTAGAAAAGAAAACGAAATTATATACATAGTTCATTAAAATGTGGTAGT -TTGTAGTTTGTAGTCTATGTATTATGTCTATTCAAATTGTATTCAACATC -AAAAATTAAACAGGAAACTTATATTTAAAAAAAAAACGAATACTGAAAAA -AGGCGGCTGCATAGGAAAAAACAATGATTCTCCTCCAAAAAATAGAATTC -CGCATTTTTTCAGCGGCTATTTTCACGATGATGAGAGGAGACAACAAAAA -CATTTGAGATGAGAAATGAGGGGAATATTGCACAAAAATTGGGAAATGAT -TTTTTTTACTTTATACACAGTTAAAATGCGATGCGCGCATAGTGTTTTTG -GCGTGGATCGCGAGTGGGAGAAAAAGGAACCGGAAATGATGCGCATTGTG -CGTCCATCGCGAATTTGAGATGCATTGTGCGAGCATCGCGAACATAAATA -ATGGGCACATTGTGGATTCTCCTTTCTGATAATATTTTACTCTCTATGGC -TTCACCAATTATCTTTCTCTCTGTGGCTTCCCACTATATTTTACTCTCTG -TGGCTTCACCAATTATTTTACTCTCTGTGGCTTCCCACTATATTTTACTC -TCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCACCAATTATTTT -ACTCTCTGTGGCTTCCCACTATATTTTACTCTCTATGGCTTCCCACTATA -TTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCAC -TATATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTC -ACCAACTATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGG -CTTCCCACTATATTTTACTCTCTGTGGCTTCACCAACTATTTTACTCTCT -GTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCACTATATTTTACT -CTCTGTGGCTTCACCAACTATTTTACTCTCTGTGGCTTCCCACTATATTT -TACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCACTAT -ATTTTACTCTCTGTGGCTTCACCAACTATTTTACTCTCTGTGGCTTCCCA -CTATATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTT -CACCAACTATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTG -GCTTCACCAACTATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTC -TGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCACCAACTATTTTAC -TCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCACTATATT -TTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCACCAAC -TATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCC -ACTATATTTTACTCTCTGTGGCTTCACCAACTATTTTACTCTCTGTGGCT -TCCCACTATATTTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGT -GGCTTCCCACTATATTTTACTCTCTGTGGCTTCACCAACTATTTTACTCT -CTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCACTATATTTTA -CTCTCTGTGGCTTCACCAACTATTTTACTCTCTGTGGCTTCCCACTATAT -TTTACTCTCTGTGGCTTCCCACTATATTTTACTCTCTGTGGCTTCCCACT -ATATTTTGCTCTCTGTGGCTTCCCTCTATATTTTACTCTCTGGCTTCACA -GTATATTTTATTCTCTGGCATCACAATATATTTTACTCTTTGGCTTCGCA -GAATATTTTACACTCTGGCTTCACAGAATATTTTACTCTCTGGCTTCGCA -GAATATTTTACTCTCTGGCTTCGCAGAATATTTTACTTTTTGGCTTCACA -GAATATTTTACTATCTATTAATCTATTTCTTCGTATAACAATCTATTTTT -TCGTATAACAATCTATTTTTTGTATAACCAACTTCAAACTCAACTTTTCC -AAAACTACAGTAACCCTACAGTAATTCTACAGTACTCCTAAAACTCCCCG -CAACCTGCAGTTCAATGACACCTCGTTTTCTCACGCGTGACTCATGACTC -ATTAGCTTACATTTCCTTCATCCATCGGTGGTGGGGCGCTGTGTAATATA -CAAGAAGAGACACCACCACACGCTGCTATTTCTGCTGCTGGTCTGTCTTC -GTTTACAGCCACTTATGACTCAGCACTGCCATCAATGACTACTTCCTTCT -TTTTTATCTTTTCGGCTTCATCTCGAGTAGCAAATTTAACAAAATTCAAT -AGGTGTGACGTCATCAAATGCCTTCGTGGCCTAGAAATCCAAGATTTCTC -TCGAAAGGATCAATGTGATGTCATGGCCTAGAAAACTCCAGTGTGAAACC -TAGGCTATGTTAAATAGTCTTGAAAACTCTAAACTGAAGCACATAAGGCT -ATGATGTCATCGCCTAGAAATCCCAATTCTATGACGTCATGAAAGACCTG -AACTGCACCGAACCTAGGAATACCCTCAAAAGGGGTGCTGTGAAGTCATG -TCCTAGAAAACATGAGTGCGAAAACTAGGCCGTAATCTACCATGTGGTAG -ATCATGCGGCCCTATTGATGGCCTAGAAAACTTACAGCTTGAAGCTATGA -CGTCACGACCTAGAAACTCAATAGTTGTGACGTCATCAATGACCTAGGTG -TATCTCGAATGACGCAGTGTCTTCTAGAATTTTCTGAATATCACACAAAA -GTATAACATCTTCTTGAAACCAAATAATTTTGTTGTAACACCCACACAGT -ATTGTAACAAATGATATAATAGCGATCGGAACATTCGAGAAAACTGGAAA -TTTGAGGTCTGACCTTGTTCGGGAAACTTACCAGTGATTATGAGGTGTGT -CGAAAAATGTGGCCTAGAAAATGGGAAAACTCTTCCTTTTTTTTTTTAAG -TCCAGAATTACGTTTTTGAGAACGAGAAGTGCATTTCATTTTTGTTAGGT -TGGAAATTTAAAATTTAAATATTCGTCTCCTAGTTACAGCCGTGGAAGAC -TTTTTCAGAAACTTTAGCCACGTGTCGAAGTCTGGCGGTGCCCACGATAT -TAGAGAATGTTGATATTTCCTATTTACTTATCTCCTCGAAATTTTAAGAT -TAAAGTTACTACCGTTAAGTTACACTGGTGGAAGAGTTTTTAAGATTTCT -AGGCCACGGCAAAGTTTGGGTGTGCCAGTGACCCTAACACTAAATTTTTA -AATTTTTTTCAGCCAAATCATCATATGGTGGCCTAGAAAATTTAACACCT -GAAAACTCTTCCATATTTTTTTAATTTCTGAAATCCAACAAAATAATTTT -CAAACTCCTCTTCCTTTTTTCCAGAAAAATAAATTAATGTAAATCAAGTT -CATCTCCGATGAGTTGTAACGGTGGAAGAGTTTTTCAGATTCCTAGGCCA -CGTCAAAGTTTGAGGGCTTCCCGTGACCCTAACACTAAATTTTCCAATTT -TTTCAGCCAACCCAAATCAGAAGCTTTCTCTTTGTGTAATAACATGACAA -TGGGCTATTATCATATGAAATTTTTTAGGTTAAATTTCTGAGGTCATTTG -CAAAGGTGTCATGACTAGTTTGGAGGCTTTTTTGTGACGGTAGGGGTATG -AAACAGGTTGTTACTTCTCGAAAAGGTATTATGTGGGGGAGAGGAGAAGG -AAAGAAGGAAGGCAGATTAGCCAACAGAGATACAGCAAATTTTGTGTGAG -TGGTGGCAGTTTTGAGAAGAAGCCATGCGCCAAGGTCGGTTTGCCTTCTG -TTTTCTCATTTTTCGGTTTTTTTGTGAATTTTTGTAAATTAAAAATATTT -TTTTATAGAAATAAAAATTCAGAAAAAAATACTGGAAGTTTCGTTTGCCT -TCAAACATTTTTTAAAAATTCACAGTTTTTCAAATAGATGTACTTACACG -TGGTGTCAGAGTATCTCATTTCGGCTTGATCTACAAAAAATGCGGGAATC -TTTTGCCCAAAAAAATGTGACGTCAGCACGCTCTTAACCATGCGAAATCA -GTTGAGAACTCTGCGTCTCTCCTCCCGCATTTTCTGTAGATCAGCGTAGA -TCAAGCCGAAACGAGACACTCTGGCACCATTTTATTTTTTTGGGCAAAAA -ATTCCCGCATTTTTTGTAGATCAAGCCGTAATGGGGCAGCCTAGCCCCAC -GTGCACTTATTCCTTATGCCGAACGACACTCCGATATCCCGTTTTTACAG -TATGACTGTGGGTTACTGTACCATTTTTGGTGCTTTTGTAATATTGTTTT -CTTTTTCAAAAACCTAGGAAAAATTTGAACAATTGTTTTTTTTTAATATT -TGAATTTTTTAGGCTCCCACACATTTTTGCGGGATATCGGAGTATCGATG -TAAACGTTTTTTTTTTGGTTTTTTGTATTAAAAAGGGTTTAAGTGTTGTA -ATAAGACATTTTGAATAAAAAATAGCTAGCGCCGCCACGACTTACTGGCT -TCCCTCCTAAATAAAAATGGAAGAGTTTTTGCCGAACTAGGCCATTTTGG -CTCGGCCGTATCTGGGGTAGATTTACGGCGCGTTGCGTGCCGCGTCGCGG -CTCGATTTTAGTTGTAAAACCTAATGTATTTGTTGTCCGTGTGGAGTACA -CGACTTTTCCACGCGTTGTCCGGCAGGCGATTGTCAATGGAGCGCGAAAA -ATTCAATGAGGAAGGCCAGGACACCGATTCAAAGATATAACGGCCCACAT -TTCAACAGCGGTATATCGGAGTGTCGTTATTTTAAGCTTGCACACGGGCT -TCTGGCCTTTTTCATTGCTTTTTCGCGCTCCATTGACAATCGCCTGCCGG -GCAACGCGTGGGAAAGTCGTGTACTACACACGGACAATTTTTTTTAAGTT -TTATAATGAAAACCGCGACGCGACACGCAACGCGCCGTAAGTCTACCCGG -GCCGAGCCGACACGTGGTGTCAGAGTGTCACATTTCGGCTTGATCTACGT -AGATCTACAAAGAATTTTGCATGATTAAGAACGTGCTGACGTCACACTTT -TTTGGGCAAAAAATTCCCGCATTTTTTGTAGATCAAACCGTAATGGGACA -GTCAAAATGGCCTAATTCGGCAAACTCTTACATTTCAAAATATGAGGGTA -GGCAAAAGCATGGGGAATTTGTGATTAAATTTTTGAAAAAGGAAACAATT -TTTTCCAAATTTCTTCTGAAATTTTTTCAAAAATAAATGTTTTTTTTCCC -TAAAATCTTCAAATTTCTAGTTTCAATCTCTCACTACCGTGACCAAAAAT -TCCTATGATTTTTGACCTCCCGCCACACAGTTTTACCACCAACTTCTTCC -CCCCCCACCCACCCACTTACTTCTCGTATCTGAAACTCCGCCCCATTTTT -CGTGTACTTTACTACTACTTGAATGATGATGAGGTAGAACAAATCTGTGT -TTATTGGCAGAAGCAGTGGTAGCAACAGGAGAAGAAGAAGAAGCATCACT -GTGTGGAACCAGCCAGCTGTGTTGTTGTGGTTTTAGTCGTGGAGAGAGAG -AGGACGACGTCGTGTGTCTTCAATAAAATGAGGATCTCATCGCTCTTATT -CCTGACTTTCTTGGCTGGAATTGTTCAGGTAAGCTGGGTTTTAAGTATTG -ATATTGGTGCTATTTGAAAATTATTTCAAAAATTTTTGGAAAATTTTTTT -TTTTTGGCCCAAAAATTTTTTTTCTAGAACTTTATCATTCCTAGGCATAC -TCTAAATATGTCTGCAAATATTATTTTTTCTGGAAAATTTTGAAAATGTA -TATATGGATATATGCAAGTTTGGAAGTTTTTGTAGTATTATTTTGAAAAA -TTATAAATTTTTTTAAAAAAAATTTTTTATAAATCTAGCAAGAAACGTTT -TTAAAAACAATTTTAGTCAATTTTCTTTTTTTTTTTTTGGAAATTTCACC -AAATATCGGCCCAAAATCTATGCAATACTATTTTTTCACAAAGAAATTTT -CAAAATTTGACATTATACAGATCTAGGGCTTCCATGGTAGGCAGGCGCGG -TTTCAGGGACCTGCCTGAAACCTACCTGGTTGCCGCCGGCCTTAATTTTT -ACGGGAATTTAGAAAAATTTCTAATTTTCTCATTTCTATCAATTTGATGA -AAACCAAAATAAATTGGCGAGAGGCAGGCAAAGGTTGCCTTAAGGTCAGG -CAGGTAGGCGTTTTAACACCTACCAGCTTTACAAAAGCACTATACAAGTC -TGTTTTTGAAATCTCTAGCTTTAAAAATCTTTAAAACAAGACATGGTGCA -AGACAAGACAAAGACATCGACAAATTTTCGACAAAATTAATTTTTTTCGA -AAAACTTTTAGTTTCTTCCAAATTCGCCAAAGTGAAAAAAAAGTTCCTAA -ACGTGAGATTTTGTATGTCTTCTACACATACTAGCCAATATCAATTACAA -TATCTGCCAAGAAAATCTCGAACCAAACACCAAAACGGCGTTTGGTAACC -GGTTTTTTTTCCAAAAAAACTATACATAGTTTCTAGTAAACAAATACGAA -TGGAAAATTCAAGGTGACAGAGAAGAAAAAAAGATTAGAAAAAAAATCGT -TGGTGGTGGCCTAAGAATTGCATGTAACGTCACACCTCGGCCAGGGGTCA -TGGTACATGCTACATGATTACCCATGGCAAAAGAGTGACGTCACTCTCGG -CCATGATTTTTAGGTTTAGGCTTAGGTTTAGGCTAAGGCTTCGGCTTAGG -CTTAGGCTTAGGCTTAGGCTTAGGCTTAGGCTCAAGCTTAAGCTTAGGCT -TAGGCTTACCTTATGAGCCTATAAGCTTTCTGAAAAAGACAAATATTAAA -AAAAAACCAAAAAAAAAAAAAAAAAAAGACAAACAAACAAATAAAAACAA -ACAAACAAATAAAAACAAACAAAATATTTGAATTTTTCTAAGAAGACAAA -TACGTCACTCTCGGTCACGATTTTTGGGCTTTAGGTTTAGGTATATGTTT -AGGCTTAGGCTTAGGCTTAGCCTTAAGCTTAAGCTTAGGCTTAGGCTTAG -GCTCAAGCTTAAGCTTAGGCTTAGGCTTACCTTATGAGCCTATAAGCTTT -CTGAAAAAGACAAATATTTAAAAAAAACCAAAACAAAAAAAAAAAAAAGA -CAAACAAACAAATAATTTTTCAGGCCCAAGACTTCCTTGCAATGTTCAAG -CCGTTCCTCGGAGGTGGCGGTGGTGGCGGTAATCCGTTTGCAAATCCACA -GGCGATCGGCGTAAGTTTTCCGACAGGCAAACAGACAAACAGACAGACAA -TCGAAAGTGGTCCAGGCGCTGAATGTGTTACGCAATTGGTTTTGGGCGCC -ACGCGCGCATATTATTTGCATATATACATACATCATTCAGATAAATGGCA -TTGAAAACGAACAAAAAGTGAAGATTTAGTGGGTTGGCAAATGCATTTTA -TGTTTCTTTTCCAGGGTCTCTTCCAACAATTCGCCGGTGGAAATGGTGGA -GGATTCGGGCAGCTTCTTGCTGGAGCAATGGCACCGGTATGTGTTGCGAC -GTTTAAAACGGAGTGTCGTTGTGAAATTTTCCGCTTTGGAAAACATTGAG -AATATTCGAAAATTTTTGTAAAATTTTGAGATTTTCTTTTTCCAAGCTTT -GGGCTTAGGCTTAGGCTTAGGCTTAGGCTTATGCTTAGGCCTATGCTTAG -GCATAGGCTTAGGCTTAGGCTAAAGCTCATGACTAGACTTATTCTTAGAT -TTAGGCTTAAGCTTAGGCATGGCCTTAGGCTTAGGCTTTTGCTTAGGCTT -TTGCTTAGGCTTTGGCTAAGGCTTAGGCATAAAAAAAGAGAAATTCCCAA -AGTAAAAAAAAAGACAACTTTTGACAAATTTGAAAGTGAAATGTTATATT -TTAAGCCTATTTTTTCCCTAAAAAGAAAAAAATTACTTTTATAGTTTGAA -AACGATTTTTTGGCAGTGTTTCAGCAGTCAAAAATATGGCTGAAAAAAAA -AGTTGATTTCAAAATATTTTTCATCTCAATTAATTCTTTTAAATTTGCTC -TACCAAATTTGAAAAAAATATTGAAAATTATTTTAAAAAATTTAAATTAT -TAAATTTCAAGTAAATTCGAAAATTTTGTTTATTTATTTTATGTTCATTC -TTACAATATAAATTATAATCCTCAAACATTCCAGAAACCAGCACCAGCCG -CAGCTGGACCCCGCTCAGCTCCAGCTCCAACCAACGAGGACTACAACACC -GACATCGACGTTCCAGCTCCAAAGGCAAAAGCCCGTGCAGCTCCAACTCC -ACGAAGAGCACAAGGTGATGATGATGATAATATTGATATGTCTCTGACAC -GTCTTGGCTAACTTGGCTTGGAAAAGCACAATTCCTTTAATACAAAAAAC -TTTTCTCAAAGATTCTCAAAATTTTGCACTTTAATTTTTAAGTTTAATTT -TTAAAAAGTTGTCTCACGTTTTTTAACCAATTTATATGCAAATATGATCC -TTATTACTAACAATATTTAGTAATCTAAACATAAATTGGAATATTTGGTC -TTTTTCCCGCCGAAAATGATCAAACATTCCGAAGTTAGCAACAGAAAATT -GCAGTGAATTGTGTTGGTTTAATTTTACCGTCGTTTTTCATATTTTTTGC -CCGATAGCTTTGCTGTGTTTTGTGCCATCCTTTTCTCTGTGATATACTGT -TACTTACTTCAATAAATGATTCTTTTAAAAGTTTTCGCACAAAAAATTTA -GAGTTGCTGGCAAAAATACACGCCGACACGTGGTGCCAGAATGTCTCATT -TCAGCTTGATCTACGTTGATCTACAAAAAATGCGGGAGAATGGAGACGCA -GAGTTTTCTATTGATTTTGCATGGTTAAAAACGTGCTGACGTCACATTTT -TTTAGGCAACAAATTCCCGCACTTTTTGTAGATCAAGCCGTGGTGGGACA -TCCTATCCCCACTTGCGCTGGGGGGACAAAACCGACATAACTTTTGAAAC -ATATTACACATATACATTTAATATATGTTTTCTGAGAGAAAACGTTTTAG -AAATTTTAGAGAATTTCAGCAAAAAAATTCTGATAGCTTTTTGGAAATTT -ATATTATAAAATTTTTTTTTTTTTTTAATTCTGATTTTTTCAAAAAAGAA -ATTTTGCAAACCGCTTCCAGAATATTTGCCTGTCTCAAAATACCCTAAAA -AACATTAAAATGTTTCAAAAATTATCTTTTGGAACAATTTTACGGGTCAC -GCGAAATACTTTCTTTGTAAGTTTTTTTTCTTTGAAATTTAGATTTATTC -CCAATATACGTAAATTTTTCACTGAAAGTTAGAAAATTATACTTGTTTTT -TTCCAGAAATTGAAATGTACATGATACAAGGCTGCTACATTCCAGCAAAA -TCTGATAAAATTTTAGAAACAATTTTTTGTCAGAGTCTTGAATATTTGAG -CTATAAGTTTTTTTTTTTCAAAAAATTAATCCAGTTTGGCCTAAAAACTT -AAGGCTAAGATTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTCAGCCTAA -GCTTAAGCCTAAGCCTAAGCCTCAGCCTAAGCCTAAGCCTAAGCCTAAGC -CTAAACTTAAGTCTAATCCTAAGTCTATTCACTAAAATTTTGACGTAAAA -CTTGGGACTAAAAATTTTGGACACAAATTTTTTACCTAATTTTTTGGTCT -AAGCCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAA -GTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGT -CTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCT -AAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAA -GTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGT -CTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCTAAGTCT -AAGTCTAAGCCTAATAAGCCTAAATAGGGTCTAACGCTTGCCACTGACGC -CGCTAACGCTCGCCACTGAAGCCACGCCTAAGCCTAAGCATAAATCAATT -TGAAACTTCAGACTTAAATTTCTTGGTGGCCTATACGACTCTCTGTTAAA -TTTCGCTTTGATCAGCAAACGGGAACCCTTTGAAAAATTAAAAAACTAAC -GCTCGCCACTGACGCCAAGTCTAAACCTAAGGGTAATACTAAGCCTAAGC -CTAAGCCTAAGCCTAAGCGTAAGCTTAAGCGTAAGCGTAAGCGTAAGCGT -AAGCCTAAGCCTAAGCCTAAGTGTAAGCGTAAGCGTAAGCCTAAGCTTAA -GCCTAAATCTTTCGACAAAAATTTTGACCTAAAACTTTGACCTAAAATTC -GAGACTAAATATTTTGGACTCAAATTTCGGCCTGAATTTTTGGACTAATT -CTGGGAACTATTCCAGAGTAATTTTAACAAATTGAAAACTTTTTATAGTA -TTCGTAAAACAAAAAATAAATGCAATGTTTTCAGTAATAAATTTGAAATT -TTTGAAAAATTAAATATTTCTTCGAAACTTCGAAACTTCCTTTTCTCTGG -CATAACCCCAAATTCCAGCCGATGCCCCGCCAGTATACCGCCAGCCTCGC -ACAAAAGCCGAAAAAATCGAAAGATTCCGGAATATCGCTCGGACATTCTC -GCCGTTCGTGTACGAGGTGAACACCACACCAGCTCCTCACTTTGACAACT -TCATCTGGCAACAAAATGCACCAGCTGTCACACCGGAGCCATTCACATTT -GCTCCATTCTCCTTCCCAACTCTTGCCACCGTCGCACCACCAGCTCCAGG -ACCCGGCGGCCCGACTCTTGAGCCATTTTTACCGACGACAGCTAGTCCGA -AGCTGTTAGCTCATAACACTGCTAGGGTATCAAAAAATTTGAATACTGAA -TACCTCCCTATAACTTTTTCAAATTCCAGATGATCCGAGAAATCGCTTCA -TTTTCCGACGGAGGACGCTCCAGGGATCAGGATTTTGGCGCAGTTCAAAC -GCTCATGCAAGCCTTCTTCGAGGCAGTCTCCAGTGGAAATAATGGTGGAG -CAGGAGCTGCCGCCGGAGCCGGAACAGCTTTAGGAGTAGGTTAAGCTCAC -TAAAGAGGTCGTGAAGTTTTACTATTTTTTAGGATGCTCCAATGCTTCAA -GCCCATCGAGATGGTACCGAGTTGGGAGCCAATCGCGCGCTGACCAACAA -GCTTTTCGAGTCGGATATGGTGTTGACGGTCAAGCAGATGAAGGCGTGAG -TGTGGGGTACTGTGCAATAAGATTATTGTAGGGGTACTGTAAGATCTCTG -TAGGGATACTGTAACCCTACCGTGATATTACTAAAGGGGTGCTGTAAGAT -TACTGTAGGGGTACTATAGGATTACTGTAGGGGTACTGTAAGATTACTAA -AAATATACTGTGAGATTACTGTAGGGGATGCTGTAAAATTTCTCTAGGGA -TATTGTAGAATTACTCTAGGGATACTGTAGAATTACTGTAGGGAACTGTA -AGAGTACTGTAGGATTACTAAAGAAGTACTGAAGGATTACTGTAGGGGTA -CTGTAAAATTACTATAGAGTACTGTAAGATTTCTGTAGGGGTACTGTAGG -ATTACTGTAGTATTACTAAACAAGTACTGAAAGATTATTGTAGGGGTACT -GTAAAACTACTATAGAGTACTTTAAGAGTACTGTAGGATTACTAAAGAAG -TACTGAAAGATTACTGTAGGGGTACTGTAGGATTACTGTAGTATTACTAA -ACAAGTACTGAAAGATTACTGTAGGGGTACTGTAAAATTACTATAGAGTA -CTGTAAGATTGCTGTAGGGATACTAGAAGATTATCGTAGAGATACTGTAA -GATTATTGTAGGGGTTCTGTAAGATTTCTGTAGGGTTACTGTAGAATTAC -TGTAGGGTACTGTAAAATTACTGTAGGGGCACTCTAAGATTACTGTAGGG -ATACTGTAGAATTACTGTAGGGTTACTATAAGTTTACTATAATATTTCTG -TAGGGTACTGTAAGATCACTGTAGAGGCTACTTTAAGATTCCTGTGGGGG -CACTGTAACACTACTGTAAGATAACTAAAACGGTACTGCAGGGTACTATA -AAGCGACCACCCTAGATTCATGGTTATTTCAGAATTGTGCTCGCCGCCCA -AGAGGCCCGTAACCCTCACGGACGTAAAAAGCGAAAGGTGATTACGGGAT -CCGTGTACCGATGGAAGAGTGTGATTCCGTTCCGATTCAAAGGTGGCGAC -GCGAAATGGAAGAAGCTGATCCGTGAAGGCCTAGGCCTATGGGAGAAGGA -GACGTGTGTGCGATGGAGCGAGAATGGCCCCGGCAAGGATTATGTGATCT -TCTTCAGAGGATCTGGGTGAGTTGACATGCCCATGGTTTTCGGATAGTTT -GGGTTTTTTTTCAGATGCTACTCATCAGTCGGAAGAACCGGAGGATCTCA -ACTTATTTCGATTGGGTATGGCTGTGAAGATGTAAGTTTTAGTATTTCTA -CTATACTATTTATTTTAAATTCAAATTTTCTAGAAAGGAATCGTTGCTCA -CGAAGTCGGTCACTCCCTAGGCTTTTGGCACGAGCAGTCCCGTCCGGATC -GGGATGACTACATCCATTTAAGAAAAGACTGGATTATTAAGGGAACCGAT -GGAAACTTCGAGAAACGAAGTTGGGAAGAAATCGAGGATATGGGCGTTCC -GTATGATGTCGGAAGTGTCATGCATTATGGGTCGAATGTAATTTTAAATT -TTGAGTCGGTAGTTTTTAGATACTGAAAATGATTTTCAGGCTTTTACAAA -GGACTGGGACCAAATTACTATTGAGACCAAAGATAGTAGATATCAGGGAA -CGATTGGTCAACGCCAGAAGCTTTCGTTTATCGATGTTAAGCAGGTTAAC -AGGCTTTATTGCAATTGTGAGTTGTTATGCAAAAATGAAAAAAATTTGAC -CACTGAGCGGATCGAACGCCCAACCTTTCGATCTGGAGTCGAACGCGCTA -CCATTGCGCCAAGCAGTCACATTTTGTTGCAGGAAACGGTGTATAGAGGA -GAAAAGAAAAAAATAGACAACCCTACGTTTTATCAGTGGAGCGCGGTTGC -AATTTAACATTCCAATTTTCAGCTGTTTGCCCGGTTGCCTTACCCTGCAT -GCATGGAGGATACCCCGACCCCAATAACTGTGCGGTTTGTAAATGTCCAG -ACGGGCTCGGAGGAAAGTTGTGTGGACGTGCCGCAAAGGGCACAGATCAT -GGTAAAACTCCACTGGAATTTATGGGAAAAAACCGCCCTAAAATTTTCAG -ACAAATGCGGCGGTGAGCTAACAGCGACCGCCGAATGGCAGGAGATGGTC -TACAAGGGGAAGCGGACGTGCAATTGGAAGGTGAAGTCGCCGAGCGGTGG -GCGGGTTCGGTTGGTGCTCACCGAGCTCAGGTACCAGTGTGCACCGGCGT -GTAAGGCCTACATCGAGATCAAGCATAATACCGACTTCCAGCAGACCGGA -TTCAGAGTTTGGTGAGAACCCTAGATTCCCAAAAAATTCTACACTTTTTT -CAAAAAAAAATCGAAATTCGACCCATTTTGGCGGGAATTAAAATTCTTTT -AAAAATGACAAAAAAAATATTTTTCTGCAGAAAATTTTTCGACTTTTTAG -AAAGCAAGCTTTCACGCGGTTTTGGCTTCCCTCATATATTGAAATGGAAG -AGTTTTTGCCGAACTAGGCCATTTTGGCTCGGCCATATCTGGGGTAGATT -TACGGCGCGTCGCGGCTCGATTTTAGTTGTAAAACTAAATTTAATTGTCC -GTGTGGAGTACACGACTTTCCCACGCGTTGTCCGGCAGGCGATTGTCAAT -GGAGCGCGAAAAATTCAATGAGAATCGAGCCGCGAAGCGACACGCTACGC -GCCGTAAATCTACCCCAGATATCGCCGAGCCAAAATGGCCTAGTTCGGCA -AGCTCTTCCATTTCAATTTATGAGGGAAGCCAGAAATCCGTGTAAATTTT -TAATTTTTTGTTGCTTAAAAAAAAAAACTAAACAACTATTTTCCAATTCA -AATTTCTAGCTGCTTCAACAAAACATATGACGTCATCTCCGACCAATCTG -AAGCCCTGATCCTCTCCAACGCGAACATCGTGGACTACGAGGTCTCCTAC -AAGCTGCAATGGATTCAAGGTACCCCACCCCCCCCCCCTTTTCTATCCAT -AGAGCGCACTTTCTTCCAGACAACGGAAAAGCTCTTCCACCACCGAAACC -CACGTCGACCTGGGTGCCCGGAAAAGAGAATCGACCATTCCGCGGAGTGG -AGAACTCGGGCGGCACCATCGAAAAGTTCATCCTGCAAGCGATCCCAAAG -ATCCGAGACTCGCATCGGCCACTGGAGAGTATTACTAGTATTGTTGCGGA -ATATGGTCTCGCAACGCTACTTGGTATATCGCATAATGGAAAGTAGTCCG -TTTGGAACGATTTTTGCAATCGTCAGAGGAATATATATATATATTTGTAA -ATTTTGTACCATCCCAAAAATCCAATTTTTCTTTCACAATTTTCAAAATT -TGCTCATCTTTCACAATTACTCGGGTTAACACATTTAATGCCTTTCAATA -AATAACAGTTCATATTTAAAGTGATTATTATATTACAGGAACACATATAT -CTGAGAATGCGTATCGCACAACATATTTGACGCGCAAATATCTCGTAGCG -AAAACTACTTTAAAAGACTACTGTAGCGCTTGTGTCGATTTACGGGCTCC -TTTTTTGAAATTTACACGGTTTTCTGGCTTCCCCTCAAAAATTGATATGG -AAGAGTTTGCCGCGAACTAGGCTATTTTGGCTCGGCCATATCGTTCAAAA -ACTACAGTAATTCTTTAAATGACTACTGTAGCGCTTGTGTCGATTTACGG -GCTCCATTTTTGAGATTAATTTTCTTTCGAGTTCCCTTCGTTTTTTTTGT -AATTTTTTGCTTAATTTGAATTTTTTTTTGATAAATTAAAAAAAATGATT -TTACACGGTCTCCTGGAGTGTTCATAATTATTGGAGCGCACTTGCTGATC -CTTGCCGCGCTTATTTACTTTTTCACCGTTAGAAAATGAGTAAAATCAAC -GATTTTGGTCAAGAAATTTAAAATAAAATTATTAATTGATTTCAAAACCG -AGTCCACGTGGTGCCAGACTGCCCCATCACGGTTTGATCTACAAAAAATG -CGGGAATTTTTAGCCCAAAAATGTGTGACGTCAGCACGTTCTTAACCATA -CGTTGAGAGTTGAGAATTCTGCGTCTCTTCTCCCGCATTTTTTGTAGATC -TACGTAGATCAAGCCGAAATGAGACACTTTGACACCACGTGCGAGTCCGT -AAATTGACACCAGTGCTACAGTAGTCATTTAAAAAATTACTGCATGTCAA -AATTAAAATTTCCTGTTCCCGTAATATCGGATTCAGCACGCCACCCTATG -AAAATACCAAAATTGGAAAAAAATCAATAAAAATTTATTTTCACGGAAAA -AAAATTGAGACCACCTTTTTGTTTTCTATCTATATAAACCCGTTGTTTTT -CACAAAAAATTATTGAAAATCCTTCAAATCATATTATTAGTTCGAAACGT -CGACGCGTAGGTGTTCGATCGTACACTGCCGGGAATTGCCGGTTGCGGGA -GTTTCGGCACCGCCGGTTGATATCCTTCTTTGCTAACTTTTGATCTGAAA -ACATTGACTTTTGCTACGTGGCCGTGGAAGAGAAAACTCGGCCACTATGT -TTGTTTTTGCGACAAGGGTATATGCGCAAACCTACAAAATGATCTTCAAA -AAATGCGCGAATTTTTTGCCCAACAAAATGTGACGTCAGCACGTTCTGAA -CCGTGCGAAATCAGTCCCGCATTTTTGTAGATCTGCGTAGATCAAGCCGG -ACCACAAAAATATCAAAGTTTTGAATTTTTCAAAAAAAAAGCACTTACGA -GGATCTAGTCAGCTTGAACAGCAAGTAAATAAGACAAAACGCGCACATGA -TGAAGCTCAAAAGTAGATCAAACGAGAACTTGGTCGCCGAGACCGCATTG -AAACTTCTGTCAAGTGAGAGAAACGGTTGGGTGGCATCGTTCACAAATGA -AAGCATGTAGAATAGTCCAGCAATCGGATAGACTGCCGCAATGACTCCGG -CAAACCCATTGACATCCTGCTCATCAGAGCCCAGAAGCCGGCAGCAAGCA -GACGAAAGAGCAATGGAGCTGATGAGGAATAGAATGAGCTCCCGGCAGAA -GTTGAAGATCCAGTCGGTGCCCGGGCTTGCTGCTCCGATGAAGCAGAGTC -CGGTGAGGGGATTGGCGGCGACGGCTTTTGCGAGTAGCGCGAGCATTAGT -GGAGCCAGCGGGATTCCCAGGATGAGCATGATCACGCGGGTTCTGGAGTC -GTCCTGGAAGATCATTTTTTAAAATTTAATTTTTGAAAATTTATCATGTC -TGGAAAAGGTACAGGCTGACTAGACCTATTTCACGTGGTGTCAGAGTGTC -TCATTTCGTCTTGATCTACCATGATCTACAAAAAATGCGGGAGAAGAGAC -GCAGACTTCTCAACTCTCAACGTATGGTTAAGAACGTGCTGACGTCACAT -TTTTAATGTACAAAAAATTCCCGCATTTTTTGTAGATCAAACTGTAATGG -GACAGCACAAAATTCAAAGCCCTCACCAATATATGCGATGTCCTTGTCGC -CTTATTCCACGACACACAGATCAAGAGCCACCAGAGACGTGAGCAAGTTG -CCGTGTAGTAAATCAGTGAGGCCACTGAAGAACATGGAACATGGGAAAGC -CCTCCGACGACGAAGAGCAGGTGATGGGTGTAGTCGGTGCACGAGATTTG -GAACTTCAAAATTCTTTTTGAATGGCTCAAAAATATTGATTTTGAGCCAA -GTTATGACCATTTGAAGTTGGTGGCCTAGGATTTTCCTAGGAGTATTCTA -GGCCGCCAACTTTGGACAGCCATAACTTGGCTGAAAATCAAAATTTTTGA -AATCTAATTTCACAGTTGAATTTAGCAGACCATGAGCTTCAATTTGACAT -ATTTTTGTGCCTTGCCACGAAAACTCGCAGACCTACAGTAATCCGGCCAA -AATTAATGTTAACTGAAAGCTCAGAGTCTGCTAAATTTAAATACAAAGTT -CGATTTCCAAAATATCGATTTTCAGAAAAATTATGAAGACTCTAAGTTGA -TGGCCTAGCATTTTCCTAAGAGTATTCTAGGCCGCCAACTTCAAACGCTC -ATAACTTGGCTCAGAATTAATATTTTCGAGCAAAATAAAAAGAATTTAAC -ATAAAATCTTGTGATCTACCGGAAACTAGATGAGCGCAATTTTAAATATC -TAGGCCACCAAGTGAAAACCGTGACTCGGCTCAAAACCATTATTTCTGCT -TCAACCAAAAACCAATTCATTTATTTTAATTGAAAGCCCGGTGTCGGCTC -AATTCAAATACCAAGTTTATTTTCAAAATACCAATTTTCAAAAAAGCTAT -GAGCGTTCTAAGTTGGTGGCCTAGGATTTTCATAGATTTTCTAAGCCACC -AACTTCAAACGCTCATAACGTGGCTTAAAATCAATATTTTCGAGCAAAAT -AAAAAGGATTTAATATAAAATCTTGTGATCTATCGGAGAATGCATTTTAA -ACTTTCTAGGTCACTAAGTAAAATATTCGGCCACCAAGCCTCGGCCGAAA -ATTATTATTTCTGCTGAACCAACAACCAAATTCTCCAAAAACTGCTTACC -TGATCTTTAAACGAAATGCTCACAATATAAATAACCGATGTCGCACAAAA -CGAGATGCACGAGAAGAACATGGCAGTTTCCGTAAGTGAGTGGAGCATCT -CGAGACGTCTAAAGTAGATCCTGATTTGTTTTTGGAAAATTAGGCCACAC -ATCACACAATCCAAAACTTACGATAAGCCGACTATGAAGACTGATAGAAT -TGTTAGTATTACAGAGCTCAGCGAGAGAAACAACAAGAGTCGGGTGGCGG -ATTCACGGTCAGTCTGGAAATGTACTCATTTGTTACTGAACTAGGTCTAC -TTAAGCCTAAGCCTAAAGTAAGCCTACCTGCCCAACCTTCTGTGGGTTCG -AGCACAAAGGCACACACTTTGAGGATCGATTCAGGAACACCTCATCCTGT -GGGCATTTTCCGTTGAGGCGGTCGACCTCCCGTTGAATATCTTCTACTCG -ATCATTACCGTCGTCCTCCTGGAAAAGAAAGATGATTGATTTGAAGCTGT -GTATCTAATTACCCCCGTTTGATGATATAGGACCGGAGAGATTACAATCA -GATGTTCTCTGTTTTTCTCTGTTTTTTGGTAGCTAGTATAGAAAACTATA -GAGTACTGTAATTCCTATTTGGGAGCTTGGTATTGTGCTATTATCAAAAA -AATACAATTGCACAAATTTCTCATTGATCTACCTGTTGAACTTGACTCCG -CCCCCAATCTTGTTACTGTTATTATTAAGGTAGATCAAAAACACAAGGAA -GATCAAAAATAAATTACGAGAAAATTGTGCGATTGTATTTTTTTCTATAA -TATCAAACATTTATTGATTTTAGGACATTCTGTGATTAACTTTTATAGTT -TCACGGATTTCTGGCTTCCCTCAAAAAATTGAAATGGAAGAGTTTTCGCT -GAACTAGGCCATGTTGGCTCGGCCATGCGTGGCGCGTCGCGGCTCGATTT -TAGTTGTAAAACTAAATATTTCCCACGCGTTGTCCGACAGGCGACTGTCA -ATGGAGCGCAAAAAATTCATTGAGGGAGGTTTCTATTTGGCAATGCGCTT -TTGGTTTTTCAGTGATCTTTCAAAAAATTTTTCATAATTTTCAAATGATC -ATAACTCTGAAACTAAAATTTTTGGCAAAAAAAGTCGTAATATTGTAAAA -TGTTGCTCATAATTTCTTCTATACGATAAAATTTTTTCAAAATTTTACAT -TAAACAGGCCAATAGGTACAGCGCCCGACAACTCGCGGGTCCAAAAATTT -TTCAAAAATCGTCAAAATTCGACTCGCGAGATGTCGAGCGCTAAATCTAT -TGACTTTATTTTTTTGAATTTTTGAAAAATTTGTTATCCAATAGAAAAAT -TTATGAGCAACATCTTATTAGTTAAGCGTTTCTTGCCAAACATTTTATAT -TCAGAGCTATACTCATTTGAAATTTTTGAAAAATCACTGGAAAACCAAAA -ACGCGGCAAACGATTTTTTCCGGCAAATCGGCAAATTGGCAAACTGCCGG -AATTAAAAATTTCCGGCAAATCGGCAAACCGGCAAATTGTCGAATTTGCC -GAAAATTTCGGCAAATTGTGGTTTTGCACTTTTTTTGGAAATTTCAGAAT -TCCAATTTCAAATTGCAAAATTAAACTCATCCTATGAATGTTTCTACATC -TATTTTGAAAAGTAAGTAAATTCTATGAAAATATATAAGGAAAACGAGAA -AAAATTCAAAAAGACATAGTTTTAAGTGTTTCCGTCTTATTAAAAAATCC -CTCTAAACTTTTCCGGCAAATTGATATTCGGCAAACGGGAAATTGGCGAT -TTGCCGGAATTGAAAAACCCGATACTTACACTTTCTTTCGCTGCAAACTT -TGCCCTCTCATCTTGAATTGCTCCTTGCTCATTTGGCCCTTTCATGCACA -TTTTCTCTCGATTGTTCTCCAACGGGAACTTATCACAACGAATCACATCG -GGCCACTTGAAACCGAAACTTTCCAGCACTGGAAGACACTTTTCCTGGAC -GGAAAGACACAATGGACGGCATGGACCAATTGGGTTGGCTAGCTGAAATT -TTTTTGAACGATGAAATGATAAAAATGTGCGATTCTTCTCTGATTGAACT -CACTTTCTCGTTGCACATCGGGAAGTAGACGGAGCACAGGAAGAATTTGA -GCTGCTCGGAGCAGACAACGGAGAGCAGGGGCTTGTAGGTGAGGATGGAT -TCGGAGGCGTCTTTCCATGATTCCTCGTCGACGAGATTTGGGAAGCTGGA -ATAAGGGCTTGTAAAGTTTGAGAAACTTGAGATTTACAGGGTCAAAAATT -GCTCACGAGCTCTCCCGGTTGCCGAAAAGTTGCCGAAATTTGAGCAACCA -AAAGTTGCCGATTGCCAAAAATTGTAGGGTACGGCAACTTCGGCAATCGC -CGGTTACCGAAGATTTTAGAGTTCGGCAACTTCGGCAATTGGCGGTTGCC -ATTGCTCTCACGAAATTTCCCGCTATTTTTGGAGATTAAACAGCAAGTGC -ACGTGTGGGTGTCTCAAACAGGAAAGAAATCCTGGCAGGAGCCGACTTGC -CGGAAATTTTCAATTCCGGCAAATTGTCGGTGTGCCGATTTGCCGTTTGC -CGGTTCTCAGATTTGCCGGAAGTGTGTAGAGGGATTTTTATAAGACGGGA -ACACTGAAAACTGTGCCTTTTTGAATTTTTTCCCGTTTTCTTTGGATATT -TTCATAGAATTTGCTTACTTGTCAAAATAAATGTAGGAACATTCATAGGA -TGCGTTTAATTTTGCTATTTGAAATTGAAATTCTGAAATTTCCAAAAAAA -TGAGTACAAAACCACAATTTGCCGGAATTTTTCAATTCCAGCAATTTGCC -GATTTGTCGTTCTGCTGGTTTGCCGGAAATTTTCAATTCCGGCATCTTGC -CGATTTGCCGATTTGCCGGATTGCCGAAAATTTTCAATTCGTTAGCCGTC -CACCCTGGATCCTGCCATCCAAAAAAAAACGGAAATTTTTGGCAAATTGC -CGTTTTTCCGCCGGCAAATTCGGCAAATCGACAATGTGCTGTTTTGCCGT -TTTGCCGGTTTGCCGGAAATTTTCAATTCCGGCAATTTGCCGATTTGCCG -ATTTGCCGGTTTGCCGGAAATTTTCAATTCCGGCAATTTGCCGATTTGCC -GATTTGTCGGATTGCCGAAAATTTTCAATTCCGGCAATTTGCCGATTTGC -CGATTTGCCGGTTTGCCGGAAATTTTCAATTTCGGCAATTTGCCAATTTG -CCGTTTTGCCAAAAATTTTAGGGTTCGGCAAATTCGGCATTTGCCGTTTT -GCCAAAAATTTTAGGGTTCGGCAACTTCGGCAGTTGCCGGTTTCCGCACA -TCCCTGTCCCACACGCCCCAGGTGGAAGATGGTGGAAGAGTTTCTAGCGG -GTCCATCAAGGATGGGAATCATCAGTCAACACAATCCTTAGCCGACCTTC -CCAAATTCATCATTCCTTCCTTCCAAAACGGTTTCCGGTCCTTCCAACCG -ATTAATACCAGCCACCACCACACCACCAAACCCTCTCCTTCGAAATAGAG -AACAAAGTTGCATACCCCCCTCATTTCTTTGTTTTGGAGAAAGGGGCGTT -TTGTGGTGCTCGGAGAGCCTGAGGACGTGACAAGTGATATATAGACGGGC -TTATACTATCTGCTCGTCCATATTTCACGCGCCTAGGCAGAGTGCACGGC -GGGAGGTGGAGACGCAGGTTCCCGTCCAACTGCCGCAGAGCATCCCCTAT -CTGCTCCTATCAATTGTTCGGAGAGACTTTTTTGTGAATTTTGCTTTTTG -CAAGAGGTCTGAGATTTGGGATTTGGGCTTTAGGCTTTAGGCTTTGGGCC -TTGCTTTGCGCCAGAGAATGGAAATTTGTCCGTATTTTCCCGGCTTATAT -CAAAAAATGATCAACTATAAAAATATAGAAAAAGATTTTTCAAGTTTTTT -GTCAGTTAGTATTTTTTGATAAAACAAAAGAGAGCCGAGATATAAGCTGT -CAAAGTAGAGCAAGGGTGGTTTGATCTACAAAAAATGTGGGGATTTTTTT -TCAAACTTGCTCTACTGATAAATTAATAAATTACTCCCACAAAATCCAAT -AAGCCTCAAACTTAAGATCCTCCAATCTCATCCCCCTCATAAAACAATAA -TACTAAATCACTAGATCTCCGGTAGTATATATCAGAAGAACAGTTGCTCT -CCCTCTCGAACCGACTTACACTTGAGAAAAATAAATTGTGGAAGAGAAGT -GACGTCATCGTAACCTACCACTTCACAAGTTTATATATATATATATATAT -AAGTACTAGTTAGGACTAGCTAAGACCTAATTAGAACATAGGTATGGCCT -GTAAGTTAGGACCTAATTAGAACTCACTAGGACTATATATATATATATAT -ATATATATATATATGTAAACAAGAACCCGGGCGGGTAACCCCTTACGGTC -AGAGGGGTGTCCTACACCAAGGGTATGTAAACTGTGTCCCCCAGATGGCG -AAGTTGAGAGGGAAAAAGTGAAAAAGCGCGCCACATGGCCTCGCGACCGT -ATGTTGCAATTTCAAGCAACGTTTTTGATTTATTGGAGGAGAAATTTTGA -AAAAGTGAAAAAAAAGTGTGACCCCATATGAGATGCGTAATAAAATTCCC -TACAAGACCTTAAGAAAACGTGGCTGGCTGGCAAAAAACAGGTGGCAATA -ATAACGGAATGTGTATGTGTGTGTGTGTGTGTGTGTGTGCTCGAAGAGCA -TAGGCTCGTAAATCGTTATAATTGATGCTGGAGGAGAAGGAGACGATGGG -CCTCCAAAGTGTTACACCTGGTATTTGTTGGGAAAAATTTGGGGGAAATA -GGCATTAAACTACCTAACCTAATTGAGTTTTTTCAAAGCTTATATTATTA -TAACTAAGAGGTGTGATAATAAATAATTAAAGAACTTTAAAATTATCAAA -AACGCTTTCAAATCTGTAAAGCTGATATTTTAAGGATTTAGTACTAGTTA -AAATCTAGTTGGGACCTAGGTAAGACTATCTAGAAAGTTCGGACGTAACT -ATTTAGGAACAGTTAAGTCTTAAGGCCTGCTTGGGTACAGGTAAAAATGT -TTAGAAAGTTAGGAACTAAATAGGTGAAGTAAGTACTAGTTAGGACTAGT -TAAGACCTAATTAGAACCTAGGTAAGGCCTGTAAGTCAGGACCTAAATAG -GACTTACTAGGACTTAGGTAAGACTAGTTAATGTCTTGTTAGGACTAGTT -AGGACTAGCTAAGACCTAATTAGAACCTAGGTACGGCCTGTTAGGGAAGA -TCTGATTAGGACTTACTAGGATTTAGGTAGGACTAGTTAAGATATAGTTA -GGACTAGTTAGGACTAGTTAAAATTTAATTAGAATCTAGGTATAGCCTGT -AAGTTAGGACCTAATTAAGACATACTAGGGCTTAAGTAGGACTAGTTAAT -ACTAGTTAAGAACTAATTAGAACATAGGCACGGTCTGTTAGTTAAGGCCT -AATTAGGACTCACTAGGACTTAGGCAGGGCTAGTTTAGTTATTGTTAGGA -CTAGTTAGGACTAGTTATGTACCTAATTTGGACTCACTAGGACTTAGGAG -GACTAGTTATAATCTTGTTAGTAATATTTAGGACTAGTTAAAATCTAATT -AGAACCTAGATATATCCTGTAAGTTAGGACCTAATTAAGACTTGATTTGC -TAGGATTTAGACAGGACTAGTTAAGATATTGTTTGGACTAGTTGACTAGT -TAAGACCTAATTAGATCTTAGGTACGGCCTGTAAGTTAGGGCCTAATTAG -GACTGAATAGGACTAAATTTCTTGTTACGAATAGTTAGGACTAGTTAGGA -CTAGTTAAAACTTAATTAGCACCTAGGTACGGTCTGTTAGGGAATACCTA -CTTACCAGGCCTTAGGTAGGACTAGTCATGACCTAATTAGAACCTAATTA -GAACCTGGGCACGGCCTGTTAGGGAAGACCTAATAAGGACTTACTAGGAC -TTTGGTAGGACTAGTTAGGACAAGTTAAGACCTAATTAGAACCTTGGTAT -GGCCTGTAACTTAGGACCTATTTAGGACTTACTAGGACTTAGGTAGGACT -AGTTAGGACTAGTTGGAAGTTGGGACCTAACTAGTTAGACCCTTAATTTT -GTACACATGCTTATTAATATCAATAAAAATTTTAAAAAAAAACGACTTTT -TTAAGTTTAACTATATAAAACTATAATTTGGAAAATTTGCTACTTTGCTT -AAAAATCGAGAAAAAACCTAGCGTTTCTATAAAAAACCATCTTGAAGTAA -ATTTTGAAAAAACCCCGTCATCCAACAAAAAAAAATTCACTCACCTCGTT -AAGTTATACGGCAAATCGTTGCACATCTCATGATCCACCTTTTGACACCT -CTGCCCGTCCACACCAATCACAAAGAGCAACAGGAGCCAGGTTACTCCGA -GGTAACCACGAAATGGTCCCATTAATGATAATGGAATTGGGGGCTCACAG -CCTGGGTGGGGGAAAATATTGAGAGTAAAAGAAACAATGAGAAGAAAGAC -GGAGGATAGGCGGGGGGGGGGGGGGGGGCACACCAGTGGCAGCACCACCA -CGGCCTGTCCGTTGACAAATGACCCAAACGGACGGGGGGCGGGAAGAGTG -TCTGTTGTGTGTGTTGGGAGATGGCTGGCGGTTATCAGATATTTGTATGA -ATGGTATAGAGAAACAGAGACCAAGAGAGCTGAAAGATGGAGAGGCGAAA -GAGGAAGAGAGGGGGGGGGGTGGAAGTTTTTACGAGCCCTGTAATAAATA -TATCGAAGCAGCAAATCATTTGATGATAACGGAGGAGCGCGGGGACGGAG -ACGGCAATCATCATCATTATTAGGACCAGGGGTGTGCGGCGAATTTTTGC -CGAATTTGCTGTTTGCCGAGCTCGGCAATTTACCGAATTTGCCAAGCTCG -GCATATTTCAAAAAAGTAGATTTGCCAAATTTGCCGAACTTGGCATATTT -CAAAAAAGTAGATTTGCCGAATTTGCCGAGCTCGGCATATTTCAAAAAAG -TAGATTTGCTGAATTTGCCGAATTTGCCGAGTTTGCCGAGTTCGGCAAAT -TTGCCTATTTAGCCGAGCACGGCATATTTCAAAACAGTAGATTTGCCGAA -TTTGCCGAATTTCCCGAGCTTGGCATATTTCAAAAAAGTAGATTTGCTGA -ACTTGCCGAGCTCGGCAAATTTGCCTATTTAGCCGAGCACGGCATAGTTC -ACAAAAGTAGATTTGCCGAATTTCCCGAGCTTGGCATATTTCAAAAAAGT -AGATTTGCTGAACTTGCCGAGCTCGGCATTTTTCAAAAAAGTAGATTTGC -TGAATTTGCCGAGCTCGGAATATTTCAAAAAAGTAGATTTGCTGAACTTG -CCGAGCTCGGCATTTTTCAAAAAAGTAGATTTGCTGAATTTGCCGAGCTC -GGAATATTTCAAAAAAAGTAGATTTGCCGAATTTGCCAATTTTGCCGTTT -GCCGAATTTGCCGAGTTTGCCGAGCACGGCATATTTCAAAAAAGGAGATT -TGCCGAATTTGCCGAATTTGCCGAATGTGCCGATGCCGAGCTCCTGTTGA -TTTTTTTCCAAAAATTCAGTAAAACGACACAAATTTGTTTTAAGAATTCA -TTAGTTTCGGTGCTCCAAACAACATCAAAAAATATCAAATTTTTCCGAAT -TTGTTAAGCACGGCAAATTTGCCAAATTTGCCGAATTAGCCGAGCACGGC -TAATTTTGAGATTTGTCGCACACCCCTGATTAGGACCGAGAAAAGGGCCT -AACATGATTTCACAATTTGAAAAATGAAATTCAATTTTTCTTGGGAAAAA -AGTATGAATCTCTTCCTCCGCCCGTTTCCGGCAGAAACAATTGAACCAAA -CGAGCCAAAAGTGCACATTGTGTAACTTTGTTGGGGAGTGTAGATAACCA -GAAGAAACAAGATGGAACTTTCTTGCGATGAACAAATTTTGGAACACTGG -AGGGAAATGATTGGTGTTTTTTAAGCTTTTTAGTCAATTTTTAAAACTGT -TCTACAATAGGCCCAAATAGGCCTAATAGGCAAATAGGCCAAGTAGATTA -AATATGCCAAATAGGCAGTATAGGTTGAATAGGTAAACAGGCCAAATAGG -TCAAATAAGCTAAATAGGCGAGACTGGTGCTCAAATACTTTTTGAACTGG -TAATGTTTTTTCTTCTACACAAAAACAAAAAAGTCCCTGCTTAGTTCCGC -AAAATTGTGATTTTTTTCAAAAGTTACCCATTTTTGCCACTTTTCAATAG -TTTTTGATAGGTTAAATCTAGATTTTCTGAATTCAGCATATATGAATTAC -CCGTTTTCAACAAATTTAGGCAAATTTTTATTTTTGCCCAATTTTTTTAG -CCATCTAATGACTGATTTTGGGCAAAAAAAATTTTCCTGAAATTGTACAA -AACCATTAGAAATTGAAAGGCTCCTCAGTTTAAAGGCACATGAGGTTTTT -CGGAGTGGGTGGCAATTGTCGTTCGGCAAATTTTTTGGTCGACAAATTCG -ACAAATTGCTGGTTTGCCGATTTGCCGGAAAGTATTTTCTTACTTTTCAA -AATATATGTACGAACATTCAGAGGATGCTTACAATTTTGCCGGATAAAAT -TTAAATTCTGAAATTTCCAAAAAAAATGTGCAAAACCATAAATTGCCAGA -AATTTTTAATTCCGGCAATTTGCCGATTTGCCGATTTGCCGTAAATATCA -ATTCTGGCAAATTGAAGATTTGCCTTATTTGCCGACTTGCCGCATTCCCT -GATGTAGGCATCAAAACGACTGAACACCAAGTTTTTTTGAAATTTTTTAA -GTTTACCTTTATAATTTTTAGTGCTCAAAAAGTTCCAAAATTAAATAAAT -TTTGAAATTTGCCGAGCTCGGCAAACGGCAAATTTGCCGCACACTCCTGT -TTCAAATGTTCACCGCATATTTAATTATTCCGGAAATCCCCTCAAACATC -CATCAAAAGTGTTTTCCCTGATTTGTTGACTCTGACACCGACGGTGGTTG -TTCCCCCCCCCCCCCACTCTCTCAATTGGCATGTAAATGAGCCCGTATGA -ATGAAGTGCCTTTTGGCGGCAAAATGCATATCTCCAAGTACCATTGAATT -AATCTTCCATCCCCCATTGTCTCCTTCTATATAGGGGGGAGGATGCGTGA -TTCTTGAAATATGCTCCAAGTGACAAATTGAGCGTGTGTGATGTATCGTG -GCAGATGGCTGGCTGACAACGGATCAGTTCCAAAAACTGTATCAAACGGG -GGGAAGAGAGGGGAGATGAAGGATGGGGGCAGATGGAGTCATCGATGCAC -CATGTTTTTTGGAGCTGTTCACTCAGATATTAGGGTATTTTAATCCCCTT -TTTAAGGTCTATTTCTGATCGTAAAACTTGGTATTTTCAACTCATTTTTA -ACTCAAAAATTTCAAAAGTTTGAAAAATTACACAAAAACCTAAATTTTGA -TCTGGTTTCAGGCATTTTAGTCCCTGTTAAGCGTCTTCGATGCACCATGT -TGTTGTTCAACTTGTTTAAACTTTTTAGTTCCGCATCGAGGAAAATGGAA -AATAAAAAATTATTTATGTATTCAAAAACCATACTTTGATTCTCCGTAAC -AACGCTTTCATGGGAGGCAGGCCCGGTTTCAGGGCCTGACGCCTGCCTCA -AACCTGCCGGCCTCACGCCGGCCTCACGCTTCATTTCTGCATTTTGGCGA -AAAATCAAATACTTGGACATAGTGAAAAGGTGATTTTTTCGACGCGGCCG -ACACTTTTCGGGTTCCGCGCCGCACTATACAGGAGGCGAGGCTCGCGGCG -CGAGGCAGGCGGAGGTCGCCGCAAGGCAGGCGCGGCAAGCATTTTTGTGC -TTACATGGATACCCTAGTCTACACAAAGCACGAATTTCTGGCTTCCCTCA -TAAATTGAAATGGAAGAGTTTTTGCCGAACTAGGCCATTTTGGCTCGGCC -ATATCTGGGGTAGATTTGCCGTCGCGTTGCGTGTCGCGTCGCGGCTCGAT -TTTAGTTGTAAAACTAAATTTATTTGTCCGTGTGGAGTACACGACTTTCC -CATGCGTTGTCCGGCGGGCGATTGTCAATGGAGCGCAAAAAATTCAATGA -GAAAGGCCAGAACCCAGTGAAAAAGATAATTTGACAATTACAAATAATGT -TTTAAAATTTTTTTTTTGTTTTTGATTTTTGGTTCTCCTTGTGTTTTAAG -AACATGATGCATCACCGCTGGAAATTGCTGGATATGTAAAAAAATTATTT -ATGTACATATTTAAAAATCAAATCTTGATTCTCCGGGATAGAAGCATAAA -TCAAATTTATTACTGTAAATTTTCACTTTCAGTACATTTAATTGAAATTT -TTAAGCTTTGAAGTTCAGGGTATCATAGTTTTGCCTCCAAAATCCACTTG -CCCAAAAAACAAGCCTGGGAATTCCCGGCGGGGGACGATGGTTCGATAGC -ATCAATCATATCTGTGTGTGTGTGTGTGTGTGCAAGGCGGGGGATGAGCC -GGCGCGCGAAACGAATAAATCAAGAAACGTCTCTCTTTCTGCGAGCACGG -ATTTTGTTGTGAGCCCGCGCGCGCGCGGTCTATAGGAGGAGAGGGGTATC -ATGCACTTCTAATACAGGGCATACTTCTTTCATTTCCATGTTTTTGTACA -TGTAATAAAATTGTTAATTAGCCAAAAGTGGTTCACATGTTCACGTCGTA -AACGTCGGTTTTCAGGGTGTACTGATAATGAATGTGCTCTGTGTGGAGAC -AAAGAGGCAGCAGAGAGCAAGAATCAGTTAGGTTAGGCAGGTGACTTTTT -TCAATTGTGACTAGGAAAAAGTATTTTGGGAATTTTTTTTTATTTTTTGG -CTTCTGCCCAGATTTTCAGGATTTTTCAAATATTTACAGAAATTTTCGTG -ATTCTACAATAATATTTTTGTAATTTTCTCAATTTTCAAAAAATTGCCAA -TTAATTTTGAAGTTTCGAATGAAGCAATTGCCGAAGTTGCCGACTCCCGG -AAATTTCGAAAACCGGCAATTGCCGAAATTGCCCTTTGCCGGAAATTTCG -AAAACCGGCAATTGCCGAAATTGCCCATTGCCGGAAATTTCGAAAACCGG -CAATTGCCGAAGTTGCCGACTCCCGGAAATTTTGAAAACCGGCAATTGCC -GAAATTGCCGACTCCCGGAAATTTTGAAAACCGGCAATTGCCGAAGTTGC -CGACTCCCGGAAATTTTGAAAACCGGCAATTGCCGAAATTGCCGATTGCC -GGAAATTTCGAAAACCGGCAATTGCCGAAATTGCCGCTTGCCGGAAATTT -CGAAAACCGGCAATTGCCGAAATTGCCGATTGCCGGAAATTTTGAAAACC -GGCAATTGCCGAAATTGCCCATTGCCGGAAATTTCGAAAACCGGCAATTG -CCGAAATTGCCGCTTGCCGGAAATTTTGAAAACCGGCAATTGCCGAAACT -GCCCTTTGCCGGAAATTTCGAAAACCGGCAATTGCCGAAGTTGCCGACTC -CCGGAAATTTCGAAAACCGGCAATTGCCAAAATTGCCGATTGCCGGAAAT -TTTGAAAACCGGCCACTGCCGAAATTGCCGACTCCCGGAAATTTCGAAAA -CCGGCCACTGCCGAAATTGCCGACTCCCGGAAATTTCGAAAACCGGCAAT -TGCCGAAATTGTCGATTGCCGGAAATTTCCGATCCCTGAGTTTAGCCTTT -TTCAGCAAATCAAACAGTTTATGATTATTTTTTCAAAAATTGTTCTGCAG -TGCTCTTGCATCACTATTGTGGCCCTCCTTTAAATACAGTACTTTCTACA -GTACCACTACATCAATGATCCTTCCAGTAATGCCAACACATTGTACCACT -ACAGTAATCCTACAGTACCCTATACAGTACCGTCGCAATACAATTACCGT -AACACTATGGAAATCTTACAATAGACTACAGTATACAAAAACTACAGTAA -CCCCCTTGAAGTTAGTGTAAAACTTGCAAATGTTCAACTCTTTTTTCTGA -TTTTTTTTTGTTAAGTTCAGAAATTGTAGAGTGTTTTTGGCTTCTGCTCA -GATTTTCAGAAATTTTCGTGATTCTATAGTAGTCTTTTTGTAATTTTCTC -AATTTTCAGAAGTCTGCAAATTCAATTTGAAATTTCGAATAGCTTTAAAA -AACTCAAACAGTTGGCACAAATTTTCGTAGATTCATGTAGAATTTCAGCC -TTTTTCAGCAAATCAAACAGTTTTTTATTTTTTTTTGTATTTTTTCAGAA -ATTGTTCTCACCCTCCAAAGTACTATCACGTCCTAACAGTAATATTAGCC -TACCGTATCACTACAGTAATCCTCCAGTACTTCTGTGCATGCTACAGTAC -CCTTGCATCACCATAGTGGTGATCCTTTAAACCTACAGTACTTCTACAGT -AGCACTACAGTACCACTTCAACAGAATCTTTCCAGTAATATCAGCGTATC -GTACCACTACCGTAATCCTACAGTACCGCCACAATACTATTACCGTAACA -CTATGAAAATCTTACAATACACTACAGTATACAGAAACTACAGTAACCCC -CTTGAAGTTGGTGTAAAACTTGCAAATGTCTACCGTAATCCTACAGTACC -CCAATACAGTACCGCCGCAATACAGTTGGCATAACACTATGAAATCTTAC -AGTACACTACAGTATGCAAAAACTACAGTAACCCCCTTGAAGTTGGTGTA -AAACTTGCAAATGTTCAACTTTCTACAAATTTGCCATTAACTTGTAAGTT -GGGGGAGCGCATCGAAGTGTATACATATATGTACATGCCAACCAATTATT -TTCTCAAACAATTTATTAATAGTCGAAGACACCTGAAGCAACGATTAGGA -GGAAGAAGAGGAAGGAGAGATTGGCAGAAGAAGAAGAAGAAGACGAATTA -GTTGAAGAATCTGTTGAAACGGAAGACGTTGTTTGTGATGTCTCTAGCCG -TGCGACAGCTTCCCGTTTCAGACGGAACGATGTTCGCACGGCGATCGGTG -GCGAGATGTCGGACACGTCGATTGTCGACGAGAAGGGATCAGAGACGGTT -GAAGAATGCTGAGGAGGAGGATTATGTCGACGTTCCCGTCCACGACACGC -GGCCTGGGTACACGTGACACAGACGTGAAGGTTACAGAAGATGTTCACCT -CGTTGCTGGAATAATAGTCGTTGAGAGGTGGGTGGTGAACATGAACAAAG -AACTTAAGAGGCTTACCTCGTTGGGAATGCCCAGGCCTTTATGTGGTTGT -AGAAGATGGTCTTACCATTGCGTCGAGTCACTTCAAAGTCTCCCCACACC -TGGAACAATTTTCTATGGAAGTCTCAAATAATATGCAGTTGGTCGATGCA -CCATGATGAATTTTGTGCCAAACATGGTGCATCGACGCTAAATAATTTTC -TTTTGAAATTTAAAGATGTTTTGCTAGACTTTCCCTAAACATCTTTTTAG -TTTTCCAATGTTCTCTAATATCATCATGGTGCATCGAGAAAAAATGTTAT -AGGAGGAGTAAAGAAATTTGAGACTTTACTTTTTTAGACCAAAAATGACC -CAAAACTACCGAATTGTTTAGTAAGACGTTTTGAAAATTTTTCAAAACAA -AGTTATGGCGGTTCAAAGTTCTGGAAAATAGCATATTTTCAGCTAAAATC -TAATGTTTTGGGGGCTGGGGGAGGAATAAAAATGTAATTTTTTTTGTGCC -CCACTGCCCGAAAATGCACTTTAATCGACGAATAAACGGCTTATAAAGGG -CCACAATATTTATAAAAGAGTGATATTATAGTTATAAATAAAAATTGAGT -TCCCGACCGAGAAAAAAATTGGCGAAAATTTTGATTTTAGCTGAAAATGG -GACTTTTTTTCCAAAACTTTGAGCGGCCATAACTCTTTTTTGAGAATTTT -TCAAAACGTCTCATTTAGAAATTCGGTAGTTTTGGGTCATTTTTGATCTA -AAAAAGTAAAGTCTCAGATTTTGATACTTTCTCGATGCACCATGATGAAG -AGAAAAAAAGAGAAAATTTAGAAAAAAAAAAAAAGAACCCTTCCGATGTT -TTGGGAAAGTTTAGCAAAACAATAGATTTGTAAAAAATTCAATTTCATTA -GGTTCCTATTAAATTCTCAATTTTTATCAATGCACCATACATTTTCAGCG -TGAAATTTTGTAAAATGCACAGGAATGAAAATTGATCAGGTGTGTATAAA -ATAAGAAATTGAAGCATTTTGTTTTTTTTTTTGTCGATACACCATGATGA -ATTTCACGTCAAACATGGTGCATCCTGGAAAGGAGAGAGTTTTAAAAATG -TATCATTTTTTTCTCGATGCACCATGAAGATTTATATTAGTAGAACTTAA -ACCGCACTTAGCATAAGTGGCATAAAAATAAAGGTGGAGTAGCGCCAGTG -GGGATTTTGTCTAAATACACTTATTATGATCCAAAACGATCGAATATCTT -AATGAAACACTCCAAAATATTTAAGATTTTTCAAAATTTCCGGTCAAAGT -TTTGGCAAATTGCCAAAATATTGAAAAAAAATATGAGCTTTTGAGGAAAT -CCAAAGCAATGTCGCGTGTTTCGACCCACACAATGTTTTTATACAATGTA -GAAAAAAATTTTTTTTTGGTCGACTTTTAAAATTATGAGTGGCAAAAACT -GAGTAATTGCCAATTTGACAGTAAATAAAAAATTTTCAAAAACATTTTGA -AAAGTTTTATTATGATATTCGATTATTCTGGCACCATTTGAGTGGTTTGT -AGTAATTTCCCCACTGGCGCTACTCCACCTTTAAAATTAAAAAAAAAATC -ATAATGGGTATTTAATATCAATGAAAATTATCGATTTTTCCAAATGTATC -AAAATGAGTGTTCAGCGCGAAATTTTGTGCAGGACTTTTTCTTTCAATAA -TATATCCCGAATGATGCATTAGTTATGGGCTACACGATTTTTAGAAAAGC -ACCTGGCCATGCTTAAAGGTGGAGAACCGAAATTTGATACTCTGTCTTTT -TAGATCCAAAACGGTCCAAGACTACCAATATTCGTATTAACCTGTTCTGA -AAAATTTTCAAAAAAAAAAGTTATGGCCGTTCAAAGTTTTGGAAAAATGG -TCGATTTTTAGCTAAAATCTCAAATTTTGGCAACTTTTCAATGTCACAGC -TGGAGCTTAATTTTAGAAACAACACGTGATAAATTGCAAAAACATGCATA -AAAATATGTTCCAACCGCTCCGACACTAAAAAGGTGCCAAAATTTGAGAT -TTTAGCTAAAAATCGACCATTTTTCCAAAACTTTGAGAGGTCATAATAAC -TTTTTTTTTTGAAAAATTTTCAGAACGTCTTAATACGAAATTTGGTAGTT -TTTGGACCATTTTGGGTCTAAAAAGGCAAAGTATCAAATTTTGGTACTCC -ACTCACTATCGAAGCAGAGCCCCAAAAGTTTGACCGACCCAATTTTGTAA -GTTTCTTCGATGCACCATGATGATTTTGAGCAAAATGTTAGTTTTTTTTT -TTGAAAAACTGGTGGCAGGACCCAGTTTTCGGCAGTTTTAAATGTCGATG -CACTATGTTTTTTTTAATGAAACCGTACCTCCCCAGAAGTCTGCAAAGAG -CATCCGTGTGAGTCCGACAGTGGTAGCTCGGATATCCCGTCATTCGCCCA -ACACCTTCCGATTCGTCCATTCTGATCATCGCTCATTTCAACTGTGTACG -TCTACAATTTACAAATAGTTTCTTTTGATTTATGGAGTTCCTGACTTACA -ACTCTATCACCAACTGCTAACGGACGTTGTAGCTGCTTTGAATCCAAACT -GTCGCCGTCTAGAACACGAACTCGGTAGTCGACTGTCTGAAACATTATAT -GGGTCTCGCAGCGATAATTTTGAAGCCTTACCTTATTATCCGATAGGCTG -CTTGCTGTGGTGGCATCCGAGTTGATAGTGATTCCACCAAATGATACGGT -CACCTGAGATTCTTTAGGAACAGGGGCAGCAGGTATACAGGTCAGAAGGA -ATCGTTTGTCGGTTTCTGCATTGAATCTTAAAAAAAAACGATGAGGAAGT -TATTTTTTATTTTTGTCTATTTTTGTTCGTATATGGTTTTTTAGGTACCA -TGGAATAAAAAAAATGCTCCTAAAAAAATTAGTTTCAATAACAAATATTA -CTGGTACAGAGAGTGTAGATAGTTAGAGAGTGACTGACATCCGGGACCCA -ATGGGGCGGGGCGCGCGGAAGAGACGATTCGTGTCGATTTACGAAATGAT -GACAACGAGGAAAATTTCGTAAATCGACACAAATCGTCTCTTCCGCGCGC -CCCGCCCCATTGGGTCCCGGATGTCTGTCACTCTCTAACTATCTACACTC -TCTGTACCGGTAATACCATAATATGATCATCATTCTACATTAGAAAAAAA -TCGATCTGAAATCACAGATTTTTGGCCTCCCTCATAAATTGAAATGGAAG -AGGTTGCCAAACTAGGCCATTTTGGCTCGGCCATATCTGGGGTAGATTTA -CGGCGCGTTGCGTGTCGCGTCGCGGCTCGATTTTAGTTGTAAAACTAAAT -GTAGTTGGCCGTGTGGAGTACACGACTTTCCCACGCGTTGCCCGACGGGC -GATTGCCAATGGAGCGCGAGAATCTCAATGAGGAAGGCCATGGCGCGCCA -GAACCCCATGATTTTTAGGGTATTTCGAGGTTGGCAAATATTCTGGAATC -TTTTTGCAAAATGTTTTTTTTTTTTTGAAAAAAAAATTCCAAAAAATATC -CTGATCGATGAAAATTGTTGGGTGAAAAAAGTTGCAGATTTTAGGAGAAA -TTTGAGAAATTAGAAAAATTAGAAATTAGGAGAAATCAGAAAATTTCCAA -ACTGCTTTCAGAATACTTGTATATATTGAAATAGCCTAAAAATCATGAAA -TTTTTCAAAAATCTCTAAACTAGCCTCCAAATTTGGTAGTAAAAATTCAC -TGGCAGCAACTTCAGAGCGAGATTTTTCTAGTTTAAAGTGCTCGTATGTC -GCTGAATTTTTTGTAGGTACCTATTTGAAAGCTCTTTTTTCAAAATTCAA -AAATTTAATTTTCAAGTTTAAATTTTGAGTAGCGCCAGTGGGGGATTTTG -TCTAAATACACTTATTATGATCCAAAACTACCTGAGTAATTGCCACTTTT -TGACAGTAAATAAAACATTTACAAAAAAAAAAAGTTTTATTATGATATTC -GGTCACTTTGGGACCAAATGAATGGTTTTTCATAATTTCCCCACTGGCGC -TACTCCACCTTTAAAACTGAGCGGAAATACTTTCCTTGTGAGCATAGCGG -CAAAAAACCTAGTACCACATGGCAAAAAAAAACCCACTCATTGTTAGCCA -TGACAACTTCGATCTCATTCTCCAAATTGCCTTCTCCGTTCTCCTTGGTC -GAGCAGCCAGTCAGCGGAATCTAAGCAAATAATGCCCAAAAATTCAATAC -ATTCAATAGGCAAACCTTCAACTGATATTTGGTGTCCGATTGAAGCGTGC -CATTTGCATAGATACACTTTGGATGGCCCGCGCGACTTTGTATCGTGCCA -CGGAAGTTTTCGTCAAACTTGATTTTCAATAGGAAATCTGTCTGCAATAT -TGAAGACGTTTTTTTCCTTTTGGGTGGTGACCTTCAAGGTTTTGGCCTGG -GTTTTTAATCTTCCATTAAATGCCCTTCAAATTCGCTTTTTCGAGAGTTT -AAGAGAGTTTCTAGGCCGAGGAACTTCTTGCAGCCAAATTTCTAAACTAT -TGTGTTTTTGCCAAAAACAATGAAACATTTTAGGTCATTTGTGACGTCAT -ATTTTTTCCATGCAACTTTTTATTGGCTCCACACATCTTCCAAAAAGCCT -AAGCCTGAGCCTAATCCAATGTCTAAGCTTAAGCCTAAGGTTCAGCCTAA -GCGTACGCCTAAGCCCAAACCAAAGCCTAAGCCTAAGCCTAAGCTCAAGC -CTAAGCCTAAGCCTAAAAAAAACCGGAAAATCCTAAGCCTAAATAGCGTC -AGTAGCAAGCTAACGCTCGCCACTGACGCCAAACCTAAGTCTCGGCTTAA -GCCAAAGCCTAAGCCTAAGCCTAAACCCATGATTAAGCCCAATCCTAAGC -CTACGCCTAAGCTTGAACCTAAGCCTAAGCCTAAGCCTAAGCCTAAACCC -AAGCCTAAAATTTCTAGGCCACCACTAATATTTTCAAAACTCGATTCTCA -AATACTTCATTTTTTCAGGATATGAAAGTAGGACAGAAATGGGCAGGGTA -TATGGTATGGAGCAAATATCACAAGATGGCAGAAACATAGATACGGGGTG -GGAGTGTTGGACTAGGTGACTTTTCTAGGCCATCCCTACCTTATCACACG -CAATAGAAGTGTCCACAATGGCCACCGATCGAATCAGCGGTGGCAGCACC -ACAACCACCGACCAAATGATCCAGTGCAGAATCATAAATTTGTGGAGGGA -AAAATCGATAACAGTAGTGAGGGTAATAGTAGTAATAATACAAATATATA -TGGAAAAATGAATACAAAAAGATGTGTGCGCTGGTTGGGGTGGTGGCGTA -AGAATACAGGTGGGTGGGGGGTATAATTGGAGCGTGGCCGAGGAGGAGAA -TCGCAAAAAAAAGAAGGAAAGAAAGAGGATAGTAATGACATGTTACGGTA -GAAGGACAACTACCTAATTATATGAAAGAGGGGGGGGGGGCGACGAGAAG -AGGAAAAAGTCTTACGCAATTTGCTACTCGACTTTCAATTTCTGCTAGAA -ATCGAAAAAAAAATAGGAAACAAATTCCGACTCTATTCGATATCATCACT -TCCGGGGCACGGCACAGGTCGGATCAGATTCAACGACGTCTCGCGATCCC -GACCCTCTGATCTTACGGCCATCCCATTGTTCACATGATAGTCGATGAGC -TCGGAGATGTTGCTGAACGTGCGATCGCGGGTTCGGACTCTCTGGAATTT -TGAGAGGTTTGAAGGTTTGGCGGGGGGGGGGGGGGAGGGTCTTACGTTGT -GATTGTCCAGTAGGATGAGATGTTTGTGCTCGTTTTCAGCGGTTCGGCCA -CTCAGCACGTACTTGCCGGGCGTGTGGTCGCTTTGTCTGCAAGGAACTGG -ACAAGTTTGAGCGGCCGACAGCTTGCGGGTCTTTTTTTAGAGAAGGGGGA -CTGTGAGGTGTCCGCTGCTTCAGACAATCTTAGCATCATGCAAACCTTGC -ATCTTTTGTATTTCAGGAAAAAAAACGCAGAATTTTTTTTGAACAAAAAT -TTCAGCCTAAAACAAAAATCTAAAAAAATTTTGGGAGGATGAACTTATTA -TACCAAATTTTTCCCTGGTCTTTCAAGAATTATTTAAAGTCCCGTGGCTT -CTGAACATATTATCAAACAAATTACAGATATGAAATGTGACTGAAGCTTT -AAGTCAGAAATATATAAAAAAAGGATTTTTCATACTATTTTTTCAGTCAA -ATTTGATTTTTTTAGACTTTCAGATTTTTCTACGAAGTCTGTTAAAATAG -GCTTATATTAAAAAGCTATCCGATTTACTATTAGTAAAAAATTATAGCGA -CCGACATCTCGCAGGTTGTTAAAGAAAGGTGCATTGACCGGCTCACGCAA -CTTTGGCAGTTTATATCTCGGCTGGTTTTGGTTTTATTTAAAAAATTTCA -ATTGACGAAATATTTATCACTTTTTCTACTAAAAGTTTGCAGTTGAACAC -TTTTTGCTAGCAGCGATATTAACCGAGATATTAGCGGAAAAAGTTACATG -AGAAACATGGTGCATCGACAAGAAATATCTCACAAAACTTTGGCAGGTTA -TATCTCGGCTGGTTGTGGTTTTATTAAAAAATTGTTAATTAACAAAATGT -TTATCCTTTTTTCTACTACAACTTTGCAGTTCAACACTTTTTGCTAGCAG -CGATATAAACTGAGATATGATTGGAAAAAGTTACATGAGAAACATGGTGC -ATCGACAAGAAATATCTCACAAAACTTTGGCAGGTTATATCTCGGCTGGT -TGTGGTTTTATTGAAAAATTGTTAATTGACAAAATATTTATCCTTTTTTC -TTCTACAACTTTGCAGATGAACACTTTTTGCTAGCAGCGATATAAACCGA -GATATGATTGGAAAAAGTTACATGGAAGACATGATGCATTGATCAGCTAT -CATAGCTCATATTTTACTTATCTCAGGTTTTACCAAAAAATTGCCAATTA -TTAAAACATTAGCCTTTTTCTTCGAAAATCAAATTTTGCCCGAATTGCCG -AAAATATAGATTTGATATTTTTTTGTAGATTTAGGAGCCTAAACATTTTT -TAATTTTTTAAGTATTGACCGTTTGCTTTTAAAAATGACTAATCGAATAC -TGAAAACACAGTTAACTTTTTTTTCAATTTTCGAATTATAATTAGGTTTG -AAAATTGCCGAAAATGTCGGCATTCAGTTGGAATTTTGGCAATTGCCGAA -AATTTCCGATTCCCACGCGCCCCTGGTGTGAACCTAGTGAGCATGAAGCC -AAACGTTTTAGAAATTCAGCAAAATTCTAGCTTTTTTCTATAAAAAATCT -AAAAAACCTTACCGAACCAAAAAATCGCCTTCCGTCTTCAACAAAGCCTG -TGCATCCTCTCTGGATAAATTTCCATGATACCAAACTTTCCCCACAACAT -CCTCAGTTACAGTAGGTGCTCGGCAATTCGACACAAATGACTGTCGATGC -AGGGAACTTCGATGTCTCATCGGCGGCGCCGGCACCGTAAATCCATCGTT -AGAAGTTGAAGCATTCGCCTGTGCATCAAAAGTGTTCACATTGATCGCAG -TGGTAAGGACGTCGATGAGCTTGTGCACATCCTCGATGAACACCACGTGG -CATCGACGATCCGTTCCATCCTTGTTTTTTGCAATGTAGCCGAACATTAG -CTCCGTGTCCGTACCCTTTTGGCCTTGGGCTCCGAATGAGAAGAATGAGA -AGGGATGACGTTGAATTAGACGACTTTGTTTTATGATTTTGATCATTTTC -GAGGAAATGTTGATGTCTACGGGGAAGTTTTCTTTTTTCACTTCACCGAT -TACCTGAAAATAAGGATGGTTTACCTGGGCTTTTTCATCGACCCGTGAAG -TGTCGGCTGCAATAATTTTAGTCGAAATTAGTGATAATAACTTTTCTATG -AATAGCGGCTGACATCATTTAGCGCGATTTTTGATCGACCTGTAAGATGT -CGGTTGCTTTAGTACATTCTATAGTGGCAGGCTTTTGGCTGAATTTTACT -GGATATATAAGCTATCAAAATTTGAGCATGTCGATGCACCATGTAATTAT -CTCAGTTTATTTCGCTGCTATCAAAAAGTGTTAAAATGCAAAGTTGTAGT -AGAAAAAACGATAAATATTTTGTCAATTGACACTTTTTCAAAAAAAAACC -AAAACCAGCAGAGATATAAGTAGTCAAAGTTGAGTCAGATATTTCCAGTC -GATGCACCATGTAACCTTTCTCTAATAACCTGTGAGATGTCGGTTGCTAT -AATTTTTTAGTCATTAATTTGGACAGCTTGTTAATTTGAAATAATTCTTG -ATGATATCGTAGCGCGGCCGACATTTCACGGGTCCTTTTTTTTAAACATT -TTGCAAAGCTGGTCATGCATTTTTGGTAACACTTAATATCAAATTAATGA -GAAAATGTTTTGTAAATTTTTACCATTAGCCATGCCCAGAAAATGGCAAG -TTTTTTATTTTATTTTCTTTTGTTTTTTTAATTCACAAAAAAAAACTCAC -CCTACTAACAACTGGATTGATTTCTCGAGCCGCAGTCACGCCAACAGTAG -CTGCAACGTGTTGTATACATTCTCTGAAAATTGAACAGTTACTTTATTAC -GTAGATTTTTTATATATTTGAGCTTGCAGATGTTACCTGCCTTCATGCCT -GCCTACCGCCTGATTTCTAAATTTTTGAATAAGATTTTTTTTTGATTTTA -AGCCATAAGAAAAACTAACGAAACAACTTGAACTCTCATCTCGGAAACCA -TCACGTTAATTGACTCGACTACTGGAACACTTCCGAGGTACTGAAAGACA -ATTTTATATTTTCGGGGAAAAAACTAATAAAAAACTCACAGTAGCCGACA -GAGAAACCCCGCTGCTCCGCAGCTCCTCTGCAAATGAGGGCTCCACGTTG -AGCATCGCCGCAAGTTGATTTTTCGACGGAATTTTTGATTATTTTTAGAA -AAAATCTAACTCGAAATTCGTTACAACCGAAATTTTGCAAGATTGAGTGA -ATGAGGAATGACCGGGAGAGAAACGGAGACGCAGGCGGTGAGCGGAGTGG -GAGAGAGAGCGCGCGAGACGGAGAGGCGCAGGCAGTGGTAGGGAGGAGAC -AGGGAAAGATTAGATTGGTGTTGACTGGGTGAGTCAGCATTCTAATAAGT -TAAGTTGACTCATAACTTTGTTTTTTGATCAGAGGGGGGGGGGGGGGGCC -GTGGCCTAGAAATATCATTGCCTACTTATTACGTCACTAATGGTCTAGGA -AACCTTGATAGCTTTTTTGGAGAAGATATGACGTCATTGGTGGACTAGAA -ATCTTATTTTAGTTCTGGAAGAGAAATATTTTGACCGTGGAAGACAAATT -AATGATGTGACCGGTGGCCTAGAAGTTTCAAATTATACCTGGGGAAATAA -ATGACGCCACTGGTGGCCTAGAAAACTTAAACTATGCCTGAAGACGTCAC -CGGTGACCTAGAAATTTAATTCTGGCGACGTCATAGAAATTTGAATTTTG -ATGAGAAATATAATTTTATTGGTTTTCTGAAAATTGAATTTTATTGATTT -TTTGGCAACCGGGAAATTGGAAAATTTAATAAATTGAACAAATGCAATAA -AATAAGCAGTTTTTCAACAGTCATTACTTTTTTCCGTGAACCGTTTTGAT -TTTAATTTGTAAATCTAGGTCGGAAAAGTCACACACACCGAGGAGCTAGG -CTTCCCTCATCCTCCCTGGATCAGTCGGTAACTGCTTCGACTGGGGAGTG -GGAGTGGGAGGGGTGGGATGAGTTCAATTCTTCTGGAATTCCATAATTTT -TATTTTTGTTTTTTTGCGCCTACATATACCTGTGAAAATTGGAACTCGAC -ACAAAAACCTCTCTAGCGCGGCTTAAATTTACTTCAATTCTTCCGGAATT -CCATAATTTTTATTTTTGTTTTTTTGCGCCTACATATACCTGTGAAAATT -GGAACTCGACACAAAAACCTCTCTAGCGCGGCTTAAATTTACTTCAATTC -TTCCGGAATTCCATAATTTTTATTTTTGTTTTTTTGCGCCTACATATACC -TGTGAAAATTGGAACTCGACACAAAAACCTCTCTAGCGCGGCTTAAATTT -ACTTTCCTGTCCCAAAAACTCATCTATAATATTTTTAAAAAATCTAGAAT -CCAAATCTATCAGATTTTTTTGAATTTTTGATTTTTTTCACATCGAGATT -CGGAATCAGCGGAAAATTTGGAGTCAATTAAAAATATTTTCCAGATTTCG -ATACTCCACATTTAAAGGAGATCACCTGAAACGCCAGAATATGATACTTC -ATACTCTCCATCTTCTCGCTTTTGAAAATAATCAAAAAAAATAGTCGCCG -TATTTATTGATATAGAAAAAATACCAACAAAATTGTAACTATTGATTAGC -CATACAGGGTCTTTAAAGTCAACATTCATAGTGGGAGCTGGAAATAAAAA -TATATAATAACTTGTTAAAAGAATTTATTGTGGAGTTATAACACCTATAG -ACAATTAAAATCACCTGCTGCCTAAAGAGTATTTACCAGAAGCAAAGGTT -TTCTGAATTTAGTGGAGTTTGTCCATTTACTTTTTTGCATGTTATTGAAT -TGAAATGATACATAGTGAAACTAGAGGTAAAATTATTTACTAGGTTTAGG -CTTAGGCTCAGGATTAGGCTTAAGCTTAGGCTTAGTTTTAGGTTTAAGCT -TAGGCTTAGAATTACCGATAACTGATAACTTTTGCAAATTTAGTTTCTGT -AATATCGGCAATAGCCAAAATTGCCGGAAATTTCTGCGATTCGAATAAAT -AAATTGAAATAAAAATTAGTTCCTAAGATACATGTTATCTTTTTGCAGGA -AAGTAGTAAACTCATGAAATGAGAAATTGCGATGAGGAAGGAAACATTCC -TATGGTTCCTTAGACAATTTCTCACCTTACATTAGTATATAATATATAAA -TGATGAATTTGACTTTTTGAAATTCTCTTCAATAAATACATTTAGTTGTT -TTTTTTTTAATGAGTAAAGTTGCAGAGTGTGGAATTTGCTATGAGGAATA -TGGTGAATATTGTTGGAAATTTTTCTGAAAGTTTTCATTTTTTTTGGAAA -TTTAGAGAGTTGGGTGTAATTACTGAAAATTATGTTTTAAAAAAATTATT -TTAATGATTTTTCAAATTTTACAAAAAACTCATTTTTAAATCATTAGAGG -TGAAGTAGCGCCAGTGGGAAGATTGTTAAGATCCACTCCTTTAATCCGAA -AAGTACCGAATATCATAATAAAACTTTTCAAAAGTTTTTAGAAACTTTTT -TATTTACTGTCAAAAAGTGACAACCACTCAGTTTTTGCCACTCATAATTT -TGGAAGTCGACCAAAAAAAAAATTTGTTTTCCTACATTTTTTATACTTCA -ATTTTGTTTTAATTATTTGTATTGAAAAATTGTAGGGGTCGAAACATGCG -ACAATCCTGTCAGTTTTCAAAAATCTCTACTTACAAAATATAGGACACGC -TCCAAAAATGGATGTTTTTACAGACAACGCCATCCGAATCCCTTGCATCG -GCACATGCGGTCATACGTTATGTGACAGTTGTCGTGAGAAAATTAGAGAT -AAAAAATGTCCTCAGTGTAATCAGAAAGGCGCATTTGTTGTGAAAAATGT -GAATAAACAATTTTGGGATTTAATTGTTTTTTCGCAATTTTTAAAACCCC -AGGAAGTGGAAGTTGAGGAGACTGAAGAGGTTGGTTAGAACTTTTTTTTT -GGATTTTTCGGTATTTCCGGGAGGTTATCCTTTGGGCCTAAAACTAGGCC -TAAGAGTAGGCCTAAGCCTAAGCCTAAAACTAAGCCTTAGCCTAAAACTA -AGCATGAGCCTGAGCCTAAGCCTAAGTCAAGCCTAAGCCTAAGTCTGCTG -CTATCAAAAAGTGTTAAAATGCAAAGTTGTAGTAGAAAAAACGATAAATA -TTTTGTCAATTGACACTTTTTCAAAAAAAAACCAAAACCAGCAGAGATAT -AAGTAGTCAAAGTTGAGTCAGATATTTCCGGTCGATGCACCATGTAACCT -TTCTCTAACAACCTGTGAGATGTCGGTTGCTATAATTTTTTAGTCATTAA -TTTGGACAGCTTGTTAATTTGAAATAATTCTTGAAGATATCGTAGCGCGG -CCGACATTTCACGGGTCCTTTTTTTTTAACATTTTGCAAAGCTGGTCATG -CATTTTTGGTAACACTTAATATCAAATTAATGAGAAAATGTTTTGTAAAT -TTTTACCATTAGCCATGCCCAGAAAATGGCAAGTTTTTTATTTTATTTTC -TTTTGTTTTTTTAATTCACAAAAAAAAACTCACCCTACTAACAACTGGAT -TGATTTCTCGAGCCGCAGTCACGCCAACAGTAGCTGCAACGTGTTGTATA -CATTCTCTGAAAATTGAACAGTTACTTTATTACGTAGATTTTTTATATAT -TTGAGCTTGCGATTGTGTAATCAAAAATAAACATTTGAAGCATGATACGA -AATATTTGAACGATTTTTTTTCGGAAAATCAATAAATGAAAATGGAGTTT -TTTTTTTGGATTTTAGCAAACTTCCCAAATGACGGAAAGATCATATGAAG -CGATTATTTTTTCTTTTATAAACCTGTTCAGGATTTGCATTATTATGAGA -AAATCCTAGGCCAATTAGGCTAGCATGTACGGAAGTATTTTTTAAAAATT -TATAAAAGTAATGAAAAGCTGATATTTTCAAAATTCCAGAATGACGGAAA -AATCATATGAAATGCTTTTTTTTTCTTTTTTAAACCTATTTAGAATTGTC -AAAACTACCAGAAAATACTAAACAAAATAGCTTAGCTTGACCGGAAATAT -TTTTAAAAAATTGATAAAAATAATGAAAAGCTGATATTTTCAAAATTCCA -GAATGACGGAAAAATCATATGAAGCGATTCTTTTTTCTTTTATAAACCTC -TTTAGAATTGTCAAAACTACCAGAAAATACTAAACAAAGTAGGTTAGCTT -AACCGGAAGTAATTTTTACAAATTGATAAAAATAATAAAAAGATGATTTT -TTCAAAATTCCAAAATGACTGAAAAATCATATGAAGCGATTCGTTTTTCT -TTCATAAAATAGTTTAGAATTGGAATAATGATCAGAAAATACTAAACAAA -GTAGGTTAGCTTGACCGGAAGTATTTTTAAAAAATTGATTAAAAAAACTG -ATTTTTAAAAAATTCCAGAATGACGGAAAAATCATATGAAGCGATTCTTT -TTTCTTTTATAAAGTAGTTCAGAATTAGCATTATTATGAGAAAATCCTAG -GCGAATAAGGCTAGCATGTACGAAAGTATTATTTAAAAATTTATAAAAGT -AATGAAAAGCTGATTTTTTAAAAATTCCAGAATGACGGAAAAATCATATG -AAGCGATTCTTTTTTCTTTTATAAACCTGTTCAGAATTGTCAAAACTATT -AGAAAATACTGAACAAAATAGGTTAGTCCTAGGAAAGACTAGTTAGGAAA -GAATTCTTAAAATAGGAAGTTGAACAGAAAATCTGGAAGATCTGAAATCT -GGAAAAAGGAACTCTCAAAAATTCAAATTTTGATTTTAGGAATATATGGC -TGTGTAGTCTTCATAGACAATCAAAATAAATTATTTTAATTTTCAACCAT -CTTTATGCACGGGCTTCTGTCCTTCCTCATTGAATTTTTCGCGCTCCATT -GACAATCGCCTGCCGGACAACGCGTGGGAAAGTCGTGTACTGCACACGGA -CAAATACATTTAGTTTTACAACTGAAATCGAGCCGCGACGCGACACGCAA -CGCGCCGTAAATCTACCCCAGATAAAGCCGAGCGAAATGACCTAGTTCGG -CAAACTCTTCCATTTCAATTTATGAGGAAAGCCAGAAACCCGTTTTTATG -TAAAAGTTCATACTGTGCAGTTAATTTAAACAAATCAAAATTTGGAAAAT -GATTTTTGGCTTTGTGCAAACTGTAGCGTTTTAGGCGTTAAAAATCTGCC -AATGAATAAAAAATTTCTTATAAAATTTTTAAAAAAACAGTTATTTGCCC -ATTCCGTTTTTCAACATTTATCAATTACGGTTCCAGTGATCAAATGCTTA -CACGGAAGTCACTGATGACGTTGACTCCATGTTTGGTTGCGATGTGAAAA -AGGTCGTTTTTTGCCCAAATCGAGAAAGGTCACACACACACATAGACATA -CACAAAACCTTATATAATTTGTAAGATATTTTGTTTGATTCGAGAAAAAA -AAGAGAACAGGTATTCCTGCGGCGTCGTTTTTCTAAACGGCAGGAAAAAT -TGAGAGAAAGAAAGAGAAAGAAAAAAGATGGAAAAAAACAGTTTAAATAT -AATTATTAGGTTTAATTATTAGGGGTGCACCATATTGTCGTAGGGGCCCT -TCTCCAAAGTTTTAAGTTTATCGATAGAGCGTGAATACATAAAGAGAGAA -ATTTGACCTGCAAAAAAAATATATGGTTGGTTCCCATGCCATAAAAAATC -CATGCAACAAATGAAAACAACACCTGCCAAGTGTCCTCCGCCAGTCTAAC -CAAGTTTTTCCCTCCAAATGTTCCGTGACATTGTTGTTTAAGGCTTTGTA -CTTTCCGCAGCCGTCTTATTCTTCCCGAAGTGTTCTCCCTAGATAATCGG -GTTTTTTTGTTGAATCGGCTGGGGGTAATGATCGGAGAAGATATATATGA -AATAAATGAATAAAAAAGGAACACCTTTTGGAGAGGCAATGAAAAAGCAA -GCTATGCAAAGTATTGATCCGTTGTTATGAATGGGCTTGCTTAGGCTTAG -GTTTTTTTTAGGTTTAGGCTTAGGCTTAGGCTTAGGCTTAAGCTTAGGCT -TAGGCTTAGGCTTAGGCTTAGGCTCAGGTTTAGGCTTAGGCTTAGGCTTA -GGCTAAATCTAGGCTTTGGCTTAGGCTCAGGCTTGTGCTTAGGCTTAGAC -TTAGGCTTAAGCGTAGGCTTAGGCTTAGGTTAGGCTTAAGCTTAGACTTA -GACTTAGACTTAGGCTTAGGCTTAGGCTTAGGCTTAGGTTTAGGCTTAAG -CATATACCTAGGCTTAGCCTTAGGCTTAGTCTTAGGCTTAGGCATATGTT -TAGGCTTATGCTTTGGCTTAGGCTTAGACCGTGTGTATATCCGAATGTGT -GTTTTATTATGTTCCTGATTCTGAAATCATTTGTTAGTTTAATATCTACA -AACATTCCAAACAGTCTGTATGTGCTGCCAGGTGGCATTTCCTTAATCAT -CTCAAATATATTTGGTTTCATTTCCCCCCATCGCAAAATCCCTTTCTTTA -CCTGTCATTTCGCCTTTACGTTCAACTTATTTGATTTTGTTGTTTTCAAG -TGATAATCACGATTAAACAACGAATGAAAAAAATAGGTATGGAATTACTA -CGGTATTCTTTTTTGCCTATCCTTCTTTCTCTCATTTTCCTTTTGTCTTC -TAACAAGTTCTGCACTTTTGAGGTACATTTCTTCTCCGATTTGATCAGTC -AAAGCTATTCGGTTTAAACCATCTTCTATTCAATTCTGATGATTACTGTT -AGGAACGAGTGGTCACTTAATTCAAAAGGTCGAACTGTTGTACTAATTGA -ATTGGAAAATTTGTAGGTTATTTGACGTTTATCAGAAATTGAAGATTTGA -TATAAAATTTGGTAAAAATGAAAAATAAAGTTTCATTTAGAGTAGTATTC -TGGCTTCCCTTATAAATTGAAATGGAAGAGTTGGCCATATTGGTTCGGCC -ATATCTGGGGTAGATTTACGGTGCGTTGCGTGTCGCGTCGCGGCTCGATT -TTAGTTGTAAAACTAAATGTATTTGTCCGTGCGGAGTACACGACTTTCCC -ACGCGTGGTCCGGAAGGCGATTGTCAATGGAGCGCGAAAAATTCAATGAA -GAAGGCCAGAACTTCGTGTAGTATTAGCAGACCAGGTTTTCACATAAATT -TGAGCGGTGAAACTAAAATTATGACATTTTTACGCAACTTTATGGGCCAG -AAAATTTTTTTTGGAATTTTTTTTTGAAAAAAATTCAAAAATTTTGATAA -AAATAATTGCCAAAAAGACAAATTTTGAGTAATTTTACTGCCTCTAAGAG -TAATGAACAAATGTTTCCAACTTTTTGCAAATTACTTTCTTAGTTCCCTT -GCAAATCTATATAGATTGAATTTGGCCTAAAACCTAACAATTTAGCTGCA -ATATTGTTACAAAAATTTGGGTACAATAGTGTGTTTATTGAAACATGTGT -TCTTGAAGTTGGGTAAGAACAATTGATGAAGGTTGTACCAAATGAACAAA -AAATGTTTTTAGAGAAAGTCTGAAACATTACCTTATTTCTGATGGTCGTT -AATCAAATTTTACTGTAACTGTTATGAAACCTTGGGCATCGTATTTTCTC -TATTAGTGCAGCCGACCACTTTACTTTGAGACGTTATATCTTGTTTATTT -TAAAGATCTCAATATTTTAATAACTACAAAATCATAGAAAAAGAACCAAC -AAAAATTTTGTTAGTTGACAATTTTTAAATAGGACAAACGATAACTGAGC -TATGAGCTGTCAAAGTTGAACAATGGTGGTGCAATAGAAGGAACTAATAG -AAAAAATACGGTAACCTAAATTTTTATGTTAAAATAAGAAGTAGCGGGTT -GATTCCAGAAGTTTTTTTTATAAGGTAACCATCCGCTGACCGCGCCTCCG -GTATCCCTTCAAAAGGCAAAAAGTAAACTTTTCTAAAACTACAGTAATCC -TACAGTAGTCCTACAGTACACCTACAGTACCTCTACAGTATCTTGACGTG -ATCCTCTACCTACTCCCAACCCAGTACCTCTTCAAAGGCTAAAAAGTCAA -AATTTCACAAACTACAGTAATCTTACCGTACTCCTACAGTAACCCTACTG -AACCATTACAGTAATTTGACATTATTCGCCACCAACTCCAAACCCAATAC -CTCTTCAAAAGCTAAAAAGTCAAAAGTTCACAAACTACAGTAATCCTACC -GTACTCCTACAGTACTCATACAGTACTACTACAGCACCCCGAACATATCC -CTCCACTAACCCCAAGTCAATATCACTTTAAATGACGAAAAGTCAATTTT -TCCAAAACTACAGTAATCCTACAGAACTCCTACAGTACCCCTACAGTACT -ACTACAGTACCCTGACTATGTCTTCCACTAACTCCAAACCAATATCCCTT -CAAAAGACGAAAAGTTAATTTTTTCAAAACTACAGTTATCCTACAGTACT -CCTACAGTACCCCTACAGTACTACTACAGTACCCTGACTATGTCCTCCAC -TAACTTCAAACCAATATCCCTTCAAAAGACGAAAAGTCAATTTTTCTTTT -TTTTAATTGAAATTGTCCGTTATTCCCTATTATGTAATTTTCCAAAAATG -CTGCCAACCTCAAAAACTGTTATGTTTTTGTTCATACACATTTAGCCACC -ACCTGCATATGACCCATAAAAAACCATACTTGACACCTGACATACTTGGT -TTCGATACAAAAATCGAGAACATTTGGCAAACCTGAGTTGTCATTCTATT -GGCTATTCACCATGTGCTCTAATAAAGTAGAACTTGGGAATATGTGTCAA -GGCTGTAAATGGGGGAGTAGTATTGTTAACATATGTACTGTGCAATATTC -CAGATGCCAAGTATACAGATTATCTAATGACAATAGGTAATTTGATTTTT -CAGGTGCTATAGTGCTATATTGTTCCAAATACATGATTTTTTTTTAGAAA -ATTGAGGTGTGGTGTCGAATGTCCCATAATTTTGGATAATCAATGGTCTT -TAGCGAAATCCTAATTTGAAGCCGTTTAAAGCTCGAAAGTGCAATACATT -TACAACTGCATTAGCGTTTTATTTTGCTCTGAAAATGACAAATACACAAA -ATTTTGGATTAAACCGCCTGGTTTTAAAACCGAGCTTAAACAATTTTAAT -TTTACAAATTAAAAAGTAAAAATTTTCTAAATTCCCTACACTAAAATTTA -GCGTCCACATCACTTTCTACCCCTTAATTAATTTTTTACTACATTTAACA -AAAATATTTTGAACCGGCAATTGTCAAAATTGCCTATTCCCAAAAATTTC -CAAAACCGGCAATTGCCAAAAATTTTCAAAGCCGGCAATTGTCAAAATGG -CAGCAAACTTCCAAAACCGGCAATTGCAGAAATTGCCTATTGCCAAAAAT -TTCCAAAACCGGCAGTTGCCGAAATTGCCGAAACTGCCGCAAACTCCCAA -GACCGGCAATTGCCGAAATTGCCGGTTGCCGAAAATTTTCGAAACCGGCA -GTTGCCAAAATTGCCGCAAACTTCCAAAACCGGCAATAGCCTAAATTGCC -GATTGCCAAAAACTTCCAAAACCGGCAATTGCCGAAATTGCCGATTGCCA -AAAATTTTCAAAAAAATTTCAGAAATTGATACATTTTTTAATTGTTGTGG -GAATTTTTTTTAATAAATTTGAAACATATCACATCCTCCTGTTTTCAAGA -AAATTAATTCCTTCAGTTTCTGACGACTCAAATCCTCCTCAAATGCCAAA -TTTATTTTGGGAAACTATACCAATTCTCAACAGAATTTTAAAGGTGGAGT -ATTGCCATTTTGTCTAAGTACACTTATAATAATCCAAAACAACCGAATAT -CATAGAAAAACACTCGAAAAAAAATTTTTTTGGTCGACTTCCAAAATTAT -GAGTGGCAAAAACTGTGTAATTGCCACTTTTTGACAGTAAATTAAAAAAT -TTCAAAAAAATTTTGGAACGTTTTATTATGATATTCGGTTATTTTGGGAC -CAAGTAAGTGGTTTACTCCACCTTTAAAAATTTAGCCGTTATACAAACTC -CAAATATATCCATTATTCTTTCCCCTATACCCTACCCATAACAAAACAGA -AAAATTTCAAATTCGCATCGTCGCAACACCACAGCATGTCCATTTGGAGT -GATGTTCCGAGAGAAAGGTCAAATCGTCTACCTCCTTATTCTAACCATCT -CTATGCCTATATATGAGGCTTTAATGAACGAGCGCCGCCGCCGCGCGCCT -AGCGCCTCCGAGTGTCGCAAAGTGCAACTTGTTTGCCACTTAACCTGAAT -TCTACTGTGTTGTATTATGTGAAGAATCGGATAGATGTAATGTGTAACAA -TAAAAAACCACGACGACGACTGAATATGGAATCGGCTAGGTGGTGCAAAA -GTTTCGGAAAGTTTTGGTACCATGGTACCTGTGTAAGCTCTGTGAATTTT -TGAGCCACGATGGGTCTTGCAACGATATTTCGTCGAAACTTTATTCTCGA -AAGTTTGTTCAATTTAAATTTTCCGCAAAAAACATTTTTTGAAAATATTT -TTAAAAATTTGAATTTCTCAGCATTTTTTTTTTAATATGAAGTTTCCAAT -CCCTCAAAAAAAAATTTCAGAGAACATTTGAATTTCCCGGAAACCCCAAT -TTCTGAGAATTTTTCAATTTCCCTTTAAAATAAAATTTCGGAGAAAATTT -GAAATTCCCGCCAAAAATTTATTTTGAAATATTTGAATTTCCCGGCAAAT -ATTTTTTTTTTTGAAAACTTTGATTTAACGGAAAACCCATTTTCTGAGAA -TTTTTGAATTTCCAGTTTAAAGAAATTTCCACGGGTTTCTGGCTTCCCTC -ATAATTTGAAATGGAAGAGTTTGCCAAACTAGGAAATTTTGGTTCGGCCA -TATCTGGGGTAGATTTACGGCGCGTTGCGTGTCGCGTCGCGGCTCGTTTT -TAGTTTTAAAACTAAATGTATTTGTCCGTGTGGAGTACACGACTTTCCCA -CGCGTTGTCCGGCAGGCGATTATCAATGGAGCGCGAAAAATTCAATGAGA -GGAGGCCAGAACCCCGTGAATTCCAGCAAAAAACTTTTTGAAACTATTTG -AAATTCCCACAAAAAAACAGTTTTGCTGAGAATGTTTGAATTTCCCCCAA -AAATTTGACGGAATACTTGAAATTCAAAAAATGTTGTGAGAATATTTGAA -TTTCACGGAAAACCTGTTTTCTGAGAGTTTTTGAAAATCCCTCAAAAAAA -ATTTCGGAGAAAATTTGAATTTCCCTCAAAAAATTTCGAGAAATATTTTA -AATTACCGGCATATTTGACATTTTGAACTCCCCACAAAAAAATTTTTAAA -AATATTCGAAATCCCGGAATAATTTTTTTCACTATAGTCAGAAAAGATCA -ACTGACTAACTTTTCACAAACTACAGTACCCCGAGCATAACCCCCATTAG -TTTCCGATAGCTACAGTAATCCTACAGTACTCCTACAGTCCCCCTTCATA -ACGTTACCCTGATTACTAAAAAATGCCCTTTTAATGCGTATTATCACATC -TCACATGATTAAGACCAAAAGGGGTGTCCTTCAGATAAATACCCGTTCAA -TTTTTTTTACTGCAAACCAGTAGACTTATCTTTTAGGTTATGAAGAGAAG -ACTAAGTGTAAACAAGGTCGTTGGAAGTGATATGTTAAGAAGTTAACGGC -AAAATCGATGCCAAAACTTTCTGAGCTTTGACTTCTACTGCTCAGCTCAT -TCCATAACCATGAGCTCATCAACTTGCCCTCCCCCCCCCCCCACTATCTT -CCACCACACTTTCATTCCTCATTGTCGCAACAAACCCATCTCCGGATTCG -TCCTTTATATGTGTCACAACACAGGAGTACTCCTTAGCGCGCCAACTTGT -AATACCCCCAGCGACTTGGCCCAGAAACTTTCCTCTAATCGCATCCACAA -TATGGTCTGCAAGTACAAGATTAGCACCCCCCATTGTATGTCAATTTGTC -TAGTTTTTTATTCCATTGAACTATTCCACAATGTAGAAAATTGGGGTTAT -GGTACATCGAAACATGGTGCATCACATAATGGTGCGCCCAAATCATGGTG -CATCGTCAAAAATAAGAATCCGAGTCCTCCCAGACATCCATGTAGGTATG -CACTTTCCCGCCTGTTCCGCATCTAACCAACGATTAACTGAATCTTTACG -ACCCTCTCTCCTCCGAATGATGTTGAAAAATGTCGCGCCAGCACCTTTGG -AGGGGGGGGGGGGGGGGTTAAAAAGATTCCAATCTACCACCTATCTTCTC -CATTTATCTTCAATTTTGCCCCCCGCGCTCTTAGATTAAATGAACTTTTT -TGGCTAAATCACAGCACTTTTTATTAAATCTAGGAACTGCATCTAAACAA -TGCATGTGGTTACAGTTACCGAAAAATGTTGAAAATTTGGGAAAAGTGCC -AAAATGTTGAATCAAGTCAGAGAGATTCGAAGACGCTTCTAGCAATTTTT -TGACAGTTCCTGTCCCCTTTCGGTAGATTTGCGGCAATTCTCGGCAGATT -TACACCCGCTTTTGGCGGTTTTTCGGCAACTTTTAGCAATTTTGGCAATA -CTTGAAAACTTCTATTTAGCAACTTTTAGTCAATTTTCTGTAATTTCTGA -GAACTTCCGATTTTCTTTTACATTTTTTTCCGATGCACCATGTCCCGAAC -GCTCGCGCCACGACTTTTTTATTCATTATAGCAGGTCCTGTTTTGATGCA -CCATTTCCCAAAGAGCCCTGCAATGCTGGCTCATGTCACGATGTACCATG -TCCTGAAATGTCCCACCACGTTCCGCAACGAGGTTTTACTGCCAAATTTT -ATGCAATTCCAAAATATTTTTCGACAATTTTGTTAGCTTTTCCCTTTCAA -AAAAGTTCAAAATTCTGTTCCAAAACCACACCAAAAAGTCGAAGATCCGC -AAAATCTGCACTTGAAACACTATTTGACAACCCCCGTCTCAGGCTATCAA -AAATGCATGCAGTCATATATATGTGCAGCTTGTGAAACAAAAAACGAGAG -GGATCAGGGGCTCAGTGCTCAAGGTAGATGTGCAACTCTATGAAATTGAT -CGGTTATGCATGGCAAGTAAGAGTGACAGGGAGCGAAGTATGATGATGAT -GATGATGATGGTGTGGAGAGAGCGCAACGTATGAGTTATTGAATTTTCGA -GAAAGGTTATCTTTGATGGGGGGGGGGGGGGGGGGGGGCAGTTCATGGTG -CATCGAAATATAAAAACTTTCGTGGAGATACGCTTTTTGAAGAATTTTGT -GACACCTTCTTGGTGCATCGAGACAGTTTTCGTGGCAAGACCTGATTTGG -TTGAAACTCTGAAGCCAAATCGCGCTCTACGATTTTGTGACCAGGCCAAG -GTTTTGGTGGCATGGTGCATCATAGTAAAAATTCAAATCCTGGGAAAAAA -AGCTCTATATATAATATCCAGCCATGGACCGTACCTCCGGCGTGGCCCCC -TTCTGGAGCTAAAAACTAATTTTTCTAAAACTACCGTAACCCTACAGTAT -TCCTACCGTACCACTATTGTACCACTACAGTACCCCGACTATATCCGTAC -ACTAACCCCAACTCACTATTTATCCAGAAGCCAAAATTTCACAGACTACA -AAGACTACATAGACTACAAACTATGAACACACTGAATAAGCGCTTCATAT -ATATAGTGAATGATGGTGAGATCCATGTGACATGGTGCATTGTGACAGGC -ATTTTGGGAAGGGGGCTTTGAGCACAAAACAAAATCTTTAGTTATTTTTC -CGACAATTTCCAATAAAGTGAAGTTTAACAAGGTCGTGGCGTACTTGTTT -CCAGTTTCCTCACGAGTGTTGCATATTATACCGCCAGTAATCATTGCGTT -ATCACATAGTTGACAACGGTTTGATAATGTCACAAAGTGTGGGGGTTTTG -GAAGTGGCATCAAACCAGCATACGATTATTAGGACGTGATGAACTTATTT -TACCTGAACATATTATTAGGTGGTGGAGCTGGGAGCTTAGTATTTGGGTT -TTGAAACAATGCACCATGTCCTAAAAGATGCTTTATTGCTAGGTAGGGTG -CCGCGACTTTTGTATTCATTATAACAGGTTCAGTTCCGATGCATCTGCAT -TTTTTTAATACTGTTCTTATTCTTAGCTCAATAATTCAGGCTGAGGGCCG -CAGGCCCGAACACTTTTGGAAACTGTGGGCCAGCTTTAATCCTATTCCAA -GCAAATTGTTATTCGCTCAAGCCAACTAACCAGATTTCCTCAAACTTTAA -TCGCTCATATCTCAGCTCAAAACCATAGCAGAGACTTCGTTTTTTAATCA -ATCGATCCCAAATTTTAAGGAAATCTCGAATATCCCTATCTCAGGTTTGA -GGCGAAGCCGAGAACCTGCGCAAGCTACCTTTTTGGGCATCCCCATTCCC -GAAAGGCTGGCGCGGCCCTGCCGCGCTAGTCATTTGCCAAAACGTCAAAT -TGGGTCATGTCACGATCCATAATGCCTTGAAGGGTTCTTCTGCAACAGTC -CTAAAAGAAACTTAGCACTCTGGTTGAGGTATAGATGCACCATGTCCCAA -AGGGTCCTGCCATGTTGGGACATGTCACGATGCACCATGTCCTGAAAGAT -CCACGCTCGAAAACTACATTGTTCCGAGTGTTTACCTCTATTTCAATACG -AAATTTCAGCAAATTTTCATCCAAAATCATGTCATTCTAACAAGAGCCTA -TCATGTTGACTATAGGGTCGTGACGACCTGCTCGAGTTCGCCTCGCTCTC -CTGTTATCAGAATAGCTATGCGTTAAGTACGCGATGTATTGACAGTCACG -ATTTAACGCTTCAGTTTTGTAGTTTTGCTGGAAATTTTTGAGTTTTTCGT -TTTTTCTTGGCTCAAATCGAGTTTTGCTTTTTTGACGATTAAATAATTTA -TTCAAACTTAGCGCATTTTTTGACTGATTGTGAGACATGATGCATCGTGA -CAGGGCTTAATCGTGGCGAGACCCTCTAGTACAAAATTCTTTTAAATATC -AGTAAAAGCATTATAATCCATGATTCTATACTTATTTTATGGAATTTTCA -GCCTTAAAAAAATCTGAAATTTACGATGCTAAAATCTACTCAAATTATAG -TTTCAATCCAAAATTTCTCAGAAAAACTAAAATTAGCATAAAAATGTTTT -GTCTGAAATAGCCCTAGATTCAAATATCCCTAACACCCCAAAAAACACCA -ATGTACATCTCCTCTCCGTAAATATGTAGTTTTACAACCGCCTCTCTGTT -GACTGGGAGCCATAAATGTAGATATATTATCTTTCCAGATCGCCTGCCGG -CCCCTCCCACCTGATTGTAAAACTGCTCTTTGCTGTGGCGTTTTATCGAC -TTGTTTTTCTTATATATTCCATTCTACATACCTTAACACATTTTCTTGTA -TATTTTCTATACACTTTTTTAACTATAAAAAAATGCAACTCCTTTTTCTT -CGATTTCTTTTTATGCAAATTTTTTGGCTTAAAGGTGGAGTAGCACCAGT -GGGGAAATTGTTAAAAACCACTCCTTTGGTCCGAAAAGTACCGAATATCA -TAATAAAACTTTTCAATATTTTTTTGAAATTTTTTTATTCACAGTCAAAA -AGTGACAATTACTCAGTTTTTGCCACTCATAATTTTGGAAGTCGACCAAA -ATGTTTTTTCTAGATTTTTTATAATGTAATTTTGTTTTAATTATTTGTAT -TAAAACATTGTAGGACAAGACAGGGCCGCAACATAAGATATTGCTTTGAA -TTTCCTCAAAAGCTCATATTTTTCAGAATTTTGGCAATTTGCCAAAACTT -GGTATTTAAAAATTGTTAGAGATAACTGTATTTAGACAAAACATAGAACA -TTTGTATTTCAAAATAGTTCAAAATTCTAGTTTTTGAAATTTTGCGGCCA -GACTGACCCCCACGATGCACCATGACAAATTGCAATTTTTTTTTCAAAAA -TTGTTTTCCAAAGGGGCGTGTTCCAAACATCTGACCCAAGTTTTCCCGTA -GTTCTTCTCTCCCCCAGCGGGGTAAACACTGCACTTTACGACTCCGCCCA -GTGCTTTTTTTTTCGCAGAAACTGAGAGAGAAAGAAACATCTGCGTCTCT -CTCCCCCAGTACGCTCGTTCCCGCCCCCCACCTCGATCTGCCAGACCACA -CCGACCTGATTCGAGATTCCTTTTCTTATATGTATATGTTTTTGGAGAGG -TGATCTTGTTTTTTTTGTTTCTCCTTTGGTTTTGTTCTCTATGCTCTGAA -CTTTGGTCTCCTACTTTTCTACAGTTTTTTTTTAAATATCCAAATTTTTG -AAATAGAGGGTTGATCTACATGACCCCCATGCTTAGTCTACTATAATGCT -ATATCTGATGTTCCTCCGAATGGCCTGGTAGGTGAAGGCTTTTAGCCCAG -TGAGCCGGCTTACCAAGTCTAGGACCATGGTTCTTACAACTTAAGGCCCA -AAAAAAGCAGGCATCTGGCCTAACTTCCCCCTCACTAAATCTGTAGTAAT -ATATAATTTCTATCATACTCCATCTTTTTTTTCTACCTCTTATCATGTTG -TTATTGAGCAGCAACGCCCTTATATTGTTTGGTATATATATTTGATATAA -AACCTCGTAGTAAATTTTATTTTACACAACAACATTTATTATTTACTTTT -TTCATACTATTTTTTTTTTGCAGAACGAAAAAAAAATGCTATTCACAATT -GAGCAACTGGAGCTCATCAAAAAGCTGCAGCACACCGGGATGTCATCCGA -TCAGTTGCTCAAGGCTTTCGGCGAGCTGGAAGTTCCAGAGCAGCTTCAGA -ATAACAACACAATTGCCGCAGCCCTGTACAGCCCACTCCTGGTCCAACAT -CTCACAACACCCAAATCAGAGACTCCAGTCAAACTCACCGTGCAGACAGT -GCCGACACCTGTGAAGTCAGAGCCACAATCTTCAAATTGCTCATCACCAT -TTGAGCATCCGATATGCTCGAATGCTCCGCGGCCGATTAGGAGTCAGCGA -ACGCCGATGAAGGAGATTACCACACTGGACGATCCGAATGAGCTGGAGGA -GTTTATGAAGCAGGGCGAGGAGGCGTGCATTTTGGATATGAAGACGTTCA -TCACACAGTACTCGTTGCGGCAGACTACGGTAGCAATGATGACAGGTTAG -TTCCCAAAAAAGTGTAGTGGAAGAGTTTTTTTTCTAAAATCTAGGCCGTG -ACCAGAAATAAATCAGAATACATCCCCGGCGCCTAGATTCCTAATCTCTG -CTGTTAGCCACAGTGCAATTGAGTATTACTGTAGTTGATTCCTTCTATGA -CGTCATATGAAATAAAGTTGGCTAAAGGGAAAAGGGGACTCTGGATCTTA -GGCGAGCAATTCTCTGCAGCCGGCACCAGAATCGATCCCCCGGTGCCTGG -ATATCTATCCTTCGCTGTTAGCCACTGCGATATGCCCCACCCGCGCTGAG -ATCGAACCGAGGCGTCTGAATTCCTAGGCGAAGTTGCTACCCACTGCGCC -ATGTCAATCTTCTAAATTTCCAGGAGTAAGCCAGCCGTACATTTCAAAAT -TGCTCAACGGCAACCACCGTGAACTATCGCTCCGTTGCCGTAAGAACATC -TACTGTTGGTACCTGAACTGCCGACGTCATCCCAACAAACTCGCTGCCTT -CCTCGCCGATCCGACAACTCGCCTCGAGACGAATGGAGATGGCGAGCTGA -TCCCACAACGTCGAGAACGCTACGTGTTTCGTCCAATTCTGATCCGAATG -CTCGAATCGTTCTTCACACAAACGCCATTCCCAGATCTTCCACGGCGAGT -CGAAATAGCGAATGCTTGCAATCACGTTCTGAAGATGGATAAGAAAGGTG -TTGGGTTGATGCCAAAGGAGGTGGTCAGCCCTCAAGTCGTTTCGAATTGG -TTTGCAAATAAGCGGAAGGAGTTGAGAAGAAGATCCGCTGAAGCTTCGGC -CGCCTCCACCTCGTCCGCTTCGTCTTCTGCGTCATCGACTGCTAATCATG -ATTCTGTCAGTGTGTCCAGCATGAGCCCTCGCGATGAAGAGGTGAGAGTT -TTAATTTCTCGGCCACGCTGTACTCTGGGTGGAAGAATTTTTTCTAGGTC -TTATAAGGAATCGCCCTCCGGTTTTCCCACAAGTTAAGTCATAAACATGT -ACCATCTAGAGGTTAAATTTCTGGAGTTTTATTTATTTGAGAGTGATGGT -AAACCTGTCAGTCCTTGGCAAACATGTGTCTGTTTGGTCTCAAGGTCTAG -GTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTAGGTCTTGGT -CTAGGTCTAGGTCTAGGTCTAGGTCTTGGTCTAGGTCTAGTTCTAGGTCT -AGGTCTAGGTTTAGATCTAGGTCTAAGTCTAGACACAAATTTCTAGGCCA -CGAAAATTTCTGCCGTGGCCTAGGATTTTTTAGGCCATATTCTAGGCCAT -GATCCAAAAAAAACTTTCCCTGTCTCCTCTAACCCATTTTTTTTGCAGAC -AAGCTCCCGTAACACAACCCCGGAGACAGCAATCTCCCCGTCACCAGCAG -TGTCCACTTTTGAAGTGTCCCGCCCGTCTGCCATCATCTCTGCCACGTCA -TCAACAACCTCGCCAATCTCAATTCCAGCAACAATCATTCCATCAGTATC -GCCGTCAGCTCTCGAACTTTTCGCCATGGCCCAACAGCTTGGAGTTCAGC -TTCCGGTTCCATTTCCAACATTGCCAACACACTTTTTCCCGTTTCAAATG -GCTCCGTTCTACGGGAACCCGGCTTCTATTTTGAAGTCTGAGTGAAGCAT -TTCTAATTTTCTTTTCTTCTTTTCTACACCAATATCTTTTTTCCATTTAT -TCAACTTATTCTTCATCCCATGACACGAAAACCTCAATTCTTTCATATTA -CAAACGATGCTCCGTTTCTTACGCCCTGCCCCACACACGCCCCGTCGTCC -AAAAATCAATCAATAATCGATTTTTCATAATATTTAATTTGTTTTTTTTG -TGTTTCACTGCTGTTTTAATATTTGAAAAGTACGAGTTTCTTCAAAAACA -TTTTTTGAATAATATTTGCTTCACACTCCACGCGTTTCGTAATGTATCGC -TTGCCCTGAAATTTTGTTGGAAATTCCATTTTTTGTGCAATTTTTGTTAT -TTTTCAAGCGAGAATAAATATTTTCTAGTTCTAGAATTCAATGAAATACT -TTGCAAACGCGCCCCATTGCACTTGACCGAGGGGTGAAACAAGTTCAGTG -TTTTCAAGATATTTTTTTTTAAAAACTTGAATTTGGAACAATACAAAAAT -CTGTAAAATGCAACAGTTTTCCAAATCTTGTCCACGTGGAGTACACAATA -ATTTTTCATCTATACGGAAAGATTTCAAAATTGGAATGTTAAATTATTTT -GTGGTTTCTAGGCCATGGGAAAACTAGGCCATCAAAAAAATTCCAGAGTG -ACCTGGAAGTTCTAAAACTTTGTTGAAACTTGTCCACGCGGAGTACACTG -GTAGTTTATCAATAGAGCGCAAGTAATAATCCCTTGGAATTTTCCTTTCA -CCACCCCCTCTCCATTTTATATGAGAGTTTTTTCCCTCGCAATTTCCCAC -GCTCAAGAGGGTGGCCGCCATTTTTTTTTTGAGGGGGGTCGTATCTAGAT -TTGAAACACGTCATTTATGCTCAAAATGTGCCAATTTTTATTGTTTTTGA -GTTTCTAGGCCATTTTGGTAAGTTAGGCCGCATACTGACTTTGCGACTTC -CAAGGATATGGCCTAGCTTTTTTTTCTAGGCCATATAATTTTTTGAGTTG -CAACTGTGGCCAATGTTTTTTTTGGGTTTCTATGCCACTTGTGAAAAGTT -AGGTCATAGAATAACCTTACGGTAAACGGGTCCTCACAATCAGGAATTGT -GGCCTAGTTATTTTCCTAGACCACGTTTGATTTTTGTCTTTCTAAGCCAG -GTTTGGGTCTAGCTCTAGACCTAGGTCTAGTTATAGGTTTAGGTCTATGT -CTAGGTCTAGATCTAGTTCTCTCACGTGAGAAAATTAGGCCACCTTTCCC -CCTAAACTCTATGATCTCAAAACTAAAACTACTTTCTAGAAAACTCTTCG -AAAATCATAAAACCAATTTTTTATCACTATTTTCATGCTAAAATCCAATC -AGAAATTGATCAGAAACACGCATATAAATATTACGACTATAAATTCATTT -CTTTTTTTCATTTTTCCCTCCAGAAGGCTCTTGGCGAGAAAAATCTGCAT -ATTTTTTCTACTTATATGTGTCGAGACATGTGATATTCCGGCCGGCGGTG -GCTCTGAATGAATATTCAATTGAACGAGAAATATATATTCTCTCCAGAAG -GCGTTTATATTATGTGTTGCTCCTGTTTCTGCTGTATTCGGCGTGGATTT -GGTATGCTTCTCAGTGGAGTGCAGTTGCAGCATTTTTTTTCTTCAAATTT -TGCAATACTCTCGAACTTTTTGCACTTTCAAGCCTTTTTTTGGGTTGCCT -AGAACACTAGAATTTCTGGACTATTTTGAGATTTCTAGGCCATTCTTGAG -ATTTCTAGGTCATATTGTGATTTCTAGTGCATTTTTGGGTTTCAAGGCCG -AATTGGAAGTTTTAGGCCATTTTTCGGTCACATTTTTAGGCCACTTTGAG -GATCTTGTGCCAAACTGGGATTTCTAGGCCATCATGGGATTTTTAGGCCA -ATTTCGAGTTTTCCAATCATAATATAATTTCTAGGCTATCTTGAAATTCC -TAAGCCAGTTTGGAATAATTAGGCCATCTTGGGATTTCTACGCCATTCTC -GGATTTCTAGGTTAAACTGGAAATTTTAGAATTTTGGGGTTTTAGGTCAT -ACTGCGAATTTTAGTCCACGGTTGGATTTATAGGCTATCGTGGGATATCT -AGGCCGATTATGGAATCCTAGGCCAACTTAAAATTTCTAGGCCATTTCGG -GATTTCTAGGCCATCACGCCTCCTAAAAGGCACAGACAAAGTTCAAAACC -CACCAGAAAAAAGTGTGGTGAATTAGTCAGCAACACCCCATTTTTCTTTT -CCAAAAACTAAAAAAAAAGATACCCCTGACAGATATGGGCAGAGATGGGG -GTGCGAATCCTGAAATTTCCGAATTCCAGTGGGAGCTTTTTGTGCCAGAA -AAAGTAGTGGGGGCAAGTGAGAATGTGTGTCGCCTTCCACTTTTCAAACA -CCATTTTGTCCGTTTCGCCGGCCCGAAAATAGGCTTGAAAAGCTGTGGCC -TAGAATTTTTTCTCAAAATTTTTGACGTGGAAGAATTTTAAGATTTTCGA -GGCCAAGAGGTGGCCTAGAATTCAACATTTATTGGCAATTCTTATCTAGA -TCCCGAACCCCGACCAGTCAGTTTTTAATTTCCGGTGTCTGAATTTTTAA -TTAAAAATTATTTTTGGGAGGAGCTCCTGTTTTTTTTTCGTCAAAAAATG -AAGGTGGCCTAGCTTTCTCATTTTAAGGCCACGAATTCTAGTTAATTTTT -TGTTGGCTCATTTTTTGTTTCAAAAAACGAAAGTTAGTCAAAAACTTTTC -TGCATATCAAATGCTCTTTTTGAGGTTTTTTCCTGCAAAATTTTTCTAAG -AAAATTTGAATTCCCGCCAAAATTTTTCTCAGAAAATTTGAATCGCCGCC -AAAATTTTTCTCTGAAAATTTGAATCGCCGCCAAAATTTTTCTCAGAAAA -TTTGAATTCCTGCCAAAGTTTTCACAATGGGTCTCACCACGAATGGTGAC -AGACCCCGCCCACAATTCTCAGAGACATTGGGTGTGTTTTAGACCAAAAA -AATAGTTTTTTTGACAAAAACAATTTTCCAGCAAATACTTGATCAGTTGT -CATTTGTCTGTTGAAAGTGGAAAAAATAAAACATCTTTCCTTTTTTCTGC -TTCTCCCCCTCCTCGTCCTTTTTGTGCTCAAAACTCAAATGGCTCATCTC -AATTGCATGACAAATTAGCAAAAGATGAGAGCAATTTTTCCCTGTTTCTC -TTTTTTTTCCTCCGTTTGGCTCCTCCTCATGTCTTTTTTAGTAGTTTTCA -GAGTTTTACTATTGAATGTTCAAACTGGCTAAAAAATTTTGATTTTTTTT -TCTTTTTAAACTCTTACGAAAATTTTGATATAGGTTAGAAGCCTAAAATC -GACGGCCGACAGCGTTTACATTTGTGGCCTAGACTTCCAAGCCTTGGCCA -TGGCAAAAACTTGTTTAGCCTACCTTTTCAAATAGTGGCCTAAAAACCCT -ATACTATTTCTGAACTAACTGTTTACTCAAAAGAGAAAGTTAGTGGCCTA -ACTTTCTGAATGGTGGCCTAGAAAACTCAATTTTGGCACTTTCATGACCG -GTCATCAACCTGACATTGATGGCCTAAGTTTTAATGAGTGGCCTAGAAAA -CCAAAATATGGCCATGCGCTCAGCATGATCTAACTTTCCAACTCTGCTAT -AAATTCCTTGGGGGAAACCTCGGCCATCACGGGTGGCCTAGAAAACTGAA -ATTCGGCCAAGACCCCGTAATTCATGGCCTAACCTTTTAAAAGGACAGCG -TTTGGCTTTGGTGGCCTAGTTTTTTGTGGCCTAAGTTTACAGAAAAAATC -CTCAGCCACAACCTTTACCCTATACATGAAATCACATAAAAATGTCCAAA -TATTTTCCAATTAAATTTCCAATTCTCCACCCTTAATTCTTCATTTTCTT -TTCTTCTTTTATTCCTTTTTCACTCTCTCATTCTGAAACTAATCTTTTCA -ATTCTCAGCTTCTCTTTTCTGGTGTGGCTCATTTTCACTTTGCTCCCGCC -ATTTTCAATAGGATTATCCGTGCACACACACACATGGCTCAGTGAGCAAC -ACCAACAAAAAAGAGCATATATAGATATACAACGATATCTAACTAGTTAC -ACAGGAGCTTCTGTTGTTCTTCTGTGCCCCTCCGAGCCGAGACAAACTTT -TGGAAAAGAGCAACGCTTCTGGAGCCGACATATTCGAGAAATCCCGGAGA -CAATTGAGACCACTATGAGGAAATGATGGTCGAGGAGGAAATGAGAGATG -GCGTTGCTCAAAGTGCGCGACGAATGCACCAAGTTGGTCGGTTATCAGTG -AGTTTTTGTTTTTTGTTGGCCGAAGTAGAGATAACTAGGCCACCTAGGTA -GGCTGACGATCTTCAGTTTGCAAATCCTCTTCCACCGCACTTTTTTGAGC -GATCTAGGTTTGCAAAAGGTAGGCCGCCTGGTCCACCGTACCTGTCATGA -TGGCAGAGGTCTGGGAAAGCTAGGCCACCTGTCTGAGCTGATGGTCTAAG -GTCTAAAGTTTACCAAAAACTCTTCCACCGAAACTTCTAGGGCGACCAAG -GCTTGCAGAAGCTAGGCCACCAGACTTGGCTGGTGGCCTAGAATTTTCAA -GAACTCTTCCATCGTAAATTATTAGAAAGCCGCGATAGGAAAAAGCTAGG -CCATCAAATTACCTTAGTGGCCCAGAATCTATAAAAACTCTCCCATCGTA -CTTGCAAGGACGGCTGAGCTTGGAGGAAGCTAGGCCACCAGAATAGGCCA -GTGGCCTAGAATCAACAAAAACTCTTCCACCGTACCTCCTACAATGGCCG -AGGTAGGGAAAGATGGGCGCCAGGCTAATCTAACTTTCCTAGACTGACCT -AAATGGGAGAAAACTAGGCCACCGGGTTTACGGAGTGGCCGAAAATTTAC -AGAGACATTGCCCTGACTATCTGACTGTTTTTTTAGCGAAAGAACTTTCA -TATTTTCTAGGCCAGGGGCCCCCTACGCCCCAACACAATCCAATTTTTTT -TTGCAGATTTCTAAACTCGCACATTTGTCTCTGCATATCACTCATCCAAC -TTCTCGTCTGCTGCTGGGCCGTTGCTCAGCACGTCAACTCCTACATGACG -CACAGTAAGGTGAGCCAGAGTTCATTGGAGCGAATTTGTAACCAGAGAAA -ATTCAAAACTTAAAATTCAGATCTTAAAATGTGATTTTCTGGAGGGGAGC -CTCCCGCTGGAGGCCGTGGACGCTGTAATTTTCGATATCCGACTTTTCCA -TTACCTATGGGGCATTCGAGGATGTGTGGCAGAGTATTTGGATGGTGGTG -GGTACTTTTAAGTTTCCCACGAATCTTTACATTTTTCAGGCTTCGGGCGA -CTTTTGTGGTGCGTTTCCCACTGCTTAACCCTGGTTTTCTCCATTCCGGT -CACCTTCATCTCCCATCCGAAACCCTGTCTCTTTTGGCCGCTGCTTTTTC -AGGTGAGTTGGCTGAAAAAATTTGGAAAAAAACTTTTTTTAAATTTTTTC -CGAAAGGCGCAGTGGGATTTTCCACGACTACCACTCACAACAGCATGGTT -CGAGTCCGCGTGGGTGTGAATTTTTTTTCTAGTTTTTTTTTGAAGTACGG -AAATTGTATTTAGCCTTGAAAAATTCTAAAATAAGCAAACAAAAAAATCT -CCGATCAAAAACCAAGTAATCCGTCTCCAAAAAGCGCAGCAACGTCAAAT -GGTCCCACGGGGGGCCTGAAACGACAAATTTCCTGACATTTGACGGGTTA -TCCATCCGCCACCCTCTCTTTTGAAGGAACATTGACTTTTTCCGTTGAAA -TGGATAAAAAAATTGAAAAGAATTAGATAGATTCGGGAGAATGAATATGG -TGGCCTAACGTGGTGCTTGACCCATGGCCTAGAAAACCAAAACTCGGTCA -TCACCCTGATTGAGTGCCCCTTAAGAGATTAGGCCACGTACGACGCAATC -CTAGGCCACCAATAGTTTTCTCGGCCACAGCCACCCCAAACAAAAATCTG -AACTTTCTGATCCTTTACATCTGTACCCACTGAACCGTTTGTTTATCTTT -TTACTCGCTCCACGGGAGCAGAACTTTTTTTTTGAAATTCCACAAAAGAA -TGGGACAGACACTAGTGTATTTTGTTTTTTATTCAGACATGAGCCAGACC -AGAAATAGGATTGAATCTCGGATTTCAGAGCCTGGAAAAAATCGGAAAAA -ATCGGAAAACTGTGGGAGAACTGAGTTGGGTGGTAAATTTGGCAAATTGC -CAAAATTTGGGGAAATTAACTTTTTCGGTAATCTGTAACTACAGTTTTCC -TAAAAATGTATGAACCTTTTAGTGATTCTGCATAGTTTTTCAGGTCTTTA -AAATTGAACCTACAGTACCCCGTACAGTTCAGAAGATTGCAAAATTCCAA -GTTGACCACTTTTAAAGCGTGTATCTCGGCTGATTGGGAAAGTATCGGAA -TATTTTAAAATACAAATTTATTGTTGGAAAATTTTTTTTTTACTTAAAAT -TAATTAAAATTCAGCTTTCAAAAATGAGCAATGTATTTATAGATCCCATG -CAACTTTGAAATTTTGTATATCCGTTCAGTGTAATGCTATCAAAAAATTT -TCAACTACAAAATTATAGTAAAATTTAAAACAAAGAAATTGTTAGTTGAC -AACTTTTTAATGAAATAAAGTACAACCGAGATATGAGTTCTCAAAGTTGA -GCTACTTTATCGGCAACCACAATATAAGTCGCCCCCGTACAATGCACCAT -GTGGTAGAAAATTTCGGTTTGATCTACTTAGATCTACAAAAAATGCGGGA -GAAGAGACGCAGAGTTTTCTTTGCATAGCTAAGAACGTGCTGACGTCACA -TTTTGTTGGGCAAAAAATTCCCGCACTTTTTTGTAGATCAAACCGTCGTG -GGACAAACTGGTACCTCTTCGTTTTGTTGGTATGAAAATTTTGAAACTCA -CTTCGTTTTGTTGGTATGAAAATTTTAAACTAGAAAAGCCAAAGTTGAGC -TAGGCGCTCAAATTTGGTAGCATTTACTTTTTTCAACAAAAAAATAGCTG -GCCGAGCTTTCCATTTTTACGGCCACGTTGCAATAAAAATCCAGGAGGTC -CATGTCATCAACAAAAGTGCAAGGATGTAAAACAATTACACCGAAACGTT -TGTCGGGAACTGCTTTTTCAAAAAAAAAAGGATCTCTCCGAACACATGTC -ACCCCCAGGGTTCTAGCGTCTCCCTGACCTCGCGAGCTATTTCCTTGAGA -CATATCTCTCCGAAACCTTTTGTAATGGTTGTTTCATGTTCTTCTTCATC -TTCTTCTTATTCTTCTTGCTGGGATAAGCAGTTGAAGAAAACGAAAAGAA -CACATAAAACACAGGCACACACACACACACATACACACCGTAATATCATA -TAAAAGTGCGTCTGCGTCTCCCAGAGCGCCCTGGGGGTAAGGAACGCGGG -CGCCCGCAAGGAAAAAGTGCAAAGAAATTAGAGAAAAAAGACCGGTCTCT -CACTCACTTCTCGATCCCTTTTCTTCTCTAACTATAAAAAATGTGTGGCC -TAACGAACGAAAGCGAAAAAAATCATCGAGAGAAGTAGTGAGAGAGAGAG -AGAAGAAAGAGTTTTTTTGGACGCCGCCGCAGCTGCCAAGCATCAATAAT -GACATGCTGGAGAAAAAAATTCCAAAGTTTAAATGTATTGGGGATCAGAA -GCCTAGACCATAAGCCCCTTGTAGAGTTTTCTCGGCCATAGCCTTTTTGG -TACGGTACATATACATAGAGACTTCAGATTGGGAATTGCGAATCTGTTAG -AGTAAGAATAGGCCTAAAACATTATTGGGCCTAACGGTGACGGAGACTAG -GCCTTGTTGGGAGCTTAAACTATGACATTGCCTAGAACGTTGTTCTATCT -TGGTTATGTGGTGTCGGGCTTTCATGATCAGCTCCTCTACTTTTGTCCAG -AGAAGTTTTGGACTTTTTCTATGGGTGCTTTGGGCTCTATTGCACAAATA -GGTGATCTTGCGCACAACACAACGTAGATCAAATTCTTGTCTAGGCTCTG -CAGGCTCCTGAGAGGTGTTTTGTACAAGCCCAAAGCAAAAGGATCTCAAA -ATGTTTACAGGACTTCAAGCAGAGGATTTTTCGATGATTGCCAAAAATTT -TGGAACTTTTATAGGCTTAAGCTTATGGTTATGTTTAGGCGTAGGCTTAG -GCTTAGGCGTAGGTTTAGGCTTTGGCTTAGGCCTATGCTAGGCCTAGTAC -CATAATACTATTCTTACCGCCGCGCCTGATCAAACCAAAGAGTAGGTCAA -CAACCAATATTGACTTGCACTTTTTGCACGGTTAACTATATTACGCATAT -GGCCAATTTTGTTAGGGAGCATTGATTCATGGAAAAAATTTCGGAATTTA -TGAATGTTCAATTAAACTGGACTACGACAATTATTGGGTTCAAACATTTG -AAAATTTTTTGGCCGACGTCGGAACGTCTCACTTTTTCCTGATTTTTGTA -GTTTTTCCTTTTTACCGAATTTTTAGGAATATCTGGGAATTTCTCGTTTT -CTGATTTTTTTTCAATTGTTTTTAGATCCCCCAAGCCTAAGCCTAAGCCT -AAGTTTGAGCATAAGCATAAGCCTAAGCCTATGCCTAAGCCTACGCCTCA -GCCTAAGCCAAATGCGGAGCCTAAGCCTAAGCCTAAGTCTAAGTCTAAGT -CTAAGTCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTGCCGGAGCCTAA -GTATAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTATGCCTAAGC -CTAAGCCGATGCCTAAGCCTAAGCAAGTTCCGACATTTTCGACAATTATC -TAAAAATCCTCTGCTTGAAGTCCTGAAAATCTTTAGGGATCCTCAAGTTT -CGAGTTTGTACGGAACGGCCCAAACGCCTCTTGGGAGCCTGCAGAGCCTA -GACAAGAATTTGATCTATGTTGTGTTGTGTACAAGGTCACCGGTTTGTTG -TGCATCAGAGCCCAGAGCACCCACAGAAAAAAGTCCAAGAGTGTATAGCC -TACGGTAGTCCTTGTTTAGGAGACATAGACAGTCTCTTTCTCTAACGGTT -TTTGTTTATTCTTTTTTTTTCTCCCCCTACTTTCCGACAGACATTTTCAT -CTTCATCTCCTTCTGCTGCGCGAATTGAATGGTCTATAAGTGTCTGCGTC -TCGCCGATTCGTACAGTCTATCGCTTTGAAATCGTCACCCCCAGGCAAAC -AGGACACCCGAACACACACACAACTATCCTCATTCTCAAAAAAATGGCTT -CACTGCATAAAAGTGCAGAAATTAGAGAGTATGCGGAGATTCGGAGAATC -CAGAGAGAACACACAAACACACTCGGAAACTCATATAGTTAGACCAGAAT -GATGGCTTTTTTGGAAATTTGAATTGGAAAGGGGTTTTTGAAAATTGGTT -GGAAGCATTTCAGATAGATTTACATTGAAAAAAATTAGCAGGAGCACCTT -TTCCATTTTAAAAAAATTTGTTGGCTTTAACTTTTTTCACGGATTTCCGG -CTTCCCTCATAAATTGAAATGGAAGAGTTTTTGCCGAACTAGGCCATTTT -GGCTCAGCCATATCTGGGGTAGATTTACGGCGCGTTGCGTGTCGCGTCGC -GGCTCGTTTTTAGTTGTAAAACTAAATTTATTTGTCCGTGTGGAGTACAC -AACTTTCCCACGCGTTGTCCATCTGAAGATTGTCAATGGAGCGCGAAAAA -TTCAGTGAGGAAGGCAAGAACTCCGTTTTTTTTCAATACTGAAAAGTCTA -ATATTGAATTAATAAATTATTCAAACATTTAAAAACAATCATTTTTAGTG -TTTTGAATTTTTTTTTAATTTCAAATTTTTCTTTAAAACATTAAAATTTT -AAAAACATTTCCAAATTGTTCCAAATAACATTATTGAACTCGTAAAACAA -ATTTAAAGGTGAATTTTCATTTATTTCGTTAAAAAATTACCTTTTAAAAT -TTATTTTTTCAAAAAAATCTGGATTTTTTTTCTGCGATAATATTCGAGCA -GTTTTTTTCGATTTTTTTTCTGAAATTCTGTGAAATTATTAACATTATTT -GAATTAATTATTCAAACAATTTCAAACAGAAATACAACGAGTTTTTCCAT -TTTTTATCATTTTCCAAAGTTTCAGAAAAAAATTTCGCAAAAAAAATTTA -GATTTTTCCAAAAAAATTAAATTTTTGAAAAATTCTCAAACGCACGGATT -TCTGGCTTCCTTCATAAATTGAAATGGAAGAGTTTGCCGAACTAGGCCAC -TTTGGCTCTGCCATATCTGGGGTAGATTTACGGTGCGTTGCGTGTCGCGT -CGCGGCTCGATTTTAGTTGTAAAACTGAATGTATTTGTCCGTGTGGAGTA -TACGACTTCCCCTCCGACAGGCGATTATCAATGAAGCGCGAAAAATTCAG -TGAAGAAGGCCAGAACCCAAAGTTTCACCGAAAAATTCGAAATAAAAAAT -CCTGAAAAATTTTTTAATTTTTCCATAAAAATTAAAAATTTTTAAAAAAT -TCCCAAATTGTTCCCAAGACACATTTCAGAGCAGGTTTCAAAAAATCATA -TAAATTATTTATAAGGGTAACAACACAAAATTTGGGTAACAAGAGCAACA -ATTTTTAATTAAATGTTTCATTTTTCATCAAAATTACTCAATTTTCCTGT -TTCAGCAATCGGCCTATGGTATTTGCCTCCTGGTTCTTCTTCTAGCAGCT -CTTCCAAGAATTGTTGTAGTACTTGCGTCTCCACAAGCGGCTCCGTTGAT -TCCTATTCTGTTTTATCTTGTTGGCACCGCGCTCAATTTTTTTCATGTGA -GTACTTGCTCACTTTTTTATGGTCTAAAAATTGGCGGGAAATTCAAAAAG -TTAAGAGTTTCAAAAAGATCGGCATAAAATTTAAATTGAACATTTTTGGG -GATTTTTTTGGAAAAAAAAACAAATTCGAAATTCGACCCATTTTGGCGGG -AATTCAAATTCTTTTAAAAATTTCGAAAAACATTTTTCTGCAAAAAAAAA -TTTTCATTTAAAAAAAAAACATTTTAAAAAGCAAGCTTTGCCGGGAAGAA -TTCAAAAAATGTGGCTGGGATTTTGGCGCGAAATTCAAATTATTTTAAAA -AATTTTTGAGAATTTCTTGAAAAAAAAACTGAAAATAATTTTGCGGAAAT -TTGAATTCTTTAAAAAATGCCAAAAAAAAAAGATGTTTGTGCAGAAAAAA -TTTTAATTTTTAAAAAGCAATTTTTCACGGATTTCTGGCTTCCCTCATAA -ATTGAAATGGAAGAGTCTGCCGAACTAGGCCATTTTGGCTCTGCCATATC -TGGGGTAGATTTACGGCGCGTTGCGTGTCGCGTCGCGGCTAGATTTCAGT -TGTAAAACTAAATATATTTGTCCGTGTGGAGTACACGACTTTCCCTCCGA -CAGGCGATTATCAATGAAGCGCGAAAAATGCGAAGAGGAATCTGTTCTAA -AATTAGGCGGGAAATTCAAAAAGTTCAGGGTTTCAAAAAGATCGGCGAGT -TTCAAAAATGTCAAAAATATTTTTCTGCAGAAAAATTGTCGACTTTTTAA -TAAACTTTGCCGGAAAGAACACGTGGTGTCAGAGTGTCCGGTTTGATCTA -CGTAGATCTACAAAAAATGCGGGAGTTGAGAAGCAGAGTTTTCAACTGAT -TTCGAATGGTTAAGAACGTGCTGACGTCACATTTTTTGGGCGAAAAATTC -CCGCATTTTTCGTAGATCAAACTGTAATAGGACAGCCTGACACCAAGTGG -AAGAATTCAAAAAATGTCGCTGGAATTTTGGCGCCAAATTCAAATTACCA -AACGGTATTTAATACATAGAGCTTCTCACTCAACATCTGAGCTACCGGAA -ATTAACAACCTTCACATTTTTTGGTCATTACTCACACACATGTGGTTTCT -AAGCAAGTTTCAGATACTTTTTTTTTTGTTTTTTTTTGAATTAATACTAT -TTTTTGCAAAAGTCGCTTCGGGACCCAAAAAAAAAATTCAAATTCTTTTC -AGTTATACGTGTACTGGCACTGGTATTGGCACGTGAGTGCCATGTGGAAT -TCGGTGGTCCGTGTAAAGTTCGGACAGCGGCTCGAAAACGCGAATAAGCG -AAGTCGACGGGATAAGCCGATTGTGCCGAAGGAGGAGATCGATGATGCCG -TTTTGCATTACGTGCCAGCGAATAAGCCAACTGAACAGCAGAATCATGTT -CAGCACAATCATATCAGTCAAAACGGGATTCAGCAACCAAAGGTAGGTCT -ACCTACCTGCCTATTTTCCTGCCTACTCGCCTAAGTTTGTCTAAAATCCA -ACTGCTTGTCTGTTCTGCATACCAATATGCCTAGACATACCCACATTTCT -GCTCATCTTCTAACATGCCTGCTCGCCTAACTTAATGCTGTATGCCTATG -TACTAGGTTACTGCCAGCCTGCCTACTTGCCTACCTACACAAATGCCTAT -CTGACTACATCTATATCTATGCTTCTCTATGCATAAATGCCTGCCAAAAT -GGCTAACTGCGTGTCAAAGTTCATGCATGCCTGCCTACCTGCCTACGTGC -GTACATGCCTATTTGCTTACCTAAATGATTACCTGCTTACCTACCTGTCT -ACCTGCTTAAGAGCCCTACTTATTTGCCTACCCACCTGACTGCGTGTCTC -CTCTCTTTCTGCCAATCTAGGCCTACATGTCTATCTAGGCCTATATAAAT -TCCTACCTGCCTACCTGCCTAAATACCTACTTGCCTGGCTATGTCTTCTT -ACCAACCGTTTTTTTATGCCTACGTACCTGCGCGCATGCCTACCTACGTG -CCTACCAACACCTACAAATACCTGTCCGCCTTCATCACATTTTTCACTTT -CAGGTAATCCTTCCACCACCGAACCCCTACAACACCGCGCCCACACATTA -TCGACGCCGATCCTCCACAGAAGCCCACCGCTACCACCCACCTCGGCAAC -CGAGAAGCTCGGCGCCAACCCACCACCGAGTACCGGCCGACTATCCGAGT -GACGAGGAAGACGACTATGATGATACGGAAGGAGACGACGCGGATATTGA -TGATCTACCCACACCGCCACCGCCGATTTACGCCGTCCGCCTGACCTCCG -ATTCGTGGGAGAATCAGATGAGCCGCCCGTCGGGTAGACGGCGGTTACCG -GCGACTCCGAATTTGCCGAAACATGGAGAATTGCCGCAGATATTTAATAT -TCCTCATGCTAATGTTTAATCAAATTTTTGGGGTTTTATGGGTTTTGGAT -TTTCGGAGCGGAGCTTCATTTATCGCTTTAATATTGAATCAGGGGTGGTT -TTCAATTCTGGCAATTTGCCGGTTTGCCGATTTGCCGGAAAATTTAATTT -TCGGCAAATTGCCGATTTGCTGTTTGCGGGATATCAGATTTTCCGAAAAT -GTTTAGAGGGATTTTTTATAAGACGAAAACACTAAAAACTGTGTCTTTTT -GAATTTTTTCCACTTTTTCTACATATTTTCATAGAATTTGCTTACTTTTC -AAATTGCCGATTTGCCGGAAATTTTTAATTCCGCCAATTTGCCGATTTGC -CGTAAAAAATCGTTTGCCGCCCACCCCTGTATTGAATTATCCGGAACACA -GCAACACTCTGAAATTCGAGCATTAGTTAAATGTGATATTTGAAAAGTTT -TGCAAACAAAATAATTTTCCCCAGCTTTCATCATTTTTTCTTTCAACAAA -AAAAAACCGAGTGATATTATGATTTCCAATTTGTGCTATTTTGAGTTTTA -TTTTATTTTATTTTGTTGTTTTCAATAAATAAACGAATATTTTTTGGTCA -TTTTTTGGCGCTATGAAACTAAAAAATTTCAGGTAACTTAGCGGGAAGTT -CGTTTTTTTTTCATTTTGGCAGGAAATTTCATTTTATAAAATGGCAAAAA -CTTTTCGTTAAAAGTTTTTAAATTTTGAGAAAATTGACGAGAAATTAAAA -ATTTCAAATTTTTTGGCTCTAAATTAGGATTATAATTTTCCGAAAAAAAA -TTTCCGAATTAAAATTTGGCGTCTCAGTGTGTTATTCAATTAGAAAAACC -TTCAAAATATTAAGACATTTCGGAGGCACGTGGTGTCAGAGTGTCTATGC -TCCTTTAAATGATGCATTCAAAGGCGCTTACACACCTGCACGTAATCTCT -TTTTTGTCTCAAAACAAAAGGAGCTTCAGACTCTCATATCTCTGCAACTC -TGTGTGAATAACAATTGGAGCCCCAGAGCTCCCGGCTCCACACTGCCCGT -TTCCATGGAGACACTCCGATTATTATGGGAGCCACCACTGCTCGCCGAGC -AGCAGCAGCAGCAGCCCATTGTTAACCCGATGACCAATATCTATATTTGG -GTCCGGACCGCCCGTTCCCTTCAGTTTTTTTATCCGACTATCGATGTGGA -GGCCGATGGGTTCGGTTGCTTCTATGAGATTTGTTTGGAAATTGTTGGCT -TGTTGGAGGAGTGCGATAGGATAAGGTAAGCGTGCTCTATTGATAACACG -AATTTTTGTGATTTTCGGCAACATGGGATCGTGGTTGCCCAAAGGGAAGG -AAACGCGCCCCATTGATAAAATCATTTCGCAATAGAGCGCATTTTCATCA -TTTTTTTGCAGTTTTGACGAATTCGAGACCCTCTGCGAGAATAGAATATC -GGAAGTTTATGTGGAAGCAATTTTTCAAAATGCTGTGGAACAAGGAAATG -TGAGTTTTTTTGTGATTCTGATGCTAATTTAGCAAGTGCGCTCTATCGAC -AATTATGACTTTGTGCACGTTCAAGTATTTTCTCAAAGTTTAACACAGGG -TTCTGGCCTTCCTCATTGAATTTTTCGCGCTCCGTTGACAACGGACAACG -CGTGGGAAAGTCGTGTACTCCACACGGACAAATCACATTTAGTTTTACAA -CTAAAATCGAGCCGCGACGCGACACGCAAGGCACCGTAAATCTACCCCAG -ATATGGCCTGGCCTAGTTCGGCAAAAACTCTTCCATTTCAATTTATGAGG -GAAGCCAGAAATCCGTGAAGTTTAACAAATTGTGAGGTGTAGCAAACACG -CTCAAGTGACAATTTTTACTTTATGCGTCATAAATTTTTTTCTGAAACTT -AGAAAACGCGCTCTATTGCTACTTTGAACGGAAAACGCGCTCTAATGTCA -ATTTTATTTCCAGATAAACGCCCGCCTAAAGCTTCTCACCTTCTCACTTC -TCTTCGCAGGTCTCCAACAAAAAACTAAAGATCTCACAAATTCCATCAGG -TCGGACGTGGTCTTGACACGAATTTCAAAGTATTTTGGTAAATTTGAAGA -ATAATATTTGTTATTTTTTTGTTTTCCGAACTTTACAGGCCAAATATTCA -AACTTTTGTTCCAATTAGACGTGGGCCGCCGGTTACAGGACAGAGAAATT -GTGCACGCCATTGGAAATGGGCAGGTGAGAAGTTCGGCTACAAAAACGTG -ACGCGTGGCCTAGAAAGATTTGTTTTTCCACAGCTTTTTCCACAGCTTCC -ACAGCTAACGGGATGGCCTAAAAAACTCCACGGTCGTTTAGCGATAGAGC -GCACTTGCACATTTTGGGAATCTTCTGGAAGAAAGTAAACGTCACAAAAG -GCCTAGAAATCTTTATCGTGTGTGGTTTAAGAAACAATTCTCGGCTTTGA -AATTATGGTTGCTCGGGGAAAAATGATTGTTAGAAGCCGCACGCTTGCAC -GCTTGCACAGCTTGGGAATTTTCTGGAAAAGAAGTGACGTCACTGGTGGC -CTGTAAATTTTCGCCATGTGTGAATTAACAAAACAATTATGGGCTTTGAA -ATTATCGATTTTCACGGATTTTTGGCTTCCCTCATAAATTGAAATGGAAG -AGTTTTTGCCGAACTGGGCCATTTTGGCTCGGCCATATCTGGGGTAGATT -TACGGCGCGTTGCGTGTCGCGTCGCGGCTCGATTTTAGTTGTAAAACTAA -ATTTATTTGTCCGTGTGGAGTACACAACTTTCCCACGCGTTGTCCGGCGG -GCGATTGTCAATGGAGCGCAGAAAATGCAATGAGGAAGGCCAGACCACGT -GAAAATCAATAAGTTTTTCAGCAAAAAATGAAAAATGAGGAAATTTCGTT -AATTTTAGTTTTGTTAGCAGTAGTGCGCGCTCACATAGTTCAAGAATTTT -TTTTTGAAGAAAAGTGACGTCACAGATGGCCTAGGAATCTCATCTATGAC -GTCACTTCTCTTCCACTTTATCCTATTTTCAGGGCTATGAATTCCTGGAC -ACCCTATTTGAGGGAACAGTAAAGCACAGACATGGAAACTCGAACCATCA -CGGCGTGCGCCCCCTTTCCCATATAATCCCCCAAATTCTCGAAAAAGCGA -GCAGTATATCCCTACCATTTTTGTGCAATGAAATCCGCCGACACCTTATC -AAAGACCCGTATCATATTGATGAGTTCTCAACTGACAAACCTGCTCAAAT -ATTTTCGACGGCTCGCCGAACGACACTGGCACATAATAGTCGACGGGTGG -TACACTTGCATTATATCAATCGAATTGAAGTGCTGCGGAAGGATGAATTT -GCGAATGTTCACCTGAGAATTTGTAATGATAAGATTAAGGCGTCGTTCGT -TTTTGTTCCGTTGAGGTGAGATTTTTTGGCCGAACTTTTTTTTGTTGCTT -TTTTTGAAAAATTTTTAAGAGATTTCATTTTTTTTTACAATAATAGAAAA -ATCAGAAAAAATATTCACGAAACCAATAAGTGGGCGGAGCATCAAACTGG -CACGCTCATTTTCCGTAGATCGTTTCTGCCAAAATCGAAAATTTCTTGAG -CTTTCTTGAAAAATAACGCTAAATTTAATTGTGAATTTATTATTATCTCG -AAAAAAATTATCAAACAGTCGAAAAGGGGCGGGCTTACATTTTTTAGCCC -CGCCCACTTTTAGATTTGTTTTGTTGAAAAATGTCCAAAACTGAGTTTTT -CTCGGAAAATTTGAATTCCCGCCAAATTTTTTTCCAGAAAATTTGAATTC -CCGCCAAATTTTTTCCAGAAAATTTGAATTCCCTCCAAATGTTTTTATTT -TCAGAAAATTTGAATTTCCCGTCAAAATTTTTTTCCCAGAAAATTTGAAT -TTCCCGCCAAAATTTTCCCAGAAAATTTGAATTCCCGCCAAAATGTTTTC -CAGAAAATTTGAATTCCCGCCAAAAAAAATTTTCTCAGAAAATTTGAGTT -TCCCGCCAAAAAATTTTTTTTAAAAGAAAATTTAAATTCCCGCCAAAATG -TTTTCCAGAAAATTTGAATTCCCGCCAAAATTTTTTCCAGAAAATTTGAG -TTCCCGCCAAAAATTGTTTTACTGAGAAAATTTGAATCCCCCCCCCCCCC -CCCCCCCCAAAAAATTGTTTTACTCAGAAAATTTGAATTCCCGCCAAAAA -TGTTTTTTCTAAGAAAATTTTAATTCCCGCCAAATTTTTTTTTAGAGAAA -ATTTGAATTCCAGCCAAAATGTTTTCCAGAGAATTTGAATTTCCCTCCAA -ATTTTTTTTTCTCAGAAAATTTGAATTCCCGAATTTTATTTTTGAAAATT -TGTGTGAAATTAAATTTTTGGGAATATTCATTGTGGCCTAAGTTGCTCCA -AATGGAAGAGTTTTTTAAAAATTAATTTCTCGTCCACGCGTCAATTGTAT -GCAAGAAATTCGAATATTTTCCAGATGTGAAACCGTATTCCTCGACAGAC -TTATGTACACAAAATGGATAGTTCTTGGCGCAGTACGCGGCATTGTAATT -GTTAAAAATTGTCAATCGACCCGAATTTCGGTGAGCTGCGACCAGCTGAT -TGTGCTCGATTCGAAAAATATCGAAATCTACGCCATGTCGCCGAAGAAAC -CAATAATTTTCAACAGCTCTGCGGTAACTTTTGCCCCATTTAACACGATT -TACGAGGTGAGTTCGGTGGGGCGCGTTTGCATTTATGAATTCGAAAATTT ->CHROMOSOME_II -CCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCC -TAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTA -AGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAG -CCTAAGCCTAAGCCTAAGCCTAAAATAGTGACTCTGGCAGTTCTCTAAAA -TAAGTGACTCTGGCAGTTCACCAAAAATTGTGACTCTGACCGTTCACCAA -AAATAGTGACTCTGACCGTTCACCAAAAATAGTGACTCTGACCGTTCACA -AAAAATAGTGACTCTGACCGTTCACCAAATATAGTGACTCTGACCGTTCA -CCAAAAATTGTGACAATGACCGTTCACCAAAAATTGTGACTCTGACCGTC -ACTATTTTTATTGAACTGCCAGAGTCACTATTTTTAGTGAACTTCCAGAG -TCACAATTTTTAGTGAACTGCCAGAGTCACTATTTTTAGTGAACTGCCAG -AGTCACTTATTTTGGTGCACTGGGGTGGGTCACGCCCCCAGTTCTCAGTT -ATGGGTACTCTGATCCACTCGGGACCCACTTTATCGTGTTCCCCGTGCCT -CATTTACCCTAGAGCTTCCTCCTTTACCTCTCCTCTCGCTATCTCTAACA -TTCCAATGGAAACTCCTATTTGAATTACCGCCACCGATGTGCCCGACGCG -ACTTACTGTTAGCCCTTGTTTTGCACAAATCTGTTGGCTTCCATATTTAA -AAGTTAATTAATGACCCAATGTTCTTTTTTTCTCTAAATCTCCACAAGAT -GTTCTGTTTTCCCTACTGGACACTATCGTTCACTGCGTCTCACCAATTCA -CATTGTCTCTACTTTACCTTTTTTGTCATAGTACACGTTCGCCAACGGTG -TCGACGGCCAAATGCTTTGGGCAGCGTTTGCTTTTTTTATAATTAGTTTT -ATTTTATTAAAACAATAGCTCTAAAGTTTACAAGTCATTTGTTATAGGCT -AAATGAGTTATGTCTAATAAGTAATTTGAACTAGATACTTCCGTGTAAGT -GACAATGTATCGGAAAAGTCCTCAAAGTGCGATGTAGAAGTTCACATGTA -CTTTGTTTGGCATGTTAGTAAAAGAGCCAGTATGCTGATTCATTTTATAT -TCTATATACTCATGTAATATGCCCATGTAAGGTTTAATTCCAAAAATATG -AGCGTGTTCTATTTTATAATATTTTACTAAAATACCTTTCAGTTAATTGC -ACTCAAATTTGTTGTTCTTCATTCTCTCGTTATGATTTAATCTTATTGCG -TCAAGGTCATTATTTTAGGTCCATTAGTTATCGATCTGAAACATGTTGTT -GTATTTTTCTATTCTTGTGAGCTCAGGACACCTCATACAACTCCAGAGAA -AATGTGTCTCATTATTCTTGTCTTTTTTCAAGATCTAATCAATTTTCTAC -ATTAACGACGTTTTTGTCGTTCTGCTTCTTTTTTTCGTTCGTTTGTCTCG -TCCATCAGCTGTCCACTCATTTCTCTCCCACTCACTAGGCAGTGCTTTGT -TTGGTTCCGATTGGCAGCTGGCTGCAGGGCCTGCATCTCTTCTATGTCTC -TCATTTACTTGCATTCTTTTCTTCGTTAATTTTTGTTATGATATTTAAAC -GGGAAGAAGAGTTTGTGGTTCTTCTTTTTATAATCACTAAAACTTTTGGA -TAAGTAACAATTTTCTGATAAAAATATTTTCACGGCGAAGAAAAAAGAAA -AAGAAGAGTAGTTTTTGCACGTTTTCATATAATTATTTTCGTTGATCAAA -TGTTCTTCTGGAGTTTTCTAATAAATTTCTTATCGACTTTTTTTCAGAAA -TTTTTCTCAACTTGTCATGTCAATGGTAAGAAATGTATCAAATCAGAGCG -AAAAATTGGAAGTAAGTTCTTTATAATTTCATTTATATACTATAAGTTTT -CTCGATCACAGGAGAAACAAAAACAACAGACAACACAAAAAACAATAAAA -CAATATTGCTCTAGTAATCAATAGTGTTGTAAAGAGGGAAGAAAATTGTT -ATCTGTGTAGCAGTCAACGTTGATTGAGATGTTGTGTTTGACTATAGAGT -TGAAAATAATAACTTCAAACTTGCAAGTCATGACTTATCAAACACTGCCG -GAACTTATTCTGGATCAAAGGAAAGTTGTCCAACTGTAGAGTCATGTTTT -TCAAAAGAAAACACAATTTTTAAGTATAAATATTTTGAAAAAGTATGTTT -TAGAAGTATGTCAAATTAAAAAAAAAATCCTTGGTTAAAAAATGATTTTT -TTGGATATATGTGTATTTTTAACTAAAAATATATACTTTACATATATATT -TTGGCGCAGTTATTTGATCTATAAATCAAACTTTTTGATAGACATTTTTT -TATATTTACAACAACTAGGGTTGTTATGAAAACGCCTATTATTCTACAAA -CTAAATTATTTTAATCATACATTCCCCACTATCTAAAAACTAATGCAATT -TTCAGATTTTGTCATGTAAATGGGTAGGATGTCTCAAATCAACAGAAGTG -TTCAAAACGGTTGAAAAGTTATTAGATCATGTTACGGCTGATCATATTCC -AGAAGTTATTGTAAACGATGACGGGTCGGAGGAAGTCGTTTGTCAGTGGG -ATTGCTGCGAAATGGGTGCCAGTCGTGGAAATCTTCAAAAAAAGGTATTT -TTAATTTAATGTGCATTTTATAATATAAATTCTTCAGAAAGAGTGGATGG -AGAATCACTTCAAAACACGTCATGTTCGCAAAGCAAAAATATTCAAATGC -TTAATTGAGGATTGCCCTGTGGTAAAGTCAAGTAGTCAGGAAATTGAAAC -CCATCTCAGAATAAGTCATCCAATAAATCCGAAAAAAGGTATTCACAATT -TGCATGATATTGTTATAATCTAATTTTCAGAGAGACTGAAAGAGTTTAAA -AGTTCTACCGACCACATCGAACCTACTCAAGCTAATAGAGTATGGACAAT -TGTGAACGGAGAGGTTCAATGGAAGACTCCACCGCGGTAAGTGTGTTTCT -TTAAAAATTACTTCCTTTTTTCAATTGTTTGAAATTAACAAGAAACCTGT -TGGAGCGTATTTCTGAACTTTTAAATCGAAAATATCATTTGCAAAAAAAC -TTGAAAATTGAGAAACTTTTTTAAAAGTGGAGTAGCGTCTGCGGGTTTTT -TTGCCCTAAATGACAGAATACATACCCAATATACCGAATATAACCGTAAT -AAAATTATGCGATTTTTATTTTTATTTTTCATGAATGTTAGGGGCAAAAA -ACCCACATGCGCTACTCCGCCTTAAGAAGAATCAGCTGTGAGCACTATCC -ACTATACATTGGAAATTTACAAATAAAATAGAGATTAAGTAATATAATTT -TTAAGGGTTAAAAAAAAGACTGTGATATACTATGATGATGGGCCGAGGTA -TGTATTTCCAACGGGATGTGCGAGATGCAACTATGATAGTGACGAATCAG -AACTGGAATCAGATGAGTTTTGGTCAGCCACAGAGATGTCAGATAATGAA -GAGTACGTTGTTTTGCAAATTGATTAAAAGTGGAGTAGCGTCAGTTAAAA -ACTCTAACATGTCTTAGGTTTTTCAAAAGTTTGGTCAAAGTTTTGGCAAA -CTGCCAACTTCTTGAAAACTTCGTTAAAAAAATTCTTGAAATGATTTGAA -AATTTGTATTATGTTATTCTCTTATTTCTGCACTATTCTATATGGCGCTA -CTATACTTTTAATTGATTTCTTGAAAGCAGTTCAATAATAATTAATTTTA -GAGTATATGTGAACTTCCGTGGAATGAACTGTATCTCAACAGGAAAGTCG -GCCAGTATGGTCCCGAGCAAACGAAGAAATTGGCCAAAAAGAGTGAAGAA -AAGGCTATCGACACAAAGAAACAATCAGAAAACTATTCGACCACCAGAGC -TGAATAAAAATAATATAGAGATAAAAGATATGAAGTAAGTCGAAATTGAC -AAACAGTGGTTTTTGTTTAAGTTTATTGCGAAATATTCAAAATTAGACAT -GTTAAAATTTTGCGAGATAATCTAAAGATTAGGTATACAGATTTTTTCAT -GTAAAGTTACATTCATCAAAATTTTTGTGTTCACCAAATTAGACAAAAAA -TGTTAGTTACACAGTATATTTATTTTTTATATCAATAAAACCTTTTTCAG -CTCAAATAACCTTGAAGAACGCAACAGAGAAGAATGCATTCAGCCTGTTT -CTGTTGAAAAGAACATCCTGCATTTTGAAAAATTCAAATCAAATCAAATT -TGCATTGTTCGGGAAAACAATAAATTTAGAGAAGGAACGAGAAGACGCAG -AAAGAATTCTGGTGAATCGGAAGACTTGAAAATTCATGAAAACTTTACTG -AAAAACGAAGACCCATTCGATCATGCAAACAAAATATAAGTTTCTATGAA -ATGGACGGGGATATAGAAGAATTTGAAGTGTTTTTCGATACTCCCACAAA -AAGCAAAAAAGTACTTCTGGATATCTACAGTGCGAAGAAAATGCCAAAAA -TTGAGGTTGAAGATTCATTAGTTAATAAGTTTCATTCAAAACGTCCATCA -AGAGCATGTCGAGTTCTTGGAAGTATGGAAGAAGTACCATTTGATGTGGA -AATAGGATATTGATTTTATAACGTGTAATTGAGTTTTGGCCAAAAAGGTA -TGGAAAGGTGGCTGTTTAGTTATATATTTTTCTATTATTTATTTGAAACA -TGCAAAATTGAAGTGAACAATAAGTGATGTTCATGGAAATTTAAACTGTT -TTATGATACTTTTTTGAGAAATTGAAAAATCTGTTCATTTTAGAAACAAT -GTCCACATGGTTCTAAGAGCTAAAATTTTTATTTTCATCCATTTAGAGTA -CTTTCTCTTTTAGAGTACGGCCCCAGAGCGATGTTAGAAACCTGAGATCG -GTCAACACAGACCGTTAATTTTGGGAAGTTGAGAAATTCGCTAGTTTCTG ->CHROMOSOME_III -CCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCC -TAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTA -AGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAAAGCGCGAAATCCTATGAA -ATTTCAAGGATTTATAACTTTTTGAGTCCGAAAAGAGTCGGAAATCAGAT -AAAAATAAAATCGGGCTTTTCGACCAAAATTAGGCCTCGAAAAGTCTGAG -AAAGCACGGAATCTATGGATTCACGGCTTTTTGATTCCGAAAAGGTTCGG -AAAGAGAAGAAAATCGATAAGAATCGATAAATTTGCAGAAGTATTGCAAA -TAAATTCCGATTTTCACTAGAATTGCGTCATTTGGGCGCAGAAAATCGGG -CTTTTCGACCAAAATTAGGCCTAGAAAAGCATGAAAGGGGTCCAAATTCT -GAGATTTCGCAACAGTTTTTGGACAAGGTTATCCCGGAAATTAGCGGGAA -GCACTGAAGATCGAAAAACTGAAGATCTTGTCGTTGAGAATCGTTCAACA -GCGTCAGTTACTACTGAAAAACTGATTTTTGAGCAGAAAATCTGCCGAAA -TGTCCGAAATCGGACGAAAATCAGTGGTTTTTTCGCCAGGAACTCGTAAA -CGAGCGGGAAAAAACACTAAAATAAAATACATAATCGACGACGGCGTCGA -AAAATGGACTTTGGAGGCGATTTTGAGATAAAAATCGCCTCTCTGAGACC -GCGTCACCGCAACTCGTGCCTCCATCTGACTCAGGATCCGAATCCGGCTA -ACGAGTATACTCGAGCCGGTTCGGTCGATGCACCAATGTTGACACCCATG -TTCTTCGGGGAGTCAGACCCGATAGGTAACAAACGTGCGGCTTACTTAAT -GACGCGCGGAGGATACGGAGCTAGTACGAGCGGTGCGACTGATGATGCAT -AGGGAATAACAGTACACAAGCTTGAATTAATCCAAGTTTATTATCGAATA -AAAGGATTAATCAAAGAAAAAAGGAGGAAAGGGCGAGCTGCATTGGGAGA -CGACCTTCCTCGACGAGAGTTGTTGAAGAATTGAATGGATCGTAGGCCAG -AGGCCTATAATAATTATTGTGTGGATTTACGGGCAACGACACTCCGGAGT -AACGCTAGTTAGCGAAGGAGCGCGGTTGCATCTGAATAGCGCATATTGGC -ACGTAATTCAAATTAGAAAAATTACTAAAATGATTTAATTAATATTTTTA -ATAGAACGAATGGAATATAATCAGCAAATGGTACAAGCGGACGTCACAAC -ACATTGCTTAATAATAAATTTCCAACTGAAACCAATAGATTCAGCCTTGA -CACAACTGATCAGAAACTTGTTATACATGTTAAAATACTCGAATTCATAT -TCATCGCCACCAGAATAATTGGGTTTGAACACTCTTGCAACTTCAACTGA -GATGGTACCGTAGATCCAGAAGATGCATTGTTGGAATGTACTTCTTCCCA -AAAGGTTCTGAGATTTAATTGATTTTTAACCTGGGCCTAAAAGTCTCACT -TACGTACATTTCTAATATTTAAGGCATTTAGTGCTGAGAAGTATTCGACA -GTGGCCTCGATGTTTTCAAAGTGGAATAAATAGTGAATTGGAATAATGTT -GAAATAATGACCAAAAACTTTACATTCTTTTGATTTTTTCCACTGATCCA -TCCGAGTAAGCTGCTCAAAGTCATCGATTGTTTCAAGGCACCACAATTCA -ATACTTTTCAACTCTTGAGAATCGAAATAGGGCAGCGTAGATATAATATC -ATTGGGTGACACAAAAATAATCGATAATTCCTTCACATGAATGCATTGCT -TAGATCTGAGGATGTTCAGAAAATATGTGGTAACGTTAAGGTCTTGTTGA -GTTTGTACAACAAATTCGAATTTCCTGACACGTCCCAGTAATATTCTCAA -ATCGTTGAAAGCTAGTTGCATGAAGTTATCTCTTCTGATTACTCTCTTTC -TTCTGTGAGCCACAATCGAATTCCCGGCATTGGTGTAAATGATTTTCATT -TTATCAATCCGCATTTCAACTCGACCATTGCATACCCAAAACGAGATAGA -ATCAAAATTAATTCCATTTTGAACAACGGCAGCTCTCAGACTTTTACAAA -TTTTGAGGTGAGTGAGTCTGAAGAATAATAGCTTGGTTATGATTTTTCAA -AGTTAGGGTACCGAAATCTTGGAAATATTTTTAATTGACTCCAAATTTTC -CCCTGATTCCGAAAATCGATGTGAAAAAAATCAAAAAAAAAATTCCTGAT -TTTATATTTAAGCTTGAAATCACGCATTTCATTTGCGCCCCGGTCTCTTT -TTCAAATTCGCGCCCTAATAAATTTGCATTGGAGCGCACTTGCATCGTGT -CATTTTCTTCGTTTTTTTCATTTATTTTAGCAGAATTCAATGTTTTAAAC -CAGTTTTATTCATTTGTGGAGAGTTTTTATCGGTTTTTTTTTGACTAAAA -TGAAAAAAGGGTCCAAATGAAAATCGAGATGAGCTAAGTCAAGCTTAAAT -ATAAACCAGGGAAATTTTTTGATTTTTTTTTTCACTTTGATATTCGGAAT -CATGGGAAAGTTGGGAGTCAATTAAAAATATTTCCCAGATTTTGGTACCC -CACCTTTAAATCAAAATAAAATCAACTAACTGATCCACTGGCTTTAGCTT -TTCCAATACTTGACCAAGGATCTCTGTGGGCATATCGGAAAGAGTAGGGG -AAATGTGATCCTGGCTGTAACAATCAAATTGCCATTAACCCAGTATTTCA -ACAAAAAAAAACTCACAAATTCATATATCGCACAAAATTAATTGCCCACC -ATTTGTCAAGTTCAGCTCCACGTTCTTCAGTCAGAGCACGTCGGGCTTCT -CGGCTGATTGTTACCATTTTCAAAAGATATAATTTCTTTAACACAGAAGT -TAAATAAAATATGTCCGATAGCAAAAAGTAGATGTGAATGAATTGAAGAA -GAACTGAGAAATAGCTAAATATCTATGTCTTAATTTTCATAGAGTTTCAT -TGTCAGATACTACAATGTTACTATTGAGAAAAATGTCAAACTGATAAGAA -TAGCAGCCAGCTTAAAATGAAAATTTGATAAGAAATTGCTGTCTTAATAT -TAATTATATTGTCGTCAACAAACAGAATTTTCACTTGCTAGTTGTTAGTT -TAAATTATATTTTGATACCGAAAAGTGTTTGAAAATGGGGGGAAACTAGA -AAATAAAGTTTTCTACATATTCCATATTTTCAGAATTGATTTCAAGATAT -GTCGGAAACAAGCCAAGAAGCTCGACGTGCACTGACGGAAGAACGGGGAA -AGGTGCTTGACAAATGGTGGGCAATTAATAATTTGAGATTCATGAAATTG -TGAGTTTTTTGGAAATACTGGCTTATTGGCAATTTGATCGTTACAGTCAG -GATCCCATCTCCCCCACGCTTTCCGATATGCCCTCAGAGATTCTTGTTCA -AGTTTTTGAAAAATTTGATTCTATAGAACATTAAGTTGCTTTGACTTTTA -CAACAAAAATATTCGGTATAAAAATGTTCTGACTTATTTGTCGAAAAGTT -TGTCGAAGTCTGAAGCCCGCCGTGGAAAAAATTGAAATTCATTTTGATTC -TATTTCGTTTGAAGTATTTAATAAAAATGTTATTATGAAATTGGATGGAT -TAAAAATTCTCTACAATGATGTCGCAAATGGTGCTTCTATAGTGGCTTAC -AATAACAAGGAAGCAATGATCAAAGGAGAAAACTTCCTGAAACTAGCTTT -CAATGATTTGGGAATACTACTGGAACGTGTGAGGAAATTCAAATTTAAAA -TCTATGGAGACGATGTACATGCCATTGCCACATTTCTTTTAAATGCTCTC -AAAGCTGATCAGTGTGTTCACGTAAAGAAAGTAGTGCTTTTTTACGTGCC -ACTCATTGATATTTGCTCAATTCTCTCGTATTTTGATTCTGAAATGTTGG -AAAGAATTGACTTGCGTTGTAATGATACAAACGCTCATTTTGAACAACTT -GCTCAAAAAAAATTCCAACGAACAAAATGTGTAGAACTTTACAAACTTTT -TAATAAAGATTTCCAAATTTTTATACAGATTCACTAAATTTCCAGAGTTT -TCCCACAAACCGACACACAGACCGACCTGGTAGTGGAGAGGACAACATCT -TTATTCAATCCAGTCAGTGAAGTGGAATTAAACTGGGCTTCAAGGAAGAA -ATGGCACAACGGAAAAGGTCGGGAGAAAAACCAAAAGTCGGAAAAATATT -TTTTATTGAGATATAATTTTTTTTGGTAGAAACATTTTTCTTCGAATTTA -AATTATATTTCGCGCCAAAAATAAGATTAAAAACCAAAAAAAAATCCGAG -TGTGGAGAAGTATTTTCGAAAATATTCCTCTAATAATACCCTTTAACAAG -GGCTATAATAATGGAATTTCGGGTGCTTGAAAATGAGTTTTTTGAGATTA -GAAGTATGAATTTTTGTGTCTGGTGTTAAGTTATTTAAGTTATATTGAAT -GGAAATTTTAAAAAAATTCTGAAAAAATATTTATAATTGTTATTTGAAGC -TACTATTTCACCTGGAAACTTCTAGAATTTCCAATTTTTTTAAAAATTTT -TTAAAAATTTTTTTATTTTCAATATTTTTCACATATGATACAATTTATTA -TGAGATTTTCGGAATTTTTTAAGTGAAGTTTTTCCCTAAAGTTTTCAAAA -TTGACTCGAATTTTCTGGAATTTTTTTTTTCAAAAGAAACACAGCTTTTG -TTTAATTTCCAGTTAATTTTTAGCTTTAACATTAAAAAAAATTTCTTTCA -TTTTTAACAAAAATTCCCCTTCTTATTTTAGAATTCAAAGCCAAAAACCT -TCAAATTCAATTTTATCTAAAACCTCCTCAAATTCGAAAAAGTGTGAGAG -AGATACGCGAGCTACGAAAAAGAGCAAAAATCTGAGTTTTTGAGCACTTC ->CHROMOSOME_IV -CCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCC -TAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTA -AGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAG -AAGAGACCAAACCGAAAAATCAATTTTTTAAACGAAAAATCAATGTTTTA -AACGAAAAATCTATTTTTTAAACGAAAAATCAATTTTTTAAACGAAAAAT -CCATAAAAAATTGTTATAAAAATTCTGGAAAAAAAACTAAAAACTTAATT -TTTGCTTTGAACATTCATCTTTCGCGAAAAAAATTTCAGCAAATAAAACC -GAAAAATACAATTTTGCAAATAAAAAATCTAAATCAACAGTAAAAAACAA -AAAAGTCAAATTTCAATAGAAAAAAAAATCAAAAATCAATTTTTACTCCA -AAAATTCAACTTTTGCCAAAAACTAACCCAGAAAAATCAATTCACAAAAA -AAAACAAATAAAACTGCAACGATGTTTGTGAAAAAAATTTTCTTGATATT -TTTAACGAATTTTTGTTTAAAAAAAATGCATTTTTGGCCATAAAATTTTT -TTTTTGATTTTTTCAAACGAATTTCCCCTCAATTTTCTTGCAGATCGACG -TGGATATTGACGACCTAGATGACGATTTTCTCTCCACAAACGGAATGGAA -CGACACGGTTCAGAATTACAAGGAGAAGTGGTTTTCACTACGACGAGTAC -TGCGAATAACAATGTGAAACGAGCCGTCGAATATTTCGAAGATGATAATC -AAGATGATGCACTAACATCCACTTCATCCGGCAACAGTACACAGAAGGAA -TCGTCTCCGTTCACAGATTTTGATGATGTTCCGCCGCCACCAGTGGCTCC -AGAAACTCCGGCTCCAGCCCAAAACCGCCGAGAATCTGCGTCCCCCGAAC -GTCAATTCCTTGATGAGAGTCACCTCGGCGGAATTGGATCTCCGTTATCA -CAGAGTACAAGGCTCGATGAGACGTTTATTGAGGAATACTCTATTGAGTT -GGACACCTCTGGGAAGTATGTGTTGGGAAAAAAAATCCGAAAATTGATTG -AAAAATTCGAAAAAAAATCCAAAAAACCTTTTTTTAATGAGATTTTTTCT -GTGCAAAAATTTAAATTTAGAGCTGAAGAATGTGCACTTCTAGAAAAACT -TATTTTAAAAAATTCACATCCTTTTATCAAATTTATTAGCATATTTATAC -AAATTGATGGATAAAAATTCCAAAAAAGTTCCAGAAACAACATTTCCTCC -GCAGCTTCACCTGGTCCCAAGTCTCCATTTGACGATGATTTTACTGATAC -AGCTGCCCCGGTAGCCCCGCCACCAGCACCTACAAAAGCTGCCGAGGAAT -ATCGCCGGCAACCACATCAGAATCCGTTTGATGAGGAAGAGGAAGAAGAA -TCACAGTTTGGAGGGGGAACTCTGTCCGGTAGAGACCCATTTGATGAAGA -TGTACGTTTTTCGTAAAGTTCGGAATTTTTAGGGTATAAATTGAAAAACA -AATGGAGAAAATATGAATACCTAGATTTTTTTTTTCAAAAAATCCCAACC -CTAATATCCACAATTTTTTTTCAGTCTGGAAACTCTAACGAAAACCAGCT -CCGCGAGAAGAAGCTCCACAAAAAAGAGCAACTAGCTCACCGGCTCTCCT -CCTCTTCCGAAGAAATTGTGGAAGCCTCAATTCACGAGGATGAGCCAATT -GTGATGGCTCAAATTCCAGAGGAGAAGCCCAAACCGAAGGCTATCCCGGC -TTTTGATAACGCCTATGACGCCGACTTTGACAATTCCCCACCACTTCATC -ATTACTCGGCGGTTCATTTGGAAACTGGGCTCTCACCGCTTGAGGAGGCT -CAGAGAGCTCTCCGAGCCAACCGAGCAAGGCATAAGCCGTCGAATGTATC -GTTGGCAGAGGAGGCGAAGCTTGCTGCCAGACAGAGATACTCGAATGCAT -CGGATATTAGAAGAGAAGAGGAGGAAGAAGTGGTGGAAGAAGATCCAGCA -GTGGTAGTTCCAGTTCTACGGAAGGATCTGGAAGTTGAGGAGGCTCCGAA -ATCGGTACGACCGCCTAGATATCGGAAGTCAAGGGAAATTGAGGAACCGG -TGGTTGTTGATCGGTTTGTTGAGGAAGAAGTTGATGAGAAGGAGGATATT -GATGCGATTTTTGAGAAATATCGAAAGGTTCGTAAAGATATTTTCGAGAA -AAACGGCGTTGAAAATTTGAAAAATTTGAACTTTTTTCGAGTTAAAAAAT -TTAAACATATAGAAAAGATATGAATCTGACAAAATTTAGAGAAAATAAAA -TGTTATTCACCAAATCGCCAATTTTTCTGCATTTTTTTGTCCGTTTTACT -TTGGTAATTCTGGTAATACAAAACTAGTTTTTTTTCAAAAAAGAATTGCA -GGAAAAATATTTTAAATGTTTTTTGAGCACTTGAGCGCATGAGATAGAAA -AACGTTATTATTATGCATTCCCTCATATAAAAGTTTGTTCAATTTTTTTA -ATTAAACCCCGCTCTTTGAGAAAACTCTGGACTCTACATGGAGACTACCT -TAATACAAATTAACTCATAAATATCGGTGATTTTCAACTAGTTATTCATA -TGATGCAATTACTGATTTAATAACTTATAATTATGTGTCAATTTCAGACG -TCTGTATCCGCCGATCCAAAATCTCACACGCCGATTTTGATGGCCGACGA -GTACAAAGAACCACAGAAGCAAGGTGAGTTTAGTTCGAAAAAAAATCATA -ACACACACCAGTAGGTTTAAAAACATTGTTAGAAAATTTGAAAAAAAAAC -CAAAAACCGTCGTAAAACTACACTTTTTCTATTGAAAATAGAACAAACAA -ATCAAATATCCTACATGTAAAATTTAAATCGAGTGGAATTAAATTCTTCA -AACAAAAAGAAATCTGCATTTAATATCGATTTCTCATTCAATTGTTATGA -ATCATAAAACATGATTTTTTACGACCTCCTCTGAATTATCTACATTGTTC -TCTTTTTCATACTTTCCATATTCTAGTATCGATAGGACTAACACAATTTT -AATAGTGAGTTCGTTTTTCAAACAATTGGGATTAATTTTCAACTGAACTA -GACTGTTTCTGAACGCTCAAAACCTTCAAAATCAATGCTTCTTCAAAACG -AAAAAATTGCACACTATAAACCTCTCACTTGAAGTGGCAGCGCTCGTTTT -ATATTGAGAAAATATATATTCAAAAAAATGCTGCTGCTTCTTCAGCTTCT -CGCCGGGCGCCGCCGCCAATAGTGAGTTCGTTTTTCAAACAATTGGGATT -AATTACAAAAAAACTTAACTGCGCAATTTTTAATTGGGAAACTTTCAAAT -TTTAACCATAACTATCAATACAGCGGTATACGAAATTTTTCTTCAAAATC -GCACCGATACTGCATTTTTCCGGAAAAGGACAAAGTCGGCTAATTGCCGT -TTTTTATAATTTTTGCTCATTAAGCTTATTCCATTAAAAATACAATTCTT -GTTTAAAATTGCTGAACGGCGAATTTTGTCTACCCGTGGTGGAAATTGCC -GGTTTGTTGATTTGCCGGAAAATTTCATTTTCGGCGTGCCGATTTGCCGT -TTGCCGGATATCAATTTGCCTGAAACGTTTAGAGGAATACAACGGAAACA -TTTGAAACTGTGCCTTTTTGAAATTTTTTCCCTTTTTTTTACAATATTTT -CATAGAATTAGCTTACTTTTCAAAATAGATGTAGGAAAATTCATATGCGT -ACAATTTTGCCAATTAAAATTTGAATTCTGAAATTTACAAAAAAATGTGC -AAAACTACTATTCGCCGAAAATTTTTGGCAAGTTGCCGATTTGCCCGAAA -TTTTTATTTTCGGCAAATTGGCGCTTTGCAGTTTGCCGGAAAAAATTACA -TACACCTGTTTTCAGCCTAACTTAAAATATGATTTACTTTGAAAAATAGG -GAATTAAATTTAAATAAAATTTTCAACTGAACTAGACTGTTTCTGAACGC -TCAAAACCTTCAAAATCAATGCTTCTTCAAAACGAAAAAATTGCACACTA -TAAACCTCTCACTTGAAGTGGCAGCGCTCGTTTTATATTGAGAAAATATA -TATTCAAAAAAATGCTGCTGCTTCTTCAGCTTCTCGCCGGGCGCCGCCGC -CACATTTACCGGCCAACCCGTTCTCTGAGGTTGTCTTGTAAGGGCGTTTT -CATGTATATTCAGATTATTATGCATGAATTTCATTAATAACGGTATCCAC -CCACGTATATTTCTCTTCTTCTCTCTTTCTGTTGCGACGGGGGATGTCGA -TTGATTACGCCACGGGCGCTAGCCTATTCCGAATGCATTGAGAAATTTGA -GACCAGATTCTGGAGTTTTTGGAAGACGAATCGTCGGCAGCGGAGCTCGA -TTTTAATTTAATTTCGAGAGCACCCGCGTGCTCTCGCCTCGACACCCTCA -AACTTCTTCTTCTTCTTCTTTTCGTCGTCTTTCACTTTTTTCCTTTTTCC -TGTCCTAACCACGGCGTCTTCCTCCAATTTTCAGTTACCACGACGTCATT -AGCTATTTTTAGTCCGAGTGTGGAGCTTGAGAATTTGAGCAATTCTGATG -TGACATTCCTGTCGTTTTTAGCGCTAATTTTCCTAAAACCTTCAAAAATT -TAGAAATTCTCTATCGTCTTTCAAGAGCCTAAGTTTTTTTTTTCGAAATG -AGTTTTTTAAAATTGATCGAAATGTTTTTAAATACTGAATATTTGGGATT -CTAGATTTTTACTACAATATTTCCTTTTCAATTTTTAATTGGACAAAATT -TCAAAATGTTAAAAAAATTCTCCGAATTGAATGCTATTTTTCTAAAAAAT -TTTTTTAGTGCCTGCACCAGTTGTCGTTGCTCAGGAGTCGCCGATCTTAA -AACGAAGAAACTCTCTAGTACCATCAAGGATCAGTGGAAGGCAGTCGACG ->CHROMOSOME_V -GAATTCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCT -AAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA -GCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCATAAGC -CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCATAAGCCTAAGCCT -AAGCCTAAGCCTAAGCCTAAGCCTAAGCATAAGCCTAAGCCTAAGCCTAA -GCCTAAGCATAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAACA -TAAGCCTAAGCCTAAGCCTAAGCCTAAAACATTTGGAAATTATTTTTGAT -CGTTTATATTCAAGTAGCAAGAAAGTGTCCTAGCGTTAAAAATAGGAAAT -TTTTCGCTCTTTCAGAACAGTATACTCATGTCTCTGTACCGACGATATTC -ATTTCAAAAATCGCAAAAAAAGTTTTTTTCAAAATACCACTACCATTAAA -ACATTTGGAAATTATTTTTGATTGTTTATATTCAAGTAGCAAGAAAGTCT -CCTAGCCTTAAAAATAGGAAATTTTTTGCTCTTTCAGACCAGTATACTCA -TGTCTCTGTACCGACGATATTCATTTCAAAAATCGCAAAAAAAGTTTTTT -TCAAAATACCACTACCATTAAAACATTTGGAAATTATTTTTGATTGTTTA -TATTCAAGTAGCAAGAAAGTCTCCTAGCCTAAAAATAGGAAATTTTTTGC -TCTTTCAGATCAGTATACTAAACATTCACGTGTGGATTAAAATTAAAAAG -GTAGTGTTAAATAATTAAAAATCATTTAGGGGGGAACGAAACCCATAAGT -ACTGTCATTTTTATCTTTTACCTTTTTTTTTACGTACGACGTTTTTCGCT -GTTTTCCCTGATACAAAATGCGTTGTTCTTGTTTATTTATGTTTTTCTTG -AAAATGTTATCAACACTGATAATCTGAAAAATTATAATTTAAAACTTAAA -CGAAGCTAAAATGTGGCTGTTATAATACAGCGACTCAATGAAAAACTCAA -AAAAAAGTTGACTTTGCACGCTATGGTTAAAAATGAATGAATTCTTGGTA -CATGGTTTTTTTTGTGATTTTTCGTTGAAAAATCCACACCGTGTCAGAGA -GAGCTGAAAATGTTCATTGAAAGCGCTAAAAAACATTTGAAAAAATGCCA -ATTTTTCCGTAAGATAATTCGATTTGAAAGTTTGAAAACTGAATAGTAAT -TGTGTACTTGCAAAGAACCTTGTTTGCTTTTTAGTTTATTTGATCTACCA -AAGATTGGGTTCACTGTCTGACCATTTGGGTCACTAATCTCATAAACCGT -CAAAACAATCCAACGTGGTACAAAGTACATCAAGTTTTTCACAAGTCCTA -TAGTTAGCTGCGCATCCCTAATAGGTATCCCCATTAATTTTTTTTTCAAG -AAGAATGGCAACACAAACACCCCTCTCTGATGACTCGTGTGTCAAAAACG -AGCTCACGGAACTCTCCTCTAGTGAAACGGTCTCGAGGATTGACGAGGCC -CCGAAATTTCATGTCAAAGCTGTCGTCGGGCGTGTTGTGATAAAACATTT -TGGTGGCCGGGATTGTGTTTGTGTTCAGTCAGAAAGACGCTATTAGGACC -TCCTCCCATCTTATTAGCTGTTTATCCTTCATCACAAGACATCTCAATAT -TGGTTCCATAGGTGTAGCTTCTTCTGCTTCTTCTTCTTCTTTTGTACCTA -CGTCATCATACATTGGTTACTGTCCTACCGAGGTTTGTTTCAAATTTGCA -CATTTAAAATGGTATACACCTTTAAAATAAACTTAGAAGTAAGGCCTTTG -GTCCCACTACAAAAAATTTACAGTAGTTTGGTTCAGACTTTTCTAAATTT -AATTAAGGTTATTTTTTATTGACAAAAAATATTTTAGTTCAAGAAATATG -TTATGTTCAGTGGGTTTCCTGTCATATACTTCTACTTACCGTATTTCCTC -TATTAGTCTTGCATGCAAGACTAATTTTCAATTGACCCGTAGGGGTGCAA -GACAAATAGGGGTGCAAGACTAATAGAGGCTGCAAGACTAATAGAGGAAA -TACGGTAGTTATACTGGCAAAAGCGATAGCATTTCGAGAGAAAAATATTC -TTAAATGTGCTCAATATGGCTGATACAGATAGGTTTTTCATTACAGACAG -GTTTTTCATTTCAATTTTAAAAAAATACCTGACAGTTTATCAAGAAAATC -CAGCACATTCCAGAGTTATTAGAGTATTTAGAAGTTTGCAAGTTCCCAAT -TTTGTCAAGGGATTTTTCAAAGTTTCTCAAACTTTCCAAAAAATGCAAAA -AAAAACATTCCAAAAGTACCAATTTTTCCAAAAAATTCCATAAATATATT -CAGTCCACCGAACGTTTTTAGATCTAACTGAGAGTTCTCCTGAAGTTTTT -CAGAGTTTGAAGGAATTTATAGAAGTTTCTGATGTTTTACAGGATTTTAC -TAAAGTTTCTCAAATTATCTATAAATGCCAAATCTTTTCAGAAAGTTTTC -AGAAAATTTCCGGAAAACCTTCAATTTTTCAAGTTTTCCAGAAGATTCTC -GATTTTTCCAAAATCGTTTCAGAATTTTCCTAATTATTCCCATATTTCCA -TCGACTTCTTATAGTTAATTTGATTTTCATCAAATTGATACAAATGAGAA -AATTTGAAATTTGATAACTCACGTTTCGATGCAAAAAGAGACGAAAGGCG -GCGTGATGCGGGCAGGATTTAGGCAGGCGGTAGGCCCTGAAACCGCGCCT -GCCTACCATTGAACCTCTAAGCTATTCAGTTGTATTTTTTGATATTCCAG -ATGCGTACCGACGTGGGTTCTATTCCATTAATGTGTATTCTGTCTACACT -AACGACTGGTGTGTTCGGATATCTTCCGACAGAAGATCTCACAAATTCGA -TAATTTCTGGAAACGGTGGTTATCCAGTTCCTCCGGACACTATTATACCG -GCCGATGGAGATGAGGAAGGTAAGTGGATCAGAAATTAATAATTATAAAT -TTTTTAGAGTAGGGTTTTCTTCTGAAATCTGATATTTTGTGAATTTTGCA -AAAAATTGGAAAAATCGACAACGAAATGCAAATTGTTTCGTTAAATGCAA -AATGGATGCGCACCTTTAAAGAGTAAAGTCTATGAAAATGCTTTTATTTG -GTATTACAGTTCTTTTCAAAGGCACACATATTTTTCCCATTTAACAAAAA -ATCGTCGTGACCTTATATCGTATTTTCGGCGCAAAAATCGGAACATTTCG -CGTCTGTATAATACCCCATTTAAAGGTTTACGACGCAATAATACAACACC -GGGTCTCGACGTGGCAAACGATTGTTTATTGATTTTCACGGGATTCTCGC -CTTTCTCATTGAATTTTCGCGCTCCATTGGCAATCGCCTGCCGGACAACG -CGTGGAAAAGTGTAGTGTACTCCACACGGACAAATCCATCGGTTTTACAA -CTAAAAACGAGCCGCGACGCGACACGCAACGCGCCGTAAACCTACACAAA -ATCTCGCAGACTCAAAATGGCCTAGTTCGGCAAACTCTGCCATTTCGATT -TATGAGGGAGGCCAGAATTCCGTGATTTTCCCATTTCTCACGGCCTCTCT -AAATTTCACGTTTTTCAAAATTCATCTTTTTCTCTCTGCTCTCTCACTCT -CTCACGTGAAATATTACTTTCTGAATAATAATTTGTGTTTAATTAAATCA -AATTTTATTGAAATAGAATTCATGATACACGATCTTGAGAAGAGCTCTGT -CCTCCAGGCTGCGAACTGGAGCGTAGAAAGTTTTCATATTGTTAAAAACT -GCAAAGAAATGTTCGATTCCTTGTTCTGACGTGTGATGCTTTCTCAAATA -TGGAATTAAATGACAGACAAGGAGATGAAGTTTCGGAGTGACTCATTATT -TCATCAGTTTCATTAGGAAAAACACTCTTTATTTATTCAAGGAACTGTTA -AAGCAAAACTTCAATTTTGTCAATCTCTTGGTCTAAATACGTTCTATCGT -TAGATAAATCTAACTATCTAACTGAAACGAGTACAACTATATTGTAACGC -AAAAAAGCTAAGCGCCATAAAACACAAGTAAAACAGGCTCCAGTAAGCCT -AAACTGTTTTTACTATAAAAAACCATTGTCATTCACCTACCTACCAAATG -CCAATATAATTGGTTGAAAAAAATTAGTTTAATCTCCTCGCAAGATTTTT -TTCTCCGAAATTTAAGATTGGGCGCTTAGTGATATCATAACTCTGCAGCC -ATCAGAAAAACTGAAATGTATTTAAACTGTAAGTTTTAATCGTTTTATGA -GGATTATTTCTTTAGTTGACAGTTTTTTGATAGCTTCTTTAGTTATTGAG -CTACGGGCTTCCAAACAAAACCAATCAAAAACCACTATAAACCACAATGT -CCTAAAAGTGAAATTACTCAGTCAATTTTTAACCAAATCACGGCATTAAT -GTCTTGATATCTTCATTGAACAATTTGTAAAAATCGTAAGGCGGTAGTTT -TTTGATAAATGTCATCGTTTTTTAGTAAAATTGCGTTAACCATTCAAAAA -TGGCCCATTTTTGGTGTTTTCAGGCCTAATTCTTGTTTTTGAAATTCCGG -AGCCAGTTTTTATCGAAAATTTTTGTGCAATGTCAAAAAATGACCGGAAA -AAAATTCTCTACAATCGTAAGGCGGTACTTTTTAAAATTTCGTTTCCATT -CTTCCCCAGGGATCCCGTAAAAAACCAATTTTTCGACTAGGTCTCACATT -TTGCCCTACAAGAGCATAGTTAATGTTATAAATTTGGATTTTTTGGTCGA -ATTTGATGAGGTAATATTCAGTTGTTTGTTTATTGTTGGAAAATCTGAAG -ATTTATCAGCGAATCGCCCGATTTCGCCAATTATGACCAAAAAACCCCTA -GTTTAGGATTTTCACGAATGGATGAGTTCATTGATACGCTTCCACGCTGT ->CHROMOSOME_X -CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCT -AAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA -GCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGC -CTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCT -AAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAAGCCTAA -GCCTAAGCCTAATCTGTGCTCCAAAGCCTTCGAACTGACGGACTTGTGTC -CCGAAGTCGAACTCTTGAAGTTGTCACCGAGTTGGCTAATAAGAAAGACG -CTACGTTGTCTTTTTAGTAAGTTTTCGTCGAAATTCTGGAAAAAAAATCT -GAAAAAAATGAGAAAAATTGAAGTTTCTTGTGAAAACGTGCAGCAGCCGA -CAACTAACGGGACTGGGAAAATTGAAATTTTTAACACAGTTAAAATGCGA -TGTGCGCATAGTGGGTGAAAGGCCATAATGCGCGCACCGCGTGTGGCGAC -CACCTATTATGCACCTATCGCGAACGGTTCGCGATGGGTCCATAATGTAT -CCATGATGCTTCCACTCACGAAACAAACAATTCGAAATATATATTGTTTT -TCCGCCTATTTTTTTAACATTTTATTGCAATTTTTATTGAATTTTTGATT -TTCACTGGTTTTTTTTCTTGAAATTTTGTTTCGTATGTGGTATTTTGTAA -TAATCATAATATTTTTTTCTAAATTGTGTGTCTTTTAGAGAAAACACTGC -TCTAACCAGTTGAGGCATTTAAAAACATCATTTAAACAACATGGCAAGCA -TTATTTCGTTCCTAATAAATGGAAGCATAGTCAGGATTACTGTAGTTTCA -CATGTATTTAGCCATTAAAATTGTAATCTGAGTTTTCATCGGTATTTGCG -CATACTCAGAAAATTTTGTTAAATATCTTGTCTGTTCCTGTATTTTCAAG -AGCGAAATATCGTCAAAATCAGATTATTTCGTTGAATCTGGAAATGCCCA -CTGTTCTTCATGCCTACTCGTGTCTATTTCTCATCAGCGTTATAACTCAC -CTTTTAAATAATATTGTAGAAACAAATTTTTTGCAGCTTCTCTTCGAGCA -GCAGACTTCACAAAAACTTCATCAACAAGAAAAAACGTGAAAATCTTCAA -CATCGGAATGTCTAGGTGAAGGATGTCGGAACGGGCAAGGTTTGGAGCAC -GGCTCAGCTTTTTTAGATTTTAGATTTTAATTTAGAAACACACCACCGAA -GAGGAGGAGATAAAGATGGCTCGGCTCCAGAATGCATTGAAAGTTGTTGG -ATGGTCGAATGGATTGAAAGCAATTGTAAAGAAGGAGTTACCCGGAAGCC -CTGCCAAAAAGCAAAAACCGGCATCGGTTGCGCCGAAAATTTTGGACTCC -TCGATCGGAAGAGTGAGTTTGCTGATTTTCAAAAAATAGGATGAAAGGCT -GAATAATTTGAGCTCTCAATTGCTAAAAATATACGGATGGACAAAACTAC -GATCATCATTGGTCACAAAGTTGCAGCTCCGAAAAGAGAATTCGTCTGGA -ATTCTGGAAGTTCACAAGAATGGTGAGTACTTACCTTTCAAGTGAAAATT -GAGGAAAAATTGAGAAAGAAATGTGTTGAAAGATGCAAAAAAATGACAAA -AATTCAGCTTATCCTGCTAAAATTACGCGTGAAAAAGCATATTTTGTGCT -TGAAAATCGCAAAAAAAATGCATTAGAAAAACCGATTTTATTTAGTCCTC -CTAACAAATCGATTTTTGTAGACCTGGAGTCATCCTAGCAAACGAGGCAA -CACTGGAAGAGGACGAAAAACGTTAAGATTCCGTATGAAGATGTCAGAAA -ACCGAGTTAGGAGGAACTTGGAATTAAATTTTTGAGTTTTCTTTTTTCTA -TAATTTTTTAAGCTCACTTTTTATTCTTTTTGTTGTTCTCCCACTTAGGC -CATGTTAATAAATGTGTTTTTGTTAAGAAAACTGTCTTAAATGCTCAGGA -TCAGGTTTTATTATTAAAAAAACAAACCCACAAAGCGCACATAATTTATG -TTCGCGATGCTCGCAAAATGCATCTCAAGTTCGCGATGGACGCACAATGC -GCGCGCAATGGGCATCATTTCCGGTTCCTTTTTAACACACGCGCGATCCA -CTCCGAAAGCACTATGCGCACATCGCATTTTAACTGTGAATGAAAATTTG -AAAAAAAAAACTAAATTTGAGAATTTTTGAGTTAAAAAATTCCAAATTGC -AGAGAAATAAAAAATAAAATTTTTAGAGAATATATCGAAAGAAATTCAAA -TTTTTAAGAAAAAATCCCAAAAATAAATCATTTTTCTAGAAAAAAAAAGC -AAAAAGTTCCCATTTTGCGATAAAAATCGAAAAAATCCCGATTTTTTTAC -AATTTTCTAAAAAAAAACTGAAAAAAATCCACATTTTTCAGAAAAAAACG -CTAAAATTTTAATTTTTTCTAGAAAAAAACAAAATTTTCAATAAAAAATC -CAAAAATAAAACCAAAATTAAAAAATTATAATAATTACGGGTAAAATCGT -ATGAAATCCCGTTTTTTTTTTAATCGTAATTATTTTCAATTTTTTGGTTT -TCTCCTCAAAAAAAATTGTTTTTTTTCCCATTTTTCTTTAAAAATTGAAA -GTTTTCCAATTTTTCTCGAAATATTGACTCAAAATTAGCTTTTTCTTCGA -ATTTTTAATAAAAATTTTCACTTTCGCGACCCGTTAGTTGTCGGCTGCAC -GGTTTTCTGAAAATTGAGAAATAAAATTAGAAAAGTTGCAAAATTGAAAA -AAAAAACCGCAAAAAACTGAAATTTTCTAGGCAAAAAAAAATAAAAGAAA -TCCACAAATTTTTCGATAAAAATTGAAAAAATCCAAATTTTCCTGAAAAA -AATCCCAAAAATCCAATTTTTCTACAAAAAAAACCCAAAAATCCACTCCT -TTTCGATAAAAATTTGAAAAAATTTCGATTTTTCAAGAGAAAATTCCGAT -TTTCTAGAAAAAAAACCCCAAAAAACTATAATTTTCCTTTAAAAAAAACC -CCAAAAATCCAAATTTTTGTACAAAAAATACCAAAAAATCCACATTTTTC -AATAAAAATTAGAAAAAAAAAACAATTTTTGCTGAAAAAAAACTCAAAAA -TCCAATTTTTCTACAAAAAATACAAAAAAAATCACGATTTTCCTGAAAAA -AACCCAAGAAACTATAATTTTCCTGAAAAAAAAATCCAAAAAAAAACCGG -GAAAAAAACAAAAGAAATCCAAATTTTTCGATAAAAAAATTGAAAAAATT -CCGATTTTTCAGGAATAAATTCGGGAAAAAATTCAATTTTTCTAGTAAAA -AACCCAAAAAAAACCCAATTTTTTTGCAGTTTCCGTCACTTCTTCTACCA -CCGTTTCCACAGTAATCTCATCGAAGGCTCAGGTCGCCTACTCGACAAAA -TTAATGATACTACTGCTGCCCAACAACAACTACAAACTACAAACGAACTC -GACGGCGATGGCCCAGAAATTGCAATCGCCGCGGCCAAAGCATTCCATCC -GACTGAAAAATTCGATTTGGAAATGAATGTGGACGACGATGAAATTCTGA -AAGTATTTGATATACAAGAACAAGAGCAAATTGTGATGAAAAAAATCCGA -CATTTGGAGAATTCTGACTTACATTTCGAGCGAATTCATGTGAATTTGGC -GAAAAAAGAGCGATTTTTTGACGACGTTCAGAGCTCGGAAAATGACTCAA -GCGACGAAAAACTCGCCGAAATTTGCGATTTTTTGAGCCAAAATTGCCGG -GAAATCTCGAATGCTGCGAAGCCTCCTCGAGCAACACTTGACGAATGGAT -TCAGACTGGAAAATTCGAAATACAACGTCGTCGAGAGATCCGGGCGGTTT -GCCACGTCATCAAGGCCATCGGTCAGATGGGAATTACACTTGGCGAGCTG -TGTGGAAAATTGAAAATTGCCATAGAGCAAATTGCCGGAATTTTGGCCGA -TTTGAGCGGAGACAAGAAATGGTGTCCGAGACCTTGGATTGCGCCGGAAG -GTTTTCTTTTTTTTTTAAGGGATTTTTGGGGCGAAAAATTTGGATTTGGC -TCACCACGCGCGAGCTTTGATTTAAAGGTGTTTTCGCGGTGAGACCCGGA -AATTTTATTTTTCCTAAATCTCTCTGAACCCGGTCATGATTATACTTAAA -TGAAAGCTCACGGCGAGCTGAATTCGAATACTAAGTGTATGGTTGTTTAG -CTACAGTAACCTGACACTGAATTTCGCGGCGAGACCCGAAAATCCCCAAA -AACTCTCAAAAACCGTCTTAGAATCGATCAAAATATGTCAAGATTATACT -TAAAGGAGGACTAACGGTTCGGACGATTTTGAACGTATAGACCAAAAATA -AGCTCAAATGAACGAAATTCGTAATGAAACTGCTCAAAAATTTTTCAAAA -ATTTTTTATGGCGGTTCAAAATTTTGAAAAAAATTACACTGATTTTGGCT -AAAATCACGATTTTTTCTCATTTTTCCGTGTCACATTTGTCCGAAGTTGG -TTTTTTTAGAATTATCGTCCTTTATTACATATTTTGGTAATAAATCTCAT -TTAATTTCGTCGATTAAAGTGCATTTAAAGCCGATAAATAACCAGTTTCG -ATGATTTTTGGTTACCTATCGGCTTTAAATGTACCTTAATCGATGAAATT -AAATGAGATAATCTACCAATATATGTAATAAAGGACGATACTTCCAAAAA -AGCCAACTTCGGTCAGATGTGACACGGAAAAATGGGAAAAATTCGTGATT -TTAGCCAAAATCAGTGTAATTTTTTTCAAAATTTTGAACCGCCATAAAAG -ATTTTTGAAAAATTTTTGAGCAGTTTCATTACGAAATTCATTTAAGTATA -ATCATGAGCGGGTTCAGAGAGATTTAGGAAAAATAAAATTTCCGGGTCTC ->CHROMOSOME_MtDNA -CAGTAAATAGTTTAATAAAAATATAGCATTTGGGTTGCTAAGATATTATT -ACTGATAGAATTTTTAGTTTAATTTAGAATGTATCACTTACAATGATGGG -GTTTAAAATTCTATAGTAAAAGTGTTTTTTGTTTTAGCTGTTTTAAGTAG -GATTATTAGATATATTAATATTGACCCTATAAAAAGAAGTTTTTTTCTTA -TCTTTTCACTACTTTTTAGTATACCAGTTATTTCAATGAGAATACATATT -TGGTTTTCTTACTTTATTTGTTTATTATTTTTAAGTGGTATTTTTGTTAT -TTTGGTATATTTTTCTAGTTTATCTAAAATTAATGTAGTGAAAAGTTATA -TAGCTGTGTTTTTACTTTTGTTAAGAATGTTATATTTTTCTCCCACAGTA -TTAACTTATAGAAGATATTTAGGTTTAAGAGGTTTTTATTATAGTATTTA -CTGGTTTATTTTTTGTTTTATTTTAGTATGTTTATTATTTTTTATAAATT -TTAGTAGTTATTTTTTAAATTTTTCAGGTGCTTTACGTAAAGTTTAAAAT -TATGTTTTTATTTGTTAGATTATTTATATTTATTTTTAAATGACAACGTT -TAATTTTTATTCTAATTTCTTTAGAATTTATAATGTTGAGATTATTTTTA -AAATTTTCTTATGTTTTAGGGGAAATAATGTTTTTTTATTTTATGTGTTT -TTCTGTTATTTCAAGAATCCTGGGTATGGTAGTTATAGTAGGTAATATAA -AATTTTTTGGTAGTGATAATTGTATTTTTTAGTAACAGATATAAGTTAAG -TTTAAACTATTGATCTTCAAAATCAAAAATTTATTTCTGTAGAGATAATA -GTATAAATAAGTATGTTTCTTTTTCGCAGAAATGGTTTTTTATCTTATAA -AGTTTTCTTTCAGGGAATTAAAATTTGATCATGGTTTAAGATGATTTAAA -ATGGTATTATCTAAATTTGATTTACAGAGTAGGCAATAAAAATTTACCTC -GGCAATTTATCGCTTGTAAAATACTTGTTCCAGAATAATCGGCTAGACTT -GTTAAAGCTTGTACTTTAATTGATGTTAATTATGAAATTATTATATTTTC -TTTTAGATCTATGGTAGAATTTGGATTTATATTAGTGAATTTTCATAATT -TTAAGATTTGTTGAACAAAGCAGATTAGTACCTGGTTAGACAAAAATTAA -AAGAGCAGGAGTAAAGTTGTATTTAAACTGAAAAGATATTGGCAGACATT -CTAAATTATCTTTGGAGGCTGAGTAGTAACTGAGAACCCTCATTAACTAC -TTAATTTTTTGACTCGTGTATGATCGTTTATTTTATTCTTAAGGATTATA -ATAAAAAATTTTTAATTTATTAAAATAGATATATACCCGGTTTATGATTT -AAGAAACATTTGGCCTACAATATTTTATATTATGGATTTTAGTTTTAGTT -AACTAAATGAAATTGTAAAAGACAGTAAAAAATTCTTAATGTATTTTTGA -AGATTATCTAGAAGTGGTACAAATCATCCATCAATTGCCCAAAGGGGAGT -AAGTTGTAGTAAAGTAGATTTAGGGGAACCTGAATCTAGTAATAAAACTA -TTTTTAAATATGTTTTGAAAACATGTTTTGAGGTAACTCGTAGTTTTTAA -GAGTTAGTTTAATATAGAATTGTTGACTGTTAATCAAAAGGTGTACCTCT -TAATATAAGAGTTTAGTTTAAGTTAAAACGTTAGATTGTAAATCTAAAGA -TTATTGCTCTTGATAATTTTAGTTTTACTTATAGTTATTTTAATGATGAT -TTTTATTGTTCAAAGAATCGCTTTTATTACTCTATATGAGCGTCATTTAT -TGGGAAGAAGACAAAATCGTCTAGGGCCCACCAAGGTTACATTTATGGGA -TTAGCACAAGCTTTATTGGATGGGGTTAAACTTTTAAAAAAAGAACAAAT -AACACCCTTAAATTCCTCTGAAGTATCATTTTTACTTGTACCAGGAATTT -CTTTTGTTGTAATATATTTAGAATGATTTACGTTACCATATTTTTTTGAT -TTTATTAGTTTTGAGTATTCAGTTTTATTTTTTTTATGTTTAATTGGATT -TTCTGTTTATACAACTTTAATTAGCGGTATCGTAAGAAAATCAAAATATG -GTATAATTGGGGCCATCCGTGCTAGAAGACAAAGAATTTCTTATGAAATT -GCTTTTTCTTTATATGTTTTGTGTATTATTATTCATAATAATGTTTTTAA -TTTTGTTTCAAAATTTAATTTGAGACTTTTAATTATTTACATCCCATTTT -TAATTATAGTAATTGCTGAACTTAACCGGGCGCCATTTGATTTTTCTGAA -GGTGAAAGGGAGTTAGTTAGAGGATTTAATGTGGAGTTTGCCAGAGTAGC -TTTTGTTTTATTATTTTTAAGGGAATATGGAAGATTAATTTTTTTTAGGG -TACTTTCTTCTGCTATATTTTTTAAATTTTCAATTTTTATAGCATTTAGT -ATTTTTTCATTATTAATTTTTATTCGTAGTTCATACCCTCGTTATCGTTA -TGATTTAATAATAAGTTTATTTTGATTTAAACTTTTACCAATCTCTTTAA -TTATATTGTGTTTTTACGCAGTTATTTTTTATTATTAATCAAGTTTATTT -TTTAGACATTTTTATATTTGTTTTTGTTTTACAATTTTTGTTTTATTTTA -AAGAAAGTATATTAAATACTTTAGTGAAAAAATTTCTTAATAGGTTAGTA -GGAGTATTTAGATATACAAATACTTTACCATTAAGGTCAGTAATTTCTAT -TTTTACTTTTATTGTTCTTTTAACTTGTTGTTTTGGAGGTTATTTTACTT -ACTCTTTTTGTCCTTGTGGAATGGTTGAATTTACTTTTGTTTATGCTGCT -GTAGCGTGATTAAGTACTTTGTTAACTTTTATTTCAAGAGAAAAATTTTC -AGTTTATATAAGAAAACCAGGAGACACATATTTGAAAACTCTTAGAATGC -TATTAATTGAAATCGTTAGAGAATTTTCTCGTCCACTTGCTTTAACAGTG -CGTTTAACAGTTAATATTACTGTTGGTCATTTAGTTAGAATAATGCTTTA -TCAAGGATTAGAATTAAGAATAGGTGATCAGTATATTTGATTATCAATTT -TAGCCATTATAATAGAATGTTTTGTTTTCTTCATTCAAAGTTATATTTTC -TCTCGTTTAATTTTTTTATATCTTAATGAGTAATAAAAAAAAAAAGATGT -TAACTTAAGTTTTAAAGTGCCAAACTTTTAATTTGGAAATGGTGGACCAC -ATCTTAGTTGATATAGCATAAGAAGTGCATTTGTTTTAAGCGCAAAAGAT -ATCCGTCAACTAACGAGTTCATAAAGCAAGTCTTCTAAATTTGTTCTAGG -TTAAATCCTGCTCGTTTTTGATTGTTTTTATTTCTTTATTTACCTTGTTT -TTAACATTATTAAGAATTTTGACTAATAACGTTATTGTTTGATGAAGAAT -TTTTTTATTGATAACTGTAGTTTTTATTCTATTAAATAAAAGCAGCAAGA -GATATACCAGAATTTTTAATTATTTTGTTATTCAAGAGTCTTTAGGTTTA -TTATTTCTTCTTTGTAGAGGAGGTCTATTACAATTTTTTATTATTTTATT -GAAAATTGGTGTAGCACCGCTCCACTTTTGAATTTTTAATGTAACAAATA -ACATTTTTAATTATGGGCTAATGTGGTTTTTAACATTTCAAAAATTACCA -TTTTTAACTATTTTATTACAAATTTTTTGGTTAAGATCCGTGTATATTTT -GTTATTTGGTTTATTGATTTGTTATGTTCAAATTTTTGTCATAAAAAGTT -ATAAAAATTTGTTAATTATTTCATCCACAGAGTCTTTTAATTGGATTGTT -TTGGGAGTATTTTTTTCAATGTTTAATACATTTTATTTATTTATTTATTA -CTTTGTATTAATAGTTTTATTAATTTCTAAGTTTTCTAAAACTAGGGGTT -ATAATTTTATTAATTGAGAAACAACATTAGTATTTTTAAATATTCCATTT -AGAGTTTCATTTTTTGTAAAAATTTTCTCATTGAGGGAAATTTTTAAATA -TGATAGATTCTTTACTCTATTTTTGCTTTTTACAATATTTTTATCTGTAT -TGGCATTTAGATTTTGATTAATTAACTTGAGAATGAAAAATAATGAAGAA -ACTTCAAATAATAATAAAATAAATTATTTTATTATTTTTCCGTTAATAGT -TATTTCTATTATTTAATTACTTTTCTAGTAAAATATATTATATTATCTTG -ATAAGGTAAAGTTCCAGTTGGGAGAAGTAAGATGTAAAATAGATATTACT -ATGTTTGGTTACGGTCCAAAAAGATGCACATCTTTGCGATCTAGTTTAGA -AAAAATATTTGTTTTTGGTGCAAAAGAGTTTGATTGCATTTAGTTTACTC -TTTTAGTTTATAATTAAAATATGGCCCTGAAGAGGCTAAGAATATTAGGA -GTATTGAAAATTAATAATAGATTATTAAATTTTGTTAATGGGATGTTGGT -GACATTGCCATCTAGAAAAACTTTAACATTAAGATGAAATTTTGGTAGTA -TATTGGGTATAGTTTTAATCTTTCAGATTTTAACAGGTACATTTTTAGCA -TTTTATTATACGCCCGATAGGTTAATAGCATTTTCAACAGTGCAGTATAT -TATGTATGAGGTAAATTTTGGATGAGTATTTCGAATTTTTCATTTTAATG -GGGCCAGGTTATTTTTTATTTTTTTGTATTTACATATTTTTAAAGGGTTA -TTTTTTATAAGATATCGTTTAAAAAAAGTATGAATGTCTGGTTTAACAAT -TTATTTATTAGTAATAATAGAAGCTTTTATAGGTTATGTTTTAGTTTGAG -CTCAAATAAGATTTTGAGCAGCAGTAGTTATTACTAGACTTTTAAGAGTT -ATTCCAATTTGAGGGCCAACTATTGTTACTTGAATTTGAAGAGGTTTTGG diff --git a/htslib/test/ce.fa.fai b/htslib/test/ce.fa.fai deleted file mode 100644 index 2ad2e7f..0000000 --- a/htslib/test/ce.fa.fai +++ /dev/null @@ -1,7 +0,0 @@ -CHROMOSOME_I 1009800 14 50 51 -CHROMOSOME_II 5000 1030025 50 51 -CHROMOSOME_III 5000 1035141 50 51 -CHROMOSOME_IV 5000 1040256 50 51 -CHROMOSOME_V 5000 1045370 50 51 -CHROMOSOME_X 5000 1050484 50 51 -CHROMOSOME_MtDNA 5000 1055602 50 51 diff --git a/htslib/test/compare_sam.pl b/htslib/test/compare_sam.pl deleted file mode 100755 index f98ca41..0000000 --- a/htslib/test/compare_sam.pl +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/perl -w -# -# Copyright (C) 2013 Genome Research Ltd. -# -# Author: James Bonfield -# -# 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. - -# Compares two SAM files to report differences. -# Optionally can skip header or ignore specific types of diff. - -use strict; -use Getopt::Long; - -my %opts; -GetOptions(\%opts, 'noqual', 'noaux', 'notemplate', 'unknownrg', 'nomd', 'template-1', 'noflag'); - -my ($fn1, $fn2) = @ARGV; -open(my $fd1, "<", $fn1) || die $!; -open(my $fd2, "<", $fn2) || die $!; - -# Headers -my ($c1,$c2)=(1,1); -my (@hd1, @hd2, $ln1, $ln2); -while (<$fd1>) { - if (/^@/) { - push(@hd1, $_); - } else { - $ln1 = $_; - last; - } - $c1++; -} - -while (<$fd2>) { - if (/^@/) { - push(@hd2, $_); - } else { - $ln2 = $_; - last; - } - $c2++; -} - -# FIXME: to do -#print "@hd1\n"; -#print "@hd2\n"; - -# Compare lines -while ($ln1 && $ln2) { - chomp($ln1); - chomp($ln2); - - # Java CRAM adds RG:Z:UNKNOWN when the read-group is absent - if (exists $opts{unknownrg}) { - $ln1 =~ s/\tRG:Z:UNKNOWN//; - $ln2 =~ s/\tRG:Z:UNKNOWN//; - } - - if (exists $opts{nomd}) { - $ln1 =~ s/\tMD:Z:[A-Z0-9^]*//; - $ln2 =~ s/\tMD:Z:[A-Z0-9^]*//; - $ln1 =~ s/\tNM:i:\d+//; - $ln2 =~ s/\tNM:i:\d+//; - } - - my @ln1 = split("\t", $ln1); - my @ln2 = split("\t", $ln2); - - # Fix BWA bug: unmapped data should have no alignments - if ($ln1[1] & 4) { $ln1[4] = 0; $ln1[5] = "*"; } - if ($ln2[1] & 4) { $ln2[4] = 0; $ln2[5] = "*"; } - - # Rationalise order of auxiliary fields - if (exists $opts{noaux}) { - @ln1 = @ln1[0..10]; - @ln2 = @ln2[0..10]; - } else { - #my @a=@ln1[11..$#ln1];print "<<<@a>>>\n"; - @ln1[11..$#ln1] = sort @ln1[11..$#ln1]; - @ln2[11..$#ln2] = sort @ln2[11..$#ln2]; - } - - if (exists $opts{noqual}) { - $ln1[10] = "*"; - $ln2[10] = "*"; - } - - if (exists $opts{notemplate}) { - @ln1[6..8] = qw/* 0 0/; - @ln2[6..8] = qw/* 0 0/; - } - - if (exists $opts{noflag}) { - $ln1[1] = 0; $ln2[1] = 0; - } - - if (exists $opts{'template-1'}) { - if (abs($ln1[8] - $ln2[8]) == 1) { - $ln1[8] = $ln2[8]; - } - } - - # Cram doesn't uppercase the reference - $ln1[9] = uc($ln1[9]); - $ln2[9] = uc($ln2[9]); - - # Cram will populate a sequence string that starts as "*" - $ln2[9] = "*" if ($ln1[9] eq "*"); - - # Fix 0 cigar fields - $ln1[5] =~ s/(\D|^)0\D/$1/g; - $ln1[5] =~ s/^$/*/g; - $ln2[5] =~ s/(\D|^)0\D/$1/g; - $ln2[5] =~ s/^$/*/g; - - # Fix 10M10M cigar to 20M - $ln1[5] =~ s/(\d+)(\D)(\d+)(\2)/$1+$3.$2/e; - $ln2[5] =~ s/(\d+)(\D)(\d+)(\2)/$1+$3.$2/e; - - if ("@ln1" ne "@ln2") { - print "Diff at lines $fn1:$c1, $fn2:$c2\n"; - my @s1 = split("","@ln1"); - my @s2 = split("","@ln2"); - my $ptr = ""; - for (my $i=0; $i < $#s1; $i++) { - if ($s1[$i] eq $s2[$i]) { - $ptr .= "-"; - } else { - last; - } - } - print "1\t@ln1\n2\t@ln2\n\t$ptr^\n\n"; - exit(1); - } - - $ln1 = <$fd1>; - $ln2 = <$fd2>; - - $c1++; $c2++; -} - -if (defined($ln1)) { - print "EOF on $fn1\n"; - exit(1); -} - -if (defined($ln2)) { - print "EOF on $fn2\n"; - exit(1); -} - -close($fd1); -close($fd2); - -exit(0); diff --git a/htslib/test/fieldarith.c b/htslib/test/fieldarith.c deleted file mode 100644 index 6d871b7..0000000 --- a/htslib/test/fieldarith.c +++ /dev/null @@ -1,72 +0,0 @@ -/* test/fieldarith.c -- CIGAR field arithmetic test suite. - - Copyright (C) 2013 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#include - -#include "htslib/sam.h" - -int ntests = 0; -int nfailures = 0; - -void check(const bam1_t *aln, const char *testname, const char *tag, int value) -{ - int32_t refvalue; - uint8_t *aux = bam_aux_get(aln, tag); - if (!aux) return; - ntests++; - refvalue = bam_aux2i(aux); - if (value != refvalue) { - fprintf(stderr, "%s FAIL for %s: computed %d != %d expected\n", - testname, bam_get_qname(aln), value, refvalue); - nfailures++; - } -} - -int main(int argc, char **argv) -{ - bam_hdr_t *header; - bam1_t *aln = bam_init1(); - int i; - - for (i = 1; i < argc; i++) { - samFile *in = sam_open(argv[i], "r"); - if (in == NULL) { perror(argv[1]); return 1; } - - header = sam_hdr_read(in); - while (sam_read1(in, header, aln) >= 0) { - check(aln, "cigar2qlen", "XQ", - bam_cigar2qlen(aln->core.n_cigar, bam_get_cigar(aln))); - check(aln, "cigar2rlen", "XR", - bam_cigar2rlen(aln->core.n_cigar, bam_get_cigar(aln))); - check(aln, "endpos", "XE", bam_endpos(aln)); - } - - bam_hdr_destroy(header); - sam_close(in); - } - - bam_destroy1(aln); - - return (nfailures > 0); -} diff --git a/htslib/test/fieldarith.sam b/htslib/test/fieldarith.sam deleted file mode 100644 index 180d1e8..0000000 --- a/htslib/test/fieldarith.sam +++ /dev/null @@ -1,15 +0,0 @@ -@SQ SN:one LN:1000 -@SQ SN:two LN:500 -@CO For each SAM record that has each listed aux field, performs these tests: -@CO XQ is the expected result for bam_cigar2qlen() -@CO XR is the expected result for bam_cigar2rlen() -@CO XE is the expected result for bam_endpos() -@CO (Note that these are all zero-based, while POS is one-based in SAM) -r1 0 one 50 20 8M * 0 0 ATGCATGC qqqqqqqq XQ:i:8 XR:i:8 XE:i:57 -r2 0 one 100 20 50M * 0 0 ATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCATGCAT qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq XQ:i:50 XR:i:50 XE:i:149 -unmapped 5 two 200 0 * two 200 0 ATGCATGC qqqqqqqq XQ:i:0 XR:i:0 XE:i:200 -hascigar 5 two 200 0 6M2S two 200 0 ATGCATGC qqqqqqqq XQ:i:8 XR:i:6 XE:i:200 -s1 0 one 300 20 2M * 0 0 AT qq XQ:i:2 XR:i:2 XE:i:301 -su1 4 * 0 0 * * 0 0 AT qq XQ:i:0 XR:i:0 XE:i:0 -su2 5 two 400 0 * two 400 0 AT qq XQ:i:0 XR:i:0 XE:i:400 -su3 4 one 500 0 2M * 0 0 AT qq XQ:i:2 XR:i:2 XE:i:500 diff --git a/htslib/test/hfile.c b/htslib/test/hfile.c deleted file mode 100644 index c4ba91c..0000000 --- a/htslib/test/hfile.c +++ /dev/null @@ -1,204 +0,0 @@ -/* test/hfile.c -- Test cases for low-level input/output streams. - - Copyright (C) 2013-2014 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#include -#include -#include -#include - -#include - -#include "htslib/hfile.h" -#include "htslib/hts_defs.h" - -void HTS_NORETURN fail(const char *format, ...) -{ - int err = errno; - va_list args; - va_start(args, format); - vfprintf(stderr, format, args); - va_end(args); - if (err != 0) fprintf(stderr, ": %s", strerror(err)); - fprintf(stderr, "\n"); - exit(EXIT_FAILURE); -} - -void check_offset(hFILE *f, off_t off, const char *message) -{ - off_t ret = htell(f); - if (ret < 0) fail("htell(%s)", message); - if (ret == off) return; - - fprintf(stderr, "%s offset incorrect: expected %ld but got %ld\n", - message, (long)off, (long)ret); - exit(EXIT_FAILURE); -} - -char *slurp(const char *filename) -{ - char *text; - struct stat sbuf; - size_t filesize; - FILE *f = fopen(filename, "r"); - if (f == NULL) fail("fopen(\"%s\", \"r\")", filename); - if (fstat(fileno(f), &sbuf) != 0) fail("fstat(\"%s\")", filename); - filesize = sbuf.st_size; - - text = (char *) malloc(filesize + 1); - if (text == NULL) fail("malloc(text)"); - - if (fread(text, 1, filesize, f) != filesize) fail("fread"); - fclose(f); - - text[filesize] = '\0'; - return text; -} - -hFILE *fin = NULL; -hFILE *fout = NULL; - -void reopen(const char *infname, const char *outfname) -{ - if (fin) { if (hclose(fin) != 0) fail("hclose(input)"); } - if (fout) { if (hclose(fout) != 0) fail("hclose(output)"); } - - fin = hopen(infname, "r"); - if (fin == NULL) fail("hopen(\"%s\")", infname); - - fout = hopen(outfname, "w"); - if (fout == NULL) fail("hopen(\"%s\")", outfname); -} - -int main(void) -{ - static const int size[] = { 1, 13, 403, 999, 30000 }; - - char buffer[40000]; - char *original; - int c, i; - ssize_t n; - off_t off; - - reopen("vcf.c", "test/hfile1.tmp"); - while ((c = hgetc(fin)) != EOF) { - if (hputc(c, fout) == EOF) fail("hputc"); - } - if (herrno(fin)) { errno = herrno(fin); fail("hgetc"); } - - reopen("test/hfile1.tmp", "test/hfile2.tmp"); - if (hpeek(fin, buffer, 50) < 0) fail("hpeek"); - while ((n = hread(fin, buffer, 17)) > 0) { - if (hwrite(fout, buffer, n) != n) fail("hwrite"); - } - if (n < 0) fail("hread"); - - reopen("test/hfile2.tmp", "test/hfile3.tmp"); - while ((n = hread(fin, buffer, sizeof buffer)) > 0) { - if (hwrite(fout, buffer, n) != n) fail("hwrite"); - if (hpeek(fin, buffer, 700) < 0) fail("hpeek"); - } - if (n < 0) fail("hread"); - - reopen("test/hfile3.tmp", "test/hfile4.tmp"); - i = 0; - off = 0; - while ((n = hread(fin, buffer, size[i++ % 5])) > 0) { - off += n; - buffer[n] = '\0'; - check_offset(fin, off, "pre-peek"); - if (hputs(buffer, fout) == EOF) fail("hputs"); - if ((n = hpeek(fin, buffer, size[(i+3) % 5])) < 0) fail("hpeek"); - check_offset(fin, off, "post-peek"); - } - if (n < 0) fail("hread"); - - reopen("test/hfile4.tmp", "test/hfile5.tmp"); - n = hread(fin, buffer, 200); - if (n < 0) fail("hread"); - else if (n != 200) fail("hread only got %d", (int)n); - if (hwrite(fout, buffer, 1000) != 1000) fail("hwrite"); - check_offset(fin, 200, "input/first200"); - check_offset(fout, 1000, "output/first200"); - - if (hseek(fin, 800, SEEK_CUR) < 0) fail("hseek/cur"); - check_offset(fin, 1000, "input/seek"); - for (off = 1000; (n = hread(fin, buffer, sizeof buffer)) > 0; off += n) - if (hwrite(fout, buffer, n) != n) fail("hwrite"); - if (n < 0) fail("hread"); - check_offset(fin, off, "input/eof"); - check_offset(fout, off, "output/eof"); - - if (hseek(fin, 200, SEEK_SET) < 0) fail("hseek/set"); - if (hseek(fout, 200, SEEK_SET) < 0) fail("hseek(output)"); - check_offset(fin, 200, "input/backto200"); - check_offset(fout, 200, "output/backto200"); - n = hread(fin, buffer, 800); - if (n < 0) fail("hread"); - else if (n != 800) fail("hread only got %d", (int)n); - if (hwrite(fout, buffer, 800) != 800) fail("hwrite"); - check_offset(fin, 1000, "input/wrote800"); - check_offset(fout, 1000, "output/wrote800"); - - if (hflush(fout) == EOF) fail("hflush"); - - original = slurp("vcf.c"); - for (i = 1; i <= 5; i++) { - char *text; - sprintf(buffer, "test/hfile%d.tmp", i); - text = slurp(buffer); - if (strcmp(original, text) != 0) { - fprintf(stderr, "%s differs from vcf.c\n", buffer); - return EXIT_FAILURE; - } - free(text); - } - free(original); - - if (hclose(fin) != 0) fail("hclose(input)"); - if (hclose(fout) != 0) fail("hclose(output)"); - - fout = hopen("test/hfile_chars.tmp", "w"); - if (fout == NULL) fail("hopen(\"test/hfile_chars.tmp\")"); - for (i = 0; i < 256; i++) - if (hputc(i, fout) != i) fail("chars: hputc (%d)", i); - if (hclose(fout) != 0) fail("hclose(test/hfile_chars.tmp)"); - - fin = hopen("test/hfile_chars.tmp", "r"); - if (fin == NULL) fail("hopen(\"test/hfile_chars.tmp\") for reading"); - for (i = 0; i < 256; i++) - if ((c = hgetc(fin)) != i) - fail("chars: hgetc (%d = 0x%x) returned %d = 0x%x", i, i, c, c); - if ((c = hgetc(fin)) != EOF) fail("chars: hgetc (EOF) returned %d", c); - if (hclose(fin) != 0) fail("hclose(test/hfile_chars.tmp) for reading"); - - fin = hopen("data:hello, world!\n", "r"); - if (fin == NULL) fail("hopen(\"data:...\")"); - n = hread(fin, buffer, 300); - if (n < 0) fail("hread"); - buffer[n] = '\0'; - if (strcmp(buffer, "hello, world!\n") != 0) fail("hread result"); - if (hclose(fin) != 0) fail("hclose(\"data:...\")"); - - return EXIT_SUCCESS; -} diff --git a/htslib/test/sam.c b/htslib/test/sam.c deleted file mode 100644 index 5539840..0000000 --- a/htslib/test/sam.c +++ /dev/null @@ -1,187 +0,0 @@ -/* test/sam.c -- SAM/BAM/CRAM API test cases. - - Copyright (C) 2014-2015 Genome Research Ltd. - - Author: John Marshall - -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. */ - -#include -#include -#include -#include -#include - -#include "htslib/sam.h" -#include "htslib/faidx.h" -#include "htslib/kstring.h" - -int status; - -static void fail(const char *fmt, ...) -{ - va_list args; - - fprintf(stderr, "Failed: "); - va_start(args, fmt); - vfprintf(stderr, fmt, args); - va_end(args); - fprintf(stderr, "\n"); - - status = EXIT_FAILURE; -} - -uint8_t *check_bam_aux_get(const bam1_t *aln, const char *tag, char type) -{ - uint8_t *p = bam_aux_get(aln, tag); - if (p) { - if (*p == type) return p; - else fail("%s field of type '%c', expected '%c'\n", tag, *p, type); - } - else fail("can't find %s field\n", tag); - - return NULL; -} - -#define PI 3.141592653589793 -#define E 2.718281828459045 -#define HELLO "Hello, world!" -#define BEEF "DEADBEEF" - -#define str(x) #x -#define xstr(x) str(x) - -static int aux_fields1(void) -{ - static const char sam[] = "data:" -"@SQ\tSN:one\tLN:1000\n" -"@SQ\tSN:two\tLN:500\n" -"r1\t0\tone\t500\t20\t8M\t*\t0\t0\tATGCATGC\tqqqqqqqq\tXA:A:k\tXi:i:37\tXf:f:" xstr(PI) "\tXd:d:" xstr(E) "\tXZ:Z:" HELLO "\tXH:H:" BEEF "\tXB:B:c,-2,0,+2\tZZ:i:1000000\tY1:i:-2147483648\tY2:i:-2147483647\tY3:i:-1\tY4:i:0\tY5:i:1\tY6:i:2147483647\tY7:i:2147483648\tY8:i:4294967295\n"; - - // Canonical form of the alignment record above, as output by sam_format1() - static const char r1[] = "r1\t0\tone\t500\t20\t8M\t*\t0\t0\tATGCATGC\tqqqqqqqq\tXA:A:k\tXi:i:37\tXf:f:3.14159\tXd:d:2.71828\tXZ:Z:" HELLO "\tXH:H:" BEEF "\tXB:B:c,-2,0,2\tZZ:i:1000000\tY1:i:-2147483648\tY2:i:-2147483647\tY3:i:-1\tY4:i:0\tY5:i:1\tY6:i:2147483647\tY7:i:2147483648\tY8:i:4294967295"; - - samFile *in = sam_open(sam, "r"); - bam_hdr_t *header = sam_hdr_read(in); - bam1_t *aln = bam_init1(); - uint8_t *p; - uint32_t n; - kstring_t ks = { 0, 0, NULL }; - - if (sam_read1(in, header, aln) >= 0) { - if ((p = check_bam_aux_get(aln, "XA", 'A')) && bam_aux2A(p) != 'k') - fail("XA field is '%c', expected 'k'", bam_aux2A(p)); - - if ((p = check_bam_aux_get(aln, "Xi", 'C')) && bam_aux2i(p) != 37) - fail("Xi field is %d, expected 37", bam_aux2i(p)); - - if ((p = check_bam_aux_get(aln, "Xf", 'f')) && fabs(bam_aux2f(p) - PI) > 1E-6) - fail("Xf field is %.12f, expected pi", bam_aux2f(p)); - - if ((p = check_bam_aux_get(aln, "Xd", 'd')) && fabs(bam_aux2f(p) - E) > 1E-6) - fail("Xf field is %.12f, expected e", bam_aux2f(p)); - - if ((p = check_bam_aux_get(aln, "XZ", 'Z')) && strcmp(bam_aux2Z(p), HELLO) != 0) - fail("XZ field is \"%s\", expected \"%s\"", bam_aux2Z(p), HELLO); - - if ((p = check_bam_aux_get(aln, "XH", 'H')) && strcmp(bam_aux2Z(p), BEEF) != 0) - fail("XH field is \"%s\", expected \"%s\"", bam_aux2Z(p), BEEF); - - // TODO Invent and use bam_aux2B() - if ((p = check_bam_aux_get(aln, "XB", 'B')) && ! (memcmp(p, "Bc", 2) == 0 && (memcpy(&n, p+2, 4), n) == 3 && memcmp(p+6, "\xfe\x00\x02", 3) == 0)) - fail("XB field is %c,..., expected c,-2,0,+2", p[1]); - - if ((p = check_bam_aux_get(aln, "ZZ", 'I')) && bam_aux2i(p) != 1000000) - fail("ZZ field is %d, expected 1000000", bam_aux2i(p)); - - if ((p = bam_aux_get(aln, "Y1")) && bam_aux2i(p) != -2147483647-1) - fail("Y1 field is %d, expected -2^31", bam_aux2i(p)); - - if ((p = bam_aux_get(aln, "Y2")) && bam_aux2i(p) != -2147483647) - fail("Y2 field is %d, expected -2^31+1", bam_aux2i(p)); - - if ((p = bam_aux_get(aln, "Y3")) && bam_aux2i(p) != -1) - fail("Y3 field is %d, expected -1", bam_aux2i(p)); - - if ((p = bam_aux_get(aln, "Y4")) && bam_aux2i(p) != 0) - fail("Y4 field is %d, expected 0", bam_aux2i(p)); - - if ((p = bam_aux_get(aln, "Y5")) && bam_aux2i(p) != 1) - fail("Y5 field is %d, expected 1", bam_aux2i(p)); - - if ((p = bam_aux_get(aln, "Y6")) && bam_aux2i(p) != 2147483647) - fail("Y6 field is %d, expected 2^31-1", bam_aux2i(p)); - - // TODO Checking these perhaps requires inventing bam_aux2u() or so -#if 0 - if ((p = bam_aux_get(aln, "Y7")) && bam_aux2i(p) != 2147483648) - fail("Y7 field is %d, expected 2^31", bam_aux2i(p)); - - if ((p = bam_aux_get(aln, "Y8")) && bam_aux2i(p) != 4294967295) - fail("Y8 field is %d, expected 2^32-1", bam_aux2i(p)); -#endif - - if (sam_format1(header, aln, &ks) < 0) - fail("can't format record"); - - if (strcmp(ks.s, r1) != 0) - fail("record formatted incorrectly: \"%s\"", ks.s); - - free(ks.s); - } - else fail("can't read record"); - - bam_destroy1(aln); - bam_hdr_destroy(header); - sam_close(in); - - return 1; -} - -static void iterators1(void) -{ - hts_itr_destroy(sam_itr_queryi(NULL, HTS_IDX_REST, 0, 0)); - hts_itr_destroy(sam_itr_queryi(NULL, HTS_IDX_NONE, 0, 0)); -} - -static void faidx1(const char *filename) -{ - int n; - faidx_t *fai = fai_load(filename); - if (fai == NULL) fail("can't load faidx file"); - - n = faidx_fetch_nseq(fai); - if (n != 7) fail("faidx_fetch_nseq returned %d, expected 7", n); - - n = faidx_nseq(fai); - if (n != 7) fail("faidx_nseq returned %d, expected 7", n); - - fai_destroy(fai); -} - -int main(int argc, char **argv) -{ - status = EXIT_SUCCESS; - - aux_fields1(); - iterators1(); - if (argc >= 2) faidx1(argv[1]); - - return status; -} diff --git a/htslib/test/test-regidx.c b/htslib/test/test-regidx.c deleted file mode 100644 index 0aea6b8..0000000 --- a/htslib/test/test-regidx.c +++ /dev/null @@ -1,116 +0,0 @@ -/* test/test-regidx.c -- Regions index test harness. - - Copyright (C) 2014 Genome Research Ltd. - - Author: Petr Danecek - - 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. -*/ - -#include -#include -#include -#include -#include -#include - -void error(const char *format, ...) -{ - va_list ap; - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - exit(-1); -} - -int custom_parse(const char *line, char **chr_beg, char **chr_end, reg_t *reg, void *payload, void *usr) -{ - // Use the standard parser for CHROM,FROM,TO - int i, ret = regidx_parse_tab(line,chr_beg,chr_end,reg,NULL,NULL); - if ( ret!=0 ) return ret; - - // Skip the fields that were parsed above - char *ss = (char*) line; - while ( *ss && isspace(*ss) ) ss++; - for (i=0; i<3; i++) - { - while ( *ss && !isspace(*ss) ) ss++; - if ( !*ss ) return -2; // wrong number of fields - while ( *ss && isspace(*ss) ) ss++; - } - if ( !*ss ) return -2; - - // Parse the payload - char *se = ss; - while ( *se && !isspace(*se) ) se++; - char **dat = (char**) payload; - *dat = (char*) malloc(se-ss+1); - memcpy(*dat,ss,se-ss+1); - (*dat)[se-ss] = 0; - return 0; -} -void custom_free(void *payload) -{ - char **dat = (char**)payload; - free(*dat); -} - -int main(int argc, char **argv) -{ - // Init index with no file name, we will insert the regions manually - regidx_t *idx = regidx_init(NULL,custom_parse,custom_free,sizeof(char*),NULL); - if ( !idx ) error("init failed\n"); - - // Insert regions - char *line; - line = "1 10000000 10000000 1:10000000-10000000"; if ( regidx_insert(idx,line)!=0 ) error("insert failed: %s\n", line); - line = "1 20000000 20000001 1:20000000-20000001"; if ( regidx_insert(idx,line)!=0 ) error("insert failed: %s\n", line); - line = "1 20000002 20000002 1:20000002-20000002"; if ( regidx_insert(idx,line)!=0 ) error("insert failed: %s\n", line); - line = "1 30000000 30000000 1:30000000-30000000"; if ( regidx_insert(idx,line)!=0 ) error("insert failed: %s\n", line); - - // Finish initialization - regidx_insert(idx,NULL); - - // Test - regitr_t itr; - int from, to; - - from = to = 10000000; - if ( !regidx_overlap(idx,"1",from-1,to-1,&itr) ) error("query failed: 1:%d-%d\n",from,to); - if ( strcmp("1:10000000-10000000",REGITR_PAYLOAD(itr,char*)) ) error("query failed: 1:%d-%d vs %s\n", from,to,REGITR_PAYLOAD(itr,char*)); - if ( !regidx_overlap(idx,"1",from-2,to-1,&itr) ) error("query failed: 1:%d-%d\n",from-1,to); - if ( !regidx_overlap(idx,"1",from-2,to+3,&itr) ) error("query failed: 1:%d-%d\n",from-1,to+2); - if ( regidx_overlap(idx,"1",from-2,to-2,&itr) ) error("query failed: 1:%d-%d\n",from-1,to-1); - - from = to = 20000000; - if ( !regidx_overlap(idx,"1",from-1,to-1,&itr) ) error("query failed: 1:%d-%d\n",from,to); - - from = to = 20000002; - if ( !regidx_overlap(idx,"1",from-1,to-1,&itr) ) error("query failed: 1:%d-%d\n",from,to); - - from = to = 30000000; - if ( !regidx_overlap(idx,"1",from-1,to-1,&itr) ) error("query failed: 1:%d-%d\n",from,to); - - // Clean up - regidx_destroy(idx); - - return 0; -} - - diff --git a/htslib/test/test-vcf-api.c b/htslib/test/test-vcf-api.c deleted file mode 100644 index 3e7623a..0000000 --- a/htslib/test/test-vcf-api.c +++ /dev/null @@ -1,282 +0,0 @@ -/* test/test-vcf-api.c -- VCF test harness. - - Copyright (C) 2013, 2014 Genome Research Ltd. - - Author: Petr Danecek - -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. */ - -#include -#include -#include -#include -#include - -void write_bcf(char *fname) -{ - // Init - htsFile *fp = hts_open(fname,"wb"); - bcf_hdr_t *hdr = bcf_hdr_init("w"); - bcf1_t *rec = bcf_init1(); - - // Create VCF header - kstring_t str = {0,0,0}; - bcf_hdr_append(hdr, "##fileDate=20090805"); - bcf_hdr_append(hdr, "##FORMAT="); - bcf_hdr_append(hdr, "##INFO="); - bcf_hdr_append(hdr, "##FILTER="); - bcf_hdr_append(hdr, "##unused="); - bcf_hdr_append(hdr, "##unused=unformatted text 1"); - bcf_hdr_append(hdr, "##unused=unformatted text 2"); - bcf_hdr_append(hdr, "##contig="); - bcf_hdr_append(hdr, "##source=myImputationProgramV3.1"); - bcf_hdr_append(hdr, "##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta"); - bcf_hdr_append(hdr, "##contig="); - bcf_hdr_append(hdr, "##phasing=partial"); - bcf_hdr_append(hdr, "##INFO="); - bcf_hdr_append(hdr, "##INFO="); - bcf_hdr_append(hdr, "##INFO="); - bcf_hdr_append(hdr, "##INFO="); - bcf_hdr_append(hdr, "##INFO="); - bcf_hdr_append(hdr, "##INFO="); - bcf_hdr_append(hdr, "##FILTER="); - bcf_hdr_append(hdr, "##FILTER="); - bcf_hdr_append(hdr, "##FORMAT="); - bcf_hdr_append(hdr, "##FORMAT="); - bcf_hdr_append(hdr, "##FORMAT="); - bcf_hdr_append(hdr, "##FORMAT="); - bcf_hdr_append(hdr, "##FORMAT="); - - bcf_hdr_add_sample(hdr, "NA00001"); - bcf_hdr_add_sample(hdr, "NA00002"); - bcf_hdr_add_sample(hdr, "NA00003"); - bcf_hdr_add_sample(hdr, NULL); // to update internal structures - bcf_hdr_write(fp, hdr); - - - // Add a record - // 20 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,. - // .. CHROM - rec->rid = bcf_hdr_name2id(hdr, "20"); - // .. POS - rec->pos = 14369; - // .. ID - bcf_update_id(hdr, rec, "rs6054257"); - // .. REF and ALT - bcf_update_alleles_str(hdr, rec, "G,A"); - // .. QUAL - rec->qual = 29; - // .. FILTER - int32_t tmpi = bcf_hdr_id2int(hdr, BCF_DT_ID, "PASS"); - bcf_update_filter(hdr, rec, &tmpi, 1); - // .. INFO - tmpi = 3; - bcf_update_info_int32(hdr, rec, "NS", &tmpi, 1); - tmpi = 14; - bcf_update_info_int32(hdr, rec, "DP", &tmpi, 1); - float tmpf = 0.5; - bcf_update_info_float(hdr, rec, "AF", &tmpf, 1); - bcf_update_info_flag(hdr, rec, "DB", NULL, 1); - bcf_update_info_flag(hdr, rec, "H2", NULL, 1); - // .. FORMAT - int32_t *tmpia = (int*)malloc(bcf_hdr_nsamples(hdr)*2*sizeof(int)); - tmpia[0] = bcf_gt_phased(0); - tmpia[1] = bcf_gt_phased(0); - tmpia[2] = bcf_gt_phased(1); - tmpia[3] = bcf_gt_phased(0); - tmpia[4] = bcf_gt_unphased(1); - tmpia[5] = bcf_gt_unphased(1); - bcf_update_genotypes(hdr, rec, tmpia, bcf_hdr_nsamples(hdr)*2); - tmpia[0] = 48; - tmpia[1] = 48; - tmpia[2] = 43; - bcf_update_format_int32(hdr, rec, "GQ", tmpia, bcf_hdr_nsamples(hdr)); - tmpia[0] = 1; - tmpia[1] = 8; - tmpia[2] = 5; - bcf_update_format_int32(hdr, rec, "DP", tmpia, bcf_hdr_nsamples(hdr)); - tmpia[0] = 51; - tmpia[1] = 51; - tmpia[2] = 51; - tmpia[3] = 51; - tmpia[4] = bcf_int32_missing; - tmpia[5] = bcf_int32_missing; - bcf_update_format_int32(hdr, rec, "HQ", tmpia, bcf_hdr_nsamples(hdr)*2); - char *tmp_str[] = {"String1","SomeOtherString2","YetAnotherString3"}; - bcf_update_format_string(hdr, rec, "TS", (const char**)tmp_str, 3); - bcf_write1(fp, hdr, rec); - - // 20 1110696 . A G,T 67 . NS=2;DP=10;AF=0.333,.;AA=T;DB GT 2 1 ./. - bcf_clear1(rec); - rec->rid = bcf_hdr_name2id(hdr, "20"); - rec->pos = 1110695; - bcf_update_alleles_str(hdr, rec, "A,G,T"); - rec->qual = 67; - tmpi = 2; - bcf_update_info_int32(hdr, rec, "NS", &tmpi, 1); - tmpi = 10; - bcf_update_info_int32(hdr, rec, "DP", &tmpi, 1); - float *tmpfa = (float*)malloc(2*sizeof(float)); - tmpfa[0] = 0.333; - bcf_float_set_missing(tmpfa[1]); - bcf_update_info_float(hdr, rec, "AF", tmpfa, 2); - bcf_update_info_string(hdr, rec, "AA", "T"); - bcf_update_info_flag(hdr, rec, "DB", NULL, 1); - tmpia[0] = bcf_gt_phased(2); - tmpia[1] = bcf_int32_vector_end; - tmpia[2] = bcf_gt_phased(1); - tmpia[3] = bcf_int32_vector_end; - tmpia[4] = bcf_gt_missing; - tmpia[5] = bcf_gt_missing; - bcf_update_genotypes(hdr, rec, tmpia, bcf_hdr_nsamples(hdr)*2); - bcf_write1(fp, hdr, rec); - - free(tmpia); - free(tmpfa); - - // Clean - free(str.s); - bcf_destroy1(rec); - bcf_hdr_destroy(hdr); - int ret; - if ( (ret=hts_close(fp)) ) - { - fprintf(stderr,"hts_close(%s): non-zero status %d\n",fname,ret); - exit(ret); - } -} - -void bcf_to_vcf(char *fname) -{ - htsFile *fp = hts_open(fname,"rb"); - bcf_hdr_t *hdr = bcf_hdr_read(fp); - bcf1_t *rec = bcf_init1(); - - char *gz_fname = (char*) malloc(strlen(fname)+4); - snprintf(gz_fname,strlen(fname)+4,"%s.gz",fname); - htsFile *out = hts_open(gz_fname,"wg"); - - bcf_hdr_t *hdr_out = bcf_hdr_dup(hdr); - bcf_hdr_remove(hdr_out,BCF_HL_STR,"unused"); - bcf_hdr_remove(hdr_out,BCF_HL_GEN,"unused"); - bcf_hdr_remove(hdr_out,BCF_HL_FLT,"Flt"); - bcf_hdr_remove(hdr_out,BCF_HL_INFO,"UI"); - bcf_hdr_remove(hdr_out,BCF_HL_FMT,"UF"); - bcf_hdr_remove(hdr_out,BCF_HL_CTG,"Unused"); - bcf_hdr_write(out, hdr_out); - - while ( bcf_read1(fp, hdr, rec)>=0 ) - { - bcf_write1(out, hdr_out, rec); - - // Test problems caused by bcf1_sync: the data block - // may be realloced, also the unpacked structures must - // get updated. - bcf_unpack(rec, BCF_UN_STR); - bcf_update_id(hdr, rec, 0); - bcf_update_format_int32(hdr, rec, "GQ", NULL, 0); - - bcf1_t *dup = bcf_dup(rec); // force bcf1_sync call - bcf_write1(out, hdr_out, dup); - bcf_destroy1(dup); - - bcf_update_alleles_str(hdr_out, rec, "G,A"); - int32_t tmpi = 99; - bcf_update_info_int32(hdr_out, rec, "DP", &tmpi, 1); - int32_t tmpia[] = {9,9,9}; - bcf_update_format_int32(hdr_out, rec, "DP", tmpia, 3); - - bcf_write1(out, hdr_out, rec); - } - - bcf_destroy1(rec); - bcf_hdr_destroy(hdr); - bcf_hdr_destroy(hdr_out); - int ret; - if ( (ret=hts_close(fp)) ) - { - fprintf(stderr,"hts_close(%s): non-zero status %d\n",fname,ret); - exit(ret); - } - if ( (ret=hts_close(out)) ) - { - fprintf(stderr,"hts_close(%s): non-zero status %d\n",gz_fname,ret); - exit(ret); - } - - - // read gzip, write stdout - htsFile *gz_in = hts_open(gz_fname, "r"); - if ( !gz_in ) - { - fprintf(stderr,"Could not read: %s\n", gz_fname); - exit(1); - } - - kstring_t line = {0,0,0}; - while ( hts_getline(gz_in, KS_SEP_LINE, &line)>0 ) - { - kputc('\n',&line); - fwrite(line.s,1,line.l,stdout); - } - - if ( (ret=hts_close(gz_in)) ) - { - fprintf(stderr,"hts_close(%s): non-zero status %d\n",gz_fname,ret); - exit(ret); - } - free(line.s); - free(gz_fname); -} - -void iterator(const char *fname) -{ - htsFile *fp = hts_open(fname, "r"); - bcf_hdr_t *hdr = bcf_hdr_read(fp); - hts_idx_t *idx; - hts_itr_t *iter; - - bcf_index_build(fname, 0); - idx = bcf_index_load(fname); - - iter = bcf_itr_queryi(idx, bcf_hdr_name2id(hdr, "20"), 1110600, 1110800); - bcf_itr_destroy(iter); - - iter = bcf_itr_querys(idx, hdr, "20:1110600-1110800"); - bcf_itr_destroy(iter); - - hts_idx_destroy(idx); - bcf_hdr_destroy(hdr); - int ret; - if ( (ret=hts_close(fp)) ) - { - fprintf(stderr,"hts_close(%s): non-zero status %d\n",fname,ret); - exit(ret); - } -} - -int main(int argc, char **argv) -{ - char *fname = argc>1 ? argv[1] : "rmme.bcf"; - write_bcf(fname); - bcf_to_vcf(fname); - iterator(fname); - return 0; -} - diff --git a/htslib/test/test-vcf-api.out b/htslib/test/test-vcf-api.out deleted file mode 100644 index d3bb73e..0000000 --- a/htslib/test/test-vcf-api.out +++ /dev/null @@ -1,28 +0,0 @@ -##fileformat=VCFv4.2 -##FILTER= -##fileDate=20090805 -##unused= -##source=myImputationProgramV3.1 -##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta -##contig= -##phasing=partial -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##FILTER= -##FILTER= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003 -20 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ:TS 0|0:48:1:51,51:String1 1|0:48:8:51,51:SomeOtherString2 1/1:43:5:.,.:YetAnotherString3 -20 14370 . G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:DP:HQ:TS 0|0:1:51,51:String1 1|0:8:51,51:SomeOtherString2 1/1:5:.,.:YetAnotherString3 -20 14370 . G A 29 PASS NS=3;DP=99;AF=0.5;DB;H2 GT:DP:HQ:TS 0|0:9:51,51:String1 1|0:9:51,51:SomeOtherString2 1/1:9:.,.:YetAnotherString3 -20 1110696 . A G,T 67 . NS=2;DP=10;AF=0.333,.;AA=T;DB GT 2 1 ./. -20 1110696 . A G,T 67 . NS=2;DP=10;AF=0.333,.;AA=T;DB GT 2 1 ./. -20 1110696 . G A 67 . NS=2;DP=99;AF=0.333,.;AA=T;DB GT:DP 2:9 1:9 ./.:9 diff --git a/htslib/test/test-vcf-sweep.c b/htslib/test/test-vcf-sweep.c deleted file mode 100644 index 57c47bc..0000000 --- a/htslib/test/test-vcf-sweep.c +++ /dev/null @@ -1,112 +0,0 @@ -/* test/test-vcf-sweep.c -- VCF test harness. - - Copyright (C) 2013 Genome Research Ltd. - - Author: Petr Danecek - -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. */ - -#include -#include - -int main(int argc, char **argv) -{ - if ( argc!=2 ) - { - fprintf(stderr,"Usage: test-vcf-sweep \n"); - return 1; - } - - // Init variables. The checksum is just for this test program to output - // something and verify that all sites are read in both passes - fwd and - // bwd. - bcf_sweep_t *sw = bcf_sweep_init(argv[1]); - bcf_hdr_t *hdr = bcf_sweep_hdr(sw); - int chksum = 0; - - // First we must sweep forward and read the whole file to build an index. - // If this is undesirable, we can require the presence of a .gzi index - // which can be created with `bgzip -r` from the samtools/htslib package - bcf1_t *rec; - while ( (rec = bcf_sweep_fwd(sw)) ) chksum += rec->pos+1; - printf("fwd position chksum: %d\n", chksum); - - // Now sweep backward. - chksum = 0; - while ( (rec = bcf_sweep_bwd(sw)) ) chksum += rec->pos+1; - printf("bwd position chksum: %d\n", chksum); - - // And forward and backward again, this time summing the PL vectors - int i,j, mPLs = 0, nPLs; - int32_t *PLs = NULL; - chksum = 0; - while ( (rec = bcf_sweep_fwd(sw)) ) - { - // get copy of the PL vectors - nPLs = bcf_get_format_int32(hdr, rec, "PL", &PLs, &mPLs); - if ( !nPLs ) continue; // PL not present - - // how many values are there per sample - int nvals = nPLs / bcf_hdr_nsamples(hdr); - - int32_t *ptr = PLs; - for (i=0; i -# -# 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. - -use strict; -use warnings; -use Carp; -use FindBin; -use lib "$FindBin::Bin"; -use Getopt::Long; -use File::Temp qw/ tempfile tempdir /; - -my $opts = parse_params(); - -test_vcf_api($opts,out=>'test-vcf-api.out'); -test_vcf_sweep($opts,out=>'test-vcf-sweep.out'); - -print "\nNumber of tests:\n"; -printf " total .. %d\n", $$opts{nok}+$$opts{nfailed}; -printf " passed .. %d\n", $$opts{nok}; -printf " failed .. %d\n", $$opts{nfailed}; -print "\n"; - -exit ($$opts{nfailed} > 0); - -#-------------------- - -sub error -{ - my (@msg) = @_; - if ( scalar @msg ) { confess @msg; } - print - "About: samtools/htslib consistency test script\n", - "Usage: test.pl [OPTIONS]\n", - "Options:\n", - " -r, --redo-outputs Recreate expected output files.\n", - " -t, --temp-dir When given, temporary files will not be removed.\n", - " -h, -?, --help This help message.\n", - "\n"; - exit 1; -} -sub parse_params -{ - my $opts = { keep_files=>0, nok=>0, nfailed=>0 }; - my $help; - Getopt::Long::Configure('bundling'); - my $ret = GetOptions ( - 't|temp-dir:s' => \$$opts{keep_files}, - 'r|redo-outputs' => \$$opts{redo_outputs}, - 'h|?|help' => \$help - ); - if ( !$ret or $help ) { error(); } - $$opts{tmp} = $$opts{keep_files} ? $$opts{keep_files} : tempdir(CLEANUP=>1); - if ( $$opts{keep_files} ) { cmd("mkdir -p $$opts{keep_files}"); } - $$opts{path} = $FindBin::RealBin; - $$opts{bin} = $FindBin::RealBin; - $$opts{bin} =~ s{/test/?$}{}; - return $opts; -} -sub _cmd -{ - my ($cmd) = @_; - my $kid_io; - my @out; - my $pid = open($kid_io, "-|"); - if ( !defined $pid ) { error("Cannot fork: $!"); } - if ($pid) - { - # parent - @out = <$kid_io>; - close($kid_io); - } - else - { - # child - exec('/bin/bash', '-o','pipefail','-c', $cmd) or error("Cannot execute the command [/bin/sh -o pipefail -c $cmd]: $!"); - } - return ($? >> 8, join('',@out)); -} -sub cmd -{ - my ($cmd) = @_; - my ($ret,$out) = _cmd($cmd); - if ( $ret ) { error("The command failed [$ret]: $cmd\n", $out); } - return $out; -} -sub test_cmd -{ - my ($opts,%args) = @_; - if ( !exists($args{out}) ) - { - if ( !exists($args{in}) ) { error("FIXME: expected out or in key\n"); } - $args{out} = "$args{in}.out"; - } - my ($package, $filename, $line, $test)=caller(1); - $test =~ s/^.+:://; - - print "$test:\n"; - print "\t$args{cmd}\n"; - - my ($ret,$out) = _cmd("$args{cmd} 2>&1"); - if ( $ret ) { failed($opts,$test); return; } - if ( $$opts{redo_outputs} && -e "$$opts{path}/$args{out}" ) - { - rename("$$opts{path}/$args{out}","$$opts{path}/$args{out}.old"); - open(my $fh,'>',"$$opts{path}/$args{out}") or error("$$opts{path}/$args{out}: $!"); - print $fh $out; - close($fh); - my ($ret,$out) = _cmd("diff -q $$opts{path}/$args{out} $$opts{path}/$args{out}.old"); - if ( !$ret && $out eq '' ) { unlink("$$opts{path}/$args{out}.old"); } - else - { - print "\tthe expected output changed, saving:\n"; - print "\t old .. $$opts{path}/$args{out}.old\n"; - print "\t new .. $$opts{path}/$args{out}\n"; - } - } - my $exp = ''; - if ( open(my $fh,'<',"$$opts{path}/$args{out}") ) - { - my @exp = <$fh>; - $exp = join('',@exp); - close($fh); - } - elsif ( !$$opts{redo_outputs} ) { failed($opts,$test,"$$opts{path}/$args{out}: $!"); return; } - - if ( $exp ne $out ) - { - open(my $fh,'>',"$$opts{path}/$args{out}.new") or error("$$opts{path}/$args{out}.new"); - print $fh $out; - close($fh); - if ( !-e "$$opts{path}/$args{out}" ) - { - rename("$$opts{path}/$args{out}.new","$$opts{path}/$args{out}") or error("rename $$opts{path}/$args{out}.new $$opts{path}/$args{out}: $!"); - print "\tthe file with expected output does not exist, creating new one:\n"; - print "\t\t$$opts{path}/$args{out}\n"; - } - else - { - failed($opts,$test,"The outputs differ:\n\t\t$$opts{path}/$args{out}\n\t\t$$opts{path}/$args{out}.new"); - } - return; - } - passed($opts,$test); -} -sub failed -{ - my ($opts,$test,$reason) = @_; - $$opts{nfailed}++; - if ( defined $reason ) { print "\n\t$reason"; } - print "\n.. failed ...\n\n"; -} -sub passed -{ - my ($opts,$test) = @_; - $$opts{nok}++; - print ".. ok\n\n"; -} -sub is_file_newer -{ - my ($afile,$bfile) = @_; - my (@astat) = stat($afile) or return 0; - my (@bstat) = stat($bfile) or return 0; - if ( $astat[9]>$bstat[9] ) { return 1 } - return 0; -} - - -# The tests -------------------------- - -sub test_vcf_api -{ - my ($opts,%args) = @_; - test_cmd($opts,%args,cmd=>"$$opts{path}/test-vcf-api $$opts{tmp}/test-vcf-api.bcf"); -} - -sub test_vcf_sweep -{ - my ($opts,%args) = @_; - test_cmd($opts,%args,cmd=>"$$opts{path}/test-vcf-sweep $$opts{tmp}/test-vcf-api.bcf"); -} - diff --git a/htslib/test/test_view.c b/htslib/test/test_view.c deleted file mode 100644 index 1f96cea..0000000 --- a/htslib/test/test_view.c +++ /dev/null @@ -1,239 +0,0 @@ -/* test/test_view.c -- simple view tool, purely for use in a test harness. - - Copyright (C) 2012 Broad Institute. - Copyright (C) 2013-2014 Genome Research Ltd. - - Author: Heng Li - -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. */ - -#include -#include -#include -#include - -#include "cram/cram.h" - -#include "htslib/sam.h" - -typedef struct hts_opt { - enum cram_option opt; - union { - int i; - char *s; - } val; - struct hts_opt *next; -} hts_opt; - -/* - * Parses arg and appends it to the option list. - * Returns 0 on success; - * -1 on failure. - */ -int add_option(hts_opt **opts, char *arg) { - hts_opt *o, *t; - char *cp; - - if (!(cp = strchr(arg, '='))) - cp = "1"; // assume boolean - else - *cp++ = 0; - - if (!(o = malloc(sizeof(*o)))) - return -1; - - if (strcmp(arg, "DECODE_MD") == 0) - o->opt = CRAM_OPT_DECODE_MD, o->val.i = atoi(cp); - else if (strcmp(arg, "VERBOSITY") == 0) - o->opt = CRAM_OPT_VERBOSITY, o->val.i = atoi(cp); - else if (strcmp(arg, "SEQS_PER_SLICE") == 0) - o->opt = CRAM_OPT_SEQS_PER_SLICE, o->val.i = atoi(cp); - else if (strcmp(arg, "SLICES_PER_CONTAINER") == 0) - o->opt = CRAM_OPT_SLICES_PER_CONTAINER, o->val.i = atoi(cp); - else if (strcmp(arg, "EMBED_REF") == 0) - o->opt = CRAM_OPT_EMBED_REF, o->val.i = atoi(cp); - else if (strcmp(arg, "NO_REF") == 0) - o->opt = CRAM_OPT_NO_REF, o->val.i = atoi(cp); - else if (strcmp(arg, "IGNORE_MD5") == 0) - o->opt = CRAM_OPT_IGNORE_MD5, o->val.i = atoi(cp); - else if (strcmp(arg, "USE_BZIP2") == 0) - o->opt = CRAM_OPT_USE_BZIP2, o->val.i = atoi(cp); - else if (strcmp(arg, "USE_RANS") == 0) - o->opt = CRAM_OPT_USE_RANS, o->val.i = atoi(cp); - else if (strcmp(arg, "USE_LZMA") == 0) - o->opt = CRAM_OPT_USE_LZMA, o->val.i = atoi(cp); - else if (strcmp(arg, "REFERENCE") == 0) - o->opt = CRAM_OPT_REFERENCE, o->val.s = cp; - else if (strcmp(arg, "VERSION") == 0) - o->opt = CRAM_OPT_VERSION, o->val.s =cp; - else if (strcmp(arg, "MULTI_SEQ_PER_SLICE") == 0) - o->opt = CRAM_OPT_MULTI_SEQ_PER_SLICE, o->val.i = atoi(cp); - else if (strcmp(arg, "NTHREADS") == 0) - o->opt = CRAM_OPT_NTHREADS, o->val.i = atoi(cp); - else if (strcmp(arg, "REQUIRED_FIELDS") == 0) - o->opt = CRAM_OPT_REQUIRED_FIELDS, o->val.i = strtol(cp, NULL, 0); - else { - fprintf(stderr, "Unknown option '%s'\n", arg); - free(o); - return -1; - } - - o->next = NULL; - - if (*opts) { - t = *opts; - while (t->next) - t = t->next; - t->next = o; - } else { - *opts = o; - } - - return 0; -} - -int main(int argc, char *argv[]) -{ - samFile *in; - char *fn_ref = 0; - int flag = 0, c, clevel = -1, ignore_sam_err = 0; - char moder[8]; - bam_hdr_t *h; - bam1_t *b; - htsFile *out; - char modew[8]; - int r = 0, exit_code = 0; - hts_opt *in_opts = NULL, *out_opts = NULL, *last = NULL; - - while ((c = getopt(argc, argv, "IbDCSl:t:i:o:")) >= 0) { - switch (c) { - case 'S': flag |= 1; break; - case 'b': flag |= 2; break; - case 'D': flag |= 4; break; - case 'C': flag |= 8; break; - case 'l': clevel = atoi(optarg); flag |= 2; break; - case 't': fn_ref = optarg; break; - case 'I': ignore_sam_err = 1; break; - case 'i': if (add_option(&in_opts, optarg)) return 1; break; - case 'o': if (add_option(&out_opts, optarg)) return 1; break; - } - } - if (argc == optind) { - fprintf(stderr, "Usage: samview [-bSCSI] [-l level] [-o option=value] || [region]\n"); - return 1; - } - strcpy(moder, "r"); - if (flag&4) strcat(moder, "c"); - else if ((flag&1) == 0) strcat(moder, "b"); - - in = sam_open(argv[optind], moder); - if (in == NULL) { - fprintf(stderr, "Error opening \"%s\"\n", argv[optind]); - return EXIT_FAILURE; - } - h = sam_hdr_read(in); - h->ignore_sam_err = ignore_sam_err; - b = bam_init1(); - - strcpy(modew, "w"); - if (clevel >= 0 && clevel <= 9) sprintf(modew + 1, "%d", clevel); - if (flag&8) strcat(modew, "c"); - else if (flag&2) strcat(modew, "b"); - out = hts_open("-", modew); - if (out == NULL) { - fprintf(stderr, "Error opening standard output\n"); - return EXIT_FAILURE; - } - - /* CRAM output */ - if (flag & 8) { - // Parse input header and use for CRAM output - out->fp.cram->header = sam_hdr_parse_(h->text, h->l_text); - - // Create CRAM references arrays - if (fn_ref) - cram_set_option(out->fp.cram, CRAM_OPT_REFERENCE, fn_ref); - else - // Attempt to fill out a cram->refs[] array from @SQ headers - cram_set_option(out->fp.cram, CRAM_OPT_REFERENCE, NULL); - } - - // Process any options; currently cram only. - for (; in_opts; in_opts = (last=in_opts)->next, free(last)) { - hts_set_opt(in, in_opts->opt, in_opts->val); - if (in_opts->opt == CRAM_OPT_REFERENCE) - hts_set_opt(out, in_opts->opt, in_opts->val); - } - for (; out_opts; out_opts = (last=out_opts)->next, free(last)) - hts_set_opt(out, out_opts->opt, out_opts->val); - - sam_hdr_write(out, h); - if (optind + 1 < argc && !(flag&1)) { // BAM input and has a region - int i; - hts_idx_t *idx; - if ((idx = bam_index_load(argv[optind])) == 0) { - fprintf(stderr, "[E::%s] fail to load the BAM index\n", __func__); - return 1; - } - for (i = optind + 1; i < argc; ++i) { - hts_itr_t *iter; - if ((iter = bam_itr_querys(idx, h, argv[i])) == 0) { - fprintf(stderr, "[E::%s] fail to parse region '%s'\n", __func__, argv[i]); - continue; - } - while ((r = bam_itr_next(in, iter, b)) >= 0) { - if (sam_write1(out, h, b) < 0) { - fprintf(stderr, "Error writing output.\n"); - exit_code = 1; - break; - } - } - hts_itr_destroy(iter); - } - hts_idx_destroy(idx); - } else while ((r = sam_read1(in, h, b)) >= 0) { - if (sam_write1(out, h, b) < 0) { - fprintf(stderr, "Error writing output.\n"); - exit_code = 1; - break; - } - } - - if (r < -1) { - fprintf(stderr, "Error parsing input.\n"); - exit_code = 1; - } - - r = sam_close(out); - if (r < 0) { - fprintf(stderr, "Error closing output.\n"); - exit_code = 1; - } - - bam_destroy1(b); - bam_hdr_destroy(h); - - r = sam_close(in); - if (r < 0) { - fprintf(stderr, "Error closing input.\n"); - exit_code = 1; - } - - return exit_code; -} diff --git a/htslib/test/test_view.pl b/htslib/test/test_view.pl deleted file mode 100755 index d721c63..0000000 --- a/htslib/test/test_view.pl +++ /dev/null @@ -1,71 +0,0 @@ -#! /usr/bin/env perl -# -# Copyright (C) 2013 Genome Research Ltd. -# -# Author: James Bonfield -# -# 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. -use strict; -use warnings; - -my $err_count = 0; -my $suc_count = 0; - -sub test { - my ($cmd) = @_; - print " $cmd\n"; - if (system("$cmd || exit 1") != 0) { - print "FAIL $!\n"; - $err_count++; - } else { - $suc_count++; - } -} - -foreach my $sam (glob("*#*.sam")) { - my ($base, $ref) = ($sam =~ /((.*)#.*)\.sam/); - $ref .= ".fa"; - - my $bam = "$base.tmp.bam"; - my $cram = "$base.tmp.cram"; - - print "\n=== Testing $sam, ref $ref ===\n"; - - # SAM -> BAM -> SAM - test "./test_view -S -b $sam > $bam"; - test "./test_view $bam > $bam.sam_"; - test "./compare_sam.pl $sam $bam.sam_"; - - # SAM -> CRAM -> SAM - test "./test_view -t $ref -S -C $sam > $cram"; - test "./test_view -D $cram > $cram.sam_"; - test "./compare_sam.pl -nomd $sam $cram.sam_"; - - # BAM -> CRAM -> BAM -> SAM - $cram = "$bam.cram"; - test "./test_view -t $ref -C $bam > $cram"; - test "./test_view -b -D $cram > $cram.bam"; - test "./test_view $cram.bam > $cram.bam.sam_"; - test "./compare_sam.pl -nomd $sam $cram.bam.sam_"; -} - -print "\nSuccesses $suc_count\n"; -print "\nFailures $err_count\n"; - -exit ($err_count > 0); diff --git a/htslib/test/xx#blank.sam b/htslib/test/xx#blank.sam deleted file mode 100644 index e69de29..0000000 diff --git a/htslib/test/xx#large_aux.sam b/htslib/test/xx#large_aux.sam deleted file mode 100644 index 93fb8cf..0000000 --- a/htslib/test/xx#large_aux.sam +++ /dev/null @@ -1,4 +0,0 @@ -@SQ SN:xx LN:20 -a1 16 xx 1 1 10M * 0 0 AAAAAAAAAA * aa:i:1 ab:i:1 ac:i:1 ad:i:1 ae:i:1 af:i:1 ag:i:1 ah:i:1 ai:i:1 aj:i:1 ak:i:1 al:i:1 am:i:1 an:i:1 ao:i:1 ap:i:1 aq:i:1 ar:i:1 as:i:1 at:i:1 au:i:1 av:i:1 aw:i:1 ax:i:1 ay:i:1 az:i:1 ba:i:1 bb:i:1 bc:i:1 bd:i:1 be:i:1 bf:i:1 bg:i:1 bh:i:1 bi:i:1 bj:i:1 bk:i:1 bl:i:1 bm:i:1 bn:i:1 bo:i:1 bp:i:1 bq:i:1 br:i:1 bs:i:1 bt:i:1 bu:i:1 bv:i:1 bw:i:1 bx:i:1 by:i:1 bz:i:1 ca:i:1 cb:i:1 cc:i:1 cd:i:1 ce:i:1 cf:i:1 cg:i:1 ch:i:1 ci:i:1 cj:i:1 ck:i:1 cl:i:1 cm:i:1 cn:i:1 co:i:1 cp:i:1 cq:i:1 cr:i:1 cs:i:1 ct:i:1 cu:i:1 cv:i:1 cw:i:1 cx:i:1 cy:i:1 cz:i:1 da:i:1 db:i:1 dc:i:1 dd:i:1 de:i:1 df:i:1 dg:i:1 dh:i:1 di:i:1 dj:i:1 dk:i:1 dl:i:1 dm:i:1 dn:i:1 do:i:1 dp:i:1 dq:i:1 dr:i:1 ds:i:1 dt:i:1 du:i:1 dv:i:1 dw:i:1 dx:i:1 dy:i:1 dz:i:1 ea:i:1 eb:i:1 ec:i:1 ed:i:1 ee:i:1 ef:i:1 eg:i:1 eh:i:1 ei:i:1 ej:i:1 ek:i:1 el:i:1 em:i:1 en:i:1 eo:i:1 ep:i:1 eq:i:1 er:i:1 es:i:1 et:i:1 eu:i:1 ev:i:1 ew:i:1 ex:i:1 ey:i:1 ez:i:1 fa:i:1 fb:i:1 fc:i:1 fd:i:1 fe:i:1 ff:i:1 fg:i:1 fh:i:1 fi:i:1 fj:i:1 fk:i:1 fl:i:1 fm:i:1 fn:i:1 fo:i:1 fp:i:1 fq:i:1 fr:i:1 fs:i:1 ft:i:1 fu:i:1 fv:i:1 fw:i:1 fx:i:1 fy:i:1 fz:i:1 ga:i:1 gb:i:1 gc:i:1 gd:i:1 ge:i:1 gf:i:1 gg:i:1 gh:i:1 gi:i:1 gj:i:1 gk:i:1 gl:i:1 gm:i:1 gn:i:1 go:i:1 gp:i:1 gq:i:1 gr:i:1 gs:i:1 gt:i:1 gu:i:1 gv:i:1 gw:i:1 gx:i:1 gy:i:1 gz:i:1 ha:i:1 hb:i:1 hc:i:1 hd:i:1 he:i:1 hf:i:1 hg:i:1 hh:i:1 hi:i:1 hj:i:1 hk:i:1 hl:i:1 hm:i:1 hn:i:1 ho:i:1 hp:i:1 hq:i:1 hr:i:1 hs:i:1 ht:i:1 hu:i:1 hv:i:1 hw:i:1 hx:i:1 hy:i:1 hz:i:1 ia:i:1 ib:i:1 ic:i:1 id:i:1 ie:i:1 if:i:1 ig:i:1 ih:i:1 ii:i:1 ij:i:1 ik:i:1 il:i:1 im:i:1 in:i:1 io:i:1 ip:i:1 iq:i:1 ir:i:1 is:i:1 it:i:1 iu:i:1 iv:i:1 iw:i:1 ix:i:1 iy:i:1 iz:i:1 ja:i:1 jb:i:1 jc:i:1 jd:i:1 je:i:1 jf:i:1 jg:i:1 jh:i:1 ji:i:1 jj:i:1 jk:i:1 jl:i:1 jm:i:1 jn:i:1 jo:i:1 jp:i:1 jq:i:1 jr:i:1 js:i:1 jt:i:1 ju:i:1 -a2 16 xx 1 1 10M * 0 0 AAAAAAAAAA * aa:i:1 ab:i:1 ac:i:1 ad:i:1 ae:i:1 af:i:1 ag:i:1 ah:i:1 ai:i:1 aj:i:1 ak:i:1 al:i:1 am:i:1 an:i:1 ao:i:1 ap:i:1 aq:i:1 ar:i:1 as:i:1 at:i:1 au:i:1 av:i:1 aw:i:1 ax:i:1 ay:i:1 az:i:1 ba:i:1 bb:i:1 bc:i:1 bd:i:1 be:i:1 bf:i:1 bg:i:1 bh:i:1 bi:i:1 bj:i:1 bk:i:1 bl:i:1 bm:i:1 bn:i:1 bo:i:1 bp:i:1 bq:i:1 br:i:1 bs:i:1 bt:i:1 bu:i:1 bv:i:1 bw:i:1 bx:i:1 by:i:1 bz:i:1 ca:i:1 cb:i:1 cc:i:1 cd:i:1 ce:i:1 cf:i:1 cg:i:1 ch:i:1 ci:i:1 cj:i:1 ck:i:1 cl:i:1 cm:i:1 cn:i:1 co:i:1 cp:i:1 cq:i:1 cr:i:1 cs:i:1 ct:i:1 cu:i:1 cv:i:1 cw:i:1 cx:i:1 cy:i:1 cz:i:1 da:i:1 db:i:1 dc:i:1 dd:i:1 de:i:1 df:i:1 dg:i:1 dh:i:1 di:i:1 dj:i:1 dk:i:1 dl:i:1 dm:i:1 dn:i:1 do:i:1 dp:i:1 dq:i:1 dr:i:1 ds:i:1 dt:i:1 du:i:1 dv:i:1 dw:i:1 dx:i:1 dy:i:1 dz:i:1 ea:i:1 eb:i:1 ec:i:1 ed:i:1 ee:i:1 ef:i:1 eg:i:1 eh:i:1 ei:i:1 ej:i:1 ek:i:1 el:i:1 em:i:1 en:i:1 eo:i:1 ep:i:1 eq:i:1 er:i:1 es:i:1 et:i:1 eu:i:1 ev:i:1 ew:i:1 ex:i:1 ey:i:1 ez:i:1 fa:i:1 fb:i:1 fc:i:1 fd:i:1 fe:i:1 ff:i:1 fg:i:1 fh:i:1 fi:i:1 fj:i:1 fk:i:1 fl:i:1 fm:i:1 fn:i:1 fo:i:1 fp:i:1 fq:i:1 fr:i:1 fs:i:1 ft:i:1 fu:i:1 fv:i:1 fw:i:1 fx:i:1 fy:i:1 fz:i:1 ga:i:1 gb:i:1 gc:i:1 gd:i:1 ge:i:1 gf:i:1 gg:i:1 gh:i:1 gi:i:1 gj:i:1 gk:i:1 gl:i:1 gm:i:1 gn:i:1 go:i:1 gp:i:1 gq:i:1 gr:i:1 gs:i:1 gt:i:1 gu:i:1 gv:i:1 gw:i:1 gx:i:1 gy:i:1 gz:i:1 ha:i:1 hb:i:1 hc:i:1 hd:i:1 he:i:1 hf:i:1 hg:i:1 hh:i:1 hi:i:1 hj:i:1 hk:i:1 hl:i:1 hm:i:1 hn:i:1 ho:i:1 hp:i:1 hq:i:1 hr:i:1 hs:i:1 ht:i:1 hu:i:1 hv:i:1 hw:i:1 hx:i:1 hy:i:1 hz:i:1 ia:i:1 ib:i:1 ic:i:1 id:i:1 ie:i:1 if:i:1 ig:i:1 ih:i:1 ii:i:1 ij:i:1 ik:i:1 il:i:1 im:i:1 in:i:1 io:i:1 ip:i:1 iq:i:1 ir:i:1 is:i:1 it:i:1 iu:i:1 iv:i:1 iw:i:1 ix:i:1 iy:i:1 iz:i:1 ja:i:1 jb:i:1 jc:i:1 jd:i:1 je:i:1 jf:i:1 jg:i:1 jh:i:1 ji:i:1 jj:i:1 jk:i:1 jl:i:1 jm:i:1 jn:i:1 jo:i:1 jp:i:1 jq:i:1 jr:i:1 js:i:1 jt:i:1 ju:i:1 Aa:i:1 Ab:i:1 Ac:i:1 Ad:i:1 Ae:i:1 Af:i:1 Ag:i:1 Ah:i:1 Ai:i:1 Aj:i:1 Ak:i:1 Al:i:1 Am:i:1 An:i:1 Ao:i:1 Ap:i:1 Aq:i:1 Ar:i:1 As:i:1 At:i:1 Au:i:1 Av:i:1 Aw:i:1 Ax:i:1 Ay:i:1 Az:i:1 Ba:i:1 Bb:i:1 Bc:i:1 Bd:i:1 Be:i:1 Bf:i:1 Bg:i:1 Bh:i:1 Bi:i:1 Bj:i:1 Bk:i:1 Bl:i:1 Bm:i:1 Bn:i:1 Bo:i:1 Bp:i:1 Bq:i:1 Br:i:1 Bs:i:1 Bt:i:1 Bu:i:1 Bv:i:1 Bw:i:1 Bx:i:1 By:i:1 Bz:i:1 Ca:i:1 Cb:i:1 Cc:i:1 Cd:i:1 Ce:i:1 Cf:i:1 Cg:i:1 Ch:i:1 Ci:i:1 Cj:i:1 Ck:i:1 Cl:i:1 Cm:i:1 Cn:i:1 Co:i:1 Cp:i:1 Cq:i:1 Cr:i:1 Cs:i:1 Ct:i:1 Cu:i:1 Cv:i:1 Cw:i:1 Cx:i:1 Cy:i:1 Cz:i:1 Da:i:1 Db:i:1 Dc:i:1 Dd:i:1 De:i:1 Df:i:1 Dg:i:1 Dh:i:1 Di:i:1 Dj:i:1 Dk:i:1 Dl:i:1 Dm:i:1 Dn:i:1 Do:i:1 Dp:i:1 Dq:i:1 Dr:i:1 Ds:i:1 Dt:i:1 Du:i:1 Dv:i:1 Dw:i:1 Dx:i:1 Dy:i:1 Dz:i:1 Ea:i:1 Eb:i:1 Ec:i:1 Ed:i:1 Ee:i:1 Ef:i:1 Eg:i:1 Eh:i:1 Ei:i:1 Ej:i:1 Ek:i:1 El:i:1 Em:i:1 En:i:1 Eo:i:1 Ep:i:1 Eq:i:1 Er:i:1 Es:i:1 Et:i:1 Eu:i:1 Ev:i:1 Ew:i:1 Ex:i:1 Ey:i:1 Ez:i:1 Fa:i:1 Fb:i:1 Fc:i:1 Fd:i:1 Fe:i:1 Ff:i:1 Fg:i:1 Fh:i:1 Fi:i:1 Fj:i:1 Fk:i:1 Fl:i:1 Fm:i:1 Fn:i:1 Fo:i:1 Fp:i:1 Fq:i:1 Fr:i:1 Fs:i:1 Ft:i:1 Fu:i:1 Fv:i:1 Fw:i:1 Fx:i:1 Fy:i:1 Fz:i:1 Ga:i:1 Gb:i:1 Gc:i:1 Gd:i:1 Ge:i:1 Gf:i:1 Gg:i:1 Gh:i:1 Gi:i:1 Gj:i:1 Gk:i:1 Gl:i:1 Gm:i:1 Gn:i:1 Go:i:1 Gp:i:1 Gq:i:1 Gr:i:1 Gs:i:1 Gt:i:1 Gu:i:1 Gv:i:1 Gw:i:1 Gx:i:1 Gy:i:1 Gz:i:1 Ha:i:1 Hb:i:1 Hc:i:1 Hd:i:1 He:i:1 Hf:i:1 Hg:i:1 Hh:i:1 Hi:i:1 Hj:i:1 Hk:i:1 Hl:i:1 Hm:i:1 Hn:i:1 Ho:i:1 Hp:i:1 Hq:i:1 Hr:i:1 Hs:i:1 Ht:i:1 Hu:i:1 Hv:i:1 Hw:i:1 Hx:i:1 Hy:i:1 Hz:i:1 Ia:i:1 Ib:i:1 Ic:i:1 Id:i:1 Ie:i:1 If:i:1 Ig:i:1 Ih:i:1 Ii:i:1 Ij:i:1 Ik:i:1 Il:i:1 Im:i:1 In:i:1 Io:i:1 Ip:i:1 Iq:i:1 Ir:i:1 Is:i:1 It:i:1 Iu:i:1 Iv:i:1 Iw:i:1 Ix:i:1 Iy:i:1 Iz:i:1 Ja:i:1 Jb:i:1 Jc:i:1 Jd:i:1 Je:i:1 Jf:i:1 Jg:i:1 Jh:i:1 Ji:i:1 Jj:i:1 Jk:i:1 Jl:i:1 Jm:i:1 Jn:i:1 Jo:i:1 Jp:i:1 Jq:i:1 Jr:i:1 Js:i:1 Jt:i:1 Ju:i:1 -b1 16 xx 1 1 10M * 0 0 AAAAAAAAAA * ZZ:Z:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""####################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------....................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<====================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz diff --git a/htslib/test/xx#large_aux2.sam b/htslib/test/xx#large_aux2.sam deleted file mode 100644 index 9e338ed..0000000 --- a/htslib/test/xx#large_aux2.sam +++ /dev/null @@ -1,11 +0,0 @@ -@SQ SN:xx LN:20 -a1 0 xx 1 1 1M * 0 0 A # aa:i:1 -a2 0 xx 1 1 1M * 0 0 A # aa:i:1 ab:i:1 -a3 0 xx 1 1 1M * 0 0 A # aa:i:1 ab:i:1 ac:i:1 -a4 0 xx 1 1 1M * 0 0 A # aa:i:1 ab:i:1 ac:i:1 ad:i:1 -a5 0 xx 1 1 1M * 0 0 A # aa:i:1 ab:i:1 ac:i:1 ad:i:1 ae:i:1 -a6 0 xx 1 1 1M * 0 0 A # aa:i:1 ab:i:1 ac:i:1 ad:i:1 ae:i:1 af:i:1 -a7 0 xx 1 1 1M * 0 0 A # aa:i:1 ab:i:1 ac:i:1 ad:i:1 ae:i:1 af:i:1 ag:i:1 -a8 0 xx 1 1 1M * 0 0 A # aa:i:1 ab:i:1 ac:i:1 ad:i:1 ae:i:1 af:i:1 ag:i:1 ah:i:1 -a9 0 xx 1 1 1M * 0 0 A # aa:i:1 ab:i:1 ac:i:1 ad:i:1 ae:i:1 af:i:1 ag:i:1 ah:i:1 ai:i:1 -aA 0 xx 1 1 1M * 0 0 A # aa:i:1 ab:i:1 ac:i:1 ad:i:1 ae:i:1 af:i:1 ag:i:1 ah:i:1 ai:i:1 aj:i:1 diff --git a/htslib/test/xx#minimal.sam b/htslib/test/xx#minimal.sam deleted file mode 100644 index eb72140..0000000 --- a/htslib/test/xx#minimal.sam +++ /dev/null @@ -1,10 +0,0 @@ -@SQ SN:xx LN:20 -@SQ SN:yy LN:20 -a0 16 xx 4 1 10H * 0 0 * * -a1 16 xx 4 1 5H0M5H * 0 0 * * -a2 16 xx 4 1 5H0I10M0D5H * 0 0 * * -A0 16 yy 4 1 0H * 0 0 * * -A1 16 yy 4 1 0I * 0 0 * * -A2 16 yy 4 1 0D * 0 0 * * -A3 16 yy 4 1 0M * 0 0 * * -A4 16 yy 4 1 0P * 0 0 * * diff --git a/htslib/test/xx#pair.sam b/htslib/test/xx#pair.sam deleted file mode 100644 index aa8c77b..0000000 --- a/htslib/test/xx#pair.sam +++ /dev/null @@ -1,7 +0,0 @@ -@SQ SN:xx LN:20 -a1 99 xx 1 1 10M = 11 20 AAAAAAAAAA ********** -b1 99 xx 1 1 10M = 11 20 AAAAAAAAAA ********** -c1 99 xx 1 1 10M = 11 20 AAAAAAAAAA ********** -a1 147 xx 11 1 10M = 1 -20 TTTTTTTTTT ********** -b1 147 xx 11 1 10M = 1 -20 TTTTTTTTTT ********** -c1 147 xx 11 1 10M = 1 -20 TTTTTTTTTT ********** diff --git a/htslib/test/xx#rg.sam b/htslib/test/xx#rg.sam deleted file mode 100644 index 2d7efbc..0000000 --- a/htslib/test/xx#rg.sam +++ /dev/null @@ -1,13 +0,0 @@ -@HD VN:1.4 SO:coordinate -@SQ SN:xx LN:20 AS:? SP:? UR:? M5:bbf4de6d8497a119dda6e074521643dc -@RG ID:x1 SM:x1 -@RG ID:x2 SM:x2 LB:x PG:foo:bar PI:1111 -@PG ID:emacs PN:emacs VN:23.1.1 -@CO also test -@CO other headers -a1 16 xx 1 1 10M * 0 0 AAAAAAAAAA ********** RG:Z:x1 -b1 16 xx 1 1 10M * 0 0 AAAAAAAAAA ********** RG:Z:x2 -c1 16 xx 1 1 10M * 0 0 AAAAAAAAAA ********** -a2 16 xx 11 1 10M * 0 0 TTTTTTTTTT ********** RG:Z:x1 -b2 16 xx 11 1 10M * 0 0 TTTTTTTTTT ********** RG:Z:x2 -c2 16 xx 11 1 10M * 0 0 TTTTTTTTTT ********** diff --git a/htslib/test/xx#triplet.sam b/htslib/test/xx#triplet.sam deleted file mode 100644 index 1255725..0000000 --- a/htslib/test/xx#triplet.sam +++ /dev/null @@ -1,7 +0,0 @@ -@SQ SN:xx LN:20 -@SQ SN:yy LN:20 -a1 67 xx 1 1 10M = 6 20 AAAAAAAAAA ********** -a1 35 xx 6 1 10M = 11 -20 AAAAATTTTT ********** -a1 147 xx 11 1 10M = 1 -20 TTTTTTTTTT ********** -a1 67 yy 1 1 10M = 6 15 AAAAAAAAAA ********** -a1 3 yy 6 1 10M = 1 -15 AAAAATTTTT ********** diff --git a/htslib/test/xx#unsorted.sam b/htslib/test/xx#unsorted.sam deleted file mode 100644 index 05887a3..0000000 --- a/htslib/test/xx#unsorted.sam +++ /dev/null @@ -1,8 +0,0 @@ -@SQ SN:xx LN:20 -@SQ SN:yy LN:20 -b1 147 yy 11 1 10M = 1 -20 TTTTTTTTTT ********** -a1 147 xx 11 1 10M = 1 -20 TTTTTTTTTT ********** -a1 99 xx 1 1 10M = 11 20 AAAAAAAAAA ********** -b1 99 yy 1 1 10M = 11 20 AAAAAAAAAA ********** -c1 99 xx 1 1 10M = 11 20 AAAAAAAAAA ********** -c1 147 xx 11 1 10M = 1 -20 TTTTTTTTTT ********** diff --git a/htslib/test/xx.fa b/htslib/test/xx.fa deleted file mode 100644 index a233f7d..0000000 --- a/htslib/test/xx.fa +++ /dev/null @@ -1,5 +0,0 @@ ->xx -AAAAAAAAAATTTTTTTTTT ->yy -AAAAAAAAAATTTTTTTTTT - diff --git a/htslib/test/xx.fa.fai b/htslib/test/xx.fa.fai deleted file mode 100644 index 97b1a3b..0000000 --- a/htslib/test/xx.fa.fai +++ /dev/null @@ -1,2 +0,0 @@ -xx 20 4 20 21 -yy 20 29 20 21 diff --git a/htslib/vcf.5 b/htslib/vcf.5 deleted file mode 100644 index 47e833a..0000000 --- a/htslib/vcf.5 +++ /dev/null @@ -1,120 +0,0 @@ -'\" t -.TH vcf 5 "August 2013" "htslib" "Bioinformatics formats" -.SH NAME -vcf \- Variant Call Format -.\" -.\" Copyright (C) 2011 Broad Institute. -.\" Copyright (C) 2013 Genome Research Ltd. -.\" -.\" Author: Heng Li -.\" -.\" 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. -.\" -.SH DESCRIPTION -The Variant Call Format (VCF) is a TAB-delimited format with each data line -consisting of the following fields: -.TS -nlbl. -1 CHROM CHROMosome name -2 POS the left-most POSition of the variant -3 ID unique variant IDentifier -4 REF the REFerence allele -5 ALT the ALTernate allele(s) (comma-separated) -6 QUAL variant/reference QUALity -7 FILTER FILTERs applied -8 INFO INFOrmation related to the variant (semicolon-separated) -9 FORMAT FORMAT of the genotype fields (optional; colon-separated) -10+ SAMPLE SAMPLE genotypes and per-sample information (optional) -.TE -.P -The following table gives the \fBINFO\fP tags used by samtools and bcftools. -.TP -.B AF1 -Max-likelihood estimate of the site allele frequency (AF) of the first ALT allele -(double) -.TP -.B DP -Raw read depth (without quality filtering) -(int) -.TP -.B DP4 -# high-quality reference forward bases, ref reverse, alternate for and alt rev bases -(int[4]) -.TP -.B FQ -Consensus quality. Positive: sample genotypes different; negative: otherwise -(int) -.TP -.B MQ -Root-Mean-Square mapping quality of covering reads -(int) -.TP -.B PC2 -Phred probability of AF in group1 samples being larger (,smaller) than in group2 -(int[2]) -.TP -.B PCHI2 -Posterior weighted chi^2 P-value between group1 and group2 samples -(double) -.TP -.B PV4 -P-value for strand bias, baseQ bias, mapQ bias and tail distance bias -(double[4]) -.TP -.B QCHI2 -Phred-scaled PCHI2 -(int) -.TP -.B RP -# permutations yielding a smaller PCHI2 -(int) -.TP -.B CLR -Phred log ratio of genotype likelihoods with and without the trio/pair constraint -(int) -.TP -.B UGT -Most probable genotype configuration without the trio constraint -(string) -.TP -.B CGT -Most probable configuration with the trio constraint -(string) -.TP -.B VDB -Tests variant positions within reads. Intended for filtering RNA-seq artifacts around splice sites -(float) -.TP -.B RPB -Mann-Whitney rank-sum test for tail distance bias -(float) -.TP -.B HWE -Hardy-Weinberg equilibrium test (Wigginton et al) -(float) -.P -.SH SEE ALSO -.TP -https://github.com/samtools/hts-specs -The full VCF/BCF file format specification -.TP -.I A note on exact tests of Hardy-Weinberg equilibrium -Wigginton JE et al -PMID:15789306 -.\" (http://www.ncbi.nlm.nih.gov/pubmed/15789306) diff --git a/htslib/vcf.c b/htslib/vcf.c deleted file mode 100644 index 0901ce1..0000000 --- a/htslib/vcf.c +++ /dev/null @@ -1,3212 +0,0 @@ -/* vcf.c -- VCF/BCF API functions. - - Copyright (C) 2012, 2013 Broad Institute. - Copyright (C) 2012-2014 Genome Research Ltd. - Portions copyright (C) 2014 Intel Corporation. - - Author: Heng Li - -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. */ - -#include -#include -#include -#include -#include -#include -#include -#include "htslib/kstring.h" -#include "htslib/bgzf.h" -#include "htslib/vcf.h" -#include "htslib/tbx.h" -#include "htslib/hfile.h" -#include "htslib/khash_str2int.h" - -#include "htslib/khash.h" -KHASH_MAP_INIT_STR(vdict, bcf_idinfo_t) -typedef khash_t(vdict) vdict_t; - -#include "htslib/kseq.h" -KSTREAM_DECLARE(gzFile, gzread) - -uint32_t bcf_float_missing = 0x7F800001; -uint32_t bcf_float_vector_end = 0x7F800002; -uint8_t bcf_type_shift[] = { 0, 0, 1, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static bcf_idinfo_t bcf_idinfo_def = { .info = { 15, 15, 15 }, .hrec = { NULL, NULL, NULL}, .id = -1 }; - -/************************* - *** VCF header parser *** - *************************/ - -int bcf_hdr_sync(bcf_hdr_t *h); - -int bcf_hdr_add_sample(bcf_hdr_t *h, const char *s) -{ - if ( !s ) return 0; - - const char *ss = s; - while ( !*ss && isspace(*ss) ) ss++; - if ( !*ss ) - { - fprintf(stderr,"[E::%s] Empty sample name: trailing spaces/tabs in the header line?\n", __func__); - abort(); - } - - vdict_t *d = (vdict_t*)h->dict[BCF_DT_SAMPLE]; - int ret; - char *sdup = strdup(s); - int k = kh_put(vdict, d, sdup, &ret); - if (ret) { // absent - kh_val(d, k) = bcf_idinfo_def; - kh_val(d, k).id = kh_size(d) - 1; - } else { - if (hts_verbose >= 2) - { - fprintf(stderr, "[E::%s] Duplicated sample name '%s'\n", __func__, s); - abort(); - } - free(sdup); - return -1; - } - int n = kh_size(d); - h->samples = (char**) realloc(h->samples,sizeof(char*)*n); - h->samples[n-1] = sdup; - h->dirty = 1; - return 0; -} - -int bcf_hdr_parse_sample_line(bcf_hdr_t *h, const char *str) -{ - int ret = 0; - int i = 0; - const char *p, *q; - // add samples - for (p = q = str;; ++q) { - if (*q != '\t' && *q != 0 && *q != '\n') continue; - if (++i > 9) { - char *s = (char*)malloc(q - p + 1); - strncpy(s, p, q - p); - s[q - p] = 0; - if ( bcf_hdr_add_sample(h,s) < 0 ) ret = -1; - free(s); - } - if (*q == 0 || *q == '\n') break; - p = q + 1; - } - bcf_hdr_add_sample(h,NULL); - return ret; -} - -int bcf_hdr_sync(bcf_hdr_t *h) -{ - int i; - for (i = 0; i < 3; i++) - { - vdict_t *d = (vdict_t*)h->dict[i]; - khint_t k; - - // find out the largest id, there may be holes because of IDX - int max_id = -1; - for (k=kh_begin(d); k= h->n[i] ) - { - h->id[i] = (bcf_idpair_t*)realloc(h->id[i], (max_id+1)*sizeof(bcf_idpair_t)); - for (k=h->n[i]; k<=max_id; k++) - { - h->id[i][k].key = NULL; - h->id[i][k].val = NULL; - } - h->n[i] = max_id+1; - } - for (k=kh_begin(d); kid[i][kh_val(d,k).id].key = kh_key(d,k); - h->id[i][kh_val(d,k).id].val = &kh_val(d,k); - } - } - h->dirty = 0; - return 0; -} - -void bcf_hrec_destroy(bcf_hrec_t *hrec) -{ - free(hrec->key); - if ( hrec->value ) free(hrec->value); - int i; - for (i=0; inkeys; i++) - { - free(hrec->keys[i]); - free(hrec->vals[i]); - } - free(hrec->keys); - free(hrec->vals); - free(hrec); -} - -// Copies all fields except IDX. -bcf_hrec_t *bcf_hrec_dup(bcf_hrec_t *hrec) -{ - bcf_hrec_t *out = (bcf_hrec_t*) calloc(1,sizeof(bcf_hrec_t)); - out->type = hrec->type; - if ( hrec->key ) out->key = strdup(hrec->key); - if ( hrec->value ) out->value = strdup(hrec->value); - out->nkeys = hrec->nkeys; - out->keys = (char**) malloc(sizeof(char*)*hrec->nkeys); - out->vals = (char**) malloc(sizeof(char*)*hrec->nkeys); - int i, j = 0; - for (i=0; inkeys; i++) - { - if ( hrec->keys[i] && !strcmp("IDX",hrec->keys[i]) ) continue; - if ( hrec->keys[i] ) out->keys[j] = strdup(hrec->keys[i]); - if ( hrec->vals[i] ) out->vals[j] = strdup(hrec->vals[i]); - j++; - } - if ( i!=j ) out->nkeys -= i-j; // IDX was omitted - return out; -} - -void bcf_hrec_debug(FILE *fp, bcf_hrec_t *hrec) -{ - fprintf(fp, "key=[%s] value=[%s]", hrec->key, hrec->value?hrec->value:""); - int i; - for (i=0; inkeys; i++) - fprintf(fp, "\t[%s]=[%s]", hrec->keys[i],hrec->vals[i]); - fprintf(fp, "\n"); -} - -void bcf_header_debug(bcf_hdr_t *hdr) -{ - int i, j; - for (i=0; inhrec; i++) - { - if ( !hdr->hrec[i]->value ) - { - fprintf(stderr, "##%s=<", hdr->hrec[i]->key); - fprintf(stderr,"%s=%s", hdr->hrec[i]->keys[0], hdr->hrec[i]->vals[0]); - for (j=1; jhrec[i]->nkeys; j++) - fprintf(stderr,",%s=%s", hdr->hrec[i]->keys[j], hdr->hrec[i]->vals[j]); - fprintf(stderr,">\n"); - } - else - fprintf(stderr,"##%s=%s\n", hdr->hrec[i]->key,hdr->hrec[i]->value); - } -} - -void bcf_hrec_add_key(bcf_hrec_t *hrec, const char *str, int len) -{ - int n = ++hrec->nkeys; - hrec->keys = (char**) realloc(hrec->keys, sizeof(char*)*n); - hrec->vals = (char**) realloc(hrec->vals, sizeof(char*)*n); - assert( len ); - hrec->keys[n-1] = (char*) malloc((len+1)*sizeof(char)); - memcpy(hrec->keys[n-1],str,len); - hrec->keys[n-1][len] = 0; - hrec->vals[n-1] = NULL; -} - -void bcf_hrec_set_val(bcf_hrec_t *hrec, int i, const char *str, int len, int is_quoted) -{ - if ( !str ) { hrec->vals[i] = NULL; return; } - if ( hrec->vals[i] ) free(hrec->vals[i]); - if ( is_quoted ) - { - hrec->vals[i] = (char*) malloc((len+3)*sizeof(char)); - hrec->vals[i][0] = '"'; - memcpy(&hrec->vals[i][1],str,len); - hrec->vals[i][len+1] = '"'; - hrec->vals[i][len+2] = 0; - } - else - { - hrec->vals[i] = (char*) malloc((len+1)*sizeof(char)); - memcpy(hrec->vals[i],str,len); - hrec->vals[i][len] = 0; - } -} - -void hrec_add_idx(bcf_hrec_t *hrec, int idx) -{ - int n = ++hrec->nkeys; - hrec->keys = (char**) realloc(hrec->keys, sizeof(char*)*n); - hrec->vals = (char**) realloc(hrec->vals, sizeof(char*)*n); - hrec->keys[n-1] = strdup("IDX"); - kstring_t str = {0,0,0}; - kputw(idx, &str); - hrec->vals[n-1] = str.s; -} - -int bcf_hrec_find_key(bcf_hrec_t *hrec, const char *key) -{ - int i; - for (i=0; inkeys; i++) - if ( !strcasecmp(key,hrec->keys[i]) ) return i; - return -1; -} - -static inline int is_escaped(const char *min, const char *str) -{ - int n = 0; - while ( --str>=min && *str=='\\' ) n++; - return n%2; -} - -bcf_hrec_t *bcf_hdr_parse_line(const bcf_hdr_t *h, const char *line, int *len) -{ - const char *p = line; - if (p[0] != '#' || p[1] != '#') { *len = 0; return NULL; } - p += 2; - - const char *q = p; - while ( *q && *q!='=' ) q++; - int n = q-p; - if ( *q!='=' || !n ) { *len = q-line+1; return NULL; } // wrong format - - bcf_hrec_t *hrec = (bcf_hrec_t*) calloc(1,sizeof(bcf_hrec_t)); - hrec->key = (char*) malloc(sizeof(char)*(n+1)); - memcpy(hrec->key,p,n); - hrec->key[n] = 0; - - p = ++q; - if ( *p!='<' ) // generic field, e.g. ##samtoolsVersion=0.1.18-r579 - { - while ( *q && *q!='\n' ) q++; - hrec->value = (char*) malloc((q-p+1)*sizeof(char)); - memcpy(hrec->value, p, q-p); - hrec->value[q-p] = 0; - *len = q-line+1; - return hrec; - } - - // structured line, e.g. ##INFO= - int nopen = 1; - while ( *q && *q!='\n' && nopen ) - { - p = ++q; - while ( *q && isalnum(*q) ) q++; - n = q-p; - if ( *q!='=' || !n ) - { - // wrong format - while ( *q && *q!='\n' ) q++; - kstring_t tmp = {0,0,0}; - kputsn(line,q-line,&tmp); - fprintf(stderr,"Could not parse the header line: \"%s\"\n", tmp.s); - free(tmp.s); - *len = q-line+1; - bcf_hrec_destroy(hrec); - return NULL; - } - bcf_hrec_add_key(hrec, p, q-p); - p = ++q; - int quoted = *p=='"' ? 1 : 0; - if ( quoted ) p++, q++; - while (1) - { - if ( !*q ) break; - if ( quoted ) { if ( *q=='"' && !is_escaped(p,q) ) break; } - else - { - if ( *q=='<' ) nopen++; - if ( *q=='>' ) nopen--; - if ( !nopen ) break; - if ( *q==',' && nopen==1 ) break; - } - q++; - } - bcf_hrec_set_val(hrec, hrec->nkeys-1, p, q-p, quoted); - if ( quoted ) q++; - if ( *q=='>' ) { nopen--; q++; } - } - *len = q-line+1; - return hrec; -} - -// returns: 1 when hdr needs to be synced, 0 otherwise -int bcf_hdr_register_hrec(bcf_hdr_t *hdr, bcf_hrec_t *hrec) -{ - // contig - int i,j,k, ret; - char *str; - if ( !strcmp(hrec->key, "contig") ) - { - hrec->type = BCF_HL_CTG; - - // Get the contig ID ($str) and length ($j) - i = bcf_hrec_find_key(hrec,"length"); - if ( i<0 ) j = 0; - else if ( sscanf(hrec->vals[i],"%d",&j)!=1 ) return 0; - - i = bcf_hrec_find_key(hrec,"ID"); - if ( i<0 ) return 0; - str = strdup(hrec->vals[i]); - - // Register in the dictionary - vdict_t *d = (vdict_t*)hdr->dict[BCF_DT_CTG]; - k = kh_put(vdict, d, str, &ret); - if ( !ret ) { free(str); return 0; } // already present - - int idx = bcf_hrec_find_key(hrec,"IDX"); - if ( idx!=-1 ) - { - char *tmp = hrec->vals[idx]; - idx = strtol(hrec->vals[idx], &tmp, 10); - if ( *tmp ) - { - fprintf(stderr,"[%s:%d %s] Error parsing the IDX tag, skipping.\n", __FILE__,__LINE__,__FUNCTION__); - return 0; - } - } - else - { - idx = kh_size(d) - 1; - hrec_add_idx(hrec, idx); - } - - kh_val(d, k) = bcf_idinfo_def; - kh_val(d, k).id = idx; - kh_val(d, k).info[0] = j; - kh_val(d, k).hrec[0] = hrec; - - return 1; - } - - if ( !strcmp(hrec->key, "INFO") ) hrec->type = BCF_HL_INFO; - else if ( !strcmp(hrec->key, "FILTER") ) hrec->type = BCF_HL_FLT; - else if ( !strcmp(hrec->key, "FORMAT") ) hrec->type = BCF_HL_FMT; - else if ( hrec->nkeys>0 ) { hrec->type = BCF_HL_STR; return 1; } - else return 0; - - // INFO/FILTER/FORMAT - char *id = NULL; - int type = -1, num = -1, var = -1, idx = -1; - for (i=0; inkeys; i++) - { - if ( !strcmp(hrec->keys[i], "ID") ) id = hrec->vals[i]; - else if ( !strcmp(hrec->keys[i], "IDX") ) - { - char *tmp = hrec->vals[i]; - idx = strtol(hrec->vals[i], &tmp, 10); - if ( *tmp ) - { - fprintf(stderr,"[%s:%d %s] Error parsing the IDX tag, skipping.\n", __FILE__,__LINE__,__FUNCTION__); - return 0; - } - } - else if ( !strcmp(hrec->keys[i], "Type") ) - { - if ( !strcmp(hrec->vals[i], "Integer") ) type = BCF_HT_INT; - else if ( !strcmp(hrec->vals[i], "Float") ) type = BCF_HT_REAL; - else if ( !strcmp(hrec->vals[i], "String") ) type = BCF_HT_STR; - else if ( !strcmp(hrec->vals[i], "Character") ) type = BCF_HT_STR; - else if ( !strcmp(hrec->vals[i], "Flag") ) type = BCF_HT_FLAG; - else - { - fprintf(stderr, "[E::%s] The type \"%s\" not supported, assuming \"String\"\n", __func__, hrec->vals[i]); - type = BCF_HT_STR; - } - } - else if ( !strcmp(hrec->keys[i], "Number") ) - { - if ( !strcmp(hrec->vals[i],"A") ) var = BCF_VL_A; - else if ( !strcmp(hrec->vals[i],"R") ) var = BCF_VL_R; - else if ( !strcmp(hrec->vals[i],"G") ) var = BCF_VL_G; - else if ( !strcmp(hrec->vals[i],".") ) var = BCF_VL_VAR; - else - { - sscanf(hrec->vals[i],"%d",&num); - var = BCF_VL_FIXED; - } - if (var != BCF_VL_FIXED) num = 0xfffff; - } - } - uint32_t info = (uint32_t)num<<12 | var<<8 | type<<4 | hrec->type; - - if ( !id ) return 0; - str = strdup(id); - - vdict_t *d = (vdict_t*)hdr->dict[BCF_DT_ID]; - k = kh_put(vdict, d, str, &ret); - if ( !ret ) - { - // already present - free(str); - if ( kh_val(d, k).hrec[info&0xf] ) return 0; - kh_val(d, k).info[info&0xf] = info; - kh_val(d, k).hrec[info&0xf] = hrec; - if ( idx==-1 ) hrec_add_idx(hrec, kh_val(d, k).id); - return 1; - } - kh_val(d, k) = bcf_idinfo_def; - kh_val(d, k).info[info&0xf] = info; - kh_val(d, k).hrec[info&0xf] = hrec; - kh_val(d, k).id = idx==-1 ? kh_size(d) - 1 : idx; - - if ( idx==-1 ) hrec_add_idx(hrec, kh_val(d, k).id); - - return 1; -} - -int bcf_hdr_add_hrec(bcf_hdr_t *hdr, bcf_hrec_t *hrec) -{ - if ( !hrec ) return 0; - - hrec->type = BCF_HL_GEN; - if ( !bcf_hdr_register_hrec(hdr,hrec) ) - { - // If one of the hashed field, then it is already present - if ( hrec->type != BCF_HL_GEN ) - { - bcf_hrec_destroy(hrec); - return 0; - } - - // Is one of the generic fields and already present? - int i; - for (i=0; inhrec; i++) - { - if ( hdr->hrec[i]->type!=BCF_HL_GEN ) continue; - if ( !strcmp(hdr->hrec[i]->key,hrec->key) && !strcmp(hrec->key,"fileformat") ) break; - if ( !strcmp(hdr->hrec[i]->key,hrec->key) && !strcmp(hdr->hrec[i]->value,hrec->value) ) break; - } - if ( inhrec ) - { - bcf_hrec_destroy(hrec); - return 0; - } - } - - // New record, needs to be added - int n = ++hdr->nhrec; - hdr->hrec = (bcf_hrec_t**) realloc(hdr->hrec, n*sizeof(bcf_hrec_t*)); - hdr->hrec[n-1] = hrec; - hdr->dirty = 1; - - return hrec->type==BCF_HL_GEN ? 0 : 1; -} - -/* - * Note that while querying of FLT,INFO,FMT,CTG lines is fast (the keys are hashed), - * the STR,GEN lines are searched for linearly in a linked list of all header lines. - * This may become a problem for VCFs with huge headers, we might need to build a - * dictionary for these lines as well. - */ -bcf_hrec_t *bcf_hdr_get_hrec(const bcf_hdr_t *hdr, int type, const char *key, const char *value, const char *str_class) -{ - int i; - if ( type==BCF_HL_GEN ) - { - for (i=0; inhrec; i++) - { - if ( hdr->hrec[i]->type!=type ) continue; - if ( strcmp(hdr->hrec[i]->key,key) ) continue; - if ( !value || !strcmp(hdr->hrec[i]->value,value) ) return hdr->hrec[i]; - } - return NULL; - } - else if ( type==BCF_HL_STR ) - { - for (i=0; inhrec; i++) - { - if ( hdr->hrec[i]->type!=type ) continue; - if ( strcmp(hdr->hrec[i]->key,str_class) ) continue; - int j = bcf_hrec_find_key(hdr->hrec[i],key); - if ( j>=0 && !strcmp(hdr->hrec[i]->vals[j],value) ) return hdr->hrec[i]; - } - return NULL; - } - vdict_t *d = type==BCF_HL_CTG ? (vdict_t*)hdr->dict[BCF_DT_CTG] : (vdict_t*)hdr->dict[BCF_DT_ID]; - khint_t k = kh_get(vdict, d, value); - if ( k == kh_end(d) ) return NULL; - return kh_val(d, k).hrec[type==BCF_HL_CTG?0:type]; -} - -void bcf_hdr_check_sanity(bcf_hdr_t *hdr) -{ - static int PL_warned = 0, GL_warned = 0; - - if ( !PL_warned ) - { - int id = bcf_hdr_id2int(hdr, BCF_DT_ID, "PL"); - if ( bcf_hdr_idinfo_exists(hdr,BCF_HL_FMT,id) && bcf_hdr_id2length(hdr,BCF_HL_FMT,id)!=BCF_VL_G ) - { - fprintf(stderr,"[W::%s] PL should be declared as Number=G\n", __func__); - PL_warned = 1; - } - } - if ( !GL_warned ) - { - int id = bcf_hdr_id2int(hdr, BCF_HL_FMT, "GL"); - if ( bcf_hdr_idinfo_exists(hdr,BCF_HL_FMT,id) && bcf_hdr_id2length(hdr,BCF_HL_FMT,id)!=BCF_VL_G ) - { - fprintf(stderr,"[W::%s] GL should be declared as Number=G\n", __func__); - PL_warned = 1; - } - } -} - -int bcf_hdr_parse(bcf_hdr_t *hdr, char *htxt) -{ - int len, needs_sync = 0; - char *p = htxt; - - // Check sanity: "fileformat" string must come as first - bcf_hrec_t *hrec = bcf_hdr_parse_line(hdr,p,&len); - if ( !hrec || !hrec->key || strcasecmp(hrec->key,"fileformat") ) - fprintf(stderr, "[W::%s] The first line should be ##fileformat; is the VCF/BCF header broken?\n", __func__); - needs_sync += bcf_hdr_add_hrec(hdr, hrec); - - // The filter PASS must appear first in the dictionary - hrec = bcf_hdr_parse_line(hdr,"##FILTER=",&len); - needs_sync += bcf_hdr_add_hrec(hdr, hrec); - - // Parse the whole header - while ( (hrec=bcf_hdr_parse_line(hdr,p,&len)) ) - { - needs_sync += bcf_hdr_add_hrec(hdr, hrec); - p += len; - } - int ret = bcf_hdr_parse_sample_line(hdr,p); - bcf_hdr_sync(hdr); - bcf_hdr_check_sanity(hdr); - return ret; -} - -int bcf_hdr_append(bcf_hdr_t *hdr, const char *line) -{ - int len; - bcf_hrec_t *hrec = bcf_hdr_parse_line(hdr, (char*) line, &len); - if ( !hrec ) return -1; - bcf_hdr_add_hrec(hdr, hrec); - return 0; -} - -void bcf_hdr_remove(bcf_hdr_t *hdr, int type, const char *key) -{ - int i; - bcf_hrec_t *hrec; - while (1) - { - if ( type==BCF_HL_FLT || type==BCF_HL_INFO || type==BCF_HL_FMT || type== BCF_HL_CTG ) - { - hrec = bcf_hdr_get_hrec(hdr, type, "ID", key, NULL); - if ( !hrec ) return; - - for (i=0; inhrec; i++) - if ( hdr->hrec[i]==hrec ) break; - assert( inhrec ); - - vdict_t *d = type==BCF_HL_CTG ? (vdict_t*)hdr->dict[BCF_DT_CTG] : (vdict_t*)hdr->dict[BCF_DT_ID]; - khint_t k = kh_get(vdict, d, key); - kh_val(d, k).hrec[type==BCF_HL_CTG?0:type] = NULL; - } - else - { - for (i=0; inhrec; i++) - { - if ( hdr->hrec[i]->type!=type ) continue; - if ( type==BCF_HL_GEN ) - { - if ( !strcmp(hdr->hrec[i]->key,key) ) break; - } - else - { - // not all structured lines have ID, we could be more sophisticated as in bcf_hdr_get_hrec() - int j = bcf_hrec_find_key(hdr->hrec[i], "ID"); - if ( j>=0 && !strcmp(hdr->hrec[i]->vals[j],key) ) break; - } - } - if ( i==hdr->nhrec ) return; - hrec = hdr->hrec[i]; - } - - hdr->nhrec--; - if ( i < hdr->nhrec ) - memmove(&hdr->hrec[i],&hdr->hrec[i+1],(hdr->nhrec-i)*sizeof(bcf_hrec_t*)); - bcf_hrec_destroy(hrec); - hdr->dirty = 1; - } -} - -int bcf_hdr_printf(bcf_hdr_t *hdr, const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - int n = vsnprintf(NULL, 0, fmt, ap) + 2; - va_end(ap); - - char *line = (char*)malloc(n); - va_start(ap, fmt); - vsnprintf(line, n, fmt, ap); - va_end(ap); - - int ret = bcf_hdr_append(hdr, line); - - free(line); - return ret; -} - - -/********************** - *** BCF header I/O *** - **********************/ - -const char *bcf_hdr_get_version(const bcf_hdr_t *hdr) -{ - bcf_hrec_t *hrec = bcf_hdr_get_hrec(hdr, BCF_HL_GEN, "fileformat", NULL, NULL); - if ( !hrec ) - { - fprintf(stderr,"No version string found, assuming VCFv4.2\n"); - return "VCFv4.2"; - } - return hrec->value; -} - -void bcf_hdr_set_version(bcf_hdr_t *hdr, const char *version) -{ - bcf_hrec_t *hrec = bcf_hdr_get_hrec(hdr, BCF_HL_GEN, "fileformat", NULL, NULL); - if ( !hrec ) - { - int len; - kstring_t str = {0,0,0}; - ksprintf(&str,"##fileformat=%s", version); - hrec = bcf_hdr_parse_line(hdr, str.s, &len); - free(str.s); - } - else - { - free(hrec->value); - hrec->value = strdup(version); - } - hdr->dirty = 1; -} - -bcf_hdr_t *bcf_hdr_init(const char *mode) -{ - int i; - bcf_hdr_t *h; - h = (bcf_hdr_t*)calloc(1, sizeof(bcf_hdr_t)); - for (i = 0; i < 3; ++i) - h->dict[i] = kh_init(vdict); - if ( strchr(mode,'w') ) - { - bcf_hdr_append(h, "##fileformat=VCFv4.2"); - // The filter PASS must appear first in the dictionary - bcf_hdr_append(h, "##FILTER="); - } - return h; -} - -void bcf_hdr_destroy(bcf_hdr_t *h) -{ - int i; - khint_t k; - for (i = 0; i < 3; ++i) { - vdict_t *d = (vdict_t*)h->dict[i]; - if (d == 0) continue; - for (k = kh_begin(d); k != kh_end(d); ++k) - if (kh_exist(d, k)) free((char*)kh_key(d, k)); - kh_destroy(vdict, d); - free(h->id[i]); - } - for (i=0; inhrec; i++) - bcf_hrec_destroy(h->hrec[i]); - if (h->nhrec) free(h->hrec); - if (h->samples) free(h->samples); - free(h->keep_samples); - free(h->transl[0]); free(h->transl[1]); - free(h->mem.s); - free(h); -} - -bcf_hdr_t *bcf_hdr_read(htsFile *hfp) -{ - if (hfp->format.format == vcf) - return vcf_hdr_read(hfp); - - BGZF *fp = hfp->fp.bgzf; - uint8_t magic[5]; - bcf_hdr_t *h; - h = bcf_hdr_init("r"); - if ( bgzf_read(fp, magic, 5)<0 ) - { - fprintf(stderr,"[%s:%d %s] Failed to read the header (reading BCF in text mode?)\n", __FILE__,__LINE__,__FUNCTION__); - return NULL; - } - if (strncmp((char*)magic, "BCF\2\2", 5) != 0) - { - if (!strncmp((char*)magic, "BCF", 3)) - fprintf(stderr,"[%s:%d %s] invalid BCF2 magic string: only BCFv2.2 is supported.\n", __FILE__,__LINE__,__FUNCTION__); - else if (hts_verbose >= 2) - fprintf(stderr, "[E::%s] invalid BCF2 magic string\n", __func__); - bcf_hdr_destroy(h); - return 0; - } - int hlen; - char *htxt; - bgzf_read(fp, &hlen, 4); - htxt = (char*)malloc(hlen); - bgzf_read(fp, htxt, hlen); - bcf_hdr_parse(h, htxt); - free(htxt); - return h; -} - -int bcf_hdr_write(htsFile *hfp, bcf_hdr_t *h) -{ - if ( h->dirty ) bcf_hdr_sync(h); - if (hfp->format.format == vcf || hfp->format.format == text_format) - return vcf_hdr_write(hfp, h); - - int hlen; - char *htxt = bcf_hdr_fmt_text(h, 1, &hlen); - hlen++; // include the \0 byte - - BGZF *fp = hfp->fp.bgzf; - if ( bgzf_write(fp, "BCF\2\2", 5) !=5 ) return -1; - if ( bgzf_write(fp, &hlen, 4) !=4 ) return -1; - if ( bgzf_write(fp, htxt, hlen) != hlen ) return -1; - - free(htxt); - return 0; -} - -/******************** - *** BCF site I/O *** - ********************/ - -bcf1_t *bcf_init1() -{ - bcf1_t *v; - v = (bcf1_t*)calloc(1, sizeof(bcf1_t)); - return v; -} - -void bcf_clear(bcf1_t *v) -{ - int i; - for (i=0; id.m_info; i++) - { - if ( v->d.info[i].vptr_free ) - { - free(v->d.info[i].vptr - v->d.info[i].vptr_off); - v->d.info[i].vptr_free = 0; - } - } - for (i=0; id.m_fmt; i++) - { - if ( v->d.fmt[i].p_free ) - { - free(v->d.fmt[i].p - v->d.fmt[i].p_off); - v->d.fmt[i].p_free = 0; - } - } - v->rid = v->pos = v->rlen = v->unpacked = 0; - bcf_float_set_missing(v->qual); - v->n_info = v->n_allele = v->n_fmt = v->n_sample = 0; - v->shared.l = v->indiv.l = 0; - v->d.var_type = -1; - v->d.shared_dirty = 0; - v->d.indiv_dirty = 0; - v->d.n_flt = 0; - v->errcode = 0; - if (v->d.m_als) v->d.als[0] = 0; - if (v->d.m_id) v->d.id[0] = 0; -} - -void bcf_empty1(bcf1_t *v) -{ - bcf_clear1(v); - free(v->d.id); - free(v->d.als); - free(v->d.allele); free(v->d.flt); free(v->d.info); free(v->d.fmt); - if (v->d.var ) free(v->d.var); - free(v->shared.s); free(v->indiv.s); -} - -void bcf_destroy1(bcf1_t *v) -{ - bcf_empty1(v); - free(v); -} - -static inline int bcf_read1_core(BGZF *fp, bcf1_t *v) -{ - uint32_t x[8]; - int ret; - if ((ret = bgzf_read(fp, x, 32)) != 32) { - if (ret == 0) return -1; - return -2; - } - bcf_clear1(v); - x[0] -= 24; // to exclude six 32-bit integers - ks_resize(&v->shared, x[0]); - ks_resize(&v->indiv, x[1]); - memcpy(v, x + 2, 16); - v->n_allele = x[6]>>16; v->n_info = x[6]&0xffff; - v->n_fmt = x[7]>>24; v->n_sample = x[7]&0xffffff; - v->shared.l = x[0], v->indiv.l = x[1]; - - // silent fix of broken BCFs produced by earlier versions of bcf_subset, prior to and including bd6ed8b4 - if ( (!v->indiv.l || !v->n_sample) && v->n_fmt ) v->n_fmt = 0; - - bgzf_read(fp, v->shared.s, v->shared.l); - bgzf_read(fp, v->indiv.s, v->indiv.l); - return 0; -} - -#define bit_array_size(n) ((n)/8+1) -#define bit_array_set(a,i) ((a)[(i)/8] |= 1 << ((i)%8)) -#define bit_array_clear(a,i) ((a)[(i)/8] &= ~(1 << ((i)%8))) -#define bit_array_test(a,i) ((a)[(i)/8] & (1 << ((i)%8))) - -static inline uint8_t *bcf_unpack_fmt_core1(uint8_t *ptr, int n_sample, bcf_fmt_t *fmt); -int bcf_subset_format(const bcf_hdr_t *hdr, bcf1_t *rec) -{ - if ( !hdr->keep_samples ) return 0; - if ( !bcf_hdr_nsamples(hdr) ) - { - rec->indiv.l = rec->n_sample = 0; - return 0; - } - - int i, j; - uint8_t *ptr = (uint8_t*)rec->indiv.s, *dst = NULL, *src; - bcf_dec_t *dec = &rec->d; - hts_expand(bcf_fmt_t, rec->n_fmt, dec->m_fmt, dec->fmt); - for (i=0; im_fmt; ++i) dec->fmt[i].p_free = 0; - - for (i=0; in_fmt; i++) - { - ptr = bcf_unpack_fmt_core1(ptr, rec->n_sample, &dec->fmt[i]); - src = dec->fmt[i].p - dec->fmt[i].size; - if ( dst ) - { - memmove(dec->fmt[i-1].p + dec->fmt[i-1].p_len, dec->fmt[i].p - dec->fmt[i].p_off, dec->fmt[i].p_off); - dec->fmt[i].p = dec->fmt[i-1].p + dec->fmt[i-1].p_len + dec->fmt[i].p_off; - } - dst = dec->fmt[i].p; - for (j=0; jnsamples_ori; j++) - { - src += dec->fmt[i].size; - if ( !bit_array_test(hdr->keep_samples,j) ) continue; - memmove(dst, src, dec->fmt[i].size); - dst += dec->fmt[i].size; - } - rec->indiv.l -= dec->fmt[i].p_len - (dst - dec->fmt[i].p); - dec->fmt[i].p_len = dst - dec->fmt[i].p; - } - rec->unpacked |= BCF_UN_FMT; - - rec->n_sample = bcf_hdr_nsamples(hdr); - return 0; -} - -int bcf_read(htsFile *fp, const bcf_hdr_t *h, bcf1_t *v) -{ - if (fp->format.format == vcf) return vcf_read(fp,h,v); - int ret = bcf_read1_core(fp->fp.bgzf, v); - if ( ret!=0 || !h->keep_samples ) return ret; - return bcf_subset_format(h,v); -} - -int bcf_readrec(BGZF *fp, void *null, void *vv, int *tid, int *beg, int *end) -{ - bcf1_t *v = (bcf1_t *) vv; - int ret; - if ((ret = bcf_read1_core(fp, v)) >= 0) - *tid = v->rid, *beg = v->pos, *end = v->pos + v->rlen; - return ret; -} - -static inline void bcf1_sync_id(bcf1_t *line, kstring_t *str) -{ - // single typed string - if ( line->d.id && strcmp(line->d.id, ".") ) bcf_enc_vchar(str, strlen(line->d.id), line->d.id); - else bcf_enc_size(str, 0, BCF_BT_CHAR); -} -static inline void bcf1_sync_alleles(bcf1_t *line, kstring_t *str) -{ - // list of typed strings - int i; - for (i=0; in_allele; i++) - bcf_enc_vchar(str, strlen(line->d.allele[i]), line->d.allele[i]); - if ( !line->rlen && line->n_allele ) line->rlen = strlen(line->d.allele[0]); -} -static inline void bcf1_sync_filter(bcf1_t *line, kstring_t *str) -{ - // typed vector of integers - if ( line->d.n_flt ) bcf_enc_vint(str, line->d.n_flt, line->d.flt, -1); - else bcf_enc_vint(str, 0, 0, -1); -} - -static inline void bcf1_sync_info(bcf1_t *line, kstring_t *str) -{ - // pairs of typed vectors - int i, irm = -1; - for (i=0; in_info; i++) - { - bcf_info_t *info = &line->d.info[i]; - if ( !info->vptr ) - { - // marked for removal - if ( irm < 0 ) irm = i; - continue; - } - kputsn_(info->vptr - info->vptr_off, info->vptr_len + info->vptr_off, str); - if ( irm >=0 ) - { - bcf_info_t tmp = line->d.info[irm]; line->d.info[irm] = line->d.info[i]; line->d.info[i] = tmp; - while ( irm<=i && line->d.info[irm].vptr ) irm++; - } - } - if ( irm>=0 ) line->n_info = irm; -} - -static int bcf1_sync(bcf1_t *line) -{ - char *shared_ori = line->shared.s; - size_t prev_len; - - kstring_t tmp = {0,0,0}; - if ( !line->shared.l ) - { - // New line created via API, BCF data blocks do not exist. Get it ready for BCF output - tmp = line->shared; - bcf1_sync_id(line, &tmp); - line->unpack_size[0] = tmp.l; prev_len = tmp.l; - - bcf1_sync_alleles(line, &tmp); - line->unpack_size[1] = tmp.l - prev_len; prev_len = tmp.l; - - bcf1_sync_filter(line, &tmp); - line->unpack_size[2] = tmp.l - prev_len; - - bcf1_sync_info(line, &tmp); - line->shared = tmp; - } - else if ( line->d.shared_dirty ) - { - // The line was edited, update the BCF data block, ptr_ori points - // to the original unchanged BCF data. - uint8_t *ptr_ori = (uint8_t *) line->shared.s; - - assert( line->unpacked & BCF_UN_STR ); - - // ID: single typed string - if ( line->d.shared_dirty & BCF1_DIRTY_ID ) - bcf1_sync_id(line, &tmp); - else - kputsn_(ptr_ori, line->unpack_size[0], &tmp); - ptr_ori += line->unpack_size[0]; - line->unpack_size[0] = tmp.l; prev_len = tmp.l; - - // REF+ALT: list of typed strings - if ( line->d.shared_dirty & BCF1_DIRTY_ALS ) - bcf1_sync_alleles(line, &tmp); - else - { - kputsn_(ptr_ori, line->unpack_size[1], &tmp); - if ( !line->rlen && line->n_allele ) line->rlen = strlen(line->d.allele[0]); - } - ptr_ori += line->unpack_size[1]; - line->unpack_size[1] = tmp.l - prev_len; prev_len = tmp.l; - - if ( line->unpacked & BCF_UN_FLT ) - { - // FILTER: typed vector of integers - if ( line->d.shared_dirty & BCF1_DIRTY_FLT ) - bcf1_sync_filter(line, &tmp); - else if ( line->d.n_flt ) - kputsn_(ptr_ori, line->unpack_size[2], &tmp); - else - bcf_enc_vint(&tmp, 0, 0, -1); - ptr_ori += line->unpack_size[2]; - line->unpack_size[2] = tmp.l - prev_len; - - if ( line->unpacked & BCF_UN_INFO ) - { - // INFO: pairs of typed vectors - if ( line->d.shared_dirty & BCF1_DIRTY_INF ) - { - bcf1_sync_info(line, &tmp); - ptr_ori = (uint8_t*)line->shared.s + line->shared.l; - } - } - } - - int size = line->shared.l - (size_t)ptr_ori + (size_t)line->shared.s; - if ( size ) kputsn_(ptr_ori, size, &tmp); - - free(line->shared.s); - line->shared = tmp; - } - if ( line->shared.s != shared_ori && line->unpacked & BCF_UN_INFO ) - { - // Reallocated line->shared.s block invalidated line->d.info[].vptr pointers - size_t off_new = line->unpack_size[0] + line->unpack_size[1] + line->unpack_size[2]; - int i; - for (i=0; in_info; i++) - { - uint8_t *vptr_free = line->d.info[i].vptr_free ? line->d.info[i].vptr - line->d.info[i].vptr_off : NULL; - line->d.info[i].vptr = (uint8_t*) line->shared.s + off_new + line->d.info[i].vptr_off; - off_new += line->d.info[i].vptr_len + line->d.info[i].vptr_off; - if ( vptr_free ) - { - free(vptr_free); - line->d.info[i].vptr_free = 0; - } - } - } - - if ( line->n_sample && line->n_fmt && (!line->indiv.l || line->d.indiv_dirty) ) - { - // The genotype fields changed or are not present - tmp.l = tmp.m = 0; tmp.s = NULL; - int i, irm = -1; - for (i=0; in_fmt; i++) - { - bcf_fmt_t *fmt = &line->d.fmt[i]; - if ( !fmt->p ) - { - // marked for removal - if ( irm < 0 ) irm = i; - continue; - } - kputsn_(fmt->p - fmt->p_off, fmt->p_len + fmt->p_off, &tmp); - if ( irm >=0 ) - { - bcf_fmt_t tfmt = line->d.fmt[irm]; line->d.fmt[irm] = line->d.fmt[i]; line->d.fmt[i] = tfmt; - while ( irm<=i && line->d.fmt[irm].p ) irm++; - } - - } - if ( irm>=0 ) line->n_fmt = irm; - free(line->indiv.s); - line->indiv = tmp; - - // Reallocated line->indiv.s block invalidated line->d.fmt[].p pointers - size_t off_new = 0; - for (i=0; in_fmt; i++) - { - uint8_t *p_free = line->d.fmt[i].p_free ? line->d.fmt[i].p - line->d.fmt[i].p_off : NULL; - line->d.fmt[i].p = (uint8_t*) line->indiv.s + off_new + line->d.fmt[i].p_off; - off_new += line->d.fmt[i].p_len + line->d.fmt[i].p_off; - if ( p_free ) - { - free(p_free); - line->d.fmt[i].p_free = 0; - } - } - } - if ( !line->n_sample ) line->n_fmt = 0; - line->d.shared_dirty = line->d.indiv_dirty = 0; - return 0; -} - -bcf1_t *bcf_copy(bcf1_t *dst, bcf1_t *src) -{ - bcf1_sync(src); - - bcf_clear(dst); - dst->rid = src->rid; - dst->pos = src->pos; - dst->rlen = src->rlen; - dst->qual = src->qual; - dst->n_info = src->n_info; dst->n_allele = src->n_allele; - dst->n_fmt = src->n_fmt; dst->n_sample = src->n_sample; - - dst->shared.m = dst->shared.l = src->shared.l; - dst->shared.s = (char*) malloc(dst->shared.l); - memcpy(dst->shared.s,src->shared.s,dst->shared.l); - - dst->indiv.m = dst->indiv.l = src->indiv.l; - dst->indiv.s = (char*) malloc(dst->indiv.l); - memcpy(dst->indiv.s,src->indiv.s,dst->indiv.l); - - return dst; -} -bcf1_t *bcf_dup(bcf1_t *src) -{ - bcf1_t *out = bcf_init1(); - return bcf_copy(out, src); -} - -int bcf_write(htsFile *hfp, const bcf_hdr_t *h, bcf1_t *v) -{ - if ( h->dirty ) - { - // we could as well call bcf_hdr_sync here, not sure - fprintf(stderr,"FIXME: dirty header not synced\n"); - exit(1); - } - if ( bcf_hdr_nsamples(h)!=v->n_sample ) - { - fprintf(stderr,"[%s:%d %s] Broken VCF record, the number of columns at %s:%d does not match the number of samples (%d vs %d).\n", - __FILE__,__LINE__,__FUNCTION__,bcf_seqname(h,v),v->pos+1, v->n_sample,bcf_hdr_nsamples(h)); - return -1; - } - - if ( hfp->format.format == vcf || hfp->format.format == text_format ) - return vcf_write(hfp,h,v); - - if ( v->errcode ) - { - // vcf_parse1() encountered a new contig or tag, undeclared in the - // header. At this point, the header must have been printed, - // proceeding would lead to a broken BCF file. Errors must be checked - // and cleared by the caller before we can proceed. - fprintf(stderr,"[%s:%d %s] Unchecked error (%d), exiting.\n", __FILE__,__LINE__,__FUNCTION__,v->errcode); - exit(1); - } - bcf1_sync(v); // check if the BCF record was modified - - BGZF *fp = hfp->fp.bgzf; - uint32_t x[8]; - x[0] = v->shared.l + 24; // to include six 32-bit integers - x[1] = v->indiv.l; - memcpy(x + 2, v, 16); - x[6] = (uint32_t)v->n_allele<<16 | v->n_info; - x[7] = (uint32_t)v->n_fmt<<24 | v->n_sample; - if ( bgzf_write(fp, x, 32) != 32 ) return -1; - if ( bgzf_write(fp, v->shared.s, v->shared.l) != v->shared.l ) return -1; - if ( bgzf_write(fp, v->indiv.s, v->indiv.l) != v->indiv.l ) return -1; - return 0; -} - -/********************** - *** VCF header I/O *** - **********************/ - -bcf_hdr_t *vcf_hdr_read(htsFile *fp) -{ - kstring_t txt, *s = &fp->line; - bcf_hdr_t *h; - h = bcf_hdr_init("r"); - txt.l = txt.m = 0; txt.s = 0; - while (hts_getline(fp, KS_SEP_LINE, s) >= 0) { - if (s->l == 0) continue; - if (s->s[0] != '#') { - if (hts_verbose >= 2) - fprintf(stderr, "[E::%s] no sample line\n", __func__); - free(txt.s); - bcf_hdr_destroy(h); - return 0; - } - if (s->s[1] != '#' && fp->fn_aux) { // insert contigs here - int dret; - gzFile f; - kstream_t *ks; - kstring_t tmp; - tmp.l = tmp.m = 0; tmp.s = 0; - f = gzopen(fp->fn_aux, "r"); - ks = ks_init(f); - while (ks_getuntil(ks, 0, &tmp, &dret) >= 0) { - int c; - kputs("##contig=\n", 2, &txt); - if (dret != '\n') - while ((c = ks_getc(ks)) != '\n' && c != -1); // skip the rest of the line - } - free(tmp.s); - ks_destroy(ks); - gzclose(f); - } - kputsn(s->s, s->l, &txt); - kputc('\n', &txt); - if (s->s[1] != '#') break; - } - if ( !txt.s ) - { - fprintf(stderr,"[%s:%d %s] Could not read the header\n", __FILE__,__LINE__,__FUNCTION__); - return NULL; - } - bcf_hdr_parse(h, txt.s); - - // check tabix index, are all contigs listed in the header? add the missing ones - tbx_t *idx = tbx_index_load(fp->fn); - if ( idx ) - { - int i, n, need_sync = 0; - const char **names = tbx_seqnames(idx, &n); - for (i=0; ikey = strdup("contig"); - bcf_hrec_add_key(hrec, "ID", strlen("ID")); - bcf_hrec_set_val(hrec, hrec->nkeys-1, (char*) names[i], strlen(names[i]), 0); - bcf_hdr_add_hrec(h, hrec); - need_sync = 1; - } - free(names); - tbx_destroy(idx); - if ( need_sync ) - bcf_hdr_sync(h); - } - free(txt.s); - return h; -} - -int bcf_hdr_set(bcf_hdr_t *hdr, const char *fname) -{ - int i, n; - char **lines = hts_readlines(fname, &n); - if ( !lines ) return 1; - for (i=0; ivalue ) - { - int j, nout = 0; - ksprintf(str, "##%s=<", hrec->key); - for (j=0; jnkeys; j++) - { - // do not output IDX if output is VCF - if ( !is_bcf && !strcmp("IDX",hrec->keys[j]) ) continue; - if ( nout ) kputc(',',str); - ksprintf(str,"%s=%s", hrec->keys[j], hrec->vals[j]); - nout++; - } - ksprintf(str,">\n"); - } - else - ksprintf(str,"##%s=%s\n", hrec->key,hrec->value); -} - -void bcf_hrec_format(const bcf_hrec_t *hrec, kstring_t *str) -{ - _bcf_hrec_format(hrec,0,str); -} -char *bcf_hdr_fmt_text(const bcf_hdr_t *hdr, int is_bcf, int *len) -{ - int i; - kstring_t txt = {0,0,0}; - for (i=0; inhrec; i++) - _bcf_hrec_format(hdr->hrec[i], is_bcf, &txt); - - ksprintf(&txt,"#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO"); - if ( bcf_hdr_nsamples(hdr) ) - { - ksprintf(&txt,"\tFORMAT"); - for (i=0; isamples[i]); - } - ksprintf(&txt,"\n"); - - if ( len ) *len = txt.l; - return txt.s; -} - -const char **bcf_hdr_seqnames(const bcf_hdr_t *h, int *n) -{ - vdict_t *d = (vdict_t*)h->dict[BCF_DT_CTG]; - int tid, m = kh_size(d); - const char **names = (const char**) calloc(m,sizeof(const char*)); - khint_t k; - for (k=kh_begin(d); kformat.compression!=no_compression ) - ret = bgzf_write(fp->fp.bgzf, htxt, hlen); - else - ret = hwrite(fp->fp.hfile, htxt, hlen); - free(htxt); - return ret<0 ? -1 : 0; -} - -/*********************** - *** Typed value I/O *** - ***********************/ - -void bcf_enc_vint(kstring_t *s, int n, int32_t *a, int wsize) -{ - int32_t max = INT32_MIN + 1, min = INT32_MAX; - int i; - if (n == 0) bcf_enc_size(s, 0, BCF_BT_NULL); - else if (n == 1) bcf_enc_int1(s, a[0]); - else { - if (wsize <= 0) wsize = n; - for (i = 0; i < n; ++i) { - if (a[i] == bcf_int32_missing || a[i] == bcf_int32_vector_end ) continue; - if (max < a[i]) max = a[i]; - if (min > a[i]) min = a[i]; - } - if (max <= INT8_MAX && min > bcf_int8_vector_end) { - bcf_enc_size(s, wsize, BCF_BT_INT8); - for (i = 0; i < n; ++i) - if ( a[i]==bcf_int32_vector_end ) kputc(bcf_int8_vector_end, s); - else if ( a[i]==bcf_int32_missing ) kputc(bcf_int8_missing, s); - else kputc(a[i], s); - } else if (max <= INT16_MAX && min > bcf_int16_vector_end) { - bcf_enc_size(s, wsize, BCF_BT_INT16); - for (i = 0; i < n; ++i) - { - int16_t x; - if ( a[i]==bcf_int32_vector_end ) x = bcf_int16_vector_end; - else if ( a[i]==bcf_int32_missing ) x = bcf_int16_missing; - else x = a[i]; - kputsn((char*)&x, 2, s); - } - } else { - bcf_enc_size(s, wsize, BCF_BT_INT32); - for (i = 0; i < n; ++i) { - int32_t x = a[i]; - kputsn((char*)&x, 4, s); - } - } - } -} - -void bcf_enc_vfloat(kstring_t *s, int n, float *a) -{ - bcf_enc_size(s, n, BCF_BT_FLOAT); - kputsn((char*)a, n << 2, s); -} - -void bcf_enc_vchar(kstring_t *s, int l, const char *a) -{ - bcf_enc_size(s, l, BCF_BT_CHAR); - kputsn(a, l, s); -} - -void bcf_fmt_array(kstring_t *s, int n, int type, void *data) -{ - int j = 0; - if (n == 0) { - kputc('.', s); - return; - } - if (type == BCF_BT_CHAR) - { - char *p = (char*)data; - for (j = 0; j < n && *p; ++j, ++p) - { - if ( *p==bcf_str_missing ) kputc('.', s); - else kputc(*p, s); - } - } - else - { - #define BRANCH(type_t, is_missing, is_vector_end, kprint) { \ - type_t *p = (type_t *) data; \ - for (j=0; jl&7) { - uint64_t zero = 0; - int l = ((s->l + 7)>>3<<3) - s->l; - kputsn((char*)&zero, l, s); - } -} - -// p,q is the start and the end of the FORMAT field -int _vcf_parse_format(kstring_t *s, const bcf_hdr_t *h, bcf1_t *v, char *p, char *q) -{ - if ( !bcf_hdr_nsamples(h) ) return 0; - - char *r, *t; - int j, l, m, g; - khint_t k; - ks_tokaux_t aux1; - vdict_t *d = (vdict_t*)h->dict[BCF_DT_ID]; - kstring_t *mem = (kstring_t*)&h->mem; - mem->l = 0; - - // count the number of format fields - for (r = p, v->n_fmt = 1; *r; ++r) - if (*r == ':') ++v->n_fmt; - char *end = s->s + s->l; - if ( q>=end ) - { - fprintf(stderr,"[%s:%d %s] Error: FORMAT column with no sample columns starting at %s:%d\n", __FILE__,__LINE__,__FUNCTION__,s->s,v->pos+1); - return -1; - } - - fmt_aux_t *fmt = (fmt_aux_t*)alloca(v->n_fmt * sizeof(fmt_aux_t)); - // get format information from the dictionary - for (j = 0, t = kstrtok(p, ":", &aux1); t; t = kstrtok(0, 0, &aux1), ++j) { - *(char*)aux1.p = 0; - k = kh_get(vdict, d, t); - if (k == kh_end(d) || kh_val(d, k).info[BCF_HL_FMT] == 15) { - fprintf(stderr, "[W::%s] FORMAT '%s' is not defined in the header, assuming Type=String\n", __func__, t); - kstring_t tmp = {0,0,0}; - int l; - ksprintf(&tmp, "##FORMAT=", t); - bcf_hrec_t *hrec = bcf_hdr_parse_line(h,tmp.s,&l); - free(tmp.s); - if ( bcf_hdr_add_hrec((bcf_hdr_t*)h, hrec) ) bcf_hdr_sync((bcf_hdr_t*)h); - k = kh_get(vdict, d, t); - v->errcode = BCF_ERR_TAG_UNDEF; - } - fmt[j].max_l = fmt[j].max_m = fmt[j].max_g = 0; - fmt[j].key = kh_val(d, k).id; - fmt[j].is_gt = !strcmp(t, "GT"); - fmt[j].y = h->id[0][fmt[j].key].val->info[BCF_HL_FMT]; - } - // compute max - int n_sample_ori = -1; - r = q + 1; // r: position in the format string - m = l = g = 1, v->n_sample = 0; // m: max vector size, l: max field len, g: max number of alleles - while ( rkeep_samples ) - { - n_sample_ori++; - if ( !bit_array_test(h->keep_samples,n_sample_ori) ) - { - while ( *r!='\t' && r=v->n_fmt ) - { - fprintf(stderr,"Incorrect number of FORMAT fields at %s:%d\n", h->id[BCF_DT_CTG][v->rid].key,v->pos+1); - exit(1); - } - } - else break; - } - else if ( *r== ',' ) m++; - else if ( fmt[j].is_gt && (*r == '|' || *r == '/') ) g++; - if ( r>=end ) break; - r++; l++; - } - v->n_sample++; - if ( v->n_sample == bcf_hdr_nsamples(h) ) break; - r++; - } - - // allocate memory for arrays - for (j = 0; j < v->n_fmt; ++j) { - fmt_aux_t *f = &fmt[j]; - if ( !f->max_m ) f->max_m = 1; // omitted trailing format field - if ((f->y>>4&0xf) == BCF_HT_STR) { - f->size = f->is_gt? f->max_g << 2 : f->max_l; - } else if ((f->y>>4&0xf) == BCF_HT_REAL || (f->y>>4&0xf) == BCF_HT_INT) { - f->size = f->max_m << 2; - } else - { - fprintf(stderr, "[E::%s] the format type %d currently not supported\n", __func__, f->y>>4&0xf); - abort(); // I do not know how to do with Flag in the genotype fields - } - align_mem(mem); - f->offset = mem->l; - ks_resize(mem, mem->l + v->n_sample * f->size); - mem->l += v->n_sample * f->size; - } - for (j = 0; j < v->n_fmt; ++j) - fmt[j].buf = (uint8_t*)mem->s + fmt[j].offset; - // fill the sample fields; at beginning of the loop, t points to the first char of a format - n_sample_ori = -1; - t = q + 1; m = 0; // m: sample id - while ( tkeep_samples ) - { - n_sample_ori++; - if ( !bit_array_test(h->keep_samples,n_sample_ori) ) - { - while ( *t && ty>>4&0xf) == BCF_HT_STR) { - if (z->is_gt) { // genotypes - int32_t is_phased = 0, *x = (int32_t*)(z->buf + z->size * m); - for (l = 0;; ++t) { - if (*t == '.') ++t, x[l++] = is_phased; - else x[l++] = (strtol(t, &t, 10) + 1) << 1 | is_phased; -#if THOROUGH_SANITY_CHECKS - assert( 0 ); // success of strtol,strtod not checked -#endif - is_phased = (*t == '|'); - if (*t == ':' || *t == 0) break; - } - if ( !l ) x[l++] = 0; // An empty field, insert missing value - for (; l < z->size>>2; ++l) x[l] = bcf_int32_vector_end; - } else { - char *x = (char*)z->buf + z->size * m; - for (r = t, l = 0; *t != ':' && *t; ++t) x[l++] = *t; - for (; l < z->size; ++l) x[l] = 0; - } - } else if ((z->y>>4&0xf) == BCF_HT_INT) { - int32_t *x = (int32_t*)(z->buf + z->size * m); - for (l = 0;; ++t) { - if (*t == '.') x[l++] = bcf_int32_missing, ++t; // ++t to skip "." - else x[l++] = strtol(t, &t, 10); - if (*t == ':' || *t == 0) break; - } - if ( !l ) x[l++] = bcf_int32_missing; - for (; l < z->size>>2; ++l) x[l] = bcf_int32_vector_end; - } else if ((z->y>>4&0xf) == BCF_HT_REAL) { - float *x = (float*)(z->buf + z->size * m); - for (l = 0;; ++t) { - if (*t == '.' && !isdigit(t[1])) bcf_float_set_missing(x[l++]), ++t; // ++t to skip "." - else x[l++] = strtod(t, &t); - if (*t == ':' || *t == 0) break; - } - if ( !l ) bcf_float_set_missing(x[l++]); // An empty field, insert missing value - for (; l < z->size>>2; ++l) bcf_float_set_vector_end(x[l]); - } else abort(); - if (*t == 0) { - for (++j; j < v->n_fmt; ++j) { // fill end-of-vector values - z = &fmt[j]; - if ((z->y>>4&0xf) == BCF_HT_STR) { - if (z->is_gt) { - int32_t *x = (int32_t*)(z->buf + z->size * m); - x[0] = bcf_int32_missing; - for (l = 1; l < z->size>>2; ++l) x[l] = bcf_int32_vector_end; - } else { - char *x = (char*)z->buf + z->size * m; - if ( z->size ) x[0] = '.'; - for (l = 1; l < z->size; ++l) x[l] = 0; - } - } else if ((z->y>>4&0xf) == BCF_HT_INT) { - int32_t *x = (int32_t*)(z->buf + z->size * m); - x[0] = bcf_int32_missing; - for (l = 1; l < z->size>>2; ++l) x[l] = bcf_int32_vector_end; - } else if ((z->y>>4&0xf) == BCF_HT_REAL) { - float *x = (float*)(z->buf + z->size * m); - bcf_float_set_missing(x[0]); - for (l = 1; l < z->size>>2; ++l) bcf_float_set_vector_end(x[l]); - } - } - break; - } - else - { - if (*t == ':') ++j; - t++; - } - } - m++; t++; - } - - // write individual genotype information - kstring_t *str = &v->indiv; - int i; - if (v->n_sample > 0) { - for (i = 0; i < v->n_fmt; ++i) { - fmt_aux_t *z = &fmt[i]; - bcf_enc_int1(str, z->key); - if ((z->y>>4&0xf) == BCF_HT_STR && !z->is_gt) { - bcf_enc_size(str, z->size, BCF_BT_CHAR); - kputsn((char*)z->buf, z->size * v->n_sample, str); - } else if ((z->y>>4&0xf) == BCF_HT_INT || z->is_gt) { - bcf_enc_vint(str, (z->size>>2) * v->n_sample, (int32_t*)z->buf, z->size>>2); - } else { - bcf_enc_size(str, z->size>>2, BCF_BT_FLOAT); - kputsn((char*)z->buf, z->size * v->n_sample, str); - } - } - } - - if ( v->n_sample!=bcf_hdr_nsamples(h) ) - { - fprintf(stderr,"[%s:%d %s] Number of columns at %s:%d does not match the number of samples (%d vs %d).\n", - __FILE__,__LINE__,__FUNCTION__,bcf_seqname(h,v),v->pos+1, v->n_sample,bcf_hdr_nsamples(h)); - v->errcode |= BCF_ERR_NCOLS; - return -1; - } - - return 0; -} - -int vcf_parse(kstring_t *s, const bcf_hdr_t *h, bcf1_t *v) -{ - int i = 0; - char *p, *q, *r, *t; - kstring_t *str; - khint_t k; - ks_tokaux_t aux; - - bcf_clear1(v); - str = &v->shared; - memset(&aux, 0, sizeof(ks_tokaux_t)); - for (p = kstrtok(s->s, "\t", &aux), i = 0; p; p = kstrtok(0, 0, &aux), ++i) { - q = (char*)aux.p; - *q = 0; - if (i == 0) { // CHROM - vdict_t *d = (vdict_t*)h->dict[BCF_DT_CTG]; - k = kh_get(vdict, d, p); - if (k == kh_end(d)) - { - // Simple error recovery for chromosomes not defined in the header. It will not help when VCF header has - // been already printed, but will enable tools like vcfcheck to proceed. - fprintf(stderr, "[W::%s] contig '%s' is not defined in the header. (Quick workaround: index the file with tabix.)\n", __func__, p); - kstring_t tmp = {0,0,0}; - int l; - ksprintf(&tmp, "##contig=", p); - bcf_hrec_t *hrec = bcf_hdr_parse_line(h,tmp.s,&l); - free(tmp.s); - if ( bcf_hdr_add_hrec((bcf_hdr_t*)h, hrec) ) bcf_hdr_sync((bcf_hdr_t*)h); - k = kh_get(vdict, d, p); - v->errcode = BCF_ERR_CTG_UNDEF; - } - v->rid = kh_val(d, k).id; - } else if (i == 1) { // POS - v->pos = atoi(p) - 1; - } else if (i == 2) { // ID - if (strcmp(p, ".")) bcf_enc_vchar(str, q - p, p); - else bcf_enc_size(str, 0, BCF_BT_CHAR); - } else if (i == 3) { // REF - bcf_enc_vchar(str, q - p, p); - v->n_allele = 1, v->rlen = q - p; - } else if (i == 4) { // ALT - if (strcmp(p, ".")) { - for (r = t = p;; ++r) { - if (*r == ',' || *r == 0) { - bcf_enc_vchar(str, r - t, t); - t = r + 1; - ++v->n_allele; - } - if (r == q) break; - } - } - } else if (i == 5) { // QUAL - if (strcmp(p, ".")) v->qual = atof(p); - else memcpy(&v->qual, &bcf_float_missing, 4); - if ( v->max_unpack && !(v->max_unpack>>1) ) return 0; // BCF_UN_STR - } else if (i == 6) { // FILTER - if (strcmp(p, ".")) { - int32_t *a; - int n_flt = 1, i; - ks_tokaux_t aux1; - vdict_t *d = (vdict_t*)h->dict[BCF_DT_ID]; - // count the number of filters - if (*(q-1) == ';') *(q-1) = 0; - for (r = p; *r; ++r) - if (*r == ';') ++n_flt; - a = (int32_t*)alloca(n_flt * sizeof(int32_t)); - // add filters - for (t = kstrtok(p, ";", &aux1), i = 0; t; t = kstrtok(0, 0, &aux1)) { - *(char*)aux1.p = 0; - k = kh_get(vdict, d, t); - if (k == kh_end(d)) - { - // Simple error recovery for FILTERs not defined in the header. It will not help when VCF header has - // been already printed, but will enable tools like vcfcheck to proceed. - fprintf(stderr, "[W::%s] FILTER '%s' is not defined in the header\n", __func__, t); - kstring_t tmp = {0,0,0}; - int l; - ksprintf(&tmp, "##FILTER=", t); - bcf_hrec_t *hrec = bcf_hdr_parse_line(h,tmp.s,&l); - free(tmp.s); - if ( bcf_hdr_add_hrec((bcf_hdr_t*)h, hrec) ) bcf_hdr_sync((bcf_hdr_t*)h); - k = kh_get(vdict, d, t); - v->errcode = BCF_ERR_TAG_UNDEF; - } - a[i++] = kh_val(d, k).id; - } - n_flt = i; - bcf_enc_vint(str, n_flt, a, -1); - } else bcf_enc_vint(str, 0, 0, -1); - if ( v->max_unpack && !(v->max_unpack>>2) ) return 0; // BCF_UN_FLT - } else if (i == 7) { // INFO - char *key; - vdict_t *d = (vdict_t*)h->dict[BCF_DT_ID]; - v->n_info = 0; - if (strcmp(p, ".")) { - if (*(q-1) == ';') *(q-1) = 0; - for (r = key = p;; ++r) { - int c; - char *val, *end; - if (*r != ';' && *r != '=' && *r != 0) continue; - val = end = 0; - c = *r; *r = 0; - if (c == '=') { - val = r + 1; - for (end = val; *end != ';' && *end != 0; ++end); - c = *end; *end = 0; - } else end = r; - if ( !*key ) { if (c==0) break; r = end; key = r + 1; continue; } // faulty VCF, ";;" in the INFO - k = kh_get(vdict, d, key); - if (k == kh_end(d) || kh_val(d, k).info[BCF_HL_INFO] == 15) - { - fprintf(stderr, "[W::%s] INFO '%s' is not defined in the header, assuming Type=String\n", __func__, key); - kstring_t tmp = {0,0,0}; - int l; - ksprintf(&tmp, "##INFO=", key); - bcf_hrec_t *hrec = bcf_hdr_parse_line(h,tmp.s,&l); - free(tmp.s); - if ( bcf_hdr_add_hrec((bcf_hdr_t*)h, hrec) ) bcf_hdr_sync((bcf_hdr_t*)h); - k = kh_get(vdict, d, key); - v->errcode = BCF_ERR_TAG_UNDEF; - } - uint32_t y = kh_val(d, k).info[BCF_HL_INFO]; - ++v->n_info; - bcf_enc_int1(str, kh_val(d, k).id); - if (val == 0) { - bcf_enc_size(str, 0, BCF_BT_NULL); - } else if ((y>>4&0xf) == BCF_HT_FLAG || (y>>4&0xf) == BCF_HT_STR) { // if Flag has a value, treat it as a string - bcf_enc_vchar(str, end - val, val); - } else { // int/float value/array - int i, n_val; - char *t, *te; - for (t = val, n_val = 1; *t; ++t) // count the number of values - if (*t == ',') ++n_val; - if ((y>>4&0xf) == BCF_HT_INT) { - int32_t *z; - z = (int32_t*)alloca(n_val * sizeof(int32_t)); - for (i = 0, t = val; i < n_val; ++i, ++t) - { - z[i] = strtol(t, &te, 10); - if ( te==t ) // conversion failed - { - z[i] = bcf_int32_missing; - while ( *te && *te!=',' ) te++; - } - t = te; - } - bcf_enc_vint(str, n_val, z, -1); - if (strcmp(key, "END") == 0) v->rlen = z[0] - v->pos; - } else if ((y>>4&0xf) == BCF_HT_REAL) { - float *z; - z = (float*)alloca(n_val * sizeof(float)); - for (i = 0, t = val; i < n_val; ++i, ++t) - { - z[i] = strtod(t, &te); - if ( te==t ) // conversion failed - { - bcf_float_set_missing(z[i]); - while ( *te && *te!=',' ) te++; - } - t = te; - } - bcf_enc_vfloat(str, n_val, z); - } - } - if (c == 0) break; - r = end; - key = r + 1; - } - } - if ( v->max_unpack && !(v->max_unpack>>3) ) return 0; - } else if (i == 8) // FORMAT - return _vcf_parse_format(s, h, v, p, q); - } - return 0; -} - -int vcf_read(htsFile *fp, const bcf_hdr_t *h, bcf1_t *v) -{ - int ret; - ret = hts_getline(fp, KS_SEP_LINE, &fp->line); - if (ret < 0) return -1; - return vcf_parse1(&fp->line, h, v); -} - -static inline uint8_t *bcf_unpack_fmt_core1(uint8_t *ptr, int n_sample, bcf_fmt_t *fmt) -{ - uint8_t *ptr_start = ptr; - fmt->id = bcf_dec_typed_int1(ptr, &ptr); - fmt->n = bcf_dec_size(ptr, &ptr, &fmt->type); - fmt->size = fmt->n << bcf_type_shift[fmt->type]; - fmt->p = ptr; - fmt->p_off = ptr - ptr_start; - fmt->p_free = 0; - ptr += n_sample * fmt->size; - fmt->p_len = ptr - fmt->p; - return ptr; -} - -static inline uint8_t *bcf_unpack_info_core1(uint8_t *ptr, bcf_info_t *info) -{ - uint8_t *ptr_start = ptr; - info->key = bcf_dec_typed_int1(ptr, &ptr); - info->len = bcf_dec_size(ptr, &ptr, &info->type); - info->vptr = ptr; - info->vptr_off = ptr - ptr_start; - info->vptr_free = 0; - info->v1.i = 0; - if (info->len == 1) { - if (info->type == BCF_BT_INT8 || info->type == BCF_BT_CHAR) info->v1.i = *(int8_t*)ptr; - else if (info->type == BCF_BT_INT32) info->v1.i = *(int32_t*)ptr; - else if (info->type == BCF_BT_FLOAT) info->v1.f = *(float*)ptr; - else if (info->type == BCF_BT_INT16) info->v1.i = *(int16_t*)ptr; - } - ptr += info->len << bcf_type_shift[info->type]; - info->vptr_len = ptr - info->vptr; - return ptr; -} - -int bcf_unpack(bcf1_t *b, int which) -{ - if ( !b->shared.l ) return 0; // Building a new BCF record from scratch - uint8_t *ptr = (uint8_t*)b->shared.s, *ptr_ori; - int *offset, i; - bcf_dec_t *d = &b->d; - if (which & BCF_UN_FLT) which |= BCF_UN_STR; - if (which & BCF_UN_INFO) which |= BCF_UN_SHR; - if ((which&BCF_UN_STR) && !(b->unpacked&BCF_UN_STR)) - { - kstring_t tmp; - - // ID - tmp.l = 0; tmp.s = d->id; tmp.m = d->m_id; - ptr_ori = ptr; - ptr = bcf_fmt_sized_array(&tmp, ptr); - b->unpack_size[0] = ptr - ptr_ori; - kputc('\0', &tmp); - d->id = tmp.s; d->m_id = tmp.m; - - // REF and ALT are in a single block (d->als) and d->alleles are pointers into this block - tmp.l = 0; tmp.s = d->als; tmp.m = d->m_als; - offset = (int*)alloca(b->n_allele * sizeof(int)); - ptr_ori = ptr; - for (i = 0; i < b->n_allele; ++i) { - offset[i] = tmp.l; - ptr = bcf_fmt_sized_array(&tmp, ptr); - kputc('\0', &tmp); - } - b->unpack_size[1] = ptr - ptr_ori; - d->als = tmp.s; d->m_als = tmp.m; - - hts_expand(char*, b->n_allele, d->m_allele, d->allele); // NM: hts_expand() is a macro - for (i = 0; i < b->n_allele; ++i) - d->allele[i] = d->als + offset[i]; - b->unpacked |= BCF_UN_STR; - } - if ((which&BCF_UN_FLT) && !(b->unpacked&BCF_UN_FLT)) { // FILTER - ptr = (uint8_t*)b->shared.s + b->unpack_size[0] + b->unpack_size[1]; - ptr_ori = ptr; - if (*ptr>>4) { - int type; - d->n_flt = bcf_dec_size(ptr, &ptr, &type); - hts_expand(int, d->n_flt, d->m_flt, d->flt); - for (i = 0; i < d->n_flt; ++i) - d->flt[i] = bcf_dec_int1(ptr, type, &ptr); - } else ++ptr, d->n_flt = 0; - b->unpack_size[2] = ptr - ptr_ori; - b->unpacked |= BCF_UN_FLT; - } - if ((which&BCF_UN_INFO) && !(b->unpacked&BCF_UN_INFO)) { // INFO - ptr = (uint8_t*)b->shared.s + b->unpack_size[0] + b->unpack_size[1] + b->unpack_size[2]; - hts_expand(bcf_info_t, b->n_info, d->m_info, d->info); - for (i = 0; i < d->m_info; ++i) d->info[i].vptr_free = 0; - for (i = 0; i < b->n_info; ++i) - ptr = bcf_unpack_info_core1(ptr, &d->info[i]); - b->unpacked |= BCF_UN_INFO; - } - if ((which&BCF_UN_FMT) && b->n_sample && !(b->unpacked&BCF_UN_FMT)) { // FORMAT - ptr = (uint8_t*)b->indiv.s; - hts_expand(bcf_fmt_t, b->n_fmt, d->m_fmt, d->fmt); - for (i = 0; i < d->m_fmt; ++i) d->fmt[i].p_free = 0; - for (i = 0; i < b->n_fmt; ++i) - ptr = bcf_unpack_fmt_core1(ptr, b->n_sample, &d->fmt[i]); - b->unpacked |= BCF_UN_FMT; - } - return 0; -} - -int vcf_format(const bcf_hdr_t *h, const bcf1_t *v, kstring_t *s) -{ - int i; - bcf_unpack((bcf1_t*)v, BCF_UN_ALL); - kputs(h->id[BCF_DT_CTG][v->rid].key, s); // CHROM - kputc('\t', s); kputw(v->pos + 1, s); // POS - kputc('\t', s); kputs(v->d.id ? v->d.id : ".", s); // ID - kputc('\t', s); // REF - if (v->n_allele > 0) kputs(v->d.allele[0], s); - else kputc('.', s); - kputc('\t', s); // ALT - if (v->n_allele > 1) { - for (i = 1; i < v->n_allele; ++i) { - if (i > 1) kputc(',', s); - kputs(v->d.allele[i], s); - } - } else kputc('.', s); - kputc('\t', s); // QUAL - if ( bcf_float_is_missing(v->qual) ) kputc('.', s); // QUAL - else ksprintf(s, "%g", v->qual); - kputc('\t', s); // FILTER - if (v->d.n_flt) { - for (i = 0; i < v->d.n_flt; ++i) { - if (i) kputc(';', s); - kputs(h->id[BCF_DT_ID][v->d.flt[i]].key, s); - } - } else kputc('.', s); - kputc('\t', s); // INFO - if (v->n_info) { - int first = 1; - for (i = 0; i < v->n_info; ++i) { - bcf_info_t *z = &v->d.info[i]; - if ( !z->vptr ) continue; - if ( !first ) kputc(';', s); first = 0; - kputs(h->id[BCF_DT_ID][z->key].key, s); - if (z->len <= 0) continue; - kputc('=', s); - if (z->len == 1) - { - switch (z->type) - { - case BCF_BT_INT8: if ( z->v1.i==bcf_int8_missing ) kputc('.', s); else kputw(z->v1.i, s); break; - case BCF_BT_INT16: if ( z->v1.i==bcf_int16_missing ) kputc('.', s); else kputw(z->v1.i, s); break; - case BCF_BT_INT32: if ( z->v1.i==bcf_int32_missing ) kputc('.', s); else kputw(z->v1.i, s); break; - case BCF_BT_FLOAT: if ( bcf_float_is_missing(z->v1.f) ) kputc('.', s); else ksprintf(s, "%g", z->v1.f); break; - case BCF_BT_CHAR: kputc(z->v1.i, s); break; - default: fprintf(stderr,"todo: type %d\n", z->type); exit(1); break; - } - } - else bcf_fmt_array(s, z->len, z->type, z->vptr); - } - if ( first ) kputc('.', s); - } else kputc('.', s); - // FORMAT and individual information - if (v->n_sample) - { - int i,j; - if ( v->n_fmt) - { - int gt_i = -1; - bcf_fmt_t *fmt = v->d.fmt; - int first = 1; - for (i = 0; i < (int)v->n_fmt; ++i) { - if ( !fmt[i].p ) continue; - kputc(!first ? ':' : '\t', s); first = 0; - if ( fmt[i].id<0 ) //!bcf_hdr_idinfo_exists(h,BCF_HL_FMT,fmt[i].id) ) - { - fprintf(stderr, "[E::%s] invalid BCF, the FORMAT tag id=%d not present in the header.\n", __func__, fmt[i].id); - abort(); - } - kputs(h->id[BCF_DT_ID][fmt[i].id].key, s); - if (strcmp(h->id[BCF_DT_ID][fmt[i].id].key, "GT") == 0) gt_i = i; - } - if ( first ) kputs("\t.", s); - for (j = 0; j < v->n_sample; ++j) { - kputc('\t', s); - first = 1; - for (i = 0; i < (int)v->n_fmt; ++i) { - bcf_fmt_t *f = &fmt[i]; - if ( !f->p ) continue; - if (!first) kputc(':', s); first = 0; - if (gt_i == i) - bcf_format_gt(f,j,s); - else - bcf_fmt_array(s, f->n, f->type, f->p + j * f->size); - } - if ( first ) kputc('.', s); - } - } - else - for (j=0; j<=v->n_sample; j++) - kputs("\t.", s); - } - kputc('\n', s); - return 0; -} - -int vcf_write_line(htsFile *fp, kstring_t *line) -{ - int ret; - if ( line->s[line->l-1]!='\n' ) kputc('\n',line); - if ( fp->format.compression!=no_compression ) - ret = bgzf_write(fp->fp.bgzf, line->s, line->l); - else - ret = hwrite(fp->fp.hfile, line->s, line->l); - return ret==line->l ? 0 : -1; -} - -int vcf_write(htsFile *fp, const bcf_hdr_t *h, bcf1_t *v) -{ - int ret; - fp->line.l = 0; - vcf_format1(h, v, &fp->line); - if ( fp->format.compression!=no_compression ) - ret = bgzf_write(fp->fp.bgzf, fp->line.s, fp->line.l); - else - ret = hwrite(fp->fp.hfile, fp->line.s, fp->line.l); - return ret==fp->line.l ? 0 : -1; -} - -/************************ - * Data access routines * - ************************/ - -int bcf_hdr_id2int(const bcf_hdr_t *h, int which, const char *id) -{ - khint_t k; - vdict_t *d = (vdict_t*)h->dict[which]; - k = kh_get(vdict, d, id); - return k == kh_end(d)? -1 : kh_val(d, k).id; -} - - -/******************** - *** BCF indexing *** - ********************/ - -hts_idx_t *bcf_index(htsFile *fp, int min_shift) -{ - int n_lvls, i; - bcf1_t *b; - hts_idx_t *idx; - bcf_hdr_t *h; - int64_t max_len = 0, s; - h = bcf_hdr_read(fp); - if ( !h ) return NULL; - int nids = 0; - for (i = 0; i < h->n[BCF_DT_CTG]; ++i) - { - if ( !h->id[BCF_DT_CTG][i].val ) continue; - if ( max_len < h->id[BCF_DT_CTG][i].val->info[0] ) max_len = h->id[BCF_DT_CTG][i].val->info[0]; - nids++; - } - if ( !max_len ) max_len = ((int64_t)1<<31) - 1; // In case contig line is broken. - max_len += 256; - for (n_lvls = 0, s = 1< s; ++n_lvls, s <<= 3); - idx = hts_idx_init(nids, HTS_FMT_CSI, bgzf_tell(fp->fp.bgzf), min_shift, n_lvls); - b = bcf_init1(); - while (bcf_read1(fp,h, b) >= 0) { - int ret; - ret = hts_idx_push(idx, b->rid, b->pos, b->pos + b->rlen, bgzf_tell(fp->fp.bgzf), 1); - if (ret < 0) - { - bcf_destroy1(b); - hts_idx_destroy(idx); - return NULL; - } - } - hts_idx_finish(idx, bgzf_tell(fp->fp.bgzf)); - bcf_destroy1(b); - bcf_hdr_destroy(h); - return idx; -} - -int bcf_index_build(const char *fn, int min_shift) -{ - htsFile *fp; - hts_idx_t *idx; - if ((fp = hts_open(fn, "rb")) == 0) return -1; - if ( fp->format.compression!=bgzf ) { hts_close(fp); return -1; } - idx = bcf_index(fp, min_shift); - hts_close(fp); - if ( !idx ) return -1; - hts_idx_save(idx, fn, HTS_FMT_CSI); - hts_idx_destroy(idx); - return 0; -} - -/***************** - *** Utilities *** - *****************/ - -int bcf_hdr_combine(bcf_hdr_t *dst, const bcf_hdr_t *src) -{ - int i, ndst_ori = dst->nhrec, need_sync = 0, ret = 0; - for (i=0; inhrec; i++) - { - if ( src->hrec[i]->type==BCF_HL_GEN && src->hrec[i]->value ) - { - int j; - for (j=0; jhrec[j]->type!=BCF_HL_GEN ) continue; - - // Checking only the key part of generic lines, otherwise - // the VCFs are too verbose. Should we perhaps add a flag - // to bcf_hdr_combine() and make this optional? - if ( !strcmp(src->hrec[i]->key,dst->hrec[j]->key) ) break; - } - if ( j>=ndst_ori ) - need_sync += bcf_hdr_add_hrec(dst, bcf_hrec_dup(src->hrec[i])); - } - else if ( src->hrec[i]->type==BCF_HL_STR ) - { - // NB: we are ignoring fields without ID - int j = bcf_hrec_find_key(src->hrec[i],"ID"); - if ( j>=0 ) - { - bcf_hrec_t *rec = bcf_hdr_get_hrec(dst, src->hrec[i]->type, "ID", src->hrec[i]->vals[j], src->hrec[i]->key); - if ( !rec ) - need_sync += bcf_hdr_add_hrec(dst, bcf_hrec_dup(src->hrec[i])); - } - } - else - { - int j = bcf_hrec_find_key(src->hrec[i],"ID"); - assert( j>=0 ); // this should always be true for valid VCFs - - bcf_hrec_t *rec = bcf_hdr_get_hrec(dst, src->hrec[i]->type, "ID", src->hrec[i]->vals[j], NULL); - if ( !rec ) - need_sync += bcf_hdr_add_hrec(dst, bcf_hrec_dup(src->hrec[i])); - else if ( src->hrec[i]->type==BCF_HL_INFO || src->hrec[i]->type==BCF_HL_FMT ) - { - // Check that both records are of the same type. The bcf_hdr_id2length - // macro cannot be used here because dst header is not synced yet. - vdict_t *d_src = (vdict_t*)src->dict[BCF_DT_ID]; - vdict_t *d_dst = (vdict_t*)dst->dict[BCF_DT_ID]; - khint_t k_src = kh_get(vdict, d_src, src->hrec[i]->vals[0]); - khint_t k_dst = kh_get(vdict, d_dst, src->hrec[i]->vals[0]); - if ( (kh_val(d_src,k_src).info[rec->type]>>8 & 0xf) != (kh_val(d_dst,k_dst).info[rec->type]>>8 & 0xf) ) - { - fprintf(stderr,"Warning: trying to combine \"%s\" tag definitions of different lengths\n", src->hrec[i]->vals[0]); - ret |= 1; - } - if ( (kh_val(d_src,k_src).info[rec->type]>>4 & 0xf) != (kh_val(d_dst,k_dst).info[rec->type]>>4 & 0xf) ) - { - fprintf(stderr,"Warning: trying to combine \"%s\" tag definitions of different types\n", src->hrec[i]->vals[0]); - ret |= 1; - } - } - } - } - if ( need_sync ) bcf_hdr_sync(dst); - return ret; -} -int bcf_translate(const bcf_hdr_t *dst_hdr, bcf_hdr_t *src_hdr, bcf1_t *line) -{ - int i; - if ( line->errcode ) - { - fprintf(stderr,"[%s:%d %s] Unchecked error (%d), exiting.\n", __FILE__,__LINE__,__FUNCTION__,line->errcode); - exit(1); - } - if ( src_hdr->ntransl==-1 ) return 0; // no need to translate, all tags have the same id - if ( !src_hdr->ntransl ) // called for the first time, see what needs translating - { - int dict; - for (dict=0; dict<2; dict++) // BCF_DT_ID and BCF_DT_CTG - { - src_hdr->transl[dict] = (int*) malloc(src_hdr->n[dict]*sizeof(int)); - for (i=0; in[dict]; i++) - { - if ( !src_hdr->id[dict][i].key || !dst_hdr->id[dict][i].key ) // gap left after removed BCF header lines - src_hdr->transl[dict][i] = -1; - else if ( i>=dst_hdr->n[dict] || strcmp(src_hdr->id[dict][i].key,dst_hdr->id[dict][i].key) ) - { - src_hdr->transl[dict][i] = bcf_hdr_id2int(dst_hdr,dict,src_hdr->id[dict][i].key); - src_hdr->ntransl++; - } - else - src_hdr->transl[dict][i] = -1; - } - } - if ( !src_hdr->ntransl ) - { - free(src_hdr->transl[0]); src_hdr->transl[0] = NULL; - free(src_hdr->transl[1]); src_hdr->transl[1] = NULL; - src_hdr->ntransl = -1; - } - if ( src_hdr->ntransl==-1 ) return 0; - } - bcf_unpack(line,BCF_UN_ALL); - - // CHROM - if ( src_hdr->transl[BCF_DT_CTG][line->rid] >=0 ) line->rid = src_hdr->transl[BCF_DT_CTG][line->rid]; - - // FILTER - for (i=0; id.n_flt; i++) - { - int src_id = line->d.flt[i]; - if ( src_hdr->transl[BCF_DT_ID][src_id] >=0 ) - line->d.flt[i] = src_hdr->transl[BCF_DT_ID][src_id]; - line->d.shared_dirty |= BCF1_DIRTY_FLT; - } - - // INFO - for (i=0; in_info; i++) - { - int src_id = line->d.info[i].key; - int dst_id = src_hdr->transl[BCF_DT_ID][src_id]; - if ( dst_id<0 ) continue; - int src_size = src_id>>7 ? ( src_id>>15 ? BCF_BT_INT32 : BCF_BT_INT16) : BCF_BT_INT8; - int dst_size = dst_id>>7 ? ( dst_id>>15 ? BCF_BT_INT32 : BCF_BT_INT16) : BCF_BT_INT8; - if ( src_size==dst_size ) // can overwrite - { - line->d.info[i].key = dst_id; - uint8_t *vptr = line->d.info[i].vptr - line->d.info[i].vptr_off; - if ( dst_size==BCF_BT_INT8 ) { vptr[1] = (uint8_t)dst_id; } - else if ( dst_size==BCF_BT_INT16 ) { *(uint16_t*)vptr = (uint16_t)dst_id; } - else { *(uint32_t*)vptr = (uint32_t)dst_id; } - } - else // must realloc - { - bcf_info_t *info = &line->d.info[i]; - assert( !info->vptr_free ); - kstring_t str = {0,0,0}; - bcf_enc_int1(&str, dst_id); - bcf_enc_size(&str, info->len,info->type); - info->vptr_off = str.l; - kputsn((char*)info->vptr, info->vptr_len, &str); - info->vptr = (uint8_t*)str.s + info->vptr_off; - info->vptr_free = 1; - info->key = dst_id; - line->d.shared_dirty |= BCF1_DIRTY_INF; - } - } - - // FORMAT - for (i=0; in_fmt; i++) - { - int src_id = line->d.fmt[i].id; - int dst_id = src_hdr->transl[BCF_DT_ID][src_id]; - if ( dst_id<0 ) continue; - int src_size = src_id>>7 ? ( src_id>>15 ? BCF_BT_INT32 : BCF_BT_INT16) : BCF_BT_INT8; - int dst_size = dst_id>>7 ? ( dst_id>>15 ? BCF_BT_INT32 : BCF_BT_INT16) : BCF_BT_INT8; - if ( src_size==dst_size ) // can overwrite - { - line->d.fmt[i].id = dst_id; - uint8_t *p = line->d.fmt[i].p - line->d.fmt[i].p_off; // pointer to the vector size (4bits) and BT type (4bits) - if ( dst_size==BCF_BT_INT8 ) { p[1] = dst_id; } - else if ( dst_size==BCF_BT_INT16 ) { uint8_t *x = (uint8_t*) &dst_id; p[1] = x[0]; p[2] = x[1]; } - else { uint8_t *x = (uint8_t*) &dst_id; p[1] = x[0]; p[2] = x[1]; p[3] = x[2]; p[4] = x[3]; } - } - else // must realloc - { - bcf_fmt_t *fmt = &line->d.fmt[i]; - assert( !fmt->p_free ); - kstring_t str = {0,0,0}; - bcf_enc_int1(&str, dst_id); - bcf_enc_size(&str, fmt->n, fmt->type); - fmt->p_off = str.l; - kputsn((char*)fmt->p, fmt->p_len, &str); - fmt->p = (uint8_t*)str.s + fmt->p_off; - fmt->p_free = 1; - fmt->id = dst_id; - line->d.indiv_dirty = 1; - } - } - return 0; -} - -bcf_hdr_t *bcf_hdr_dup(const bcf_hdr_t *hdr) -{ - bcf_hdr_t *hout = bcf_hdr_init("r"); - char *htxt = bcf_hdr_fmt_text(hdr, 1, NULL); - bcf_hdr_parse(hout, htxt); - free(htxt); - return hout; -} - -bcf_hdr_t *bcf_hdr_subset(const bcf_hdr_t *h0, int n, char *const* samples, int *imap) -{ - int hlen; - void *names_hash = khash_str2int_init(); - char *htxt = bcf_hdr_fmt_text(h0, 1, &hlen); - kstring_t str; - bcf_hdr_t *h; - str.l = str.m = 0; str.s = 0; - h = bcf_hdr_init("w"); - bcf_hdr_set_version(h,bcf_hdr_get_version(h0)); - int j; - for (j=0; j 0) { - char *p; - int i = 0, end = n? 8 : 7; - while ((p = strstr(htxt, "#CHROM\t")) != 0) - if (p > htxt && *(p-1) == '\n') break; - while ((p = strchr(p, '\t')) != 0 && i < end) ++i, ++p; - if (i != end) { - free(h); free(str.s); - return 0; // malformated header - } - kputsn(htxt, p - htxt, &str); - for (i = 0; i < n; ++i) { - if ( khash_str2int_has_key(names_hash,samples[i]) ) - { - fprintf(stderr,"[E::bcf_hdr_subset] Duplicate sample name \"%s\".\n", samples[i]); - free(str.s); - free(htxt); - khash_str2int_destroy(names_hash); - bcf_hdr_destroy(h); - return NULL; - } - imap[i] = bcf_hdr_id2int(h0, BCF_DT_SAMPLE, samples[i]); - if (imap[i] < 0) continue; - kputc('\t', &str); - kputs(samples[i], &str); - khash_str2int_inc(names_hash,samples[i]); - } - } else kputsn(htxt, hlen, &str); - while (str.l && (!str.s[str.l-1] || str.s[str.l-1]=='\n') ) str.l--; // kill trailing zeros and newlines - kputc('\n',&str); - bcf_hdr_parse(h, str.s); - free(str.s); - free(htxt); - khash_str2int_destroy(names_hash); - return h; -} - -int bcf_hdr_set_samples(bcf_hdr_t *hdr, const char *samples, int is_file) -{ - if ( samples && !strcmp("-",samples) ) return 0; // keep all samples - - hdr->nsamples_ori = bcf_hdr_nsamples(hdr); - if ( !samples ) { bcf_hdr_nsamples(hdr) = 0; return 0; } // exclude all samples - - int i, narr = bit_array_size(bcf_hdr_nsamples(hdr)); - hdr->keep_samples = (uint8_t*) calloc(narr,1); - if ( samples[0]=='^' ) - for (i=0; ikeep_samples,i); - - int idx, n, ret = 0; - char **smpls = hts_readlist(samples[0]=='^'?samples+1:samples, is_file, &n); - if ( !smpls ) return -1; - for (i=0; ikeep_samples, idx); - else - bit_array_set(hdr->keep_samples, idx); - } - for (i=0; insamples_ori; i++) - if ( bit_array_test(hdr->keep_samples,i) ) bcf_hdr_nsamples(hdr)++; - if ( !bcf_hdr_nsamples(hdr) ) { free(hdr->keep_samples); hdr->keep_samples=NULL; } - else - { - char **samples = (char**) malloc(sizeof(char*)*bcf_hdr_nsamples(hdr)); - idx = 0; - for (i=0; insamples_ori; i++) - if ( bit_array_test(hdr->keep_samples,i) ) samples[idx++] = strdup(hdr->samples[i]); - free(hdr->samples); - hdr->samples = samples; - - // delete original samples from the dictionary - vdict_t *d = (vdict_t*)hdr->dict[BCF_DT_SAMPLE]; - int k; - for (k = kh_begin(d); k != kh_end(d); ++k) - if (kh_exist(d, k)) free((char*)kh_key(d, k)); - kh_destroy(vdict, d); - - // add the subset back - hdr->dict[BCF_DT_SAMPLE] = d = kh_init(vdict); - for (i=0; isamples[i], &ignore); - kh_val(d, k) = bcf_idinfo_def; - kh_val(d, k).id = kh_size(d) - 1; - } - bcf_hdr_sync(hdr); - } - - return ret; -} - -int bcf_subset(const bcf_hdr_t *h, bcf1_t *v, int n, int *imap) -{ - kstring_t ind; - ind.s = 0; ind.l = ind.m = 0; - if (n) { - bcf_fmt_t *fmt; - int i, j; - fmt = (bcf_fmt_t*)alloca(v->n_fmt * sizeof(bcf_fmt_t)); - uint8_t *ptr = (uint8_t*)v->indiv.s; - for (i = 0; i < v->n_fmt; ++i) - ptr = bcf_unpack_fmt_core1(ptr, v->n_sample, &fmt[i]); - for (i = 0; i < (int)v->n_fmt; ++i) { - bcf_fmt_t *f = &fmt[i]; - bcf_enc_int1(&ind, f->id); - bcf_enc_size(&ind, f->n, f->type); - for (j = 0; j < n; ++j) - if (imap[j] >= 0) kputsn((char*)(f->p + imap[j] * f->size), f->size, &ind); - } - for (i = j = 0; j < n; ++j) if (imap[j] >= 0) ++i; - v->n_sample = i; - } else v->n_sample = 0; - if ( !v->n_sample ) v->n_fmt = 0; - free(v->indiv.s); - v->indiv = ind; - v->unpacked &= ~BCF_UN_FMT; // only BCF is ready for output, VCF will need to unpack again - return 0; -} - -int bcf_is_snp(bcf1_t *v) -{ - int i; - bcf_unpack(v, BCF_UN_STR); - for (i = 0; i < v->n_allele; ++i) - { - if ( v->d.allele[i][1]==0 ) continue; - - // mpileup's allele, see also below. This is not completely satisfactory, - // a general library is here narrowly tailored to fit samtools. - if ( v->d.allele[i][0]=='<' && v->d.allele[i][1]=='X' && v->d.allele[i][2]=='>' ) continue; - - break; - } - return i == v->n_allele; -} - -static void bcf_set_variant_type(const char *ref, const char *alt, variant_t *var) -{ - // The most frequent case - if ( !ref[1] && !alt[1] ) - { - if ( *alt == '.' || *ref==*alt ) { var->n = 0; var->type = VCF_REF; return; } - if ( *alt == 'X' ) { var->n = 0; var->type = VCF_REF; return; } // mpileup's X allele shouldn't be treated as variant - var->n = 1; var->type = VCF_SNP; return; - } - if ( alt[0]=='<' ) - { - if ( alt[1]=='X' && alt[2]=='>' ) { var->n = 0; var->type = VCF_REF; return; } // mpileup's X allele shouldn't be treated as variant - var->type = VCF_OTHER; - return; - } - - const char *r = ref, *a = alt; - while (*r && *a && *r==*a ) { r++; a++; } - - if ( *a && !*r ) - { - while ( *a ) a++; - var->n = (a-alt)-(r-ref); var->type = VCF_INDEL; return; - } - else if ( *r && !*a ) - { - while ( *r ) r++; - var->n = (a-alt)-(r-ref); var->type = VCF_INDEL; return; - } - else if ( !*r && !*a ) - { - var->n = 0; var->type = VCF_REF; return; - } - - const char *re = r, *ae = a; - while ( re[1] ) re++; - while ( ae[1] ) ae++; - while ( *re==*ae && re>r && ae>a ) { re--; ae--; } - if ( ae==a ) - { - if ( re==r ) { var->n = 1; var->type = VCF_SNP; return; } - var->n = -(re-r); - if ( *re==*ae ) { var->type = VCF_INDEL; return; } - var->type = VCF_OTHER; return; - } - else if ( re==r ) - { - var->n = ae-a; - if ( *re==*ae ) { var->type = VCF_INDEL; return; } - var->type = VCF_OTHER; return; - } - - var->type = ( re-r == ae-a ) ? VCF_MNP : VCF_OTHER; - var->n = ( re-r > ae-a ) ? -(re-r+1) : ae-a+1; - - // should do also complex events, SVs, etc... -} - -static void bcf_set_variant_types(bcf1_t *b) -{ - if ( !(b->unpacked & BCF_UN_STR) ) bcf_unpack(b, BCF_UN_STR); - bcf_dec_t *d = &b->d; - if ( d->n_var < b->n_allele ) - { - d->var = (variant_t *) realloc(d->var, sizeof(variant_t)*b->n_allele); - d->n_var = b->n_allele; - } - int i; - b->d.var_type = 0; - for (i=1; in_allele; i++) - { - bcf_set_variant_type(d->allele[0],d->allele[i], &d->var[i]); - b->d.var_type |= d->var[i].type; - //fprintf(stderr,"[set_variant_type] %d %s %s -> %d %d .. %d\n", b->pos+1,d->allele[0],d->allele[i],d->var[i].type,d->var[i].n, b->d.var_type); - } -} - -int bcf_get_variant_types(bcf1_t *rec) -{ - if ( rec->d.var_type==-1 ) bcf_set_variant_types(rec); - return rec->d.var_type; -} -int bcf_get_variant_type(bcf1_t *rec, int ith_allele) -{ - if ( rec->d.var_type==-1 ) bcf_set_variant_types(rec); - return rec->d.var[ith_allele].type; -} - -int bcf_update_info(const bcf_hdr_t *hdr, bcf1_t *line, const char *key, const void *values, int n, int type) -{ - // Is the field already present? - int i, inf_id = bcf_hdr_id2int(hdr,BCF_DT_ID,key); - if ( !bcf_hdr_idinfo_exists(hdr,BCF_HL_INFO,inf_id) ) return -1; // No such INFO field in the header - if ( !(line->unpacked & BCF_UN_INFO) ) bcf_unpack(line, BCF_UN_INFO); - - for (i=0; in_info; i++) - if ( inf_id==line->d.info[i].key ) break; - bcf_info_t *inf = i==line->n_info ? NULL : &line->d.info[i]; - - if ( !n || (type==BCF_HT_STR && !values) ) - { - if ( inf ) - { - // Mark the tag for removal, free existing memory if necessary - if ( inf->vptr_free ) - { - free(inf->vptr - inf->vptr_off); - inf->vptr_free = 0; - } - line->d.shared_dirty |= BCF1_DIRTY_INF; - inf->vptr = NULL; - } - return 0; - } - - // Encode the values and determine the size required to accommodate the values - kstring_t str = {0,0,0}; - bcf_enc_int1(&str, inf_id); - if ( type==BCF_HT_INT ) - bcf_enc_vint(&str, n, (int32_t*)values, -1); - else if ( type==BCF_HT_REAL ) - bcf_enc_vfloat(&str, n, (float*)values); - else if ( type==BCF_HT_FLAG || type==BCF_HT_STR ) - { - if ( values==NULL ) - bcf_enc_size(&str, 0, BCF_BT_NULL); - else - bcf_enc_vchar(&str, strlen((char*)values), (char*)values); - } - else - { - fprintf(stderr, "[E::%s] the type %d not implemented yet\n", __func__, type); - abort(); - } - - // Is the INFO tag already present - if ( inf ) - { - // Is it big enough to accommodate new block? - if ( str.l <= inf->vptr_len + inf->vptr_off ) - { - if ( str.l != inf->vptr_len + inf->vptr_off ) line->d.shared_dirty |= BCF1_DIRTY_INF; - uint8_t *ptr = inf->vptr - inf->vptr_off; - memcpy(ptr, str.s, str.l); - free(str.s); - int vptr_free = inf->vptr_free; - bcf_unpack_info_core1(ptr, inf); - inf->vptr_free = vptr_free; - } - else - { - assert( !inf->vptr_free ); // fix the caller or improve here: this has been modified before - bcf_unpack_info_core1((uint8_t*)str.s, inf); - inf->vptr_free = 1; - line->d.shared_dirty |= BCF1_DIRTY_INF; - } - } - else - { - // The tag is not present, create new one - line->n_info++; - hts_expand0(bcf_info_t, line->n_info, line->d.m_info , line->d.info); - inf = &line->d.info[line->n_info-1]; - bcf_unpack_info_core1((uint8_t*)str.s, inf); - inf->vptr_free = 1; - line->d.shared_dirty |= BCF1_DIRTY_INF; - } - line->unpacked |= BCF_UN_INFO; - return 0; -} - -int bcf_update_format_string(const bcf_hdr_t *hdr, bcf1_t *line, const char *key, const char **values, int n) -{ - if ( !n ) - return bcf_update_format(hdr,line,key,NULL,0,BCF_HT_STR); - - int i, max_len = 0; - for (i=0; i max_len ) max_len = len; - } - char *out = (char*) malloc(max_len*n); - if ( !out ) return -2; - for (i=0; iunpacked & BCF_UN_FMT) ) bcf_unpack(line, BCF_UN_FMT); - - for (i=0; in_fmt; i++) - if ( line->d.fmt[i].id==fmt_id ) break; - bcf_fmt_t *fmt = i==line->n_fmt ? NULL : &line->d.fmt[i]; - - if ( !n ) - { - if ( fmt ) - { - // Mark the tag for removal, free existing memory if necessary - if ( fmt->p_free ) - { - free(fmt->p - fmt->p_off); - fmt->p_free = 0; - } - line->d.indiv_dirty = 1; - fmt->p = NULL; - } - return 0; - } - - line->n_sample = bcf_hdr_nsamples(hdr); - int nps = n / line->n_sample; // number of values per sample - assert( nps && nps*line->n_sample==n ); // must be divisible by n_sample - - // Encode the values and determine the size required to accommodate the values - kstring_t str = {0,0,0}; - bcf_enc_int1(&str, fmt_id); - if ( type==BCF_HT_INT ) - bcf_enc_vint(&str, n, (int32_t*)values, nps); - else if ( type==BCF_HT_REAL ) - { - bcf_enc_size(&str, nps, BCF_BT_FLOAT); - kputsn((char*)values, nps*line->n_sample*sizeof(float), &str); - } - else if ( type==BCF_HT_STR ) - { - bcf_enc_size(&str, nps, BCF_BT_CHAR); - kputsn((char*)values, nps*line->n_sample, &str); - } - else - { - fprintf(stderr, "[E::%s] the type %d not implemented yet\n", __func__, type); - abort(); - } - - if ( !fmt ) - { - // Not present, new format field - line->n_fmt++; - hts_expand0(bcf_fmt_t, line->n_fmt, line->d.m_fmt, line->d.fmt); - - // Special case: VCF specification requires that GT is always first - if ( line->n_fmt > 1 && key[0]=='G' && key[1]=='T' && !key[2] ) - { - for (i=line->n_fmt-1; i>0; i--) - line->d.fmt[i] = line->d.fmt[i-1]; - fmt = &line->d.fmt[0]; - } - else - fmt = &line->d.fmt[line->n_fmt-1]; - bcf_unpack_fmt_core1((uint8_t*)str.s, line->n_sample, fmt); - line->d.indiv_dirty = 1; - fmt->p_free = 1; - } - else - { - // The tag is already present, check if it is big enough to accomodate the new block - if ( str.l <= fmt->p_len + fmt->p_off ) - { - // good, the block is big enough - if ( str.l != fmt->p_len + fmt->p_off ) line->d.indiv_dirty = 1; - uint8_t *ptr = fmt->p - fmt->p_off; - memcpy(ptr, str.s, str.l); - free(str.s); - int p_free = fmt->p_free; - bcf_unpack_fmt_core1(ptr, line->n_sample, fmt); - fmt->p_free = p_free; - } - else - { - assert( !fmt->p_free ); // fix the caller or improve here: this has been modified before - bcf_unpack_fmt_core1((uint8_t*)str.s, line->n_sample, fmt); - fmt->p_free = 1; - line->d.indiv_dirty = 1; - } - } - line->unpacked |= BCF_UN_FMT; - return 0; -} - - -int bcf_update_filter(const bcf_hdr_t *hdr, bcf1_t *line, int *flt_ids, int n) -{ - if ( !(line->unpacked & BCF_UN_FLT) ) bcf_unpack(line, BCF_UN_FLT); - line->d.shared_dirty |= BCF1_DIRTY_FLT; - line->d.n_flt = n; - if ( !n ) return 0; - hts_expand(int, line->d.n_flt, line->d.m_flt, line->d.flt); - int i; - for (i=0; id.flt[i] = flt_ids[i]; - return 0; -} - -int bcf_add_filter(const bcf_hdr_t *hdr, bcf1_t *line, int flt_id) -{ - if ( !(line->unpacked & BCF_UN_FLT) ) bcf_unpack(line, BCF_UN_FLT); - int i; - for (i=0; id.n_flt; i++) - if ( flt_id==line->d.flt[i] ) break; - if ( id.n_flt ) return 0; // this filter is already set - line->d.shared_dirty |= BCF1_DIRTY_FLT; - if ( flt_id==0 ) // set to PASS - line->d.n_flt = 1; - else if ( line->d.n_flt==1 && line->d.flt[0]==0 ) - line->d.n_flt = 1; - else - line->d.n_flt++; - hts_expand(int, line->d.n_flt, line->d.m_flt, line->d.flt); - line->d.flt[line->d.n_flt-1] = flt_id; - return 1; -} -int bcf_remove_filter(const bcf_hdr_t *hdr, bcf1_t *line, int flt_id, int pass) -{ - if ( !(line->unpacked & BCF_UN_FLT) ) bcf_unpack(line, BCF_UN_FLT); - int i; - for (i=0; id.n_flt; i++) - if ( flt_id==line->d.flt[i] ) break; - if ( i==line->d.n_flt ) return 0; // the filter is not present - line->d.shared_dirty |= BCF1_DIRTY_FLT; - if ( i!=line->d.n_flt-1 ) memmove(line->d.flt+i,line->d.flt+i+1,(line->d.n_flt-i-1)*sizeof(*line->d.flt)); - line->d.n_flt--; - if ( !line->d.n_flt && pass ) bcf_add_filter(hdr,line,0); - return 0; -} - -int bcf_has_filter(const bcf_hdr_t *hdr, bcf1_t *line, char *filter) -{ - if ( filter[0]=='.' && !filter[1] ) filter = "PASS"; - int id = bcf_hdr_id2int(hdr, BCF_DT_ID, filter); - if ( !bcf_hdr_idinfo_exists(hdr,BCF_HL_FLT,id) ) return -1; // not defined in the header - - if ( !(line->unpacked & BCF_UN_FLT) ) bcf_unpack(line, BCF_UN_FLT); - if ( id==0 && !line->d.n_flt) return 1; // PASS - - int i; - for (i=0; id.n_flt; i++) - if ( line->d.flt[i]==id ) return 1; - return 0; -} - -static inline int _bcf1_sync_alleles(const bcf_hdr_t *hdr, bcf1_t *line, int nals) -{ - line->d.shared_dirty |= BCF1_DIRTY_ALS; - - line->n_allele = nals; - hts_expand(char*, line->n_allele, line->d.m_allele, line->d.allele); - - char *als = line->d.als; - int n = 0; - while (nd.allele[n] = als; - while ( *als ) als++; - als++; - n++; - } - return 0; -} -int bcf_update_alleles(const bcf_hdr_t *hdr, bcf1_t *line, const char **alleles, int nals) -{ - kstring_t tmp = {0,0,0}; - char *free_old = NULL; - - // If the supplied alleles are not pointers to line->d.als, the existing block can be reused. - int i; - for (i=0; i=line->d.als && alleles[i]d.als+line->d.m_als ) break; - if ( i==nals ) - { - // all alleles point elsewhere, reuse the existing block - tmp.l = 0; tmp.s = line->d.als; tmp.m = line->d.m_als; - } - else - free_old = line->d.als; - - for (i=0; id.als = tmp.s; line->d.m_als = tmp.m; - free(free_old); - return _bcf1_sync_alleles(hdr,line,nals); -} - -int bcf_update_alleles_str(const bcf_hdr_t *hdr, bcf1_t *line, const char *alleles_string) -{ - kstring_t tmp; - tmp.l = 0; tmp.s = line->d.als; tmp.m = line->d.m_als; - kputs(alleles_string, &tmp); - line->d.als = tmp.s; line->d.m_als = tmp.m; - - int nals = 1; - char *t = line->d.als; - while (*t) - { - if ( *t==',' ) { *t = 0; nals++; } - t++; - } - return _bcf1_sync_alleles(hdr, line, nals); -} - -int bcf_update_id(const bcf_hdr_t *hdr, bcf1_t *line, const char *id) -{ - kstring_t tmp; - tmp.l = 0; tmp.s = line->d.id; tmp.m = line->d.m_id; - if ( id ) - kputs(id, &tmp); - else - kputs(".", &tmp); - line->d.id = tmp.s; line->d.m_id = tmp.m; - line->d.shared_dirty |= BCF1_DIRTY_ID; - return 0; -} - -bcf_fmt_t *bcf_get_fmt(const bcf_hdr_t *hdr, bcf1_t *line, const char *key) -{ - int id = bcf_hdr_id2int(hdr, BCF_DT_ID, key); - if ( !bcf_hdr_idinfo_exists(hdr,BCF_HL_FMT,id) ) return NULL; // no such FMT field in the header - return bcf_get_fmt_id(line, id); -} - -bcf_info_t *bcf_get_info(const bcf_hdr_t *hdr, bcf1_t *line, const char *key) -{ - int id = bcf_hdr_id2int(hdr, BCF_DT_ID, key); - if ( !bcf_hdr_idinfo_exists(hdr,BCF_HL_INFO,id) ) return NULL; // no such INFO field in the header - return bcf_get_info_id(line, id); -} - -bcf_fmt_t *bcf_get_fmt_id(bcf1_t *line, const int id) -{ - int i; - if ( !(line->unpacked & BCF_UN_FMT) ) bcf_unpack(line, BCF_UN_FMT); - for (i=0; in_fmt; i++) - { - if ( line->d.fmt[i].id==id ) return &line->d.fmt[i]; - } - return NULL; -} - -bcf_info_t *bcf_get_info_id(bcf1_t *line, const int id) -{ - int i; - if ( !(line->unpacked & BCF_UN_INFO) ) bcf_unpack(line, BCF_UN_INFO); - for (i=0; in_info; i++) - { - if ( line->d.info[i].key==id ) return &line->d.info[i]; - } - return NULL; -} - - -int bcf_get_info_values(const bcf_hdr_t *hdr, bcf1_t *line, const char *tag, void **dst, int *ndst, int type) -{ - int i,j, tag_id = bcf_hdr_id2int(hdr, BCF_DT_ID, tag); - if ( !bcf_hdr_idinfo_exists(hdr,BCF_HL_INFO,tag_id) ) return -1; // no such INFO field in the header - if ( bcf_hdr_id2type(hdr,BCF_HL_INFO,tag_id)!=type ) return -2; // expected different type - - if ( !(line->unpacked & BCF_UN_INFO) ) bcf_unpack(line, BCF_UN_INFO); - - for (i=0; in_info; i++) - if ( line->d.info[i].key==tag_id ) break; - if ( i==line->n_info ) return ( type==BCF_HT_FLAG ) ? 0 : -3; // the tag is not present in this record - if ( type==BCF_HT_FLAG ) return 1; - - bcf_info_t *info = &line->d.info[i]; - if ( type==BCF_HT_STR ) - { - if ( *ndst < info->len+1 ) - { - *ndst = info->len + 1; - *dst = realloc(*dst, *ndst); - } - memcpy(*dst,info->vptr,info->len); - ((uint8_t*)*dst)[info->len] = 0; - return info->len; - } - - // Make sure the buffer is big enough - int size1 = type==BCF_HT_INT ? sizeof(int32_t) : sizeof(float); - if ( *ndst < info->len ) - { - *ndst = info->len; - *dst = realloc(*dst, *ndst * size1); - } - - if ( info->len == 1 ) - { - if ( info->type==BCF_BT_FLOAT ) *((float*)*dst) = info->v1.f; - else - { - #define BRANCH(type_t, missing) { \ - if ( info->v1.i==missing ) *((int32_t*)*dst) = bcf_int32_missing; \ - else *((int32_t*)*dst) = info->v1.i; \ - } - switch (info->type) - { - case BCF_BT_INT8: BRANCH(int8_t, bcf_int8_missing ); break; - case BCF_BT_INT16: BRANCH(int16_t, bcf_int16_missing); break; - case BCF_BT_INT32: BRANCH(int32_t, bcf_int32_missing); break; - } - #undef BRANCH - } - return 1; - } - - #define BRANCH(type_t, is_missing, is_vector_end, set_missing, out_type_t) { \ - out_type_t *tmp = (out_type_t *) *dst; \ - type_t *p = (type_t *) info->vptr; \ - for (j=0; jlen; j++) \ - { \ - if ( is_vector_end ) return j; \ - if ( is_missing ) set_missing; \ - else *tmp = p[j]; \ - tmp++; \ - } \ - return j; \ - } - switch (info->type) { - case BCF_BT_INT8: BRANCH(int8_t, p[j]==bcf_int8_missing, p[j]==bcf_int8_vector_end, *tmp=bcf_int32_missing, int32_t); break; - case BCF_BT_INT16: BRANCH(int16_t, p[j]==bcf_int16_missing, p[j]==bcf_int16_vector_end, *tmp=bcf_int32_missing, int32_t); break; - case BCF_BT_INT32: BRANCH(int32_t, p[j]==bcf_int32_missing, p[j]==bcf_int32_vector_end, *tmp=bcf_int32_missing, int32_t); break; - case BCF_BT_FLOAT: BRANCH(float, bcf_float_is_missing(p[j]), bcf_float_is_vector_end(p[j]), bcf_float_set_missing(*tmp), float); break; - default: fprintf(stderr,"TODO: %s:%d .. info->type=%d\n", __FILE__,__LINE__, info->type); exit(1); - } - #undef BRANCH - return -4; // this can never happen -} - -int bcf_get_format_string(const bcf_hdr_t *hdr, bcf1_t *line, const char *tag, char ***dst, int *ndst) -{ - int i,tag_id = bcf_hdr_id2int(hdr, BCF_DT_ID, tag); - if ( !bcf_hdr_idinfo_exists(hdr,BCF_HL_FMT,tag_id) ) return -1; // no such FORMAT field in the header - if ( bcf_hdr_id2type(hdr,BCF_HL_FMT,tag_id)!=BCF_HT_STR ) return -2; // expected different type - - if ( !(line->unpacked & BCF_UN_FMT) ) bcf_unpack(line, BCF_UN_FMT); - - for (i=0; in_fmt; i++) - if ( line->d.fmt[i].id==tag_id ) break; - if ( i==line->n_fmt ) return -3; // the tag is not present in this record - bcf_fmt_t *fmt = &line->d.fmt[i]; - - int nsmpl = bcf_hdr_nsamples(hdr); - if ( !*dst ) - { - *dst = (char**) malloc(sizeof(char*)*nsmpl); - if ( !*dst ) return -4; // could not alloc - (*dst)[0] = NULL; - } - int n = (fmt->n+1)*nsmpl; - if ( *ndst < n ) - { - (*dst)[0] = realloc((*dst)[0], n); - if ( !(*dst)[0] ) return -4; // could not alloc - *ndst = n; - } - for (i=0; ip + i*fmt->n; - uint8_t *tmp = (uint8_t*)(*dst)[0] + i*(fmt->n+1); - memcpy(tmp,src,fmt->n); - tmp[fmt->n] = 0; - (*dst)[i] = (char*) tmp; - } - return n; -} - -int bcf_get_format_values(const bcf_hdr_t *hdr, bcf1_t *line, const char *tag, void **dst, int *ndst, int type) -{ - int i,j, tag_id = bcf_hdr_id2int(hdr, BCF_DT_ID, tag); - if ( !bcf_hdr_idinfo_exists(hdr,BCF_HL_FMT,tag_id) ) return -1; // no such FORMAT field in the header - if ( tag[0]=='G' && tag[1]=='T' && tag[2]==0 ) - { - // Ugly: GT field is considered to be a string by the VCF header but BCF represents it as INT. - if ( bcf_hdr_id2type(hdr,BCF_HL_FMT,tag_id)!=BCF_HT_STR ) return -2; - } - else if ( bcf_hdr_id2type(hdr,BCF_HL_FMT,tag_id)!=type ) return -2; // expected different type - - if ( !(line->unpacked & BCF_UN_FMT) ) bcf_unpack(line, BCF_UN_FMT); - - for (i=0; in_fmt; i++) - if ( line->d.fmt[i].id==tag_id ) break; - if ( i==line->n_fmt ) return -3; // the tag is not present in this record - bcf_fmt_t *fmt = &line->d.fmt[i]; - - if ( type==BCF_HT_STR ) - { - int n = fmt->n*bcf_hdr_nsamples(hdr); - if ( *ndst < n ) - { - *dst = realloc(*dst, n); - if ( !*dst ) return -4; // could not alloc - *ndst = n; - } - memcpy(*dst,fmt->p,n); - return n; - } - - // Make sure the buffer is big enough - int nsmpl = bcf_hdr_nsamples(hdr); - int size1 = type==BCF_HT_INT ? sizeof(int32_t) : sizeof(float); - if ( *ndst < fmt->n*nsmpl ) - { - *ndst = fmt->n*nsmpl; - *dst = realloc(*dst, *ndst*size1); - if ( !dst ) return -4; // could not alloc - } - - #define BRANCH(type_t, is_missing, is_vector_end, set_missing, set_vector_end, out_type_t) { \ - out_type_t *tmp = (out_type_t *) *dst; \ - type_t *p = (type_t*) fmt->p; \ - for (i=0; in; j++) \ - { \ - if ( is_missing ) set_missing; \ - else if ( is_vector_end ) { set_vector_end; break; } \ - else *tmp = p[j]; \ - tmp++; \ - } \ - for (; jn; j++) { set_vector_end; tmp++; } \ - p = (type_t *)((char *)p + fmt->size); \ - } \ - } - switch (fmt->type) { - case BCF_BT_INT8: BRANCH(int8_t, p[j]==bcf_int8_missing, p[j]==bcf_int8_vector_end, *tmp=bcf_int32_missing, *tmp=bcf_int32_vector_end, int32_t); break; - case BCF_BT_INT16: BRANCH(int16_t, p[j]==bcf_int16_missing, p[j]==bcf_int16_vector_end, *tmp=bcf_int32_missing, *tmp=bcf_int32_vector_end, int32_t); break; - case BCF_BT_INT32: BRANCH(int32_t, p[j]==bcf_int32_missing, p[j]==bcf_int32_vector_end, *tmp=bcf_int32_missing, *tmp=bcf_int32_vector_end, int32_t); break; - case BCF_BT_FLOAT: BRANCH(float, bcf_float_is_missing(p[j]), bcf_float_is_vector_end(p[j]), bcf_float_set_missing(*tmp), bcf_float_set_vector_end(*tmp), float); break; - default: fprintf(stderr,"TODO: %s:%d .. fmt->type=%d\n", __FILE__,__LINE__, fmt->type); exit(1); - } - #undef BRANCH - return nsmpl*fmt->n; -} - diff --git a/htslib/vcf_sweep.c b/htslib/vcf_sweep.c deleted file mode 100644 index 27e26a8..0000000 --- a/htslib/vcf_sweep.c +++ /dev/null @@ -1,182 +0,0 @@ -/* vcf_sweep.c -- forward/reverse sweep API. - - Copyright (C) 2013 Genome Research Ltd. - - Author: Petr Danecek - -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. */ - -#include "htslib/vcf_sweep.h" -#include "htslib/bgzf.h" - -#define SW_FWD 0 -#define SW_BWD 1 - -struct _bcf_sweep_t -{ - htsFile *file; - bcf_hdr_t *hdr; - BGZF *fp; - - int direction; // to tell if the direction has changed - int block_size; // the size of uncompressed data to hold in memory - bcf1_t *rec; // bcf buffer - int nrec, mrec; // number of used records; total size of the buffer - int lrid, lpos, lnals, lals_len, mlals; // to check uniqueness of a record - char *lals; - - uint64_t *idx; // uncompressed offsets of VCF/BCF records - int iidx, nidx, midx; // i: current offset; n: used; m: allocated - int idx_done; // the index is built during the first pass -}; - -BGZF *hts_get_bgzfp(htsFile *fp); -int hts_useek(htsFile *file, long uoffset, int where); -long hts_utell(htsFile *file); - -static inline int sw_rec_equal(bcf_sweep_t *sw, bcf1_t *rec) -{ - if ( sw->lrid!=rec->rid ) return 0; - if ( sw->lpos!=rec->pos ) return 0; - if ( sw->lnals!=rec->n_allele ) return 0; - - char *t = rec->d.allele[sw->lnals-1]; - int len = t - rec->d.allele[0] + 1; - while ( *t ) { t++; len++; } - if ( sw->lals_len!=len ) return 0; - if ( memcmp(sw->lals,rec->d.allele[0],len) ) return 0; - return 1; -} - -static void sw_rec_save(bcf_sweep_t *sw, bcf1_t *rec) -{ - sw->lrid = rec->rid; - sw->lpos = rec->pos; - sw->lnals = rec->n_allele; - - char *t = rec->d.allele[sw->lnals-1]; - int len = t - rec->d.allele[0] + 1; - while ( *t ) { t++; len++; } - sw->lals_len = len; - hts_expand(char, len, sw->mlals, sw->lals); - memcpy(sw->lals, rec->d.allele[0], len); -} - -static void sw_fill_buffer(bcf_sweep_t *sw) -{ - if ( !sw->iidx ) return; - sw->iidx--; - - int ret = hts_useek(sw->file, sw->idx[sw->iidx], 0); - assert( ret==0 ); - - sw->nrec = 0; - bcf1_t *rec = &sw->rec[sw->nrec]; - while ( (ret=bcf_read1(sw->file, sw->hdr, rec))==0 ) - { - bcf_unpack(rec, BCF_UN_STR); - - // if not in the last block, stop at the saved record - if ( sw->iidx+1 < sw->nidx && sw_rec_equal(sw,rec) ) break; - - sw->nrec++; - hts_expand0(bcf1_t, sw->nrec+1, sw->mrec, sw->rec); - rec = &sw->rec[sw->nrec]; - } - sw_rec_save(sw, &sw->rec[0]); -} - -bcf_sweep_t *bcf_sweep_init(const char *fname) -{ - bcf_sweep_t *sw = (bcf_sweep_t*) calloc(1,sizeof(bcf_sweep_t)); - sw->file = hts_open(fname, "r"); - sw->fp = hts_get_bgzfp(sw->file); - bgzf_index_build_init(sw->fp); - sw->hdr = bcf_hdr_read(sw->file); - sw->mrec = 1; - sw->rec = (bcf1_t*) calloc(sw->mrec,(sizeof(bcf1_t))); - sw->block_size = 1024*1024*3; - sw->direction = SW_FWD; - return sw; -} - -void bcf_empty1(bcf1_t *v); -void bcf_sweep_destroy(bcf_sweep_t *sw) -{ - int i; - for (i=0; imrec; i++) bcf_empty1(&sw->rec[i]); - free(sw->idx); - free(sw->rec); - free(sw->lals); - bcf_hdr_destroy(sw->hdr); - hts_close(sw->file); - free(sw); -} - -static void sw_seek(bcf_sweep_t *sw, int direction) -{ - sw->direction = direction; - if ( direction==SW_FWD ) - hts_useek(sw->file, sw->idx[0], 0); - else - { - sw->iidx = sw->nidx; - sw->nrec = 0; - } -} - -bcf1_t *bcf_sweep_fwd(bcf_sweep_t *sw) -{ - if ( sw->direction==SW_BWD ) sw_seek(sw, SW_FWD); - - long pos = hts_utell(sw->file); - - bcf1_t *rec = &sw->rec[0]; - int ret = bcf_read1(sw->file, sw->hdr, rec); - - if ( ret!=0 ) // last record, get ready for sweeping backwards - { - sw->idx_done = 1; - sw->fp->idx_build_otf = 0; - sw_seek(sw, SW_BWD); - return NULL; - } - - if ( !sw->idx_done ) - { - if ( !sw->nidx || pos - sw->idx[sw->nidx-1] > sw->block_size ) - { - sw->nidx++; - hts_expand(uint64_t, sw->nidx, sw->midx, sw->idx); - sw->idx[sw->nidx-1] = pos; - } - } - return rec; -} - -bcf1_t *bcf_sweep_bwd(bcf_sweep_t *sw) -{ - if ( sw->direction==SW_FWD ) sw_seek(sw, SW_BWD); - if ( !sw->nrec ) sw_fill_buffer(sw); - if ( !sw->nrec ) return NULL; - return &sw->rec[ --sw->nrec ]; -} - -bcf_hdr_t *bcf_sweep_hdr(bcf_sweep_t *sw) { return sw->hdr; } - diff --git a/htslib/vcfutils.c b/htslib/vcfutils.c deleted file mode 100644 index 91118e4..0000000 --- a/htslib/vcfutils.c +++ /dev/null @@ -1,675 +0,0 @@ -/* vcfutils.c -- allele-related utility functions. - - Copyright (C) 2012-2014 Genome Research Ltd. - - Author: Petr Danecek - -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. */ - -#include "htslib/vcfutils.h" - -int bcf_calc_ac(const bcf_hdr_t *header, bcf1_t *line, int *ac, int which) -{ - int i; - for (i=0; in_allele; i++) ac[i]=0; - - // Use INFO/AC,AN field only when asked - if ( which&BCF_UN_INFO ) - { - bcf_unpack(line, BCF_UN_INFO); - int an_id = bcf_hdr_id2int(header, BCF_DT_ID, "AN"); - int ac_id = bcf_hdr_id2int(header, BCF_DT_ID, "AC"); - int i, an=-1, ac_len=0, ac_type=0; - uint8_t *ac_ptr=NULL; - if ( an_id>=0 && ac_id>=0 ) - { - for (i=0; in_info; i++) - { - bcf_info_t *z = &line->d.info[i]; - if ( z->key == an_id ) an = z->v1.i; - else if ( z->key == ac_id ) { ac_ptr = z->vptr; ac_len = z->len; ac_type = z->type; } - } - } - if ( an>=0 && ac_ptr ) - { - int nac = 0; - #define BRANCH_INT(type_t) { \ - type_t *p = (type_t *) ac_ptr; \ - for (i=0; iid[BCF_DT_CTG][line->rid].key, line->pos+1); exit(1); break; - } - #undef BRANCH_INT - if ( anid[BCF_DT_CTG][line->rid].key, line->pos+1); - exit(1); - } - ac[0] = an - nac; - return 1; - } - } - - // Split genotype fields only when asked - if ( which&BCF_UN_FMT ) - { - int i, gt_id = bcf_hdr_id2int(header,BCF_DT_ID,"GT"); - if ( gt_id<0 ) return 0; - bcf_unpack(line, BCF_UN_FMT); - bcf_fmt_t *fmt_gt = NULL; - for (i=0; i<(int)line->n_fmt; i++) - if ( line->d.fmt[i].id==gt_id ) { fmt_gt = &line->d.fmt[i]; break; } - if ( !fmt_gt ) return 0; - #define BRANCH_INT(type_t,vector_end) { \ - for (i=0; in_sample; i++) \ - { \ - type_t *p = (type_t*) (fmt_gt->p + i*fmt_gt->size); \ - int ial; \ - for (ial=0; ialn; ial++) \ - { \ - if ( p[ial]==vector_end ) break; /* smaller ploidy */ \ - if ( bcf_gt_is_missing(p[ial]) ) continue; /* missing allele */ \ - if ( p[ial]>>1 > line->n_allele ) \ - { \ - fprintf(stderr,"[E::%s] Incorrect allele (\"%d\") in %s at %s:%d\n", __func__,(p[ial]>>1)-1, header->samples[i],header->id[BCF_DT_CTG][line->rid].key, line->pos+1); \ - exit(1); \ - } \ - ac[(p[ial]>>1)-1]++; \ - } \ - } \ - } - switch (fmt_gt->type) { - case BCF_BT_INT8: BRANCH_INT(int8_t, bcf_int8_vector_end); break; - case BCF_BT_INT16: BRANCH_INT(int16_t, bcf_int16_vector_end); break; - case BCF_BT_INT32: BRANCH_INT(int32_t, bcf_int32_vector_end); break; - default: fprintf(stderr, "[E::%s] todo: %d at %s:%d\n", __func__, fmt_gt->type, header->id[BCF_DT_CTG][line->rid].key, line->pos+1); exit(1); break; - } - #undef BRANCH_INT - return 1; - } - return 0; -} - -int bcf_gt_type(bcf_fmt_t *fmt_ptr, int isample, int *_ial, int *_jal) -{ - int i, nals = 0, has_ref = 0, has_alt = 0, ial = 0, jal = 0; - #define BRANCH_INT(type_t,vector_end) { \ - type_t *p = (type_t*) (fmt_ptr->p + isample*fmt_ptr->size); \ - for (i=0; in; i++) \ - { \ - if ( p[i] == vector_end ) break; /* smaller ploidy */ \ - if ( bcf_gt_is_missing(p[i]) ) continue; /* missing allele */ \ - int tmp = p[i]>>1; \ - if ( tmp>1 ) \ - { \ - if ( !ial ) { ial = tmp; has_alt = 1; } \ - else if ( tmp!=ial ) \ - { \ - if ( tmptype) { - case BCF_BT_INT8: BRANCH_INT(int8_t, bcf_int8_vector_end); break; - case BCF_BT_INT16: BRANCH_INT(int16_t, bcf_int16_vector_end); break; - case BCF_BT_INT32: BRANCH_INT(int32_t, bcf_int32_vector_end); break; - default: fprintf(stderr, "[E::%s] todo: fmt_type %d\n", __func__, fmt_ptr->type); exit(1); break; - } - #undef BRANCH_INT - - if ( _ial ) *_ial = ial>0 ? ial-1 : ial; - if ( _jal ) *_jal = jal>0 ? jal-1 : jal; - if ( !nals ) return GT_UNKN; - if ( nals==1 ) - return has_ref ? GT_HAPL_R : GT_HAPL_A; - if ( !has_ref ) - return has_alt==1 ? GT_HOM_AA : GT_HET_AA; - if ( !has_alt ) - return GT_HOM_RR; - return GT_HET_RA; -} - -int bcf_trim_alleles(const bcf_hdr_t *header, bcf1_t *line) -{ - int i; - bcf_fmt_t *gt = bcf_get_fmt(header, line, "GT"); - if ( !gt ) return 0; - - int *ac = (int*) calloc(line->n_allele,sizeof(int)); - - // check if all alleles are populated - #define BRANCH(type_t,vector_end) { \ - for (i=0; in_sample; i++) \ - { \ - type_t *p = (type_t*) (gt->p + i*gt->size); \ - int ial; \ - for (ial=0; ialn; ial++) \ - { \ - if ( p[ial]==vector_end ) break; /* smaller ploidy */ \ - if ( bcf_gt_is_missing(p[ial]) ) continue; /* missing allele */ \ - if ( (p[ial]>>1)-1 >= line->n_allele ) { free(ac); return -1; } \ - ac[(p[ial]>>1)-1]++; \ - } \ - } \ - } - switch (gt->type) { - case BCF_BT_INT8: BRANCH(int8_t, bcf_int8_vector_end); break; - case BCF_BT_INT16: BRANCH(int16_t, bcf_int16_vector_end); break; - case BCF_BT_INT32: BRANCH(int32_t, bcf_int32_vector_end); break; - default: fprintf(stderr, "[E::%s] todo: %d at %s:%d\n", __func__, gt->type, header->id[BCF_DT_CTG][line->rid].key, line->pos+1); exit(1); break; - } - #undef BRANCH - - int rm_als = 0, nrm = 0; - for (i=1; in_allele; i++) - { - if ( !ac[i] ) { rm_als |= 1<n_allele, sizeof(int)); - - // create map of indexes from old to new ALT numbering and modify ALT - kstring_t str = {0,0,0}; - kputs(line->d.allele[0], &str); - - int nrm = 0, i,j; // i: ori alleles, j: new alleles - for (i=1, j=1; in_allele; i++) - { - if ( rm_mask & 1<d.allele[i] = NULL; - nrm++; - continue; - } - kputc(',', &str); - kputs(line->d.allele[i], &str); - map[i] = j; - j++; - } - if ( !nrm ) { free(map); free(str.s); return; } - - int nR_ori = line->n_allele; - int nR_new = line->n_allele-nrm; - assert(nR_new > 0); // should not be able to remove reference allele - int nA_ori = nR_ori-1; - int nA_new = nR_new-1; - - int nG_ori = nR_ori*(nR_ori + 1)/2; - int nG_new = nR_new*(nR_new + 1)/2; - - bcf_update_alleles_str(header, line, str.s); - - // remove from Number=G, Number=R and Number=A INFO fields. - uint8_t *dat = NULL; - int mdat = 0, ndat = 0, mdat_bytes = 0, nret; - for (i=0; in_info; i++) - { - bcf_info_t *info = &line->d.info[i]; - int vlen = bcf_hdr_id2length(header,BCF_HL_INFO,info->key); - - if ( vlen!=BCF_VL_A && vlen!=BCF_VL_G && vlen!=BCF_VL_R ) continue; // no need to change - - int type = bcf_hdr_id2type(header,BCF_HL_INFO,info->key); - if ( type==BCF_HT_FLAG ) continue; - int size = 1; - if ( type==BCF_HT_REAL || type==BCF_HT_INT ) size = 4; - - mdat = mdat_bytes / size; - nret = bcf_get_info_values(header, line, bcf_hdr_int2id(header,BCF_DT_ID,info->key), (void**)&dat, &mdat, type); - mdat_bytes = mdat * size; - if ( nret<0 ) - { - fprintf(stderr,"[%s:%d %s] Could not access INFO/%s at %s:%d [%d]\n", __FILE__,__LINE__,__FUNCTION__, - bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname(header,line), line->pos+1, nret); - exit(1); - } - if ( type==BCF_HT_STR ) - { - str.l = 0; - char *ss = (char*) dat, *se = (char*) dat; - if ( vlen==BCF_VL_A || vlen==BCF_VL_R ) - { - int nexp, inc = 0; - if ( vlen==BCF_VL_A ) - { - nexp = nA_ori; - inc = 1; - } - else - nexp = nR_ori; - for (j=0; jkey), (void*)str.s, str.l, type); - if ( nret<0 ) - { - fprintf(stderr,"[%s:%d %s] Could not update INFO/%s at %s:%d [%d]\n", __FILE__,__LINE__,__FUNCTION__, - bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname(header,line), line->pos+1, nret); - exit(1); - } - continue; - } - - if ( vlen==BCF_VL_A || vlen==BCF_VL_R ) - { - int inc = 0, ntop; - if ( vlen==BCF_VL_A ) - { - assert( nret==nA_ori ); - ntop = nA_ori; - ndat = nA_new; - inc = 1; - } - else - { - assert( nret==nR_ori ); - ntop = nR_ori; - ndat = nR_new; - } - int k = 0; - - #define BRANCH(type_t,is_vector_end) \ - { \ - type_t *ptr = (type_t*) dat; \ - int size = sizeof(type_t); \ - for (j=0; jkey), (void*)dat, ndat, type); - if ( nret<0 ) - { - fprintf(stderr,"[%s:%d %s] Could not update INFO/%s at %s:%d [%d]\n", __FILE__,__LINE__,__FUNCTION__, - bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname(header,line), line->pos+1, nret); - exit(1); - } - } - - // Update GT fields, the allele indexes might have changed - for (i=1; in_allele; i++) if ( map[i]!=i ) break; - if ( in_allele ) - { - mdat = mdat_bytes / 4; // sizeof(int32_t) - nret = bcf_get_genotypes(header,line,(void**)&dat,&mdat); - mdat_bytes = mdat * 4; - if ( nret>0 ) - { - nret /= line->n_sample; - int32_t *ptr = (int32_t*) dat; - for (i=0; in_sample; i++) - { - for (j=0; j=0 ); - ptr[j] = (map[al]+1)<<1 | (ptr[j]&1); - } - ptr += nret; - } - bcf_update_genotypes(header, line, (void*)dat, nret*line->n_sample); - } - } - - // Remove from Number=G, Number=R and Number=A FORMAT fields. - // Assuming haploid or diploid GTs - for (i=0; in_fmt; i++) - { - bcf_fmt_t *fmt = &line->d.fmt[i]; - int vlen = bcf_hdr_id2length(header,BCF_HL_FMT,fmt->id); - - if ( vlen!=BCF_VL_A && vlen!=BCF_VL_G && vlen!=BCF_VL_R ) continue; // no need to change - - int type = bcf_hdr_id2type(header,BCF_HL_FMT,fmt->id); - if ( type==BCF_HT_FLAG ) continue; - - int size = 1; - if ( type==BCF_HT_REAL || type==BCF_HT_INT ) size = 4; - - mdat = mdat_bytes / size; - nret = bcf_get_format_values(header, line, bcf_hdr_int2id(header,BCF_DT_ID,fmt->id), (void**)&dat, &mdat, type); - mdat_bytes = mdat * size; - if ( nret<0 ) - { - fprintf(stderr,"[%s:%d %s] Could not access FORMAT/%s at %s:%d [%d]\n", __FILE__,__LINE__,__FUNCTION__, - bcf_hdr_int2id(header,BCF_DT_ID,fmt->id), bcf_seqname(header,line), line->pos+1, nret); - exit(1); - } - - if ( type==BCF_HT_STR ) - { - int size = nret/line->n_sample; // number of bytes per sample - str.l = 0; - if ( vlen==BCF_VL_A || vlen==BCF_VL_R ) - { - int nexp, inc = 0; - if ( vlen==BCF_VL_A ) - { - nexp = nA_ori; - inc = 1; - } - else - nexp = nR_ori; - for (j=0; jn_sample; j++) - { - char *ss = ((char*)dat) + j*size, *se = ss + size, *ptr = ss; - int k_src = 0, k_dst = 0, l = str.l; - for (k_src=0; k_src=se || !*ptr) break; - while ( ptrn_sample; j++) - { - char *ss = ((char*)dat) + j*size, *se = ss + size, *ptr = ss; - int k_src = 0, k_dst = 0, l = str.l; - int nexp = 0; // diploid or haploid? - while ( ptr=se || !*ptr ) break; - while ( ptr=se || !*ptr ) break; - } - } - else // haploid - { - for (k_src=0; k_src=se || !*ptr ) break; - while ( ptrid), (void*)str.s, str.l, type); - if ( nret<0 ) - { - fprintf(stderr,"[%s:%d %s] Could not update FORMAT/%s at %s:%d [%d]\n", __FILE__,__LINE__,__FUNCTION__, - bcf_hdr_int2id(header,BCF_DT_ID,fmt->id), bcf_seqname(header,line), line->pos+1, nret); - exit(1); - } - continue; - } - - int nori = nret / line->n_sample; - if ( vlen==BCF_VL_A || vlen==BCF_VL_R || (vlen==BCF_VL_G && nori==nR_ori) ) // Number=A, R or haploid Number=G - { - int inc = 0, nnew; - if ( vlen==BCF_VL_A ) - { - assert( nori==nA_ori ); // todo: will fail if all values are missing - ndat = nA_new*line->n_sample; - nnew = nA_new; - inc = 1; - } - else - { - assert( nori==nR_ori ); // todo: will fail if all values are missing - ndat = nR_new*line->n_sample; - nnew = nR_new; - } - - #define BRANCH(type_t,is_vector_end) \ - { \ - for (j=0; jn_sample; j++) \ - { \ - type_t *ptr_src = ((type_t*)dat) + j*nori; \ - type_t *ptr_dst = ((type_t*)dat) + j*nnew; \ - int size = sizeof(type_t); \ - int k_src, k_dst = 0; \ - for (k_src=0; k_srcn_sample; - - #define BRANCH(type_t,is_vector_end) \ - { \ - for (j=0; jn_sample; j++) \ - { \ - type_t *ptr_src = ((type_t*)dat) + j*nori; \ - type_t *ptr_dst = ((type_t*)dat) + j*nG_new; \ - int size = sizeof(type_t); \ - int ia, ib, k_dst = 0, k_src; \ - int nset = 0; /* haploid or diploid? */ \ - for (k_src=0; k_srcid), (void*)dat, ndat, type); - if ( nret<0 ) - { - fprintf(stderr,"[%s:%d %s] Could not update FORMAT/%s at %s:%d [%d]\n", __FILE__,__LINE__,__FUNCTION__, - bcf_hdr_int2id(header,BCF_DT_ID,fmt->id), bcf_seqname(header,line), line->pos+1, nret); - exit(1); - } - } - free(dat); - free(str.s); - free(map); -} - diff --git a/htslib/version.h b/htslib/version.h deleted file mode 100644 index 0185c52..0000000 --- a/htslib/version.h +++ /dev/null @@ -1 +0,0 @@ -#define HTS_VERSION "1.2.1" -- 2.30.2